From 8bd1a9cf9529854bed5cef51842c8869aee86967 Mon Sep 17 00:00:00 2001 From: cai <864601551@qq.com> Date: Wed, 14 May 2025 17:37:03 +0800 Subject: [PATCH] init --- .editorconfig | 21 + .idea/.gitignore | 8 + .idea/compiler.xml | 20 + .idea/encodings.xml | 7 + .idea/jarRepositories.xml | 30 + .idea/misc.xml | 12 + doc/script/docker/elk/README.md | 27 + doc/script/docker/elk/deploy.sh | 88 + doc/script/docker/elk/docker-compose.yml | 115 + doc/script/docker/elk/es-master.yml | 28 + doc/script/docker/elk/es-slave1.yml | 28 + doc/script/docker/elk/es-slave2.yml | 28 + doc/script/docker/elk/filebeat.yml | 37 + doc/script/docker/elk/kibana.yml | 8 + doc/script/docker/elk/logstash-filebeat.conf | 23 + doc/script/docker/elk/logstash.yml | 8 + doc/script/docker/elk/undeploy.sh | 16 + doc/script/fatjar/service.cmd | 1 + doc/script/fatjar/service.sh | 76 + doc/sql/bladex/bladex-database-info.md | 687 + doc/sql/bladex/bladex.dameng.all.create.sql | 5682 ++++ doc/sql/bladex/bladex.mysql.all.create.sql | 962 + doc/sql/bladex/bladex.oracle.all.create.sql | 5843 ++++ doc/sql/bladex/bladex.postgres.all.create.sql | 5445 +++ .../bladex/bladex.sqlserver.all.create.sql | 5511 +++ doc/sql/bladex/bladex.yashan.all.create.sql | 27710 ++++++++++++++++ .../flowable/flowable.dameng.all.create.sql | 2430 ++ .../flowable/flowable.mysql.all.create.sql | 2472 ++ .../flowable/flowable.oracle.all.create.sql | 6972 ++++ .../flowable/flowable.postgres.all.create.sql | 3565 ++ .../flowable.sqlserver.all.create.sql | 5396 +++ .../flowable/flowable.yashan.all.create.sql | 4306 +++ .../bladex.dameng.upgrade.3.4.0.to.4.0.0.sql | 16 + .../bladex.mysql.upgrade.3.4.0.to.4.0.0.sql | 16 + .../bladex.oracle.upgrade.3.4.0.to.4.0.0.sql | 16 + ...adex.postgresql.upgrade.3.4.0.to.4.0.0.sql | 16 + ...ladex.sqlserver.upgrade.3.4.0.to.4.0.0.sql | 16 + ...bladex.yashandb.upgrade.3.4.0.to.4.0.0.sql | 16 + pom.xml | 359 + .../java/org/springblade/Application.java | 49 + .../springblade/common/cache/CacheNames.java | 70 + .../common/cache/DictBizCache.java | 125 + .../springblade/common/cache/DictCache.java | 152 + .../springblade/common/cache/ParamCache.java | 71 + .../springblade/common/cache/RegionCache.java | 66 + .../springblade/common/cache/SysCache.java | 326 + .../springblade/common/cache/UserCache.java | 86 + .../common/config/BladeConfiguration.java | 95 + .../config/BladeHandlerConfiguration.java | 52 + .../common/config/BladeLogConfiguration.java | 67 + .../config/BladePreviewConfiguration.java | 26 + .../config/BladeReportConfiguration.java | 48 + .../common/config/SwaggerConfiguration.java | 104 + .../common/constant/CommonConstant.java | 93 + .../common/constant/DictConstant.java | 47 + .../common/constant/LauncherConstant.java | 102 + .../common/constant/MonitorConstants.java | 39 + .../common/constant/NhConstants.java | 38 + .../common/constant/TenantConstant.java | 75 + .../springblade/common/enums/DictBizEnum.java | 48 + .../springblade/common/enums/DictEnum.java | 133 + .../org/springblade/common/enums/SysType.java | 29 + .../common/event/ApiLogListener.java | 69 + .../common/event/ErrorLogListener.java | 71 + .../common/event/UsualLogListener.java | 67 + .../common/filter/LoggingInterceptor.java | 34 + .../common/filter/PreviewFilter.java | 76 + .../handler/BladeScopeModelHandler.java | 130 + .../common/launch/LauncherServiceImpl.java | 53 + .../common/utils/AsyncTaskRunner.java | 9 + .../springblade/common/utils/CommonUtil.java | 374 + .../springblade/common/utils/ListUtils.java | 47 + .../springblade/common/utils/MonitorTask.java | 35 + .../common/utils/MultiAsyncTaskRunner.java | 60 + .../common/utils/NopTaskRunner.java | 9 + .../springblade/common/utils/TaskControl.java | 97 + .../springblade/common/utils/UnitUtil.java | 88 + .../business/controller/WorkController.java | 155 + .../business/service/FlowBusinessService.java | 89 + .../flow/business/service/IFlowService.java | 86 + .../service/impl/FlowBusinessServiceImpl.java | 343 + .../service/impl/FlowServiceImpl.java | 106 + .../flow/core/constant/ProcessConstant.java | 70 + .../flow/core/entity/BladeFlow.java | 190 + .../flow/core/entity/FlowEntity.java | 52 + .../flow/core/enums/FlowModeEnum.java | 54 + .../springblade/flow/core/utils/FlowUtil.java | 76 + .../springblade/flow/core/utils/TaskUtil.java | 80 + .../leave/controller/LeaveController.java | 74 + .../flow/demo/leave/entity/ProcessLeave.java | 78 + .../flow/demo/leave/mapper/LeaveMapper.java | 38 + .../flow/demo/leave/mapper/LeaveMapper.xml | 6 + .../demo/leave/service/ILeaveService.java | 46 + .../leave/service/impl/LeaveServiceImpl.java | 256 + .../engine/config/FlowableConfiguration.java | 53 + .../engine/constant/BondApplyConstant.java | 23 + .../engine/constant/FlowEngineConstant.java | 61 + .../controller/FlowFollowController.java | 82 + .../controller/FlowManagerController.java | 134 + .../controller/FlowModelController.java | 131 + .../controller/FlowProcessController.java | 107 + .../flow/engine/entity/FlowExecution.java | 61 + .../flow/engine/entity/FlowModel.java | 69 + .../flow/engine/entity/FlowProcess.java | 74 + .../flow/engine/mapper/FlowMapper.java | 55 + .../flow/engine/mapper/FlowMapper.xml | 53 + .../engine/service/FlowEngineService.java | 174 + .../impl/ApplicationDetailService.java | 167 + .../service/impl/FlowEngineServiceImpl.java | 646 + .../flow/engine/utils/FlowCache.java | 89 + .../job/controller/JobInfoController.java | 165 + .../job/controller/JobServerController.java | 163 + .../springblade/job/mapper/JobInfoMapper.java | 51 + .../springblade/job/mapper/JobInfoMapper.xml | 52 + .../job/mapper/JobServerMapper.java | 51 + .../job/mapper/JobServerMapper.xml | 27 + .../org/springblade/job/pojo/dto/JobDTO.java | 56 + .../springblade/job/pojo/entity/JobInfo.java | 202 + .../job/pojo/entity/JobServer.java | 76 + .../springblade/job/pojo/vo/JobInfoVO.java | 45 + .../springblade/job/pojo/vo/JobServerVO.java | 45 + .../job/processor/ProcessorDemo.java | 35 + .../job/service/IJobInfoService.java | 88 + .../job/service/IJobServerService.java | 64 + .../job/service/impl/JobInfoServiceImpl.java | 344 + .../service/impl/JobServerServiceImpl.java | 71 + .../OperationSiteApplyController.java | 176 + .../excel/OperationSiteApplyExcel.java | 121 + .../mapper/OperationSiteApplyMapper.java | 66 + .../mapper/OperationSiteApplyMapper.xml | 81 + .../pojo/dto/OperationSiteApplyDTO.java | 48 + .../pojo/entity/OperationSiteApplyEntity.java | 222 + .../operationSiteApply/pojo/vo/ApplyVo.java | 22 + .../pojo/vo/OperationSiteApplyVO.java | 65 + .../service/IOperationSiteApplyService.java | 72 + .../impl/OperationSiteApplyServiceImpl.java | 231 + .../wrapper/OperationSiteApplyWrapper.java | 59 + .../auth/config/BladeAuthConfiguration.java | 56 + .../auth/constant/BladeAuthConstant.java | 22 + .../auth/endpoint/MiniAppOauth2EndPoint.java | 173 + .../auth/endpoint/SysOAuth2EndPoint.java | 175 + .../auth/granter/CaptchaTokenGranter.java | 73 + .../auth/granter/RegisterTokenGranter.java | 139 + .../auth/granter/SocialTokenGranter.java | 111 + .../handler/BladeAuthorizationHandler.java | 200 + .../auth/handler/BladePasswordHandler.java | 59 + .../auth/handler/BladeTokenHandler.java | 34 + .../modules/auth/provider/UserType.java | 67 + .../service/BladeClientDetailService.java | 37 + .../auth/service/BladeUserDetailService.java | 62 + .../modules/auth/utils/TokenUtil.java | 83 + .../desk/controller/DashBoardController.java | 212 + .../desk/controller/NoticeController.java | 151 + .../modules/desk/mapper/NoticeMapper.java | 59 + .../modules/desk/mapper/NoticeMapper.xml | 53 + .../modules/desk/pojo/entity/Notice.java | 76 + .../modules/desk/pojo/vo/NoticeVO.java | 24 + .../modules/desk/service/INoticeService.java | 48 + .../desk/service/impl/NoticeServiceImpl.java | 52 + .../modules/desk/wrapper/NoticeWrapper.java | 73 + .../develop/controller/CodeController.java | 207 + .../controller/DatasourceController.java | 140 + .../develop/controller/ModelController.java | 260 + .../controller/ModelPrototypeController.java | 146 + .../modules/develop/mapper/CodeMapper.java | 38 + .../modules/develop/mapper/CodeMapper.xml | 22 + .../develop/mapper/DatasourceMapper.java | 38 + .../develop/mapper/DatasourceMapper.xml | 22 + .../modules/develop/mapper/ModelMapper.java | 38 + .../modules/develop/mapper/ModelMapper.xml | 27 + .../develop/mapper/ModelPrototypeMapper.java | 38 + .../develop/mapper/ModelPrototypeMapper.xml | 35 + .../modules/develop/pojo/dto/ModelDTO.java | 53 + .../modules/develop/pojo/entity/Code.java | 190 + .../develop/pojo/entity/Datasource.java | 92 + .../modules/develop/pojo/entity/Model.java | 85 + .../develop/pojo/entity/ModelPrototype.java | 130 + .../modules/develop/service/ICodeService.java | 47 + .../develop/service/IDatasourceService.java | 38 + .../service/IModelPrototypeService.java | 56 + .../develop/service/IModelService.java | 48 + .../develop/service/impl/CodeServiceImpl.java | 49 + .../service/impl/DatasourceServiceImpl.java | 42 + .../impl/ModelPrototypeServiceImpl.java | 64 + .../service/impl/ModelServiceImpl.java | 76 + .../fitting/constant/FittingConstant.java | 49 + .../OperationOrderMaterialController.java | 181 + .../PlatformFittingApplyController.java | 313 + .../excel/OperationOrderMaterialExcel.java | 128 + .../excel/PlatformFittingApplyExcel.java | 285 + .../excel/PlatformFittingApplyMsgExcel.java | 80 + .../mapper/OperationOrderMaterialMapper.java | 78 + .../mapper/OperationOrderMaterialMapper.xml | 82 + .../mapper/PlatformFittingApplyMapper.java | 81 + .../mapper/PlatformFittingApplyMapper.xml | 198 + .../mapper/PlatformFittingApplyMsgMapper.java | 63 + .../mapper/PlatformFittingApplyMsgMapper.xml | 25 + .../modules/fitting/pojo/dto/ApplyDto.java | 19 + .../fitting/pojo/dto/BhMaterialDTO.java | 49 + .../pojo/dto/OperationOrderMaterialDTO.java | 82 + .../pojo/dto/PlatformFittingApplyDTO.java | 45 + .../pojo/dto/PlatformFittingApplyMsgDTO.java | 45 + .../entity/OperationOrderMaterialEntity.java | 136 + .../entity/PlatformFittingApplyEntity.java | 318 + .../entity/PlatformFittingApplyMsgEntity.java | 83 + .../modules/fitting/pojo/vo/AddBhVo.java | 17 + .../fitting/pojo/vo/AddFittingApplyVo.java | 48 + .../fitting/pojo/vo/AddOrderFittingUseVo.java | 25 + .../fitting/pojo/vo/ChooseMaterialListVo.java | 17 + .../fitting/pojo/vo/FittingApplyDetailVo.java | 73 + .../fitting/pojo/vo/MaterialStockVo.java | 15 + .../pojo/vo/OperaAddFittingBatchVo.java | 25 + .../pojo/vo/OperationOrderMaterialVO.java | 70 + .../pojo/vo/OrderUseFittingDetailVo.java | 65 + .../pojo/vo/PlatformFittingApplyMsgVO.java | 46 + .../pojo/vo/PlatformFittingApplyVO.java | 65 + .../fitting/pojo/vo/SiteToExamineVo.java | 28 + .../IOperationOrderMaterialService.java | 86 + .../IPlatformFittingApplyMsgService.java | 62 + .../service/IPlatformFittingApplyService.java | 105 + .../OperationOrderMaterialServiceImpl.java | 261 + .../PlatformFittingApplyMsgServiceImpl.java | 78 + .../impl/PlatformFittingApplyServiceImpl.java | 656 + .../OperationOrderMaterialWrapper.java | 59 + .../PlatformFittingApplyMsgWrapper.java | 59 + .../wrapper/PlatformFittingApplyWrapper.java | 59 + .../controller/ExamineInfoController.java | 135 + .../examineInfo/mapper/ExamineInfoMapper.java | 57 + .../examineInfo/mapper/ExamineInfoMapper.xml | 25 + .../examineInfo/pojo/dto/ExamineInfoDTO.java | 45 + .../pojo/entity/ExamineInfoEntity.java | 88 + .../examineInfo/pojo/vo/ExamineInfoVO.java | 46 + .../service/IExamineInfoService.java | 57 + .../service/impl/ExamineInfoServiceImpl.java | 70 + .../wrapper/ExamineInfoWrapper.java | 59 + .../controller/ProcessDefController.java | 146 + .../excel/ProcessDefAuditStepExcel.java | 170 + .../processForm/excel/ProcessDefExcel.java | 86 + .../excel/ProcessDefLatestExcel.java | 80 + .../excel/ProcessDefSubmitStepExcel.java | 110 + .../processForm/excel/ProcessFormExcel.java | 68 + .../mapper/ProcessDefAuditStepMapper.java | 70 + .../mapper/ProcessDefAuditStepMapper.xml | 52 + .../mapper/ProcessDefLatestMapper.java | 58 + .../mapper/ProcessDefLatestMapper.xml | 26 + .../processForm/mapper/ProcessDefMapper.java | 70 + .../processForm/mapper/ProcessDefMapper.xml | 51 + .../mapper/ProcessDefSubmitStepMapper.java | 63 + .../mapper/ProcessDefSubmitStepMapper.xml | 30 + .../processForm/mapper/ProcessFormMapper.java | 61 + .../processForm/mapper/ProcessFormMapper.xml | 24 + .../pojo/dto/ProcessDefAuditStepDTO.java | 46 + .../processForm/pojo/dto/ProcessDefDTO.java | 57 + .../pojo/dto/ProcessDefLatestDTO.java | 45 + .../pojo/dto/ProcessDefSubmitStepDTO.java | 45 + .../processForm/pojo/dto/ProcessFormDTO.java | 45 + .../entity/ProcessDefAuditStepEntity.java | 168 + .../pojo/entity/ProcessDefEntity.java | 116 + .../pojo/entity/ProcessDefLatestEntity.java | 92 + .../entity/ProcessDefSubmitStepEntity.java | 117 + .../pojo/entity/ProcessFormEntity.java | 69 + .../processForm/pojo/vo/AddProcessVo.java | 22 + .../pojo/vo/ProcessDefAuditStepVO.java | 52 + .../pojo/vo/ProcessDefLatestVO.java | 54 + .../processForm/pojo/vo/ProcessDefReq.java | 25 + .../pojo/vo/ProcessDefSubmitStepVO.java | 46 + .../processForm/pojo/vo/ProcessDefVO.java | 113 + .../processForm/pojo/vo/ProcessFormVO.java | 46 + .../service/IProcessDefAuditStepService.java | 62 + .../service/IProcessDefLatestService.java | 54 + .../service/IProcessDefService.java | 81 + .../service/IProcessDefSubmitStepService.java | 62 + .../service/IProcessFormService.java | 61 + .../impl/ProcessDefAuditStepServiceImpl.java | 65 + .../impl/ProcessDefLatestServiceImpl.java | 64 + .../service/impl/ProcessDefServiceImpl.java | 556 + .../impl/ProcessDefSubmitStepServiceImpl.java | 72 + .../service/impl/ProcessFormServiceImpl.java | 60 + .../flowable/processForm/utils/FormUtils.java | 43 + .../processForm/utils/GuardUtils.java | 49 + .../wrapper/ProcessDefAuditStepWrapper.java | 59 + .../wrapper/ProcessDefLatestWrapper.java | 59 + .../wrapper/ProcessDefSubmitStepWrapper.java | 59 + .../wrapper/ProcessDefWrapper.java | 59 + .../wrapper/ProcessFormWrapper.java | 59 + .../modules/flowable/tasks/MyListener.java | 31 + .../tasks/OneTaskCompleteListener.java | 83 + .../flowable/tasks/RejectStartListener.java | 28 + .../controller/MaterialController.java | 316 + .../MaterialEngineerController.java | 209 + .../MaterialEngineerOutboundController.java | 208 + .../MaterialOperationController.java | 187 + .../MaterialOperationOutboundController.java | 222 + .../MaterialOutboundController.java | 173 + .../material/excel/MaterialEngineerExcel.java | 85 + .../excel/MaterialEngineerOutboundExcel.java | 181 + .../material/excel/MaterialImporter.java | 52 + .../excel/MaterialOperationExcel.java | 91 + .../excel/MaterialOperationOutboundExcel.java | 207 + .../material/excel/MaterialOutboundExcel.java | 140 + .../mapper/MaterialEngineerMapper.java | 68 + .../mapper/MaterialEngineerMapper.xml | 70 + .../MaterialEngineerOutboundMapper.java | 66 + .../mapper/MaterialEngineerOutboundMapper.xml | 63 + .../material/mapper/MaterialMapper.java | 77 + .../material/mapper/MaterialMapper.xml | 63 + .../mapper/MaterialOperationMapper.java | 63 + .../mapper/MaterialOperationMapper.xml | 42 + .../MaterialOperationOutboundMapper.java | 63 + .../MaterialOperationOutboundMapper.xml | 51 + .../mapper/MaterialOutboundMapper.java | 63 + .../mapper/MaterialOutboundMapper.xml | 43 + .../material/pojo/dto/MaterialDTO.java | 49 + .../pojo/dto/MaterialEngineerDTO.java | 45 + .../pojo/dto/MaterialEngineerOutboundDTO.java | 45 + .../pojo/dto/MaterialOperationDTO.java | 45 + .../dto/MaterialOperationOutboundDTO.java | 45 + .../pojo/dto/MaterialOutboundDTO.java | 45 + .../pojo/entity/MaterialEngineerEntity.java | 133 + .../MaterialEngineerOutboundEntity.java | 169 + .../material/pojo/entity/MaterialEntity.java | 112 + .../pojo/entity/MaterialOperationEntity.java | 132 + .../MaterialOperationOutboundEntity.java | 174 + .../pojo/entity/MaterialOutboundEntity.java | 162 + .../material/pojo/vo/EmpFittingDetailVo.java | 22 + .../material/pojo/vo/EmpGetFittingOutVo.java | 17 + .../material/pojo/vo/EmpStockConditionVo.java | 23 + .../pojo/vo/MaterialEngineerOutboundVO.java | 48 + .../material/pojo/vo/MaterialEngineerVO.java | 46 + .../pojo/vo/MaterialOperationOutboundVO.java | 48 + .../material/pojo/vo/MaterialOperationVO.java | 46 + .../material/pojo/vo/MaterialOutboundVO.java | 64 + .../modules/material/pojo/vo/MaterialVO.java | 46 + .../IMaterialEngineerOutboundService.java | 65 + .../service/IMaterialEngineerService.java | 47 + .../IMaterialOperationOutboundService.java | 62 + .../service/IMaterialOperationService.java | 37 + .../service/IMaterialOutboundService.java | 50 + .../material/service/IMaterialService.java | 50 + .../MaterialEngineerOutboundServiceImpl.java | 66 + .../impl/MaterialEngineerServiceImpl.java | 106 + .../MaterialOperationOutboundServiceImpl.java | 64 + .../impl/MaterialOperationServiceImpl.java | 86 + .../impl/MaterialOutboundServiceImpl.java | 213 + .../service/impl/MaterialServiceImpl.java | 295 + .../MaterialEngineerOutboundWrapper.java | 59 + .../wrapper/MaterialEngineerWrapper.java | 59 + .../MaterialOperationOutboundWrapper.java | 59 + .../wrapper/MaterialOperationWrapper.java | 59 + .../wrapper/MaterialOutboundWrapper.java | 59 + .../material/wrapper/MaterialWrapper.java | 59 + .../modules/nh/api/NatOpenController.java | 261 + .../modules/nh/api/NatOpenSyncController.java | 287 + .../nh/api/OpenPowerStationController.java | 144 + .../nh/controller/AlarmCodeController.java | 136 + .../nh/controller/AlarmInfoController.java | 320 + .../nh/controller/DeviceController.java | 221 + .../nh/controller/HomePageController.java | 141 + .../InefficientSettingController.java | 177 + .../nh/controller/InverterDataController.java | 144 + .../nh/controller/InverterUapController.java | 145 + .../MonitorEntryDailyStatController.java | 144 + .../MonitorEntryMonthStatController.java | 146 + .../MonitorEntryStatController.java | 143 + .../MonitorEntryYearStatController.java | 146 + .../MonitorInverterDailyStatController.java | 143 + .../MonitorInverterStatController.java | 146 + .../nh/controller/PowerStationController.java | 475 + .../PowerStationInefficientController.java | 263 + .../modules/nh/excel/AlarmCodeExcel.java | 98 + .../modules/nh/excel/AlarmInfoExcel.java | 127 + .../modules/nh/excel/DeviceExcel.java | 146 + .../nh/excel/InefficientSettingExcel.java | 146 + .../nh/excel/InefficientSettingImporter.java | 51 + .../modules/nh/excel/InverterDataExcel.java | 176 + .../modules/nh/excel/InverterUapExcel.java | 381 + .../modules/nh/excel/MaterialExcel.java | 78 + .../nh/excel/MonitorEntryDailyStatExcel.java | 374 + .../nh/excel/MonitorEntryMonthStatExcel.java | 80 + .../nh/excel/MonitorEntryStatExcel.java | 136 + .../nh/excel/MonitorEntryYearStatExcel.java | 99 + .../nh/excel/MonitorInverterStatExcel.java | 243 + .../modules/nh/excel/PowerStationExcel.java | 216 + .../modules/nh/excel/PowerStationImport.java | 143 + .../nh/excel/PowerStationImporter.java | 51 + .../excel/PowerStationInefficientExcel.java | 137 + .../modules/nh/excel/StationStaticsExcel.java | 219 + .../modules/nh/factory/aiswei/AisweiApi.java | 268 + .../modules/nh/factory/aiswei/AisweiPage.java | 52 + .../modules/nh/factory/aiswei/AisweiRet.java | 32 + .../factory/aiswei/AisweiTestController.java | 207 + .../aiswei/config/AisweiApiRestTemplate.java | 43 + .../nh/factory/aiswei/constant/Constants.java | 47 + .../factory/aiswei/constant/ContentType.java | 35 + .../factory/aiswei/constant/HttpHeader.java | 35 + .../factory/aiswei/constant/HttpMethod.java | 33 + .../factory/aiswei/constant/HttpSchema.java | 30 + .../factory/aiswei/constant/SystemHeader.java | 35 + .../getdevicelistpro/GetDeviceListProR.java | 23 + .../getdevicelistpro/GetDeviceListProReq.java | 17 + .../GetDeviceListProResp.java | 20 + .../GetInverterCurrentErrorProR.java | 26 + .../GetInverterCurrentErrorProReq.java | 12 + .../GetInverterDataPageProData.java | 13 + .../GetInverterDataPageProR.java | 172 + .../GetInverterDataPageProReq.java | 26 + .../GetInverterETodayProData.java | 17 + .../GetInverterETodayProReq.java | 24 + .../GetInverterHisErrorPageProR.java | 24 + .../GetInverterHisErrorPageProReq.java | 28 + .../GetInverterOverviewProData.java | 13 + .../GetInverterOverviewProR.java | 49 + .../GetInverterOverviewProReq.java | 18 + .../GetInverterRecoverStatusProR.java | 22 + .../GetInverterRecoverStatusProReq.java | 14 + .../getlasttsdatapro/GetLastTsDataProR.java | 168 + .../getlasttsdatapro/GetLastTsDataProReq.java | 14 + .../dto/getplanlistpro/GetPlanListProR.java | 75 + .../dto/getplanlistpro/GetPlanListProReq.java | 14 + .../getplantoutputpro/GetPlantOutputProR.java | 21 + .../GetPlantOutputProReq.java | 30 + .../GetPlantOutputProResp.java | 14 + .../GetPlantOverviewProR.java | 46 + .../GetPlantOverviewProReq.java | 11 + .../dto/getplantoverviewpro/UnitData.java | 11 + .../nh/factory/aiswei/enums/Method.java | 27 + .../scheduler/AisStationDMYEachRunner.java | 179 + .../scheduler/AisweiAlarmEachRunner.java | 93 + .../AisweiAlarmHistoryPageAction.java | 108 + .../AisweiAlarmRecoverEachRunner.java | 56 + .../AisweiHistoryAlarmEachRunner.java | 23 + .../AisweiInverterDetailEachRunner.java | 32 + .../AisweiInverterDetailPageAction.java | 86 + .../scheduler/AisweiInverterEachRunner.java | 95 + .../AisweiInverterLatestDetailEachRunner.java | 131 + .../aiswei/scheduler/AisweiScheduler.java | 232 + .../AisweiStationFisGenDateEachRunner.java | 93 + .../AisweiUserStationEachRunner.java | 63 + .../AisweiUserStationListPageAction.java | 130 + .../aiswei/util/AisweiObjectMapper.java | 26 + .../nh/factory/aiswei/util/AisweiRequest.java | 199 + .../factory/aiswei/util/AisweiResponse.java | 82 + .../nh/factory/aiswei/util/Client.java | 95 + .../nh/factory/aiswei/util/HttpUtil.java | 481 + .../nh/factory/aiswei/util/HttpUtils.java | 311 + .../aiswei/util/MessageDigestUtil.java | 118 + .../nh/factory/aiswei/util/SignUtil.java | 227 + .../modules/nh/factory/common/EachRunner.java | 54 + .../nh/factory/common/EzTemplateBase.java | 195 + .../modules/nh/factory/common/PageAction.java | 95 + .../modules/nh/factory/common/PageInfo.java | 14 + .../modules/nh/factory/common/TimeWindow.java | 65 + .../nh/factory/common/TokenBucket.java | 45 + .../nh/factory/common/WindowEntry.java | 13 + .../nh/factory/ginlong/GinlongApi.java | 229 + .../ginlong/GinlongApiRestTemplate.java | 85 + .../ginlong/GinlongApiTestController.java | 223 + .../modules/nh/factory/ginlong/IRet.java | 51 + .../modules/nh/factory/ginlong/Page.java | 16 + .../ginlong/dto/alarmlist/GetAlarmListR.java | 75 + .../dto/alarmlist/GetAlarmListReq.java | 29 + .../dto/collectorlist/GetCollectorListR.java | 44 + .../collectorlist/GetCollectorListReq.java | 12 + .../collectorlist/GetCollectorListResp.java | 11 + .../dto/inverterday/GetInverterDayR.java | 25 + .../dto/inverterday/GetInverterDayReq.java | 28 + .../GetInverterDetailListReq.java | 12 + .../GetInverterDetailR.java | 371 + .../dto/inverterlist/GetInverterListReq.java | 14 + .../dto/inverterlist/GetInverterListResp.java | 12 + .../dto/inverterlist/GetInverterR.java | 105 + .../dto/inverterlist/InverterStatusVo.java | 12 + .../dto/invertermonth/GetInverterMonthR.java | 15 + .../invertermonth/GetInverterMonthReq.java | 26 + .../dto/stationday/GetStationDayR.java | 14 + .../dto/stationday/GetStationDayReq.java | 26 + .../GetStationDayEnergyListR.java | 21 + .../GetStationDayEnergyListReq.java | 20 + .../dto/stationmonth/GetStationMonthR.java | 23 + .../dto/stationmonth/GetStationMonthReq.java | 26 + .../dto/stationyear/GetStationYearR.java | 23 + .../dto/stationyear/GetStationYearReq.java | 26 + .../userstationlist/GetStationListReq.java | 13 + .../userstationlist/GetStationListResp.java | 12 + .../dto/userstationlist/GetStationR.java | 109 + .../dto/userstationlist/StationStatusVo.java | 13 + .../scheduler/CollectorListPageAction.java | 48 + .../scheduler/GinlongAlarmListPageAction.java | 76 + .../GinlongInverterDayEachRunner.java | 72 + .../GinlongInverterDetailListPageAction.java | 75 + .../ginlong/scheduler/GinlongScheduler.java | 160 + .../GinlongStationFisGenDateEachRunner.java | 82 + .../GinlongStationMonthEachRunner.java | 81 + .../GinlongStationYearEachRunner.java | 83 + .../GinlongUserStationListPageAction.java | 89 + .../modules/nh/factory/goodwe/GoodweApi.java | 186 + .../goodwe/GoodweApiTestController.java | 158 + .../modules/nh/factory/goodwe/GoodweRet.java | 41 + .../goodwe/config/GoodweApiRestTemplate.java | 160 + .../nh/factory/goodwe/dto/GetIndexReq.java | 10 + .../nh/factory/goodwe/dto/GoodweApiReq.java | 10 + .../GetInventersDatasData.java | 23 + .../getInventersdatas/GetInventersDatasR.java | 52 + .../GetInventersDatasRd.java | 93 + .../GetInventersDatasReq.java | 16 + .../GetInverterPacByDayR.java | 15 + .../GetInverterPacByDayReq.java | 12 + .../dto/getinventersmoredetailinfobysn/D.java | 75 + .../GetInventersMoreDetailInfoBySnReq.java | 11 + .../GetInventersMoreDetailInfoBySnResp.java | 30 + .../GetInverterDataByColumnR.java | 22 + .../GetInverterDataByColumnReq.java | 26 + .../GetInverterDataByColumnResp.java | 12 + .../getinverterpower/GetInverterPowerR.java | 14 + .../getinverterpower/GetInverterPowerReq.java | 34 + .../getplantspowers/GetPlantsPowersData.java | 15 + .../dto/getplantspowers/GetPlantsPowersR.java | 12 + .../getplantspowers/GetPlantsPowersReq.java | 25 + .../GetPlantsPowersSiteData.java | 14 + .../GetPlantsStaticDatasData.java | 12 + .../GetPlantsStaticDatasR.java | 22 + .../GetPlantsStaticDatasReq.java | 26 + .../GetPlantsStaticDatasReqByTime.java | 34 + .../GetPlantsStaticDatasSiteData.java | 14 + .../GetPowerStationPacByDayR.java | 14 + .../GetPowerStationPacByDayReq.java | 17 + .../GetPowerStationPowerR.java | 14 + .../GetPowerStationPowerReq.java | 33 + ...ationWariningInfoByMultiConditionData.java | 13 + ...rStationWariningInfoByMultiConditionR.java | 53 + ...tationWariningInfoByMultiConditionReq.java | 39 + .../goodwe/dto/gettoken/GetTokenR.java | 11 + .../goodwe/dto/gettoken/GetTokenReq.java | 12 + .../queryinventers/QueryInventersData.java | 16 + .../dto/queryinventers/QueryInventersR.java | 54 + .../dto/queryinventers/QueryInventersReq.java | 26 + .../QueryPowerStationMonitorData.java | 13 + .../QueryPowerStationMonitorR.java | 47 + .../QueryPowerStationMonitorReq.java | 48 + .../scheduler/GoodweAlarmPageAction.java | 107 + .../GoodweInverterDayEachRunner.java | 58 + .../GoodweInverterDetailListPageAction.java | 96 + .../scheduler/GoodweInverterEachRunner.java | 26 + .../GoodweInverterPacByDayEachRunner.java | 56 + .../goodwe/scheduler/GoodweScheduler.java | 184 + .../GoodweStationAlarmEachRunner.java | 26 + .../GoodweStationFisGenDateEachRunner.java | 101 + .../GoodweStationMonthEachRunner.java | 62 + .../GoodweStationYearEachRunner.java | 86 + .../GoodweUserStationListPageAction.java | 137 + .../modules/nh/factory/saj/SajApi.java | 125 + .../nh/factory/saj/SajApiRestTemplate.java | 101 + .../modules/nh/factory/saj/req/BaseReq.java | 9 + .../saj/req/QueryDeviceHistoryReq.java | 11 + .../factory/saj/req/QueryPlantEnergyReq.java | 10 + .../nh/factory/saj/req/SajPageReq.java | 9 + .../nh/factory/saj/resp/BasePlant.java | 10 + .../factory/saj/resp/DeviceRealtimeData.java | 114 + .../nh/factory/saj/resp/SajDevice.java | 17 + .../nh/factory/saj/resp/SajDeviceData.java | 12 + .../factory/saj/resp/SajDeviceDataItem.java | 11 + .../nh/factory/saj/resp/SajPageRet.java | 14 + .../nh/factory/saj/resp/SajPlantCurrent.java | 16 + .../nh/factory/saj/resp/SajPlantData.java | 25 + .../nh/factory/saj/resp/SajPlantDetail.java | 49 + .../modules/nh/factory/saj/resp/SajRet.java | 10 + .../scheduler/SajDeviceHistoryEachRunner.java | 141 + .../scheduler/SajDeviceListPageAction.java | 99 + .../SajDeviceRealtimeEachRunner.java | 134 + .../factory/saj/scheduler/SajScheduler.java | 141 + .../scheduler/SajStationDataEachRunner.java | 137 + .../scheduler/SajStationDetailEachRunner.java | 56 + .../SajStationFisGenDateEachRunner.java | 102 + .../scheduler/SajStationListPageAction.java | 107 + .../scheduler/SajStationStatusEachRunner.java | 117 + .../modules/nh/job/InefficientScheduler.java | 380 + .../modules/nh/job/UpdateDataScheduler.java | 403 + .../modules/nh/mapper/AlarmCodeMapper.java | 63 + .../modules/nh/mapper/AlarmCodeMapper.xml | 34 + .../modules/nh/mapper/AlarmInfoMapper.java | 73 + .../modules/nh/mapper/AlarmInfoMapper.xml | 77 + .../modules/nh/mapper/DeviceMapper.java | 67 + .../modules/nh/mapper/DeviceMapper.xml | 50 + .../modules/nh/mapper/DeviceMsgMapper.java | 42 + .../nh/mapper/InefficientSettingMapper.java | 63 + .../nh/mapper/InefficientSettingMapper.xml | 48 + .../modules/nh/mapper/InverterDataMapper.java | 73 + .../modules/nh/mapper/InverterDataMapper.xml | 132 + .../modules/nh/mapper/InverterUapMapper.java | 66 + .../modules/nh/mapper/InverterUapMapper.xml | 83 + .../mapper/MonitorEntryDailyStatMapper.java | 65 + .../nh/mapper/MonitorEntryDailyStatMapper.xml | 98 + .../mapper/MonitorEntryMonthStatMapper.java | 75 + .../nh/mapper/MonitorEntryMonthStatMapper.xml | 125 + .../nh/mapper/MonitorEntryStatMapper.java | 74 + .../nh/mapper/MonitorEntryStatMapper.xml | 68 + .../nh/mapper/MonitorEntryYearStatMapper.java | 66 + .../nh/mapper/MonitorEntryYearStatMapper.xml | 67 + .../MonitorInverterDailyStatMapper.java | 54 + .../mapper/MonitorInverterDailyStatMapper.xml | 72 + .../nh/mapper/MonitorInverterStatMapper.java | 73 + .../nh/mapper/MonitorInverterStatMapper.xml | 90 + .../mapper/PowerStationInefficientMapper.java | 63 + .../mapper/PowerStationInefficientMapper.xml | 46 + .../modules/nh/mapper/PowerStationMapper.java | 90 + .../modules/nh/mapper/PowerStationMapper.xml | 261 + .../modules/nh/pojo/dto/AlarmCodeDTO.java | 45 + .../modules/nh/pojo/dto/AlarmInfoDTO.java | 45 + .../modules/nh/pojo/dto/DeviceDTO.java | 74 + .../nh/pojo/dto/InefficientSettingDTO.java | 45 + .../modules/nh/pojo/dto/InverterDataDTO.java | 45 + .../modules/nh/pojo/dto/InverterUapDTO.java | 49 + .../nh/pojo/dto/MonitorEntryDailyStatDTO.java | 45 + .../nh/pojo/dto/MonitorEntryMonthStatDTO.java | 45 + .../nh/pojo/dto/MonitorEntryStatDTO.java | 104 + .../nh/pojo/dto/MonitorEntryYearStatDTO.java | 45 + .../pojo/dto/MonitorInverterDailyStatDTO.java | 45 + .../nh/pojo/dto/MonitorInverterStatDTO.java | 45 + .../modules/nh/pojo/dto/PowerStationDTO.java | 47 + .../pojo/dto/PowerStationInefficientDTO.java | 45 + .../pojo/dto/PowerStationPaymentTimeDTO.java | 22 + .../modules/nh/pojo/dto/StationDTO.java | 25 + .../modules/nh/pojo/dto/WeatherHistory.java | 19 + .../nh/pojo/dto/open/YXInverterDataDTO.java | 130 + .../nh/pojo/dto/open/YXPowerStationDTO.java | 151 + .../nh/pojo/dto/sync/AlarmCountDTO.java | 14 + .../nh/pojo/dto/sync/DayEnergyDTO.java | 13 + .../dto/sync/InverterHourlyDataRecord.java | 16 + .../dto/sync/InverterHourlyEnergyDTO.java | 18 + .../nh/pojo/dto/sync/InverterIdMap.java | 15 + .../pojo/dto/sync/InverterRealtimeData.java | 52 + .../nh/pojo/dto/sync/InverterRecoverDTO.java | 17 + .../nh/pojo/dto/sync/JlglHourlyDTO.java | 12 + .../nh/pojo/dto/sync/LabelValueDTO.java | 9 + .../nh/pojo/dto/sync/MonthEnergyDTO.java | 12 + .../nh/pojo/dto/sync/StationIdMap.java | 9 + .../nh/pojo/entity/AlarmCodeEntity.java | 89 + .../nh/pojo/entity/AlarmInfoEntity.java | 146 + .../modules/nh/pojo/entity/DeviceEntity.java | 103 + .../nh/pojo/entity/DeviceMsgEntity.java | 51 + .../pojo/entity/InefficientSettingEntity.java | 159 + .../nh/pojo/entity/InverterDataEntity.java | 165 + .../nh/pojo/entity/InverterUapEntity.java | 307 + .../entity/MonitorEntryDailyStatEntity.java | 327 + .../entity/MonitorEntryMonthStatEntity.java | 84 + .../pojo/entity/MonitorEntryStatEntity.java | 145 + .../entity/MonitorEntryYearStatEntity.java | 98 + .../MonitorInverterDailyStatEntity.java | 308 + .../entity/MonitorInverterStatEntity.java | 236 + .../nh/pojo/entity/PowerStationEntity.java | 273 + .../entity/PowerStationInefficientEntity.java | 167 + .../modules/nh/pojo/vo/AlarmCodeVO.java | 46 + .../modules/nh/pojo/vo/AlarmInfoVO.java | 57 + .../modules/nh/pojo/vo/DeviceVO.java | 54 + .../modules/nh/pojo/vo/HomeOverviewVO.java | 39 + .../nh/pojo/vo/InefficientSettingVO.java | 46 + .../modules/nh/pojo/vo/InverterDataVO.java | 46 + .../modules/nh/pojo/vo/InverterTreeVO.java | 86 + .../modules/nh/pojo/vo/InverterUapVO.java | 46 + .../nh/pojo/vo/MonitorEntryDailyStatVO.java | 46 + .../nh/pojo/vo/MonitorEntryMonthStatVO.java | 46 + .../nh/pojo/vo/MonitorEntryStatVO.java | 46 + .../nh/pojo/vo/MonitorEntryYearStatVO.java | 46 + .../pojo/vo/MonitorInverterDailyStatVO.java | 46 + .../nh/pojo/vo/MonitorInverterStatVO.java | 46 + .../nh/pojo/vo/OverviewStaticDataVo.java | 44 + .../vo/PowerGenerationTrendCoordinatesVO.java | 19 + .../nh/pojo/vo/PowerStationInefficientVO.java | 46 + .../modules/nh/pojo/vo/PowerStationVO.java | 65 + .../modules/nh/pojo/vo/StaticsMonthVO.java | 12 + .../modules/nh/pojo/vo/StaticsStatusVO.java | 14 + .../modules/nh/pojo/vo/StationStaticsVO.java | 60 + .../modules/nh/service/IAlarmCodeService.java | 65 + .../modules/nh/service/IAlarmInfoService.java | 57 + .../modules/nh/service/IDeviceService.java | 62 + .../service/IInefficientSettingService.java | 44 + .../nh/service/IInverterDataService.java | 82 + .../nh/service/IInverterUapService.java | 66 + .../IMonitorEntryDailyStatService.java | 66 + .../IMonitorEntryMonthStatService.java | 75 + .../nh/service/IMonitorEntryStatService.java | 89 + .../service/IMonitorEntryYearStatService.java | 68 + .../IMonitorInverterDailyStatService.java | 70 + .../service/IMonitorInverterStatService.java | 74 + .../modules/nh/service/INHCommonService.java | 50 + .../IPowerStationInefficientService.java | 55 + .../nh/service/IPowerStationService.java | 102 + .../nh/service/impl/AlarmCodeServiceImpl.java | 90 + .../nh/service/impl/AlarmInfoServiceImpl.java | 419 + .../nh/service/impl/DeviceMsgService.java | 25 + .../nh/service/impl/DeviceServiceImpl.java | 488 + .../impl/InefficientSettingServiceImpl.java | 151 + .../service/impl/InverterDataServiceImpl.java | 267 + .../service/impl/InverterUapServiceImpl.java | 134 + .../MonitorEntryDailyStatServiceImpl.java | 125 + .../MonitorEntryMonthStatServiceImpl.java | 194 + .../impl/MonitorEntryStatServiceImpl.java | 324 + .../impl/MonitorEntryYearStatServiceImpl.java | 223 + .../MonitorInverterDailyStatServiceImpl.java | 289 + .../impl/MonitorInverterStatServiceImpl.java | 466 + .../nh/service/impl/NHCommonServiceImpl.java | 97 + .../PowerStationInefficientServiceImpl.java | 422 + .../service/impl/PowerStationServiceImpl.java | 1274 + .../modules/nh/wrapper/AlarmCodeWrapper.java | 59 + .../modules/nh/wrapper/AlarmInfoWrapper.java | 59 + .../modules/nh/wrapper/DeviceWrapper.java | 59 + .../nh/wrapper/InefficientSettingWrapper.java | 59 + .../nh/wrapper/InverterDataWrapper.java | 59 + .../nh/wrapper/InverterUapWrapper.java | 59 + .../wrapper/MonitorEntryDailyStatWrapper.java | 59 + .../wrapper/MonitorEntryMonthStatWrapper.java | 59 + .../nh/wrapper/MonitorEntryStatWrapper.java | 72 + .../wrapper/MonitorEntryYearStatWrapper.java | 59 + .../MonitorInverterDailyStatWrapper.java | 59 + .../wrapper/MonitorInverterStatWrapper.java | 59 + .../PowerStationInefficientWrapper.java | 59 + .../nh/wrapper/PowerStationWrapper.java | 99 + .../operation/constant/SourceConstants.java | 30 + .../AnnouncementReadinfoController.java | 70 + .../controller/OperationRoleController.java | 217 + .../OperationServiceMeasuresController.java | 162 + .../OperationServiceTypeController.java | 164 + .../controller/OperationSiteController.java | 174 + .../OperationSiteEmployeeController.java | 177 + .../OperationSiteRoleController.java | 161 + .../OperationTechnicalDataController.java | 146 + .../PlatformAnnouncementController.java | 136 + .../PlatformEmployeeController.java | 94 + .../excel/EntryPaymentTimeExcel.java | 32 + .../operation/excel/EntrySiteExcel.java | 64 + .../excel/OperationServiceMeasuresExcel.java | 74 + .../excel/OperationServiceTypeExcel.java | 68 + .../excel/OperationSiteEmployeeExcel.java | 128 + .../operation/excel/OperationSiteExcel.java | 80 + .../excel/OperationSiteRoleExcel.java | 73 + .../excel/OperationTechnicalDataExcel.java | 86 + .../excel/PlatformEmployeeExcel.java | 98 + .../mapper/AnnouncementReadinfoMapper.java | 43 + .../mapper/AnnouncementReadinfoMapper.xml | 22 + .../OperationServiceMeasuresMapper.java | 63 + .../mapper/OperationServiceMeasuresMapper.xml | 24 + .../mapper/OperationServiceTypeMapper.java | 64 + .../mapper/OperationServiceTypeMapper.xml | 31 + .../mapper/OperationSiteEmployeeMapper.java | 78 + .../mapper/OperationSiteEmployeeMapper.xml | 91 + .../operation/mapper/OperationSiteMapper.java | 73 + .../operation/mapper/OperationSiteMapper.xml | 92 + .../mapper/OperationSiteRoleMapper.java | 65 + .../mapper/OperationSiteRoleMapper.xml | 30 + .../mapper/OperationTechnicalDataMapper.java | 66 + .../mapper/OperationTechnicalDataMapper.xml | 38 + .../mapper/PlatformAnnouncementMapper.java | 57 + .../mapper/PlatformAnnouncementMapper.xml | 62 + .../mapper/PlatformEmployeeMapper.java | 69 + .../mapper/PlatformEmployeeMapper.xml | 70 + .../pojo/dto/OperationServiceMeasuresDTO.java | 50 + .../pojo/dto/OperationServiceTypeDTO.java | 47 + .../operation/pojo/dto/OperationSiteDTO.java | 45 + .../pojo/dto/OperationSiteEmployeeDTO.java | 51 + .../pojo/dto/OperationSiteRoleDTO.java | 45 + .../pojo/dto/OperationTechnicalDataDTO.java | 45 + .../pojo/dto/PlatformEmployeeDTO.java | 45 + .../entity/AnnouncementReadinfoEntity.java | 88 + .../OperationServiceMeasuresEntity.java | 87 + .../entity/OperationServiceTypeEntity.java | 89 + .../entity/OperationSiteEmployeeEntity.java | 152 + .../pojo/entity/OperationSiteEntity.java | 128 + .../pojo/entity/OperationSiteRoleEntity.java | 78 + .../entity/OperationTechnicalDataEntity.java | 105 + .../entity/PlatformAnnouncementEntity.java | 111 + .../pojo/entity/PlatformEmployeeEntity.java | 108 + .../pojo/vo/AnnouncementReadinfoVO.java | 46 + .../operation/pojo/vo/EditSiteEmpAuthVo.java | 29 + .../modules/operation/pojo/vo/EmpAuthVo.java | 24 + .../operation/pojo/vo/OperationEmpVo.java | 24 + .../pojo/vo/OperationServiceMeasuresVO.java | 46 + .../pojo/vo/OperationServiceTypeVO.java | 46 + .../pojo/vo/OperationSiteEmployeeVO.java | 52 + .../pojo/vo/OperationSiteRoleVO.java | 51 + .../operation/pojo/vo/OperationSiteVO.java | 64 + .../pojo/vo/OperationTechnicalDataVO.java | 46 + .../pojo/vo/PlatformAnnouncementVO.java | 58 + .../operation/pojo/vo/PlatformEmployeeVO.java | 46 + .../service/IAnnouncementReadinfoService.java | 41 + .../IOperationServiceMeasuresService.java | 65 + .../service/IOperationServiceTypeService.java | 69 + .../IOperationSiteEmployeeService.java | 78 + .../service/IOperationSiteRoleService.java | 70 + .../service/IOperationSiteService.java | 84 + .../IOperationTechnicalDataService.java | 68 + .../service/IPlatformAnnouncementService.java | 56 + .../service/IPlatformEmployeeService.java | 52 + .../impl/AnnouncementReadinfoServiceImpl.java | 50 + .../OperationServiceMeasuresServiceImpl.java | 90 + .../impl/OperationServiceTypeServiceImpl.java | 99 + .../OperationSiteEmployeeServiceImpl.java | 222 + .../impl/OperationSiteRoleServiceImpl.java | 125 + .../impl/OperationSiteServiceImpl.java | 270 + .../OperationTechnicalDataServiceImpl.java | 100 + .../impl/PlatformAnnouncementServiceImpl.java | 67 + .../impl/PlatformEmployeeServiceImpl.java | 104 + .../wrapper/AnnouncementReadinfoWrapper.java | 52 + .../OperationServiceMeasuresWrapper.java | 59 + .../wrapper/OperationServiceTypeWrapper.java | 59 + .../wrapper/OperationSiteEmployeeWrapper.java | 59 + .../wrapper/OperationSiteRoleWrapper.java | 59 + .../wrapper/OperationSiteWrapper.java | 59 + .../OperationTechnicalDataWrapper.java | 59 + .../wrapper/PlatformAnnouncementWrapper.java | 59 + .../wrapper/PlatformEmployeeWrapper.java | 59 + .../order/constant/DeliverOrderConstants.java | 186 + .../constant/MaterialBatchConstants.java | 13 + .../order/constant/OrderConstants.java | 107 + .../order/constant/PendingOrderConstants.java | 35 + .../OperationOrderCallbackController.java | 93 + .../controller/OperationOrderController.java | 181 + .../OperationOrderDispatchController.java | 91 + .../OperationOrderFeedbackController.java | 91 + .../OperationOrderLetterController.java | 57 + .../OperationOrderSettleController.java | 116 + .../OperationOrderSiteDispatchController.java | 103 + .../excel/OperationOrderCallbackExcel.java | 85 + .../order/excel/OperationOrderExcel.java | 278 + .../excel/OperationOrderFeedbackExcel.java | 170 + .../excel/OperationOrderSettleExcel.java | 93 + .../OperationOrderSiteDispatchExcel.java | 116 + .../mapper/OperationOrderCallbackMapper.java | 67 + .../mapper/OperationOrderCallbackMapper.xml | 31 + .../mapper/OperationOrderDispatchMapper.java | 57 + .../mapper/OperationOrderDispatchMapper.xml | 36 + .../mapper/OperationOrderFeedbackMapper.java | 64 + .../mapper/OperationOrderFeedbackMapper.xml | 39 + .../mapper/OperationOrderLetterMapper.java | 18 + .../mapper/OperationOrderLetterMapper.xml | 17 + .../order/mapper/OperationOrderMapper.java | 92 + .../order/mapper/OperationOrderMapper.xml | 342 + .../OperationOrderOperationInfoMapper.java | 55 + .../OperationOrderOperationInfoMapper.xml | 24 + .../mapper/OperationOrderSettleMapper.java | 67 + .../mapper/OperationOrderSettleMapper.xml | 83 + .../OperationOrderSiteDispatchMapper.java | 63 + .../OperationOrderSiteDispatchMapper.xml | 32 + .../pojo/dto/OperationOrderCallbackDTO.java | 45 + .../order/pojo/dto/OperationOrderDTO.java | 45 + .../pojo/dto/OperationOrderFeedbackDTO.java | 46 + .../pojo/dto/OperationOrderSettleDTO.java | 71 + .../dto/OperationOrderSiteDispatchDTO.java | 45 + .../order/pojo/dto/OrderLetterDTO.java | 39 + .../entity/OperationOrderCallbackEntity.java | 93 + .../entity/OperationOrderDispatchEntity.java | 139 + .../pojo/entity/OperationOrderEntity.java | 490 + .../entity/OperationOrderFeedbackEntity.java | 111 + .../entity/OperationOrderLetterEntity.java | 61 + .../OperationOrderOperationInfoEntity.java | 82 + .../entity/OperationOrderSettleEntity.java | 104 + .../OperationOrderSiteDispatchEntity.java | 124 + .../order/pojo/form/ComplaintForm.java | 112 + .../order/pojo/form/ComplaintReply.java | 31 + .../order/pojo/form/EvaluationForm.java | 50 + .../modules/order/pojo/form/FeedbackForm.java | 26 + .../form/OperationOrderConditionForm.java | 38 + .../modules/order/pojo/vo/ExamineOrderVo.java | 13 + .../pojo/vo/OperationOrderCallbackVO.java | 46 + .../pojo/vo/OperationOrderDispatchVO.java | 46 + .../pojo/vo/OperationOrderFeedbackVO.java | 68 + .../vo/OperationOrderOperationInfoVO.java | 46 + .../order/pojo/vo/OperationOrderSettleVO.java | 120 + .../pojo/vo/OperationOrderSiteDispatchVO.java | 46 + .../order/pojo/vo/OperationOrderVO.java | 91 + .../modules/order/pojo/vo/OrderHomeVo.java | 24 + .../order/pojo/vo/OrderListConditionVo.java | 98 + .../modules/order/pojo/vo/OrderStaticVo.java | 27 + .../modules/order/pojo/vo/OrderVo.java | 39 + .../modules/order/pojo/vo/SelectVo.java | 15 + .../IOperationOrderCallbackService.java | 50 + .../IOperationOrderDispatchService.java | 52 + .../IOperationOrderFeedbackService.java | 51 + .../IOperationOrderOperationInfoService.java | 51 + .../order/service/IOperationOrderService.java | 87 + .../service/IOperationOrderSettleService.java | 67 + .../IOperationOrderSiteDispatchService.java | 53 + .../OperationOrderCallbackServiceImpl.java | 124 + .../OperationOrderDispatchServiceImpl.java | 204 + .../OperationOrderFeedbackServiceImpl.java | 185 + .../impl/OperationOrderLetterService.java | 138 + ...perationOrderOperationInfoServiceImpl.java | 57 + .../impl/OperationOrderServiceImpl.java | 704 + .../impl/OperationOrderSettleServiceImpl.java | 208 + ...OperationOrderSiteDispatchServiceImpl.java | 321 + .../modules/order/utils/ExcelReader.java | 63 + .../modules/order/utils/PlantformUtils.java | 127 + .../modules/order/utils/Target.java | 68 + .../modules/order/utils/WebPageFunUtils.java | 237 + .../OperationOrderCallbackWrapper.java | 59 + .../OperationOrderDispatchWrapper.java | 59 + .../OperationOrderFeedbackWrapper.java | 60 + .../OperationOrderOperationInfoWrapper.java | 59 + .../wrapper/OperationOrderSettleWrapper.java | 59 + .../OperationOrderSiteDispatchWrapper.java | 59 + .../order/wrapper/OperationOrderWrapper.java | 59 + .../partner/controller/PartnerController.java | 108 + .../modules/partner/excel/PartnerExcel.java | 176 + .../modules/partner/mapper/PartnerMapper.java | 65 + .../modules/partner/mapper/PartnerMapper.xml | 47 + .../modules/partner/pojo/dto/PartnerDTO.java | 45 + .../partner/pojo/entity/PartnerEntity.java | 164 + .../modules/partner/pojo/vo/PartnerVO.java | 46 + .../partner/service/IPartnerService.java | 63 + .../service/impl/PartnerServiceImpl.java | 70 + .../partner/wrapper/PartnerWrapper.java | 59 + .../modules/resource/builder/OssBuilder.java | 163 + .../modules/resource/builder/SmsBuilder.java | 168 + .../config/BladeOssConfiguration.java | 56 + .../config/BladeSmsConfiguration.java | 59 + .../resource/controller/AttachController.java | 136 + .../resource/controller/OssController.java | 160 + .../resource/controller/SmsController.java | 161 + .../resource/endpoint/OssEndpoint.java | 256 + .../resource/endpoint/SmsEndpoint.java | 188 + .../modules/resource/mapper/AttachMapper.java | 50 + .../modules/resource/mapper/AttachMapper.xml | 28 + .../modules/resource/mapper/OssMapper.java | 51 + .../modules/resource/mapper/OssMapper.xml | 30 + .../modules/resource/mapper/SmsMapper.java | 51 + .../modules/resource/mapper/SmsMapper.xml | 30 + .../modules/resource/pojo/entity/Attach.java | 82 + .../modules/resource/pojo/entity/Oss.java | 105 + .../modules/resource/pojo/entity/Sms.java | 93 + .../resource/pojo/enums/SmsCodeEnum.java | 71 + .../modules/resource/pojo/vo/AttachVO.java | 47 + .../modules/resource/pojo/vo/OssVO.java | 32 + .../modules/resource/pojo/vo/SmsVO.java | 57 + .../resource/rule/context/OssContext.java | 73 + .../resource/rule/context/SmsContext.java | 73 + .../modules/resource/rule/oss/AliOssRule.java | 85 + .../resource/rule/oss/AmazonS3Rule.java | 89 + .../resource/rule/oss/FinallyOssRule.java | 67 + .../resource/rule/oss/HuaweiObsRule.java | 83 + .../modules/resource/rule/oss/MinioRule.java | 71 + .../resource/rule/oss/OssBuildRule.java | 62 + .../resource/rule/oss/OssCacheRule.java | 51 + .../resource/rule/oss/OssDataRule.java | 54 + .../resource/rule/oss/OssReadRule.java | 57 + .../resource/rule/oss/OssTemplateRule.java | 51 + .../modules/resource/rule/oss/PreOssRule.java | 64 + .../resource/rule/oss/QiniuOssRule.java | 76 + .../resource/rule/oss/TencentCosRule.java | 87 + .../modules/resource/rule/sms/AliSmsRule.java | 71 + .../resource/rule/sms/CacheSmsRule.java | 61 + .../resource/rule/sms/FinallySmsRule.java | 67 + .../modules/resource/rule/sms/PreSmsRule.java | 61 + .../resource/rule/sms/QiniuSmsRule.java | 67 + .../resource/rule/sms/SmsBuildRule.java | 62 + .../resource/rule/sms/TencentSmsRule.java | 66 + .../resource/rule/sms/YunpianSmsRule.java | 64 + .../resource/service/IAttachService.java | 49 + .../modules/resource/service/IOssService.java | 65 + .../modules/resource/service/ISmsService.java | 65 + .../service/impl/AttachServiceImpl.java | 49 + .../resource/service/impl/OssServiceImpl.java | 76 + .../resource/service/impl/SmsServiceImpl.java | 76 + .../resource/template/BladeS3Template.java | 309 + .../modules/resource/utils/SmsUtil.java | 118 + .../modules/resource/wrapper/OssWrapper.java | 58 + .../modules/resource/wrapper/SmsWrapper.java | 58 + .../system/controller/ApiScopeController.java | 132 + .../controller/AuthClientController.java | 127 + .../controller/DataScopeController.java | 132 + .../system/controller/DeptController.java | 167 + .../system/controller/DictBizController.java | 220 + .../system/controller/DictController.java | 218 + .../system/controller/LogApiController.java | 82 + .../system/controller/LogErrorController.java | 82 + .../system/controller/LogUsualController.java | 82 + .../system/controller/MenuController.java | 336 + .../system/controller/ParamController.java | 124 + .../system/controller/PostController.java | 159 + .../system/controller/RegionController.java | 239 + .../system/controller/RoleController.java | 189 + .../system/controller/SearchController.java | 134 + .../system/controller/TenantController.java | 240 + .../controller/TenantPackageController.java | 143 + .../system/controller/TopMenuController.java | 145 + .../system/controller/UserController.java | 330 + .../modules/system/excel/RegionExcel.java | 101 + .../modules/system/excel/RegionImporter.java | 49 + .../modules/system/excel/UserExcel.java | 108 + .../modules/system/excel/UserImporter.java | 49 + .../modules/system/mapper/ApiScopeMapper.java | 38 + .../modules/system/mapper/ApiScopeMapper.xml | 5 + .../system/mapper/AuthClientMapper.java | 38 + .../system/mapper/AuthClientMapper.xml | 27 + .../system/mapper/DataScopeMapper.java | 38 + .../modules/system/mapper/DataScopeMapper.xml | 5 + .../modules/system/mapper/DeptMapper.java | 77 + .../modules/system/mapper/DeptMapper.xml | 115 + .../modules/system/mapper/DictBizMapper.java | 72 + .../modules/system/mapper/DictBizMapper.xml | 51 + .../modules/system/mapper/DictMapper.java | 82 + .../modules/system/mapper/DictMapper.xml | 54 + .../modules/system/mapper/LogApiMapper.java | 38 + .../modules/system/mapper/LogApiMapper.xml | 26 + .../modules/system/mapper/LogErrorMapper.java | 38 + .../modules/system/mapper/LogErrorMapper.xml | 27 + .../modules/system/mapper/LogUsualMapper.java | 38 + .../modules/system/mapper/LogUsualMapper.xml | 22 + .../modules/system/mapper/MenuMapper.java | 207 + .../modules/system/mapper/MenuMapper.xml | 496 + .../modules/system/mapper/ParamMapper.java | 38 + .../modules/system/mapper/ParamMapper.xml | 20 + .../modules/system/mapper/PostMapper.java | 59 + .../modules/system/mapper/PostMapper.xml | 40 + .../modules/system/mapper/RegionMapper.java | 71 + .../modules/system/mapper/RegionMapper.xml | 105 + .../modules/system/mapper/RoleMapper.java | 76 + .../modules/system/mapper/RoleMapper.xml | 67 + .../modules/system/mapper/RoleMenuMapper.java | 50 + .../modules/system/mapper/RoleMenuMapper.xml | 16 + .../system/mapper/RoleScopeMapper.java | 38 + .../modules/system/mapper/RoleScopeMapper.xml | 12 + .../modules/system/mapper/TenantMapper.java | 50 + .../modules/system/mapper/TenantMapper.xml | 31 + .../system/mapper/TenantPackageMapper.java | 38 + .../system/mapper/TenantPackageMapper.xml | 20 + .../modules/system/mapper/TopMenuMapper.java | 38 + .../modules/system/mapper/TopMenuMapper.xml | 21 + .../system/mapper/TopMenuSettingMapper.java | 38 + .../system/mapper/TopMenuSettingMapper.xml | 5 + .../modules/system/mapper/UserAppMapper.java | 39 + .../modules/system/mapper/UserAppMapper.xml | 5 + .../modules/system/mapper/UserDeptMapper.java | 39 + .../modules/system/mapper/UserDeptMapper.xml | 5 + .../modules/system/mapper/UserMapper.java | 74 + .../modules/system/mapper/UserMapper.xml | 84 + .../system/mapper/UserOauthMapper.java | 38 + .../modules/system/mapper/UserOauthMapper.xml | 22 + .../system/mapper/UserOtherMapper.java | 39 + .../modules/system/mapper/UserOtherMapper.xml | 5 + .../modules/system/mapper/UserWebMapper.java | 39 + .../modules/system/mapper/UserWebMapper.xml | 5 + .../modules/system/pojo/dto/DeptDTO.java | 45 + .../modules/system/pojo/dto/DictDTO.java | 45 + .../modules/system/pojo/dto/MenuDTO.java | 44 + .../modules/system/pojo/dto/ParamDTO.java | 45 + .../modules/system/pojo/dto/PostDTO.java | 45 + .../modules/system/pojo/dto/RoleDTO.java | 45 + .../modules/system/pojo/dto/RoleMenuDTO.java | 45 + .../modules/system/pojo/entity/ApiScope.java | 82 + .../system/pojo/entity/AuthClient.java | 109 + .../modules/system/pojo/entity/DataScope.java | 97 + .../modules/system/pojo/entity/Dept.java | 118 + .../modules/system/pojo/entity/Dict.java | 112 + .../modules/system/pojo/entity/DictBiz.java | 118 + .../modules/system/pojo/entity/Menu.java | 162 + .../modules/system/pojo/entity/Param.java | 75 + .../modules/system/pojo/entity/Post.java | 77 + .../modules/system/pojo/entity/Region.java | 138 + .../modules/system/pojo/entity/Role.java | 103 + .../modules/system/pojo/entity/RoleMenu.java | 75 + .../modules/system/pojo/entity/RoleScope.java | 81 + .../modules/system/pojo/entity/Tenant.java | 122 + .../system/pojo/entity/TenantPackage.java | 67 + .../modules/system/pojo/entity/TopMenu.java | 72 + .../system/pojo/entity/TopMenuSetting.java | 38 + .../modules/system/pojo/entity/User.java | 107 + .../modules/system/pojo/entity/UserApp.java | 75 + .../modules/system/pojo/entity/UserDept.java | 74 + .../modules/system/pojo/entity/UserInfo.java | 78 + .../modules/system/pojo/entity/UserOauth.java | 119 + .../modules/system/pojo/entity/UserOther.java | 75 + .../modules/system/pojo/entity/UserWeb.java | 75 + .../modules/system/pojo/vo/ApiScopeVO.java | 51 + .../modules/system/pojo/vo/CheckedTreeVO.java | 46 + .../modules/system/pojo/vo/DataScopeVO.java | 51 + .../modules/system/pojo/vo/DeptVO.java | 95 + .../modules/system/pojo/vo/DictBizVO.java | 82 + .../modules/system/pojo/vo/DictVO.java | 82 + .../modules/system/pojo/vo/GrantTreeVO.java | 53 + .../modules/system/pojo/vo/GrantVO.java | 60 + .../modules/system/pojo/vo/MenuVO.java | 104 + .../modules/system/pojo/vo/ParamVO.java | 47 + .../modules/system/pojo/vo/PostVO.java | 52 + .../modules/system/pojo/vo/RegionVO.java | 100 + .../modules/system/pojo/vo/RoleMenuVO.java | 47 + .../modules/system/pojo/vo/RoleVO.java | 83 + .../modules/system/pojo/vo/UserVO.java | 97 + .../modules/system/rule/TenantContext.java | 100 + .../modules/system/rule/TenantDeptRule.java | 62 + .../system/rule/TenantDictBizRule.java | 90 + .../modules/system/rule/TenantPostRule.java | 58 + .../system/rule/TenantRoleMenuRule.java | 88 + .../modules/system/rule/TenantRoleRule.java | 57 + .../modules/system/rule/TenantRule.java | 80 + .../modules/system/rule/TenantUserRule.java | 72 + .../system/service/IApiScopeService.java | 38 + .../system/service/IAuthClientService.java | 38 + .../system/service/IDataScopeService.java | 38 + .../modules/system/service/IDeptService.java | 128 + .../system/service/IDictBizService.java | 109 + .../modules/system/service/IDictService.java | 118 + .../system/service/ILogApiService.java | 38 + .../system/service/ILogErrorService.java | 38 + .../modules/system/service/ILogService.java | 63 + .../system/service/ILogUsualService.java | 38 + .../modules/system/service/IMenuService.java | 191 + .../modules/system/service/IParamService.java | 46 + .../modules/system/service/IPostService.java | 77 + .../system/service/IRegionService.java | 95 + .../system/service/IRoleMenuService.java | 38 + .../system/service/IRoleScopeService.java | 38 + .../modules/system/service/IRoleService.java | 122 + .../system/service/ITenantPackageService.java | 38 + .../system/service/ITenantService.java | 85 + .../system/service/ITopMenuService.java | 50 + .../service/ITopMenuSettingService.java | 38 + .../system/service/IUserDeptService.java | 39 + .../system/service/IUserOauthService.java | 39 + .../system/service/IUserSearchService.java | 73 + .../modules/system/service/IUserService.java | 248 + .../service/impl/ApiScopeServiceImpl.java | 42 + .../service/impl/AuthClientServiceImpl.java | 42 + .../service/impl/DataScopeServiceImpl.java | 42 + .../system/service/impl/DeptServiceImpl.java | 180 + .../service/impl/DictBizServiceImpl.java | 128 + .../system/service/impl/DictServiceImpl.java | 133 + .../service/impl/LogApiServiceImpl.java | 43 + .../service/impl/LogErrorServiceImpl.java | 42 + .../system/service/impl/LogServiceImpl.java | 41 + .../service/impl/LogUsualServiceImpl.java | 42 + .../system/service/impl/MenuServiceImpl.java | 328 + .../system/service/impl/ParamServiceImpl.java | 49 + .../system/service/impl/PostServiceImpl.java | 83 + .../service/impl/RegionServiceImpl.java | 139 + .../service/impl/RoleMenuServiceImpl.java | 42 + .../service/impl/RoleScopeServiceImpl.java | 42 + .../system/service/impl/RoleServiceImpl.java | 244 + .../impl/TenantPackageServiceImpl.java | 42 + .../service/impl/TenantServiceImpl.java | 161 + .../service/impl/TopMenuServiceImpl.java | 71 + .../impl/TopMenuSettingServiceImpl.java | 42 + .../service/impl/UserDeptServiceImpl.java | 43 + .../service/impl/UserOauthServiceImpl.java | 45 + .../service/impl/UserSearchServiceImpl.java | 74 + .../system/service/impl/UserServiceImpl.java | 479 + .../system/wrapper/ApiScopeWrapper.java | 57 + .../system/wrapper/DataScopeWrapper.java | 57 + .../modules/system/wrapper/DeptWrapper.java | 86 + .../system/wrapper/DictBizWrapper.java | 70 + .../modules/system/wrapper/DictWrapper.java | 70 + .../modules/system/wrapper/MenuWrapper.java | 81 + .../modules/system/wrapper/PostWrapper.java | 56 + .../modules/system/wrapper/RegionWrapper.java | 61 + .../modules/system/wrapper/RoleWrapper.java | 70 + .../modules/system/wrapper/UserWrapper.java | 68 + src/main/java/sql/alarmcode.menu.sql | 10 + src/main/java/sql/alarminfo.menu.sql | 10 + src/main/java/sql/device.menu.sql | 10 + src/main/java/sql/examineinfo.menu.sql | 10 + src/main/java/sql/inefficientsetting.menu.sql | 10 + src/main/java/sql/inspectentry.menu.sql | 10 + src/main/java/sql/inspectorder.menu.sql | 10 + src/main/java/sql/inverterdata.menu.sql | 10 + src/main/java/sql/inverteruap.menu.sql | 10 + src/main/java/sql/material.menu.sql | 10 + src/main/java/sql/materialengineer.menu.sql | 10 + .../sql/materialengineeroutbound.menu.sql | 10 + src/main/java/sql/materialoperation.menu.sql | 10 + .../sql/materialoperationoutbound.menu.sql | 10 + src/main/java/sql/materialoutbound.menu.sql | 10 + .../java/sql/monitorentrydailystat.menu.sql | 10 + .../java/sql/monitorentrymonthstat.menu.sql | 10 + src/main/java/sql/monitorentrystat.menu.sql | 10 + .../java/sql/monitorentryyearstat.menu.sql | 10 + .../sql/monitorinverterdailystat.menu.sql | 10 + .../java/sql/monitorinverterstat.menu.sql | 10 + src/main/java/sql/operationsiteapply.menu.sql | 10 + .../java/sql/platformfittingapply.menu.sql | 10 + .../java/sql/platformfittingapplymsg.menu.sql | 10 + src/main/java/sql/powerstation.menu.sql | 10 + .../java/sql/powerstationinefficient.menu.sql | 10 + src/main/java/sql/processdef.menu.sql | 10 + .../java/sql/processdefauditstep.menu.sql | 10 + src/main/java/sql/processdeflatest.menu.sql | 10 + .../java/sql/processdefsubmitstep.menu.sql | 10 + src/main/java/sql/processform.menu.sql | 10 + src/main/resources/application-dev.yml | 76 + src/main/resources/application-prod.yml | 59 + src/main/resources/application-test.yml | 56 + src/main/resources/application.yml | 279 + src/main/resources/banner.txt | 10 + src/main/resources/ehcache.xml | 132 + src/main/resources/liteflow/oss.el.png | Bin 0 -> 234131 bytes src/main/resources/liteflow/oss.el.xml | 24 + src/main/resources/liteflow/sms.el.png | Bin 0 -> 142110 bytes src/main/resources/liteflow/sms.el.xml | 16 + src/main/resources/liteflow/tenant.el.png | Bin 0 -> 107067 bytes src/main/resources/liteflow/tenant.el.xml | 16 + src/main/resources/log/logback-dev.xml | 113 + src/main/resources/log/logback-prod.xml | 151 + src/main/resources/log/logback-test.xml | 151 + .../processes/LeaveProcess.bpmn20.xml | 123 + src/main/resources/static/favicon.ico | Bin 0 -> 16958 bytes .../java/org/springblade/test/BladeTest.java | 45 + .../org/springblade/test/CodeGenerator.java | 98 + .../springblade/test/CryptoKeyGenerator.java | 43 + .../springblade/test/SignKeyGenerator.java | 24 + .../org/springblade/test/http/OsChina.java | 22 + .../springblade/test/http/OsChinaTest.java | 38 + .../java/org/springblade/test/http/VBlog.java | 30 + .../java/org/springblade/test/http/VNews.java | 24 + .../test/launch/LauncherTestServiceImpl.java | 49 + src/test/resources/application-dev.yml | 60 + src/test/resources/application-prod.yml | 42 + src/test/resources/application-test.yml | 42 + src/test/resources/application.yml | 288 + ...gblade.core.launch.service.LauncherService | 1 + .../META-INF/spring-devtools.properties | 1 + target/classes/META-INF/spring.factories | 275 + ...ot.autoconfigure.AutoConfiguration.imports | 274 + target/classes/application-dev.yml | 76 + target/classes/application-prod.yml | 59 + target/classes/application-test.yml | 56 + target/classes/application.yml | 279 + target/classes/banner.txt | 10 + target/classes/ehcache.xml | 132 + target/classes/liteflow/oss.el.png | Bin 0 -> 234131 bytes target/classes/liteflow/oss.el.xml | 24 + target/classes/liteflow/sms.el.png | Bin 0 -> 142110 bytes target/classes/liteflow/sms.el.xml | 16 + target/classes/liteflow/tenant.el.png | Bin 0 -> 107067 bytes target/classes/liteflow/tenant.el.xml | 16 + target/classes/log/logback-dev.xml | 113 + target/classes/log/logback-prod.xml | 151 + target/classes/log/logback-test.xml | 151 + .../classes/org/springblade/Application.class | Bin 0 -> 972 bytes .../springblade/common/cache/CacheNames.class | Bin 0 -> 875 bytes .../common/cache/DictBizCache.class | Bin 0 -> 4603 bytes .../springblade/common/cache/DictCache.class | Bin 0 -> 6200 bytes .../springblade/common/cache/ParamCache.class | Bin 0 -> 2447 bytes .../common/cache/RegionCache.class | Bin 0 -> 2244 bytes .../springblade/common/cache/SysCache.class | Bin 0 -> 12727 bytes .../springblade/common/cache/UserCache.class | Bin 0 -> 3424 bytes .../common/config/BladeConfiguration.class | Bin 0 -> 4137 bytes .../config/BladeHandlerConfiguration.class | Bin 0 -> 941 bytes .../common/config/BladeLogConfiguration.class | Bin 0 -> 1697 bytes .../config/BladePreviewConfiguration.class | Bin 0 -> 875 bytes .../config/BladeReportConfiguration.class | Bin 0 -> 648 bytes .../common/config/SwaggerConfiguration.class | Bin 0 -> 2663 bytes .../common/constant/CommonConstant.class | Bin 0 -> 990 bytes .../common/constant/DictConstant.class | Bin 0 -> 458 bytes .../common/constant/LauncherConstant.class | Bin 0 -> 1154 bytes .../common/constant/MonitorConstants.class | Bin 0 -> 1046 bytes .../common/constant/NhConstants.class | Bin 0 -> 897 bytes .../common/constant/TenantConstant.class | Bin 0 -> 1088 bytes .../common/enums/DictBizEnum.class | Bin 0 -> 1354 bytes .../springblade/common/enums/DictEnum.class | Bin 0 -> 3126 bytes .../springblade/common/enums/SysType.class | Bin 0 -> 935 bytes .../common/event/ApiLogListener.class | Bin 0 -> 2308 bytes .../common/event/ErrorLogListener.class | Bin 0 -> 2581 bytes .../common/event/UsualLogListener.class | Bin 0 -> 2330 bytes .../common/filter/LoggingInterceptor.class | Bin 0 -> 2165 bytes .../common/filter/PreviewFilter.class | Bin 0 -> 3020 bytes .../handler/BladeScopeModelHandler.class | Bin 0 -> 5273 bytes .../common/launch/LauncherServiceImpl.class | Bin 0 -> 1292 bytes .../common/utils/AsyncTaskRunner.class | Bin 0 -> 282 bytes .../springblade/common/utils/CommonUtil.class | Bin 0 -> 16791 bytes .../springblade/common/utils/ListUtils.class | Bin 0 -> 1793 bytes .../common/utils/MonitorTask.class | Bin 0 -> 1207 bytes .../common/utils/MultiAsyncTaskRunner$1.class | Bin 0 -> 1271 bytes .../common/utils/MultiAsyncTaskRunner$2.class | Bin 0 -> 1184 bytes .../common/utils/MultiAsyncTaskRunner.class | Bin 0 -> 2525 bytes .../common/utils/NopTaskRunner.class | Bin 0 -> 678 bytes .../common/utils/TaskControl$1.class | Bin 0 -> 1060 bytes .../common/utils/TaskControl.class | Bin 0 -> 3183 bytes .../springblade/common/utils/UnitUtil.class | Bin 0 -> 3295 bytes .../business/controller/WorkController.class | Bin 0 -> 6288 bytes .../service/FlowBusinessService.class | Bin 0 -> 866 bytes .../flow/business/service/IFlowService.class | Bin 0 -> 1158 bytes .../impl/FlowBusinessServiceImpl.class | Bin 0 -> 14435 bytes .../service/impl/FlowServiceImpl.class | Bin 0 -> 4088 bytes .../flow/core/constant/ProcessConstant.class | Bin 0 -> 489 bytes .../flow/core/entity/BladeFlow.class | Bin 0 -> 20592 bytes .../flow/core/entity/FlowEntity.class | Bin 0 -> 2176 bytes .../flow/core/enums/FlowModeEnum.class | Bin 0 -> 1555 bytes .../flow/core/utils/FlowUtil.class | Bin 0 -> 1548 bytes .../flow/core/utils/TaskUtil.class | Bin 0 -> 1342 bytes .../leave/controller/LeaveController.class | Bin 0 -> 2609 bytes .../flow/demo/leave/entity/ProcessLeave.class | Bin 0 -> 4976 bytes .../flow/demo/leave/mapper/LeaveMapper.class | Bin 0 -> 342 bytes .../flow/demo/leave/mapper/LeaveMapper.xml | 6 + .../demo/leave/service/ILeaveService.class | Bin 0 -> 453 bytes .../leave/service/impl/LeaveServiceImpl.class | Bin 0 -> 13667 bytes .../engine/config/FlowableConfiguration.class | Bin 0 -> 1758 bytes .../engine/constant/BondApplyConstant.class | Bin 0 -> 808 bytes .../engine/constant/FlowEngineConstant.class | Bin 0 -> 765 bytes .../controller/FlowFollowController.class | Bin 0 -> 3279 bytes .../controller/FlowManagerController.class | Bin 0 -> 5517 bytes .../controller/FlowModelController.class | Bin 0 -> 5924 bytes .../controller/FlowProcessController.class | Bin 0 -> 3039 bytes .../flow/engine/entity/FlowExecution.class | Bin 0 -> 8747 bytes .../flow/engine/entity/FlowModel.class | Bin 0 -> 8989 bytes .../flow/engine/entity/FlowProcess.class | Bin 0 -> 7949 bytes .../flow/engine/mapper/FlowMapper.class | Bin 0 -> 880 bytes .../flow/engine/mapper/FlowMapper.xml | 53 + .../engine/service/FlowEngineService.class | Bin 0 -> 3504 bytes .../impl/ApplicationDetailService.class | Bin 0 -> 9922 bytes .../service/impl/FlowEngineServiceImpl.class | Bin 0 -> 38406 bytes .../flow/engine/utils/FlowCache.class | Bin 0 -> 3644 bytes .../job/controller/JobInfoController.class | Bin 0 -> 6789 bytes .../job/controller/JobServerController.class | Bin 0 -> 7812 bytes .../job/mapper/JobInfoMapper.class | Bin 0 -> 662 bytes .../springblade/job/mapper/JobInfoMapper.xml | 52 + .../job/mapper/JobServerMapper.class | Bin 0 -> 678 bytes .../job/mapper/JobServerMapper.xml | 27 + .../org/springblade/job/pojo/dto/JobDTO.class | Bin 0 -> 3130 bytes .../springblade/job/pojo/entity/JobInfo.class | Bin 0 -> 21013 bytes .../job/pojo/entity/JobServer.class | Bin 0 -> 4233 bytes .../springblade/job/pojo/vo/JobInfoVO.class | Bin 0 -> 979 bytes .../springblade/job/pojo/vo/JobServerVO.class | Bin 0 -> 989 bytes .../job/processor/ProcessorDemo.class | Bin 0 -> 1661 bytes .../job/service/IJobInfoService.class | Bin 0 -> 1228 bytes .../job/service/IJobServerService.class | Bin 0 -> 900 bytes .../job/service/impl/JobInfoServiceImpl.class | Bin 0 -> 22734 bytes .../service/impl/JobServerServiceImpl$1.class | Bin 0 -> 922 bytes .../service/impl/JobServerServiceImpl.class | Bin 0 -> 4229 bytes .../OperationSiteApplyController.class | Bin 0 -> 9684 bytes .../excel/OperationSiteApplyExcel.class | Bin 0 -> 6817 bytes .../mapper/OperationSiteApplyMapper.class | Bin 0 -> 1518 bytes .../mapper/OperationSiteApplyMapper.xml | 81 + .../pojo/dto/OperationSiteApplyDTO.class | Bin 0 -> 2085 bytes .../entity/OperationSiteApplyEntity.class | Bin 0 -> 22173 bytes .../operationSiteApply/pojo/vo/ApplyVo.class | Bin 0 -> 2841 bytes .../pojo/vo/OperationSiteApplyVO.class | Bin 0 -> 5012 bytes .../service/IOperationSiteApplyService.class | Bin 0 -> 1804 bytes .../impl/OperationSiteApplyServiceImpl.class | Bin 0 -> 12390 bytes .../wrapper/OperationSiteApplyWrapper.class | Bin 0 -> 1845 bytes .../auth/config/BladeAuthConfiguration.class | Bin 0 -> 2782 bytes .../auth/constant/BladeAuthConstant.class | Bin 0 -> 521 bytes .../auth/endpoint/MiniAppOauth2EndPoint.class | Bin 0 -> 8976 bytes .../auth/endpoint/SysOAuth2EndPoint.class | Bin 0 -> 9043 bytes .../auth/granter/CaptchaTokenGranter.class | Bin 0 -> 2907 bytes .../auth/granter/RegisterTokenGranter.class | Bin 0 -> 7663 bytes .../auth/granter/SocialTokenGranter.class | Bin 0 -> 4872 bytes .../handler/BladeAuthorizationHandler.class | Bin 0 -> 6578 bytes .../auth/handler/BladePasswordHandler.class | Bin 0 -> 775 bytes .../auth/handler/BladeTokenHandler.class | Bin 0 -> 1606 bytes .../modules/auth/provider/UserType.class | Bin 0 -> 2996 bytes .../service/BladeClientDetailService.class | Bin 0 -> 1606 bytes .../auth/service/BladeUserDetailService.class | Bin 0 -> 4320 bytes .../modules/auth/utils/TokenUtil.class | Bin 0 -> 2690 bytes .../desk/controller/DashBoardController.class | Bin 0 -> 8640 bytes .../desk/controller/NoticeController.class | Bin 0 -> 6571 bytes .../modules/desk/mapper/NoticeMapper.class | Bin 0 -> 876 bytes .../modules/desk/mapper/NoticeMapper.xml | 53 + .../modules/desk/pojo/entity/Notice.class | Bin 0 -> 3715 bytes .../modules/desk/pojo/vo/NoticeVO.class | Bin 0 -> 2540 bytes .../modules/desk/service/INoticeService.class | Bin 0 -> 799 bytes .../desk/service/impl/NoticeServiceImpl.class | Bin 0 -> 2151 bytes .../modules/desk/wrapper/NoticeWrapper.class | Bin 0 -> 2701 bytes .../develop/controller/CodeController.class | Bin 0 -> 11544 bytes .../controller/DatasourceController.class | Bin 0 -> 5712 bytes .../develop/controller/ModelController.class | Bin 0 -> 16637 bytes .../controller/ModelPrototypeController.class | Bin 0 -> 9089 bytes .../modules/develop/mapper/CodeMapper.class | Bin 0 -> 337 bytes .../modules/develop/mapper/CodeMapper.xml | 22 + .../develop/mapper/DatasourceMapper.class | Bin 0 -> 355 bytes .../develop/mapper/DatasourceMapper.xml | 22 + .../modules/develop/mapper/ModelMapper.class | Bin 0 -> 340 bytes .../modules/develop/mapper/ModelMapper.xml | 27 + .../develop/mapper/ModelPrototypeMapper.class | Bin 0 -> 367 bytes .../develop/mapper/ModelPrototypeMapper.xml | 35 + .../modules/develop/pojo/dto/ModelDTO.class | Bin 0 -> 2318 bytes .../modules/develop/pojo/entity/Code.class | Bin 0 -> 13688 bytes .../develop/pojo/entity/Datasource.class | Bin 0 -> 5642 bytes .../modules/develop/pojo/entity/Model.class | Bin 0 -> 4866 bytes .../develop/pojo/entity/ModelPrototype.class | Bin 0 -> 9692 bytes .../develop/service/ICodeService.class | Bin 0 -> 460 bytes .../develop/service/IDatasourceService.class | Bin 0 -> 346 bytes .../service/IModelPrototypeService.class | Bin 0 -> 730 bytes .../develop/service/IModelService.class | Bin 0 -> 454 bytes .../service/impl/CodeServiceImpl.class | Bin 0 -> 1301 bytes .../service/impl/DatasourceServiceImpl.class | Bin 0 -> 799 bytes .../impl/ModelPrototypeServiceImpl.class | Bin 0 -> 4627 bytes .../service/impl/ModelServiceImpl.class | Bin 0 -> 4737 bytes .../fitting/constant/FittingConstant.class | Bin 0 -> 1255 bytes .../OperationOrderMaterialController.class | Bin 0 -> 8461 bytes .../PlatformFittingApplyController.class | Bin 0 -> 13681 bytes .../excel/OperationOrderMaterialExcel.class | Bin 0 -> 8205 bytes .../excel/PlatformFittingApplyExcel.class | Bin 0 -> 25259 bytes .../excel/PlatformFittingApplyMsgExcel.class | Bin 0 -> 3834 bytes .../mapper/OperationOrderMaterialMapper.class | Bin 0 -> 2346 bytes .../mapper/OperationOrderMaterialMapper.xml | 82 + .../mapper/PlatformFittingApplyMapper.class | Bin 0 -> 2631 bytes .../mapper/PlatformFittingApplyMapper.xml | 198 + .../PlatformFittingApplyMsgMapper.class | Bin 0 -> 1327 bytes .../mapper/PlatformFittingApplyMsgMapper.xml | 25 + .../modules/fitting/pojo/dto/ApplyDto.class | Bin 0 -> 3829 bytes .../fitting/pojo/dto/BhMaterialDTO.class | Bin 0 -> 5599 bytes .../pojo/dto/OperationOrderMaterialDTO.class | Bin 0 -> 6740 bytes .../pojo/dto/PlatformFittingApplyDTO.class | Bin 0 -> 1092 bytes .../pojo/dto/PlatformFittingApplyMsgDTO.class | Bin 0 -> 1107 bytes .../entity/OperationOrderMaterialEntity.class | Bin 0 -> 10941 bytes .../entity/PlatformFittingApplyEntity.class | Bin 0 -> 38901 bytes .../PlatformFittingApplyMsgEntity.class | Bin 0 -> 4767 bytes .../modules/fitting/pojo/vo/AddBhVo.class | Bin 0 -> 2460 bytes .../fitting/pojo/vo/AddFittingApplyVo.class | Bin 0 -> 6795 bytes .../pojo/vo/AddOrderFittingUseVo.class | Bin 0 -> 3711 bytes .../pojo/vo/ChooseMaterialListVo.class | Bin 0 -> 2965 bytes .../pojo/vo/FittingApplyDetailVo.class | Bin 0 -> 13531 bytes .../fitting/pojo/vo/MaterialStockVo.class | Bin 0 -> 3265 bytes .../pojo/vo/OperaAddFittingBatchVo.class | Bin 0 -> 3738 bytes .../pojo/vo/OperationOrderMaterialVO.class | Bin 0 -> 4740 bytes .../pojo/vo/OrderUseFittingDetailVo.class | Bin 0 -> 9042 bytes .../pojo/vo/PlatformFittingApplyMsgVO.class | Bin 0 -> 1101 bytes .../pojo/vo/PlatformFittingApplyVO.class | Bin 0 -> 4888 bytes .../fitting/pojo/vo/SiteToExamineVo.class | Bin 0 -> 4594 bytes .../IOperationOrderMaterialService.class | Bin 0 -> 2530 bytes .../IPlatformFittingApplyMsgService.class | Bin 0 -> 1361 bytes .../IPlatformFittingApplyService.class | Bin 0 -> 3189 bytes .../OperationOrderMaterialServiceImpl.class | Bin 0 -> 16795 bytes .../PlatformFittingApplyMsgServiceImpl.class | Bin 0 -> 3896 bytes .../PlatformFittingApplyServiceImpl.class | Bin 0 -> 25692 bytes .../OperationOrderMaterialWrapper.class | Bin 0 -> 1714 bytes .../PlatformFittingApplyMsgWrapper.class | Bin 0 -> 1728 bytes .../wrapper/PlatformFittingApplyWrapper.class | Bin 0 -> 1686 bytes .../controller/ExamineInfoController.class | Bin 0 -> 6187 bytes .../mapper/ExamineInfoMapper.class | Bin 0 -> 1081 bytes .../examineInfo/mapper/ExamineInfoMapper.xml | 25 + .../examineInfo/pojo/dto/ExamineInfoDTO.class | Bin 0 -> 1086 bytes .../pojo/entity/ExamineInfoEntity.class | Bin 0 -> 4740 bytes .../examineInfo/pojo/vo/ExamineInfoVO.class | Bin 0 -> 1080 bytes .../service/IExamineInfoService.class | Bin 0 -> 1224 bytes .../service/impl/ExamineInfoServiceImpl.class | Bin 0 -> 3450 bytes .../wrapper/ExamineInfoWrapper.class | Bin 0 -> 1703 bytes .../controller/ProcessDefController.class | Bin 0 -> 5539 bytes .../excel/ProcessDefAuditStepExcel.class | Bin 0 -> 12573 bytes .../processForm/excel/ProcessDefExcel.class | Bin 0 -> 4279 bytes .../excel/ProcessDefLatestExcel.class | Bin 0 -> 3838 bytes .../excel/ProcessDefSubmitStepExcel.class | Bin 0 -> 6654 bytes .../processForm/excel/ProcessFormExcel.class | Bin 0 -> 2765 bytes .../mapper/ProcessDefAuditStepMapper.class | Bin 0 -> 1710 bytes .../mapper/ProcessDefAuditStepMapper.xml | 52 + .../mapper/ProcessDefLatestMapper.class | Bin 0 -> 1012 bytes .../mapper/ProcessDefLatestMapper.xml | 26 + .../processForm/mapper/ProcessDefMapper.class | Bin 0 -> 1654 bytes .../processForm/mapper/ProcessDefMapper.xml | 51 + .../mapper/ProcessDefSubmitStepMapper.class | Bin 0 -> 1385 bytes .../mapper/ProcessDefSubmitStepMapper.xml | 30 + .../mapper/ProcessFormMapper.class | Bin 0 -> 979 bytes .../processForm/mapper/ProcessFormMapper.xml | 24 + .../pojo/dto/ProcessDefAuditStepDTO.class | Bin 0 -> 1126 bytes .../processForm/pojo/dto/ProcessDefDTO.class | Bin 0 -> 3978 bytes .../pojo/dto/ProcessDefLatestDTO.class | Bin 0 -> 1111 bytes .../pojo/dto/ProcessDefSubmitStepDTO.class | Bin 0 -> 1131 bytes .../processForm/pojo/dto/ProcessFormDTO.class | Bin 0 -> 1086 bytes .../entity/ProcessDefAuditStepEntity.class | Bin 0 -> 13702 bytes .../pojo/entity/ProcessDefEntity.class | Bin 0 -> 7028 bytes .../pojo/entity/ProcessDefLatestEntity.class | Bin 0 -> 4960 bytes .../entity/ProcessDefSubmitStepEntity.class | Bin 0 -> 7785 bytes .../pojo/entity/ProcessFormEntity.class | Bin 0 -> 4043 bytes .../processForm/pojo/vo/AddProcessVo.class | Bin 0 -> 4466 bytes .../pojo/vo/ProcessDefAuditStepVO.class | Bin 0 -> 2728 bytes .../pojo/vo/ProcessDefLatestVO.class | Bin 0 -> 3642 bytes .../processForm/pojo/vo/ProcessDefReq.class | Bin 0 -> 4985 bytes .../pojo/vo/ProcessDefSubmitStepVO.class | Bin 0 -> 1125 bytes .../processForm/pojo/vo/ProcessDefVO.class | Bin 0 -> 7173 bytes .../processForm/pojo/vo/ProcessFormVO.class | Bin 0 -> 1080 bytes .../service/IProcessDefAuditStepService.class | Bin 0 -> 1417 bytes .../service/IProcessDefLatestService.class | Bin 0 -> 1013 bytes .../service/IProcessDefService.class | Bin 0 -> 1962 bytes .../IProcessDefSubmitStepService.class | Bin 0 -> 1429 bytes .../service/IProcessFormService.class | Bin 0 -> 1122 bytes .../impl/ProcessDefAuditStepServiceImpl.class | Bin 0 -> 3585 bytes .../impl/ProcessDefLatestServiceImpl.class | Bin 0 -> 5159 bytes .../service/impl/ProcessDefServiceImpl.class | Bin 0 -> 22449 bytes .../ProcessDefSubmitStepServiceImpl.class | Bin 0 -> 5776 bytes .../service/impl/ProcessFormServiceImpl.class | Bin 0 -> 2684 bytes .../processForm/utils/FormUtils.class | Bin 0 -> 1147 bytes .../processForm/utils/GuardUtils.class | Bin 0 -> 1775 bytes .../wrapper/ProcessDefAuditStepWrapper.class | Bin 0 -> 1815 bytes .../wrapper/ProcessDefLatestWrapper.class | Bin 0 -> 1773 bytes .../wrapper/ProcessDefSubmitStepWrapper.class | Bin 0 -> 1829 bytes .../wrapper/ProcessDefWrapper.class | Bin 0 -> 1689 bytes .../wrapper/ProcessFormWrapper.class | Bin 0 -> 1703 bytes .../modules/flowable/tasks/MyListener.class | Bin 0 -> 2298 bytes .../tasks/OneTaskCompleteListener.class | Bin 0 -> 5260 bytes .../flowable/tasks/RejectStartListener.class | Bin 0 -> 2059 bytes .../controller/MaterialController.class | Bin 0 -> 18322 bytes .../MaterialEngineerController.class | Bin 0 -> 13172 bytes .../MaterialEngineerOutboundController.class | Bin 0 -> 10978 bytes .../MaterialOperationController.class | Bin 0 -> 12284 bytes .../MaterialOperationOutboundController.class | Bin 0 -> 14978 bytes .../MaterialOutboundController.class | Bin 0 -> 11737 bytes .../excel/MaterialEngineerExcel.class | Bin 0 -> 6798 bytes .../excel/MaterialEngineerOutboundExcel.class | Bin 0 -> 12624 bytes .../material/excel/MaterialImporter.class | Bin 0 -> 1312 bytes .../excel/MaterialOperationExcel.class | Bin 0 -> 6857 bytes .../MaterialOperationOutboundExcel.class | Bin 0 -> 15701 bytes .../excel/MaterialOutboundExcel.class | Bin 0 -> 9088 bytes .../mapper/MaterialEngineerMapper.class | Bin 0 -> 1787 bytes .../mapper/MaterialEngineerMapper.xml | 70 + .../MaterialEngineerOutboundMapper.class | Bin 0 -> 1299 bytes .../mapper/MaterialEngineerOutboundMapper.xml | 63 + .../material/mapper/MaterialMapper.class | Bin 0 -> 1665 bytes .../material/mapper/MaterialMapper.xml | 63 + .../mapper/MaterialOperationMapper.class | Bin 0 -> 1268 bytes .../mapper/MaterialOperationMapper.xml | 42 + .../MaterialOperationOutboundMapper.class | Bin 0 -> 1356 bytes .../MaterialOperationOutboundMapper.xml | 51 + .../mapper/MaterialOutboundMapper.class | Bin 0 -> 1257 bytes .../mapper/MaterialOutboundMapper.xml | 43 + .../material/pojo/dto/MaterialDTO.class | Bin 0 -> 2141 bytes .../pojo/dto/MaterialEngineerDTO.class | Bin 0 -> 1075 bytes .../dto/MaterialEngineerOutboundDTO.class | Bin 0 -> 1115 bytes .../pojo/dto/MaterialOperationDTO.class | Bin 0 -> 1080 bytes .../dto/MaterialOperationOutboundDTO.class | Bin 0 -> 1120 bytes .../pojo/dto/MaterialOutboundDTO.class | Bin 0 -> 1075 bytes .../pojo/entity/MaterialEngineerEntity.class | Bin 0 -> 9860 bytes .../MaterialEngineerOutboundEntity.class | Bin 0 -> 14035 bytes .../material/pojo/entity/MaterialEntity.class | Bin 0 -> 7639 bytes .../pojo/entity/MaterialOperationEntity.class | Bin 0 -> 9948 bytes .../MaterialOperationOutboundEntity.class | Bin 0 -> 14670 bytes .../pojo/entity/MaterialOutboundEntity.class | Bin 0 -> 15388 bytes .../material/pojo/vo/EmpFittingDetailVo.class | Bin 0 -> 3729 bytes .../material/pojo/vo/EmpGetFittingOutVo.class | Bin 0 -> 3013 bytes .../pojo/vo/EmpStockConditionVo.class | Bin 0 -> 3765 bytes .../pojo/vo/MaterialEngineerOutboundVO.class | Bin 0 -> 2515 bytes .../material/pojo/vo/MaterialEngineerVO.class | Bin 0 -> 1069 bytes .../pojo/vo/MaterialOperationOutboundVO.class | Bin 0 -> 2520 bytes .../pojo/vo/MaterialOperationVO.class | Bin 0 -> 1074 bytes .../material/pojo/vo/MaterialOutboundVO.class | Bin 0 -> 5085 bytes .../modules/material/pojo/vo/MaterialVO.class | Bin 0 -> 1029 bytes .../IMaterialEngineerOutboundService.class | Bin 0 -> 1305 bytes .../service/IMaterialEngineerService.class | Bin 0 -> 1995 bytes .../IMaterialOperationOutboundService.class | Bin 0 -> 1371 bytes .../service/IMaterialOperationService.class | Bin 0 -> 1275 bytes .../service/IMaterialOutboundService.class | Bin 0 -> 2585 bytes .../material/service/IMaterialService.class | Bin 0 -> 1934 bytes .../MaterialEngineerOutboundServiceImpl.class | Bin 0 -> 3048 bytes .../impl/MaterialEngineerServiceImpl.class | Bin 0 -> 8754 bytes ...MaterialOperationOutboundServiceImpl.class | Bin 0 -> 3157 bytes .../impl/MaterialOperationServiceImpl.class | Bin 0 -> 7305 bytes .../impl/MaterialOutboundServiceImpl.class | Bin 0 -> 10551 bytes .../service/impl/MaterialServiceImpl.class | Bin 0 -> 18471 bytes .../MaterialEngineerOutboundWrapper.class | Bin 0 -> 1753 bytes .../wrapper/MaterialEngineerWrapper.class | Bin 0 -> 1641 bytes .../MaterialOperationOutboundWrapper.class | Bin 0 -> 1767 bytes .../wrapper/MaterialOperationWrapper.class | Bin 0 -> 1655 bytes .../wrapper/MaterialOutboundWrapper.class | Bin 0 -> 1641 bytes .../material/wrapper/MaterialWrapper.class | Bin 0 -> 1529 bytes .../modules/nh/api/NatOpenController.class | Bin 0 -> 14640 bytes .../nh/api/NatOpenSyncController$1.class | Bin 0 -> 4754 bytes .../nh/api/NatOpenSyncController.class | Bin 0 -> 15606 bytes .../nh/api/OpenPowerStationController.class | Bin 0 -> 6835 bytes .../nh/controller/AlarmCodeController.class | Bin 0 -> 9968 bytes .../nh/controller/AlarmInfoController.class | Bin 0 -> 18999 bytes .../nh/controller/DeviceController.class | Bin 0 -> 14832 bytes .../nh/controller/HomePageController.class | Bin 0 -> 4297 bytes .../InefficientSettingController.class | Bin 0 -> 12053 bytes .../controller/InverterDataController.class | Bin 0 -> 6272 bytes .../nh/controller/InverterUapController.class | Bin 0 -> 6883 bytes .../MonitorEntryDailyStatController.class | Bin 0 -> 6530 bytes .../MonitorEntryMonthStatController.class | Bin 0 -> 6530 bytes .../MonitorEntryStatController.class | Bin 0 -> 6384 bytes .../MonitorEntryYearStatController.class | Bin 0 -> 6508 bytes .../MonitorInverterDailyStatController.class | Bin 0 -> 6608 bytes .../MonitorInverterStatController.class | Bin 0 -> 6468 bytes .../controller/PowerStationController.class | Bin 0 -> 26772 bytes .../PowerStationInefficientController.class | Bin 0 -> 18701 bytes .../modules/nh/excel/AlarmCodeExcel.class | Bin 0 -> 5245 bytes .../modules/nh/excel/AlarmInfoExcel.class | Bin 0 -> 9016 bytes .../modules/nh/excel/DeviceExcel.class | Bin 0 -> 9830 bytes .../nh/excel/InefficientSettingExcel.class | Bin 0 -> 10906 bytes .../nh/excel/InefficientSettingImporter.class | Bin 0 -> 1371 bytes .../modules/nh/excel/InverterDataExcel.class | Bin 0 -> 12749 bytes .../modules/nh/excel/InverterUapExcel.class | Bin 0 -> 33748 bytes .../modules/nh/excel/MaterialExcel.class | Bin 0 -> 6245 bytes .../nh/excel/MonitorEntryDailyStatExcel.class | Bin 0 -> 33880 bytes .../nh/excel/MonitorEntryMonthStatExcel.class | Bin 0 -> 3964 bytes .../nh/excel/MonitorEntryStatExcel.class | Bin 0 -> 8791 bytes .../nh/excel/MonitorEntryYearStatExcel.class | Bin 0 -> 5499 bytes .../nh/excel/MonitorInverterStatExcel.class | Bin 0 -> 19801 bytes .../modules/nh/excel/PowerStationExcel.class | Bin 0 -> 15127 bytes .../modules/nh/excel/PowerStationImport.class | Bin 0 -> 11391 bytes .../nh/excel/PowerStationImporter.class | Bin 0 -> 1307 bytes .../excel/PowerStationInefficientExcel.class | Bin 0 -> 10969 bytes .../nh/excel/StationStaticsExcel.class | Bin 0 -> 35191 bytes .../nh/factory/aiswei/AisweiApi$1.class | Bin 0 -> 1112 bytes .../nh/factory/aiswei/AisweiApi$10.class | Bin 0 -> 1119 bytes .../nh/factory/aiswei/AisweiApi$11.class | Bin 0 -> 1141 bytes .../nh/factory/aiswei/AisweiApi$2.class | Bin 0 -> 1081 bytes .../nh/factory/aiswei/AisweiApi$3.class | Bin 0 -> 1074 bytes .../nh/factory/aiswei/AisweiApi$4.class | Bin 0 -> 1087 bytes .../nh/factory/aiswei/AisweiApi$5.class | Bin 0 -> 1155 bytes .../nh/factory/aiswei/AisweiApi$6.class | Bin 0 -> 1084 bytes .../nh/factory/aiswei/AisweiApi$7.class | Bin 0 -> 1089 bytes .../nh/factory/aiswei/AisweiApi$8.class | Bin 0 -> 1172 bytes .../nh/factory/aiswei/AisweiApi$9.class | Bin 0 -> 1134 bytes .../modules/nh/factory/aiswei/AisweiApi.class | Bin 0 -> 19339 bytes .../nh/factory/aiswei/AisweiPage.class | Bin 0 -> 1987 bytes .../modules/nh/factory/aiswei/AisweiRet.class | Bin 0 -> 1479 bytes .../aiswei/config/AisweiApiRestTemplate.class | Bin 0 -> 2702 bytes .../factory/aiswei/constant/Constants.class | Bin 0 -> 808 bytes .../factory/aiswei/constant/ContentType.class | Bin 0 -> 787 bytes .../factory/aiswei/constant/HttpHeader.class | Bin 0 -> 665 bytes .../factory/aiswei/constant/HttpMethod.class | Bin 0 -> 498 bytes .../factory/aiswei/constant/HttpSchema.class | Bin 0 -> 468 bytes .../aiswei/constant/SystemHeader.class | Bin 0 -> 661 bytes .../getdevicelistpro/GetDeviceListProR.class | Bin 0 -> 2768 bytes .../GetDeviceListProReq.class | Bin 0 -> 2306 bytes .../GetDeviceListProResp.class | Bin 0 -> 3268 bytes .../GetInverterCurrentErrorProR.class | Bin 0 -> 4765 bytes .../GetInverterCurrentErrorProReq.class | Bin 0 -> 2778 bytes .../GetInverterDataPageProData.class | Bin 0 -> 2856 bytes .../GetInverterDataPageProR.class | Bin 0 -> 22421 bytes .../GetInverterDataPageProReq.class | Bin 0 -> 4166 bytes .../GetInverterETodayProData.class | Bin 0 -> 2684 bytes .../GetInverterETodayProReq.class | Bin 0 -> 3167 bytes .../GetInverterHisErrorPageProR.class | Bin 0 -> 4294 bytes .../GetInverterHisErrorPageProReq.class | Bin 0 -> 4664 bytes .../GetInverterOverviewProData.class | Bin 0 -> 2833 bytes .../GetInverterOverviewProR.class | Bin 0 -> 4789 bytes .../GetInverterOverviewProReq.class | Bin 0 -> 2754 bytes .../GetInverterRecoverStatusProR.class | Bin 0 -> 2992 bytes .../GetInverterRecoverStatusProReq.class | Bin 0 -> 2400 bytes .../getlasttsdatapro/GetLastTsDataProR.class | Bin 0 -> 21759 bytes .../GetLastTsDataProReq.class | Bin 0 -> 2299 bytes .../dto/getplanlistpro/GetPlanListProR.class | Bin 0 -> 8959 bytes .../getplanlistpro/GetPlanListProReq.class | Bin 0 -> 3240 bytes .../GetPlantOutputProR.class | Bin 0 -> 2756 bytes .../GetPlantOutputProReq.class | Bin 0 -> 3156 bytes .../GetPlantOutputProResp.class | Bin 0 -> 3213 bytes .../GetPlantOverviewProR.class | Bin 0 -> 7338 bytes .../GetPlantOverviewProReq.class | Bin 0 -> 2324 bytes .../dto/getplantoverviewpro/UnitData.class | Bin 0 -> 2322 bytes .../nh/factory/aiswei/enums/Method.class | Bin 0 -> 1586 bytes .../scheduler/AisStationDMYEachRunner.class | Bin 0 -> 9884 bytes .../scheduler/AisweiAlarmEachRunner.class | Bin 0 -> 8747 bytes .../AisweiAlarmHistoryPageAction.class | Bin 0 -> 9465 bytes .../AisweiAlarmRecoverEachRunner.class | Bin 0 -> 4542 bytes .../AisweiHistoryAlarmEachRunner.class | Bin 0 -> 1909 bytes .../AisweiInverterDetailEachRunner.class | Bin 0 -> 2195 bytes .../AisweiInverterDetailPageAction.class | Bin 0 -> 7708 bytes .../scheduler/AisweiInverterEachRunner.class | Bin 0 -> 6518 bytes ...AisweiInverterLatestDetailEachRunner.class | Bin 0 -> 8734 bytes .../aiswei/scheduler/AisweiScheduler$1.class | Bin 0 -> 1179 bytes .../aiswei/scheduler/AisweiScheduler$2.class | Bin 0 -> 1688 bytes .../aiswei/scheduler/AisweiScheduler$3.class | Bin 0 -> 4338 bytes .../aiswei/scheduler/AisweiScheduler.class | Bin 0 -> 8493 bytes .../AisweiStationFisGenDateEachRunner.class | Bin 0 -> 5223 bytes .../AisweiUserStationEachRunner.class | Bin 0 -> 5148 bytes .../AisweiUserStationListPageAction.class | Bin 0 -> 9322 bytes .../aiswei/util/AisweiObjectMapper.class | Bin 0 -> 1649 bytes .../factory/aiswei/util/AisweiRequest.class | Bin 0 -> 4088 bytes .../factory/aiswei/util/AisweiResponse.class | Bin 0 -> 2625 bytes .../nh/factory/aiswei/util/Client$1.class | Bin 0 -> 1118 bytes .../nh/factory/aiswei/util/Client.class | Bin 0 -> 3391 bytes .../nh/factory/aiswei/util/HttpUtil$1.class | Bin 0 -> 1082 bytes .../nh/factory/aiswei/util/HttpUtil.class | Bin 0 -> 17124 bytes .../nh/factory/aiswei/util/HttpUtils$1.class | Bin 0 -> 1086 bytes .../nh/factory/aiswei/util/HttpUtils.class | Bin 0 -> 10300 bytes .../aiswei/util/MessageDigestUtil.class | Bin 0 -> 2401 bytes .../nh/factory/aiswei/util/SignUtil.class | Bin 0 -> 6724 bytes .../nh/factory/common/EachRunner$1.class | Bin 0 -> 1361 bytes .../nh/factory/common/EachRunner.class | Bin 0 -> 3476 bytes .../common/EzTemplateBase$ValueHolder.class | Bin 0 -> 977 bytes .../nh/factory/common/EzTemplateBase.class | Bin 0 -> 15048 bytes .../nh/factory/common/PageAction.class | Bin 0 -> 5528 bytes .../modules/nh/factory/common/PageInfo.class | Bin 0 -> 3358 bytes .../nh/factory/common/TimeWindow$1.class | Bin 0 -> 1382 bytes .../nh/factory/common/TimeWindow$2.class | Bin 0 -> 1721 bytes .../nh/factory/common/TimeWindow.class | Bin 0 -> 1656 bytes .../nh/factory/common/TokenBucket$1.class | Bin 0 -> 957 bytes .../nh/factory/common/TokenBucket.class | Bin 0 -> 1200 bytes .../nh/factory/common/WindowEntry.class | Bin 0 -> 502 bytes .../nh/factory/ginlong/GinlongApi$1.class | Bin 0 -> 1079 bytes .../nh/factory/ginlong/GinlongApi$10.class | Bin 0 -> 1094 bytes .../nh/factory/ginlong/GinlongApi$11.class | Bin 0 -> 1084 bytes .../nh/factory/ginlong/GinlongApi$12.class | Bin 0 -> 1148 bytes .../nh/factory/ginlong/GinlongApi$13.class | Bin 0 -> 1089 bytes .../nh/factory/ginlong/GinlongApi$14.class | Bin 0 -> 1033 bytes .../nh/factory/ginlong/GinlongApi$2.class | Bin 0 -> 1007 bytes .../nh/factory/ginlong/GinlongApi$3.class | Bin 0 -> 1036 bytes .../nh/factory/ginlong/GinlongApi$4.class | Bin 0 -> 1072 bytes .../nh/factory/ginlong/GinlongApi$5.class | Bin 0 -> 1082 bytes .../nh/factory/ginlong/GinlongApi$6.class | Bin 0 -> 1160 bytes .../nh/factory/ginlong/GinlongApi$7.class | Bin 0 -> 1105 bytes .../nh/factory/ginlong/GinlongApi$8.class | Bin 0 -> 1077 bytes .../nh/factory/ginlong/GinlongApi$9.class | Bin 0 -> 1087 bytes .../nh/factory/ginlong/GinlongApi.class | Bin 0 -> 16631 bytes .../ginlong/GinlongApiRestTemplate.class | Bin 0 -> 4645 bytes .../modules/nh/factory/ginlong/IRet.class | Bin 0 -> 2341 bytes .../modules/nh/factory/ginlong/Page.class | Bin 0 -> 4229 bytes .../ginlong/dto/alarmlist/GetAlarmListR.class | Bin 0 -> 8607 bytes .../dto/alarmlist/GetAlarmListReq.class | Bin 0 -> 4343 bytes .../dto/collectorlist/GetCollectorListR.class | Bin 0 -> 5511 bytes .../collectorlist/GetCollectorListReq.class | Bin 0 -> 2843 bytes .../collectorlist/GetCollectorListResp.class | Bin 0 -> 2512 bytes .../dto/inverterday/GetInverterDayR.class | Bin 0 -> 4789 bytes .../dto/inverterday/GetInverterDayReq.class | Bin 0 -> 3400 bytes .../GetInverterDetailListReq.class | Bin 0 -> 1982 bytes .../GetInverterDetailR.class | Bin 0 -> 166991 bytes .../dto/inverterlist/GetInverterListReq.class | Bin 0 -> 2897 bytes .../inverterlist/GetInverterListResp.class | Bin 0 -> 3286 bytes .../dto/inverterlist/GetInverterR.class | Bin 0 -> 11075 bytes .../dto/inverterlist/InverterStatusVo.class | Bin 0 -> 3563 bytes .../dto/invertermonth/GetInverterMonthR.class | Bin 0 -> 3301 bytes .../invertermonth/GetInverterMonthReq.class | Bin 0 -> 3160 bytes .../dto/stationday/GetStationDayR.class | Bin 0 -> 3756 bytes .../dto/stationday/GetStationDayReq.class | Bin 0 -> 2990 bytes .../GetStationDayEnergyListR.class | Bin 0 -> 2830 bytes .../GetStationDayEnergyListReq.class | Bin 0 -> 2931 bytes .../dto/stationmonth/GetStationMonthR.class | Bin 0 -> 3195 bytes .../dto/stationmonth/GetStationMonthReq.class | Bin 0 -> 3009 bytes .../dto/stationyear/GetStationYearR.class | Bin 0 -> 3189 bytes .../dto/stationyear/GetStationYearReq.class | Bin 0 -> 2996 bytes .../userstationlist/GetStationListReq.class | Bin 0 -> 2458 bytes .../userstationlist/GetStationListResp.class | Bin 0 -> 3295 bytes .../dto/userstationlist/GetStationR.class | Bin 0 -> 14761 bytes .../dto/userstationlist/StationStatusVo.class | Bin 0 -> 4107 bytes .../GinlongAlarmListPageAction.class | Bin 0 -> 5980 bytes .../GinlongInverterDayEachRunner.class | Bin 0 -> 5394 bytes .../GinlongInverterDetailListPageAction.class | Bin 0 -> 7142 bytes .../scheduler/GinlongScheduler$1.class | Bin 0 -> 1457 bytes .../scheduler/GinlongScheduler$2.class | Bin 0 -> 1472 bytes .../scheduler/GinlongScheduler$3.class | Bin 0 -> 1859 bytes .../scheduler/GinlongScheduler$4.class | Bin 0 -> 1844 bytes .../scheduler/GinlongScheduler$5.class | Bin 0 -> 1442 bytes .../scheduler/GinlongScheduler$6.class | Bin 0 -> 2259 bytes .../ginlong/scheduler/GinlongScheduler.class | Bin 0 -> 4472 bytes .../GinlongStationFisGenDateEachRunner.class | Bin 0 -> 4768 bytes .../GinlongStationMonthEachRunner.class | Bin 0 -> 5367 bytes .../GinlongStationYearEachRunner.class | Bin 0 -> 5496 bytes .../GinlongUserStationListPageAction.class | Bin 0 -> 7782 bytes .../nh/factory/goodwe/GoodweApi$1.class | Bin 0 -> 1050 bytes .../nh/factory/goodwe/GoodweApi$10.class | Bin 0 -> 1218 bytes .../nh/factory/goodwe/GoodweApi$11.class | Bin 0 -> 1088 bytes .../nh/factory/goodwe/GoodweApi$12.class | Bin 0 -> 1098 bytes .../nh/factory/goodwe/GoodweApi$13.class | Bin 0 -> 1118 bytes .../nh/factory/goodwe/GoodweApi$14.class | Bin 0 -> 1113 bytes .../nh/factory/goodwe/GoodweApi$2.class | Bin 0 -> 1038 bytes .../nh/factory/goodwe/GoodweApi$3.class | Bin 0 -> 1121 bytes .../nh/factory/goodwe/GoodweApi$4.class | Bin 0 -> 1116 bytes .../nh/factory/goodwe/GoodweApi$5.class | Bin 0 -> 1131 bytes .../nh/factory/goodwe/GoodweApi$6.class | Bin 0 -> 1076 bytes .../nh/factory/goodwe/GoodweApi$7.class | Bin 0 -> 1101 bytes .../nh/factory/goodwe/GoodweApi$8.class | Bin 0 -> 1107 bytes .../nh/factory/goodwe/GoodweApi$9.class | Bin 0 -> 1071 bytes .../modules/nh/factory/goodwe/GoodweApi.class | Bin 0 -> 14917 bytes .../modules/nh/factory/goodwe/GoodweRet.class | Bin 0 -> 2087 bytes .../goodwe/config/GoodweApiRestTemplate.class | Bin 0 -> 8636 bytes .../nh/factory/goodwe/dto/GetIndexReq.class | Bin 0 -> 1593 bytes .../nh/factory/goodwe/dto/GoodweApiReq.class | Bin 0 -> 1597 bytes .../GetInventersDatasData.class | Bin 0 -> 3193 bytes .../GetInventersDatasR.class | Bin 0 -> 7620 bytes .../GetInventersDatasRd.class | Bin 0 -> 16647 bytes .../GetInventersDatasReq.class | Bin 0 -> 2158 bytes .../GetInverterPacByDayR.class | Bin 0 -> 2542 bytes .../GetInverterPacByDayReq.class | Bin 0 -> 2353 bytes .../getinventersmoredetailinfobysn/D.class | Bin 0 -> 38227 bytes .../GetInventersMoreDetailInfoBySnReq.class | Bin 0 -> 2355 bytes .../GetInventersMoreDetailInfoBySnResp.class | Bin 0 -> 9535 bytes .../GetInverterDataByColumnR.class | Bin 0 -> 2587 bytes .../GetInverterDataByColumnReq.class | Bin 0 -> 2875 bytes .../GetInverterDataByColumnResp.class | Bin 0 -> 2396 bytes .../getinverterpower/GetInverterPowerR.class | Bin 0 -> 2352 bytes .../GetInverterPowerReq.class | Bin 0 -> 3245 bytes .../getplantspowers/GetPlantsPowersData.class | Bin 0 -> 3278 bytes .../getplantspowers/GetPlantsPowersR.class | Bin 0 -> 2816 bytes .../getplantspowers/GetPlantsPowersReq.class | Bin 0 -> 3124 bytes .../GetPlantsPowersSiteData.class | Bin 0 -> 3179 bytes .../GetPlantsStaticDatasData.class | Bin 0 -> 2360 bytes .../GetPlantsStaticDatasR.class | Bin 0 -> 2846 bytes .../GetPlantsStaticDatasReq.class | Bin 0 -> 3140 bytes .../GetPlantsStaticDatasReqByTime.class | Bin 0 -> 3608 bytes .../GetPlantsStaticDatasSiteData.class | Bin 0 -> 3239 bytes .../GetPowerStationPacByDayR.class | Bin 0 -> 2380 bytes .../GetPowerStationPacByDayReq.class | Bin 0 -> 2377 bytes .../GetPowerStationPowerR.class | Bin 0 -> 2376 bytes .../GetPowerStationPowerReq.class | Bin 0 -> 2842 bytes ...tionWariningInfoByMultiConditionData.class | Bin 0 -> 3095 bytes ...StationWariningInfoByMultiConditionR.class | Bin 0 -> 7009 bytes ...ationWariningInfoByMultiConditionReq.class | Bin 0 -> 4681 bytes .../goodwe/dto/gettoken/GetTokenR.class | Bin 0 -> 2329 bytes .../goodwe/dto/gettoken/GetTokenReq.class | Bin 0 -> 2314 bytes .../queryinventers/QueryInventersData.class | Bin 0 -> 2747 bytes .../dto/queryinventers/QueryInventersR.class | Bin 0 -> 6057 bytes .../queryinventers/QueryInventersReq.class | Bin 0 -> 3052 bytes .../QueryPowerStationMonitorData.class | Bin 0 -> 2867 bytes .../QueryPowerStationMonitorR.class | Bin 0 -> 8530 bytes .../QueryPowerStationMonitorReq.class | Bin 0 -> 4995 bytes .../scheduler/GoodweAlarmPageAction.class | Bin 0 -> 9862 bytes .../GoodweInverterDayEachRunner.class | Bin 0 -> 5007 bytes .../GoodweInverterDetailListPageAction.class | Bin 0 -> 8358 bytes .../scheduler/GoodweInverterEachRunner.class | Bin 0 -> 1836 bytes .../GoodweInverterPacByDayEachRunner.class | Bin 0 -> 4582 bytes .../goodwe/scheduler/GoodweScheduler$1.class | Bin 0 -> 1448 bytes .../goodwe/scheduler/GoodweScheduler$2.class | Bin 0 -> 1862 bytes .../goodwe/scheduler/GoodweScheduler$3.class | Bin 0 -> 1414 bytes .../goodwe/scheduler/GoodweScheduler$4.class | Bin 0 -> 2100 bytes .../goodwe/scheduler/GoodweScheduler$5.class | Bin 0 -> 2204 bytes .../goodwe/scheduler/GoodweScheduler$6.class | Bin 0 -> 2286 bytes .../goodwe/scheduler/GoodweScheduler$7.class | Bin 0 -> 2367 bytes .../goodwe/scheduler/GoodweScheduler$8.class | Bin 0 -> 4965 bytes .../goodwe/scheduler/GoodweScheduler.class | Bin 0 -> 5624 bytes .../GoodweStationAlarmEachRunner.class | Bin 0 -> 1681 bytes .../GoodweStationFisGenDateEachRunner.class | Bin 0 -> 7370 bytes .../GoodweStationMonthEachRunner.class | Bin 0 -> 5341 bytes .../GoodweStationYearEachRunner.class | Bin 0 -> 7281 bytes .../GoodweUserStationListPageAction.class | Bin 0 -> 9897 bytes .../modules/nh/factory/saj/SajApi$1.class | Bin 0 -> 993 bytes .../modules/nh/factory/saj/SajApi$2.class | Bin 0 -> 994 bytes .../modules/nh/factory/saj/SajApi$3.class | Bin 0 -> 1002 bytes .../modules/nh/factory/saj/SajApi$4.class | Bin 0 -> 1005 bytes .../modules/nh/factory/saj/SajApi$5.class | Bin 0 -> 953 bytes .../modules/nh/factory/saj/SajApi$6.class | Bin 0 -> 1002 bytes .../modules/nh/factory/saj/SajApi$7.class | Bin 0 -> 960 bytes .../modules/nh/factory/saj/SajApi.class | Bin 0 -> 7737 bytes .../nh/factory/saj/SajApiRestTemplate.class | Bin 0 -> 6727 bytes .../modules/nh/factory/saj/req/BaseReq.class | Bin 0 -> 1877 bytes .../saj/req/QueryDeviceHistoryReq.class | Bin 0 -> 3267 bytes .../factory/saj/req/QueryPlantEnergyReq.class | Bin 0 -> 2755 bytes .../nh/factory/saj/req/SajPageReq.class | Bin 0 -> 2423 bytes .../nh/factory/saj/resp/BasePlant.class | Bin 0 -> 2668 bytes .../factory/saj/resp/DeviceRealtimeData.class | Bin 0 -> 74463 bytes .../nh/factory/saj/resp/SajDevice.class | Bin 0 -> 5979 bytes .../nh/factory/saj/resp/SajDeviceData.class | Bin 0 -> 3101 bytes .../factory/saj/resp/SajDeviceDataItem.class | Bin 0 -> 2483 bytes .../nh/factory/saj/resp/SajPageRet.class | Bin 0 -> 3699 bytes .../nh/factory/saj/resp/SajPlantCurrent.class | Bin 0 -> 4818 bytes .../nh/factory/saj/resp/SajPlantData.class | Bin 0 -> 9546 bytes .../nh/factory/saj/resp/SajPlantDetail.class | Bin 0 -> 25023 bytes .../modules/nh/factory/saj/resp/SajRet.class | Bin 0 -> 2949 bytes .../SajDeviceHistoryEachRunner.class | Bin 0 -> 8653 bytes .../scheduler/SajDeviceListPageAction.class | Bin 0 -> 7383 bytes .../SajDeviceRealtimeEachRunner.class | Bin 0 -> 7837 bytes .../saj/scheduler/SajScheduler$1.class | Bin 0 -> 1224 bytes .../saj/scheduler/SajScheduler$2.class | Bin 0 -> 1216 bytes .../saj/scheduler/SajScheduler$3.class | Bin 0 -> 4479 bytes .../saj/scheduler/SajScheduler$4.class | Bin 0 -> 1659 bytes .../saj/scheduler/SajScheduler$5.class | Bin 0 -> 1661 bytes .../saj/scheduler/SajScheduler$6.class | Bin 0 -> 4551 bytes .../saj/scheduler/SajScheduler$7.class | Bin 0 -> 1648 bytes .../factory/saj/scheduler/SajScheduler.class | Bin 0 -> 4815 bytes .../scheduler/SajStationDataEachRunner.class | Bin 0 -> 8919 bytes .../SajStationDetailEachRunner.class | Bin 0 -> 3067 bytes .../SajStationFisGenDateEachRunner.class | Bin 0 -> 6721 bytes .../scheduler/SajStationListPageAction.class | Bin 0 -> 7693 bytes .../SajStationStatusEachRunner.class | Bin 0 -> 10708 bytes .../nh/job/InefficientScheduler$1.class | Bin 0 -> 2111 bytes .../nh/job/InefficientScheduler$2.class | Bin 0 -> 832 bytes .../modules/nh/job/InefficientScheduler.class | Bin 0 -> 21246 bytes .../nh/job/UpdateDataScheduler$1.class | Bin 0 -> 5833 bytes .../nh/job/UpdateDataScheduler$10.class | Bin 0 -> 5908 bytes .../nh/job/UpdateDataScheduler$2.class | Bin 0 -> 3313 bytes .../nh/job/UpdateDataScheduler$3.class | Bin 0 -> 4277 bytes .../nh/job/UpdateDataScheduler$4.class | Bin 0 -> 956 bytes .../nh/job/UpdateDataScheduler$5.class | Bin 0 -> 6236 bytes .../nh/job/UpdateDataScheduler$6.class | Bin 0 -> 973 bytes .../nh/job/UpdateDataScheduler$7.class | Bin 0 -> 961 bytes .../nh/job/UpdateDataScheduler$8.class | Bin 0 -> 6355 bytes .../nh/job/UpdateDataScheduler$9.class | Bin 0 -> 7037 bytes .../modules/nh/job/UpdateDataScheduler.class | Bin 0 -> 4914 bytes .../modules/nh/mapper/AlarmCodeMapper.class | Bin 0 -> 1138 bytes .../modules/nh/mapper/AlarmCodeMapper.xml | 34 + .../modules/nh/mapper/AlarmInfoMapper.class | Bin 0 -> 1615 bytes .../modules/nh/mapper/AlarmInfoMapper.xml | 77 + .../modules/nh/mapper/DeviceMapper.class | Bin 0 -> 1351 bytes .../modules/nh/mapper/DeviceMapper.xml | 50 + .../modules/nh/mapper/DeviceMsgMapper.class | Bin 0 -> 348 bytes .../nh/mapper/InefficientSettingMapper.class | Bin 0 -> 1237 bytes .../nh/mapper/InefficientSettingMapper.xml | 48 + .../nh/mapper/InverterDataMapper.class | Bin 0 -> 1881 bytes .../modules/nh/mapper/InverterDataMapper.xml | 132 + .../modules/nh/mapper/InverterUapMapper.class | Bin 0 -> 1408 bytes .../modules/nh/mapper/InverterUapMapper.xml | 83 + .../mapper/MonitorEntryDailyStatMapper.class | Bin 0 -> 1665 bytes .../nh/mapper/MonitorEntryDailyStatMapper.xml | 98 + .../mapper/MonitorEntryMonthStatMapper.class | Bin 0 -> 2697 bytes .../nh/mapper/MonitorEntryMonthStatMapper.xml | 125 + .../nh/mapper/MonitorEntryStatMapper.class | Bin 0 -> 2231 bytes .../nh/mapper/MonitorEntryStatMapper.xml | 68 + .../mapper/MonitorEntryYearStatMapper.class | Bin 0 -> 1929 bytes .../nh/mapper/MonitorEntryYearStatMapper.xml | 67 + .../MonitorInverterDailyStatMapper.class | Bin 0 -> 839 bytes .../mapper/MonitorInverterDailyStatMapper.xml | 72 + .../nh/mapper/MonitorInverterStatMapper.class | Bin 0 -> 2358 bytes .../nh/mapper/MonitorInverterStatMapper.xml | 90 + .../PowerStationInefficientMapper.class | Bin 0 -> 1292 bytes .../mapper/PowerStationInefficientMapper.xml | 46 + .../nh/mapper/PowerStationMapper.class | Bin 0 -> 3349 bytes .../modules/nh/mapper/PowerStationMapper.xml | 261 + .../modules/nh/pojo/dto/AlarmCodeDTO.class | Bin 0 -> 1022 bytes .../modules/nh/pojo/dto/AlarmInfoDTO.class | Bin 0 -> 1022 bytes .../modules/nh/pojo/dto/DeviceDTO.class | Bin 0 -> 4037 bytes .../nh/pojo/dto/InefficientSettingDTO.class | Bin 0 -> 1067 bytes .../modules/nh/pojo/dto/InverterDataDTO.class | Bin 0 -> 1037 bytes .../modules/nh/pojo/dto/InverterUapDTO.class | Bin 0 -> 2138 bytes .../pojo/dto/MonitorEntryDailyStatDTO.class | Bin 0 -> 1082 bytes .../pojo/dto/MonitorEntryMonthStatDTO.class | Bin 0 -> 1082 bytes .../nh/pojo/dto/MonitorEntryStatDTO.class | Bin 0 -> 10046 bytes .../nh/pojo/dto/MonitorEntryYearStatDTO.class | Bin 0 -> 1077 bytes .../dto/MonitorInverterDailyStatDTO.class | Bin 0 -> 1097 bytes .../nh/pojo/dto/MonitorInverterStatDTO.class | Bin 0 -> 1072 bytes .../modules/nh/pojo/dto/PowerStationDTO.class | Bin 0 -> 1995 bytes .../pojo/dto/PowerStationInefficientDTO.class | Bin 0 -> 1092 bytes .../pojo/dto/PowerStationPaymentTimeDTO.class | Bin 0 -> 2597 bytes .../modules/nh/pojo/dto/StationDTO.class | Bin 0 -> 4320 bytes .../modules/nh/pojo/dto/WeatherHistory.class | Bin 0 -> 6004 bytes .../nh/pojo/dto/open/YXInverterDataDTO.class | Bin 0 -> 13689 bytes .../nh/pojo/dto/open/YXPowerStationDTO.class | Bin 0 -> 11600 bytes .../nh/pojo/dto/sync/AlarmCountDTO.class | Bin 0 -> 2268 bytes .../nh/pojo/dto/sync/DayEnergyDTO.class | Bin 0 -> 3153 bytes .../dto/sync/InverterHourlyDataRecord.class | Bin 0 -> 2439 bytes .../dto/sync/InverterHourlyEnergyDTO.class | Bin 0 -> 3243 bytes .../nh/pojo/dto/sync/InverterIdMap.class | Bin 0 -> 2266 bytes .../pojo/dto/sync/InverterRealtimeData.class | Bin 0 -> 6246 bytes .../nh/pojo/dto/sync/InverterRecoverDTO.class | Bin 0 -> 2381 bytes .../nh/pojo/dto/sync/JlglHourlyDTO.class | Bin 0 -> 2077 bytes .../nh/pojo/dto/sync/LabelValueDTO.class | Bin 0 -> 2299 bytes .../nh/pojo/dto/sync/MonthEnergyDTO.class | Bin 0 -> 3613 bytes .../nh/pojo/dto/sync/StationIdMap.class | Bin 0 -> 2315 bytes .../nh/pojo/entity/AlarmCodeEntity.class | Bin 0 -> 5001 bytes .../nh/pojo/entity/AlarmInfoEntity.class | Bin 0 -> 14852 bytes .../modules/nh/pojo/entity/DeviceEntity.class | Bin 0 -> 9684 bytes .../nh/pojo/entity/DeviceMsgEntity.class | Bin 0 -> 4945 bytes .../entity/InefficientSettingEntity.class | Bin 0 -> 14724 bytes .../nh/pojo/entity/InverterDataEntity.class | Bin 0 -> 15907 bytes .../nh/pojo/entity/InverterUapEntity.class | Bin 0 -> 34844 bytes .../entity/MonitorEntryDailyStatEntity.class | Bin 0 -> 35713 bytes .../entity/MonitorEntryMonthStatEntity.class | Bin 0 -> 5503 bytes .../pojo/entity/MonitorEntryStatEntity.class | Bin 0 -> 11481 bytes .../entity/MonitorEntryYearStatEntity.class | Bin 0 -> 7054 bytes .../MonitorInverterDailyStatEntity.class | Bin 0 -> 36424 bytes .../entity/MonitorInverterStatEntity.class | Bin 0 -> 24182 bytes .../nh/pojo/entity/PowerStationEntity.class | Bin 0 -> 34079 bytes .../PowerStationInefficientEntity.class | Bin 0 -> 16365 bytes .../modules/nh/pojo/vo/AlarmCodeVO.class | Bin 0 -> 1016 bytes .../modules/nh/pojo/vo/AlarmInfoVO.class | Bin 0 -> 3713 bytes .../modules/nh/pojo/vo/DeviceVO.class | Bin 0 -> 3511 bytes .../modules/nh/pojo/vo/HomeOverviewVO.class | Bin 0 -> 5447 bytes .../nh/pojo/vo/InefficientSettingVO.class | Bin 0 -> 1061 bytes .../modules/nh/pojo/vo/InverterDataVO.class | Bin 0 -> 1031 bytes .../modules/nh/pojo/vo/InverterTreeVO.class | Bin 0 -> 5811 bytes .../modules/nh/pojo/vo/InverterUapVO.class | Bin 0 -> 1026 bytes .../nh/pojo/vo/MonitorEntryDailyStatVO.class | Bin 0 -> 1076 bytes .../nh/pojo/vo/MonitorEntryMonthStatVO.class | Bin 0 -> 1076 bytes .../nh/pojo/vo/MonitorEntryStatVO.class | Bin 0 -> 1051 bytes .../nh/pojo/vo/MonitorEntryYearStatVO.class | Bin 0 -> 1071 bytes .../pojo/vo/MonitorInverterDailyStatVO.class | Bin 0 -> 1091 bytes .../nh/pojo/vo/MonitorInverterStatVO.class | Bin 0 -> 1066 bytes .../nh/pojo/vo/OverviewStaticDataVo.class | Bin 0 -> 5740 bytes .../PowerGenerationTrendCoordinatesVO.class | Bin 0 -> 3616 bytes .../pojo/vo/PowerStationInefficientVO.class | Bin 0 -> 1086 bytes .../modules/nh/pojo/vo/PowerStationVO.class | Bin 0 -> 4360 bytes .../modules/nh/pojo/vo/StaticsMonthVO.class | Bin 0 -> 3708 bytes .../modules/nh/pojo/vo/StaticsStatusVO.class | Bin 0 -> 2290 bytes .../modules/nh/pojo/vo/StationStaticsVO.class | Bin 0 -> 5084 bytes .../nh/service/IAlarmCodeService.class | Bin 0 -> 1349 bytes .../nh/service/IAlarmInfoService.class | Bin 0 -> 2023 bytes .../modules/nh/service/IDeviceService.class | Bin 0 -> 2745 bytes .../service/IInefficientSettingService.class | Bin 0 -> 1633 bytes .../nh/service/IInverterDataService.class | Bin 0 -> 2699 bytes .../nh/service/IInverterUapService.class | Bin 0 -> 1448 bytes .../IMonitorEntryDailyStatService.class | Bin 0 -> 1847 bytes .../IMonitorEntryMonthStatService.class | Bin 0 -> 2162 bytes .../nh/service/IMonitorEntryStatService.class | Bin 0 -> 2780 bytes .../IMonitorEntryYearStatService.class | Bin 0 -> 1799 bytes .../IMonitorInverterDailyStatService.class | Bin 0 -> 2073 bytes .../service/IMonitorInverterStatService.class | Bin 0 -> 2327 bytes .../modules/nh/service/INHCommonService.class | Bin 0 -> 389 bytes .../IPowerStationInefficientService.class | Bin 0 -> 2098 bytes .../nh/service/IPowerStationService.class | Bin 0 -> 5036 bytes .../service/impl/AlarmCodeServiceImpl.class | Bin 0 -> 9585 bytes .../service/impl/AlarmInfoServiceImpl.class | Bin 0 -> 25780 bytes .../nh/service/impl/DeviceMsgService.class | Bin 0 -> 1470 bytes .../nh/service/impl/DeviceServiceImpl.class | Bin 0 -> 31196 bytes .../impl/InefficientSettingServiceImpl.class | Bin 0 -> 11274 bytes .../impl/InverterDataServiceImpl.class | Bin 0 -> 19672 bytes .../service/impl/InverterUapServiceImpl.class | Bin 0 -> 6080 bytes .../MonitorEntryDailyStatServiceImpl.class | Bin 0 -> 10651 bytes .../MonitorEntryMonthStatServiceImpl$1.class | Bin 0 -> 1796 bytes .../MonitorEntryMonthStatServiceImpl.class | Bin 0 -> 12880 bytes .../impl/MonitorEntryStatServiceImpl.class | Bin 0 -> 21733 bytes .../MonitorEntryYearStatServiceImpl.class | Bin 0 -> 13825 bytes ...onitorInverterDailyStatServiceImpl$1.class | Bin 0 -> 1645 bytes .../MonitorInverterDailyStatServiceImpl.class | Bin 0 -> 21020 bytes .../impl/MonitorInverterStatServiceImpl.class | Bin 0 -> 23528 bytes .../nh/service/impl/NHCommonServiceImpl.class | Bin 0 -> 4923 bytes .../PowerStationInefficientServiceImpl.class | Bin 0 -> 31132 bytes .../impl/PowerStationServiceImpl$1.class | Bin 0 -> 1368 bytes .../impl/PowerStationServiceImpl.class | Bin 0 -> 59311 bytes .../modules/nh/wrapper/AlarmCodeWrapper.class | Bin 0 -> 1477 bytes .../modules/nh/wrapper/AlarmInfoWrapper.class | Bin 0 -> 1477 bytes .../modules/nh/wrapper/DeviceWrapper.class | Bin 0 -> 1435 bytes .../wrapper/InefficientSettingWrapper.class | Bin 0 -> 1603 bytes .../nh/wrapper/InverterDataWrapper.class | Bin 0 -> 1519 bytes .../nh/wrapper/InverterUapWrapper.class | Bin 0 -> 1505 bytes .../MonitorEntryDailyStatWrapper.class | Bin 0 -> 1645 bytes .../MonitorEntryMonthStatWrapper.class | Bin 0 -> 1645 bytes .../nh/wrapper/MonitorEntryStatWrapper.class | Bin 0 -> 2010 bytes .../wrapper/MonitorEntryYearStatWrapper.class | Bin 0 -> 1631 bytes .../MonitorInverterDailyStatWrapper.class | Bin 0 -> 1687 bytes .../wrapper/MonitorInverterStatWrapper.class | Bin 0 -> 1617 bytes .../PowerStationInefficientWrapper.class | Bin 0 -> 1673 bytes .../nh/wrapper/PowerStationWrapper.class | Bin 0 -> 4865 bytes .../operation/constant/SourceConstants.class | Bin 0 -> 698 bytes .../AnnouncementReadinfoController.class | Bin 0 -> 1982 bytes .../controller/OperationRoleController.class | Bin 0 -> 12870 bytes .../OperationServiceMeasuresController.class | Bin 0 -> 10808 bytes .../OperationServiceTypeController.class | Bin 0 -> 9918 bytes .../controller/OperationSiteController.class | Bin 0 -> 7004 bytes .../OperationSiteEmployeeController.class | Bin 0 -> 10300 bytes .../OperationSiteRoleController.class | Bin 0 -> 10032 bytes .../OperationTechnicalDataController.class | Bin 0 -> 10494 bytes .../PlatformAnnouncementController.class | Bin 0 -> 6508 bytes .../PlatformEmployeeController.class | Bin 0 -> 3161 bytes .../excel/EntryPaymentTimeExcel.class | Bin 0 -> 3057 bytes .../operation/excel/EntrySiteExcel.class | Bin 0 -> 2744 bytes .../excel/OperationServiceMeasuresExcel.class | Bin 0 -> 3417 bytes .../excel/OperationServiceTypeExcel.class | Bin 0 -> 2820 bytes .../excel/OperationSiteEmployeeExcel.class | Bin 0 -> 8025 bytes .../operation/excel/OperationSiteExcel.class | Bin 0 -> 6731 bytes .../excel/OperationSiteRoleExcel.class | Bin 0 -> 3330 bytes .../excel/OperationTechnicalDataExcel.class | Bin 0 -> 4246 bytes .../excel/PlatformEmployeeExcel.class | Bin 0 -> 5310 bytes .../mapper/AnnouncementReadinfoMapper.class | Bin 0 -> 395 bytes .../mapper/AnnouncementReadinfoMapper.xml | 22 + .../OperationServiceMeasuresMapper.class | Bin 0 -> 1352 bytes .../mapper/OperationServiceMeasuresMapper.xml | 24 + .../mapper/OperationServiceTypeMapper.class | Bin 0 -> 1452 bytes .../mapper/OperationServiceTypeMapper.xml | 31 + .../mapper/OperationSiteEmployeeMapper.class | Bin 0 -> 1966 bytes .../mapper/OperationSiteEmployeeMapper.xml | 91 + .../mapper/OperationSiteMapper.class | Bin 0 -> 1967 bytes .../operation/mapper/OperationSiteMapper.xml | 92 + .../mapper/OperationSiteRoleMapper.class | Bin 0 -> 1473 bytes .../mapper/OperationSiteRoleMapper.xml | 30 + .../mapper/OperationTechnicalDataMapper.class | Bin 0 -> 1459 bytes .../mapper/OperationTechnicalDataMapper.xml | 38 + .../mapper/PlatformAnnouncementMapper.class | Bin 0 -> 1207 bytes .../mapper/PlatformAnnouncementMapper.xml | 62 + .../mapper/PlatformEmployeeMapper.class | Bin 0 -> 2074 bytes .../mapper/PlatformEmployeeMapper.xml | 70 + .../dto/OperationServiceMeasuresDTO.class | Bin 0 -> 2637 bytes .../pojo/dto/OperationServiceTypeDTO.class | Bin 0 -> 2331 bytes .../operation/pojo/dto/OperationSiteDTO.class | Bin 0 -> 1063 bytes .../pojo/dto/OperationSiteEmployeeDTO.class | Bin 0 -> 2648 bytes .../pojo/dto/OperationSiteRoleDTO.class | Bin 0 -> 1083 bytes .../pojo/dto/OperationTechnicalDataDTO.class | Bin 0 -> 1108 bytes .../pojo/dto/PlatformEmployeeDTO.class | Bin 0 -> 1078 bytes .../entity/AnnouncementReadinfoEntity.class | Bin 0 -> 3975 bytes .../OperationServiceMeasuresEntity.class | Bin 0 -> 5366 bytes .../entity/OperationServiceTypeEntity.class | Bin 0 -> 6151 bytes .../entity/OperationSiteEmployeeEntity.class | Bin 0 -> 11713 bytes .../pojo/entity/OperationSiteEntity.class | Bin 0 -> 18759 bytes .../pojo/entity/OperationSiteRoleEntity.class | Bin 0 -> 3920 bytes .../entity/OperationTechnicalDataEntity.class | Bin 0 -> 7517 bytes .../entity/PlatformAnnouncementEntity.class | Bin 0 -> 7011 bytes .../pojo/entity/PlatformEmployeeEntity.class | Bin 0 -> 7061 bytes .../pojo/vo/AnnouncementReadinfoVO.class | Bin 0 -> 1092 bytes .../operation/pojo/vo/EditSiteEmpAuthVo.class | Bin 0 -> 3520 bytes .../modules/operation/pojo/vo/EmpAuthVo.class | Bin 0 -> 4930 bytes .../operation/pojo/vo/OperationEmpVo.class | Bin 0 -> 848 bytes .../pojo/vo/OperationServiceMeasuresVO.class | Bin 0 -> 1112 bytes .../pojo/vo/OperationServiceTypeVO.class | Bin 0 -> 1092 bytes .../pojo/vo/OperationSiteEmployeeVO.class | Bin 0 -> 2642 bytes .../pojo/vo/OperationSiteRoleVO.class | Bin 0 -> 2164 bytes .../operation/pojo/vo/OperationSiteVO.class | Bin 0 -> 4280 bytes .../pojo/vo/OperationTechnicalDataVO.class | Bin 0 -> 1102 bytes .../pojo/vo/PlatformAnnouncementVO.class | Bin 0 -> 2826 bytes .../pojo/vo/PlatformEmployeeVO.class | Bin 0 -> 1072 bytes .../IAnnouncementReadinfoService.class | Bin 0 -> 408 bytes .../IOperationServiceMeasuresService.class | Bin 0 -> 1514 bytes .../IOperationServiceTypeService.class | Bin 0 -> 1658 bytes .../IOperationSiteEmployeeService.class | Bin 0 -> 2150 bytes .../service/IOperationSiteRoleService.class | Bin 0 -> 1718 bytes .../service/IOperationSiteService.class | Bin 0 -> 2179 bytes .../IOperationTechnicalDataService.class | Bin 0 -> 1598 bytes .../IPlatformAnnouncementService.class | Bin 0 -> 1632 bytes .../service/IPlatformEmployeeService.class | Bin 0 -> 794 bytes .../AnnouncementReadinfoServiceImpl.class | Bin 0 -> 917 bytes .../OperationServiceMeasuresServiceImpl.class | Bin 0 -> 5460 bytes .../OperationServiceTypeServiceImpl.class | Bin 0 -> 7260 bytes .../OperationSiteEmployeeServiceImpl.class | Bin 0 -> 12988 bytes .../impl/OperationSiteRoleServiceImpl.class | Bin 0 -> 6389 bytes .../impl/OperationSiteServiceImpl.class | Bin 0 -> 14707 bytes .../OperationTechnicalDataServiceImpl.class | Bin 0 -> 5114 bytes .../PlatformAnnouncementServiceImpl.class | Bin 0 -> 3138 bytes .../impl/PlatformEmployeeServiceImpl.class | Bin 0 -> 6007 bytes .../wrapper/AnnouncementReadinfoWrapper.class | Bin 0 -> 1319 bytes .../OperationServiceMeasuresWrapper.class | Bin 0 -> 1764 bytes .../wrapper/OperationServiceTypeWrapper.class | Bin 0 -> 1708 bytes .../OperationSiteEmployeeWrapper.class | Bin 0 -> 1722 bytes .../wrapper/OperationSiteRoleWrapper.class | Bin 0 -> 1666 bytes .../wrapper/OperationSiteWrapper.class | Bin 0 -> 1610 bytes .../OperationTechnicalDataWrapper.class | Bin 0 -> 1736 bytes .../wrapper/PlatformAnnouncementWrapper.class | Bin 0 -> 1708 bytes .../wrapper/PlatformEmployeeWrapper.class | Bin 0 -> 1652 bytes .../constant/DeliverOrderConstants.class | Bin 0 -> 2333 bytes .../constant/MaterialBatchConstants.class | Bin 0 -> 594 bytes .../order/constant/OrderConstants.class | Bin 0 -> 2172 bytes .../constant/PendingOrderConstants.class | Bin 0 -> 600 bytes .../OperationOrderCallbackController.class | Bin 0 -> 2573 bytes .../controller/OperationOrderController.class | Bin 0 -> 7853 bytes .../OperationOrderDispatchController.class | Bin 0 -> 2370 bytes .../OperationOrderFeedbackController.class | Bin 0 -> 2846 bytes .../OperationOrderLetterController.class | Bin 0 -> 3279 bytes .../OperationOrderSettleController.class | Bin 0 -> 6404 bytes ...OperationOrderSiteDispatchController.class | Bin 0 -> 2629 bytes .../excel/OperationOrderCallbackExcel.class | Bin 0 -> 4359 bytes .../order/excel/OperationOrderExcel.class | Bin 0 -> 25955 bytes .../excel/OperationOrderFeedbackExcel.class | Bin 0 -> 12588 bytes .../excel/OperationOrderSettleExcel.class | Bin 0 -> 4970 bytes .../OperationOrderSiteDispatchExcel.class | Bin 0 -> 7146 bytes .../mapper/OperationOrderCallbackMapper.class | Bin 0 -> 1424 bytes .../mapper/OperationOrderCallbackMapper.xml | 31 + .../mapper/OperationOrderDispatchMapper.class | Bin 0 -> 986 bytes .../mapper/OperationOrderDispatchMapper.xml | 36 + .../mapper/OperationOrderFeedbackMapper.class | Bin 0 -> 1302 bytes .../mapper/OperationOrderFeedbackMapper.xml | 39 + .../mapper/OperationOrderLetterMapper.class | Bin 0 -> 857 bytes .../mapper/OperationOrderLetterMapper.xml | 17 + .../order/mapper/OperationOrderMapper.class | Bin 0 -> 2919 bytes .../order/mapper/OperationOrderMapper.xml | 342 + .../OperationOrderOperationInfoMapper.class | Bin 0 -> 1058 bytes .../OperationOrderOperationInfoMapper.xml | 24 + .../mapper/OperationOrderSettleMapper.class | Bin 0 -> 1451 bytes .../mapper/OperationOrderSettleMapper.xml | 83 + .../OperationOrderSiteDispatchMapper.class | Bin 0 -> 1346 bytes .../OperationOrderSiteDispatchMapper.xml | 32 + .../pojo/dto/OperationOrderCallbackDTO.class | Bin 0 -> 1096 bytes .../order/pojo/dto/OperationOrderDTO.class | Bin 0 -> 1056 bytes .../pojo/dto/OperationOrderFeedbackDTO.class | Bin 0 -> 1096 bytes .../pojo/dto/OperationOrderSettleDTO.class | Bin 0 -> 4891 bytes .../dto/OperationOrderSiteDispatchDTO.class | Bin 0 -> 1116 bytes .../order/pojo/dto/OrderLetterDTO.class | Bin 0 -> 5070 bytes .../entity/OperationOrderCallbackEntity.class | Bin 0 -> 5427 bytes .../entity/OperationOrderDispatchEntity.class | Bin 0 -> 10970 bytes .../pojo/entity/OperationOrderEntity.class | Bin 0 -> 67433 bytes .../entity/OperationOrderFeedbackEntity.class | Bin 0 -> 7661 bytes .../entity/OperationOrderLetterEntity.class | Bin 0 -> 7519 bytes .../OperationOrderOperationInfoEntity.class | Bin 0 -> 4536 bytes .../entity/OperationOrderSettleEntity.class | Bin 0 -> 7552 bytes .../OperationOrderSiteDispatchEntity.class | Bin 0 -> 9691 bytes .../order/pojo/form/ComplaintForm.class | Bin 0 -> 2972 bytes .../order/pojo/form/ComplaintReply.class | Bin 0 -> 986 bytes .../order/pojo/form/EvaluationForm.class | Bin 0 -> 1809 bytes .../order/pojo/form/FeedbackForm.class | Bin 0 -> 981 bytes .../form/OperationOrderConditionForm.class | Bin 0 -> 6854 bytes .../order/pojo/vo/ExamineOrderVo.class | Bin 0 -> 2711 bytes .../pojo/vo/OperationOrderCallbackVO.class | Bin 0 -> 1090 bytes .../pojo/vo/OperationOrderDispatchVO.class | Bin 0 -> 1090 bytes .../pojo/vo/OperationOrderFeedbackVO.class | Bin 0 -> 4956 bytes .../vo/OperationOrderOperationInfoVO.class | Bin 0 -> 1115 bytes .../pojo/vo/OperationOrderSettleVO.class | Bin 0 -> 11938 bytes .../vo/OperationOrderSiteDispatchVO.class | Bin 0 -> 1110 bytes .../order/pojo/vo/OperationOrderVO.class | Bin 0 -> 9286 bytes .../modules/order/pojo/vo/OrderHomeVo.class | Bin 0 -> 3558 bytes .../order/pojo/vo/OrderListConditionVo.class | Bin 0 -> 20810 bytes .../modules/order/pojo/vo/OrderStaticVo.class | Bin 0 -> 3775 bytes .../modules/order/pojo/vo/OrderVo.class | Bin 0 -> 6647 bytes .../modules/order/pojo/vo/SelectVo.class | Bin 0 -> 3021 bytes .../IOperationOrderCallbackService.class | Bin 0 -> 671 bytes .../IOperationOrderDispatchService.class | Bin 0 -> 770 bytes .../IOperationOrderFeedbackService.class | Bin 0 -> 752 bytes .../IOperationOrderOperationInfoService.class | Bin 0 -> 1171 bytes .../service/IOperationOrderService.class | Bin 0 -> 2196 bytes .../IOperationOrderSettleService.class | Bin 0 -> 1534 bytes .../IOperationOrderSiteDispatchService.class | Bin 0 -> 788 bytes .../OperationOrderCallbackServiceImpl.class | Bin 0 -> 6179 bytes .../OperationOrderDispatchServiceImpl.class | Bin 0 -> 10096 bytes .../OperationOrderFeedbackServiceImpl.class | Bin 0 -> 10153 bytes .../impl/OperationOrderLetterService.class | Bin 0 -> 10095 bytes ...erationOrderOperationInfoServiceImpl.class | Bin 0 -> 2731 bytes .../impl/OperationOrderServiceImpl.class | Bin 0 -> 32275 bytes .../OperationOrderSettleServiceImpl.class | Bin 0 -> 12801 bytes ...perationOrderSiteDispatchServiceImpl.class | Bin 0 -> 16041 bytes .../modules/order/utils/ExcelReader$1.class | Bin 0 -> 1286 bytes .../modules/order/utils/ExcelReader.class | Bin 0 -> 4275 bytes .../modules/order/utils/PlantformUtils.class | Bin 0 -> 5203 bytes .../modules/order/utils/Target.class | Bin 0 -> 1857 bytes .../order/utils/WebPageFunUtils$1.class | Bin 0 -> 692 bytes .../order/utils/WebPageFunUtils$10.class | Bin 0 -> 724 bytes .../order/utils/WebPageFunUtils$11.class | Bin 0 -> 1312 bytes .../order/utils/WebPageFunUtils$12.class | Bin 0 -> 744 bytes .../order/utils/WebPageFunUtils$13.class | Bin 0 -> 1379 bytes .../order/utils/WebPageFunUtils$14.class | Bin 0 -> 763 bytes .../order/utils/WebPageFunUtils$2.class | Bin 0 -> 1260 bytes .../order/utils/WebPageFunUtils$3.class | Bin 0 -> 706 bytes .../order/utils/WebPageFunUtils$4.class | Bin 0 -> 1323 bytes .../order/utils/WebPageFunUtils$5.class | Bin 0 -> 717 bytes .../order/utils/WebPageFunUtils$6.class | Bin 0 -> 698 bytes .../order/utils/WebPageFunUtils$7.class | Bin 0 -> 696 bytes .../order/utils/WebPageFunUtils$8.class | Bin 0 -> 1264 bytes .../order/utils/WebPageFunUtils$9.class | Bin 0 -> 1338 bytes .../modules/order/utils/WebPageFunUtils.class | Bin 0 -> 8120 bytes .../OperationOrderCallbackWrapper.class | Bin 0 -> 1692 bytes .../OperationOrderDispatchWrapper.class | Bin 0 -> 1692 bytes .../OperationOrderFeedbackWrapper.class | Bin 0 -> 1692 bytes .../OperationOrderOperationInfoWrapper.class | Bin 0 -> 1762 bytes .../wrapper/OperationOrderSettleWrapper.class | Bin 0 -> 1664 bytes .../OperationOrderSiteDispatchWrapper.class | Bin 0 -> 1748 bytes .../order/wrapper/OperationOrderWrapper.class | Bin 0 -> 1580 bytes .../controller/PartnerController.class | Bin 0 -> 4040 bytes .../modules/partner/excel/PartnerExcel.class | Bin 0 -> 12692 bytes .../partner/mapper/PartnerMapper.class | Bin 0 -> 1276 bytes .../modules/partner/mapper/PartnerMapper.xml | 47 + .../modules/partner/pojo/dto/PartnerDTO.class | Bin 0 -> 1027 bytes .../partner/pojo/entity/PartnerEntity.class | Bin 0 -> 12961 bytes .../modules/partner/pojo/vo/PartnerVO.class | Bin 0 -> 1021 bytes .../partner/service/IPartnerService.class | Bin 0 -> 1294 bytes .../service/impl/PartnerServiceImpl.class | Bin 0 -> 2951 bytes .../partner/wrapper/PartnerWrapper.class | Bin 0 -> 1504 bytes .../modules/resource/builder/OssBuilder.class | Bin 0 -> 8719 bytes .../modules/resource/builder/SmsBuilder.class | Bin 0 -> 8929 bytes .../config/BladeOssConfiguration.class | Bin 0 -> 1244 bytes .../config/BladeSmsConfiguration.class | Bin 0 -> 1392 bytes .../controller/AttachController.class | Bin 0 -> 5644 bytes .../resource/controller/OssController.class | Bin 0 -> 6684 bytes .../resource/controller/SmsController.class | Bin 0 -> 6705 bytes .../resource/endpoint/OssEndpoint.class | Bin 0 -> 7399 bytes .../resource/endpoint/SmsEndpoint.class | Bin 0 -> 5842 bytes .../resource/mapper/AttachMapper.class | Bin 0 -> 719 bytes .../modules/resource/mapper/AttachMapper.xml | 28 + .../modules/resource/mapper/OssMapper.class | Bin 0 -> 695 bytes .../modules/resource/mapper/OssMapper.xml | 30 + .../modules/resource/mapper/SmsMapper.class | Bin 0 -> 695 bytes .../modules/resource/mapper/SmsMapper.xml | 30 + .../modules/resource/pojo/entity/Attach.class | Bin 0 -> 4641 bytes .../modules/resource/pojo/entity/Oss.class | Bin 0 -> 6653 bytes .../modules/resource/pojo/entity/Sms.class | Bin 0 -> 5585 bytes .../resource/pojo/enums/SmsCodeEnum.class | Bin 0 -> 1885 bytes .../modules/resource/pojo/vo/AttachVO.class | Bin 0 -> 1133 bytes .../modules/resource/pojo/vo/OssVO.class | Bin 0 -> 2549 bytes .../modules/resource/pojo/vo/SmsVO.class | Bin 0 -> 2549 bytes .../resource/rule/context/OssContext.class | Bin 0 -> 5945 bytes .../resource/rule/context/SmsContext.class | Bin 0 -> 5990 bytes .../resource/rule/oss/AliOssRule.class | Bin 0 -> 2913 bytes .../resource/rule/oss/AmazonS3Rule.class | Bin 0 -> 4332 bytes .../resource/rule/oss/FinallyOssRule.class | Bin 0 -> 2497 bytes .../resource/rule/oss/HuaweiObsRule.class | Bin 0 -> 2671 bytes .../modules/resource/rule/oss/MinioRule.class | Bin 0 -> 2504 bytes .../resource/rule/oss/OssBuildRule.class | Bin 0 -> 1796 bytes .../resource/rule/oss/OssCacheRule.class | Bin 0 -> 1035 bytes .../resource/rule/oss/OssDataRule.class | Bin 0 -> 1853 bytes .../resource/rule/oss/OssReadRule.class | Bin 0 -> 2019 bytes .../resource/rule/oss/OssTemplateRule.class | Bin 0 -> 1327 bytes .../resource/rule/oss/PreOssRule.class | Bin 0 -> 2371 bytes .../resource/rule/oss/QiniuOssRule.class | Bin 0 -> 2869 bytes .../resource/rule/oss/TencentCosRule.class | Bin 0 -> 3025 bytes .../resource/rule/sms/AliSmsRule.class | Bin 0 -> 2470 bytes .../resource/rule/sms/CacheSmsRule.class | Bin 0 -> 2017 bytes .../resource/rule/sms/FinallySmsRule.class | Bin 0 -> 2497 bytes .../resource/rule/sms/PreSmsRule.class | Bin 0 -> 2290 bytes .../resource/rule/sms/QiniuSmsRule.class | Bin 0 -> 2318 bytes .../resource/rule/sms/SmsBuildRule.class | Bin 0 -> 1812 bytes .../resource/rule/sms/TencentSmsRule.class | Bin 0 -> 2281 bytes .../resource/rule/sms/YunpianSmsRule.class | Bin 0 -> 2137 bytes .../resource/service/IAttachService.class | Bin 0 -> 823 bytes .../resource/service/IOssService.class | Bin 0 -> 935 bytes .../resource/service/ISmsService.class | Bin 0 -> 941 bytes .../service/impl/AttachServiceImpl.class | Bin 0 -> 2002 bytes .../service/impl/OssServiceImpl.class | Bin 0 -> 6824 bytes .../service/impl/SmsServiceImpl.class | Bin 0 -> 6824 bytes .../resource/template/BladeS3Template$1.class | Bin 0 -> 833 bytes .../resource/template/BladeS3Template.class | Bin 0 -> 15714 bytes .../modules/resource/utils/SmsUtil.class | Bin 0 -> 3682 bytes .../modules/resource/wrapper/OssWrapper.class | Bin 0 -> 1968 bytes .../modules/resource/wrapper/SmsWrapper.class | Bin 0 -> 1968 bytes .../controller/ApiScopeController.class | Bin 0 -> 5313 bytes .../controller/AuthClientController.class | Bin 0 -> 4874 bytes .../controller/DataScopeController.class | Bin 0 -> 5332 bytes .../system/controller/DeptController.class | Bin 0 -> 11624 bytes .../system/controller/DictBizController.class | Bin 0 -> 11856 bytes .../system/controller/DictController.class | Bin 0 -> 11851 bytes .../system/controller/LogApiController.class | Bin 0 -> 3383 bytes .../controller/LogErrorController.class | Bin 0 -> 3421 bytes .../controller/LogUsualController.class | Bin 0 -> 3263 bytes .../system/controller/MenuController.class | Bin 0 -> 15799 bytes .../system/controller/ParamController.class | Bin 0 -> 5265 bytes .../system/controller/PostController.class | Bin 0 -> 9067 bytes .../system/controller/RegionController.class | Bin 0 -> 14145 bytes .../system/controller/RoleController.class | Bin 0 -> 11122 bytes .../system/controller/SearchController.class | Bin 0 -> 8008 bytes .../system/controller/TenantController.class | Bin 0 -> 14374 bytes .../controller/TenantPackageController.class | Bin 0 -> 5629 bytes .../system/controller/TopMenuController.class | Bin 0 -> 7633 bytes .../system/controller/UserController.class | Bin 0 -> 18558 bytes .../modules/system/excel/RegionExcel.class | Bin 0 -> 10674 bytes .../modules/system/excel/RegionImporter.class | Bin 0 -> 1294 bytes .../modules/system/excel/UserExcel.class | Bin 0 -> 9426 bytes .../modules/system/excel/UserImporter.class | Bin 0 -> 1274 bytes .../system/mapper/ApiScopeMapper.class | Bin 0 -> 347 bytes .../modules/system/mapper/ApiScopeMapper.xml | 5 + .../system/mapper/AuthClientMapper.class | Bin 0 -> 353 bytes .../system/mapper/AuthClientMapper.xml | 27 + .../system/mapper/DataScopeMapper.class | Bin 0 -> 350 bytes .../modules/system/mapper/DataScopeMapper.xml | 5 + .../modules/system/mapper/DeptMapper.class | Bin 0 -> 1163 bytes .../modules/system/mapper/DeptMapper.xml | 115 + .../modules/system/mapper/DictBizMapper.class | Bin 0 -> 788 bytes .../modules/system/mapper/DictBizMapper.xml | 51 + .../modules/system/mapper/DictMapper.class | Bin 0 -> 1112 bytes .../modules/system/mapper/DictMapper.xml | 54 + .../modules/system/mapper/LogApiMapper.class | Bin 0 -> 329 bytes .../modules/system/mapper/LogApiMapper.xml | 26 + .../system/mapper/LogErrorMapper.class | Bin 0 -> 335 bytes .../modules/system/mapper/LogErrorMapper.xml | 27 + .../system/mapper/LogUsualMapper.class | Bin 0 -> 335 bytes .../modules/system/mapper/LogUsualMapper.xml | 22 + .../modules/system/mapper/MenuMapper.class | Bin 0 -> 2221 bytes .../modules/system/mapper/MenuMapper.xml | 496 + .../modules/system/mapper/ParamMapper.class | Bin 0 -> 338 bytes .../modules/system/mapper/ParamMapper.xml | 20 + .../modules/system/mapper/PostMapper.class | Bin 0 -> 837 bytes .../modules/system/mapper/PostMapper.xml | 40 + .../modules/system/mapper/RegionMapper.class | Bin 0 -> 1074 bytes .../modules/system/mapper/RegionMapper.xml | 105 + .../modules/system/mapper/RoleMapper.class | Bin 0 -> 1158 bytes .../modules/system/mapper/RoleMapper.xml | 67 + .../system/mapper/RoleMenuMapper.class | Bin 0 -> 725 bytes .../modules/system/mapper/RoleMenuMapper.xml | 16 + .../system/mapper/RoleScopeMapper.class | Bin 0 -> 350 bytes .../modules/system/mapper/RoleScopeMapper.xml | 12 + .../modules/system/mapper/TenantMapper.class | Bin 0 -> 715 bytes .../modules/system/mapper/TenantMapper.xml | 31 + .../system/mapper/TenantPackageMapper.class | Bin 0 -> 362 bytes .../system/mapper/TenantPackageMapper.xml | 20 + .../modules/system/mapper/TopMenuMapper.class | Bin 0 -> 344 bytes .../modules/system/mapper/TopMenuMapper.xml | 21 + .../system/mapper/TopMenuSettingMapper.class | Bin 0 -> 365 bytes .../system/mapper/TopMenuSettingMapper.xml | 5 + .../modules/system/mapper/UserAppMapper.class | Bin 0 -> 344 bytes .../modules/system/mapper/UserAppMapper.xml | 5 + .../system/mapper/UserDeptMapper.class | Bin 0 -> 347 bytes .../modules/system/mapper/UserDeptMapper.xml | 5 + .../modules/system/mapper/UserMapper.class | Bin 0 -> 1391 bytes .../modules/system/mapper/UserMapper.xml | 84 + .../system/mapper/UserOauthMapper.class | Bin 0 -> 350 bytes .../modules/system/mapper/UserOauthMapper.xml | 22 + .../system/mapper/UserOtherMapper.class | Bin 0 -> 350 bytes .../modules/system/mapper/UserOtherMapper.xml | 5 + .../modules/system/mapper/UserWebMapper.class | Bin 0 -> 344 bytes .../modules/system/mapper/UserWebMapper.xml | 5 + .../modules/system/pojo/dto/DeptDTO.class | Bin 0 -> 1003 bytes .../modules/system/pojo/dto/DictDTO.class | Bin 0 -> 1003 bytes .../modules/system/pojo/dto/MenuDTO.class | Bin 0 -> 2290 bytes .../modules/system/pojo/dto/ParamDTO.class | Bin 0 -> 1008 bytes .../modules/system/pojo/dto/PostDTO.class | Bin 0 -> 1003 bytes .../modules/system/pojo/dto/RoleDTO.class | Bin 0 -> 1003 bytes .../modules/system/pojo/dto/RoleMenuDTO.class | Bin 0 -> 1023 bytes .../modules/system/pojo/entity/ApiScope.class | Bin 0 -> 4763 bytes .../system/pojo/entity/AuthClient.class | Bin 0 -> 7774 bytes .../system/pojo/entity/DataScope.class | Bin 0 -> 6355 bytes .../modules/system/pojo/entity/Dept.class | Bin 0 -> 6944 bytes .../modules/system/pojo/entity/Dict.class | Bin 0 -> 6371 bytes .../modules/system/pojo/entity/DictBiz.class | Bin 0 -> 6900 bytes .../modules/system/pojo/entity/Menu.class | Bin 0 -> 5922 bytes .../modules/system/pojo/entity/Param.class | Bin 0 -> 3585 bytes .../modules/system/pojo/entity/Post.class | Bin 0 -> 4099 bytes .../modules/system/pojo/entity/Region.class | Bin 0 -> 10636 bytes .../modules/system/pojo/entity/Role.class | Bin 0 -> 5958 bytes .../modules/system/pojo/entity/RoleMenu.class | Bin 0 -> 3307 bytes .../system/pojo/entity/RoleScope.class | Bin 0 -> 3905 bytes .../modules/system/pojo/entity/Tenant.class | Bin 0 -> 8313 bytes .../system/pojo/entity/TenantPackage.class | Bin 0 -> 3146 bytes .../modules/system/pojo/entity/TopMenu.class | Bin 0 -> 3607 bytes .../system/pojo/entity/TopMenuSetting.class | Bin 0 -> 3122 bytes .../modules/system/pojo/entity/User.class | Bin 0 -> 8107 bytes .../modules/system/pojo/entity/UserApp.class | Bin 0 -> 3533 bytes .../modules/system/pojo/entity/UserDept.class | Bin 0 -> 3307 bytes .../modules/system/pojo/entity/UserInfo.class | Bin 0 -> 4559 bytes .../system/pojo/entity/UserOauth.class | Bin 0 -> 8410 bytes .../system/pojo/entity/UserOther.class | Bin 0 -> 3547 bytes .../modules/system/pojo/entity/UserWeb.class | Bin 0 -> 3533 bytes .../modules/system/pojo/vo/ApiScopeVO.class | Bin 0 -> 2128 bytes .../system/pojo/vo/CheckedTreeVO.class | Bin 0 -> 2984 bytes .../modules/system/pojo/vo/DataScopeVO.class | Bin 0 -> 2134 bytes .../modules/system/pojo/vo/DeptVO.class | Bin 0 -> 5536 bytes .../modules/system/pojo/vo/DictBizVO.class | Bin 0 -> 4491 bytes .../modules/system/pojo/vo/DictVO.class | Bin 0 -> 4458 bytes .../modules/system/pojo/vo/GrantTreeVO.class | Bin 0 -> 3766 bytes .../modules/system/pojo/vo/GrantVO.class | Bin 0 -> 4360 bytes .../modules/system/pojo/vo/MenuVO.class | Bin 0 -> 6470 bytes .../modules/system/pojo/vo/ParamVO.class | Bin 0 -> 1124 bytes .../modules/system/pojo/vo/PostVO.class | Bin 0 -> 2094 bytes .../modules/system/pojo/vo/RegionVO.class | Bin 0 -> 5250 bytes .../modules/system/pojo/vo/RoleMenuVO.class | Bin 0 -> 1142 bytes .../modules/system/pojo/vo/RoleVO.class | Bin 0 -> 4458 bytes .../modules/system/pojo/vo/UserVO.class | Bin 0 -> 5974 bytes .../modules/system/rule/TenantContext.class | Bin 0 -> 8868 bytes .../modules/system/rule/TenantDeptRule.class | Bin 0 -> 1944 bytes .../system/rule/TenantDictBizRule.class | Bin 0 -> 7902 bytes .../modules/system/rule/TenantPostRule.class | Bin 0 -> 1635 bytes .../system/rule/TenantRoleMenuRule.class | Bin 0 -> 7961 bytes .../modules/system/rule/TenantRoleRule.class | Bin 0 -> 1789 bytes .../modules/system/rule/TenantRule.class | Bin 0 -> 5923 bytes .../modules/system/rule/TenantUserRule.class | Bin 0 -> 2386 bytes .../system/service/IApiScopeService.class | Bin 0 -> 338 bytes .../system/service/IAuthClientService.class | Bin 0 -> 344 bytes .../system/service/IDataScopeService.class | Bin 0 -> 341 bytes .../modules/system/service/IDeptService.class | Bin 0 -> 1672 bytes .../system/service/IDictBizService.class | Bin 0 -> 1556 bytes .../modules/system/service/IDictService.class | Bin 0 -> 1973 bytes .../system/service/ILogApiService.class | Bin 0 -> 342 bytes .../system/service/ILogErrorService.class | Bin 0 -> 348 bytes .../modules/system/service/ILogService.class | Bin 0 -> 460 bytes .../system/service/ILogUsualService.class | Bin 0 -> 348 bytes .../modules/system/service/IMenuService.class | Bin 0 -> 2127 bytes .../system/service/IParamService.class | Bin 0 -> 430 bytes .../modules/system/service/IPostService.class | Bin 0 -> 1104 bytes .../system/service/IRegionService.class | Bin 0 -> 1335 bytes .../system/service/IRoleMenuService.class | Bin 0 -> 360 bytes .../system/service/IRoleScopeService.class | Bin 0 -> 363 bytes .../modules/system/service/IRoleService.class | Bin 0 -> 2060 bytes .../service/ITenantPackageService.class | Bin 0 -> 353 bytes .../system/service/ITenantService.class | Bin 0 -> 1265 bytes .../system/service/ITopMenuService.class | Bin 0 -> 682 bytes .../service/ITopMenuSettingService.class | Bin 0 -> 378 bytes .../system/service/IUserDeptService.class | Bin 0 -> 360 bytes .../system/service/IUserOauthService.class | Bin 0 -> 363 bytes .../system/service/IUserSearchService.class | Bin 0 -> 696 bytes .../modules/system/service/IUserService.class | Bin 0 -> 4054 bytes .../service/impl/ApiScopeServiceImpl.class | Bin 0 -> 779 bytes .../service/impl/AuthClientServiceImpl.class | Bin 0 -> 793 bytes .../service/impl/DataScopeServiceImpl.class | Bin 0 -> 786 bytes .../system/service/impl/DeptServiceImpl.class | Bin 0 -> 12089 bytes .../service/impl/DictBizServiceImpl.class | Bin 0 -> 10294 bytes .../system/service/impl/DictServiceImpl.class | Bin 0 -> 11287 bytes .../service/impl/LogApiServiceImpl.class | Bin 0 -> 783 bytes .../service/impl/LogErrorServiceImpl.class | Bin 0 -> 797 bytes .../system/service/impl/LogServiceImpl.class | Bin 0 -> 1974 bytes .../service/impl/LogUsualServiceImpl.class | Bin 0 -> 797 bytes .../system/service/impl/MenuServiceImpl.class | Bin 0 -> 24795 bytes .../service/impl/ParamServiceImpl.class | Bin 0 -> 3289 bytes .../system/service/impl/PostServiceImpl.class | Bin 0 -> 8114 bytes .../service/impl/RegionServiceImpl.class | Bin 0 -> 8658 bytes .../service/impl/RoleMenuServiceImpl.class | Bin 0 -> 809 bytes .../service/impl/RoleScopeServiceImpl.class | Bin 0 -> 816 bytes .../system/service/impl/RoleServiceImpl.class | Bin 0 -> 18586 bytes .../impl/TenantPackageServiceImpl.class | Bin 0 -> 814 bytes .../service/impl/TenantServiceImpl.class | Bin 0 -> 15175 bytes .../service/impl/TopMenuServiceImpl.class | Bin 0 -> 5329 bytes .../impl/TopMenuSettingServiceImpl.class | Bin 0 -> 851 bytes .../service/impl/UserDeptServiceImpl.class | Bin 0 -> 809 bytes .../service/impl/UserOauthServiceImpl.class | Bin 0 -> 816 bytes .../service/impl/UserSearchServiceImpl.class | Bin 0 -> 5611 bytes .../system/service/impl/UserServiceImpl.class | Bin 0 -> 30594 bytes .../system/wrapper/ApiScopeWrapper.class | Bin 0 -> 1915 bytes .../system/wrapper/DataScopeWrapper.class | Bin 0 -> 1929 bytes .../modules/system/wrapper/DeptWrapper.class | Bin 0 -> 4693 bytes .../system/wrapper/DictBizWrapper.class | Bin 0 -> 3603 bytes .../modules/system/wrapper/DictWrapper.class | Bin 0 -> 3549 bytes .../modules/system/wrapper/MenuWrapper.class | Bin 0 -> 4557 bytes .../modules/system/wrapper/PostWrapper.class | Bin 0 -> 1854 bytes .../system/wrapper/RegionWrapper.class | Bin 0 -> 2258 bytes .../modules/system/wrapper/RoleWrapper.class | Bin 0 -> 3502 bytes .../modules/system/wrapper/UserWrapper.class | Bin 0 -> 2882 bytes .../classes/processes/LeaveProcess.bpmn20.xml | 123 + target/classes/static/favicon.ico | Bin 0 -> 16958 bytes target/test-classes/application-dev.yml | 60 + target/test-classes/application-prod.yml | 42 + target/test-classes/application-test.yml | 42 + target/test-classes/application.yml | 288 + 2465 files changed, 185768 insertions(+) create mode 100644 .editorconfig create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 doc/script/docker/elk/README.md create mode 100644 doc/script/docker/elk/deploy.sh create mode 100644 doc/script/docker/elk/docker-compose.yml create mode 100644 doc/script/docker/elk/es-master.yml create mode 100644 doc/script/docker/elk/es-slave1.yml create mode 100644 doc/script/docker/elk/es-slave2.yml create mode 100644 doc/script/docker/elk/filebeat.yml create mode 100644 doc/script/docker/elk/kibana.yml create mode 100644 doc/script/docker/elk/logstash-filebeat.conf create mode 100644 doc/script/docker/elk/logstash.yml create mode 100644 doc/script/docker/elk/undeploy.sh create mode 100644 doc/script/fatjar/service.cmd create mode 100644 doc/script/fatjar/service.sh create mode 100644 doc/sql/bladex/bladex-database-info.md create mode 100644 doc/sql/bladex/bladex.dameng.all.create.sql create mode 100644 doc/sql/bladex/bladex.mysql.all.create.sql create mode 100644 doc/sql/bladex/bladex.oracle.all.create.sql create mode 100644 doc/sql/bladex/bladex.postgres.all.create.sql create mode 100644 doc/sql/bladex/bladex.sqlserver.all.create.sql create mode 100644 doc/sql/bladex/bladex.yashan.all.create.sql create mode 100644 doc/sql/flowable/flowable.dameng.all.create.sql create mode 100644 doc/sql/flowable/flowable.mysql.all.create.sql create mode 100644 doc/sql/flowable/flowable.oracle.all.create.sql create mode 100644 doc/sql/flowable/flowable.postgres.all.create.sql create mode 100644 doc/sql/flowable/flowable.sqlserver.all.create.sql create mode 100644 doc/sql/flowable/flowable.yashan.all.create.sql create mode 100644 doc/sql/upgrade/bladex.dameng.upgrade.3.4.0.to.4.0.0.sql create mode 100644 doc/sql/upgrade/bladex.mysql.upgrade.3.4.0.to.4.0.0.sql create mode 100644 doc/sql/upgrade/bladex.oracle.upgrade.3.4.0.to.4.0.0.sql create mode 100644 doc/sql/upgrade/bladex.postgresql.upgrade.3.4.0.to.4.0.0.sql create mode 100644 doc/sql/upgrade/bladex.sqlserver.upgrade.3.4.0.to.4.0.0.sql create mode 100644 doc/sql/upgrade/bladex.yashandb.upgrade.3.4.0.to.4.0.0.sql create mode 100644 pom.xml create mode 100644 src/main/java/org/springblade/Application.java create mode 100644 src/main/java/org/springblade/common/cache/CacheNames.java create mode 100644 src/main/java/org/springblade/common/cache/DictBizCache.java create mode 100644 src/main/java/org/springblade/common/cache/DictCache.java create mode 100644 src/main/java/org/springblade/common/cache/ParamCache.java create mode 100644 src/main/java/org/springblade/common/cache/RegionCache.java create mode 100644 src/main/java/org/springblade/common/cache/SysCache.java create mode 100644 src/main/java/org/springblade/common/cache/UserCache.java create mode 100644 src/main/java/org/springblade/common/config/BladeConfiguration.java create mode 100644 src/main/java/org/springblade/common/config/BladeHandlerConfiguration.java create mode 100644 src/main/java/org/springblade/common/config/BladeLogConfiguration.java create mode 100644 src/main/java/org/springblade/common/config/BladePreviewConfiguration.java create mode 100644 src/main/java/org/springblade/common/config/BladeReportConfiguration.java create mode 100644 src/main/java/org/springblade/common/config/SwaggerConfiguration.java create mode 100644 src/main/java/org/springblade/common/constant/CommonConstant.java create mode 100644 src/main/java/org/springblade/common/constant/DictConstant.java create mode 100644 src/main/java/org/springblade/common/constant/LauncherConstant.java create mode 100644 src/main/java/org/springblade/common/constant/MonitorConstants.java create mode 100644 src/main/java/org/springblade/common/constant/NhConstants.java create mode 100644 src/main/java/org/springblade/common/constant/TenantConstant.java create mode 100644 src/main/java/org/springblade/common/enums/DictBizEnum.java create mode 100644 src/main/java/org/springblade/common/enums/DictEnum.java create mode 100644 src/main/java/org/springblade/common/enums/SysType.java create mode 100644 src/main/java/org/springblade/common/event/ApiLogListener.java create mode 100644 src/main/java/org/springblade/common/event/ErrorLogListener.java create mode 100644 src/main/java/org/springblade/common/event/UsualLogListener.java create mode 100644 src/main/java/org/springblade/common/filter/LoggingInterceptor.java create mode 100644 src/main/java/org/springblade/common/filter/PreviewFilter.java create mode 100644 src/main/java/org/springblade/common/handler/BladeScopeModelHandler.java create mode 100644 src/main/java/org/springblade/common/launch/LauncherServiceImpl.java create mode 100644 src/main/java/org/springblade/common/utils/AsyncTaskRunner.java create mode 100644 src/main/java/org/springblade/common/utils/CommonUtil.java create mode 100644 src/main/java/org/springblade/common/utils/ListUtils.java create mode 100644 src/main/java/org/springblade/common/utils/MonitorTask.java create mode 100644 src/main/java/org/springblade/common/utils/MultiAsyncTaskRunner.java create mode 100644 src/main/java/org/springblade/common/utils/NopTaskRunner.java create mode 100644 src/main/java/org/springblade/common/utils/TaskControl.java create mode 100644 src/main/java/org/springblade/common/utils/UnitUtil.java create mode 100644 src/main/java/org/springblade/flow/business/controller/WorkController.java create mode 100644 src/main/java/org/springblade/flow/business/service/FlowBusinessService.java create mode 100644 src/main/java/org/springblade/flow/business/service/IFlowService.java create mode 100644 src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java create mode 100644 src/main/java/org/springblade/flow/business/service/impl/FlowServiceImpl.java create mode 100644 src/main/java/org/springblade/flow/core/constant/ProcessConstant.java create mode 100644 src/main/java/org/springblade/flow/core/entity/BladeFlow.java create mode 100644 src/main/java/org/springblade/flow/core/entity/FlowEntity.java create mode 100644 src/main/java/org/springblade/flow/core/enums/FlowModeEnum.java create mode 100644 src/main/java/org/springblade/flow/core/utils/FlowUtil.java create mode 100644 src/main/java/org/springblade/flow/core/utils/TaskUtil.java create mode 100644 src/main/java/org/springblade/flow/demo/leave/controller/LeaveController.java create mode 100644 src/main/java/org/springblade/flow/demo/leave/entity/ProcessLeave.java create mode 100644 src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.java create mode 100644 src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.xml create mode 100644 src/main/java/org/springblade/flow/demo/leave/service/ILeaveService.java create mode 100644 src/main/java/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.java create mode 100644 src/main/java/org/springblade/flow/engine/config/FlowableConfiguration.java create mode 100644 src/main/java/org/springblade/flow/engine/constant/BondApplyConstant.java create mode 100644 src/main/java/org/springblade/flow/engine/constant/FlowEngineConstant.java create mode 100644 src/main/java/org/springblade/flow/engine/controller/FlowFollowController.java create mode 100644 src/main/java/org/springblade/flow/engine/controller/FlowManagerController.java create mode 100644 src/main/java/org/springblade/flow/engine/controller/FlowModelController.java create mode 100644 src/main/java/org/springblade/flow/engine/controller/FlowProcessController.java create mode 100644 src/main/java/org/springblade/flow/engine/entity/FlowExecution.java create mode 100644 src/main/java/org/springblade/flow/engine/entity/FlowModel.java create mode 100644 src/main/java/org/springblade/flow/engine/entity/FlowProcess.java create mode 100644 src/main/java/org/springblade/flow/engine/mapper/FlowMapper.java create mode 100644 src/main/java/org/springblade/flow/engine/mapper/FlowMapper.xml create mode 100644 src/main/java/org/springblade/flow/engine/service/FlowEngineService.java create mode 100644 src/main/java/org/springblade/flow/engine/service/impl/ApplicationDetailService.java create mode 100644 src/main/java/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.java create mode 100644 src/main/java/org/springblade/flow/engine/utils/FlowCache.java create mode 100644 src/main/java/org/springblade/job/controller/JobInfoController.java create mode 100644 src/main/java/org/springblade/job/controller/JobServerController.java create mode 100644 src/main/java/org/springblade/job/mapper/JobInfoMapper.java create mode 100644 src/main/java/org/springblade/job/mapper/JobInfoMapper.xml create mode 100644 src/main/java/org/springblade/job/mapper/JobServerMapper.java create mode 100644 src/main/java/org/springblade/job/mapper/JobServerMapper.xml create mode 100644 src/main/java/org/springblade/job/pojo/dto/JobDTO.java create mode 100644 src/main/java/org/springblade/job/pojo/entity/JobInfo.java create mode 100644 src/main/java/org/springblade/job/pojo/entity/JobServer.java create mode 100644 src/main/java/org/springblade/job/pojo/vo/JobInfoVO.java create mode 100644 src/main/java/org/springblade/job/pojo/vo/JobServerVO.java create mode 100644 src/main/java/org/springblade/job/processor/ProcessorDemo.java create mode 100644 src/main/java/org/springblade/job/service/IJobInfoService.java create mode 100644 src/main/java/org/springblade/job/service/IJobServerService.java create mode 100644 src/main/java/org/springblade/job/service/impl/JobInfoServiceImpl.java create mode 100644 src/main/java/org/springblade/job/service/impl/JobServerServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/ApplyVo.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/apply/operationSiteApply/wrapper/OperationSiteApplyWrapper.java create mode 100644 src/main/java/org/springblade/modules/auth/config/BladeAuthConfiguration.java create mode 100644 src/main/java/org/springblade/modules/auth/constant/BladeAuthConstant.java create mode 100644 src/main/java/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.java create mode 100644 src/main/java/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.java create mode 100644 src/main/java/org/springblade/modules/auth/granter/CaptchaTokenGranter.java create mode 100644 src/main/java/org/springblade/modules/auth/granter/RegisterTokenGranter.java create mode 100644 src/main/java/org/springblade/modules/auth/granter/SocialTokenGranter.java create mode 100644 src/main/java/org/springblade/modules/auth/handler/BladeAuthorizationHandler.java create mode 100644 src/main/java/org/springblade/modules/auth/handler/BladePasswordHandler.java create mode 100644 src/main/java/org/springblade/modules/auth/handler/BladeTokenHandler.java create mode 100644 src/main/java/org/springblade/modules/auth/provider/UserType.java create mode 100644 src/main/java/org/springblade/modules/auth/service/BladeClientDetailService.java create mode 100644 src/main/java/org/springblade/modules/auth/service/BladeUserDetailService.java create mode 100644 src/main/java/org/springblade/modules/auth/utils/TokenUtil.java create mode 100644 src/main/java/org/springblade/modules/desk/controller/DashBoardController.java create mode 100644 src/main/java/org/springblade/modules/desk/controller/NoticeController.java create mode 100644 src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.java create mode 100644 src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.xml create mode 100644 src/main/java/org/springblade/modules/desk/pojo/entity/Notice.java create mode 100644 src/main/java/org/springblade/modules/desk/pojo/vo/NoticeVO.java create mode 100644 src/main/java/org/springblade/modules/desk/service/INoticeService.java create mode 100644 src/main/java/org/springblade/modules/desk/service/impl/NoticeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/desk/wrapper/NoticeWrapper.java create mode 100644 src/main/java/org/springblade/modules/develop/controller/CodeController.java create mode 100644 src/main/java/org/springblade/modules/develop/controller/DatasourceController.java create mode 100644 src/main/java/org/springblade/modules/develop/controller/ModelController.java create mode 100644 src/main/java/org/springblade/modules/develop/controller/ModelPrototypeController.java create mode 100644 src/main/java/org/springblade/modules/develop/mapper/CodeMapper.java create mode 100644 src/main/java/org/springblade/modules/develop/mapper/CodeMapper.xml create mode 100644 src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.java create mode 100644 src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.xml create mode 100644 src/main/java/org/springblade/modules/develop/mapper/ModelMapper.java create mode 100644 src/main/java/org/springblade/modules/develop/mapper/ModelMapper.xml create mode 100644 src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.java create mode 100644 src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml create mode 100644 src/main/java/org/springblade/modules/develop/pojo/dto/ModelDTO.java create mode 100644 src/main/java/org/springblade/modules/develop/pojo/entity/Code.java create mode 100644 src/main/java/org/springblade/modules/develop/pojo/entity/Datasource.java create mode 100644 src/main/java/org/springblade/modules/develop/pojo/entity/Model.java create mode 100644 src/main/java/org/springblade/modules/develop/pojo/entity/ModelPrototype.java create mode 100644 src/main/java/org/springblade/modules/develop/service/ICodeService.java create mode 100644 src/main/java/org/springblade/modules/develop/service/IDatasourceService.java create mode 100644 src/main/java/org/springblade/modules/develop/service/IModelPrototypeService.java create mode 100644 src/main/java/org/springblade/modules/develop/service/IModelService.java create mode 100644 src/main/java/org/springblade/modules/develop/service/impl/CodeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/develop/service/impl/ModelServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/fitting/constant/FittingConstant.java create mode 100644 src/main/java/org/springblade/modules/fitting/controller/OperationOrderMaterialController.java create mode 100644 src/main/java/org/springblade/modules/fitting/controller/PlatformFittingApplyController.java create mode 100644 src/main/java/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.java create mode 100644 src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.java create mode 100644 src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyMsgExcel.java create mode 100644 src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.java create mode 100644 src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml create mode 100644 src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.java create mode 100644 src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml create mode 100644 src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.java create mode 100644 src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.xml create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/dto/ApplyDto.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyMsgDTO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/entity/OperationOrderMaterialEntity.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyMsgEntity.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/AddBhVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/AddOrderFittingUseVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/FittingApplyDetailVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/OperaAddFittingBatchVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/OperationOrderMaterialVO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/OrderUseFittingDetailVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.java create mode 100644 src/main/java/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.java create mode 100644 src/main/java/org/springblade/modules/fitting/service/IOperationOrderMaterialService.java create mode 100644 src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.java create mode 100644 src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyService.java create mode 100644 src/main/java/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyMsgServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.java create mode 100644 src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.java create mode 100644 src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/controller/ExamineInfoController.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/pojo/vo/ExamineInfoVO.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/flowable/examineInfo/wrapper/ExamineInfoWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/controller/ProcessDefController.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.xml create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefDTO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefLatestDTO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefAuditStepEntity.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefEntity.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/AddProcessVo.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefAuditStepVO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefLatestVO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefReq.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefService.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/IProcessFormService.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefSubmitStepServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/utils/FormUtils.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/utils/GuardUtils.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefAuditStepWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefLatestWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefSubmitStepWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessFormWrapper.java create mode 100644 src/main/java/org/springblade/modules/flowable/tasks/MyListener.java create mode 100644 src/main/java/org/springblade/modules/flowable/tasks/OneTaskCompleteListener.java create mode 100644 src/main/java/org/springblade/modules/flowable/tasks/RejectStartListener.java create mode 100644 src/main/java/org/springblade/modules/material/controller/MaterialController.java create mode 100644 src/main/java/org/springblade/modules/material/controller/MaterialEngineerController.java create mode 100644 src/main/java/org/springblade/modules/material/controller/MaterialEngineerOutboundController.java create mode 100644 src/main/java/org/springblade/modules/material/controller/MaterialOperationController.java create mode 100644 src/main/java/org/springblade/modules/material/controller/MaterialOperationOutboundController.java create mode 100644 src/main/java/org/springblade/modules/material/controller/MaterialOutboundController.java create mode 100644 src/main/java/org/springblade/modules/material/excel/MaterialEngineerExcel.java create mode 100644 src/main/java/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.java create mode 100644 src/main/java/org/springblade/modules/material/excel/MaterialImporter.java create mode 100644 src/main/java/org/springblade/modules/material/excel/MaterialOperationExcel.java create mode 100644 src/main/java/org/springblade/modules/material/excel/MaterialOperationOutboundExcel.java create mode 100644 src/main/java/org/springblade/modules/material/excel/MaterialOutboundExcel.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.xml create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialMapper.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialMapper.xml create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.xml create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.xml create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.java create mode 100644 src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml create mode 100644 src/main/java/org/springblade/modules/material/pojo/dto/MaterialDTO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerDTO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerOutboundDTO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationDTO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerEntity.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/entity/MaterialEntity.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationVO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/MaterialOutboundVO.java create mode 100644 src/main/java/org/springblade/modules/material/pojo/vo/MaterialVO.java create mode 100644 src/main/java/org/springblade/modules/material/service/IMaterialEngineerOutboundService.java create mode 100644 src/main/java/org/springblade/modules/material/service/IMaterialEngineerService.java create mode 100644 src/main/java/org/springblade/modules/material/service/IMaterialOperationOutboundService.java create mode 100644 src/main/java/org/springblade/modules/material/service/IMaterialOperationService.java create mode 100644 src/main/java/org/springblade/modules/material/service/IMaterialOutboundService.java create mode 100644 src/main/java/org/springblade/modules/material/service/IMaterialService.java create mode 100644 src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/material/service/impl/MaterialOperationOutboundServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/material/service/impl/MaterialServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.java create mode 100644 src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerWrapper.java create mode 100644 src/main/java/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.java create mode 100644 src/main/java/org/springblade/modules/material/wrapper/MaterialOperationWrapper.java create mode 100644 src/main/java/org/springblade/modules/material/wrapper/MaterialOutboundWrapper.java create mode 100644 src/main/java/org/springblade/modules/material/wrapper/MaterialWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/api/NatOpenController.java create mode 100644 src/main/java/org/springblade/modules/nh/api/NatOpenSyncController.java create mode 100644 src/main/java/org/springblade/modules/nh/api/OpenPowerStationController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/AlarmCodeController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/AlarmInfoController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/DeviceController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/HomePageController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/InefficientSettingController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/InverterDataController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/InverterUapController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/MonitorEntryStatController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/MonitorEntryYearStatController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/MonitorInverterStatController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/PowerStationController.java create mode 100644 src/main/java/org/springblade/modules/nh/controller/PowerStationInefficientController.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/AlarmCodeExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/AlarmInfoExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/DeviceExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/InefficientSettingExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/InefficientSettingImporter.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/InverterDataExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/InverterUapExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/MaterialExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/MonitorEntryStatExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/MonitorInverterStatExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/PowerStationExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/PowerStationImport.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/PowerStationImporter.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/PowerStationInefficientExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/excel/StationStaticsExcel.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiApi.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiPage.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiRet.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiTestController.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/constant/Constants.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/constant/ContentType.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpMethod.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/constant/SystemHeader.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/UnitData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/enums/Method.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisStationDMYEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmRecoverEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterLatestDetailEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/Client.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtil.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtils.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/MessageDigestUtil.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/aiswei/util/SignUtil.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/EachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/EzTemplateBase.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/PageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/PageInfo.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/TimeWindow.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/TokenBucket.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/common/WindowEntry.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApi.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiTestController.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/IRet.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/Page.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/CollectorListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApi.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApiTestController.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweRet.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/D.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasSiteData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDayEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationMonthEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/SajApi.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/req/BaseReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/req/QueryPlantEnergyReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/req/SajPageReq.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/BasePlant.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/DeviceRealtimeData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDevice.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPageRet.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantData.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/resp/SajRet.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDataEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.java create mode 100644 src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.java create mode 100644 src/main/java/org/springblade/modules/nh/job/InefficientScheduler.java create mode 100644 src/main/java/org/springblade/modules/nh/job/UpdateDataScheduler.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/DeviceMsgMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.java create mode 100644 src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.xml create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/AlarmInfoDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/DeviceDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/InverterDataDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/InverterUapDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryDailyStatDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryMonthStatDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryYearStatDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterDailyStatDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/StationDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/WeatherHistory.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/AlarmCountDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyEnergyDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/JlglHourlyDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/LabelValueDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/MonthEnergyDTO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/dto/sync/StationIdMap.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/AlarmCodeEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/AlarmInfoEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/DeviceEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/DeviceMsgEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/InverterDataEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/InverterUapEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryDailyStatEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryMonthStatEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryStatEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryYearStatEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterStatEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationInefficientEntity.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/DeviceVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/HomeOverviewVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/InverterDataVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/InverterTreeVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/InverterUapVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryDailyStatVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryMonthStatVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryYearStatVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterStatVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationInefficientVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/StaticsStatusVO.java create mode 100644 src/main/java/org/springblade/modules/nh/pojo/vo/StationStaticsVO.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IAlarmCodeService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IAlarmInfoService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IDeviceService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IInefficientSettingService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IInverterDataService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IInverterUapService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IMonitorEntryStatService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IMonitorEntryYearStatService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IMonitorInverterStatService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/INHCommonService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IPowerStationInefficientService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/IPowerStationService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/AlarmCodeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/DeviceMsgService.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/DeviceServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryDailyStatServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryStatServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/PowerStationInefficientServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/AlarmInfoWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/DeviceWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/InverterDataWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/InverterUapWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryDailyStatWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryMonthStatWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterDailyStatWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterStatWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/PowerStationInefficientWrapper.java create mode 100644 src/main/java/org/springblade/modules/nh/wrapper/PowerStationWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/constant/SourceConstants.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/AnnouncementReadinfoController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationRoleController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationServiceMeasuresController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationServiceTypeController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationSiteController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationSiteEmployeeController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationSiteRoleController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/OperationTechnicalDataController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/PlatformAnnouncementController.java create mode 100644 src/main/java/org/springblade/modules/operation/controller/PlatformEmployeeController.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/EntryPaymentTimeExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/EntrySiteExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/OperationServiceTypeExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/OperationSiteEmployeeExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/OperationSiteExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/OperationSiteRoleExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/excel/PlatformEmployeeExcel.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.java create mode 100644 src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.xml create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteRoleDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/OperationTechnicalDataDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceMeasuresEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceTypeEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/OperationTechnicalDataEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/EditSiteEmpAuthVo.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/EmpAuthVo.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationEmpVo.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceMeasuresVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteEmployeeVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteRoleVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.java create mode 100644 src/main/java/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IAnnouncementReadinfoService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IOperationServiceMeasuresService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IOperationServiceTypeService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IOperationSiteEmployeeService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IOperationSiteRoleService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IOperationSiteService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IOperationTechnicalDataService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IPlatformAnnouncementService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/IPlatformEmployeeService.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/OperationServiceTypeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/OperationTechnicalDataServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/OperationSiteEmployeeWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/OperationSiteWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.java create mode 100644 src/main/java/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/constant/DeliverOrderConstants.java create mode 100644 src/main/java/org/springblade/modules/order/constant/MaterialBatchConstants.java create mode 100644 src/main/java/org/springblade/modules/order/constant/OrderConstants.java create mode 100644 src/main/java/org/springblade/modules/order/constant/PendingOrderConstants.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderCallbackController.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderController.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderDispatchController.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderFeedbackController.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderLetterController.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderSettleController.java create mode 100644 src/main/java/org/springblade/modules/order/controller/OperationOrderSiteDispatchController.java create mode 100644 src/main/java/org/springblade/modules/order/excel/OperationOrderCallbackExcel.java create mode 100644 src/main/java/org/springblade/modules/order/excel/OperationOrderExcel.java create mode 100644 src/main/java/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.java create mode 100644 src/main/java/org/springblade/modules/order/excel/OperationOrderSettleExcel.java create mode 100644 src/main/java/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.java create mode 100644 src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml create mode 100644 src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderDTO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSiteDispatchDTO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/dto/OrderLetterDTO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderDispatchEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/form/ComplaintForm.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/form/ComplaintReply.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/form/EvaluationForm.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/form/FeedbackForm.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/ExamineOrderVo.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderDispatchVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderFeedbackVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderOperationInfoVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderVO.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OrderHomeVo.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OrderListConditionVo.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OrderStaticVo.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/OrderVo.java create mode 100644 src/main/java/org/springblade/modules/order/pojo/vo/SelectVo.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderCallbackService.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderDispatchService.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderFeedbackService.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderOperationInfoService.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderService.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderSettleService.java create mode 100644 src/main/java/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderDispatchServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderFeedbackServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderLetterService.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderOperationInfoServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderSettleServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/order/utils/ExcelReader.java create mode 100644 src/main/java/org/springblade/modules/order/utils/PlantformUtils.java create mode 100644 src/main/java/org/springblade/modules/order/utils/Target.java create mode 100644 src/main/java/org/springblade/modules/order/utils/WebPageFunUtils.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderCallbackWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.java create mode 100644 src/main/java/org/springblade/modules/order/wrapper/OperationOrderWrapper.java create mode 100644 src/main/java/org/springblade/modules/partner/controller/PartnerController.java create mode 100644 src/main/java/org/springblade/modules/partner/excel/PartnerExcel.java create mode 100644 src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.java create mode 100644 src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.xml create mode 100644 src/main/java/org/springblade/modules/partner/pojo/dto/PartnerDTO.java create mode 100644 src/main/java/org/springblade/modules/partner/pojo/entity/PartnerEntity.java create mode 100644 src/main/java/org/springblade/modules/partner/pojo/vo/PartnerVO.java create mode 100644 src/main/java/org/springblade/modules/partner/service/IPartnerService.java create mode 100644 src/main/java/org/springblade/modules/partner/service/impl/PartnerServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/partner/wrapper/PartnerWrapper.java create mode 100644 src/main/java/org/springblade/modules/resource/builder/OssBuilder.java create mode 100644 src/main/java/org/springblade/modules/resource/builder/SmsBuilder.java create mode 100644 src/main/java/org/springblade/modules/resource/config/BladeOssConfiguration.java create mode 100644 src/main/java/org/springblade/modules/resource/config/BladeSmsConfiguration.java create mode 100644 src/main/java/org/springblade/modules/resource/controller/AttachController.java create mode 100644 src/main/java/org/springblade/modules/resource/controller/OssController.java create mode 100644 src/main/java/org/springblade/modules/resource/controller/SmsController.java create mode 100644 src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java create mode 100644 src/main/java/org/springblade/modules/resource/endpoint/SmsEndpoint.java create mode 100644 src/main/java/org/springblade/modules/resource/mapper/AttachMapper.java create mode 100644 src/main/java/org/springblade/modules/resource/mapper/AttachMapper.xml create mode 100644 src/main/java/org/springblade/modules/resource/mapper/OssMapper.java create mode 100644 src/main/java/org/springblade/modules/resource/mapper/OssMapper.xml create mode 100644 src/main/java/org/springblade/modules/resource/mapper/SmsMapper.java create mode 100644 src/main/java/org/springblade/modules/resource/mapper/SmsMapper.xml create mode 100644 src/main/java/org/springblade/modules/resource/pojo/entity/Attach.java create mode 100644 src/main/java/org/springblade/modules/resource/pojo/entity/Oss.java create mode 100644 src/main/java/org/springblade/modules/resource/pojo/entity/Sms.java create mode 100644 src/main/java/org/springblade/modules/resource/pojo/enums/SmsCodeEnum.java create mode 100644 src/main/java/org/springblade/modules/resource/pojo/vo/AttachVO.java create mode 100644 src/main/java/org/springblade/modules/resource/pojo/vo/OssVO.java create mode 100644 src/main/java/org/springblade/modules/resource/pojo/vo/SmsVO.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/context/OssContext.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/context/SmsContext.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/AliOssRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/AmazonS3Rule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/FinallyOssRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/HuaweiObsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/MinioRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/OssBuildRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/OssCacheRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/OssDataRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/OssReadRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/OssTemplateRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/PreOssRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/QiniuOssRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/oss/TencentCosRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/AliSmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/CacheSmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/FinallySmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/PreSmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/QiniuSmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/SmsBuildRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/TencentSmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/rule/sms/YunpianSmsRule.java create mode 100644 src/main/java/org/springblade/modules/resource/service/IAttachService.java create mode 100644 src/main/java/org/springblade/modules/resource/service/IOssService.java create mode 100644 src/main/java/org/springblade/modules/resource/service/ISmsService.java create mode 100644 src/main/java/org/springblade/modules/resource/service/impl/AttachServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/resource/service/impl/OssServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/resource/service/impl/SmsServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/resource/template/BladeS3Template.java create mode 100644 src/main/java/org/springblade/modules/resource/utils/SmsUtil.java create mode 100644 src/main/java/org/springblade/modules/resource/wrapper/OssWrapper.java create mode 100644 src/main/java/org/springblade/modules/resource/wrapper/SmsWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/controller/ApiScopeController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/AuthClientController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/DataScopeController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/DeptController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/DictBizController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/DictController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/LogApiController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/LogErrorController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/LogUsualController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/MenuController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/ParamController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/PostController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/RegionController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/RoleController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/SearchController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/TenantController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/TenantPackageController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/TopMenuController.java create mode 100644 src/main/java/org/springblade/modules/system/controller/UserController.java create mode 100644 src/main/java/org/springblade/modules/system/excel/RegionExcel.java create mode 100644 src/main/java/org/springblade/modules/system/excel/RegionImporter.java create mode 100644 src/main/java/org/springblade/modules/system/excel/UserExcel.java create mode 100644 src/main/java/org/springblade/modules/system/excel/UserImporter.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/DeptMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/DictBizMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/DictBizMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/DictMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/DictMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/MenuMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/ParamMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/ParamMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/PostMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/PostMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/RegionMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/RoleMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/TenantMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/TenantMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserAppMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserAppMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserWebMapper.java create mode 100644 src/main/java/org/springblade/modules/system/mapper/UserWebMapper.xml create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/DeptDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/DictDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/MenuDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/ParamDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/PostDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/RoleDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/dto/RoleMenuDTO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/ApiScope.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/AuthClient.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/DataScope.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Dept.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Dict.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/DictBiz.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Menu.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Param.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Post.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Region.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Role.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/RoleMenu.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/RoleScope.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/Tenant.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/TenantPackage.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/TopMenu.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/TopMenuSetting.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/User.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/UserApp.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/UserDept.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/UserInfo.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/UserOauth.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/UserOther.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/entity/UserWeb.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/ApiScopeVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/CheckedTreeVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/DataScopeVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/DeptVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/DictBizVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/DictVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/GrantTreeVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/MenuVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/ParamVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/PostVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/RegionVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/RoleMenuVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/RoleVO.java create mode 100644 src/main/java/org/springblade/modules/system/pojo/vo/UserVO.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantContext.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantDeptRule.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantDictBizRule.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantPostRule.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantRoleMenuRule.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantRoleRule.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantRule.java create mode 100644 src/main/java/org/springblade/modules/system/rule/TenantUserRule.java create mode 100644 src/main/java/org/springblade/modules/system/service/IApiScopeService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IAuthClientService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IDataScopeService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IDeptService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IDictBizService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IDictService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ILogApiService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ILogErrorService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ILogService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ILogUsualService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IMenuService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IParamService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IPostService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IRegionService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IRoleMenuService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IRoleScopeService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IRoleService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ITenantPackageService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ITenantService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ITopMenuService.java create mode 100644 src/main/java/org/springblade/modules/system/service/ITopMenuSettingService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IUserDeptService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IUserOauthService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IUserSearchService.java create mode 100644 src/main/java/org/springblade/modules/system/service/IUserService.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/ApiScopeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/AuthClientServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/DataScopeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/DictServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/LogErrorServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/LogServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/LogUsualServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/ParamServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/PostServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/RoleMenuServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/RoleScopeServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/TenantPackageServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/TenantServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/TopMenuServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/TopMenuSettingServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/UserDeptServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/UserOauthServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/UserSearchServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/ApiScopeWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/DataScopeWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/DeptWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/DictBizWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/DictWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/MenuWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/PostWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/RegionWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/RoleWrapper.java create mode 100644 src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java create mode 100644 src/main/java/sql/alarmcode.menu.sql create mode 100644 src/main/java/sql/alarminfo.menu.sql create mode 100644 src/main/java/sql/device.menu.sql create mode 100644 src/main/java/sql/examineinfo.menu.sql create mode 100644 src/main/java/sql/inefficientsetting.menu.sql create mode 100644 src/main/java/sql/inspectentry.menu.sql create mode 100644 src/main/java/sql/inspectorder.menu.sql create mode 100644 src/main/java/sql/inverterdata.menu.sql create mode 100644 src/main/java/sql/inverteruap.menu.sql create mode 100644 src/main/java/sql/material.menu.sql create mode 100644 src/main/java/sql/materialengineer.menu.sql create mode 100644 src/main/java/sql/materialengineeroutbound.menu.sql create mode 100644 src/main/java/sql/materialoperation.menu.sql create mode 100644 src/main/java/sql/materialoperationoutbound.menu.sql create mode 100644 src/main/java/sql/materialoutbound.menu.sql create mode 100644 src/main/java/sql/monitorentrydailystat.menu.sql create mode 100644 src/main/java/sql/monitorentrymonthstat.menu.sql create mode 100644 src/main/java/sql/monitorentrystat.menu.sql create mode 100644 src/main/java/sql/monitorentryyearstat.menu.sql create mode 100644 src/main/java/sql/monitorinverterdailystat.menu.sql create mode 100644 src/main/java/sql/monitorinverterstat.menu.sql create mode 100644 src/main/java/sql/operationsiteapply.menu.sql create mode 100644 src/main/java/sql/platformfittingapply.menu.sql create mode 100644 src/main/java/sql/platformfittingapplymsg.menu.sql create mode 100644 src/main/java/sql/powerstation.menu.sql create mode 100644 src/main/java/sql/powerstationinefficient.menu.sql create mode 100644 src/main/java/sql/processdef.menu.sql create mode 100644 src/main/java/sql/processdefauditstep.menu.sql create mode 100644 src/main/java/sql/processdeflatest.menu.sql create mode 100644 src/main/java/sql/processdefsubmitstep.menu.sql create mode 100644 src/main/java/sql/processform.menu.sql create mode 100644 src/main/resources/application-dev.yml create mode 100644 src/main/resources/application-prod.yml create mode 100644 src/main/resources/application-test.yml create mode 100644 src/main/resources/application.yml create mode 100644 src/main/resources/banner.txt create mode 100644 src/main/resources/ehcache.xml create mode 100644 src/main/resources/liteflow/oss.el.png create mode 100644 src/main/resources/liteflow/oss.el.xml create mode 100644 src/main/resources/liteflow/sms.el.png create mode 100644 src/main/resources/liteflow/sms.el.xml create mode 100644 src/main/resources/liteflow/tenant.el.png create mode 100644 src/main/resources/liteflow/tenant.el.xml create mode 100644 src/main/resources/log/logback-dev.xml create mode 100644 src/main/resources/log/logback-prod.xml create mode 100644 src/main/resources/log/logback-test.xml create mode 100644 src/main/resources/processes/LeaveProcess.bpmn20.xml create mode 100644 src/main/resources/static/favicon.ico create mode 100644 src/test/java/org/springblade/test/BladeTest.java create mode 100644 src/test/java/org/springblade/test/CodeGenerator.java create mode 100644 src/test/java/org/springblade/test/CryptoKeyGenerator.java create mode 100644 src/test/java/org/springblade/test/SignKeyGenerator.java create mode 100644 src/test/java/org/springblade/test/http/OsChina.java create mode 100644 src/test/java/org/springblade/test/http/OsChinaTest.java create mode 100644 src/test/java/org/springblade/test/http/VBlog.java create mode 100644 src/test/java/org/springblade/test/http/VNews.java create mode 100644 src/test/java/org/springblade/test/launch/LauncherTestServiceImpl.java create mode 100644 src/test/resources/application-dev.yml create mode 100644 src/test/resources/application-prod.yml create mode 100644 src/test/resources/application-test.yml create mode 100644 src/test/resources/application.yml create mode 100644 target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService create mode 100644 target/classes/META-INF/spring-devtools.properties create mode 100644 target/classes/META-INF/spring.factories create mode 100644 target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports create mode 100644 target/classes/application-dev.yml create mode 100644 target/classes/application-prod.yml create mode 100644 target/classes/application-test.yml create mode 100644 target/classes/application.yml create mode 100644 target/classes/banner.txt create mode 100644 target/classes/ehcache.xml create mode 100644 target/classes/liteflow/oss.el.png create mode 100644 target/classes/liteflow/oss.el.xml create mode 100644 target/classes/liteflow/sms.el.png create mode 100644 target/classes/liteflow/sms.el.xml create mode 100644 target/classes/liteflow/tenant.el.png create mode 100644 target/classes/liteflow/tenant.el.xml create mode 100644 target/classes/log/logback-dev.xml create mode 100644 target/classes/log/logback-prod.xml create mode 100644 target/classes/log/logback-test.xml create mode 100644 target/classes/org/springblade/Application.class create mode 100644 target/classes/org/springblade/common/cache/CacheNames.class create mode 100644 target/classes/org/springblade/common/cache/DictBizCache.class create mode 100644 target/classes/org/springblade/common/cache/DictCache.class create mode 100644 target/classes/org/springblade/common/cache/ParamCache.class create mode 100644 target/classes/org/springblade/common/cache/RegionCache.class create mode 100644 target/classes/org/springblade/common/cache/SysCache.class create mode 100644 target/classes/org/springblade/common/cache/UserCache.class create mode 100644 target/classes/org/springblade/common/config/BladeConfiguration.class create mode 100644 target/classes/org/springblade/common/config/BladeHandlerConfiguration.class create mode 100644 target/classes/org/springblade/common/config/BladeLogConfiguration.class create mode 100644 target/classes/org/springblade/common/config/BladePreviewConfiguration.class create mode 100644 target/classes/org/springblade/common/config/BladeReportConfiguration.class create mode 100644 target/classes/org/springblade/common/config/SwaggerConfiguration.class create mode 100644 target/classes/org/springblade/common/constant/CommonConstant.class create mode 100644 target/classes/org/springblade/common/constant/DictConstant.class create mode 100644 target/classes/org/springblade/common/constant/LauncherConstant.class create mode 100644 target/classes/org/springblade/common/constant/MonitorConstants.class create mode 100644 target/classes/org/springblade/common/constant/NhConstants.class create mode 100644 target/classes/org/springblade/common/constant/TenantConstant.class create mode 100644 target/classes/org/springblade/common/enums/DictBizEnum.class create mode 100644 target/classes/org/springblade/common/enums/DictEnum.class create mode 100644 target/classes/org/springblade/common/enums/SysType.class create mode 100644 target/classes/org/springblade/common/event/ApiLogListener.class create mode 100644 target/classes/org/springblade/common/event/ErrorLogListener.class create mode 100644 target/classes/org/springblade/common/event/UsualLogListener.class create mode 100644 target/classes/org/springblade/common/filter/LoggingInterceptor.class create mode 100644 target/classes/org/springblade/common/filter/PreviewFilter.class create mode 100644 target/classes/org/springblade/common/handler/BladeScopeModelHandler.class create mode 100644 target/classes/org/springblade/common/launch/LauncherServiceImpl.class create mode 100644 target/classes/org/springblade/common/utils/AsyncTaskRunner.class create mode 100644 target/classes/org/springblade/common/utils/CommonUtil.class create mode 100644 target/classes/org/springblade/common/utils/ListUtils.class create mode 100644 target/classes/org/springblade/common/utils/MonitorTask.class create mode 100644 target/classes/org/springblade/common/utils/MultiAsyncTaskRunner$1.class create mode 100644 target/classes/org/springblade/common/utils/MultiAsyncTaskRunner$2.class create mode 100644 target/classes/org/springblade/common/utils/MultiAsyncTaskRunner.class create mode 100644 target/classes/org/springblade/common/utils/NopTaskRunner.class create mode 100644 target/classes/org/springblade/common/utils/TaskControl$1.class create mode 100644 target/classes/org/springblade/common/utils/TaskControl.class create mode 100644 target/classes/org/springblade/common/utils/UnitUtil.class create mode 100644 target/classes/org/springblade/flow/business/controller/WorkController.class create mode 100644 target/classes/org/springblade/flow/business/service/FlowBusinessService.class create mode 100644 target/classes/org/springblade/flow/business/service/IFlowService.class create mode 100644 target/classes/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.class create mode 100644 target/classes/org/springblade/flow/business/service/impl/FlowServiceImpl.class create mode 100644 target/classes/org/springblade/flow/core/constant/ProcessConstant.class create mode 100644 target/classes/org/springblade/flow/core/entity/BladeFlow.class create mode 100644 target/classes/org/springblade/flow/core/entity/FlowEntity.class create mode 100644 target/classes/org/springblade/flow/core/enums/FlowModeEnum.class create mode 100644 target/classes/org/springblade/flow/core/utils/FlowUtil.class create mode 100644 target/classes/org/springblade/flow/core/utils/TaskUtil.class create mode 100644 target/classes/org/springblade/flow/demo/leave/controller/LeaveController.class create mode 100644 target/classes/org/springblade/flow/demo/leave/entity/ProcessLeave.class create mode 100644 target/classes/org/springblade/flow/demo/leave/mapper/LeaveMapper.class create mode 100644 target/classes/org/springblade/flow/demo/leave/mapper/LeaveMapper.xml create mode 100644 target/classes/org/springblade/flow/demo/leave/service/ILeaveService.class create mode 100644 target/classes/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.class create mode 100644 target/classes/org/springblade/flow/engine/config/FlowableConfiguration.class create mode 100644 target/classes/org/springblade/flow/engine/constant/BondApplyConstant.class create mode 100644 target/classes/org/springblade/flow/engine/constant/FlowEngineConstant.class create mode 100644 target/classes/org/springblade/flow/engine/controller/FlowFollowController.class create mode 100644 target/classes/org/springblade/flow/engine/controller/FlowManagerController.class create mode 100644 target/classes/org/springblade/flow/engine/controller/FlowModelController.class create mode 100644 target/classes/org/springblade/flow/engine/controller/FlowProcessController.class create mode 100644 target/classes/org/springblade/flow/engine/entity/FlowExecution.class create mode 100644 target/classes/org/springblade/flow/engine/entity/FlowModel.class create mode 100644 target/classes/org/springblade/flow/engine/entity/FlowProcess.class create mode 100644 target/classes/org/springblade/flow/engine/mapper/FlowMapper.class create mode 100644 target/classes/org/springblade/flow/engine/mapper/FlowMapper.xml create mode 100644 target/classes/org/springblade/flow/engine/service/FlowEngineService.class create mode 100644 target/classes/org/springblade/flow/engine/service/impl/ApplicationDetailService.class create mode 100644 target/classes/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.class create mode 100644 target/classes/org/springblade/flow/engine/utils/FlowCache.class create mode 100644 target/classes/org/springblade/job/controller/JobInfoController.class create mode 100644 target/classes/org/springblade/job/controller/JobServerController.class create mode 100644 target/classes/org/springblade/job/mapper/JobInfoMapper.class create mode 100644 target/classes/org/springblade/job/mapper/JobInfoMapper.xml create mode 100644 target/classes/org/springblade/job/mapper/JobServerMapper.class create mode 100644 target/classes/org/springblade/job/mapper/JobServerMapper.xml create mode 100644 target/classes/org/springblade/job/pojo/dto/JobDTO.class create mode 100644 target/classes/org/springblade/job/pojo/entity/JobInfo.class create mode 100644 target/classes/org/springblade/job/pojo/entity/JobServer.class create mode 100644 target/classes/org/springblade/job/pojo/vo/JobInfoVO.class create mode 100644 target/classes/org/springblade/job/pojo/vo/JobServerVO.class create mode 100644 target/classes/org/springblade/job/processor/ProcessorDemo.class create mode 100644 target/classes/org/springblade/job/service/IJobInfoService.class create mode 100644 target/classes/org/springblade/job/service/IJobServerService.class create mode 100644 target/classes/org/springblade/job/service/impl/JobInfoServiceImpl.class create mode 100644 target/classes/org/springblade/job/service/impl/JobServerServiceImpl$1.class create mode 100644 target/classes/org/springblade/job/service/impl/JobServerServiceImpl.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/pojo/vo/ApplyVo.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.class create mode 100644 target/classes/org/springblade/modules/apply/operationSiteApply/wrapper/OperationSiteApplyWrapper.class create mode 100644 target/classes/org/springblade/modules/auth/config/BladeAuthConfiguration.class create mode 100644 target/classes/org/springblade/modules/auth/constant/BladeAuthConstant.class create mode 100644 target/classes/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.class create mode 100644 target/classes/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.class create mode 100644 target/classes/org/springblade/modules/auth/granter/CaptchaTokenGranter.class create mode 100644 target/classes/org/springblade/modules/auth/granter/RegisterTokenGranter.class create mode 100644 target/classes/org/springblade/modules/auth/granter/SocialTokenGranter.class create mode 100644 target/classes/org/springblade/modules/auth/handler/BladeAuthorizationHandler.class create mode 100644 target/classes/org/springblade/modules/auth/handler/BladePasswordHandler.class create mode 100644 target/classes/org/springblade/modules/auth/handler/BladeTokenHandler.class create mode 100644 target/classes/org/springblade/modules/auth/provider/UserType.class create mode 100644 target/classes/org/springblade/modules/auth/service/BladeClientDetailService.class create mode 100644 target/classes/org/springblade/modules/auth/service/BladeUserDetailService.class create mode 100644 target/classes/org/springblade/modules/auth/utils/TokenUtil.class create mode 100644 target/classes/org/springblade/modules/desk/controller/DashBoardController.class create mode 100644 target/classes/org/springblade/modules/desk/controller/NoticeController.class create mode 100644 target/classes/org/springblade/modules/desk/mapper/NoticeMapper.class create mode 100644 target/classes/org/springblade/modules/desk/mapper/NoticeMapper.xml create mode 100644 target/classes/org/springblade/modules/desk/pojo/entity/Notice.class create mode 100644 target/classes/org/springblade/modules/desk/pojo/vo/NoticeVO.class create mode 100644 target/classes/org/springblade/modules/desk/service/INoticeService.class create mode 100644 target/classes/org/springblade/modules/desk/service/impl/NoticeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/desk/wrapper/NoticeWrapper.class create mode 100644 target/classes/org/springblade/modules/develop/controller/CodeController.class create mode 100644 target/classes/org/springblade/modules/develop/controller/DatasourceController.class create mode 100644 target/classes/org/springblade/modules/develop/controller/ModelController.class create mode 100644 target/classes/org/springblade/modules/develop/controller/ModelPrototypeController.class create mode 100644 target/classes/org/springblade/modules/develop/mapper/CodeMapper.class create mode 100644 target/classes/org/springblade/modules/develop/mapper/CodeMapper.xml create mode 100644 target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.class create mode 100644 target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.xml create mode 100644 target/classes/org/springblade/modules/develop/mapper/ModelMapper.class create mode 100644 target/classes/org/springblade/modules/develop/mapper/ModelMapper.xml create mode 100644 target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.class create mode 100644 target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml create mode 100644 target/classes/org/springblade/modules/develop/pojo/dto/ModelDTO.class create mode 100644 target/classes/org/springblade/modules/develop/pojo/entity/Code.class create mode 100644 target/classes/org/springblade/modules/develop/pojo/entity/Datasource.class create mode 100644 target/classes/org/springblade/modules/develop/pojo/entity/Model.class create mode 100644 target/classes/org/springblade/modules/develop/pojo/entity/ModelPrototype.class create mode 100644 target/classes/org/springblade/modules/develop/service/ICodeService.class create mode 100644 target/classes/org/springblade/modules/develop/service/IDatasourceService.class create mode 100644 target/classes/org/springblade/modules/develop/service/IModelPrototypeService.class create mode 100644 target/classes/org/springblade/modules/develop/service/IModelService.class create mode 100644 target/classes/org/springblade/modules/develop/service/impl/CodeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.class create mode 100644 target/classes/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/develop/service/impl/ModelServiceImpl.class create mode 100644 target/classes/org/springblade/modules/fitting/constant/FittingConstant.class create mode 100644 target/classes/org/springblade/modules/fitting/controller/OperationOrderMaterialController.class create mode 100644 target/classes/org/springblade/modules/fitting/controller/PlatformFittingApplyController.class create mode 100644 target/classes/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.class create mode 100644 target/classes/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.class create mode 100644 target/classes/org/springblade/modules/fitting/excel/PlatformFittingApplyMsgExcel.class create mode 100644 target/classes/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.class create mode 100644 target/classes/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml create mode 100644 target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.class create mode 100644 target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml create mode 100644 target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.class create mode 100644 target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.xml create mode 100644 target/classes/org/springblade/modules/fitting/pojo/dto/ApplyDto.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyMsgDTO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/entity/OperationOrderMaterialEntity.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyMsgEntity.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/AddBhVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/AddOrderFittingUseVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/FittingApplyDetailVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/OperaAddFittingBatchVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/OperationOrderMaterialVO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/OrderUseFittingDetailVo.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.class create mode 100644 target/classes/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.class create mode 100644 target/classes/org/springblade/modules/fitting/service/IOperationOrderMaterialService.class create mode 100644 target/classes/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.class create mode 100644 target/classes/org/springblade/modules/fitting/service/IPlatformFittingApplyService.class create mode 100644 target/classes/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.class create mode 100644 target/classes/org/springblade/modules/fitting/service/impl/PlatformFittingApplyMsgServiceImpl.class create mode 100644 target/classes/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.class create mode 100644 target/classes/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.class create mode 100644 target/classes/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.class create mode 100644 target/classes/org/springblade/modules/fitting/wrapper/PlatformFittingApplyWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/controller/ExamineInfoController.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/pojo/vo/ExamineInfoVO.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.class create mode 100644 target/classes/org/springblade/modules/flowable/examineInfo/wrapper/ExamineInfoWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/controller/ProcessDefController.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.xml create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefDTO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefLatestDTO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefAuditStepEntity.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefEntity.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/AddProcessVo.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefAuditStepVO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefLatestVO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefReq.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefService.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/IProcessFormService.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefServiceImpl.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefSubmitStepServiceImpl.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/utils/FormUtils.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/utils/GuardUtils.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessDefAuditStepWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessDefLatestWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessDefSubmitStepWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessFormWrapper.class create mode 100644 target/classes/org/springblade/modules/flowable/tasks/MyListener.class create mode 100644 target/classes/org/springblade/modules/flowable/tasks/OneTaskCompleteListener.class create mode 100644 target/classes/org/springblade/modules/flowable/tasks/RejectStartListener.class create mode 100644 target/classes/org/springblade/modules/material/controller/MaterialController.class create mode 100644 target/classes/org/springblade/modules/material/controller/MaterialEngineerController.class create mode 100644 target/classes/org/springblade/modules/material/controller/MaterialEngineerOutboundController.class create mode 100644 target/classes/org/springblade/modules/material/controller/MaterialOperationController.class create mode 100644 target/classes/org/springblade/modules/material/controller/MaterialOperationOutboundController.class create mode 100644 target/classes/org/springblade/modules/material/controller/MaterialOutboundController.class create mode 100644 target/classes/org/springblade/modules/material/excel/MaterialEngineerExcel.class create mode 100644 target/classes/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.class create mode 100644 target/classes/org/springblade/modules/material/excel/MaterialImporter.class create mode 100644 target/classes/org/springblade/modules/material/excel/MaterialOperationExcel.class create mode 100644 target/classes/org/springblade/modules/material/excel/MaterialOperationOutboundExcel.class create mode 100644 target/classes/org/springblade/modules/material/excel/MaterialOutboundExcel.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialEngineerMapper.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialEngineerMapper.xml create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialMapper.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialMapper.xml create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialOperationMapper.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialOperationMapper.xml create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.xml create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.class create mode 100644 target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml create mode 100644 target/classes/org/springblade/modules/material/pojo/dto/MaterialDTO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/dto/MaterialEngineerDTO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/dto/MaterialEngineerOutboundDTO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/dto/MaterialOperationDTO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/entity/MaterialEngineerEntity.class create mode 100644 target/classes/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.class create mode 100644 target/classes/org/springblade/modules/material/pojo/entity/MaterialEntity.class create mode 100644 target/classes/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.class create mode 100644 target/classes/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.class create mode 100644 target/classes/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/MaterialOperationVO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/MaterialOutboundVO.class create mode 100644 target/classes/org/springblade/modules/material/pojo/vo/MaterialVO.class create mode 100644 target/classes/org/springblade/modules/material/service/IMaterialEngineerOutboundService.class create mode 100644 target/classes/org/springblade/modules/material/service/IMaterialEngineerService.class create mode 100644 target/classes/org/springblade/modules/material/service/IMaterialOperationOutboundService.class create mode 100644 target/classes/org/springblade/modules/material/service/IMaterialOperationService.class create mode 100644 target/classes/org/springblade/modules/material/service/IMaterialOutboundService.class create mode 100644 target/classes/org/springblade/modules/material/service/IMaterialService.class create mode 100644 target/classes/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.class create mode 100644 target/classes/org/springblade/modules/material/service/impl/MaterialEngineerServiceImpl.class create mode 100644 target/classes/org/springblade/modules/material/service/impl/MaterialOperationOutboundServiceImpl.class create mode 100644 target/classes/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.class create mode 100644 target/classes/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.class create mode 100644 target/classes/org/springblade/modules/material/service/impl/MaterialServiceImpl.class create mode 100644 target/classes/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.class create mode 100644 target/classes/org/springblade/modules/material/wrapper/MaterialEngineerWrapper.class create mode 100644 target/classes/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.class create mode 100644 target/classes/org/springblade/modules/material/wrapper/MaterialOperationWrapper.class create mode 100644 target/classes/org/springblade/modules/material/wrapper/MaterialOutboundWrapper.class create mode 100644 target/classes/org/springblade/modules/material/wrapper/MaterialWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/api/NatOpenController.class create mode 100644 target/classes/org/springblade/modules/nh/api/NatOpenSyncController$1.class create mode 100644 target/classes/org/springblade/modules/nh/api/NatOpenSyncController.class create mode 100644 target/classes/org/springblade/modules/nh/api/OpenPowerStationController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/AlarmCodeController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/AlarmInfoController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/DeviceController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/HomePageController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/InefficientSettingController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/InverterDataController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/InverterUapController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/MonitorEntryStatController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/MonitorEntryYearStatController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/MonitorInverterStatController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/PowerStationController.class create mode 100644 target/classes/org/springblade/modules/nh/controller/PowerStationInefficientController.class create mode 100644 target/classes/org/springblade/modules/nh/excel/AlarmCodeExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/AlarmInfoExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/DeviceExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/InefficientSettingExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/InefficientSettingImporter.class create mode 100644 target/classes/org/springblade/modules/nh/excel/InverterDataExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/InverterUapExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/MaterialExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/MonitorEntryStatExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/MonitorInverterStatExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/PowerStationExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/PowerStationImport.class create mode 100644 target/classes/org/springblade/modules/nh/excel/PowerStationImporter.class create mode 100644 target/classes/org/springblade/modules/nh/excel/PowerStationInefficientExcel.class create mode 100644 target/classes/org/springblade/modules/nh/excel/StationStaticsExcel.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$10.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$11.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$7.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$8.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$9.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiPage.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/AisweiRet.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/constant/Constants.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/constant/ContentType.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpMethod.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/constant/SystemHeader.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/UnitData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/enums/Method.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisStationDMYEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmRecoverEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterLatestDetailEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/Client$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/Client.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/HttpUtil$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/HttpUtil.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/HttpUtils$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/HttpUtils.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/MessageDigestUtil.class create mode 100644 target/classes/org/springblade/modules/nh/factory/aiswei/util/SignUtil.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/EachRunner$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/EachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/EzTemplateBase$ValueHolder.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/EzTemplateBase.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/PageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/PageInfo.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/TimeWindow$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/TimeWindow$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/TimeWindow.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/TokenBucket$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/TokenBucket.class create mode 100644 target/classes/org/springblade/modules/nh/factory/common/WindowEntry.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$10.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$11.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$12.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$13.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$14.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$7.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$8.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$9.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/IRet.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/Page.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$10.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$11.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$12.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$13.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$14.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$7.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$8.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$9.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/GoodweRet.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/D.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasSiteData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDayEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$7.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$8.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationMonthEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi$7.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApi.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/req/BaseReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/req/QueryPlantEnergyReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/req/SajPageReq.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/BasePlant.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/DeviceRealtimeData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajDevice.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajPageRet.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantData.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/resp/SajRet.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$1.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$2.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$3.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$4.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$5.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$6.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$7.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationDataEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.class create mode 100644 target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.class create mode 100644 target/classes/org/springblade/modules/nh/job/InefficientScheduler$1.class create mode 100644 target/classes/org/springblade/modules/nh/job/InefficientScheduler$2.class create mode 100644 target/classes/org/springblade/modules/nh/job/InefficientScheduler.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$1.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$10.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$2.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$3.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$4.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$5.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$6.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$7.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$8.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$9.class create mode 100644 target/classes/org/springblade/modules/nh/job/UpdateDataScheduler.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/AlarmCodeMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/AlarmInfoMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/AlarmInfoMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/DeviceMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/DeviceMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/DeviceMsgMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/InverterDataMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/InverterDataMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.class create mode 100644 target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.xml create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/AlarmInfoDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/DeviceDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/InverterDataDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/InverterUapDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/MonitorEntryDailyStatDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/MonitorEntryMonthStatDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/MonitorEntryYearStatDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/MonitorInverterDailyStatDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/PowerStationDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/StationDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/WeatherHistory.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/AlarmCountDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyEnergyDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/JlglHourlyDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/LabelValueDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/MonthEnergyDTO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/dto/sync/StationIdMap.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/AlarmCodeEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/AlarmInfoEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/DeviceEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/DeviceMsgEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/InverterDataEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/InverterUapEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/MonitorEntryDailyStatEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/MonitorEntryMonthStatEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/MonitorEntryStatEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/MonitorEntryYearStatEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/MonitorInverterStatEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/PowerStationEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/entity/PowerStationInefficientEntity.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/DeviceVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/HomeOverviewVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/InverterDataVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/InverterTreeVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/InverterUapVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/MonitorEntryDailyStatVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/MonitorEntryMonthStatVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/MonitorEntryYearStatVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/MonitorInverterStatVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/PowerStationInefficientVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/PowerStationVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/StaticsStatusVO.class create mode 100644 target/classes/org/springblade/modules/nh/pojo/vo/StationStaticsVO.class create mode 100644 target/classes/org/springblade/modules/nh/service/IAlarmCodeService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IAlarmInfoService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IDeviceService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IInefficientSettingService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IInverterDataService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IInverterUapService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IMonitorEntryStatService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IMonitorEntryYearStatService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IMonitorInverterStatService.class create mode 100644 target/classes/org/springblade/modules/nh/service/INHCommonService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IPowerStationInefficientService.class create mode 100644 target/classes/org/springblade/modules/nh/service/IPowerStationService.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/AlarmCodeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/DeviceMsgService.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/DeviceServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorEntryDailyStatServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl$1.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorEntryStatServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl$1.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/PowerStationInefficientServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/PowerStationServiceImpl$1.class create mode 100644 target/classes/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/AlarmInfoWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/DeviceWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/InverterDataWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/InverterUapWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/MonitorEntryDailyStatWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/MonitorEntryMonthStatWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/MonitorInverterDailyStatWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/MonitorInverterStatWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/PowerStationInefficientWrapper.class create mode 100644 target/classes/org/springblade/modules/nh/wrapper/PowerStationWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/constant/SourceConstants.class create mode 100644 target/classes/org/springblade/modules/operation/controller/AnnouncementReadinfoController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationRoleController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationServiceMeasuresController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationServiceTypeController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationSiteController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationSiteEmployeeController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationSiteRoleController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/OperationTechnicalDataController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/PlatformAnnouncementController.class create mode 100644 target/classes/org/springblade/modules/operation/controller/PlatformEmployeeController.class create mode 100644 target/classes/org/springblade/modules/operation/excel/EntryPaymentTimeExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/EntrySiteExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/OperationServiceTypeExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/OperationSiteEmployeeExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/OperationSiteExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/OperationSiteRoleExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.class create mode 100644 target/classes/org/springblade/modules/operation/excel/PlatformEmployeeExcel.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.class create mode 100644 target/classes/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.xml create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/OperationSiteDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/OperationSiteRoleDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/OperationTechnicalDataDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/OperationServiceMeasuresEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/OperationServiceTypeEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/OperationTechnicalDataEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/EditSiteEmpAuthVo.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/EmpAuthVo.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationEmpVo.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationServiceMeasuresVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationSiteEmployeeVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationSiteRoleVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationSiteVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.class create mode 100644 target/classes/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.class create mode 100644 target/classes/org/springblade/modules/operation/service/IAnnouncementReadinfoService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IOperationServiceMeasuresService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IOperationServiceTypeService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IOperationSiteEmployeeService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IOperationSiteRoleService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IOperationSiteService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IOperationTechnicalDataService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IPlatformAnnouncementService.class create mode 100644 target/classes/org/springblade/modules/operation/service/IPlatformEmployeeService.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/OperationServiceTypeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/OperationTechnicalDataServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/OperationSiteEmployeeWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/OperationSiteWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.class create mode 100644 target/classes/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.class create mode 100644 target/classes/org/springblade/modules/order/constant/DeliverOrderConstants.class create mode 100644 target/classes/org/springblade/modules/order/constant/MaterialBatchConstants.class create mode 100644 target/classes/org/springblade/modules/order/constant/OrderConstants.class create mode 100644 target/classes/org/springblade/modules/order/constant/PendingOrderConstants.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderCallbackController.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderController.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderDispatchController.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderFeedbackController.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderLetterController.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderSettleController.class create mode 100644 target/classes/org/springblade/modules/order/controller/OperationOrderSiteDispatchController.class create mode 100644 target/classes/org/springblade/modules/order/excel/OperationOrderCallbackExcel.class create mode 100644 target/classes/org/springblade/modules/order/excel/OperationOrderExcel.class create mode 100644 target/classes/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.class create mode 100644 target/classes/org/springblade/modules/order/excel/OperationOrderSettleExcel.class create mode 100644 target/classes/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.class create mode 100644 target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml create mode 100644 target/classes/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/dto/OperationOrderDTO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/dto/OperationOrderSiteDispatchDTO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/dto/OrderLetterDTO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderDispatchEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.class create mode 100644 target/classes/org/springblade/modules/order/pojo/form/ComplaintForm.class create mode 100644 target/classes/org/springblade/modules/order/pojo/form/ComplaintReply.class create mode 100644 target/classes/org/springblade/modules/order/pojo/form/EvaluationForm.class create mode 100644 target/classes/org/springblade/modules/order/pojo/form/FeedbackForm.class create mode 100644 target/classes/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/ExamineOrderVo.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderDispatchVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderFeedbackVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderOperationInfoVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OperationOrderVO.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OrderHomeVo.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OrderListConditionVo.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OrderStaticVo.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/OrderVo.class create mode 100644 target/classes/org/springblade/modules/order/pojo/vo/SelectVo.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderCallbackService.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderDispatchService.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderFeedbackService.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderOperationInfoService.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderService.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderSettleService.class create mode 100644 target/classes/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderDispatchServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderFeedbackServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderLetterService.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderOperationInfoServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderSettleServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.class create mode 100644 target/classes/org/springblade/modules/order/utils/ExcelReader$1.class create mode 100644 target/classes/org/springblade/modules/order/utils/ExcelReader.class create mode 100644 target/classes/org/springblade/modules/order/utils/PlantformUtils.class create mode 100644 target/classes/org/springblade/modules/order/utils/Target.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$1.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$10.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$11.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$12.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$13.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$14.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$2.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$3.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$4.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$5.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$6.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$7.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$8.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils$9.class create mode 100644 target/classes/org/springblade/modules/order/utils/WebPageFunUtils.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderCallbackWrapper.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.class create mode 100644 target/classes/org/springblade/modules/order/wrapper/OperationOrderWrapper.class create mode 100644 target/classes/org/springblade/modules/partner/controller/PartnerController.class create mode 100644 target/classes/org/springblade/modules/partner/excel/PartnerExcel.class create mode 100644 target/classes/org/springblade/modules/partner/mapper/PartnerMapper.class create mode 100644 target/classes/org/springblade/modules/partner/mapper/PartnerMapper.xml create mode 100644 target/classes/org/springblade/modules/partner/pojo/dto/PartnerDTO.class create mode 100644 target/classes/org/springblade/modules/partner/pojo/entity/PartnerEntity.class create mode 100644 target/classes/org/springblade/modules/partner/pojo/vo/PartnerVO.class create mode 100644 target/classes/org/springblade/modules/partner/service/IPartnerService.class create mode 100644 target/classes/org/springblade/modules/partner/service/impl/PartnerServiceImpl.class create mode 100644 target/classes/org/springblade/modules/partner/wrapper/PartnerWrapper.class create mode 100644 target/classes/org/springblade/modules/resource/builder/OssBuilder.class create mode 100644 target/classes/org/springblade/modules/resource/builder/SmsBuilder.class create mode 100644 target/classes/org/springblade/modules/resource/config/BladeOssConfiguration.class create mode 100644 target/classes/org/springblade/modules/resource/config/BladeSmsConfiguration.class create mode 100644 target/classes/org/springblade/modules/resource/controller/AttachController.class create mode 100644 target/classes/org/springblade/modules/resource/controller/OssController.class create mode 100644 target/classes/org/springblade/modules/resource/controller/SmsController.class create mode 100644 target/classes/org/springblade/modules/resource/endpoint/OssEndpoint.class create mode 100644 target/classes/org/springblade/modules/resource/endpoint/SmsEndpoint.class create mode 100644 target/classes/org/springblade/modules/resource/mapper/AttachMapper.class create mode 100644 target/classes/org/springblade/modules/resource/mapper/AttachMapper.xml create mode 100644 target/classes/org/springblade/modules/resource/mapper/OssMapper.class create mode 100644 target/classes/org/springblade/modules/resource/mapper/OssMapper.xml create mode 100644 target/classes/org/springblade/modules/resource/mapper/SmsMapper.class create mode 100644 target/classes/org/springblade/modules/resource/mapper/SmsMapper.xml create mode 100644 target/classes/org/springblade/modules/resource/pojo/entity/Attach.class create mode 100644 target/classes/org/springblade/modules/resource/pojo/entity/Oss.class create mode 100644 target/classes/org/springblade/modules/resource/pojo/entity/Sms.class create mode 100644 target/classes/org/springblade/modules/resource/pojo/enums/SmsCodeEnum.class create mode 100644 target/classes/org/springblade/modules/resource/pojo/vo/AttachVO.class create mode 100644 target/classes/org/springblade/modules/resource/pojo/vo/OssVO.class create mode 100644 target/classes/org/springblade/modules/resource/pojo/vo/SmsVO.class create mode 100644 target/classes/org/springblade/modules/resource/rule/context/OssContext.class create mode 100644 target/classes/org/springblade/modules/resource/rule/context/SmsContext.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/AliOssRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/AmazonS3Rule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/FinallyOssRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/HuaweiObsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/MinioRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/OssBuildRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/OssCacheRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/OssDataRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/OssReadRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/OssTemplateRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/PreOssRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/QiniuOssRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/oss/TencentCosRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/AliSmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/CacheSmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/FinallySmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/PreSmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/QiniuSmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/SmsBuildRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/TencentSmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/rule/sms/YunpianSmsRule.class create mode 100644 target/classes/org/springblade/modules/resource/service/IAttachService.class create mode 100644 target/classes/org/springblade/modules/resource/service/IOssService.class create mode 100644 target/classes/org/springblade/modules/resource/service/ISmsService.class create mode 100644 target/classes/org/springblade/modules/resource/service/impl/AttachServiceImpl.class create mode 100644 target/classes/org/springblade/modules/resource/service/impl/OssServiceImpl.class create mode 100644 target/classes/org/springblade/modules/resource/service/impl/SmsServiceImpl.class create mode 100644 target/classes/org/springblade/modules/resource/template/BladeS3Template$1.class create mode 100644 target/classes/org/springblade/modules/resource/template/BladeS3Template.class create mode 100644 target/classes/org/springblade/modules/resource/utils/SmsUtil.class create mode 100644 target/classes/org/springblade/modules/resource/wrapper/OssWrapper.class create mode 100644 target/classes/org/springblade/modules/resource/wrapper/SmsWrapper.class create mode 100644 target/classes/org/springblade/modules/system/controller/ApiScopeController.class create mode 100644 target/classes/org/springblade/modules/system/controller/AuthClientController.class create mode 100644 target/classes/org/springblade/modules/system/controller/DataScopeController.class create mode 100644 target/classes/org/springblade/modules/system/controller/DeptController.class create mode 100644 target/classes/org/springblade/modules/system/controller/DictBizController.class create mode 100644 target/classes/org/springblade/modules/system/controller/DictController.class create mode 100644 target/classes/org/springblade/modules/system/controller/LogApiController.class create mode 100644 target/classes/org/springblade/modules/system/controller/LogErrorController.class create mode 100644 target/classes/org/springblade/modules/system/controller/LogUsualController.class create mode 100644 target/classes/org/springblade/modules/system/controller/MenuController.class create mode 100644 target/classes/org/springblade/modules/system/controller/ParamController.class create mode 100644 target/classes/org/springblade/modules/system/controller/PostController.class create mode 100644 target/classes/org/springblade/modules/system/controller/RegionController.class create mode 100644 target/classes/org/springblade/modules/system/controller/RoleController.class create mode 100644 target/classes/org/springblade/modules/system/controller/SearchController.class create mode 100644 target/classes/org/springblade/modules/system/controller/TenantController.class create mode 100644 target/classes/org/springblade/modules/system/controller/TenantPackageController.class create mode 100644 target/classes/org/springblade/modules/system/controller/TopMenuController.class create mode 100644 target/classes/org/springblade/modules/system/controller/UserController.class create mode 100644 target/classes/org/springblade/modules/system/excel/RegionExcel.class create mode 100644 target/classes/org/springblade/modules/system/excel/RegionImporter.class create mode 100644 target/classes/org/springblade/modules/system/excel/UserExcel.class create mode 100644 target/classes/org/springblade/modules/system/excel/UserImporter.class create mode 100644 target/classes/org/springblade/modules/system/mapper/ApiScopeMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/ApiScopeMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/AuthClientMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/AuthClientMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/DataScopeMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/DataScopeMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/DeptMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/DeptMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/DictBizMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/DictBizMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/DictMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/DictMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/LogApiMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/LogApiMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/LogErrorMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/LogErrorMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/LogUsualMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/LogUsualMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/MenuMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/MenuMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/ParamMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/ParamMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/PostMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/PostMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/RegionMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/RegionMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/RoleMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/RoleMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/RoleScopeMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/RoleScopeMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/TenantMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/TenantMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/TopMenuMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/TopMenuMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/UserAppMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/UserAppMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/UserDeptMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/UserDeptMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/UserMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/UserMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/UserOauthMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/UserOauthMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/UserOtherMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/UserOtherMapper.xml create mode 100644 target/classes/org/springblade/modules/system/mapper/UserWebMapper.class create mode 100644 target/classes/org/springblade/modules/system/mapper/UserWebMapper.xml create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/DeptDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/DictDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/MenuDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/ParamDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/PostDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/RoleDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/dto/RoleMenuDTO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/ApiScope.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/AuthClient.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/DataScope.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Dept.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Dict.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/DictBiz.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Menu.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Param.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Post.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Region.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Role.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/RoleMenu.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/RoleScope.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/Tenant.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/TenantPackage.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/TopMenu.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/TopMenuSetting.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/User.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/UserApp.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/UserDept.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/UserInfo.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/UserOauth.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/UserOther.class create mode 100644 target/classes/org/springblade/modules/system/pojo/entity/UserWeb.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/ApiScopeVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/CheckedTreeVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/DataScopeVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/DeptVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/DictBizVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/DictVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/GrantTreeVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/GrantVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/MenuVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/ParamVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/PostVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/RegionVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/RoleMenuVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/RoleVO.class create mode 100644 target/classes/org/springblade/modules/system/pojo/vo/UserVO.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantContext.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantDeptRule.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantDictBizRule.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantPostRule.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantRoleMenuRule.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantRoleRule.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantRule.class create mode 100644 target/classes/org/springblade/modules/system/rule/TenantUserRule.class create mode 100644 target/classes/org/springblade/modules/system/service/IApiScopeService.class create mode 100644 target/classes/org/springblade/modules/system/service/IAuthClientService.class create mode 100644 target/classes/org/springblade/modules/system/service/IDataScopeService.class create mode 100644 target/classes/org/springblade/modules/system/service/IDeptService.class create mode 100644 target/classes/org/springblade/modules/system/service/IDictBizService.class create mode 100644 target/classes/org/springblade/modules/system/service/IDictService.class create mode 100644 target/classes/org/springblade/modules/system/service/ILogApiService.class create mode 100644 target/classes/org/springblade/modules/system/service/ILogErrorService.class create mode 100644 target/classes/org/springblade/modules/system/service/ILogService.class create mode 100644 target/classes/org/springblade/modules/system/service/ILogUsualService.class create mode 100644 target/classes/org/springblade/modules/system/service/IMenuService.class create mode 100644 target/classes/org/springblade/modules/system/service/IParamService.class create mode 100644 target/classes/org/springblade/modules/system/service/IPostService.class create mode 100644 target/classes/org/springblade/modules/system/service/IRegionService.class create mode 100644 target/classes/org/springblade/modules/system/service/IRoleMenuService.class create mode 100644 target/classes/org/springblade/modules/system/service/IRoleScopeService.class create mode 100644 target/classes/org/springblade/modules/system/service/IRoleService.class create mode 100644 target/classes/org/springblade/modules/system/service/ITenantPackageService.class create mode 100644 target/classes/org/springblade/modules/system/service/ITenantService.class create mode 100644 target/classes/org/springblade/modules/system/service/ITopMenuService.class create mode 100644 target/classes/org/springblade/modules/system/service/ITopMenuSettingService.class create mode 100644 target/classes/org/springblade/modules/system/service/IUserDeptService.class create mode 100644 target/classes/org/springblade/modules/system/service/IUserOauthService.class create mode 100644 target/classes/org/springblade/modules/system/service/IUserSearchService.class create mode 100644 target/classes/org/springblade/modules/system/service/IUserService.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/ApiScopeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/AuthClientServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/DataScopeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/DeptServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/DictBizServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/DictServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/LogApiServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/LogErrorServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/LogServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/LogUsualServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/MenuServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/ParamServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/PostServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/RegionServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/RoleMenuServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/RoleScopeServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/RoleServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/TenantPackageServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/TenantServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/TopMenuServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/TopMenuSettingServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/UserDeptServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/UserOauthServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/UserSearchServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/service/impl/UserServiceImpl.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/ApiScopeWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/DataScopeWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/DeptWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/DictBizWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/DictWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/MenuWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/PostWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/RegionWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/RoleWrapper.class create mode 100644 target/classes/org/springblade/modules/system/wrapper/UserWrapper.class create mode 100644 target/classes/processes/LeaveProcess.bpmn20.xml create mode 100644 target/classes/static/favicon.ico create mode 100644 target/test-classes/application-dev.yml create mode 100644 target/test-classes/application-prod.yml create mode 100644 target/test-classes/application-test.yml create mode 100644 target/test-classes/application.yml diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..8cfd370 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +# http://editorconfig.org +root = true + +# 空格替代Tab缩进在各种编辑工具下效果一致 +[*] +indent_style = space +indent_size = 4 +charset = utf-8 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true + +[*.java] +indent_style = tab + +[*.{json,yml}] +indent_size = 2 + +[*.md] +insert_final_newline = false +trim_trailing_whitespace = false diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..933eff3 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..eb4924d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..67e1e61 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/doc/script/docker/elk/README.md b/doc/script/docker/elk/README.md new file mode 100644 index 0000000..ac5b782 --- /dev/null +++ b/doc/script/docker/elk/README.md @@ -0,0 +1,27 @@ +## 一、调整内存:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144](elasticsearch用户拥有的内存权限太小,至少需要262144) + +#### 1.修改配置sysctl.conf +[root@localhost ~]# vi /etc/sysctl.conf +#### 2.添加下面配置: +vm.max_map_count=262144 +#### 3.重新加载: +[root@localhost ~]# sysctl -p +#### 4.最后重新启动elasticsearch,即可启动成功。 + + +## 二、Docker 命令自动补全 +#### 1.安装依赖工具bash-complete +[root@localhost ~]# yum install -y bash-completion + +[root@localhost ~]# source /usr/share/bash-completion/completions/docker + +[root@localhost ~]# source /usr/share/bash-completion/bash_completion + +## 三、将本文件夹内的文件拷贝至服务器 +#### 1.对sh脚本赋予执行权限 + +#### 2.执行 ./deploy.sh + +#### 3.等待服务启动完毕即可 + +#### 4.卸载执行 ./undeploy.sh \ No newline at end of file diff --git a/doc/script/docker/elk/deploy.sh b/doc/script/docker/elk/deploy.sh new file mode 100644 index 0000000..cb003fa --- /dev/null +++ b/doc/script/docker/elk/deploy.sh @@ -0,0 +1,88 @@ +#./bin/bash +# 定义颜色 +BLUE_COLOR="\033[36m" +RED_COLOR="\033[31m" +GREEN_COLOR="\033[32m" +VIOLET_COLOR="\033[35m" +RES="\033[0m" + +echo -e "${BLUE_COLOR}# ######################################################################${RES}" +echo -e "${BLUE_COLOR}# Docker ELK Deploy Script #${RES}" +echo -e "${BLUE_COLOR}# ######################################################################${RES}" + +# 创建目录 +echo -e "${BLUE_COLOR}---> create [elasticsearch]directory start.${RES}" +if [ ! -d "./elasticsearch/" ]; then +mkdir -p ./elasticsearch/master/conf ./elasticsearch/master/data ./elasticsearch/master/logs \ + ./elasticsearch/slave1/conf ./elasticsearch/slave1/data ./elasticsearch/slave1/logs \ + ./elasticsearch/slave2/conf ./elasticsearch/slave2/data ./elasticsearch/slave2/logs +fi + +echo -e "${RED_COLOR}---> create [kibana]directory start.${RES}" +if [ ! -d "./kibana/" ]; then +mkdir -p ./kibana/conf ./kibana/logs +fi + + echo -e "${GREEN_COLOR}---> create [logstash]directory start.${RES}" + if [ ! -d "./logstash/" ]; then + mkdir -p ./logstash/conf ./logstash/logs + fi + +echo -e "${GREEN_COLOR}---> create [filebeat]directory start.${RES}" +if [ ! -d "./filebeat/" ]; then +mkdir -p ./filebeat/conf ./filebeat/logs ./filebeat/data +fi + +echo -e "${VIOLET_COLOR}---> create [nginx]directory start.${RES}" +if [ ! -d "./nginx/" ]; then +mkdir -p ./nginx/conf ./nginx/logs ./nginx/www +fi +echo -e "${BLUE_COLOR}===> create directory success.${RES}" + +# 目录授权(data/logs 都要授读/写权限) +echo -e "${BLUE_COLOR}---> directory authorize start.${RES}" +if [ -d "./elasticsearch/" ]; then +chmod 777 ./elasticsearch/master/data/ ./elasticsearch/master/logs/ \ + ./elasticsearch/slave1/data/ ./elasticsearch/slave1/logs/ \ + ./elasticsearch/slave2/data/ ./elasticsearch/slave2/logs +fi + +if [ -d "./filebeat/" ]; then +chmod 777 ./filebeat/data/ ./filebeat/logs/ +fi +echo -e "${BLUE_COLOR}===> directory authorize success.${RES}" + +# 移动配置文件 +echo -e "${BLUE_COLOR}---> move [elasticsearch]config file start.${RES}" +if [ -f "./es-master.yml" ] && [ -f "./es-slave1.yml" ] && [ -f "./es-slave2.yml" ]; then +mv ./es-master.yml ./elasticsearch/master/conf +mv ./es-slave1.yml ./elasticsearch/slave1/conf +mv ./es-slave2.yml ./elasticsearch/slave2/conf +fi + +echo -e "${RED_COLOR}---> move [kibana]config file start.${RES}" +if [ -f "./kibana.yml" ]; then +mv ./kibana.yml ./kibana/conf +fi + +echo -e "${GREEN_COLOR}---> move [logstash]config file start.${RES}" +if [ -f "./logstash.yml" ] && [ -f "./logstash-filebeat.conf" ]; then +mv ./logstash-filebeat.conf ./logstash/conf +mv ./logstash.yml ./logstash/conf +fi + +echo -e "${GREEN_COLOR}---> move [filebeat]config file start.${RES}" +if [ -f "./filebeat.yml" ]; then +mv ./filebeat.yml ./filebeat/conf +fi + +echo -e "${VIOLET_COLOR}---> move [nginx]config file start.${RES}" +if [ -f "./nginx.conf" ]; then +mv ./nginx.conf ./nginx/conf +fi +echo -e "${BLUE_COLOR}===> move config files success.${RES}" +echo -e "${GREEN_COLOR}>>>>>>>>>>>>>>>>>> The End <<<<<<<<<<<<<<<<<<${RES}" + +# 部署项目 +echo -e "${BLUE_COLOR}==================> Docker deploy Start <==================${RES}" +docker-compose up --build -d diff --git a/doc/script/docker/elk/docker-compose.yml b/doc/script/docker/elk/docker-compose.yml new file mode 100644 index 0000000..a738465 --- /dev/null +++ b/doc/script/docker/elk/docker-compose.yml @@ -0,0 +1,115 @@ +version: "3" +services: + es-master: + container_name: es-master + hostname: es-master + image: elasticsearch:7.1.1 + restart: always + ports: + - 9200:9200 + - 9300:9300 + volumes: + - ./elasticsearch/master/conf/es-master.yml:/usr/share/elasticsearch/config/elasticsearch.yml + - ./elasticsearch/master/data:/usr/share/elasticsearch/data + - ./elasticsearch/master/logs:/usr/share/elasticsearch/logs + environment: + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + + es-slave1: + container_name: es-slave1 + image: elasticsearch:7.1.1 + restart: always + ports: + - 9201:9200 + - 9301:9300 + volumes: + - ./elasticsearch/slave1/conf/es-slave1.yml:/usr/share/elasticsearch/config/elasticsearch.yml + - ./elasticsearch/slave1/data:/usr/share/elasticsearch/data + - ./elasticsearch/slave1/logs:/usr/share/elasticsearch/logs + environment: + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + + es-slave2: + container_name: es-slave2 + image: elasticsearch:7.1.1 + restart: always + ports: + - 9202:9200 + - 9302:9300 + volumes: + - ./elasticsearch/slave2/conf/es-slave2.yml:/usr/share/elasticsearch/config/elasticsearch.yml + - ./elasticsearch/slave2/data:/usr/share/elasticsearch/data + - ./elasticsearch/slave2/logs:/usr/share/elasticsearch/logs + environment: + - "ES_JAVA_OPTS=-Xms512m -Xmx512m" + + es-head: + container_name: es-head + image: mobz/elasticsearch-head:5 + restart: always + ports: + - 9100:9100 + depends_on: + - es-master + - es-slave1 + - es-slave2 + + kibana: + container_name: kibana + hostname: kibana + image: kibana:7.1.1 + restart: always + ports: + - 5601:5601 + volumes: + - ./kibana/conf/kibana.yml:/usr/share/kibana/config/kibana.yml + environment: + - elasticsearch.hosts=http://es-master:9200 + depends_on: + - es-master + - es-slave1 + - es-slave2 + + filebeat: + # 容器名称 + container_name: filebeat + # 主机名称 + hostname: filebeat + # 镜像 + image: docker.elastic.co/beats/filebeat:7.1.1 + # 重启机制 + restart: always + # 持久化挂载 + volumes: + - ./filebeat/conf/filebeat.yml:/usr/share/filebeat/filebeat.yml + # 映射到容器中[作为数据源] + - ./logs:/home/project/elk/logs + - ./filebeat/logs:/usr/share/filebeat/logs + - ./filebeat/data:/usr/share/filebeat/data + # 将指定容器连接到当前连接,可以设置别名,避免ip方式导致的容器重启动态改变的无法连接情况 + links: + - logstash + ports: + - 9000:9000 + # 依赖服务[可无] + depends_on: + - es-master + - es-slave1 + - es-slave2 + + logstash: + container_name: logstash + hostname: logstash + image: logstash:7.1.1 + command: logstash -f ./conf/logstash-filebeat.conf + restart: always + volumes: + # 映射到容器中 + - ./logstash/conf/logstash-filebeat.conf:/usr/share/logstash/conf/logstash-filebeat.conf + - ./logstash/conf/logstash.yml:/usr/share/logstash/config/logstash.yml + ports: + - 5044:5044 + depends_on: + - es-master + - es-slave1 + - es-slave2 diff --git a/doc/script/docker/elk/es-master.yml b/doc/script/docker/elk/es-master.yml new file mode 100644 index 0000000..8d7c298 --- /dev/null +++ b/doc/script/docker/elk/es-master.yml @@ -0,0 +1,28 @@ +# 集群名称 +cluster.name: es-cluster +# 节点名称 +node.name: es-master +# 是否可以成为master节点 +node.master: true +# 是否允许该节点存储数据,默认开启 +node.data: false +# 网络绑定 +network.host: 0.0.0.0 +# 设置对外服务的http端口 +http.port: 9200 +# 设置节点间交互的tcp端口 +transport.port: 9300 +# 集群发现 +discovery.seed_hosts: + - es-master + - es-slave1 + - es-slave2 +# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算 +cluster.initial_master_nodes: + - es-master +# 支持跨域访问 +http.cors.enabled: true +http.cors.allow-origin: "*" +# 安全认证 +xpack.security.enabled: false +#http.cors.allow-headers: "Authorization" diff --git a/doc/script/docker/elk/es-slave1.yml b/doc/script/docker/elk/es-slave1.yml new file mode 100644 index 0000000..b252387 --- /dev/null +++ b/doc/script/docker/elk/es-slave1.yml @@ -0,0 +1,28 @@ +# 集群名称 +cluster.name: es-cluster +# 节点名称 +node.name: es-slave1 +# 是否可以成为master节点 +node.master: true +# 是否允许该节点存储数据,默认开启 +node.data: true +# 网络绑定 +network.host: 0.0.0.0 +# 设置对外服务的http端口 +http.port: 9201 +# 设置节点间交互的tcp端口 +#transport.port: 9301 +# 集群发现 +discovery.seed_hosts: + - es-master + - es-slave1 + - es-slave2 +# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算 +cluster.initial_master_nodes: + - es-master +# 支持跨域访问 +http.cors.enabled: true +http.cors.allow-origin: "*" +# 安全认证 +xpack.security.enabled: false +#http.cors.allow-headers: "Authorization" diff --git a/doc/script/docker/elk/es-slave2.yml b/doc/script/docker/elk/es-slave2.yml new file mode 100644 index 0000000..8f489c2 --- /dev/null +++ b/doc/script/docker/elk/es-slave2.yml @@ -0,0 +1,28 @@ +# 集群名称 +cluster.name: es-cluster +# 节点名称 +node.name: es-slave2 +# 是否可以成为master节点 +node.master: true +# 是否允许该节点存储数据,默认开启 +node.data: true +# 网络绑定 +network.host: 0.0.0.0 +# 设置对外服务的http端口 +http.port: 9202 +# 设置节点间交互的tcp端口 +#transport.port: 9302 +# 集群发现 +discovery.seed_hosts: + - es-master + - es-slave1 + - es-slave2 +# 手动指定可以成为 mater 的所有节点的 name 或者 ip,这些配置将会在第一次选举中进行计算 +cluster.initial_master_nodes: + - es-master +# 支持跨域访问 +http.cors.enabled: true +http.cors.allow-origin: "*" +# 安全认证 +xpack.security.enabled: false +#http.cors.allow-headers: "Authorization" diff --git a/doc/script/docker/elk/filebeat.yml b/doc/script/docker/elk/filebeat.yml new file mode 100644 index 0000000..1825380 --- /dev/null +++ b/doc/script/docker/elk/filebeat.yml @@ -0,0 +1,37 @@ +filebeat.inputs: + - type: log + enabled: true + paths: + # 当前目录下的所有.log文件 + - /home/project/elk/logs/*.log + multiline.pattern: ^\[ + multiline.negate: true + multiline.match: after + - type: tcp + enabled: true + max_message_size: 10MiB + host: "0.0.0.0:9000" + +filebeat.config.modules: + path: ${path.config}/modules.d/*.yml + reload.enabled: false + +setup.template.settings: + index.number_of_shards: 1 + +setup.dashboards.enabled: false + +setup.kibana: + host: "http://kibana:5601" + +# 不直接传输至ES +#output.elasticsearch: +# hosts: ["http://es-master:9200"] +# index: "filebeat-%{[beat.version]}-%{+yyyy.MM.dd}" + +output.logstash: + hosts: ["logstash:5044"] + +processors: + - add_host_metadata: ~ + - add_cloud_metadata: ~ diff --git a/doc/script/docker/elk/kibana.yml b/doc/script/docker/elk/kibana.yml new file mode 100644 index 0000000..80c2d28 --- /dev/null +++ b/doc/script/docker/elk/kibana.yml @@ -0,0 +1,8 @@ +# 服务端口 +server.port: 5601 +# 服务IP +server.host: "0.0.0.0" +# ES +elasticsearch.hosts: ["http://es-master:9200"] +# 汉化 +i18n.locale: "zh-CN" diff --git a/doc/script/docker/elk/logstash-filebeat.conf b/doc/script/docker/elk/logstash-filebeat.conf new file mode 100644 index 0000000..3c2938f --- /dev/null +++ b/doc/script/docker/elk/logstash-filebeat.conf @@ -0,0 +1,23 @@ +input { + # 来源beats + beats { + # 端口 + port => "5044" + } +} +# 分析、过滤插件,可以多个 +filter { + grok { + match => { "message" => "%{COMBINEDAPACHELOG}"} + } + geoip { + source => "clientip" + } +} +output { + # 选择elasticsearch + elasticsearch { + hosts => ["http://es-master:9200"] + index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" + } +} diff --git a/doc/script/docker/elk/logstash.yml b/doc/script/docker/elk/logstash.yml new file mode 100644 index 0000000..ce1b72d --- /dev/null +++ b/doc/script/docker/elk/logstash.yml @@ -0,0 +1,8 @@ +# 服务IP +http.host: "0.0.0.0" +# ES +xpack.monitoring.elasticsearch.hosts: [ "http://es-master:9200" ] + +xpack.monitoring.enabled: true + +xpack.management.enabled: false diff --git a/doc/script/docker/elk/undeploy.sh b/doc/script/docker/elk/undeploy.sh new file mode 100644 index 0000000..c7d3632 --- /dev/null +++ b/doc/script/docker/elk/undeploy.sh @@ -0,0 +1,16 @@ +#./bin/bash +# 定义颜色 +BLUE_COLOR="\033[36m" +RED_COLOR="\033[31m" +GREEN_COLOR="\033[32m" +VIOLET_COLOR="\033[35m" +RES="\033[0m" + +echo -e "${BLUE_COLOR}# ######################################################################${RES}" +echo -e "${BLUE_COLOR}# Docker ELK UnDeploy Script #${RES}" +echo -e "${BLUE_COLOR}# ######################################################################${RES}" + +# 部署项目 +echo -e "${BLUE_COLOR}==================> Docker UnDeploy Start <==================${RES}" +docker-compose stop +docker-compose rm diff --git a/doc/script/fatjar/service.cmd b/doc/script/fatjar/service.cmd new file mode 100644 index 0000000..a5ab801 --- /dev/null +++ b/doc/script/fatjar/service.cmd @@ -0,0 +1 @@ +java -Xms1024m -Xmx1024m -jar app.jar diff --git a/doc/script/fatjar/service.sh b/doc/script/fatjar/service.sh new file mode 100644 index 0000000..a2f1875 --- /dev/null +++ b/doc/script/fatjar/service.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +#设置jar文件名 +APP_NAME=app.jar + +#使用说明,用来提示输入参数 +usage() { +echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" +exit 1 +} + +#检查程序是否在运行 +is_exist(){ +pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` +#如果不存在返回1,存在返回0 +if [ -z "${pid}" ]; then +return 1 +else +return 0 +fi +} + +#启动方法 +start(){ +is_exist +if [ $? -eq "0" ]; then +echo "${APP_NAME} is already running. pid=${pid} ." +else +nohup java -Xms1024m -Xmx1024m -jar $APP_NAME > /dev/null 2>&1 & +fi +} + +#停止方法 +stop(){ +is_exist +if [ $? -eq "0" ]; then +kill -9 $pid +else +echo "${APP_NAME} is not running" +fi +} + +#输出运行状态 +status(){ +is_exist +if [ $? -eq "0" ]; then +echo "${APP_NAME} is running. Pid is ${pid}" +else +echo "${APP_NAME} is NOT running." +fi +} + +#重启 +restart(){ +stop +start +} + +#根据输入参数,选择执行对应方法,不输入则执行使用说明 +case "$1" in +"start") +start +;; +"stop") +stop +;; +"status") +status +;; +"restart") +restart +;; +*) +usage +;; +esac diff --git a/doc/sql/bladex/bladex-database-info.md b/doc/sql/bladex/bladex-database-info.md new file mode 100644 index 0000000..a06fdb6 --- /dev/null +++ b/doc/sql/bladex/bladex-database-info.md @@ -0,0 +1,687 @@ +Table: blade_attach(附件表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| link | VARCHAR(1000) | YES | | | 附件地址 | +| domain_url | VARCHAR(500) | YES | | | 附件域名 | +| name | VARCHAR(500) | YES | | | 附件名称 | +| original_name | VARCHAR(500) | YES | | | 附件原名 | +| extension | VARCHAR(12) | YES | | | 附件拓展名 | +| attach_size | BIGINT(20) | YES | | | 附件大小 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_client(客户端表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| client_id | VARCHAR(48) | NO | | | 客户端id | +| client_secret | VARCHAR(256) | NO | | | 客户端密钥 | +| resource_ids | VARCHAR(256) | YES | | | 资源集合 | +| scope | VARCHAR(256) | NO | | | 授权范围 | +| authorized_grant_types | VARCHAR(256) | NO | | | 授权类型 | +| web_server_redirect_uri | VARCHAR(256) | YES | | | 回调地址 | +| authorities | VARCHAR(256) | YES | | | 权限 | +| access_token_validity | INT(10) | NO | | | 令牌过期秒数 | +| refresh_token_validity | INT(10) | NO | | | 刷新令牌过期秒数| +| additional_information | VARCHAR(4096) | YES | | | 附加说明 | +| autoapprove | VARCHAR(256) | YES | | | 自动授权 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | NO | | | 状态 | +| is_deleted | INT(10) | NO | | | 是否已删除 | + +Table: blade_code(代码生成表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| model_id | BIGINT(20) | YES | | | 数据模型主键 | +| service_name | VARCHAR(64) | YES | | | 服务名称 | +| code_name | VARCHAR(64) | YES | | | 模块名称 | +| table_name | VARCHAR(64) | YES | | | 表名 | +| table_prefix | VARCHAR(64) | YES | | | 表前缀 | +| pk_name | VARCHAR(32) | YES | | | 主键名 | +| package_name | VARCHAR(500) | YES | | | 后端包名 | +| template_type | VARCHAR(32) | YES | | | 模版类型 | +| author | VARCHAR(32) | YES | | | 作者信息 | +| sub_model_id | VARCHAR(32) | YES | | | 子表模型主键 | +| sub_fk_id | VARCHAR(32) | YES | | | 子表绑定外键 | +| tree_id | VARCHAR(32) | YES | | | 树主键字段 | +| tree_pid | VARCHAR(32) | YES | | | 树父主键字段 | +| tree_name | VARCHAR(64) | YES | | | 树名称字段 | +| base_mode | INT(10) | YES | | | 基础业务模式 | +| wrap_mode | INT(10) | YES | | | 包装器模式 | +| feign_mode | INT(10) | YES | | | 远程调用模式 | +| code_style | VARCHAR(32) | YES | | | 代码风格 | +| api_path | VARCHAR(2000) | YES | | | 后端路径 | +| web_path | VARCHAR(2000) | YES | | | 前端路径 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_datasource(数据源配置表) + +| Field | Type | Null | Key | Default | Remarks | +|-----------------|--------------| ---- | --- | ------- |------------| +| id | BIGINT(20) | NO | PRI | | 主键 | +| category | INT(2) | YES | | | 数据源类型 | +| name | VARCHAR(100) | YES | | | 名称 | +| driver_class | VARCHAR(100) | YES | | | 驱动类 | +| url | VARCHAR(500) | YES | | | 连接地址 | +| username | VARCHAR(50) | YES | | | 用户名 | +| password | VARCHAR(50) | YES | | | 密码 | +| sharding_config | LONGTEXT | YES | | | 分库分表配置 | +| remark | VARCHAR(255) | YES | | | 备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_dept(机构表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| parent_id | BIGINT(20) | YES | | 0 | 父主键 | +| ancestors | VARCHAR(2000) | YES | | | 祖级列表 | +| dept_category | INT(10) | YES | | | 部门类型 | +| dept_name | VARCHAR(45) | YES | | | 部门名 | +| full_name | VARCHAR(45) | YES | | | 部门全称 | +| sort | INT(10) | YES | | | 排序 | +| remark | VARCHAR(255) | YES | | | 备注 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_dict(字典表) + +| Field | Type | Null | Key | Default | Remarks | +| ---------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| parent_id | BIGINT(20) | YES | | 0 | 父主键 | +| code | VARCHAR(255) | YES | | | 字典码 | +| dict_key | VARCHAR(255) | YES | | | 字典值 | +| dict_value | VARCHAR(255) | YES | | | 字典名称 | +| sort | INT(10) | YES | | | 排序 | +| remark | VARCHAR(255) | YES | | | 字典备注 | +| is_sealed | INT(10) | YES | | 0 | 是否已封存 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_dict_biz(业务字典表) + +| Field | Type | Null | Key | Default | Remarks | +| ---------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | | 租户ID | +| parent_id | BIGINT(20) | YES | | 0 | 父主键 | +| code | VARCHAR(255) | YES | | | 字典码 | +| dict_key | VARCHAR(255) | YES | | | 字典值 | +| dict_value | VARCHAR(255) | YES | | | 字典名称 | +| sort | INT(10) | YES | | | 排序 | +| remark | VARCHAR(255) | YES | | | 字典备注 | +| is_sealed | INT(10) | YES | | 0 | 是否已封存 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_log_api(接口日志表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------ | ------------- | ---- | --- | ----------------- | ------- | +| id | BIGINT(20) | NO | PRI | | 编号 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| service_id | VARCHAR(32) | YES | | | 服务ID | +| server_host | VARCHAR(255) | YES | | | 服务器名 | +| server_ip | VARCHAR(255) | YES | | | 服务器IP地址 | +| env | VARCHAR(255) | YES | | | 服务器环境 | +| type | CHAR(1) | YES | | 1 | 日志类型 | +| title | VARCHAR(255) | YES | | | 日志标题 | +| method | VARCHAR(10) | YES | | | 操作方式 | +| request_uri | VARCHAR(255) | YES | | | 请求URI | +| user_agent | VARCHAR(1000) | YES | | | 用户代理 | +| remote_ip | VARCHAR(255) | YES | | | 操作IP地址 | +| method_class | VARCHAR(255) | YES | | | 方法类 | +| method_name | VARCHAR(255) | YES | | | 方法名 | +| params | TEXT(65535) | YES | | | 操作提交的数据 | +| time | VARCHAR(64) | YES | | | 执行时间 | +| create_by | VARCHAR(64) | YES | | | 创建者 | +| create_time | DATETIME(19) | YES | | CURRENT_TIMESTAMP | 创建时间 | + +Table: blade_log_error(错误日志表) + +| Field | Type | Null | Key | Default | Remarks | +| -------------- | ------------- | ---- | --- | ----------------- | ------- | +| id | BIGINT(20) | NO | PRI | | 编号 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| service_id | VARCHAR(32) | YES | | | 服务ID | +| server_host | VARCHAR(255) | YES | | | 服务器名 | +| server_ip | VARCHAR(255) | YES | | | 服务器IP地址 | +| env | VARCHAR(255) | YES | | | 系统环境 | +| method | VARCHAR(10) | YES | | | 操作方式 | +| request_uri | VARCHAR(255) | YES | | | 请求URI | +| user_agent | VARCHAR(1000) | YES | | | 用户代理 | +| stack_trace | TEXT(65535) | YES | | | 堆栈 | +| exception_name | VARCHAR(255) | YES | | | 异常名 | +| message | TEXT(65535) | YES | | | 异常信息 | +| line_number | INT(10) | YES | | | 错误行数 | +| remote_ip | VARCHAR(255) | YES | | | 操作IP地址 | +| method_class | VARCHAR(255) | YES | | | 方法类 | +| file_name | VARCHAR(1000) | YES | | | 文件名 | +| method_name | VARCHAR(255) | YES | | | 方法名 | +| params | TEXT(65535) | YES | | | 操作提交的数据 | +| create_by | VARCHAR(64) | YES | | | 创建者 | +| create_time | DATETIME(19) | YES | | CURRENT_TIMESTAMP | 创建时间 | + +Table: blade_log_usual(通用日志表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------ | ------------- | ---- | --- | ----------------- | ------- | +| id | BIGINT(20) | NO | PRI | | 编号 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| service_id | VARCHAR(32) | YES | | | 服务ID | +| server_host | VARCHAR(255) | YES | | | 服务器名 | +| server_ip | VARCHAR(255) | YES | | | 服务器IP地址 | +| env | VARCHAR(255) | YES | | | 系统环境 | +| log_level | VARCHAR(10) | YES | | | 日志级别 | +| log_id | VARCHAR(100) | YES | | | 日志业务id | +| log_data | TEXT(65535) | YES | | | 日志数据 | +| method | VARCHAR(10) | YES | | | 操作方式 | +| request_uri | VARCHAR(255) | YES | | | 请求URI | +| remote_ip | VARCHAR(255) | YES | | | 操作IP地址 | +| method_class | VARCHAR(255) | YES | | | 方法类 | +| method_name | VARCHAR(255) | YES | | | 方法名 | +| user_agent | VARCHAR(1000) | YES | | | 用户代理 | +| params | TEXT(65535) | YES | | | 操作提交的数据 | +| create_by | VARCHAR(64) | YES | | | 创建者 | +| create_time | DATETIME(19) | YES | | CURRENT_TIMESTAMP | 创建时间 | + +Table: blade_menu(菜单表) + +| Field | Type | Null | Key | Default | Remarks | +| ---------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| parent_id | BIGINT(20) | YES | | 0 | 父级菜单 | +| code | VARCHAR(255) | YES | | | 菜单编号 | +| name | VARCHAR(255) | YES | | | 菜单名称 | +| alias | VARCHAR(255) | YES | | | 菜单别名 | +| path | VARCHAR(255) | YES | | | 请求地址 | +| source | VARCHAR(255) | YES | | | 菜单资源 | +| sort | INT(10) | YES | | | 排序 | +| category | INT(10) | YES | | | 菜单类型 | +| action | INT(10) | YES | | 0 | 操作按钮类型 | +| is_open | INT(10) | YES | | 1 | 是否打开新页面 | +| remark | VARCHAR(255) | YES | | | 备注 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + + +Table: blade_model(数据模型表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| datasource_id | BIGINT(20) | YES | | | 数据源主键 | +| model_name | VARCHAR(50) | YES | | | 模型名称 | +| model_code | VARCHAR(50) | YES | | | 模型编号 | +| model_table | VARCHAR(100) | YES | | | 物理表名 | +| model_class | VARCHAR(100) | YES | | | 模型类名 | +| model_remark | VARCHAR(500) | YES | | | 模型备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + + +Table: blade_model_prototype(数据原型表) + +| Field | Type | Null | Key | Default | Remarks | +| -------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| model_id | BIGINT(20) | YES | | | 模型主键 | +| jdbc_name | VARCHAR(50) | YES | | | 物理列名 | +| jdbc_type | VARCHAR(20) | YES | | | 物理类型 | +| jdbc_comment | VARCHAR(500) | YES | | | 注释说明 | +| property_type | VARCHAR(20) | YES | | | 实体类型 | +| property_entity| VARCHAR(500) | YES | | | 实体类型引用| +| property_name | VARCHAR(50) | YES | | | 实体列名 | +| is_list | INT(10) | YES | | | 列表显示 | +| is_form | INT(10) | YES | | | 表单显示 | +| is_row | INT(10) | YES | | | 独占一行 | +| component_type | VARCHAR(50) | YES | | | 组件类型 | +| dict_code | VARCHAR(50) | YES | | | 字典编码 | +| is_required | INT(10) | YES | | | 是否必填 | +| is_query | INT(10) | YES | | | 查询配置 | +| query_type | VARCHAR(50) | YES | | | 查询配置 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + + +Table: blade_notice(通知公告表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------ | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| title | VARCHAR(255) | YES | | | 标题 | +| category | INT(10) | YES | | | 类型 | +| release_time | DATETIME(19) | YES | | | 发布时间 | +| content | VARCHAR(2000) | YES | | | 内容 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_oss(对象存储表) + +| Field | Type | Null | Key | Default | Remarks | +|--------------------| ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| category | INT(10) | YES | | | 分类 | +| oss_code | VARCHAR(32) | YES | | | 资源编号 | +| endpoint | VARCHAR(255) | YES | | | 资源地址 | +| transform_endpoint | VARCHAR(255) | YES | | | 外网资源地址 | +| access_key | VARCHAR(255) | YES | | | accessKey| +| secret_key | VARCHAR(255) | YES | | | secretKey| +| bucket_name | VARCHAR(255) | YES | | | 空间名 | +| app_id | VARCHAR(255) | YES | | | 应用ID | +| region | VARCHAR(255) | YES | | | 地域简称 | +| remark | VARCHAR(255) | YES | | | 备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_param(参数表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| param_name | VARCHAR(255) | YES | | | 参数名 | +| param_key | VARCHAR(255) | YES | | | 参数键 | +| param_value | VARCHAR(255) | YES | | | 参数值 | +| remark | VARCHAR(255) | YES | | | 备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_post(岗位表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| category | INT(10) | YES | | | 岗位类型 | +| post_code | VARCHAR(12) | YES | | | 岗位编号 | +| post_name | VARCHAR(64) | YES | | | 岗位名称 | +| sort | INT(10) | YES | | | 岗位排序 | +| remark | VARCHAR(255) | YES | | | 岗位描述 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_process_leave(流程请假业务表) + +| Field | Type | Null | Key | Default | Remarks | +| --------------------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 编号 | +| process_definition_id | VARCHAR(64) | YES | | | 流程定义主键 | +| process_instance_id | VARCHAR(64) | YES | | | 流程实例主键 | +| start_time | DATETIME(19) | YES | | | 开始时间 | +| end_time | DATETIME(19) | YES | | | 结束时间 | +| reason | VARCHAR(255) | YES | | | 请假理由 | +| task_user | VARCHAR(255) | YES | | | 第一级审批人 | +| apply_time | DATETIME(19) | YES | | | 申请时间 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_region(行政区划表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------ | ---- | --- | ------- | ------- | +| code | VARCHAR(12) | NO | PRI | | 区划编号 | +| parent_code | VARCHAR(12) | YES | | | 父区划编号 | +| ancestors | VARCHAR(255) | YES | | | 祖区划编号 | +| name | VARCHAR(32) | YES | | | 区划名称 | +| province_code | VARCHAR(12) | YES | | | 省级区划编号 | +| province_name | VARCHAR(32) | YES | | | 省级名称 | +| city_code | VARCHAR(12) | YES | | | 市级区划编号 | +| city_name | VARCHAR(32) | YES | | | 市级名称 | +| district_code | VARCHAR(12) | YES | | | 区级区划编号 | +| district_name | VARCHAR(32) | YES | | | 区级名称 | +| town_code | VARCHAR(12) | YES | | | 镇级区划编号 | +| town_name | VARCHAR(32) | YES | | | 镇级名称 | +| village_code | VARCHAR(12) | YES | | | 村级区划编号 | +| village_name | VARCHAR(32) | YES | | | 村级名称 | +| region_level | INT(10) | YES | | | 层级 | +| sort | INT(10) | YES | | | 排序 | +| remark | VARCHAR(255) | YES | | | 备注 | + +Table: blade_report_file(报表文件表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | -------------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| name | VARCHAR(100) | NO | | | 文件名 | +| content | MEDIUMBLOB(16777215) | YES | | | 文件内容 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_time | DATETIME(19) | YES | | | 更新时间 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_role(角色表) + +| Field | Type | Null | Key | Default | Remarks | +| ---------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| parent_id | BIGINT(20) | YES | | 0 | 父主键 | +| role_name | VARCHAR(255) | YES | | | 角色名 | +| sort | INT(10) | YES | | | 排序 | +| role_alias | VARCHAR(255) | YES | | | 角色别名 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_role_menu(角色菜单关联表) + +| Field | Type | Null | Key | Default | Remarks | +| ------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| menu_id | BIGINT(20) | YES | | | 菜单id | +| role_id | BIGINT(20) | YES | | | 角色id | + +Table: blade_role_scope(角色数据权限关联表) + +| Field | Type | Null | Key | Default | Remarks | +| -------------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| scope_category | INT(10) | YES | | | 权限类型(1:数据权限、2:接口权限)| +| scope_id | BIGINT(20) | YES | | | 权限id | +| role_id | BIGINT(20) | YES | | | 角色id | + +Table: blade_scope_api(接口权限表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| menu_id | BIGINT(20) | YES | | | 菜单主键 | +| resource_code | VARCHAR(255) | YES | | | 资源编号 | +| scope_name | VARCHAR(255) | YES | | | 接口权限名 | +| scope_path | VARCHAR(255) | YES | | | 接口权限地址 | +| scope_type | INT(10) | YES | | | 接口权限类型 | +| remark | VARCHAR(255) | YES | | | 接口权限备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_scope_data(数据权限表) + +| Field | Type | Null | Key | Default | Remarks | +| ------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| menu_id | BIGINT(20) | YES | | | 菜单主键 | +| resource_code | VARCHAR(255) | YES | | | 资源编号 | +| scope_name | VARCHAR(255) | YES | | | 数据权限名称 | +| scope_field | VARCHAR(255) | YES | | | 数据权限字段 | +| scope_class | VARCHAR(500) | YES | | | 数据权限类名 | +| scope_column | VARCHAR(255) | YES | | | 数据权限字段 | +| scope_type | INT(10) | YES | | | 数据权限类型 | +| scope_value | VARCHAR(2000) | YES | | | 数据权限值域 | +| remark | VARCHAR(255) | YES | | | 数据权限备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_sms(短信配置表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| category | INT(10) | YES | | | 分类 | +| sms_code | VARCHAR(32) | YES | | | 资源编号 | +| template_id | VARCHAR(64) | YES | | | 模板ID | +| access_key | VARCHAR(255) | YES | | | accessKey| +| secret_key | VARCHAR(255) | YES | | | secretKey| +| region_id | VARCHAR(255) | YES | | | regionId| +| sign_name | VARCHAR(64) | YES | | | 短信签名 | +| remark | VARCHAR(255) | YES | | | 备注 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_tenant(租户表) + +| Field | Type | Null | Key | Default | Remarks | +| -------------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| tenant_name | VARCHAR(50) | NO | | | 租户名称 | +| domain_url | VARCHAR(255) | YES | | | 域名地址 | +| background_url | VARCHAR(1000) | YES | | | 系统背景 | +| linkman | VARCHAR(20) | YES | | | 联系人 | +| contact_number | VARCHAR(20) | YES | | | 联系电话 | +| address | VARCHAR(255) | YES | | | 联系地址 | +| account_number | INT(10) | YES | | -1 | 账号额度 | +| expire_time | DATETIME(19) | YES | | | 过期时间 | +| datasource | BIGINT(20) | YES | | | 数据源ID | +| license_key | VARCHAR(1000) | YES | | | 授权码 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_top_menu(顶部菜单表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | ------------ | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | | 租户id | +| code | VARCHAR(255) | YES | | | 顶部菜单编号 | +| name | VARCHAR(255) | YES | | | 顶部菜单名 | +| source | VARCHAR(255) | YES | | | 顶部菜单资源 | +| sort | INT(10) | YES | | | 顶部菜单排序 | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | | 是否已删除 | + +Table: blade_top_menu_setting(顶部菜单配置表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| top_menu_id | BIGINT(20) | YES | | | 顶部菜单主键 | +| menu_id | BIGINT(20) | YES | | | 菜单主键 | + +Table: blade_user(用户表) + +| Field | Type | Null | Key | Default | Remarks | +| ----------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | 000000 | 租户ID | +| code | VARCHAR(12) | YES | | | 用户编号 | +| user_type | SMALLINT(5) | YES | | | 用户平台 | +| account | VARCHAR(45) | YES | | | 账号 | +| password | VARCHAR(45) | YES | | | 密码 | +| name | VARCHAR(20) | YES | | | 昵称 | +| real_name | VARCHAR(10) | YES | | | 真名 | +| avatar | VARCHAR(500) | YES | | | 头像 | +| email | VARCHAR(45) | YES | | | 邮箱 | +| phone | VARCHAR(45) | YES | | | 手机 | +| birthday | DATETIME(19) | YES | | | 生日 | +| sex | SMALLINT(5) | YES | | | 性别 | +| role_id | VARCHAR(1000) | YES | | | 角色id | +| dept_id | VARCHAR(1000) | YES | | | 部门id | +| post_id | VARCHAR(1000) | YES | | | 岗位id | +| create_user | BIGINT(20) | YES | | | 创建人 | +| create_dept | BIGINT(20) | YES | | | 创建部门 | +| create_time | DATETIME(19) | YES | | | 创建时间 | +| update_user | BIGINT(20) | YES | | | 修改人 | +| update_time | DATETIME(19) | YES | | | 修改时间 | +| status | INT(10) | YES | | | 状态 | +| is_deleted | INT(10) | YES | | 0 | 是否已删除 | + +Table: blade_user_dept(用户部门表) + +| Field | Type | Null | Key | Default | Remarks | +| ------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| user_id | BIGINT(20) | YES | | 0 | 用户ID | +| dept_id | BIGINT(20) | YES | | 0 | 部门ID | + +Table: blade_user_oauth(用户第三方认证表) + +| Field | Type | Null | Key | Default | Remarks | +| --------- | ------------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| tenant_id | VARCHAR(12) | YES | | | 租户ID | +| uuid | VARCHAR(64) | YES | | | 第三方系统用户ID| +| user_id | BIGINT(20) | YES | | | 用户ID | +| username | VARCHAR(32) | YES | | | 账号 | +| nickname | VARCHAR(64) | YES | | | 用户名 | +| avatar | VARCHAR(1000) | YES | | | 头像 | +| blog | VARCHAR(50) | YES | | | 应用主页 | +| company | VARCHAR(255) | YES | | | 公司名 | +| location | VARCHAR(255) | YES | | | 地址 | +| email | VARCHAR(255) | YES | | | 邮件 | +| remark | VARCHAR(255) | YES | | | 备注 | +| gender | VARCHAR(16) | YES | | | 性别 | +| source | VARCHAR(16) | YES | | | 来源 | + +Table: blade_user_web(用户平台拓展表) + +| Field | Type | Null | Key | Default | Remarks | +| ------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| user_id | BIGINT(20) | YES | | 0 | 用户ID | +| user_ext | VARCHAR(255) | YES | | | 用户拓展信息 | + +Table: blade_user_app(用户平台拓展表) + +| Field | Type | Null | Key | Default | Remarks | +| ------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| user_id | BIGINT(20) | YES | | 0 | 用户ID | +| user_ext | VARCHAR(255) | YES | | | 用户拓展信息 | + +Table: blade_user_other(用户平台拓展表) + +| Field | Type | Null | Key | Default | Remarks | +| ------- | ---------- | ---- | --- | ------- | ------- | +| id | BIGINT(20) | NO | PRI | | 主键 | +| user_id | BIGINT(19) | YES | | 0 | 用户ID | +| user_ext | VARCHAR(255) | YES | | | 用户拓展信息 | + +Table: blade_job_server (任务服务表) + +| Field | Type | Null | Key | Default | Remarks | +|-------------------|--------------|------|-----|---------|----------------------| +| id | BIGINT(20) | NO | PRI | | 主键 | +| job_server_name | VARCHAR(50) | YES | | NULL | 任务服务名称 | +| job_server_url | VARCHAR(255) | YES | | NULL | 任务服务器地址 | +| job_app_name | VARCHAR(20) | YES | | NULL | 任务应用名称 | +| job_app_password | VARCHAR(100) | YES | | NULL | 任务应用密码 | +| job_remark | VARCHAR(255) | YES | | NULL | 任务备注 | +| create_user | BIGINT(20) | YES | | NULL | 创建人 | +| create_dept | BIGINT(20) | YES | | NULL | 创建部门 | +| create_time | DATETIME | YES | | NULL | 创建时间 | +| update_user | BIGINT(20) | YES | | NULL | 修改人 | +| update_time | DATETIME | YES | | NULL | 修改时间 | +| status | INT(2) | YES | | NULL | 状态 | +| is_deleted | INT(2) | YES | | 0 | 是否已删除 | + +Table: blade_job_info (任务信息表) + +| Field | Type | Null | Key | Default | Remarks | +|------------------------|------------------------|------|-----|---------|-----------------------------------| +| id | BIGINT(20) | NO | PRI | | 主键 | +| job_server_id | BIGINT(20) | YES | | NULL | 任务服务ID | +| job_id | BIGINT(20) | YES | | NULL | 任务 ID | +| job_name | VARCHAR(50) | YES | | NULL | 任务名称 | +| job_description | VARCHAR(255) | YES | | NULL | 任务描述 | +| job_params | TEXT | YES | | | 任务参数 | +| time_expression_type | INT(2) | YES | | NULL | 时间表达式类型 | +| time_expression | VARCHAR(255) | YES | | NULL | 时间表达式 | +| execute_type | INT(2) | YES | | NULL | 执行类型 | +| processor_type | INT(2) | YES | | NULL | 处理器类型 | +| processor_info | VARCHAR(255) | YES | | NULL | 处理器参数 | +| max_instance_num | INT(11) | YES | | NULL | 最大实例数 | +| concurrency | INT(11) | YES | | NULL | 单机线程并发数 | +| instance_time_limit | BIGINT(20) | YES | | NULL | 任务实例运行时间限制 | +| instance_retry_num | INT(11) | YES | | NULL | 任务实例重试次数 | +| task_retry_num | INT(11) | YES | | NULL | Task 重试次数 | +| min_cpu_cores | DOUBLE | YES | | NULL | 最小可用 CPU 核心数 | +| min_memory_space | DOUBLE | YES | | NULL | 最小内存大小(GB) | +| min_disk_space | DOUBLE | YES | | NULL | 最小磁盘大小(GB) | +| designated_workers | VARCHAR(255) | YES | | NULL | 指定机器执行 | +| max_worker_count | INT(2) | YES | | NULL | 最大执行机器数量 | +| notify_user_ids | VARCHAR(2000) | YES | | NULL | 接收报警的用户 ID 列表 | +| enable | INT(2) | YES | | NULL | 是否启用该任务 | +| dispatch_strategy | INT(2) | YES | | NULL | 调度策略 | +| lifecycle | VARCHAR(255) | YES | | NULL | 生命周期 | +| alert_threshold | INT(2) | YES | | NULL | 错误阈值 | +| statistic_window_len | INT(2) | YES | | NULL | 统计的窗口长度(s) | +| silence_window_len | INT(2) | YES | | NULL | 沉默时间窗口(s) | +| log_type | INT(2) | YES | | NULL | 日志配置 | +| log_level | INT(2) | YES | | NULL | 日志级别 | +| extra | VARCHAR(255) | YES | | NULL | 扩展字段 | +| create_user | BIGINT(20) | YES | | NULL | 创建人 | +| create_dept | BIGINT(20) | YES | | NULL | 创建部门 | +| create_time | DATETIME | YES | | NULL | 创建时间 | +| update_user | BIGINT(20) | YES | | NULL | 修改人 | +| update_time | DATETIME | YES | | NULL | 修改时间 | +| status | INT(2) | YES | | NULL | 状态 | +| is_deleted | INT(2) | YES | | 0 | 是否已删除 | diff --git a/doc/sql/bladex/bladex.dameng.all.create.sql b/doc/sql/bladex/bladex.dameng.all.create.sql new file mode 100644 index 0000000..c28cb54 --- /dev/null +++ b/doc/sql/bladex/bladex.dameng.all.create.sql @@ -0,0 +1,5682 @@ +CREATE TABLE "BLADEX"."BLADE_USER_WEB" +( + "ID" BIGINT NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NULL, + "USER_EXT" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."BLADE_USER_OTHER" +( + "ID" BIGINT NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NULL, + "USER_EXT" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."BLADE_USER_OAUTH" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) NULL, + "UUID" VARCHAR(64) NULL, + "USER_ID" BIGINT NULL, + "USERNAME" VARCHAR(32) NULL, + "NICKNAME" VARCHAR(64) NULL, + "AVATAR" VARCHAR(1000) NULL, + "BLOG" VARCHAR(50) NULL, + "COMPANY" VARCHAR(255) NULL, + "LOCATION" VARCHAR(255) NULL, + "EMAIL" VARCHAR(255) NULL, + "REMARK" VARCHAR(255) NULL, + "GENDER" VARCHAR(16) NULL, + "SOURCE" VARCHAR(16) NULL +); + +CREATE TABLE "BLADEX"."BLADE_USER_DEPT" +( + "ID" BIGINT NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NULL, + "DEPT_ID" BIGINT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_USER_APP" +( + "ID" BIGINT NOT NULL, + "USER_ID" BIGINT DEFAULT 0 + NULL, + "USER_EXT" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."BLADE_USER" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "CODE" VARCHAR(12) NULL, + "USER_TYPE" INT NULL, + "ACCOUNT" VARCHAR(45) NULL, + "PASSWORD" VARCHAR(45) NULL, + "NAME" VARCHAR(20) NULL, + "REAL_NAME" VARCHAR(10) NULL, + "AVATAR" VARCHAR(500) NULL, + "EMAIL" VARCHAR(45) NULL, + "PHONE" VARCHAR(45) NULL, + "BIRTHDAY" TIMESTAMP(0) NULL, + "SEX" INT NULL, + "ROLE_ID" VARCHAR(1000) NULL, + "DEPT_ID" VARCHAR(1000) NULL, + "POST_ID" VARCHAR(1000) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_TOP_MENU_SETTING" +( + "ID" BIGINT NOT NULL, + "TOP_MENU_ID" BIGINT NULL, + "MENU_ID" BIGINT NULL +); + +CREATE TABLE "BLADEX"."BLADE_TOP_MENU" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) NULL, + "CODE" VARCHAR(255) NULL, + "NAME" VARCHAR(255) NULL, + "SOURCE" VARCHAR(255) NULL, + "SORT" INT NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_TENANT_PACKAGE" +( + "ID" BIGINT NOT NULL, + "PACKAGE_NAME" VARCHAR(50) NOT NULL, + "MENU_ID" VARCHAR(3000) NOT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_TENANT" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "TENANT_NAME" VARCHAR(50) NOT NULL, + "DOMAIN_URL" VARCHAR(255) NULL, + "BACKGROUND_URL" VARCHAR(1000) NULL, + "LINKMAN" VARCHAR(20) NULL, + "CONTACT_NUMBER" VARCHAR(20) NULL, + "ADDRESS" VARCHAR(255) NULL, + "ACCOUNT_NUMBER" INT DEFAULT (-1) + NULL, + "EXPIRE_TIME" TIMESTAMP(0) NULL, + "PACKAGE_ID" BIGINT NULL, + "DATASOURCE_ID" BIGINT NULL, + "LICENSE_KEY" VARCHAR(1000) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_SMS" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "CATEGORY" INT NULL, + "SMS_CODE" VARCHAR(32) NULL, + "TEMPLATE_ID" VARCHAR(64) NULL, + "ACCESS_KEY" VARCHAR(255) NULL, + "SECRET_KEY" VARCHAR(255) NULL, + "REGION_ID" VARCHAR(255) NULL, + "SIGN_NAME" VARCHAR(64) NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_SCOPE_DATA" +( + "ID" BIGINT NOT NULL, + "MENU_ID" BIGINT NULL, + "RESOURCE_CODE" VARCHAR(255) NULL, + "SCOPE_NAME" VARCHAR(255) NULL, + "SCOPE_FIELD" VARCHAR(255) NULL, + "SCOPE_CLASS" VARCHAR(500) NULL, + "SCOPE_COLUMN" VARCHAR(255) NULL, + "SCOPE_TYPE" INT NULL, + "SCOPE_VALUE" VARCHAR(2000) NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_SCOPE_API" +( + "ID" BIGINT NOT NULL, + "MENU_ID" BIGINT NULL, + "RESOURCE_CODE" VARCHAR(255) NULL, + "SCOPE_NAME" VARCHAR(255) NULL, + "SCOPE_PATH" VARCHAR(255) NULL, + "SCOPE_TYPE" INT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_ROLE_SCOPE" +( + "ID" BIGINT NOT NULL, + "SCOPE_CATEGORY" INT NULL, + "SCOPE_ID" BIGINT NULL, + "ROLE_ID" BIGINT NULL +); + +CREATE TABLE "BLADEX"."BLADE_ROLE_MENU" +( + "ID" BIGINT NOT NULL, + "MENU_ID" BIGINT NULL, + "ROLE_ID" BIGINT NULL +); + +CREATE TABLE "BLADEX"."BLADE_ROLE" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NULL, + "ROLE_NAME" VARCHAR(255) NULL, + "SORT" INT NULL, + "ROLE_ALIAS" VARCHAR(255) NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_REPORT_FILE" +( + "ID" BIGINT NOT NULL, + "NAME" VARCHAR(100) NOT NULL, + "CONTENT" BLOB NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_REGION" +( + "CODE" VARCHAR(12) NOT NULL, + "PARENT_CODE" VARCHAR(12) NULL, + "ANCESTORS" VARCHAR(255) NULL, + "NAME" VARCHAR(32) NULL, + "PROVINCE_CODE" VARCHAR(12) NULL, + "PROVINCE_NAME" VARCHAR(32) NULL, + "CITY_CODE" VARCHAR(12) NULL, + "CITY_NAME" VARCHAR(32) NULL, + "DISTRICT_CODE" VARCHAR(12) NULL, + "DISTRICT_NAME" VARCHAR(32) NULL, + "TOWN_CODE" VARCHAR(12) NULL, + "TOWN_NAME" VARCHAR(32) NULL, + "VILLAGE_CODE" VARCHAR(12) NULL, + "VILLAGE_NAME" VARCHAR(32) NULL, + "REGION_LEVEL" INT NULL, + "SORT" INT NULL, + "REMARK" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."BLADE_PROCESS_LEAVE" +( + "ID" BIGINT NOT NULL, + "PROCESS_DEFINITION_ID" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID" VARCHAR(64) NULL, + "START_TIME" TIMESTAMP(0) NULL, + "END_TIME" TIMESTAMP(0) NULL, + "REASON" VARCHAR(255) NULL, + "TASK_USER" VARCHAR(255) NULL, + "APPLY_TIME" TIMESTAMP(0) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_POST" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "CATEGORY" INT NULL, + "POST_CODE" VARCHAR(12) NULL, + "POST_NAME" VARCHAR(64) NULL, + "SORT" INT NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_PARAM" +( + "ID" BIGINT NOT NULL, + "PARAM_NAME" VARCHAR(255) NULL, + "PARAM_KEY" VARCHAR(255) NULL, + "PARAM_VALUE" VARCHAR(255) NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_OSS" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "CATEGORY" INT NULL, + "OSS_CODE" VARCHAR(32) NULL, + "ENDPOINT" VARCHAR(255) NULL, + "TRANSFORM_ENDPOINT" VARCHAR(255) NULL, + "ACCESS_KEY" VARCHAR(255) NULL, + "SECRET_KEY" VARCHAR(255) NULL, + "BUCKET_NAME" VARCHAR(255) NULL, + "APP_ID" VARCHAR(255) NULL, + "REGION" VARCHAR(255) NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_NOTICE" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "TITLE" VARCHAR(255) NULL, + "CATEGORY" INT NULL, + "RELEASE_TIME" TIMESTAMP(0) NULL, + "CONTENT" VARCHAR(2000) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE" +( + "ID" BIGINT IDENTITY(1,1) NOT NULL, + "MODEL_ID" BIGINT NULL, + "JDBC_NAME" VARCHAR(50) NULL, + "JDBC_TYPE" VARCHAR(20) NULL, + "JDBC_COMMENT" VARCHAR(500) NULL, + "PROPERTY_TYPE" VARCHAR(20) NULL, + "PROPERTY_ENTITY" VARCHAR(500) NULL, + "PROPERTY_NAME" VARCHAR(50) NULL, + "IS_LIST" INT NULL, + "IS_FORM" INT NULL, + "IS_ROW" INT NULL, + "COMPONENT_TYPE" VARCHAR(50) NULL, + "DICT_CODE" VARCHAR(50) NULL, + "IS_REQUIRED" INT NULL, + "IS_QUERY" INT NULL, + "QUERY_TYPE" VARCHAR(50) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_MODEL" +( + "ID" BIGINT IDENTITY(1,1) NOT NULL, + "DATASOURCE_ID" BIGINT NULL, + "MODEL_NAME" VARCHAR(50) NULL, + "MODEL_CODE" VARCHAR(50) NULL, + "MODEL_TABLE" VARCHAR(100) NULL, + "MODEL_CLASS" VARCHAR(100) NULL, + "MODEL_REMARK" VARCHAR(500) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_MENU" +( + "ID" BIGINT NOT NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NULL, + "CODE" VARCHAR(255) NULL, + "NAME" VARCHAR(255) NULL, + "ALIAS" VARCHAR(255) NULL, + "PATH" VARCHAR(255) NULL, + "SOURCE" VARCHAR(255) NULL, + "SORT" INT NULL, + "CATEGORY" INT NULL, + "ACTION" INT DEFAULT 0 + NULL, + "IS_OPEN" INT DEFAULT 1 + NULL, + "COMPONENT" VARCHAR(255) NULL, + "REMARK" VARCHAR(255) NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_LOG_USUAL" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "SERVICE_ID" VARCHAR(32) NULL, + "SERVER_HOST" VARCHAR(255) NULL, + "SERVER_IP" VARCHAR(255) NULL, + "ENV" VARCHAR(255) NULL, + "LOG_LEVEL" VARCHAR(10) NULL, + "LOG_ID" VARCHAR(100) NULL, + "LOG_DATA" TEXT NULL, + "METHOD" VARCHAR(10) NULL, + "REQUEST_URI" VARCHAR(255) NULL, + "REMOTE_IP" VARCHAR(255) NULL, + "METHOD_CLASS" VARCHAR(255) NULL, + "METHOD_NAME" VARCHAR(255) NULL, + "USER_AGENT" VARCHAR(1000) NULL, + "PARAMS" TEXT NULL, + "CREATE_BY" VARCHAR(64) NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL +); + +CREATE TABLE "BLADEX"."BLADE_LOG_ERROR" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "SERVICE_ID" VARCHAR(32) NULL, + "SERVER_HOST" VARCHAR(255) NULL, + "SERVER_IP" VARCHAR(255) NULL, + "ENV" VARCHAR(255) NULL, + "METHOD" VARCHAR(10) NULL, + "REQUEST_URI" VARCHAR(255) NULL, + "USER_AGENT" VARCHAR(1000) NULL, + "STACK_TRACE" TEXT NULL, + "EXCEPTION_NAME" VARCHAR(255) NULL, + "MESSAGE" TEXT NULL, + "LINE_NUMBER" INT NULL, + "REMOTE_IP" VARCHAR(255) NULL, + "METHOD_CLASS" VARCHAR(255) NULL, + "FILE_NAME" VARCHAR(1000) NULL, + "METHOD_NAME" VARCHAR(255) NULL, + "PARAMS" TEXT NULL, + "CREATE_BY" VARCHAR(64) NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL +); + +CREATE TABLE "BLADEX"."BLADE_LOG_API" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "SERVICE_ID" VARCHAR(32) NULL, + "SERVER_HOST" VARCHAR(255) NULL, + "SERVER_IP" VARCHAR(255) NULL, + "ENV" VARCHAR(255) NULL, + "TYPE" CHAR(1) DEFAULT '1' + NULL, + "TITLE" VARCHAR(255) DEFAULT '' + NULL, + "METHOD" VARCHAR(10) NULL, + "REQUEST_URI" VARCHAR(255) NULL, + "USER_AGENT" VARCHAR(1000) NULL, + "REMOTE_IP" VARCHAR(255) NULL, + "METHOD_CLASS" VARCHAR(255) NULL, + "METHOD_NAME" VARCHAR(255) NULL, + "PARAMS" TEXT NULL, + "TIME" VARCHAR(64) NULL, + "CREATE_BY" VARCHAR(64) NULL, + "CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP() + NULL +); + +CREATE TABLE "BLADEX"."BLADE_JOB_SERVER" +( + "ID" BIGINT NOT NULL, + "JOB_SERVER_NAME" VARCHAR(50) NULL, + "JOB_SERVER_URL" VARCHAR(255) NULL, + "JOB_APP_NAME" VARCHAR(20) NULL, + "JOB_APP_PASSWORD" VARCHAR(100) NULL, + "JOB_REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_JOB_INFO" +( + "ID" BIGINT NOT NULL, + "JOB_SERVER_ID" BIGINT NULL, + "JOB_ID" BIGINT NULL, + "JOB_NAME" VARCHAR(50) NULL, + "JOB_DESCRIPTION" VARCHAR(255) NULL, + "JOB_PARAMS" TEXT NULL, + "TIME_EXPRESSION_TYPE" INT NULL, + "TIME_EXPRESSION" VARCHAR(255) NULL, + "EXECUTE_TYPE" INT NULL, + "PROCESSOR_TYPE" INT NULL, + "PROCESSOR_INFO" VARCHAR(255) NULL, + "MAX_INSTANCE_NUM" INT NULL, + "CONCURRENCY" INT NULL, + "INSTANCE_TIME_LIMIT" BIGINT NULL, + "INSTANCE_RETRY_NUM" INT NULL, + "TASK_RETRY_NUM" INT NULL, + "MIN_CPU_CORES" DOUBLE NULL, + "MIN_MEMORY_SPACE" DOUBLE NULL, + "MIN_DISK_SPACE" DOUBLE NULL, + "DESIGNATED_WORKERS" VARCHAR(255) NULL, + "MAX_WORKER_COUNT" INT NULL, + "NOTIFY_USER_IDS" VARCHAR(2000) NULL, + "ENABLE" INT NULL, + "DISPATCH_STRATEGY" INT NULL, + "LIFECYCLE" VARCHAR(255) NULL, + "ALERT_THRESHOLD" INT NULL, + "STATISTIC_WINDOW_LEN" INT NULL, + "SILENCE_WINDOW_LEN" INT NULL, + "LOG_TYPE" INT NULL, + "LOG_LEVEL" INT NULL, + "EXTRA" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_DICT_BIZ" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NULL, + "CODE" VARCHAR(255) NULL, + "DICT_KEY" VARCHAR(255) NULL, + "DICT_VALUE" VARCHAR(255) NULL, + "SORT" INT NULL, + "REMARK" VARCHAR(255) NULL, + "IS_SEALED" INT DEFAULT 0 + NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_DICT" +( + "ID" BIGINT NOT NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NULL, + "CODE" VARCHAR(255) NULL, + "DICT_KEY" VARCHAR(255) NULL, + "DICT_VALUE" VARCHAR(255) NULL, + "SORT" INT NULL, + "REMARK" VARCHAR(255) NULL, + "IS_SEALED" INT DEFAULT 0 + NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_DEPT" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "PARENT_ID" BIGINT DEFAULT 0 + NULL, + "ANCESTORS" VARCHAR(2000) NULL, + "DEPT_CATEGORY" INT NULL, + "DEPT_NAME" VARCHAR(45) NULL, + "FULL_NAME" VARCHAR(45) NULL, + "SORT" INT NULL, + "REMARK" VARCHAR(255) NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_DATASOURCE" +( + "ID" BIGINT NOT NULL, + "CATEGORY" INT DEFAULT 1 + NULL, + "NAME" VARCHAR(100) NULL, + "DRIVER_CLASS" VARCHAR(100) NULL, + "URL" VARCHAR(500) NULL, + "USERNAME" VARCHAR(50) NULL, + "PASSWORD" VARCHAR(50) NULL, + "SHARDING_CONFIG" CLOB NULL, + "REMARK" VARCHAR(255) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +CREATE TABLE "BLADEX"."BLADE_CODE" +( + "ID" BIGINT NOT NULL, + "MODEL_ID" BIGINT NULL, + "SERVICE_NAME" VARCHAR(64) NULL, + "CODE_NAME" VARCHAR(64) NULL, + "TABLE_NAME" VARCHAR(64) NULL, + "TABLE_PREFIX" VARCHAR(64) NULL, + "PK_NAME" VARCHAR(32) NULL, + "PACKAGE_NAME" VARCHAR(500) NULL, + "TEMPLATE_TYPE" VARCHAR(32) NULL, + "AUTHOR" VARCHAR(32) NULL, + "SUB_MODEL_ID" VARCHAR(32) NULL, + "SUB_FK_ID" VARCHAR(32) NULL, + "TREE_ID" VARCHAR(32) NULL, + "TREE_PID" VARCHAR(32) NULL, + "TREE_NAME" VARCHAR(64) NULL, + "BASE_MODE" INT NULL, + "WRAP_MODE" INT NULL, + "FEIGN_MODE" INT NULL, + "CODE_STYLE" VARCHAR(32) NULL, + "API_PATH" VARCHAR(2000) NULL, + "WEB_PATH" VARCHAR(2000) NULL, + "IS_DELETED" INT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."BLADE_CLIENT" +( + "ID" BIGINT NOT NULL, + "CLIENT_ID" VARCHAR(48) NOT NULL, + "CLIENT_SECRET" VARCHAR(256) NOT NULL, + "RESOURCE_IDS" VARCHAR(256) NULL, + "SCOPE" VARCHAR(256) NOT NULL, + "AUTHORIZED_GRANT_TYPES" VARCHAR(256) NOT NULL, + "WEB_SERVER_REDIRECT_URI" VARCHAR(256) NULL, + "AUTHORITIES" VARCHAR(256) NULL, + "ACCESS_TOKEN_VALIDITY" INT NOT NULL, + "REFRESH_TOKEN_VALIDITY" INT NOT NULL, + "ADDITIONAL_INFORMATION" VARCHAR(3900) NULL, + "AUTOAPPROVE" VARCHAR(256) NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NOT NULL, + "IS_DELETED" INT NOT NULL +); + +CREATE TABLE "BLADEX"."BLADE_ATTACH" +( + "ID" BIGINT NOT NULL, + "TENANT_ID" VARCHAR(12) DEFAULT '000000' + NULL, + "LINK" VARCHAR(1000) NULL, + "DOMAIN_URL" VARCHAR(500) NULL, + "NAME" VARCHAR(500) NULL, + "ORIGINAL_NAME" VARCHAR(500) NULL, + "EXTENSION" VARCHAR(12) NULL, + "ATTACH_SIZE" BIGINT NULL, + "CREATE_USER" BIGINT NULL, + "CREATE_DEPT" BIGINT NULL, + "CREATE_TIME" TIMESTAMP(0) NULL, + "UPDATE_USER" BIGINT NULL, + "UPDATE_TIME" TIMESTAMP(0) NULL, + "STATUS" INT NULL, + "IS_DELETED" INT NULL +); + +ALTER TABLE "BLADEX"."BLADE_USER_WEB" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_USER_OTHER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_USER_OAUTH" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_USER_DEPT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_USER_APP" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_USER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_TOP_MENU_SETTING" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_TOP_MENU" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_TENANT_PACKAGE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_TENANT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_SMS" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_SCOPE_DATA" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_SCOPE_API" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_ROLE_SCOPE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_ROLE_MENU" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_ROLE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_REPORT_FILE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_REGION" ADD CONSTRAINT PRIMARY KEY("CODE") ; + +ALTER TABLE "BLADEX"."BLADE_PROCESS_LEAVE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_POST" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_PARAM" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_OSS" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_NOTICE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_MODEL" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_MENU" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_LOG_USUAL" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_LOG_ERROR" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_LOG_API" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_JOB_SERVER" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_JOB_INFO" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_DICT_BIZ" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_DICT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_DEPT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_DATASOURCE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_CODE" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_CLIENT" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."BLADE_ATTACH" ADD CONSTRAINT PRIMARY KEY("ID") ; + +COMMENT ON TABLE "BLADEX"."BLADE_USER_WEB" IS '用户平台拓展表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_WEB"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_WEB"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_WEB"."USER_EXT" IS '用户拓展信息'; + +COMMENT ON TABLE "BLADEX"."BLADE_USER_OTHER" IS '用户平台拓展表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OTHER"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OTHER"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OTHER"."USER_EXT" IS '用户拓展信息'; + +COMMENT ON TABLE "BLADEX"."BLADE_USER_OAUTH" IS '用户第三方认证表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."USERNAME" IS '账号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."NICKNAME" IS '用户名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."AVATAR" IS '头像'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."BLOG" IS '应用主页'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."COMPANY" IS '公司名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."LOCATION" IS '地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."EMAIL" IS '邮件'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."GENDER" IS '性别'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_OAUTH"."SOURCE" IS '来源'; + +COMMENT ON TABLE "BLADEX"."BLADE_USER_DEPT" IS '用户部门表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_DEPT"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_DEPT"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_DEPT"."DEPT_ID" IS '部门ID'; + +COMMENT ON TABLE "BLADEX"."BLADE_USER_APP" IS '用户平台拓展表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_APP"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_APP"."USER_ID" IS '用户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER_APP"."USER_EXT" IS '用户拓展信息'; + +COMMENT ON TABLE "BLADEX"."BLADE_USER" IS '用户表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."CODE" IS '用户编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."USER_TYPE" IS '用户平台'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."ACCOUNT" IS '账号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."PASSWORD" IS '密码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."NAME" IS '昵称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."REAL_NAME" IS '真名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."AVATAR" IS '头像'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."EMAIL" IS '邮箱'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."PHONE" IS '手机'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."BIRTHDAY" IS '生日'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."SEX" IS '性别'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."ROLE_ID" IS '角色id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."DEPT_ID" IS '部门id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."POST_ID" IS '岗位id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_USER"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_TOP_MENU_SETTING" IS '顶部菜单配置表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU_SETTING"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU_SETTING"."TOP_MENU_ID" IS '顶部菜单主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU_SETTING"."MENU_ID" IS '菜单主键'; + +COMMENT ON TABLE "BLADEX"."BLADE_TOP_MENU" IS '顶部菜单表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."TENANT_ID" IS '租户id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."CODE" IS '顶部菜单编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."NAME" IS '顶部菜单名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."SOURCE" IS '顶部菜单资源'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."SORT" IS '顶部菜单排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TOP_MENU"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_TENANT_PACKAGE" IS '租户产品表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."PACKAGE_NAME" IS '产品包名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."MENU_ID" IS '菜单ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT_PACKAGE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_TENANT" IS '租户表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."TENANT_NAME" IS '租户名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."DOMAIN_URL" IS '域名地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."BACKGROUND_URL" IS '系统背景'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."LINKMAN" IS '联系人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."CONTACT_NUMBER" IS '联系电话'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."ADDRESS" IS '联系地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."ACCOUNT_NUMBER" IS '账号额度'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."EXPIRE_TIME" IS '过期时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."PACKAGE_ID" IS '产品包ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."DATASOURCE_ID" IS '数据源ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."LICENSE_KEY" IS '授权码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_TENANT"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_SMS" IS '短信配置表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."CATEGORY" IS '分类'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."SMS_CODE" IS '资源编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."TEMPLATE_ID" IS '模板ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."ACCESS_KEY" IS 'accessKey'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."SECRET_KEY" IS 'secretKey'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."REGION_ID" IS 'regionId'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."SIGN_NAME" IS '短信签名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SMS"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_SCOPE_DATA" IS '数据权限表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."MENU_ID" IS '菜单主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."RESOURCE_CODE" IS '资源编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."SCOPE_NAME" IS '数据权限名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."SCOPE_FIELD" IS '数据权限字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."SCOPE_CLASS" IS '数据权限类名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."SCOPE_COLUMN" IS '数据权限字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."SCOPE_TYPE" IS '数据权限类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."SCOPE_VALUE" IS '数据权限值域'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."REMARK" IS '数据权限备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_DATA"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_SCOPE_API" IS '接口权限表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."MENU_ID" IS '菜单主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."RESOURCE_CODE" IS '资源编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."SCOPE_NAME" IS '接口权限名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."SCOPE_PATH" IS '接口权限地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."SCOPE_TYPE" IS '接口权限类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."REMARK" IS '接口权限备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_SCOPE_API"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_ROLE_SCOPE" IS '角色数据权限关联表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_SCOPE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_SCOPE"."SCOPE_CATEGORY" IS '权限类型(1:数据权限、2:接口权限)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_SCOPE"."SCOPE_ID" IS '权限id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_SCOPE"."ROLE_ID" IS '角色id'; + +COMMENT ON TABLE "BLADEX"."BLADE_ROLE_MENU" IS '角色菜单关联表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_MENU"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_MENU"."MENU_ID" IS '菜单id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE_MENU"."ROLE_ID" IS '角色id'; + +COMMENT ON TABLE "BLADEX"."BLADE_ROLE" IS '角色表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."PARENT_ID" IS '父主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."ROLE_NAME" IS '角色名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."SORT" IS '排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."ROLE_ALIAS" IS '角色别名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ROLE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_REPORT_FILE" IS '报表文件表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REPORT_FILE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REPORT_FILE"."NAME" IS '文件名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REPORT_FILE"."CONTENT" IS '文件内容'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REPORT_FILE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REPORT_FILE"."UPDATE_TIME" IS '更新时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REPORT_FILE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_REGION" IS '行政区划表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."CODE" IS '区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."PARENT_CODE" IS '父区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."ANCESTORS" IS '祖区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."NAME" IS '区划名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."PROVINCE_CODE" IS '省级区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."PROVINCE_NAME" IS '省级名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."CITY_CODE" IS '市级区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."CITY_NAME" IS '市级名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."DISTRICT_CODE" IS '区级区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."DISTRICT_NAME" IS '区级名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."TOWN_CODE" IS '镇级区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."TOWN_NAME" IS '镇级名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."VILLAGE_CODE" IS '村级区划编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."VILLAGE_NAME" IS '村级名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."REGION_LEVEL" IS '层级'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."SORT" IS '排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_REGION"."REMARK" IS '备注'; + +COMMENT ON TABLE "BLADEX"."BLADE_PROCESS_LEAVE" IS '流程请假业务表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."ID" IS '编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."PROCESS_DEFINITION_ID" IS '流程定义主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."PROCESS_INSTANCE_ID" IS '流程实例主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."START_TIME" IS '开始时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."END_TIME" IS '结束时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."REASON" IS '请假理由'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."TASK_USER" IS '第一级审批人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."APPLY_TIME" IS '申请时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PROCESS_LEAVE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_POST" IS '岗位表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."CATEGORY" IS '岗位类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."POST_CODE" IS '岗位编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."POST_NAME" IS '岗位名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."SORT" IS '岗位排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."REMARK" IS '岗位描述'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_POST"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_PARAM" IS '参数表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."PARAM_NAME" IS '参数名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."PARAM_KEY" IS '参数键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."PARAM_VALUE" IS '参数值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_PARAM"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_OSS" IS '对象存储表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."CATEGORY" IS '分类'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."OSS_CODE" IS '资源编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."ENDPOINT" IS '资源地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."TRANSFORM_ENDPOINT" IS '外网资源地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."ACCESS_KEY" IS 'accessKey'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."SECRET_KEY" IS 'secretKey'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."BUCKET_NAME" IS '空间名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."APP_ID" IS '应用ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."REGION" IS '地域简称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_OSS"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_NOTICE" IS '通知公告表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."TITLE" IS '标题'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."CATEGORY" IS '类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."RELEASE_TIME" IS '发布时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."CONTENT" IS '内容'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_NOTICE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_MODEL_PROTOTYPE" IS '数据原型表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."JDBC_COMMENT" IS '注释说明'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询配置'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_MODEL" IS '数据模型表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_NAME" IS '模型名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_CODE" IS '模型编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_TABLE" IS '物理表名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_CLASS" IS '模型类名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."MODEL_REMARK" IS '模型备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MODEL"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_MENU" IS '菜单表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."PARENT_ID" IS '父级菜单'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."CODE" IS '菜单编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."NAME" IS '菜单名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."ALIAS" IS '菜单别名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."PATH" IS '请求地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."SOURCE" IS '菜单资源'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."SORT" IS '排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."CATEGORY" IS '菜单类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."ACTION" IS '操作按钮类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."IS_OPEN" IS '是否打开新页面'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."COMPONENT" IS '组件地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_MENU"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_LOG_USUAL" IS '通用日志表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."ID" IS '编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."SERVICE_ID" IS '服务ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."SERVER_HOST" IS '服务器名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."SERVER_IP" IS '服务器IP地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."ENV" IS '系统环境'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."LOG_LEVEL" IS '日志级别'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."LOG_ID" IS '日志业务id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."LOG_DATA" IS '日志数据'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."METHOD" IS '操作方式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."REQUEST_URI" IS '请求URI'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."REMOTE_IP" IS '操作IP地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."METHOD_CLASS" IS '方法类'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."METHOD_NAME" IS '方法名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."USER_AGENT" IS '用户代理'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."PARAMS" IS '操作提交的数据'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."CREATE_BY" IS '创建者'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_USUAL"."CREATE_TIME" IS '创建时间'; + +COMMENT ON TABLE "BLADEX"."BLADE_LOG_ERROR" IS '错误日志表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."ID" IS '编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."SERVICE_ID" IS '服务ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."SERVER_HOST" IS '服务器名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."SERVER_IP" IS '服务器IP地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."ENV" IS '系统环境'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."METHOD" IS '操作方式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."REQUEST_URI" IS '请求URI'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."USER_AGENT" IS '用户代理'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."STACK_TRACE" IS '堆栈'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."EXCEPTION_NAME" IS '异常名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."MESSAGE" IS '异常信息'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."LINE_NUMBER" IS '错误行数'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."REMOTE_IP" IS '操作IP地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."METHOD_CLASS" IS '方法类'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."FILE_NAME" IS '文件名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."METHOD_NAME" IS '方法名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."PARAMS" IS '操作提交的数据'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."CREATE_BY" IS '创建者'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_ERROR"."CREATE_TIME" IS '创建时间'; + +COMMENT ON TABLE "BLADEX"."BLADE_LOG_API" IS '接口日志表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."ID" IS '编号'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."SERVICE_ID" IS '服务ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."SERVER_HOST" IS '服务器名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."SERVER_IP" IS '服务器IP地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."ENV" IS '服务器环境'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."TYPE" IS '日志类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."TITLE" IS '日志标题'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."METHOD" IS '操作方式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."REQUEST_URI" IS '请求URI'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."USER_AGENT" IS '用户代理'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."REMOTE_IP" IS '操作IP地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."METHOD_CLASS" IS '方法类'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."METHOD_NAME" IS '方法名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."PARAMS" IS '操作提交的数据'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."TIME" IS '执行时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."CREATE_BY" IS '创建者'; + +COMMENT ON COLUMN "BLADEX"."BLADE_LOG_API"."CREATE_TIME" IS '创建时间'; + +COMMENT ON TABLE "BLADEX"."BLADE_JOB_SERVER" IS '任务服务表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_SERVER_NAME" IS '任务服务名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_SERVER_URL" IS '任务服务器地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_APP_NAME" IS '任务应用名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_APP_PASSWORD" IS '任务应用密码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_REMARK" IS '任务备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_JOB_INFO" IS '日志信息表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_SERVER_ID" IS '任务服务ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_ID" IS '任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_NAME" IS '任务名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_DESCRIPTION" IS '任务描述'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_PARAMS" IS '任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."TIME_EXPRESSION_TYPE" IS '时间表达式类型,枚举值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."TIME_EXPRESSION" IS '时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."EXECUTE_TYPE" IS '执行类型,枚举值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."PROCESSOR_TYPE" IS '处理器类型,枚举值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."PROCESSOR_INFO" IS '处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MAX_INSTANCE_NUM" IS '最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CONCURRENCY" IS '单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."INSTANCE_TIME_LIMIT" IS '任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."INSTANCE_RETRY_NUM" IS 'instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."TASK_RETRY_NUM" IS 'taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MIN_CPU_CORES" IS 'minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MIN_MEMORY_SPACE" IS '最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MIN_DISK_SPACE" IS '最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."DESIGNATED_WORKERS" IS '指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MAX_WORKER_COUNT" IS '最大执行机器数量,限定调动执行的机器数量,0代表无限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."NOTIFY_USER_IDS" IS '接收报警的用户 ID 列表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."ENABLE" IS '是否启用该任务,未启用的任务不会被调度'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."DISPATCH_STRATEGY" IS '调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."LIFECYCLE" IS 'lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."ALERT_THRESHOLD" IS '错误阈值,0代表不限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."STATISTIC_WINDOW_LEN" IS '统计的窗口长度(s),0代表不限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."SILENCE_WINDOW_LEN" IS '沉默时间窗口(s),0代表不限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."LOG_TYPE" IS '日志配置'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."LOG_LEVEL" IS '日志级别'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."EXTRA" IS '扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_DICT_BIZ" IS '业务字典表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."PARENT_ID" IS '父主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."CODE" IS '字典码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."DICT_KEY" IS '字典值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."DICT_VALUE" IS '字典名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."SORT" IS '排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."REMARK" IS '字典备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."IS_SEALED" IS '是否已封存'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT_BIZ"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_DICT" IS '字典表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."PARENT_ID" IS '父主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."CODE" IS '字典码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."DICT_KEY" IS '字典值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."DICT_VALUE" IS '字典名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."SORT" IS '排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."REMARK" IS '字典备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."IS_SEALED" IS '是否已封存'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DICT"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_DEPT" IS '机构表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."PARENT_ID" IS '父主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."ANCESTORS" IS '祖级列表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."DEPT_CATEGORY" IS '部门类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."DEPT_NAME" IS '部门名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."FULL_NAME" IS '部门全称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."SORT" IS '排序'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DEPT"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_DATASOURCE" IS '数据源配置表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."CATEGORY" IS '数据源类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."NAME" IS '名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."DRIVER_CLASS" IS '驱动类'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."URL" IS '连接地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."USERNAME" IS '用户名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."PASSWORD" IS '密码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."SHARDING_CONFIG" IS '分库分表配置'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."REMARK" IS '备注'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_DATASOURCE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_CODE" IS '代码生成表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."MODEL_ID" IS '数据模型主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SERVICE_NAME" IS '服务名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."CODE_NAME" IS '模块名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TABLE_NAME" IS '表名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TABLE_PREFIX" IS '表前缀'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."PK_NAME" IS '主键名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."PACKAGE_NAME" IS '后端包名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."AUTHOR" IS '作者信息'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_ID" IS '树主键字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_PID" IS '树父主键字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."TREE_NAME" IS '树名称字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."BASE_MODE" IS '基础业务模式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."WRAP_MODE" IS '包装器模式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."FEIGN_MODE" IS '远程调用模式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."CODE_STYLE" IS '代码风格'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."API_PATH" IS '后端路径'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."WEB_PATH" IS '前端路径'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CODE"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_CLIENT" IS '客户端表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."CLIENT_ID" IS '客户端id'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."CLIENT_SECRET" IS '客户端密钥'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."RESOURCE_IDS" IS '资源集合'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."SCOPE" IS '授权范围'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."WEB_SERVER_REDIRECT_URI" IS '回调地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."AUTHORITIES" IS '权限'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."ACCESS_TOKEN_VALIDITY" IS '令牌过期秒数'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."REFRESH_TOKEN_VALIDITY" IS '刷新令牌过期秒数'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."ADDITIONAL_INFORMATION" IS '附加说明'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."AUTOAPPROVE" IS '自动授权'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_CLIENT"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_ATTACH" IS '附件表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."TENANT_ID" IS '租户ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."LINK" IS '附件地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."DOMAIN_URL" IS '附件域名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."NAME" IS '附件名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."ORIGINAL_NAME" IS '附件原名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."EXTENSION" IS '附件拓展名'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."ATTACH_SIZE" IS '附件大小'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_ATTACH"."IS_DELETED" IS '是否已删除'; + +INSERT INTO "BLADEX"."BLADE_CLIENT"("ID","CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598811738675201,'sword','sword_secret',null,'all','authorization_code,password,refresh_token,captcha,social,register','http://localhost:8888',null,3600,604800,null,null,1123598815738675201,1123598813738675201,'2019-03-24 10:40:55.000000',1123598815738675201,'2019-03-24 10:40:59.000000',1,0); +INSERT INTO "BLADEX"."BLADE_CLIENT"("ID","CLIENT_ID","CLIENT_SECRET","RESOURCE_IDS","SCOPE","AUTHORIZED_GRANT_TYPES","WEB_SERVER_REDIRECT_URI","AUTHORITIES","ACCESS_TOKEN_VALIDITY","REFRESH_TOKEN_VALIDITY","ADDITIONAL_INFORMATION","AUTOAPPROVE","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598811738675202,'saber','saber_secret',null,'all','authorization_code,password,refresh_token,captcha,social,register','http://localhost:1888',null,3600,604800,null,null,1123598815738675201,1123598813738675201,'2019-03-24 10:42:29.000000',1123598815738675201,'2019-03-24 10:42:32.000000',1,0); +INSERT INTO "BLADEX"."BLADE_CLIENT"("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES (1123598811738675203, 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', '2024-04-01 00:00:00', '1123598815738675201', '2024-04-01 00:00:00', '1', '0'); +INSERT INTO "BLADEX"."BLADE_CLIENT"("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES (1123598811738675204, 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', '2024-04-01 00:00:00', '1123598815738675201', '2024-04-01 00:00:00', '1', '0'); + +INSERT INTO "BLADEX"."BLADE_DATASOURCE"("ID","CATEGORY","NAME","DRIVER_CLASS","URL","USERNAME","PASSWORD","SHARDING_CONFIG","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1161483357481541634,1,'mysql','com.mysql.cj.jdbc.Driver','jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true','root','root',null,'mysql',1123598821738675201,1123598813738675201,'2020-08-08 12:20:06.000000',1123598821738675201,'2020-08-08 12:20:06.000000',1,0); +INSERT INTO "BLADEX"."BLADE_DATASOURCE"("ID","CATEGORY","NAME","DRIVER_CLASS","URL","USERNAME","PASSWORD","SHARDING_CONFIG","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1161483504353484802,1,'postgresql','org.postgresql.Driver','jdbc:postgresql://127.0.0.1:5432/bladex','postgres','123456',null,'postgresql',1123598821738675201,1123598813738675201,'2020-08-08 12:20:02.000000',1123598821738675201,'2020-08-08 12:20:02.000000',1,0); +INSERT INTO "BLADEX"."BLADE_DATASOURCE"("ID","CATEGORY","NAME","DRIVER_CLASS","URL","USERNAME","PASSWORD","SHARDING_CONFIG","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1161483594023510018,1,'oracle','oracle.jdbc.OracleDriver','jdbc:oracle:thin:@127.0.0.1:1521:orcl','BLADEX','BLADEX',null,'oracle',1123598821738675201,1123598813738675201,'2020-08-08 12:20:03.000000',1123598821738675201,'2020-08-08 12:20:03.000000',1,0); +INSERT INTO "BLADEX"."BLADE_DATASOURCE"("ID","CATEGORY","NAME","DRIVER_CLASS","URL","USERNAME","PASSWORD","SHARDING_CONFIG","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1161483594023510020,1,'sqlserver','com.microsoft.sqlserver.jdbc.SQLServerDriver','jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex','bladex','bladex',null,'sqlserver',1123598821738675201,1123598813738675201,'2020-08-08 12:20:03.000000',1123598821738675201,'2020-08-08 12:20:03.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_DEPT"("ID","TENANT_ID","PARENT_ID","ANCESTORS","DEPT_CATEGORY","DEPT_NAME","FULL_NAME","SORT","REMARK","IS_DELETED") VALUES(1123598813738675201,'000000',0,'0',1,'布雷德科技','上海布雷德科技有限公司',1,null,0); +INSERT INTO "BLADEX"."BLADE_DEPT"("ID","TENANT_ID","PARENT_ID","ANCESTORS","DEPT_CATEGORY","DEPT_NAME","FULL_NAME","SORT","REMARK","IS_DELETED") VALUES(1123598813738675202,'000000',1123598813738675201,'0,1123598813738675201',1,'常州布雷德','常州布雷德科技有限公司',1,null,0); +INSERT INTO "BLADEX"."BLADE_DEPT"("ID","TENANT_ID","PARENT_ID","ANCESTORS","DEPT_CATEGORY","DEPT_NAME","FULL_NAME","SORT","REMARK","IS_DELETED") VALUES(1123598813738675203,'000000',1123598813738675201,'0,1123598813738675201',1,'苏州布雷德','苏州布雷德科技有限公司',1,null,0); + +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675201,0,'sex','-1','性别',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675202,1123598814738675201,'sex','1','男',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675203,1123598814738675201,'sex','2','女',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675204,0,'notice','-1','通知类型',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675205,1123598814738675204,'notice','1','发布通知',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675206,1123598814738675204,'notice','2','批转通知',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675207,1123598814738675204,'notice','3','转发通知',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675208,1123598814738675204,'notice','4','指示通知',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675209,1123598814738675204,'notice','5','任免通知',5,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675210,1123598814738675204,'notice','6','事务通知',6,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675211,0,'menu_category','-1','菜单类型',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675212,1123598814738675211,'menu_category','1','菜单',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675213,1123598814738675211,'menu_category','2','按钮',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675214,0,'button_func','-1','按钮功能',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675215,1123598814738675214,'button_func','1','工具栏',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675216,1123598814738675214,'button_func','2','操作栏',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675217,1123598814738675214,'button_func','3','工具操作栏',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675218,0,'yes_no','-1','是否',5,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675219,1123598814738675218,'yes_no','1','否',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675220,1123598814738675218,'yes_no','2','是',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675221,0,'flow','-1','流程类型',5,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675222,1123598814738675221,'flow','1','请假流程',1,'leave',0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675223,1123598814738675221,'flow','2','报销流程',2,'expense',0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675227,0,'org_category','-1','机构类型',7,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675228,1123598814738675227,'org_category','1','公司',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675229,1123598814738675227,'org_category','2','部门',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675230,1123598814738675227,'org_category','3','小组',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675231,0,'data_scope_type','-1','数据权限',8,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675232,1123598814738675231,'data_scope_type','1','全部可见',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675233,1123598814738675231,'data_scope_type','2','本人可见',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675234,1123598814738675231,'data_scope_type','3','所在机构可见',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675235,1123598814738675231,'data_scope_type','4','所在机构及子级可见',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675236,1123598814738675231,'data_scope_type','5','自定义',5,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675237,0,'api_scope_type','-1','接口权限',10,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675238,1123598814738675237,'api_scope_type','1','系统接口',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675239,1123598814738675237,'api_scope_type','2','业务接口',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675240,0,'scope_category','-1','权限类型',10,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675241,1123598814738675240,'scope_category','1','数据权限',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738675242,1123598814738675240,'scope_category','2','接口权限',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676224,0,'oss','-1','对象存储类型',6,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676225,1123598814738676224,'oss','1','minio',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676226,1123598814738676224,'oss','2','七牛云',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676227,1123598814738676224,'oss','3','阿里云',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676228,1123598814738676224,'oss','4','腾讯云',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676229,1123598814738676224,'oss','5','华为云',5,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738676230,1123598814738676224,'oss','6','amazon s3',6,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738677220,0,'sms','-1','短信服务类型',11,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738677221,1123598814738677220,'sms','1','云片',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738677222,1123598814738677220,'sms','2','七牛云',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738677223,1123598814738677220,'sms','3','阿里云',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738677224,1123598814738677220,'sms','4','腾讯云',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777220,0,'post_category','-1','岗位类型',12,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777221,1123598814738777220,'post_category','1','高层',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777222,1123598814738777220,'post_category','2','中层',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777223,1123598814738777220,'post_category','3','基层',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777224,1123598814738777220,'post_category','4','其他',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777230,0,'region','-1','行政区划',13,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777231,1123598814738777230,'region','0','国家',0,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777232,1123598814738777230,'region','1','省份/直辖市',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777233,1123598814738777230,'region','2','地市',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777234,1123598814738777230,'region','3','区县',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777235,1123598814738777230,'region','4','乡镇',4,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738777236,1123598814738777230,'region','5','村委',5,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738778200,0,'user_type','-1','用户平台',14,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738778201,1123598814738778200,'user_type','1','WEB',1,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738778202,1123598814738778200,'user_type','2','APP',2,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1123598814738778203,1123598814738778200,'user_type','3','OTHER',3,null,0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1735215689272508418,0,'datasource_category','-1','数据源类型',16,'',0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1735215870613241857,1735215689272508418,'datasource_category','1','jdbc',1,'',0,0); +INSERT INTO "BLADEX"."BLADE_DICT"("ID","PARENT_ID","CODE","DICT_KEY","DICT_VALUE","SORT","REMARK","IS_SEALED","IS_DELETED") VALUES(1735215901546233858,1735215689272508418,'datasource_category','2','sharding',2,'',0,0); + +INSERT INTO "BLADEX"."BLADE_JOB_SERVER"("ID","JOB_SERVER_NAME","JOB_SERVER_URL","JOB_APP_NAME","JOB_APP_PASSWORD","JOB_REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1741512022505590785,'任务调度服务器','127.0.0.1:7700','blade-job','blade-job','基础服务',1123598821738675201,1123598813738675201,'2024-01-01 01:29:57.000000',1123598821738675201,'2024-01-01 01:29:57.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675201,0,'desk','工作台','menu','/desk','iconfont iconicon_airplay',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675202,1123598815738675201,'notice','通知公告','menu','/desk/notice','iconfont iconicon_sms',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675203,0,'system','系统管理','menu','/system','iconfont iconicon_setting',99,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675204,1123598815738675203,'user','用户管理','menu','/system/user','iconfont iconicon_principal',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675205,1123598815738675203,'dept','机构管理','menu','/system/dept','iconfont iconicon_group',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675206,1123598815738675203,'dict','系统字典','menu','/system/dict','iconfont iconicon_addresslist',4,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675207,1123598815738675203,'menu','菜单管理','menu','/system/menu','iconfont iconicon_subordinate',6,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675208,1123598815738675203,'topmenu','顶部菜单','menu','/system/topmenu','iconfont icon-canshu',7,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675209,1123598815738675203,'param','参数管理','menu','/system/param','iconfont iconicon_community_line',8,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675210,0,'monitor','系统监控','menu','/monitor','iconfont icon-yanzhengma',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675211,1123598815738675210,'doc','接口文档','menu','http://localhost/doc.html','iconfont iconicon_study',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675212,1123598815738675210,'admin','服务治理','menu','http://localhost:7002','iconfont icon-canshu',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675213,1123598815738675210,'log','日志管理','menu','/monitor/log','iconfont iconicon_doc',8,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675214,1123598815738675213,'log_usual','通用日志','menu','/monitor/log/usual',null,1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675215,1123598815738675213,'log_api','接口日志','menu','/monitor/log/api',null,2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675216,1123598815738675213,'log_error','错误日志','menu','/monitor/log/error',null,3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675217,0,'tool','研发工具','menu','/tool','iconfont icon-wxbgongju',4,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675218,1123598815738675217,'code','代码生成','menu','/tool/code','iconfont iconicon_savememo',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675219,1123598815738675202,'notice_add','新增','add','/desk/notice/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675220,1123598815738675202,'notice_edit','修改','edit','/desk/notice/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675221,1123598815738675202,'notice_delete','删除','delete','/api/blade-desk/notice/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675222,1123598815738675202,'notice_view','查看','view','/desk/notice/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675223,1123598815738675204,'user_add','新增','add','/system/user/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675224,1123598815738675204,'user_edit','修改','edit','/system/user/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675225,1123598815738675204,'user_delete','删除','delete','/api/blade-system/user/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675226,1123598815738675204,'user_role','角色配置','role',null,'user-add',4,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675227,1123598815738675204,'user_reset','密码重置','reset-password','/api/blade-system/user/reset-password','retweet',5,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675228,1123598815738675204,'user_view','查看','view','/system/user/view','file-text',6,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675229,1123598815738675205,'dept_add','新增','add','/system/dept/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675230,1123598815738675205,'dept_edit','修改','edit','/system/dept/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675231,1123598815738675205,'dept_delete','删除','delete','/api/blade-system/dept/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675232,1123598815738675205,'dept_view','查看','view','/system/dept/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675233,1123598815738675206,'dict_add','新增','add','/system/dict/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675234,1123598815738675206,'dict_edit','修改','edit','/system/dict/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675235,1123598815738675206,'dict_delete','删除','delete','/api/blade-system/dict/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675236,1123598815738675206,'dict_view','查看','view','/system/dict/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675237,1123598815738675207,'menu_add','新增','add','/system/menu/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675238,1123598815738675207,'menu_edit','修改','edit','/system/menu/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675239,1123598815738675207,'menu_delete','删除','delete','/api/blade-system/menu/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675240,1123598815738675207,'menu_view','查看','view','/system/menu/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675241,1123598815738675308,'role_add','新增','add','/authority/role/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675242,1123598815738675308,'role_edit','修改','edit','/authority/role/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675243,1123598815738675308,'role_delete','删除','delete','/api/blade-system/role/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675244,1123598815738675308,'role_view','查看','view','/authority/role/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675245,1123598815738675209,'param_add','新增','add','/system/param/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675246,1123598815738675209,'param_edit','修改','edit','/system/param/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675247,1123598815738675209,'param_delete','删除','delete','/api/blade-system/param/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675248,1123598815738675209,'param_view','查看','view','/system/param/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675249,1123598815738675214,'log_usual_view','查看','view','/monitor/log/usual/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675250,1123598815738675215,'log_api_view','查看','view','/monitor/log/api/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675251,1123598815738675216,'log_error_view','查看','view','/monitor/log/error/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675252,1123598815738675218,'code_add','新增','add','/tool/code/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675253,1123598815738675218,'code_edit','修改','edit','/tool/code/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675254,1123598815738675218,'code_delete','删除','delete','/api/blade-system/code/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675255,1123598815738675218,'code_view','查看','view','/tool/code/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675256,1123598815738675203,'tenant','租户管理','menu','/system/tenant','iconfont icon-quanxian',9,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675257,1123598815738675256,'tenant_add','新增','add','/system/tenant/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675258,1123598815738675256,'tenant_edit','修改','edit','/system/tenant/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675259,1123598815738675256,'tenant_delete','删除','delete','/api/blade-system/tenant/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675260,1123598815738675256,'tenant_view','查看','view','/system/tenant/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675261,1123598815738675203,'client','应用管理','menu','/system/client','iconfont iconicon_mobilephone',10,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675262,1123598815738675261,'client_add','新增','add','/system/client/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675263,1123598815738675261,'client_edit','修改','edit','/system/client/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675264,1123598815738675261,'client_delete','删除','delete','/api/blade-system/client/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675265,1123598815738675261,'client_view','查看','view','/system/client/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675266,0,'flow','流程管理','menu','/flow','iconfont iconicon_send',5,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675267,1123598815738675266,'flow_model','模型管理','menu','/flow/model','iconfont iconicon_discovery',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675268,1123598815738675267,'flow_model_create','创建','create','','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675269,1123598815738675267,'flow_model_update','编辑','update','','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675270,1123598815738675267,'flow_model_deploy','部署','deploy','','cloud-upload',3,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675271,1123598815738675267,'flow_model_download','下载','download','','download',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675272,1123598815738675267,'flow_model_delete','删除','delete','/api/blade-flow/model/remove','delete',5,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675273,1123598815738675266,'flow_deploy','流程部署','menu','/flow/deploy','iconfont iconicon_cspace',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675274,1123598815738675266,'flow_manager','流程管理','menu','/flow/manager','iconfont iconicon_cloud_history',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675275,1123598815738675274,'flow_manager_state','变更状态','state','','plus',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675276,1123598815738675274,'flow_manager_image','流程图','image','','image',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675277,1123598815738675274,'flow_manager_remove','删除','remove','','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675278,1123598815738675266,'flow_follow','流程跟踪','menu','/flow/follow','iconfont iconicon_GPS',4,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675279,1123598815738675278,'flow_follow_delete','删除','remove','','remove',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675280,0,'work','我的事务','menu','/work','iconfont iconicon_notice',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675281,1123598815738675280,'work_start','发起事务','menu','/work/start','iconfont iconicon_compile',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675282,1123598815738675281,'work_start_flow','发起','flow','','flow',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675283,1123598815738675281,'work_start_image','流程图','image','','image',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675284,1123598815738675280,'work_claim','待签事务','menu','/work/claim','iconfont iconicon_ding',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675285,1123598815738675284,'work_claim_sign','签收','sign','','sign',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675286,1123598815738675284,'work_claim_detail','详情','detail','','detail',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675287,1123598815738675284,'work_claim_follow','跟踪','follow','','follow',3,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675288,1123598815738675280,'work_todo','待办事务','menu','/work/todo','iconfont iconicon_savememo',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675289,1123598815738675288,'work_todo_handle','办理','handle','','handle',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675290,1123598815738675288,'work_todo_detail','详情','detail','','detail',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675291,1123598815738675288,'work_todo_follow','跟踪','follow','','follow',3,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675292,1123598815738675280,'work_send','已发事务','menu','/work/send','iconfont iconicon_doc',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675293,1123598815738675292,'work_send_detail','详情','detail','','detail',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675294,1123598815738675292,'work_send_follow','跟踪','follow','','follow',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675295,1123598815738675280,'work_done','办结事务','menu','/work/done','iconfont iconicon_dispose',4,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675296,1123598815738675295,'work_done_detail','详情','detail','','detail',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675297,1123598815738675295,'work_done_follow','跟踪','follow','','follow',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675298,0,'resource','资源管理','menu','/resource','iconfont iconicon_coinpurse_line',6,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675299,1123598815738675298,'oss','对象存储','menu','/resource/oss','iconfont iconicon_subordinate',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675301,1123598815738675299,'oss_add','新增','add','/resource/oss/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675302,1123598815738675299,'oss_edit','修改','edit','/resource/oss/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675303,1123598815738675299,'oss_delete','删除','delete','/api/blade-resource/oss/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675304,1123598815738675299,'oss_view','查看','view','/resource/oss/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675305,1123598815738675299,'oss_enable','启用','enable','/api/blade-resource/oss/enable','key',5,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675307,0,'authority','权限管理','menu','/authority','iconfont icon-bofangqi-suoping',98,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675308,1123598815738675307,'role','角色管理','menu','/authority/role','iconfont iconicon_boss',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675309,1123598815738675307,'data_scope','数据权限','menu','/authority/datascope','iconfont icon-shujuzhanshi2',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675310,1123598815738675309,'data_scope_setting','权限配置','setting',null,'setting',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675311,1123598815738675307,'api_scope','接口权限','menu','/authority/apiscope','iconfont icon-iconset0216',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675312,1123598815738675311,'api_scope_setting','权限配置','setting',null,'setting',1,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675313,1123598815738675208,'topmenu_add','新增','add','/system/topmenu/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675314,1123598815738675208,'topmenu_edit','修改','edit','/system/topmenu/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675315,1123598815738675208,'topmenu_delete','删除','delete','/api/blade-system/topmenu/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675316,1123598815738675208,'topmenu_view','查看','view','/system/topmenu/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1123598815738675317,1123598815738675208,'topmenu_setting','菜单配置','setting',null,'setting',5,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1161272593873321991,1123598815738675217,'datasource','数据源管理','menu','/tool/datasource','iconfont icon-caidanguanli',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1161272593873321992,1161272593873321991,'datasource_add','新增','add','/tool/datasource/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1161272593873321993,1161272593873321991,'datasource_edit','修改','edit','/tool/datasource/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1161272593873321994,1161272593873321991,'datasource_delete','删除','delete','/api/blade-develop/datasource/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1161272593873321995,1161272593873321991,'datasource_view','查看','view','/tool/datasource/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1161272593873321996,1123598815738675217,'model','数据模型设计','menu','/tool/model','iconfont icon-biaodan',3,1,0,1,'','',0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733369658963251,1123598815738675210,'elk','ELK监控','menu','http://localhost:5601/','iconfont iconicon_cspace',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733369658963252,1123598815738675210,'zipkin','Zipkin监控','menu','http://localhost:9411/','iconfont iconicon_task',4,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733369658963253,1123598815738675210,'turbine','Turbine监控','menu','http://localhost:7003/hystrix','iconfont iconicon_subordinate',5,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733369658963254,1123598815738675210,'sentinel','Sentinel管理','menu','http://localhost:8858','iconfont iconicon_safety',6,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733369658963255,1123598815738675210,'es','Elasticsearch管理','menu','http://localhost:9100/','iconfont iconfont iconicon_search',7,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733379658963251,1123598815738675203,'dictbiz','业务字典','menu','/system/dictbiz','iconfont iconicon_study',5,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733379658963252,1164733379658963251,'dictbiz_add','新增','add','/system/dictbiz/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733379658963253,1164733379658963251,'dictbiz_edit','修改','edit','/system/dictbiz/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733379658963254,1164733379658963251,'dictbiz_delete','删除','delete','/api/blade-system/dict-biz/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733379658963255,1164733379658963251,'dictbiz_view','查看','view','/system/dictbiz/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658962251,1123598815738675298,'sms','短信配置','menu','/resource/sms','iconfont iconicon_message',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658962252,1164733389658962251,'sms_add','新增','add','/resource/sms/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658962253,1164733389658962251,'sms_edit','修改','edit','/resource/sms/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658962254,1164733389658962251,'sms_delete','删除','delete','/api/blade-resource/sms/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658962255,1164733389658962251,'sms_view','查看','view','/resource/sms/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658962256,1164733389658962251,'sms_enable','启用','enable','/api/blade-resource/sms/enable','key',5,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389658963251,1123598815738675298,'xxljob','任务调度','menu','http://localhost:8080/xxl-job-admin','iconfont iconicon_cspace',5,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389668962251,1123598815738675203,'post','岗位管理','menu','/system/post','iconfont iconicon_message',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389668962252,1164733389668962251,'post_add','新增','add','/system/post/add','plus',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389668962253,1164733389668962251,'post_edit','修改','edit','/system/post/edit','form',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389668962254,1164733389668962251,'post_delete','删除','delete','/api/blade-system/post/remove','delete',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733389668962255,1164733389668962251,'post_view','查看','view','/system/post/view','file-text',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962201,0,'base','基础配置','menu','/base','iconfont iconicon_affiliations_li',97,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962202,1164733399668962201,'region','行政区划','menu','/base/region','iconfont icon-iframe',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962203,1164733399668962202,'region_add','新增下级','add','','',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962204,1164733399668962202,'region_delete','删除','delete','/api/blade-system/region/remove','',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962205,1164733399668962202,'region_import','导入','import','','',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962206,1164733399668962202,'region_export','导出','export','','',4,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399668962207,1164733399668962202,'region_debug','调试','debug','','',5,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962201,1123598815738675298,'attach','附件管理','menu','/resource/attach','iconfont iconicon_ding',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962202,1164733399669962201,'attach_upload','上传','upload','/resource/attach/upload','',1,2,1,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962203,1164733399669962201,'attach_download','下载','download','/resource/attach/download','',2,2,2,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962204,1164733399669962201,'attach_delete','删除','delete','/api/blade-resource/attach/remove','',3,2,3,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962301,0,'report','报表管理','menu','/report','iconfont icon-shujuzhanshi2',5,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962302,1164733399669962301,'report_setting','报表配置','menu','http://localhost:8108/ureport/designer','iconfont icon-rizhi',1,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962303,1164733399669962301,'report_list','报表列表','menu','/report/reportlist','iconfont icon-biaodan',2,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962304,1164733399669962301,'report_notice','公告报表','menu','http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml','iconfont iconicon_sms',3,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962401,0,'job','任务管理','job','/job','iconfont iconicon_cspace',5,1,0,1,'',null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962501,1164733399669962401,'jobserver','任务应用','menu','/job/jobserver','iconfont icon-shouji',1,1,0,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962502,1164733399669962501,'jobserver_add','新增','add','/job/jobserver/add','plus',1,2,1,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962503,1164733399669962501,'jobserver_edit','修改','edit','/job/jobserver/edit','form',2,2,2,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962504,1164733399669962501,'jobserver_delete','删除','delete','/api/blade-job/jobserver/remove','delete',3,2,3,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962505,1164733399669962501,'jobserver_view','查看','view','/job/jobserver/view','file-text',4,2,2,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962601,1164733399669962401,'jobinfo','任务配置','menu','/job/jobinfo','iconfont icon-dongtai',1,1,0,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962602,1164733399669962601,'jobinfo_add','新增','add','/job/jobinfo/add','plus',1,2,1,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962603,1164733399669962601,'jobinfo_edit','修改','edit','/job/jobinfo/edit','form',2,2,2,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962604,1164733399669962601,'jobinfo_delete','删除','delete','/api/blade-job/jobinfo/remove','delete',3,2,3,1,null,null,0); +INSERT INTO "BLADEX"."BLADE_MENU"("ID","PARENT_ID","CODE","NAME","ALIAS","PATH","SOURCE","SORT","CATEGORY","ACTION","IS_OPEN","COMPONENT","REMARK","IS_DELETED") VALUES(1164733399669962605,1164733399669962601,'jobinfo_view','查看','view','/job/jobinfo/view','file-text',4,2,2,1,null,null,0); + +SET IDENTITY_INSERT "BLADEX"."BLADE_MODEL" ON; +SET IDENTITY_INSERT "BLADEX"."BLADE_MODEL" OFF; +SET IDENTITY_INSERT "BLADEX"."BLADE_MODEL_PROTOTYPE" ON; +SET IDENTITY_INSERT "BLADEX"."BLADE_MODEL_PROTOTYPE" OFF; +INSERT INTO "BLADEX"."BLADE_NOTICE"("ID","TENANT_ID","TITLE","CATEGORY","RELEASE_TIME","CONTENT","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598818738675223,'000000','测试公告',3,'2018-12-31 20:03:31.000000','222',1123598821738675201,1123598813738675201,'2018-12-05 20:03:31.000000',1123598821738675201,'2018-12-28 11:10:51.000000',1,0); +INSERT INTO "BLADEX"."BLADE_NOTICE"("ID","TENANT_ID","TITLE","CATEGORY","RELEASE_TIME","CONTENT","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598818738675224,'000000','测试公告2',1,'2018-12-05 20:03:31.000000','333',1123598821738675201,1123598813738675201,'2018-12-28 10:32:26.000000',1123598821738675201,'2018-12-28 11:10:34.000000',1,0); +INSERT INTO "BLADEX"."BLADE_NOTICE"("ID","TENANT_ID","TITLE","CATEGORY","RELEASE_TIME","CONTENT","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598818738675225,'000000','测试公告3',6,'2018-12-29 00:00:00.000000','11111',1123598821738675201,1123598813738675201,'2018-12-28 11:03:44.000000',1123598821738675201,'2018-12-28 11:10:28.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_OSS"("ID","TENANT_ID","CATEGORY","OSS_CODE","ENDPOINT","TRANSFORM_ENDPOINT","ACCESS_KEY","SECRET_KEY","BUCKET_NAME","APP_ID","REGION","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1132486733992468482,'000000',1,'minio','http://127.0.0.1:9000','','D99KGE6ZTQXSATTJWU24','QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ','bladex','','','',1123598821738675201,1123598813738675201,'2019-05-26 11:20:52.000000',1123598821738675201,'2019-05-27 08:34:55.000000',2,0); +INSERT INTO "BLADEX"."BLADE_OSS"("ID","TENANT_ID","CATEGORY","OSS_CODE","ENDPOINT","TRANSFORM_ENDPOINT","ACCESS_KEY","SECRET_KEY","BUCKET_NAME","APP_ID","REGION","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1132487155981393922,'000000',2,'qiniu','http://ps458elcs.bkt.clouddn.com','','N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h','AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS','bladex','','','',1123598821738675201,1123598813738675201,'2019-05-26 11:22:33.000000',1123598821738675201,'2019-05-26 23:27:56.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_PARAM"("ID","PARAM_NAME","PARAM_KEY","PARAM_VALUE","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598819738675201,'是否开启注册功能','account.registerUser','true','开启注册',1123598821738675201,1123598813738675201,'2018-12-28 12:19:01.000000',1123598821738675201,'2018-12-28 12:19:01.000000',1,0); +INSERT INTO "BLADEX"."BLADE_PARAM"("ID","PARAM_NAME","PARAM_KEY","PARAM_VALUE","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598819738675202,'账号初始密码','account.initPassword','123456','初始密码',1123598821738675201,1123598813738675201,'2018-12-28 12:19:01.000000',1123598821738675201,'2018-12-28 12:19:01.000000',1,0); +INSERT INTO "BLADEX"."BLADE_PARAM"("ID","PARAM_NAME","PARAM_KEY","PARAM_VALUE","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598819738675203,'账号错误锁定次数','account.failCount','5','锁定次数',1123598821738675201,1123598813738675201,'2021-12-01 12:00:00.000000',1123598821738675201,'2021-12-01 12:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_PARAM"("ID","PARAM_NAME","PARAM_KEY","PARAM_VALUE","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1238706101399142402,'租户默认管理密码','tenant.default.password','admin',null,1123598821738675201,1123598813738675201,'2020-03-14 13:58:43.000000',1123598821738675201,'2020-03-14 13:58:43.000000',1,0); +INSERT INTO "BLADEX"."BLADE_PARAM"("ID","PARAM_NAME","PARAM_KEY","PARAM_VALUE","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1238706160295559170,'租户默认账号额度','tenant.default.accountNumber','100',null,1123598821738675201,1123598813738675201,'2020-03-14 13:58:57.000000',1123598821738675201,'2020-03-14 13:58:57.000000',1,0); +INSERT INTO "BLADEX"."BLADE_PARAM"("ID","PARAM_NAME","PARAM_KEY","PARAM_VALUE","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1238706330076790786,'租户默认菜单集合','tenant.default.menuCode','desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu',null,1123598821738675201,1123598813738675201,'2020-03-14 13:59:38.000000',1123598821738675201,'2020-03-14 13:59:38.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675201,'000000',1,'ceo','首席执行官',1,'总经理',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675202,'000000',1,'coo','首席运营官',2,'常务总经理',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675203,'000000',1,'cfo','首席财务官',3,'财务总经理',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675204,'000000',1,'cto','首席技术官',4,'技术总监',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675205,'000000',1,'cio','首席信息官',5,'信息总监',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675206,'000000',2,'pm','技术经理',6,'研发和产品是永远的朋友',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675207,'000000',2,'hrm','人力经理',7,'人力资源部门工作管理者',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_POST"("ID","TENANT_ID","CATEGORY","POST_CODE","POST_NAME","SORT","REMARK","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598817738675208,'000000',3,'staff','普通员工',8,'普通员工',1123598821738675201,1123598813738675201,'2020-04-01 00:00:00.000000',1123598821738675201,'2020-04-01 00:00:00.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('00','0','0','中华人民共和国','','','','','','','','','','',0,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('11','00','00','北京市','11','北京市','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1101','11','00,11','北京市','11','北京市','1101','北京市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110101','1101','00,11,1101','东城区','11','北京市','1101','北京市','110101','东城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110102','1101','00,11,1101','西城区','11','北京市','1101','北京市','110102','西城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110105','1101','00,11,1101','朝阳区','11','北京市','1101','北京市','110105','朝阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110106','1101','00,11,1101','丰台区','11','北京市','1101','北京市','110106','丰台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110107','1101','00,11,1101','石景山区','11','北京市','1101','北京市','110107','石景山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110108','1101','00,11,1101','海淀区','11','北京市','1101','北京市','110108','海淀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110109','1101','00,11,1101','门头沟区','11','北京市','1101','北京市','110109','门头沟区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110111','1101','00,11,1101','房山区','11','北京市','1101','北京市','110111','房山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110112','1101','00,11,1101','通州区','11','北京市','1101','北京市','110112','通州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110113','1101','00,11,1101','顺义区','11','北京市','1101','北京市','110113','顺义区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110114','1101','00,11,1101','昌平区','11','北京市','1101','北京市','110114','昌平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110115','1101','00,11,1101','大兴区','11','北京市','1101','北京市','110115','大兴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110116','1101','00,11,1101','怀柔区','11','北京市','1101','北京市','110116','怀柔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110117','1101','00,11,1101','平谷区','11','北京市','1101','北京市','110117','平谷区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110118','1101','00,11,1101','密云区','11','北京市','1101','北京市','110118','密云区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('110119','1101','00,11,1101','延庆区','11','北京市','1101','北京市','110119','延庆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('12','00','00','天津市','12','天津市','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1201','12','00,12','天津市','12','天津市','1201','天津市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120101','1201','00,12,1201','和平区','12','天津市','1201','天津市','120101','和平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120102','1201','00,12,1201','河东区','12','天津市','1201','天津市','120102','河东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120103','1201','00,12,1201','河西区','12','天津市','1201','天津市','120103','河西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120104','1201','00,12,1201','南开区','12','天津市','1201','天津市','120104','南开区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120105','1201','00,12,1201','河北区','12','天津市','1201','天津市','120105','河北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120106','1201','00,12,1201','红桥区','12','天津市','1201','天津市','120106','红桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120110','1201','00,12,1201','东丽区','12','天津市','1201','天津市','120110','东丽区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120111','1201','00,12,1201','西青区','12','天津市','1201','天津市','120111','西青区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120112','1201','00,12,1201','津南区','12','天津市','1201','天津市','120112','津南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120113','1201','00,12,1201','北辰区','12','天津市','1201','天津市','120113','北辰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120114','1201','00,12,1201','武清区','12','天津市','1201','天津市','120114','武清区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120115','1201','00,12,1201','宝坻区','12','天津市','1201','天津市','120115','宝坻区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120116','1201','00,12,1201','滨海新区','12','天津市','1201','天津市','120116','滨海新区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120117','1201','00,12,1201','宁河区','12','天津市','1201','天津市','120117','宁河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120118','1201','00,12,1201','静海区','12','天津市','1201','天津市','120118','静海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('120119','1201','00,12,1201','蓟州区','12','天津市','1201','天津市','120119','蓟州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('13','00','00','河北省','13','河北省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1301','13','00,13','石家庄市','13','河北省','1301','石家庄市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130102','1301','00,13,1301','长安区','13','河北省','1301','石家庄市','130102','长安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130104','1301','00,13,1301','桥西区','13','河北省','1301','石家庄市','130104','桥西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130105','1301','00,13,1301','新华区','13','河北省','1301','石家庄市','130105','新华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130107','1301','00,13,1301','井陉矿区','13','河北省','1301','石家庄市','130107','井陉矿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130108','1301','00,13,1301','裕华区','13','河北省','1301','石家庄市','130108','裕华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130109','1301','00,13,1301','藁城区','13','河北省','1301','石家庄市','130109','藁城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130110','1301','00,13,1301','鹿泉区','13','河北省','1301','石家庄市','130110','鹿泉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130111','1301','00,13,1301','栾城区','13','河北省','1301','石家庄市','130111','栾城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130121','1301','00,13,1301','井陉县','13','河北省','1301','石家庄市','130121','井陉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130123','1301','00,13,1301','正定县','13','河北省','1301','石家庄市','130123','正定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130125','1301','00,13,1301','行唐县','13','河北省','1301','石家庄市','130125','行唐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130126','1301','00,13,1301','灵寿县','13','河北省','1301','石家庄市','130126','灵寿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130127','1301','00,13,1301','高邑县','13','河北省','1301','石家庄市','130127','高邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130128','1301','00,13,1301','深泽县','13','河北省','1301','石家庄市','130128','深泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130129','1301','00,13,1301','赞皇县','13','河北省','1301','石家庄市','130129','赞皇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130130','1301','00,13,1301','无极县','13','河北省','1301','石家庄市','130130','无极县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130131','1301','00,13,1301','平山县','13','河北省','1301','石家庄市','130131','平山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130132','1301','00,13,1301','元氏县','13','河北省','1301','石家庄市','130132','元氏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130133','1301','00,13,1301','赵县','13','河北省','1301','石家庄市','130133','赵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130181','1301','00,13,1301','辛集市','13','河北省','1301','石家庄市','130181','辛集市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130183','1301','00,13,1301','晋州市','13','河北省','1301','石家庄市','130183','晋州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130184','1301','00,13,1301','新乐市','13','河北省','1301','石家庄市','130184','新乐市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1302','13','00,13','唐山市','13','河北省','1302','唐山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130202','1302','00,13,1302','路南区','13','河北省','1302','唐山市','130202','路南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130203','1302','00,13,1302','路北区','13','河北省','1302','唐山市','130203','路北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130204','1302','00,13,1302','古冶区','13','河北省','1302','唐山市','130204','古冶区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130205','1302','00,13,1302','开平区','13','河北省','1302','唐山市','130205','开平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130207','1302','00,13,1302','丰南区','13','河北省','1302','唐山市','130207','丰南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130208','1302','00,13,1302','丰润区','13','河北省','1302','唐山市','130208','丰润区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130209','1302','00,13,1302','曹妃甸区','13','河北省','1302','唐山市','130209','曹妃甸区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130224','1302','00,13,1302','滦南县','13','河北省','1302','唐山市','130224','滦南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130225','1302','00,13,1302','乐亭县','13','河北省','1302','唐山市','130225','乐亭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130227','1302','00,13,1302','迁西县','13','河北省','1302','唐山市','130227','迁西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130229','1302','00,13,1302','玉田县','13','河北省','1302','唐山市','130229','玉田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130281','1302','00,13,1302','遵化市','13','河北省','1302','唐山市','130281','遵化市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130283','1302','00,13,1302','迁安市','13','河北省','1302','唐山市','130283','迁安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130284','1302','00,13,1302','滦州市','13','河北省','1302','唐山市','130284','滦州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1303','13','00,13','秦皇岛市','13','河北省','1303','秦皇岛市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130302','1303','00,13,1303','海港区','13','河北省','1303','秦皇岛市','130302','海港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130303','1303','00,13,1303','山海关区','13','河北省','1303','秦皇岛市','130303','山海关区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130304','1303','00,13,1303','北戴河区','13','河北省','1303','秦皇岛市','130304','北戴河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130306','1303','00,13,1303','抚宁区','13','河北省','1303','秦皇岛市','130306','抚宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130321','1303','00,13,1303','青龙满族自治县','13','河北省','1303','秦皇岛市','130321','青龙满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130322','1303','00,13,1303','昌黎县','13','河北省','1303','秦皇岛市','130322','昌黎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130324','1303','00,13,1303','卢龙县','13','河北省','1303','秦皇岛市','130324','卢龙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1304','13','00,13','邯郸市','13','河北省','1304','邯郸市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130402','1304','00,13,1304','邯山区','13','河北省','1304','邯郸市','130402','邯山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130403','1304','00,13,1304','丛台区','13','河北省','1304','邯郸市','130403','丛台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130404','1304','00,13,1304','复兴区','13','河北省','1304','邯郸市','130404','复兴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130406','1304','00,13,1304','峰峰矿区','13','河北省','1304','邯郸市','130406','峰峰矿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130407','1304','00,13,1304','肥乡区','13','河北省','1304','邯郸市','130407','肥乡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130408','1304','00,13,1304','永年区','13','河北省','1304','邯郸市','130408','永年区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130423','1304','00,13,1304','临漳县','13','河北省','1304','邯郸市','130423','临漳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130424','1304','00,13,1304','成安县','13','河北省','1304','邯郸市','130424','成安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130425','1304','00,13,1304','大名县','13','河北省','1304','邯郸市','130425','大名县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130426','1304','00,13,1304','涉县','13','河北省','1304','邯郸市','130426','涉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130427','1304','00,13,1304','磁县','13','河北省','1304','邯郸市','130427','磁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130430','1304','00,13,1304','邱县','13','河北省','1304','邯郸市','130430','邱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130431','1304','00,13,1304','鸡泽县','13','河北省','1304','邯郸市','130431','鸡泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130432','1304','00,13,1304','广平县','13','河北省','1304','邯郸市','130432','广平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130433','1304','00,13,1304','馆陶县','13','河北省','1304','邯郸市','130433','馆陶县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130434','1304','00,13,1304','魏县','13','河北省','1304','邯郸市','130434','魏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130435','1304','00,13,1304','曲周县','13','河北省','1304','邯郸市','130435','曲周县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130481','1304','00,13,1304','武安市','13','河北省','1304','邯郸市','130481','武安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1305','13','00,13','邢台市','13','河北省','1305','邢台市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130502','1305','00,13,1305','桥东区','13','河北省','1305','邢台市','130502','桥东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130503','1305','00,13,1305','桥西区','13','河北省','1305','邢台市','130503','桥西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130521','1305','00,13,1305','邢台县','13','河北省','1305','邢台市','130521','邢台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130522','1305','00,13,1305','临城县','13','河北省','1305','邢台市','130522','临城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130523','1305','00,13,1305','内丘县','13','河北省','1305','邢台市','130523','内丘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130524','1305','00,13,1305','柏乡县','13','河北省','1305','邢台市','130524','柏乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130525','1305','00,13,1305','隆尧县','13','河北省','1305','邢台市','130525','隆尧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130526','1305','00,13,1305','任县','13','河北省','1305','邢台市','130526','任县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130527','1305','00,13,1305','南和县','13','河北省','1305','邢台市','130527','南和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130528','1305','00,13,1305','宁晋县','13','河北省','1305','邢台市','130528','宁晋县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130529','1305','00,13,1305','巨鹿县','13','河北省','1305','邢台市','130529','巨鹿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130530','1305','00,13,1305','新河县','13','河北省','1305','邢台市','130530','新河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130531','1305','00,13,1305','广宗县','13','河北省','1305','邢台市','130531','广宗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130532','1305','00,13,1305','平乡县','13','河北省','1305','邢台市','130532','平乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130533','1305','00,13,1305','威县','13','河北省','1305','邢台市','130533','威县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130534','1305','00,13,1305','清河县','13','河北省','1305','邢台市','130534','清河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130535','1305','00,13,1305','临西县','13','河北省','1305','邢台市','130535','临西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130581','1305','00,13,1305','南宫市','13','河北省','1305','邢台市','130581','南宫市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130582','1305','00,13,1305','沙河市','13','河北省','1305','邢台市','130582','沙河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1306','13','00,13','保定市','13','河北省','1306','保定市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130602','1306','00,13,1306','竞秀区','13','河北省','1306','保定市','130602','竞秀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130606','1306','00,13,1306','莲池区','13','河北省','1306','保定市','130606','莲池区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130607','1306','00,13,1306','满城区','13','河北省','1306','保定市','130607','满城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130608','1306','00,13,1306','清苑区','13','河北省','1306','保定市','130608','清苑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130609','1306','00,13,1306','徐水区','13','河北省','1306','保定市','130609','徐水区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130623','1306','00,13,1306','涞水县','13','河北省','1306','保定市','130623','涞水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130624','1306','00,13,1306','阜平县','13','河北省','1306','保定市','130624','阜平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130626','1306','00,13,1306','定兴县','13','河北省','1306','保定市','130626','定兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130627','1306','00,13,1306','唐县','13','河北省','1306','保定市','130627','唐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130628','1306','00,13,1306','高阳县','13','河北省','1306','保定市','130628','高阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130629','1306','00,13,1306','容城县','13','河北省','1306','保定市','130629','容城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130630','1306','00,13,1306','涞源县','13','河北省','1306','保定市','130630','涞源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130631','1306','00,13,1306','望都县','13','河北省','1306','保定市','130631','望都县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130632','1306','00,13,1306','安新县','13','河北省','1306','保定市','130632','安新县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130633','1306','00,13,1306','易县','13','河北省','1306','保定市','130633','易县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130634','1306','00,13,1306','曲阳县','13','河北省','1306','保定市','130634','曲阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130635','1306','00,13,1306','蠡县','13','河北省','1306','保定市','130635','蠡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130636','1306','00,13,1306','顺平县','13','河北省','1306','保定市','130636','顺平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130637','1306','00,13,1306','博野县','13','河北省','1306','保定市','130637','博野县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130638','1306','00,13,1306','雄县','13','河北省','1306','保定市','130638','雄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130681','1306','00,13,1306','涿州市','13','河北省','1306','保定市','130681','涿州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130682','1306','00,13,1306','定州市','13','河北省','1306','保定市','130682','定州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130683','1306','00,13,1306','安国市','13','河北省','1306','保定市','130683','安国市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130684','1306','00,13,1306','高碑店市','13','河北省','1306','保定市','130684','高碑店市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1307','13','00,13','张家口市','13','河北省','1307','张家口市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130702','1307','00,13,1307','桥东区','13','河北省','1307','张家口市','130702','桥东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130703','1307','00,13,1307','桥西区','13','河北省','1307','张家口市','130703','桥西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130705','1307','00,13,1307','宣化区','13','河北省','1307','张家口市','130705','宣化区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130706','1307','00,13,1307','下花园区','13','河北省','1307','张家口市','130706','下花园区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130708','1307','00,13,1307','万全区','13','河北省','1307','张家口市','130708','万全区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130709','1307','00,13,1307','崇礼区','13','河北省','1307','张家口市','130709','崇礼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130722','1307','00,13,1307','张北县','13','河北省','1307','张家口市','130722','张北县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130723','1307','00,13,1307','康保县','13','河北省','1307','张家口市','130723','康保县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130724','1307','00,13,1307','沽源县','13','河北省','1307','张家口市','130724','沽源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130725','1307','00,13,1307','尚义县','13','河北省','1307','张家口市','130725','尚义县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130726','1307','00,13,1307','蔚县','13','河北省','1307','张家口市','130726','蔚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130727','1307','00,13,1307','阳原县','13','河北省','1307','张家口市','130727','阳原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130728','1307','00,13,1307','怀安县','13','河北省','1307','张家口市','130728','怀安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130730','1307','00,13,1307','怀来县','13','河北省','1307','张家口市','130730','怀来县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130731','1307','00,13,1307','涿鹿县','13','河北省','1307','张家口市','130731','涿鹿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130732','1307','00,13,1307','赤城县','13','河北省','1307','张家口市','130732','赤城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1308','13','00,13','承德市','13','河北省','1308','承德市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130802','1308','00,13,1308','双桥区','13','河北省','1308','承德市','130802','双桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130803','1308','00,13,1308','双滦区','13','河北省','1308','承德市','130803','双滦区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130804','1308','00,13,1308','鹰手营子矿区','13','河北省','1308','承德市','130804','鹰手营子矿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130821','1308','00,13,1308','承德县','13','河北省','1308','承德市','130821','承德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130822','1308','00,13,1308','兴隆县','13','河北省','1308','承德市','130822','兴隆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130824','1308','00,13,1308','滦平县','13','河北省','1308','承德市','130824','滦平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130825','1308','00,13,1308','隆化县','13','河北省','1308','承德市','130825','隆化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130826','1308','00,13,1308','丰宁满族自治县','13','河北省','1308','承德市','130826','丰宁满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130827','1308','00,13,1308','宽城满族自治县','13','河北省','1308','承德市','130827','宽城满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130828','1308','00,13,1308','围场满族蒙古族自治县','13','河北省','1308','承德市','130828','围场满族蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130881','1308','00,13,1308','平泉市','13','河北省','1308','承德市','130881','平泉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1309','13','00,13','沧州市','13','河北省','1309','沧州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130902','1309','00,13,1309','新华区','13','河北省','1309','沧州市','130902','新华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130903','1309','00,13,1309','运河区','13','河北省','1309','沧州市','130903','运河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130921','1309','00,13,1309','沧县','13','河北省','1309','沧州市','130921','沧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130922','1309','00,13,1309','青县','13','河北省','1309','沧州市','130922','青县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130923','1309','00,13,1309','东光县','13','河北省','1309','沧州市','130923','东光县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130924','1309','00,13,1309','海兴县','13','河北省','1309','沧州市','130924','海兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130925','1309','00,13,1309','盐山县','13','河北省','1309','沧州市','130925','盐山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130926','1309','00,13,1309','肃宁县','13','河北省','1309','沧州市','130926','肃宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130927','1309','00,13,1309','南皮县','13','河北省','1309','沧州市','130927','南皮县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130928','1309','00,13,1309','吴桥县','13','河北省','1309','沧州市','130928','吴桥县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130929','1309','00,13,1309','献县','13','河北省','1309','沧州市','130929','献县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130930','1309','00,13,1309','孟村回族自治县','13','河北省','1309','沧州市','130930','孟村回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130981','1309','00,13,1309','泊头市','13','河北省','1309','沧州市','130981','泊头市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130982','1309','00,13,1309','任丘市','13','河北省','1309','沧州市','130982','任丘市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130983','1309','00,13,1309','黄骅市','13','河北省','1309','沧州市','130983','黄骅市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('130984','1309','00,13,1309','河间市','13','河北省','1309','沧州市','130984','河间市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1310','13','00,13','廊坊市','13','河北省','1310','廊坊市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131002','1310','00,13,1310','安次区','13','河北省','1310','廊坊市','131002','安次区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131003','1310','00,13,1310','广阳区','13','河北省','1310','廊坊市','131003','广阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131022','1310','00,13,1310','固安县','13','河北省','1310','廊坊市','131022','固安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131023','1310','00,13,1310','永清县','13','河北省','1310','廊坊市','131023','永清县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131024','1310','00,13,1310','香河县','13','河北省','1310','廊坊市','131024','香河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131025','1310','00,13,1310','大城县','13','河北省','1310','廊坊市','131025','大城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131026','1310','00,13,1310','文安县','13','河北省','1310','廊坊市','131026','文安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131028','1310','00,13,1310','大厂回族自治县','13','河北省','1310','廊坊市','131028','大厂回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131081','1310','00,13,1310','霸州市','13','河北省','1310','廊坊市','131081','霸州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131082','1310','00,13,1310','三河市','13','河北省','1310','廊坊市','131082','三河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1311','13','00,13','衡水市','13','河北省','1311','衡水市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131102','1311','00,13,1311','桃城区','13','河北省','1311','衡水市','131102','桃城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131103','1311','00,13,1311','冀州区','13','河北省','1311','衡水市','131103','冀州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131121','1311','00,13,1311','枣强县','13','河北省','1311','衡水市','131121','枣强县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131122','1311','00,13,1311','武邑县','13','河北省','1311','衡水市','131122','武邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131123','1311','00,13,1311','武强县','13','河北省','1311','衡水市','131123','武强县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131124','1311','00,13,1311','饶阳县','13','河北省','1311','衡水市','131124','饶阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131125','1311','00,13,1311','安平县','13','河北省','1311','衡水市','131125','安平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131126','1311','00,13,1311','故城县','13','河北省','1311','衡水市','131126','故城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131127','1311','00,13,1311','景县','13','河北省','1311','衡水市','131127','景县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131128','1311','00,13,1311','阜城县','13','河北省','1311','衡水市','131128','阜城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('131182','1311','00,13,1311','深州市','13','河北省','1311','衡水市','131182','深州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('14','00','00','山西省','14','山西省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1401','14','00,14','太原市','14','山西省','1401','太原市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140105','1401','00,14,1401','小店区','14','山西省','1401','太原市','140105','小店区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140106','1401','00,14,1401','迎泽区','14','山西省','1401','太原市','140106','迎泽区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140107','1401','00,14,1401','杏花岭区','14','山西省','1401','太原市','140107','杏花岭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140108','1401','00,14,1401','尖草坪区','14','山西省','1401','太原市','140108','尖草坪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140109','1401','00,14,1401','万柏林区','14','山西省','1401','太原市','140109','万柏林区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140110','1401','00,14,1401','晋源区','14','山西省','1401','太原市','140110','晋源区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140121','1401','00,14,1401','清徐县','14','山西省','1401','太原市','140121','清徐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140122','1401','00,14,1401','阳曲县','14','山西省','1401','太原市','140122','阳曲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140123','1401','00,14,1401','娄烦县','14','山西省','1401','太原市','140123','娄烦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140181','1401','00,14,1401','古交市','14','山西省','1401','太原市','140181','古交市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1402','14','00,14','大同市','14','山西省','1402','大同市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140212','1402','00,14,1402','新荣区','14','山西省','1402','大同市','140212','新荣区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140213','1402','00,14,1402','平城区','14','山西省','1402','大同市','140213','平城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140214','1402','00,14,1402','云冈区','14','山西省','1402','大同市','140214','云冈区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140215','1402','00,14,1402','云州区','14','山西省','1402','大同市','140215','云州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140221','1402','00,14,1402','阳高县','14','山西省','1402','大同市','140221','阳高县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140222','1402','00,14,1402','天镇县','14','山西省','1402','大同市','140222','天镇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140223','1402','00,14,1402','广灵县','14','山西省','1402','大同市','140223','广灵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140224','1402','00,14,1402','灵丘县','14','山西省','1402','大同市','140224','灵丘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140225','1402','00,14,1402','浑源县','14','山西省','1402','大同市','140225','浑源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140226','1402','00,14,1402','左云县','14','山西省','1402','大同市','140226','左云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1403','14','00,14','阳泉市','14','山西省','1403','阳泉市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140302','1403','00,14,1403','城区','14','山西省','1403','阳泉市','140302','城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140303','1403','00,14,1403','矿区','14','山西省','1403','阳泉市','140303','矿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140311','1403','00,14,1403','郊区','14','山西省','1403','阳泉市','140311','郊区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140321','1403','00,14,1403','平定县','14','山西省','1403','阳泉市','140321','平定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140322','1403','00,14,1403','盂县','14','山西省','1403','阳泉市','140322','盂县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1404','14','00,14','长治市','14','山西省','1404','长治市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140403','1404','00,14,1404','潞州区','14','山西省','1404','长治市','140403','潞州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140404','1404','00,14,1404','上党区','14','山西省','1404','长治市','140404','上党区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140405','1404','00,14,1404','屯留区','14','山西省','1404','长治市','140405','屯留区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140406','1404','00,14,1404','潞城区','14','山西省','1404','长治市','140406','潞城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140423','1404','00,14,1404','襄垣县','14','山西省','1404','长治市','140423','襄垣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140425','1404','00,14,1404','平顺县','14','山西省','1404','长治市','140425','平顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140426','1404','00,14,1404','黎城县','14','山西省','1404','长治市','140426','黎城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140427','1404','00,14,1404','壶关县','14','山西省','1404','长治市','140427','壶关县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140428','1404','00,14,1404','长子县','14','山西省','1404','长治市','140428','长子县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140429','1404','00,14,1404','武乡县','14','山西省','1404','长治市','140429','武乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140430','1404','00,14,1404','沁县','14','山西省','1404','长治市','140430','沁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140431','1404','00,14,1404','沁源县','14','山西省','1404','长治市','140431','沁源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1405','14','00,14','晋城市','14','山西省','1405','晋城市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140502','1405','00,14,1405','城区','14','山西省','1405','晋城市','140502','城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140521','1405','00,14,1405','沁水县','14','山西省','1405','晋城市','140521','沁水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140522','1405','00,14,1405','阳城县','14','山西省','1405','晋城市','140522','阳城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140524','1405','00,14,1405','陵川县','14','山西省','1405','晋城市','140524','陵川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140525','1405','00,14,1405','泽州县','14','山西省','1405','晋城市','140525','泽州县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140581','1405','00,14,1405','高平市','14','山西省','1405','晋城市','140581','高平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1406','14','00,14','朔州市','14','山西省','1406','朔州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140602','1406','00,14,1406','朔城区','14','山西省','1406','朔州市','140602','朔城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140603','1406','00,14,1406','平鲁区','14','山西省','1406','朔州市','140603','平鲁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140621','1406','00,14,1406','山阴县','14','山西省','1406','朔州市','140621','山阴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140622','1406','00,14,1406','应县','14','山西省','1406','朔州市','140622','应县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140623','1406','00,14,1406','右玉县','14','山西省','1406','朔州市','140623','右玉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140681','1406','00,14,1406','怀仁市','14','山西省','1406','朔州市','140681','怀仁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1407','14','00,14','晋中市','14','山西省','1407','晋中市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140702','1407','00,14,1407','榆次区','14','山西省','1407','晋中市','140702','榆次区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140703','1407','00,14,1407','太谷区','14','山西省','1407','晋中市','140703','太谷区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140721','1407','00,14,1407','榆社县','14','山西省','1407','晋中市','140721','榆社县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140722','1407','00,14,1407','左权县','14','山西省','1407','晋中市','140722','左权县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140723','1407','00,14,1407','和顺县','14','山西省','1407','晋中市','140723','和顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140724','1407','00,14,1407','昔阳县','14','山西省','1407','晋中市','140724','昔阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140725','1407','00,14,1407','寿阳县','14','山西省','1407','晋中市','140725','寿阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140727','1407','00,14,1407','祁县','14','山西省','1407','晋中市','140727','祁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140728','1407','00,14,1407','平遥县','14','山西省','1407','晋中市','140728','平遥县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140729','1407','00,14,1407','灵石县','14','山西省','1407','晋中市','140729','灵石县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140781','1407','00,14,1407','介休市','14','山西省','1407','晋中市','140781','介休市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1408','14','00,14','运城市','14','山西省','1408','运城市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140802','1408','00,14,1408','盐湖区','14','山西省','1408','运城市','140802','盐湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140821','1408','00,14,1408','临猗县','14','山西省','1408','运城市','140821','临猗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140822','1408','00,14,1408','万荣县','14','山西省','1408','运城市','140822','万荣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140823','1408','00,14,1408','闻喜县','14','山西省','1408','运城市','140823','闻喜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140824','1408','00,14,1408','稷山县','14','山西省','1408','运城市','140824','稷山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140825','1408','00,14,1408','新绛县','14','山西省','1408','运城市','140825','新绛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140826','1408','00,14,1408','绛县','14','山西省','1408','运城市','140826','绛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140827','1408','00,14,1408','垣曲县','14','山西省','1408','运城市','140827','垣曲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140828','1408','00,14,1408','夏县','14','山西省','1408','运城市','140828','夏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140829','1408','00,14,1408','平陆县','14','山西省','1408','运城市','140829','平陆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140830','1408','00,14,1408','芮城县','14','山西省','1408','运城市','140830','芮城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140881','1408','00,14,1408','永济市','14','山西省','1408','运城市','140881','永济市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140882','1408','00,14,1408','河津市','14','山西省','1408','运城市','140882','河津市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1409','14','00,14','忻州市','14','山西省','1409','忻州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140902','1409','00,14,1409','忻府区','14','山西省','1409','忻州市','140902','忻府区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140921','1409','00,14,1409','定襄县','14','山西省','1409','忻州市','140921','定襄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140922','1409','00,14,1409','五台县','14','山西省','1409','忻州市','140922','五台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140923','1409','00,14,1409','代县','14','山西省','1409','忻州市','140923','代县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140924','1409','00,14,1409','繁峙县','14','山西省','1409','忻州市','140924','繁峙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140925','1409','00,14,1409','宁武县','14','山西省','1409','忻州市','140925','宁武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140926','1409','00,14,1409','静乐县','14','山西省','1409','忻州市','140926','静乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140927','1409','00,14,1409','神池县','14','山西省','1409','忻州市','140927','神池县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140928','1409','00,14,1409','五寨县','14','山西省','1409','忻州市','140928','五寨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140929','1409','00,14,1409','岢岚县','14','山西省','1409','忻州市','140929','岢岚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140930','1409','00,14,1409','河曲县','14','山西省','1409','忻州市','140930','河曲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140931','1409','00,14,1409','保德县','14','山西省','1409','忻州市','140931','保德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140932','1409','00,14,1409','偏关县','14','山西省','1409','忻州市','140932','偏关县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('140981','1409','00,14,1409','原平市','14','山西省','1409','忻州市','140981','原平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1410','14','00,14','临汾市','14','山西省','1410','临汾市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141002','1410','00,14,1410','尧都区','14','山西省','1410','临汾市','141002','尧都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141021','1410','00,14,1410','曲沃县','14','山西省','1410','临汾市','141021','曲沃县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141022','1410','00,14,1410','翼城县','14','山西省','1410','临汾市','141022','翼城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141023','1410','00,14,1410','襄汾县','14','山西省','1410','临汾市','141023','襄汾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141024','1410','00,14,1410','洪洞县','14','山西省','1410','临汾市','141024','洪洞县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141025','1410','00,14,1410','古县','14','山西省','1410','临汾市','141025','古县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141026','1410','00,14,1410','安泽县','14','山西省','1410','临汾市','141026','安泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141027','1410','00,14,1410','浮山县','14','山西省','1410','临汾市','141027','浮山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141028','1410','00,14,1410','吉县','14','山西省','1410','临汾市','141028','吉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141029','1410','00,14,1410','乡宁县','14','山西省','1410','临汾市','141029','乡宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141030','1410','00,14,1410','大宁县','14','山西省','1410','临汾市','141030','大宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141031','1410','00,14,1410','隰县','14','山西省','1410','临汾市','141031','隰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141032','1410','00,14,1410','永和县','14','山西省','1410','临汾市','141032','永和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141033','1410','00,14,1410','蒲县','14','山西省','1410','临汾市','141033','蒲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141034','1410','00,14,1410','汾西县','14','山西省','1410','临汾市','141034','汾西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141081','1410','00,14,1410','侯马市','14','山西省','1410','临汾市','141081','侯马市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141082','1410','00,14,1410','霍州市','14','山西省','1410','临汾市','141082','霍州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1411','14','00,14','吕梁市','14','山西省','1411','吕梁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141102','1411','00,14,1411','离石区','14','山西省','1411','吕梁市','141102','离石区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141121','1411','00,14,1411','文水县','14','山西省','1411','吕梁市','141121','文水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141122','1411','00,14,1411','交城县','14','山西省','1411','吕梁市','141122','交城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141123','1411','00,14,1411','兴县','14','山西省','1411','吕梁市','141123','兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141124','1411','00,14,1411','临县','14','山西省','1411','吕梁市','141124','临县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141125','1411','00,14,1411','柳林县','14','山西省','1411','吕梁市','141125','柳林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141126','1411','00,14,1411','石楼县','14','山西省','1411','吕梁市','141126','石楼县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141127','1411','00,14,1411','岚县','14','山西省','1411','吕梁市','141127','岚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141128','1411','00,14,1411','方山县','14','山西省','1411','吕梁市','141128','方山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141129','1411','00,14,1411','中阳县','14','山西省','1411','吕梁市','141129','中阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141130','1411','00,14,1411','交口县','14','山西省','1411','吕梁市','141130','交口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141181','1411','00,14,1411','孝义市','14','山西省','1411','吕梁市','141181','孝义市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('141182','1411','00,14,1411','汾阳市','14','山西省','1411','吕梁市','141182','汾阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('15','00','00','内蒙古自治区','15','内蒙古自治区','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1501','15','00,15','呼和浩特市','15','内蒙古自治区','1501','呼和浩特市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150102','1501','00,15,1501','新城区','15','内蒙古自治区','1501','呼和浩特市','150102','新城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150103','1501','00,15,1501','回民区','15','内蒙古自治区','1501','呼和浩特市','150103','回民区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150104','1501','00,15,1501','玉泉区','15','内蒙古自治区','1501','呼和浩特市','150104','玉泉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150105','1501','00,15,1501','赛罕区','15','内蒙古自治区','1501','呼和浩特市','150105','赛罕区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150121','1501','00,15,1501','土默特左旗','15','内蒙古自治区','1501','呼和浩特市','150121','土默特左旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150122','1501','00,15,1501','托克托县','15','内蒙古自治区','1501','呼和浩特市','150122','托克托县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150123','1501','00,15,1501','和林格尔县','15','内蒙古自治区','1501','呼和浩特市','150123','和林格尔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150124','1501','00,15,1501','清水河县','15','内蒙古自治区','1501','呼和浩特市','150124','清水河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150125','1501','00,15,1501','武川县','15','内蒙古自治区','1501','呼和浩特市','150125','武川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1502','15','00,15','包头市','15','内蒙古自治区','1502','包头市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150202','1502','00,15,1502','东河区','15','内蒙古自治区','1502','包头市','150202','东河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150203','1502','00,15,1502','昆都仑区','15','内蒙古自治区','1502','包头市','150203','昆都仑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150204','1502','00,15,1502','青山区','15','内蒙古自治区','1502','包头市','150204','青山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150205','1502','00,15,1502','石拐区','15','内蒙古自治区','1502','包头市','150205','石拐区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150206','1502','00,15,1502','白云鄂博矿区','15','内蒙古自治区','1502','包头市','150206','白云鄂博矿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150207','1502','00,15,1502','九原区','15','内蒙古自治区','1502','包头市','150207','九原区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150221','1502','00,15,1502','土默特右旗','15','内蒙古自治区','1502','包头市','150221','土默特右旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150222','1502','00,15,1502','固阳县','15','内蒙古自治区','1502','包头市','150222','固阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150223','1502','00,15,1502','达尔罕茂明安联合旗','15','内蒙古自治区','1502','包头市','150223','达尔罕茂明安联合旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1503','15','00,15','乌海市','15','内蒙古自治区','1503','乌海市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150302','1503','00,15,1503','海勃湾区','15','内蒙古自治区','1503','乌海市','150302','海勃湾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150303','1503','00,15,1503','海南区','15','内蒙古自治区','1503','乌海市','150303','海南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150304','1503','00,15,1503','乌达区','15','内蒙古自治区','1503','乌海市','150304','乌达区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1504','15','00,15','赤峰市','15','内蒙古自治区','1504','赤峰市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150402','1504','00,15,1504','红山区','15','内蒙古自治区','1504','赤峰市','150402','红山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150403','1504','00,15,1504','元宝山区','15','内蒙古自治区','1504','赤峰市','150403','元宝山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150404','1504','00,15,1504','松山区','15','内蒙古自治区','1504','赤峰市','150404','松山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150421','1504','00,15,1504','阿鲁科尔沁旗','15','内蒙古自治区','1504','赤峰市','150421','阿鲁科尔沁旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150422','1504','00,15,1504','巴林左旗','15','内蒙古自治区','1504','赤峰市','150422','巴林左旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150423','1504','00,15,1504','巴林右旗','15','内蒙古自治区','1504','赤峰市','150423','巴林右旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150424','1504','00,15,1504','林西县','15','内蒙古自治区','1504','赤峰市','150424','林西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150425','1504','00,15,1504','克什克腾旗','15','内蒙古自治区','1504','赤峰市','150425','克什克腾旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150426','1504','00,15,1504','翁牛特旗','15','内蒙古自治区','1504','赤峰市','150426','翁牛特旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150428','1504','00,15,1504','喀喇沁旗','15','内蒙古自治区','1504','赤峰市','150428','喀喇沁旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150429','1504','00,15,1504','宁城县','15','内蒙古自治区','1504','赤峰市','150429','宁城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150430','1504','00,15,1504','敖汉旗','15','内蒙古自治区','1504','赤峰市','150430','敖汉旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1505','15','00,15','通辽市','15','内蒙古自治区','1505','通辽市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150502','1505','00,15,1505','科尔沁区','15','内蒙古自治区','1505','通辽市','150502','科尔沁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150521','1505','00,15,1505','科尔沁左翼中旗','15','内蒙古自治区','1505','通辽市','150521','科尔沁左翼中旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150522','1505','00,15,1505','科尔沁左翼后旗','15','内蒙古自治区','1505','通辽市','150522','科尔沁左翼后旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150523','1505','00,15,1505','开鲁县','15','内蒙古自治区','1505','通辽市','150523','开鲁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150524','1505','00,15,1505','库伦旗','15','内蒙古自治区','1505','通辽市','150524','库伦旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150525','1505','00,15,1505','奈曼旗','15','内蒙古自治区','1505','通辽市','150525','奈曼旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150526','1505','00,15,1505','扎鲁特旗','15','内蒙古自治区','1505','通辽市','150526','扎鲁特旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150581','1505','00,15,1505','霍林郭勒市','15','内蒙古自治区','1505','通辽市','150581','霍林郭勒市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1506','15','00,15','鄂尔多斯市','15','内蒙古自治区','1506','鄂尔多斯市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150602','1506','00,15,1506','东胜区','15','内蒙古自治区','1506','鄂尔多斯市','150602','东胜区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150603','1506','00,15,1506','康巴什区','15','内蒙古自治区','1506','鄂尔多斯市','150603','康巴什区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150621','1506','00,15,1506','达拉特旗','15','内蒙古自治区','1506','鄂尔多斯市','150621','达拉特旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150622','1506','00,15,1506','准格尔旗','15','内蒙古自治区','1506','鄂尔多斯市','150622','准格尔旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150623','1506','00,15,1506','鄂托克前旗','15','内蒙古自治区','1506','鄂尔多斯市','150623','鄂托克前旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150624','1506','00,15,1506','鄂托克旗','15','内蒙古自治区','1506','鄂尔多斯市','150624','鄂托克旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150625','1506','00,15,1506','杭锦旗','15','内蒙古自治区','1506','鄂尔多斯市','150625','杭锦旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150626','1506','00,15,1506','乌审旗','15','内蒙古自治区','1506','鄂尔多斯市','150626','乌审旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150627','1506','00,15,1506','伊金霍洛旗','15','内蒙古自治区','1506','鄂尔多斯市','150627','伊金霍洛旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1507','15','00,15','呼伦贝尔市','15','内蒙古自治区','1507','呼伦贝尔市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150702','1507','00,15,1507','海拉尔区','15','内蒙古自治区','1507','呼伦贝尔市','150702','海拉尔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150703','1507','00,15,1507','扎赉诺尔区','15','内蒙古自治区','1507','呼伦贝尔市','150703','扎赉诺尔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150721','1507','00,15,1507','阿荣旗','15','内蒙古自治区','1507','呼伦贝尔市','150721','阿荣旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150722','1507','00,15,1507','莫力达瓦达斡尔族自治旗','15','内蒙古自治区','1507','呼伦贝尔市','150722','莫力达瓦达斡尔族自治旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150723','1507','00,15,1507','鄂伦春自治旗','15','内蒙古自治区','1507','呼伦贝尔市','150723','鄂伦春自治旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150724','1507','00,15,1507','鄂温克族自治旗','15','内蒙古自治区','1507','呼伦贝尔市','150724','鄂温克族自治旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150725','1507','00,15,1507','陈巴尔虎旗','15','内蒙古自治区','1507','呼伦贝尔市','150725','陈巴尔虎旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150726','1507','00,15,1507','新巴尔虎左旗','15','内蒙古自治区','1507','呼伦贝尔市','150726','新巴尔虎左旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150727','1507','00,15,1507','新巴尔虎右旗','15','内蒙古自治区','1507','呼伦贝尔市','150727','新巴尔虎右旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150781','1507','00,15,1507','满洲里市','15','内蒙古自治区','1507','呼伦贝尔市','150781','满洲里市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150782','1507','00,15,1507','牙克石市','15','内蒙古自治区','1507','呼伦贝尔市','150782','牙克石市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150783','1507','00,15,1507','扎兰屯市','15','内蒙古自治区','1507','呼伦贝尔市','150783','扎兰屯市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150784','1507','00,15,1507','额尔古纳市','15','内蒙古自治区','1507','呼伦贝尔市','150784','额尔古纳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150785','1507','00,15,1507','根河市','15','内蒙古自治区','1507','呼伦贝尔市','150785','根河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1508','15','00,15','巴彦淖尔市','15','内蒙古自治区','1508','巴彦淖尔市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150802','1508','00,15,1508','临河区','15','内蒙古自治区','1508','巴彦淖尔市','150802','临河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150821','1508','00,15,1508','五原县','15','内蒙古自治区','1508','巴彦淖尔市','150821','五原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150822','1508','00,15,1508','磴口县','15','内蒙古自治区','1508','巴彦淖尔市','150822','磴口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150823','1508','00,15,1508','乌拉特前旗','15','内蒙古自治区','1508','巴彦淖尔市','150823','乌拉特前旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150824','1508','00,15,1508','乌拉特中旗','15','内蒙古自治区','1508','巴彦淖尔市','150824','乌拉特中旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150825','1508','00,15,1508','乌拉特后旗','15','内蒙古自治区','1508','巴彦淖尔市','150825','乌拉特后旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150826','1508','00,15,1508','杭锦后旗','15','内蒙古自治区','1508','巴彦淖尔市','150826','杭锦后旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1509','15','00,15','乌兰察布市','15','内蒙古自治区','1509','乌兰察布市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150902','1509','00,15,1509','集宁区','15','内蒙古自治区','1509','乌兰察布市','150902','集宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150921','1509','00,15,1509','卓资县','15','内蒙古自治区','1509','乌兰察布市','150921','卓资县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150922','1509','00,15,1509','化德县','15','内蒙古自治区','1509','乌兰察布市','150922','化德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150923','1509','00,15,1509','商都县','15','内蒙古自治区','1509','乌兰察布市','150923','商都县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150924','1509','00,15,1509','兴和县','15','内蒙古自治区','1509','乌兰察布市','150924','兴和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150925','1509','00,15,1509','凉城县','15','内蒙古自治区','1509','乌兰察布市','150925','凉城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150926','1509','00,15,1509','察哈尔右翼前旗','15','内蒙古自治区','1509','乌兰察布市','150926','察哈尔右翼前旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150927','1509','00,15,1509','察哈尔右翼中旗','15','内蒙古自治区','1509','乌兰察布市','150927','察哈尔右翼中旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150928','1509','00,15,1509','察哈尔右翼后旗','15','内蒙古自治区','1509','乌兰察布市','150928','察哈尔右翼后旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150929','1509','00,15,1509','四子王旗','15','内蒙古自治区','1509','乌兰察布市','150929','四子王旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('150981','1509','00,15,1509','丰镇市','15','内蒙古自治区','1509','乌兰察布市','150981','丰镇市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1522','15','00,15','兴安盟','15','内蒙古自治区','1522','兴安盟','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152201','1522','00,15,1522','乌兰浩特市','15','内蒙古自治区','1522','兴安盟','152201','乌兰浩特市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152202','1522','00,15,1522','阿尔山市','15','内蒙古自治区','1522','兴安盟','152202','阿尔山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152221','1522','00,15,1522','科尔沁右翼前旗','15','内蒙古自治区','1522','兴安盟','152221','科尔沁右翼前旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152222','1522','00,15,1522','科尔沁右翼中旗','15','内蒙古自治区','1522','兴安盟','152222','科尔沁右翼中旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152223','1522','00,15,1522','扎赉特旗','15','内蒙古自治区','1522','兴安盟','152223','扎赉特旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152224','1522','00,15,1522','突泉县','15','内蒙古自治区','1522','兴安盟','152224','突泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1525','15','00,15','锡林郭勒盟','15','内蒙古自治区','1525','锡林郭勒盟','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152501','1525','00,15,1525','二连浩特市','15','内蒙古自治区','1525','锡林郭勒盟','152501','二连浩特市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152502','1525','00,15,1525','锡林浩特市','15','内蒙古自治区','1525','锡林郭勒盟','152502','锡林浩特市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152522','1525','00,15,1525','阿巴嘎旗','15','内蒙古自治区','1525','锡林郭勒盟','152522','阿巴嘎旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152523','1525','00,15,1525','苏尼特左旗','15','内蒙古自治区','1525','锡林郭勒盟','152523','苏尼特左旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152524','1525','00,15,1525','苏尼特右旗','15','内蒙古自治区','1525','锡林郭勒盟','152524','苏尼特右旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152525','1525','00,15,1525','东乌珠穆沁旗','15','内蒙古自治区','1525','锡林郭勒盟','152525','东乌珠穆沁旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152526','1525','00,15,1525','西乌珠穆沁旗','15','内蒙古自治区','1525','锡林郭勒盟','152526','西乌珠穆沁旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152527','1525','00,15,1525','太仆寺旗','15','内蒙古自治区','1525','锡林郭勒盟','152527','太仆寺旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152528','1525','00,15,1525','镶黄旗','15','内蒙古自治区','1525','锡林郭勒盟','152528','镶黄旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152529','1525','00,15,1525','正镶白旗','15','内蒙古自治区','1525','锡林郭勒盟','152529','正镶白旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152530','1525','00,15,1525','正蓝旗','15','内蒙古自治区','1525','锡林郭勒盟','152530','正蓝旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152531','1525','00,15,1525','多伦县','15','内蒙古自治区','1525','锡林郭勒盟','152531','多伦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('1529','15','00,15','阿拉善盟','15','内蒙古自治区','1529','阿拉善盟','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152921','1529','00,15,1529','阿拉善左旗','15','内蒙古自治区','1529','阿拉善盟','152921','阿拉善左旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152922','1529','00,15,1529','阿拉善右旗','15','内蒙古自治区','1529','阿拉善盟','152922','阿拉善右旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('152923','1529','00,15,1529','额济纳旗','15','内蒙古自治区','1529','阿拉善盟','152923','额济纳旗','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('21','00','00','辽宁省','21','辽宁省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2101','21','00,21','沈阳市','21','辽宁省','2101','沈阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210102','2101','00,21,2101','和平区','21','辽宁省','2101','沈阳市','210102','和平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210103','2101','00,21,2101','沈河区','21','辽宁省','2101','沈阳市','210103','沈河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210104','2101','00,21,2101','大东区','21','辽宁省','2101','沈阳市','210104','大东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210105','2101','00,21,2101','皇姑区','21','辽宁省','2101','沈阳市','210105','皇姑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210106','2101','00,21,2101','铁西区','21','辽宁省','2101','沈阳市','210106','铁西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210111','2101','00,21,2101','苏家屯区','21','辽宁省','2101','沈阳市','210111','苏家屯区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210112','2101','00,21,2101','浑南区','21','辽宁省','2101','沈阳市','210112','浑南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210113','2101','00,21,2101','沈北新区','21','辽宁省','2101','沈阳市','210113','沈北新区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210114','2101','00,21,2101','于洪区','21','辽宁省','2101','沈阳市','210114','于洪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210115','2101','00,21,2101','辽中区','21','辽宁省','2101','沈阳市','210115','辽中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210123','2101','00,21,2101','康平县','21','辽宁省','2101','沈阳市','210123','康平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210124','2101','00,21,2101','法库县','21','辽宁省','2101','沈阳市','210124','法库县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210181','2101','00,21,2101','新民市','21','辽宁省','2101','沈阳市','210181','新民市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2102','21','00,21','大连市','21','辽宁省','2102','大连市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210202','2102','00,21,2102','中山区','21','辽宁省','2102','大连市','210202','中山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210203','2102','00,21,2102','西岗区','21','辽宁省','2102','大连市','210203','西岗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210204','2102','00,21,2102','沙河口区','21','辽宁省','2102','大连市','210204','沙河口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210211','2102','00,21,2102','甘井子区','21','辽宁省','2102','大连市','210211','甘井子区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210212','2102','00,21,2102','旅顺口区','21','辽宁省','2102','大连市','210212','旅顺口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210213','2102','00,21,2102','金州区','21','辽宁省','2102','大连市','210213','金州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210214','2102','00,21,2102','普兰店区','21','辽宁省','2102','大连市','210214','普兰店区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210224','2102','00,21,2102','长海县','21','辽宁省','2102','大连市','210224','长海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210281','2102','00,21,2102','瓦房店市','21','辽宁省','2102','大连市','210281','瓦房店市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210283','2102','00,21,2102','庄河市','21','辽宁省','2102','大连市','210283','庄河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2103','21','00,21','鞍山市','21','辽宁省','2103','鞍山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210302','2103','00,21,2103','铁东区','21','辽宁省','2103','鞍山市','210302','铁东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210303','2103','00,21,2103','铁西区','21','辽宁省','2103','鞍山市','210303','铁西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210304','2103','00,21,2103','立山区','21','辽宁省','2103','鞍山市','210304','立山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210311','2103','00,21,2103','千山区','21','辽宁省','2103','鞍山市','210311','千山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210321','2103','00,21,2103','台安县','21','辽宁省','2103','鞍山市','210321','台安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210323','2103','00,21,2103','岫岩满族自治县','21','辽宁省','2103','鞍山市','210323','岫岩满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210381','2103','00,21,2103','海城市','21','辽宁省','2103','鞍山市','210381','海城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2104','21','00,21','抚顺市','21','辽宁省','2104','抚顺市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210402','2104','00,21,2104','新抚区','21','辽宁省','2104','抚顺市','210402','新抚区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210403','2104','00,21,2104','东洲区','21','辽宁省','2104','抚顺市','210403','东洲区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210404','2104','00,21,2104','望花区','21','辽宁省','2104','抚顺市','210404','望花区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210411','2104','00,21,2104','顺城区','21','辽宁省','2104','抚顺市','210411','顺城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210421','2104','00,21,2104','抚顺县','21','辽宁省','2104','抚顺市','210421','抚顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210422','2104','00,21,2104','新宾满族自治县','21','辽宁省','2104','抚顺市','210422','新宾满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210423','2104','00,21,2104','清原满族自治县','21','辽宁省','2104','抚顺市','210423','清原满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2105','21','00,21','本溪市','21','辽宁省','2105','本溪市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210502','2105','00,21,2105','平山区','21','辽宁省','2105','本溪市','210502','平山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210503','2105','00,21,2105','溪湖区','21','辽宁省','2105','本溪市','210503','溪湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210504','2105','00,21,2105','明山区','21','辽宁省','2105','本溪市','210504','明山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210505','2105','00,21,2105','南芬区','21','辽宁省','2105','本溪市','210505','南芬区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210521','2105','00,21,2105','本溪满族自治县','21','辽宁省','2105','本溪市','210521','本溪满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210522','2105','00,21,2105','桓仁满族自治县','21','辽宁省','2105','本溪市','210522','桓仁满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2106','21','00,21','丹东市','21','辽宁省','2106','丹东市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210602','2106','00,21,2106','元宝区','21','辽宁省','2106','丹东市','210602','元宝区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210603','2106','00,21,2106','振兴区','21','辽宁省','2106','丹东市','210603','振兴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210604','2106','00,21,2106','振安区','21','辽宁省','2106','丹东市','210604','振安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210624','2106','00,21,2106','宽甸满族自治县','21','辽宁省','2106','丹东市','210624','宽甸满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210681','2106','00,21,2106','东港市','21','辽宁省','2106','丹东市','210681','东港市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210682','2106','00,21,2106','凤城市','21','辽宁省','2106','丹东市','210682','凤城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2107','21','00,21','锦州市','21','辽宁省','2107','锦州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210702','2107','00,21,2107','古塔区','21','辽宁省','2107','锦州市','210702','古塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210703','2107','00,21,2107','凌河区','21','辽宁省','2107','锦州市','210703','凌河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210711','2107','00,21,2107','太和区','21','辽宁省','2107','锦州市','210711','太和区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210726','2107','00,21,2107','黑山县','21','辽宁省','2107','锦州市','210726','黑山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210727','2107','00,21,2107','义县','21','辽宁省','2107','锦州市','210727','义县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210781','2107','00,21,2107','凌海市','21','辽宁省','2107','锦州市','210781','凌海市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210782','2107','00,21,2107','北镇市','21','辽宁省','2107','锦州市','210782','北镇市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2108','21','00,21','营口市','21','辽宁省','2108','营口市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210802','2108','00,21,2108','站前区','21','辽宁省','2108','营口市','210802','站前区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210803','2108','00,21,2108','西市区','21','辽宁省','2108','营口市','210803','西市区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210804','2108','00,21,2108','鲅鱼圈区','21','辽宁省','2108','营口市','210804','鲅鱼圈区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210811','2108','00,21,2108','老边区','21','辽宁省','2108','营口市','210811','老边区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210881','2108','00,21,2108','盖州市','21','辽宁省','2108','营口市','210881','盖州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210882','2108','00,21,2108','大石桥市','21','辽宁省','2108','营口市','210882','大石桥市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2109','21','00,21','阜新市','21','辽宁省','2109','阜新市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210902','2109','00,21,2109','海州区','21','辽宁省','2109','阜新市','210902','海州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210903','2109','00,21,2109','新邱区','21','辽宁省','2109','阜新市','210903','新邱区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210904','2109','00,21,2109','太平区','21','辽宁省','2109','阜新市','210904','太平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210905','2109','00,21,2109','清河门区','21','辽宁省','2109','阜新市','210905','清河门区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210911','2109','00,21,2109','细河区','21','辽宁省','2109','阜新市','210911','细河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210921','2109','00,21,2109','阜新蒙古族自治县','21','辽宁省','2109','阜新市','210921','阜新蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('210922','2109','00,21,2109','彰武县','21','辽宁省','2109','阜新市','210922','彰武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2110','21','00,21','辽阳市','21','辽宁省','2110','辽阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211002','2110','00,21,2110','白塔区','21','辽宁省','2110','辽阳市','211002','白塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211003','2110','00,21,2110','文圣区','21','辽宁省','2110','辽阳市','211003','文圣区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211004','2110','00,21,2110','宏伟区','21','辽宁省','2110','辽阳市','211004','宏伟区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211005','2110','00,21,2110','弓长岭区','21','辽宁省','2110','辽阳市','211005','弓长岭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211011','2110','00,21,2110','太子河区','21','辽宁省','2110','辽阳市','211011','太子河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211021','2110','00,21,2110','辽阳县','21','辽宁省','2110','辽阳市','211021','辽阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211081','2110','00,21,2110','灯塔市','21','辽宁省','2110','辽阳市','211081','灯塔市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2111','21','00,21','盘锦市','21','辽宁省','2111','盘锦市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211102','2111','00,21,2111','双台子区','21','辽宁省','2111','盘锦市','211102','双台子区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211103','2111','00,21,2111','兴隆台区','21','辽宁省','2111','盘锦市','211103','兴隆台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211104','2111','00,21,2111','大洼区','21','辽宁省','2111','盘锦市','211104','大洼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211122','2111','00,21,2111','盘山县','21','辽宁省','2111','盘锦市','211122','盘山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2112','21','00,21','铁岭市','21','辽宁省','2112','铁岭市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211202','2112','00,21,2112','银州区','21','辽宁省','2112','铁岭市','211202','银州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211204','2112','00,21,2112','清河区','21','辽宁省','2112','铁岭市','211204','清河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211221','2112','00,21,2112','铁岭县','21','辽宁省','2112','铁岭市','211221','铁岭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211223','2112','00,21,2112','西丰县','21','辽宁省','2112','铁岭市','211223','西丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211224','2112','00,21,2112','昌图县','21','辽宁省','2112','铁岭市','211224','昌图县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211281','2112','00,21,2112','调兵山市','21','辽宁省','2112','铁岭市','211281','调兵山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211282','2112','00,21,2112','开原市','21','辽宁省','2112','铁岭市','211282','开原市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2113','21','00,21','朝阳市','21','辽宁省','2113','朝阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211302','2113','00,21,2113','双塔区','21','辽宁省','2113','朝阳市','211302','双塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211303','2113','00,21,2113','龙城区','21','辽宁省','2113','朝阳市','211303','龙城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211321','2113','00,21,2113','朝阳县','21','辽宁省','2113','朝阳市','211321','朝阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211322','2113','00,21,2113','建平县','21','辽宁省','2113','朝阳市','211322','建平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211324','2113','00,21,2113','喀喇沁左翼蒙古族自治县','21','辽宁省','2113','朝阳市','211324','喀喇沁左翼蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211381','2113','00,21,2113','北票市','21','辽宁省','2113','朝阳市','211381','北票市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211382','2113','00,21,2113','凌源市','21','辽宁省','2113','朝阳市','211382','凌源市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2114','21','00,21','葫芦岛市','21','辽宁省','2114','葫芦岛市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211402','2114','00,21,2114','连山区','21','辽宁省','2114','葫芦岛市','211402','连山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211403','2114','00,21,2114','龙港区','21','辽宁省','2114','葫芦岛市','211403','龙港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211404','2114','00,21,2114','南票区','21','辽宁省','2114','葫芦岛市','211404','南票区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211421','2114','00,21,2114','绥中县','21','辽宁省','2114','葫芦岛市','211421','绥中县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211422','2114','00,21,2114','建昌县','21','辽宁省','2114','葫芦岛市','211422','建昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('211481','2114','00,21,2114','兴城市','21','辽宁省','2114','葫芦岛市','211481','兴城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('22','00','00','吉林省','22','吉林省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2201','22','00,22','长春市','22','吉林省','2201','长春市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220102','2201','00,22,2201','南关区','22','吉林省','2201','长春市','220102','南关区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220103','2201','00,22,2201','宽城区','22','吉林省','2201','长春市','220103','宽城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220104','2201','00,22,2201','朝阳区','22','吉林省','2201','长春市','220104','朝阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220105','2201','00,22,2201','二道区','22','吉林省','2201','长春市','220105','二道区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220106','2201','00,22,2201','绿园区','22','吉林省','2201','长春市','220106','绿园区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220112','2201','00,22,2201','双阳区','22','吉林省','2201','长春市','220112','双阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220113','2201','00,22,2201','九台区','22','吉林省','2201','长春市','220113','九台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220122','2201','00,22,2201','农安县','22','吉林省','2201','长春市','220122','农安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220182','2201','00,22,2201','榆树市','22','吉林省','2201','长春市','220182','榆树市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220183','2201','00,22,2201','德惠市','22','吉林省','2201','长春市','220183','德惠市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2202','22','00,22','吉林市','22','吉林省','2202','吉林市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220202','2202','00,22,2202','昌邑区','22','吉林省','2202','吉林市','220202','昌邑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220203','2202','00,22,2202','龙潭区','22','吉林省','2202','吉林市','220203','龙潭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220204','2202','00,22,2202','船营区','22','吉林省','2202','吉林市','220204','船营区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220211','2202','00,22,2202','丰满区','22','吉林省','2202','吉林市','220211','丰满区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220221','2202','00,22,2202','永吉县','22','吉林省','2202','吉林市','220221','永吉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220281','2202','00,22,2202','蛟河市','22','吉林省','2202','吉林市','220281','蛟河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220282','2202','00,22,2202','桦甸市','22','吉林省','2202','吉林市','220282','桦甸市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220283','2202','00,22,2202','舒兰市','22','吉林省','2202','吉林市','220283','舒兰市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220284','2202','00,22,2202','磐石市','22','吉林省','2202','吉林市','220284','磐石市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2203','22','00,22','四平市','22','吉林省','2203','四平市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220302','2203','00,22,2203','铁西区','22','吉林省','2203','四平市','220302','铁西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220303','2203','00,22,2203','铁东区','22','吉林省','2203','四平市','220303','铁东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220322','2203','00,22,2203','梨树县','22','吉林省','2203','四平市','220322','梨树县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220323','2203','00,22,2203','伊通满族自治县','22','吉林省','2203','四平市','220323','伊通满族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220381','2203','00,22,2203','公主岭市','22','吉林省','2203','四平市','220381','公主岭市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220382','2203','00,22,2203','双辽市','22','吉林省','2203','四平市','220382','双辽市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2204','22','00,22','辽源市','22','吉林省','2204','辽源市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220402','2204','00,22,2204','龙山区','22','吉林省','2204','辽源市','220402','龙山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220403','2204','00,22,2204','西安区','22','吉林省','2204','辽源市','220403','西安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220421','2204','00,22,2204','东丰县','22','吉林省','2204','辽源市','220421','东丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220422','2204','00,22,2204','东辽县','22','吉林省','2204','辽源市','220422','东辽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2205','22','00,22','通化市','22','吉林省','2205','通化市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220502','2205','00,22,2205','东昌区','22','吉林省','2205','通化市','220502','东昌区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220503','2205','00,22,2205','二道江区','22','吉林省','2205','通化市','220503','二道江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220521','2205','00,22,2205','通化县','22','吉林省','2205','通化市','220521','通化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220523','2205','00,22,2205','辉南县','22','吉林省','2205','通化市','220523','辉南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220524','2205','00,22,2205','柳河县','22','吉林省','2205','通化市','220524','柳河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220581','2205','00,22,2205','梅河口市','22','吉林省','2205','通化市','220581','梅河口市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220582','2205','00,22,2205','集安市','22','吉林省','2205','通化市','220582','集安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2206','22','00,22','白山市','22','吉林省','2206','白山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220602','2206','00,22,2206','浑江区','22','吉林省','2206','白山市','220602','浑江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220605','2206','00,22,2206','江源区','22','吉林省','2206','白山市','220605','江源区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220621','2206','00,22,2206','抚松县','22','吉林省','2206','白山市','220621','抚松县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220622','2206','00,22,2206','靖宇县','22','吉林省','2206','白山市','220622','靖宇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220623','2206','00,22,2206','长白朝鲜族自治县','22','吉林省','2206','白山市','220623','长白朝鲜族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220681','2206','00,22,2206','临江市','22','吉林省','2206','白山市','220681','临江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2207','22','00,22','松原市','22','吉林省','2207','松原市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220702','2207','00,22,2207','宁江区','22','吉林省','2207','松原市','220702','宁江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220721','2207','00,22,2207','前郭尔罗斯蒙古族自治县','22','吉林省','2207','松原市','220721','前郭尔罗斯蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220722','2207','00,22,2207','长岭县','22','吉林省','2207','松原市','220722','长岭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220723','2207','00,22,2207','乾安县','22','吉林省','2207','松原市','220723','乾安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220781','2207','00,22,2207','扶余市','22','吉林省','2207','松原市','220781','扶余市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2208','22','00,22','白城市','22','吉林省','2208','白城市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220802','2208','00,22,2208','洮北区','22','吉林省','2208','白城市','220802','洮北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220821','2208','00,22,2208','镇赉县','22','吉林省','2208','白城市','220821','镇赉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220822','2208','00,22,2208','通榆县','22','吉林省','2208','白城市','220822','通榆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220881','2208','00,22,2208','洮南市','22','吉林省','2208','白城市','220881','洮南市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('220882','2208','00,22,2208','大安市','22','吉林省','2208','白城市','220882','大安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2224','22','00,22','延边朝鲜族自治州','22','吉林省','2224','延边朝鲜族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222401','2224','00,22,2224','延吉市','22','吉林省','2224','延边朝鲜族自治州','222401','延吉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222402','2224','00,22,2224','图们市','22','吉林省','2224','延边朝鲜族自治州','222402','图们市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222403','2224','00,22,2224','敦化市','22','吉林省','2224','延边朝鲜族自治州','222403','敦化市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222404','2224','00,22,2224','珲春市','22','吉林省','2224','延边朝鲜族自治州','222404','珲春市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222405','2224','00,22,2224','龙井市','22','吉林省','2224','延边朝鲜族自治州','222405','龙井市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222406','2224','00,22,2224','和龙市','22','吉林省','2224','延边朝鲜族自治州','222406','和龙市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222424','2224','00,22,2224','汪清县','22','吉林省','2224','延边朝鲜族自治州','222424','汪清县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('222426','2224','00,22,2224','安图县','22','吉林省','2224','延边朝鲜族自治州','222426','安图县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('23','00','00','黑龙江省','23','黑龙江省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2301','23','00,23','哈尔滨市','23','黑龙江省','2301','哈尔滨市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230102','2301','00,23,2301','道里区','23','黑龙江省','2301','哈尔滨市','230102','道里区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230103','2301','00,23,2301','南岗区','23','黑龙江省','2301','哈尔滨市','230103','南岗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230104','2301','00,23,2301','道外区','23','黑龙江省','2301','哈尔滨市','230104','道外区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230108','2301','00,23,2301','平房区','23','黑龙江省','2301','哈尔滨市','230108','平房区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230109','2301','00,23,2301','松北区','23','黑龙江省','2301','哈尔滨市','230109','松北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230110','2301','00,23,2301','香坊区','23','黑龙江省','2301','哈尔滨市','230110','香坊区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230111','2301','00,23,2301','呼兰区','23','黑龙江省','2301','哈尔滨市','230111','呼兰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230112','2301','00,23,2301','阿城区','23','黑龙江省','2301','哈尔滨市','230112','阿城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230113','2301','00,23,2301','双城区','23','黑龙江省','2301','哈尔滨市','230113','双城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230123','2301','00,23,2301','依兰县','23','黑龙江省','2301','哈尔滨市','230123','依兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230124','2301','00,23,2301','方正县','23','黑龙江省','2301','哈尔滨市','230124','方正县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230125','2301','00,23,2301','宾县','23','黑龙江省','2301','哈尔滨市','230125','宾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230126','2301','00,23,2301','巴彦县','23','黑龙江省','2301','哈尔滨市','230126','巴彦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230127','2301','00,23,2301','木兰县','23','黑龙江省','2301','哈尔滨市','230127','木兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230128','2301','00,23,2301','通河县','23','黑龙江省','2301','哈尔滨市','230128','通河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230129','2301','00,23,2301','延寿县','23','黑龙江省','2301','哈尔滨市','230129','延寿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230183','2301','00,23,2301','尚志市','23','黑龙江省','2301','哈尔滨市','230183','尚志市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230184','2301','00,23,2301','五常市','23','黑龙江省','2301','哈尔滨市','230184','五常市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2302','23','00,23','齐齐哈尔市','23','黑龙江省','2302','齐齐哈尔市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230202','2302','00,23,2302','龙沙区','23','黑龙江省','2302','齐齐哈尔市','230202','龙沙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230203','2302','00,23,2302','建华区','23','黑龙江省','2302','齐齐哈尔市','230203','建华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230204','2302','00,23,2302','铁锋区','23','黑龙江省','2302','齐齐哈尔市','230204','铁锋区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230205','2302','00,23,2302','昂昂溪区','23','黑龙江省','2302','齐齐哈尔市','230205','昂昂溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230206','2302','00,23,2302','富拉尔基区','23','黑龙江省','2302','齐齐哈尔市','230206','富拉尔基区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230207','2302','00,23,2302','碾子山区','23','黑龙江省','2302','齐齐哈尔市','230207','碾子山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230208','2302','00,23,2302','梅里斯达斡尔族区','23','黑龙江省','2302','齐齐哈尔市','230208','梅里斯达斡尔族区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230221','2302','00,23,2302','龙江县','23','黑龙江省','2302','齐齐哈尔市','230221','龙江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230223','2302','00,23,2302','依安县','23','黑龙江省','2302','齐齐哈尔市','230223','依安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230224','2302','00,23,2302','泰来县','23','黑龙江省','2302','齐齐哈尔市','230224','泰来县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230225','2302','00,23,2302','甘南县','23','黑龙江省','2302','齐齐哈尔市','230225','甘南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230227','2302','00,23,2302','富裕县','23','黑龙江省','2302','齐齐哈尔市','230227','富裕县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230229','2302','00,23,2302','克山县','23','黑龙江省','2302','齐齐哈尔市','230229','克山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230230','2302','00,23,2302','克东县','23','黑龙江省','2302','齐齐哈尔市','230230','克东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230231','2302','00,23,2302','拜泉县','23','黑龙江省','2302','齐齐哈尔市','230231','拜泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230281','2302','00,23,2302','讷河市','23','黑龙江省','2302','齐齐哈尔市','230281','讷河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2303','23','00,23','鸡西市','23','黑龙江省','2303','鸡西市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230302','2303','00,23,2303','鸡冠区','23','黑龙江省','2303','鸡西市','230302','鸡冠区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230303','2303','00,23,2303','恒山区','23','黑龙江省','2303','鸡西市','230303','恒山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230304','2303','00,23,2303','滴道区','23','黑龙江省','2303','鸡西市','230304','滴道区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230305','2303','00,23,2303','梨树区','23','黑龙江省','2303','鸡西市','230305','梨树区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230306','2303','00,23,2303','城子河区','23','黑龙江省','2303','鸡西市','230306','城子河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230307','2303','00,23,2303','麻山区','23','黑龙江省','2303','鸡西市','230307','麻山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230321','2303','00,23,2303','鸡东县','23','黑龙江省','2303','鸡西市','230321','鸡东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230381','2303','00,23,2303','虎林市','23','黑龙江省','2303','鸡西市','230381','虎林市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230382','2303','00,23,2303','密山市','23','黑龙江省','2303','鸡西市','230382','密山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2304','23','00,23','鹤岗市','23','黑龙江省','2304','鹤岗市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230402','2304','00,23,2304','向阳区','23','黑龙江省','2304','鹤岗市','230402','向阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230403','2304','00,23,2304','工农区','23','黑龙江省','2304','鹤岗市','230403','工农区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230404','2304','00,23,2304','南山区','23','黑龙江省','2304','鹤岗市','230404','南山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230405','2304','00,23,2304','兴安区','23','黑龙江省','2304','鹤岗市','230405','兴安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230406','2304','00,23,2304','东山区','23','黑龙江省','2304','鹤岗市','230406','东山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230407','2304','00,23,2304','兴山区','23','黑龙江省','2304','鹤岗市','230407','兴山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230421','2304','00,23,2304','萝北县','23','黑龙江省','2304','鹤岗市','230421','萝北县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230422','2304','00,23,2304','绥滨县','23','黑龙江省','2304','鹤岗市','230422','绥滨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2305','23','00,23','双鸭山市','23','黑龙江省','2305','双鸭山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230502','2305','00,23,2305','尖山区','23','黑龙江省','2305','双鸭山市','230502','尖山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230503','2305','00,23,2305','岭东区','23','黑龙江省','2305','双鸭山市','230503','岭东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230505','2305','00,23,2305','四方台区','23','黑龙江省','2305','双鸭山市','230505','四方台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230506','2305','00,23,2305','宝山区','23','黑龙江省','2305','双鸭山市','230506','宝山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230521','2305','00,23,2305','集贤县','23','黑龙江省','2305','双鸭山市','230521','集贤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230522','2305','00,23,2305','友谊县','23','黑龙江省','2305','双鸭山市','230522','友谊县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230523','2305','00,23,2305','宝清县','23','黑龙江省','2305','双鸭山市','230523','宝清县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230524','2305','00,23,2305','饶河县','23','黑龙江省','2305','双鸭山市','230524','饶河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2306','23','00,23','大庆市','23','黑龙江省','2306','大庆市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230602','2306','00,23,2306','萨尔图区','23','黑龙江省','2306','大庆市','230602','萨尔图区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230603','2306','00,23,2306','龙凤区','23','黑龙江省','2306','大庆市','230603','龙凤区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230604','2306','00,23,2306','让胡路区','23','黑龙江省','2306','大庆市','230604','让胡路区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230605','2306','00,23,2306','红岗区','23','黑龙江省','2306','大庆市','230605','红岗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230606','2306','00,23,2306','大同区','23','黑龙江省','2306','大庆市','230606','大同区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230621','2306','00,23,2306','肇州县','23','黑龙江省','2306','大庆市','230621','肇州县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230622','2306','00,23,2306','肇源县','23','黑龙江省','2306','大庆市','230622','肇源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230623','2306','00,23,2306','林甸县','23','黑龙江省','2306','大庆市','230623','林甸县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230624','2306','00,23,2306','杜尔伯特蒙古族自治县','23','黑龙江省','2306','大庆市','230624','杜尔伯特蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2307','23','00,23','伊春市','23','黑龙江省','2307','伊春市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230717','2307','00,23,2307','伊美区','23','黑龙江省','2307','伊春市','230717','伊美区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230718','2307','00,23,2307','乌翠区','23','黑龙江省','2307','伊春市','230718','乌翠区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230719','2307','00,23,2307','友好区','23','黑龙江省','2307','伊春市','230719','友好区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230722','2307','00,23,2307','嘉荫县','23','黑龙江省','2307','伊春市','230722','嘉荫县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230723','2307','00,23,2307','汤旺县','23','黑龙江省','2307','伊春市','230723','汤旺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230724','2307','00,23,2307','丰林县','23','黑龙江省','2307','伊春市','230724','丰林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230725','2307','00,23,2307','大箐山县','23','黑龙江省','2307','伊春市','230725','大箐山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230726','2307','00,23,2307','南岔县','23','黑龙江省','2307','伊春市','230726','南岔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230751','2307','00,23,2307','金林区','23','黑龙江省','2307','伊春市','230751','金林区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230781','2307','00,23,2307','铁力市','23','黑龙江省','2307','伊春市','230781','铁力市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2308','23','00,23','佳木斯市','23','黑龙江省','2308','佳木斯市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230803','2308','00,23,2308','向阳区','23','黑龙江省','2308','佳木斯市','230803','向阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230804','2308','00,23,2308','前进区','23','黑龙江省','2308','佳木斯市','230804','前进区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230805','2308','00,23,2308','东风区','23','黑龙江省','2308','佳木斯市','230805','东风区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230811','2308','00,23,2308','郊区','23','黑龙江省','2308','佳木斯市','230811','郊区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230822','2308','00,23,2308','桦南县','23','黑龙江省','2308','佳木斯市','230822','桦南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230826','2308','00,23,2308','桦川县','23','黑龙江省','2308','佳木斯市','230826','桦川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230828','2308','00,23,2308','汤原县','23','黑龙江省','2308','佳木斯市','230828','汤原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230881','2308','00,23,2308','同江市','23','黑龙江省','2308','佳木斯市','230881','同江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230882','2308','00,23,2308','富锦市','23','黑龙江省','2308','佳木斯市','230882','富锦市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230883','2308','00,23,2308','抚远市','23','黑龙江省','2308','佳木斯市','230883','抚远市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2309','23','00,23','七台河市','23','黑龙江省','2309','七台河市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230902','2309','00,23,2309','新兴区','23','黑龙江省','2309','七台河市','230902','新兴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230903','2309','00,23,2309','桃山区','23','黑龙江省','2309','七台河市','230903','桃山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230904','2309','00,23,2309','茄子河区','23','黑龙江省','2309','七台河市','230904','茄子河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('230921','2309','00,23,2309','勃利县','23','黑龙江省','2309','七台河市','230921','勃利县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2310','23','00,23','牡丹江市','23','黑龙江省','2310','牡丹江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231002','2310','00,23,2310','东安区','23','黑龙江省','2310','牡丹江市','231002','东安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231003','2310','00,23,2310','阳明区','23','黑龙江省','2310','牡丹江市','231003','阳明区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231004','2310','00,23,2310','爱民区','23','黑龙江省','2310','牡丹江市','231004','爱民区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231005','2310','00,23,2310','西安区','23','黑龙江省','2310','牡丹江市','231005','西安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231025','2310','00,23,2310','林口县','23','黑龙江省','2310','牡丹江市','231025','林口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231081','2310','00,23,2310','绥芬河市','23','黑龙江省','2310','牡丹江市','231081','绥芬河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231083','2310','00,23,2310','海林市','23','黑龙江省','2310','牡丹江市','231083','海林市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231084','2310','00,23,2310','宁安市','23','黑龙江省','2310','牡丹江市','231084','宁安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231085','2310','00,23,2310','穆棱市','23','黑龙江省','2310','牡丹江市','231085','穆棱市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231086','2310','00,23,2310','东宁市','23','黑龙江省','2310','牡丹江市','231086','东宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2311','23','00,23','黑河市','23','黑龙江省','2311','黑河市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231102','2311','00,23,2311','爱辉区','23','黑龙江省','2311','黑河市','231102','爱辉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231123','2311','00,23,2311','逊克县','23','黑龙江省','2311','黑河市','231123','逊克县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231124','2311','00,23,2311','孙吴县','23','黑龙江省','2311','黑河市','231124','孙吴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231181','2311','00,23,2311','北安市','23','黑龙江省','2311','黑河市','231181','北安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231182','2311','00,23,2311','五大连池市','23','黑龙江省','2311','黑河市','231182','五大连池市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231183','2311','00,23,2311','嫩江市','23','黑龙江省','2311','黑河市','231183','嫩江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2312','23','00,23','绥化市','23','黑龙江省','2312','绥化市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231202','2312','00,23,2312','北林区','23','黑龙江省','2312','绥化市','231202','北林区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231221','2312','00,23,2312','望奎县','23','黑龙江省','2312','绥化市','231221','望奎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231222','2312','00,23,2312','兰西县','23','黑龙江省','2312','绥化市','231222','兰西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231223','2312','00,23,2312','青冈县','23','黑龙江省','2312','绥化市','231223','青冈县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231224','2312','00,23,2312','庆安县','23','黑龙江省','2312','绥化市','231224','庆安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231225','2312','00,23,2312','明水县','23','黑龙江省','2312','绥化市','231225','明水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231226','2312','00,23,2312','绥棱县','23','黑龙江省','2312','绥化市','231226','绥棱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231281','2312','00,23,2312','安达市','23','黑龙江省','2312','绥化市','231281','安达市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231282','2312','00,23,2312','肇东市','23','黑龙江省','2312','绥化市','231282','肇东市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('231283','2312','00,23,2312','海伦市','23','黑龙江省','2312','绥化市','231283','海伦市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('2327','23','00,23','大兴安岭地区','23','黑龙江省','2327','大兴安岭地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('232701','2327','00,23,2327','漠河市','23','黑龙江省','2327','大兴安岭地区','232701','漠河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('232721','2327','00,23,2327','呼玛县','23','黑龙江省','2327','大兴安岭地区','232721','呼玛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('232722','2327','00,23,2327','塔河县','23','黑龙江省','2327','大兴安岭地区','232722','塔河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('31','00','00','上海市','31','上海市','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3101','31','00,31','上海市','31','上海市','3101','上海市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310101','3101','00,31,3101','黄浦区','31','上海市','3101','上海市','310101','黄浦区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310104','3101','00,31,3101','徐汇区','31','上海市','3101','上海市','310104','徐汇区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310105','3101','00,31,3101','长宁区','31','上海市','3101','上海市','310105','长宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310106','3101','00,31,3101','静安区','31','上海市','3101','上海市','310106','静安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310107','3101','00,31,3101','普陀区','31','上海市','3101','上海市','310107','普陀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310109','3101','00,31,3101','虹口区','31','上海市','3101','上海市','310109','虹口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310110','3101','00,31,3101','杨浦区','31','上海市','3101','上海市','310110','杨浦区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310112','3101','00,31,3101','闵行区','31','上海市','3101','上海市','310112','闵行区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310113','3101','00,31,3101','宝山区','31','上海市','3101','上海市','310113','宝山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310114','3101','00,31,3101','嘉定区','31','上海市','3101','上海市','310114','嘉定区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310115','3101','00,31,3101','浦东新区','31','上海市','3101','上海市','310115','浦东新区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310116','3101','00,31,3101','金山区','31','上海市','3101','上海市','310116','金山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310117','3101','00,31,3101','松江区','31','上海市','3101','上海市','310117','松江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310118','3101','00,31,3101','青浦区','31','上海市','3101','上海市','310118','青浦区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310120','3101','00,31,3101','奉贤区','31','上海市','3101','上海市','310120','奉贤区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('310151','3101','00,31,3101','崇明区','31','上海市','3101','上海市','310151','崇明区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('32','00','00','江苏省','32','江苏省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3201','32','00,32','南京市','32','江苏省','3201','南京市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320102','3201','00,32,3201','玄武区','32','江苏省','3201','南京市','320102','玄武区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320104','3201','00,32,3201','秦淮区','32','江苏省','3201','南京市','320104','秦淮区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320105','3201','00,32,3201','建邺区','32','江苏省','3201','南京市','320105','建邺区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320106','3201','00,32,3201','鼓楼区','32','江苏省','3201','南京市','320106','鼓楼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320111','3201','00,32,3201','浦口区','32','江苏省','3201','南京市','320111','浦口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320113','3201','00,32,3201','栖霞区','32','江苏省','3201','南京市','320113','栖霞区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320114','3201','00,32,3201','雨花台区','32','江苏省','3201','南京市','320114','雨花台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320115','3201','00,32,3201','江宁区','32','江苏省','3201','南京市','320115','江宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320116','3201','00,32,3201','六合区','32','江苏省','3201','南京市','320116','六合区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320117','3201','00,32,3201','溧水区','32','江苏省','3201','南京市','320117','溧水区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320118','3201','00,32,3201','高淳区','32','江苏省','3201','南京市','320118','高淳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3202','32','00,32','无锡市','32','江苏省','3202','无锡市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320205','3202','00,32,3202','锡山区','32','江苏省','3202','无锡市','320205','锡山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320206','3202','00,32,3202','惠山区','32','江苏省','3202','无锡市','320206','惠山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320211','3202','00,32,3202','滨湖区','32','江苏省','3202','无锡市','320211','滨湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320213','3202','00,32,3202','梁溪区','32','江苏省','3202','无锡市','320213','梁溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320214','3202','00,32,3202','新吴区','32','江苏省','3202','无锡市','320214','新吴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320281','3202','00,32,3202','江阴市','32','江苏省','3202','无锡市','320281','江阴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320282','3202','00,32,3202','宜兴市','32','江苏省','3202','无锡市','320282','宜兴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3203','32','00,32','徐州市','32','江苏省','3203','徐州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320302','3203','00,32,3203','鼓楼区','32','江苏省','3203','徐州市','320302','鼓楼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320303','3203','00,32,3203','云龙区','32','江苏省','3203','徐州市','320303','云龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320305','3203','00,32,3203','贾汪区','32','江苏省','3203','徐州市','320305','贾汪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320311','3203','00,32,3203','泉山区','32','江苏省','3203','徐州市','320311','泉山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320312','3203','00,32,3203','铜山区','32','江苏省','3203','徐州市','320312','铜山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320321','3203','00,32,3203','丰县','32','江苏省','3203','徐州市','320321','丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320322','3203','00,32,3203','沛县','32','江苏省','3203','徐州市','320322','沛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320324','3203','00,32,3203','睢宁县','32','江苏省','3203','徐州市','320324','睢宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320381','3203','00,32,3203','新沂市','32','江苏省','3203','徐州市','320381','新沂市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320382','3203','00,32,3203','邳州市','32','江苏省','3203','徐州市','320382','邳州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3204','32','00,32','常州市','32','江苏省','3204','常州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320402','3204','00,32,3204','天宁区','32','江苏省','3204','常州市','320402','天宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320404','3204','00,32,3204','钟楼区','32','江苏省','3204','常州市','320404','钟楼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320411','3204','00,32,3204','新北区','32','江苏省','3204','常州市','320411','新北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320412','3204','00,32,3204','武进区','32','江苏省','3204','常州市','320412','武进区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320413','3204','00,32,3204','金坛区','32','江苏省','3204','常州市','320413','金坛区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320481','3204','00,32,3204','溧阳市','32','江苏省','3204','常州市','320481','溧阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3205','32','00,32','苏州市','32','江苏省','3205','苏州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320505','3205','00,32,3205','虎丘区','32','江苏省','3205','苏州市','320505','虎丘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320506','3205','00,32,3205','吴中区','32','江苏省','3205','苏州市','320506','吴中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320507','3205','00,32,3205','相城区','32','江苏省','3205','苏州市','320507','相城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320508','3205','00,32,3205','姑苏区','32','江苏省','3205','苏州市','320508','姑苏区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320509','3205','00,32,3205','吴江区','32','江苏省','3205','苏州市','320509','吴江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320581','3205','00,32,3205','常熟市','32','江苏省','3205','苏州市','320581','常熟市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320582','3205','00,32,3205','张家港市','32','江苏省','3205','苏州市','320582','张家港市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320583','3205','00,32,3205','昆山市','32','江苏省','3205','苏州市','320583','昆山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320585','3205','00,32,3205','太仓市','32','江苏省','3205','苏州市','320585','太仓市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3206','32','00,32','南通市','32','江苏省','3206','南通市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320602','3206','00,32,3206','崇川区','32','江苏省','3206','南通市','320602','崇川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320611','3206','00,32,3206','港闸区','32','江苏省','3206','南通市','320611','港闸区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320612','3206','00,32,3206','通州区','32','江苏省','3206','南通市','320612','通州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320623','3206','00,32,3206','如东县','32','江苏省','3206','南通市','320623','如东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320681','3206','00,32,3206','启东市','32','江苏省','3206','南通市','320681','启东市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320682','3206','00,32,3206','如皋市','32','江苏省','3206','南通市','320682','如皋市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320684','3206','00,32,3206','海门市','32','江苏省','3206','南通市','320684','海门市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320685','3206','00,32,3206','海安市','32','江苏省','3206','南通市','320685','海安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3207','32','00,32','连云港市','32','江苏省','3207','连云港市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320703','3207','00,32,3207','连云区','32','江苏省','3207','连云港市','320703','连云区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320706','3207','00,32,3207','海州区','32','江苏省','3207','连云港市','320706','海州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320707','3207','00,32,3207','赣榆区','32','江苏省','3207','连云港市','320707','赣榆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320722','3207','00,32,3207','东海县','32','江苏省','3207','连云港市','320722','东海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320723','3207','00,32,3207','灌云县','32','江苏省','3207','连云港市','320723','灌云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320724','3207','00,32,3207','灌南县','32','江苏省','3207','连云港市','320724','灌南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3208','32','00,32','淮安市','32','江苏省','3208','淮安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320803','3208','00,32,3208','淮安区','32','江苏省','3208','淮安市','320803','淮安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320804','3208','00,32,3208','淮阴区','32','江苏省','3208','淮安市','320804','淮阴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320812','3208','00,32,3208','清江浦区','32','江苏省','3208','淮安市','320812','清江浦区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320813','3208','00,32,3208','洪泽区','32','江苏省','3208','淮安市','320813','洪泽区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320826','3208','00,32,3208','涟水县','32','江苏省','3208','淮安市','320826','涟水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320830','3208','00,32,3208','盱眙县','32','江苏省','3208','淮安市','320830','盱眙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320831','3208','00,32,3208','金湖县','32','江苏省','3208','淮安市','320831','金湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3209','32','00,32','盐城市','32','江苏省','3209','盐城市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320902','3209','00,32,3209','亭湖区','32','江苏省','3209','盐城市','320902','亭湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320903','3209','00,32,3209','盐都区','32','江苏省','3209','盐城市','320903','盐都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320904','3209','00,32,3209','大丰区','32','江苏省','3209','盐城市','320904','大丰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320921','3209','00,32,3209','响水县','32','江苏省','3209','盐城市','320921','响水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320922','3209','00,32,3209','滨海县','32','江苏省','3209','盐城市','320922','滨海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320923','3209','00,32,3209','阜宁县','32','江苏省','3209','盐城市','320923','阜宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320924','3209','00,32,3209','射阳县','32','江苏省','3209','盐城市','320924','射阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320925','3209','00,32,3209','建湖县','32','江苏省','3209','盐城市','320925','建湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('320981','3209','00,32,3209','东台市','32','江苏省','3209','盐城市','320981','东台市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3210','32','00,32','扬州市','32','江苏省','3210','扬州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321002','3210','00,32,3210','广陵区','32','江苏省','3210','扬州市','321002','广陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321003','3210','00,32,3210','邗江区','32','江苏省','3210','扬州市','321003','邗江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321012','3210','00,32,3210','江都区','32','江苏省','3210','扬州市','321012','江都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321023','3210','00,32,3210','宝应县','32','江苏省','3210','扬州市','321023','宝应县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321081','3210','00,32,3210','仪征市','32','江苏省','3210','扬州市','321081','仪征市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321084','3210','00,32,3210','高邮市','32','江苏省','3210','扬州市','321084','高邮市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3211','32','00,32','镇江市','32','江苏省','3211','镇江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321102','3211','00,32,3211','京口区','32','江苏省','3211','镇江市','321102','京口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321111','3211','00,32,3211','润州区','32','江苏省','3211','镇江市','321111','润州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321112','3211','00,32,3211','丹徒区','32','江苏省','3211','镇江市','321112','丹徒区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321181','3211','00,32,3211','丹阳市','32','江苏省','3211','镇江市','321181','丹阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321182','3211','00,32,3211','扬中市','32','江苏省','3211','镇江市','321182','扬中市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321183','3211','00,32,3211','句容市','32','江苏省','3211','镇江市','321183','句容市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3212','32','00,32','泰州市','32','江苏省','3212','泰州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321202','3212','00,32,3212','海陵区','32','江苏省','3212','泰州市','321202','海陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321203','3212','00,32,3212','高港区','32','江苏省','3212','泰州市','321203','高港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321204','3212','00,32,3212','姜堰区','32','江苏省','3212','泰州市','321204','姜堰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321281','3212','00,32,3212','兴化市','32','江苏省','3212','泰州市','321281','兴化市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321282','3212','00,32,3212','靖江市','32','江苏省','3212','泰州市','321282','靖江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321283','3212','00,32,3212','泰兴市','32','江苏省','3212','泰州市','321283','泰兴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3213','32','00,32','宿迁市','32','江苏省','3213','宿迁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321302','3213','00,32,3213','宿城区','32','江苏省','3213','宿迁市','321302','宿城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321311','3213','00,32,3213','宿豫区','32','江苏省','3213','宿迁市','321311','宿豫区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321322','3213','00,32,3213','沭阳县','32','江苏省','3213','宿迁市','321322','沭阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321323','3213','00,32,3213','泗阳县','32','江苏省','3213','宿迁市','321323','泗阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('321324','3213','00,32,3213','泗洪县','32','江苏省','3213','宿迁市','321324','泗洪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('33','00','00','浙江省','33','浙江省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3301','33','00,33','杭州市','33','浙江省','3301','杭州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330102','3301','00,33,3301','上城区','33','浙江省','3301','杭州市','330102','上城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330103','3301','00,33,3301','下城区','33','浙江省','3301','杭州市','330103','下城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330104','3301','00,33,3301','江干区','33','浙江省','3301','杭州市','330104','江干区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330105','3301','00,33,3301','拱墅区','33','浙江省','3301','杭州市','330105','拱墅区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330106','3301','00,33,3301','西湖区','33','浙江省','3301','杭州市','330106','西湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330108','3301','00,33,3301','滨江区','33','浙江省','3301','杭州市','330108','滨江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330109','3301','00,33,3301','萧山区','33','浙江省','3301','杭州市','330109','萧山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330110','3301','00,33,3301','余杭区','33','浙江省','3301','杭州市','330110','余杭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330111','3301','00,33,3301','富阳区','33','浙江省','3301','杭州市','330111','富阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330112','3301','00,33,3301','临安区','33','浙江省','3301','杭州市','330112','临安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330122','3301','00,33,3301','桐庐县','33','浙江省','3301','杭州市','330122','桐庐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330127','3301','00,33,3301','淳安县','33','浙江省','3301','杭州市','330127','淳安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330182','3301','00,33,3301','建德市','33','浙江省','3301','杭州市','330182','建德市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3302','33','00,33','宁波市','33','浙江省','3302','宁波市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330203','3302','00,33,3302','海曙区','33','浙江省','3302','宁波市','330203','海曙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330205','3302','00,33,3302','江北区','33','浙江省','3302','宁波市','330205','江北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330206','3302','00,33,3302','北仑区','33','浙江省','3302','宁波市','330206','北仑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330211','3302','00,33,3302','镇海区','33','浙江省','3302','宁波市','330211','镇海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330212','3302','00,33,3302','鄞州区','33','浙江省','3302','宁波市','330212','鄞州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330213','3302','00,33,3302','奉化区','33','浙江省','3302','宁波市','330213','奉化区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330225','3302','00,33,3302','象山县','33','浙江省','3302','宁波市','330225','象山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330226','3302','00,33,3302','宁海县','33','浙江省','3302','宁波市','330226','宁海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330281','3302','00,33,3302','余姚市','33','浙江省','3302','宁波市','330281','余姚市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330282','3302','00,33,3302','慈溪市','33','浙江省','3302','宁波市','330282','慈溪市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3303','33','00,33','温州市','33','浙江省','3303','温州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330302','3303','00,33,3303','鹿城区','33','浙江省','3303','温州市','330302','鹿城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330303','3303','00,33,3303','龙湾区','33','浙江省','3303','温州市','330303','龙湾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330304','3303','00,33,3303','瓯海区','33','浙江省','3303','温州市','330304','瓯海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330305','3303','00,33,3303','洞头区','33','浙江省','3303','温州市','330305','洞头区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330324','3303','00,33,3303','永嘉县','33','浙江省','3303','温州市','330324','永嘉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330326','3303','00,33,3303','平阳县','33','浙江省','3303','温州市','330326','平阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330327','3303','00,33,3303','苍南县','33','浙江省','3303','温州市','330327','苍南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330328','3303','00,33,3303','文成县','33','浙江省','3303','温州市','330328','文成县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330329','3303','00,33,3303','泰顺县','33','浙江省','3303','温州市','330329','泰顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330381','3303','00,33,3303','瑞安市','33','浙江省','3303','温州市','330381','瑞安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330382','3303','00,33,3303','乐清市','33','浙江省','3303','温州市','330382','乐清市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330383','3303','00,33,3303','龙港市','33','浙江省','3303','温州市','330383','龙港市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3304','33','00,33','嘉兴市','33','浙江省','3304','嘉兴市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330402','3304','00,33,3304','南湖区','33','浙江省','3304','嘉兴市','330402','南湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330411','3304','00,33,3304','秀洲区','33','浙江省','3304','嘉兴市','330411','秀洲区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330421','3304','00,33,3304','嘉善县','33','浙江省','3304','嘉兴市','330421','嘉善县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330424','3304','00,33,3304','海盐县','33','浙江省','3304','嘉兴市','330424','海盐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330481','3304','00,33,3304','海宁市','33','浙江省','3304','嘉兴市','330481','海宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330482','3304','00,33,3304','平湖市','33','浙江省','3304','嘉兴市','330482','平湖市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330483','3304','00,33,3304','桐乡市','33','浙江省','3304','嘉兴市','330483','桐乡市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3305','33','00,33','湖州市','33','浙江省','3305','湖州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330502','3305','00,33,3305','吴兴区','33','浙江省','3305','湖州市','330502','吴兴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330503','3305','00,33,3305','南浔区','33','浙江省','3305','湖州市','330503','南浔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330521','3305','00,33,3305','德清县','33','浙江省','3305','湖州市','330521','德清县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330522','3305','00,33,3305','长兴县','33','浙江省','3305','湖州市','330522','长兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330523','3305','00,33,3305','安吉县','33','浙江省','3305','湖州市','330523','安吉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3306','33','00,33','绍兴市','33','浙江省','3306','绍兴市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330602','3306','00,33,3306','越城区','33','浙江省','3306','绍兴市','330602','越城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330603','3306','00,33,3306','柯桥区','33','浙江省','3306','绍兴市','330603','柯桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330604','3306','00,33,3306','上虞区','33','浙江省','3306','绍兴市','330604','上虞区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330624','3306','00,33,3306','新昌县','33','浙江省','3306','绍兴市','330624','新昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330681','3306','00,33,3306','诸暨市','33','浙江省','3306','绍兴市','330681','诸暨市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330683','3306','00,33,3306','嵊州市','33','浙江省','3306','绍兴市','330683','嵊州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3307','33','00,33','金华市','33','浙江省','3307','金华市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330702','3307','00,33,3307','婺城区','33','浙江省','3307','金华市','330702','婺城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330703','3307','00,33,3307','金东区','33','浙江省','3307','金华市','330703','金东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330723','3307','00,33,3307','武义县','33','浙江省','3307','金华市','330723','武义县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330726','3307','00,33,3307','浦江县','33','浙江省','3307','金华市','330726','浦江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330727','3307','00,33,3307','磐安县','33','浙江省','3307','金华市','330727','磐安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330781','3307','00,33,3307','兰溪市','33','浙江省','3307','金华市','330781','兰溪市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330782','3307','00,33,3307','义乌市','33','浙江省','3307','金华市','330782','义乌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330783','3307','00,33,3307','东阳市','33','浙江省','3307','金华市','330783','东阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330784','3307','00,33,3307','永康市','33','浙江省','3307','金华市','330784','永康市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3308','33','00,33','衢州市','33','浙江省','3308','衢州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330802','3308','00,33,3308','柯城区','33','浙江省','3308','衢州市','330802','柯城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330803','3308','00,33,3308','衢江区','33','浙江省','3308','衢州市','330803','衢江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330822','3308','00,33,3308','常山县','33','浙江省','3308','衢州市','330822','常山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330824','3308','00,33,3308','开化县','33','浙江省','3308','衢州市','330824','开化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330825','3308','00,33,3308','龙游县','33','浙江省','3308','衢州市','330825','龙游县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330881','3308','00,33,3308','江山市','33','浙江省','3308','衢州市','330881','江山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3309','33','00,33','舟山市','33','浙江省','3309','舟山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330902','3309','00,33,3309','定海区','33','浙江省','3309','舟山市','330902','定海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330903','3309','00,33,3309','普陀区','33','浙江省','3309','舟山市','330903','普陀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330921','3309','00,33,3309','岱山县','33','浙江省','3309','舟山市','330921','岱山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('330922','3309','00,33,3309','嵊泗县','33','浙江省','3309','舟山市','330922','嵊泗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3310','33','00,33','台州市','33','浙江省','3310','台州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331002','3310','00,33,3310','椒江区','33','浙江省','3310','台州市','331002','椒江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331003','3310','00,33,3310','黄岩区','33','浙江省','3310','台州市','331003','黄岩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331004','3310','00,33,3310','路桥区','33','浙江省','3310','台州市','331004','路桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331022','3310','00,33,3310','三门县','33','浙江省','3310','台州市','331022','三门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331023','3310','00,33,3310','天台县','33','浙江省','3310','台州市','331023','天台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331024','3310','00,33,3310','仙居县','33','浙江省','3310','台州市','331024','仙居县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331081','3310','00,33,3310','温岭市','33','浙江省','3310','台州市','331081','温岭市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331082','3310','00,33,3310','临海市','33','浙江省','3310','台州市','331082','临海市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331083','3310','00,33,3310','玉环市','33','浙江省','3310','台州市','331083','玉环市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3311','33','00,33','丽水市','33','浙江省','3311','丽水市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331102','3311','00,33,3311','莲都区','33','浙江省','3311','丽水市','331102','莲都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331121','3311','00,33,3311','青田县','33','浙江省','3311','丽水市','331121','青田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331122','3311','00,33,3311','缙云县','33','浙江省','3311','丽水市','331122','缙云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331123','3311','00,33,3311','遂昌县','33','浙江省','3311','丽水市','331123','遂昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331124','3311','00,33,3311','松阳县','33','浙江省','3311','丽水市','331124','松阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331125','3311','00,33,3311','云和县','33','浙江省','3311','丽水市','331125','云和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331126','3311','00,33,3311','庆元县','33','浙江省','3311','丽水市','331126','庆元县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331127','3311','00,33,3311','景宁畲族自治县','33','浙江省','3311','丽水市','331127','景宁畲族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('331181','3311','00,33,3311','龙泉市','33','浙江省','3311','丽水市','331181','龙泉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('34','00','00','安徽省','34','安徽省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3401','34','00,34','合肥市','34','安徽省','3401','合肥市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340102','3401','00,34,3401','瑶海区','34','安徽省','3401','合肥市','340102','瑶海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340103','3401','00,34,3401','庐阳区','34','安徽省','3401','合肥市','340103','庐阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340104','3401','00,34,3401','蜀山区','34','安徽省','3401','合肥市','340104','蜀山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340111','3401','00,34,3401','包河区','34','安徽省','3401','合肥市','340111','包河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340121','3401','00,34,3401','长丰县','34','安徽省','3401','合肥市','340121','长丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340122','3401','00,34,3401','肥东县','34','安徽省','3401','合肥市','340122','肥东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340123','3401','00,34,3401','肥西县','34','安徽省','3401','合肥市','340123','肥西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340124','3401','00,34,3401','庐江县','34','安徽省','3401','合肥市','340124','庐江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340181','3401','00,34,3401','巢湖市','34','安徽省','3401','合肥市','340181','巢湖市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3402','34','00,34','芜湖市','34','安徽省','3402','芜湖市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340202','3402','00,34,3402','镜湖区','34','安徽省','3402','芜湖市','340202','镜湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340203','3402','00,34,3402','弋江区','34','安徽省','3402','芜湖市','340203','弋江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340207','3402','00,34,3402','鸠江区','34','安徽省','3402','芜湖市','340207','鸠江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340208','3402','00,34,3402','三山区','34','安徽省','3402','芜湖市','340208','三山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340221','3402','00,34,3402','芜湖县','34','安徽省','3402','芜湖市','340221','芜湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340222','3402','00,34,3402','繁昌县','34','安徽省','3402','芜湖市','340222','繁昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340223','3402','00,34,3402','南陵县','34','安徽省','3402','芜湖市','340223','南陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340281','3402','00,34,3402','无为市','34','安徽省','3402','芜湖市','340281','无为市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3403','34','00,34','蚌埠市','34','安徽省','3403','蚌埠市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340302','3403','00,34,3403','龙子湖区','34','安徽省','3403','蚌埠市','340302','龙子湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340303','3403','00,34,3403','蚌山区','34','安徽省','3403','蚌埠市','340303','蚌山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340304','3403','00,34,3403','禹会区','34','安徽省','3403','蚌埠市','340304','禹会区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340311','3403','00,34,3403','淮上区','34','安徽省','3403','蚌埠市','340311','淮上区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340321','3403','00,34,3403','怀远县','34','安徽省','3403','蚌埠市','340321','怀远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340322','3403','00,34,3403','五河县','34','安徽省','3403','蚌埠市','340322','五河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340323','3403','00,34,3403','固镇县','34','安徽省','3403','蚌埠市','340323','固镇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3404','34','00,34','淮南市','34','安徽省','3404','淮南市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340402','3404','00,34,3404','大通区','34','安徽省','3404','淮南市','340402','大通区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340403','3404','00,34,3404','田家庵区','34','安徽省','3404','淮南市','340403','田家庵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340404','3404','00,34,3404','谢家集区','34','安徽省','3404','淮南市','340404','谢家集区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340405','3404','00,34,3404','八公山区','34','安徽省','3404','淮南市','340405','八公山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340406','3404','00,34,3404','潘集区','34','安徽省','3404','淮南市','340406','潘集区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340421','3404','00,34,3404','凤台县','34','安徽省','3404','淮南市','340421','凤台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340422','3404','00,34,3404','寿县','34','安徽省','3404','淮南市','340422','寿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3405','34','00,34','马鞍山市','34','安徽省','3405','马鞍山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340503','3405','00,34,3405','花山区','34','安徽省','3405','马鞍山市','340503','花山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340504','3405','00,34,3405','雨山区','34','安徽省','3405','马鞍山市','340504','雨山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340506','3405','00,34,3405','博望区','34','安徽省','3405','马鞍山市','340506','博望区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340521','3405','00,34,3405','当涂县','34','安徽省','3405','马鞍山市','340521','当涂县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340522','3405','00,34,3405','含山县','34','安徽省','3405','马鞍山市','340522','含山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340523','3405','00,34,3405','和县','34','安徽省','3405','马鞍山市','340523','和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3406','34','00,34','淮北市','34','安徽省','3406','淮北市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340602','3406','00,34,3406','杜集区','34','安徽省','3406','淮北市','340602','杜集区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340603','3406','00,34,3406','相山区','34','安徽省','3406','淮北市','340603','相山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340604','3406','00,34,3406','烈山区','34','安徽省','3406','淮北市','340604','烈山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340621','3406','00,34,3406','濉溪县','34','安徽省','3406','淮北市','340621','濉溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3407','34','00,34','铜陵市','34','安徽省','3407','铜陵市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340705','3407','00,34,3407','铜官区','34','安徽省','3407','铜陵市','340705','铜官区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340706','3407','00,34,3407','义安区','34','安徽省','3407','铜陵市','340706','义安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340711','3407','00,34,3407','郊区','34','安徽省','3407','铜陵市','340711','郊区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340722','3407','00,34,3407','枞阳县','34','安徽省','3407','铜陵市','340722','枞阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3408','34','00,34','安庆市','34','安徽省','3408','安庆市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340802','3408','00,34,3408','迎江区','34','安徽省','3408','安庆市','340802','迎江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340803','3408','00,34,3408','大观区','34','安徽省','3408','安庆市','340803','大观区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340811','3408','00,34,3408','宜秀区','34','安徽省','3408','安庆市','340811','宜秀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340822','3408','00,34,3408','怀宁县','34','安徽省','3408','安庆市','340822','怀宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340825','3408','00,34,3408','太湖县','34','安徽省','3408','安庆市','340825','太湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340826','3408','00,34,3408','宿松县','34','安徽省','3408','安庆市','340826','宿松县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340827','3408','00,34,3408','望江县','34','安徽省','3408','安庆市','340827','望江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340828','3408','00,34,3408','岳西县','34','安徽省','3408','安庆市','340828','岳西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340881','3408','00,34,3408','桐城市','34','安徽省','3408','安庆市','340881','桐城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('340882','3408','00,34,3408','潜山市','34','安徽省','3408','安庆市','340882','潜山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3410','34','00,34','黄山市','34','安徽省','3410','黄山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341002','3410','00,34,3410','屯溪区','34','安徽省','3410','黄山市','341002','屯溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341003','3410','00,34,3410','黄山区','34','安徽省','3410','黄山市','341003','黄山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341004','3410','00,34,3410','徽州区','34','安徽省','3410','黄山市','341004','徽州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341021','3410','00,34,3410','歙县','34','安徽省','3410','黄山市','341021','歙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341022','3410','00,34,3410','休宁县','34','安徽省','3410','黄山市','341022','休宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341023','3410','00,34,3410','黟县','34','安徽省','3410','黄山市','341023','黟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341024','3410','00,34,3410','祁门县','34','安徽省','3410','黄山市','341024','祁门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3411','34','00,34','滁州市','34','安徽省','3411','滁州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341102','3411','00,34,3411','琅琊区','34','安徽省','3411','滁州市','341102','琅琊区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341103','3411','00,34,3411','南谯区','34','安徽省','3411','滁州市','341103','南谯区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341122','3411','00,34,3411','来安县','34','安徽省','3411','滁州市','341122','来安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341124','3411','00,34,3411','全椒县','34','安徽省','3411','滁州市','341124','全椒县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341125','3411','00,34,3411','定远县','34','安徽省','3411','滁州市','341125','定远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341126','3411','00,34,3411','凤阳县','34','安徽省','3411','滁州市','341126','凤阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341181','3411','00,34,3411','天长市','34','安徽省','3411','滁州市','341181','天长市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341182','3411','00,34,3411','明光市','34','安徽省','3411','滁州市','341182','明光市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3412','34','00,34','阜阳市','34','安徽省','3412','阜阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341202','3412','00,34,3412','颍州区','34','安徽省','3412','阜阳市','341202','颍州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341203','3412','00,34,3412','颍东区','34','安徽省','3412','阜阳市','341203','颍东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341204','3412','00,34,3412','颍泉区','34','安徽省','3412','阜阳市','341204','颍泉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341221','3412','00,34,3412','临泉县','34','安徽省','3412','阜阳市','341221','临泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341222','3412','00,34,3412','太和县','34','安徽省','3412','阜阳市','341222','太和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341225','3412','00,34,3412','阜南县','34','安徽省','3412','阜阳市','341225','阜南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341226','3412','00,34,3412','颍上县','34','安徽省','3412','阜阳市','341226','颍上县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341282','3412','00,34,3412','界首市','34','安徽省','3412','阜阳市','341282','界首市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3413','34','00,34','宿州市','34','安徽省','3413','宿州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341302','3413','00,34,3413','埇桥区','34','安徽省','3413','宿州市','341302','埇桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341321','3413','00,34,3413','砀山县','34','安徽省','3413','宿州市','341321','砀山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341322','3413','00,34,3413','萧县','34','安徽省','3413','宿州市','341322','萧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341323','3413','00,34,3413','灵璧县','34','安徽省','3413','宿州市','341323','灵璧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341324','3413','00,34,3413','泗县','34','安徽省','3413','宿州市','341324','泗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3415','34','00,34','六安市','34','安徽省','3415','六安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341502','3415','00,34,3415','金安区','34','安徽省','3415','六安市','341502','金安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341503','3415','00,34,3415','裕安区','34','安徽省','3415','六安市','341503','裕安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341504','3415','00,34,3415','叶集区','34','安徽省','3415','六安市','341504','叶集区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341522','3415','00,34,3415','霍邱县','34','安徽省','3415','六安市','341522','霍邱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341523','3415','00,34,3415','舒城县','34','安徽省','3415','六安市','341523','舒城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341524','3415','00,34,3415','金寨县','34','安徽省','3415','六安市','341524','金寨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341525','3415','00,34,3415','霍山县','34','安徽省','3415','六安市','341525','霍山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3416','34','00,34','亳州市','34','安徽省','3416','亳州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341602','3416','00,34,3416','谯城区','34','安徽省','3416','亳州市','341602','谯城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341621','3416','00,34,3416','涡阳县','34','安徽省','3416','亳州市','341621','涡阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341622','3416','00,34,3416','蒙城县','34','安徽省','3416','亳州市','341622','蒙城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341623','3416','00,34,3416','利辛县','34','安徽省','3416','亳州市','341623','利辛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3417','34','00,34','池州市','34','安徽省','3417','池州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341702','3417','00,34,3417','贵池区','34','安徽省','3417','池州市','341702','贵池区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341721','3417','00,34,3417','东至县','34','安徽省','3417','池州市','341721','东至县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341722','3417','00,34,3417','石台县','34','安徽省','3417','池州市','341722','石台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341723','3417','00,34,3417','青阳县','34','安徽省','3417','池州市','341723','青阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3418','34','00,34','宣城市','34','安徽省','3418','宣城市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341802','3418','00,34,3418','宣州区','34','安徽省','3418','宣城市','341802','宣州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341821','3418','00,34,3418','郎溪县','34','安徽省','3418','宣城市','341821','郎溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341823','3418','00,34,3418','泾县','34','安徽省','3418','宣城市','341823','泾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341824','3418','00,34,3418','绩溪县','34','安徽省','3418','宣城市','341824','绩溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341825','3418','00,34,3418','旌德县','34','安徽省','3418','宣城市','341825','旌德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341881','3418','00,34,3418','宁国市','34','安徽省','3418','宣城市','341881','宁国市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('341882','3418','00,34,3418','广德市','34','安徽省','3418','宣城市','341882','广德市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('35','00','00','福建省','35','福建省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3501','35','00,35','福州市','35','福建省','3501','福州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350102','3501','00,35,3501','鼓楼区','35','福建省','3501','福州市','350102','鼓楼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350103','3501','00,35,3501','台江区','35','福建省','3501','福州市','350103','台江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350104','3501','00,35,3501','仓山区','35','福建省','3501','福州市','350104','仓山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350105','3501','00,35,3501','马尾区','35','福建省','3501','福州市','350105','马尾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350111','3501','00,35,3501','晋安区','35','福建省','3501','福州市','350111','晋安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350112','3501','00,35,3501','长乐区','35','福建省','3501','福州市','350112','长乐区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350121','3501','00,35,3501','闽侯县','35','福建省','3501','福州市','350121','闽侯县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350122','3501','00,35,3501','连江县','35','福建省','3501','福州市','350122','连江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350123','3501','00,35,3501','罗源县','35','福建省','3501','福州市','350123','罗源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350124','3501','00,35,3501','闽清县','35','福建省','3501','福州市','350124','闽清县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350125','3501','00,35,3501','永泰县','35','福建省','3501','福州市','350125','永泰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350128','3501','00,35,3501','平潭县','35','福建省','3501','福州市','350128','平潭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350181','3501','00,35,3501','福清市','35','福建省','3501','福州市','350181','福清市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3502','35','00,35','厦门市','35','福建省','3502','厦门市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350203','3502','00,35,3502','思明区','35','福建省','3502','厦门市','350203','思明区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350205','3502','00,35,3502','海沧区','35','福建省','3502','厦门市','350205','海沧区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350206','3502','00,35,3502','湖里区','35','福建省','3502','厦门市','350206','湖里区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350211','3502','00,35,3502','集美区','35','福建省','3502','厦门市','350211','集美区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350212','3502','00,35,3502','同安区','35','福建省','3502','厦门市','350212','同安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350213','3502','00,35,3502','翔安区','35','福建省','3502','厦门市','350213','翔安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3503','35','00,35','莆田市','35','福建省','3503','莆田市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350302','3503','00,35,3503','城厢区','35','福建省','3503','莆田市','350302','城厢区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350303','3503','00,35,3503','涵江区','35','福建省','3503','莆田市','350303','涵江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350304','3503','00,35,3503','荔城区','35','福建省','3503','莆田市','350304','荔城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350305','3503','00,35,3503','秀屿区','35','福建省','3503','莆田市','350305','秀屿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350322','3503','00,35,3503','仙游县','35','福建省','3503','莆田市','350322','仙游县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3504','35','00,35','三明市','35','福建省','3504','三明市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350402','3504','00,35,3504','梅列区','35','福建省','3504','三明市','350402','梅列区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350403','3504','00,35,3504','三元区','35','福建省','3504','三明市','350403','三元区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350421','3504','00,35,3504','明溪县','35','福建省','3504','三明市','350421','明溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350423','3504','00,35,3504','清流县','35','福建省','3504','三明市','350423','清流县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350424','3504','00,35,3504','宁化县','35','福建省','3504','三明市','350424','宁化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350425','3504','00,35,3504','大田县','35','福建省','3504','三明市','350425','大田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350426','3504','00,35,3504','尤溪县','35','福建省','3504','三明市','350426','尤溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350427','3504','00,35,3504','沙县','35','福建省','3504','三明市','350427','沙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350428','3504','00,35,3504','将乐县','35','福建省','3504','三明市','350428','将乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350429','3504','00,35,3504','泰宁县','35','福建省','3504','三明市','350429','泰宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350430','3504','00,35,3504','建宁县','35','福建省','3504','三明市','350430','建宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350481','3504','00,35,3504','永安市','35','福建省','3504','三明市','350481','永安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3505','35','00,35','泉州市','35','福建省','3505','泉州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350502','3505','00,35,3505','鲤城区','35','福建省','3505','泉州市','350502','鲤城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350503','3505','00,35,3505','丰泽区','35','福建省','3505','泉州市','350503','丰泽区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350504','3505','00,35,3505','洛江区','35','福建省','3505','泉州市','350504','洛江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350505','3505','00,35,3505','泉港区','35','福建省','3505','泉州市','350505','泉港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350521','3505','00,35,3505','惠安县','35','福建省','3505','泉州市','350521','惠安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350524','3505','00,35,3505','安溪县','35','福建省','3505','泉州市','350524','安溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350525','3505','00,35,3505','永春县','35','福建省','3505','泉州市','350525','永春县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350526','3505','00,35,3505','德化县','35','福建省','3505','泉州市','350526','德化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350527','3505','00,35,3505','金门县','35','福建省','3505','泉州市','350527','金门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350581','3505','00,35,3505','石狮市','35','福建省','3505','泉州市','350581','石狮市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350582','3505','00,35,3505','晋江市','35','福建省','3505','泉州市','350582','晋江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350583','3505','00,35,3505','南安市','35','福建省','3505','泉州市','350583','南安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3506','35','00,35','漳州市','35','福建省','3506','漳州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350602','3506','00,35,3506','芗城区','35','福建省','3506','漳州市','350602','芗城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350603','3506','00,35,3506','龙文区','35','福建省','3506','漳州市','350603','龙文区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350622','3506','00,35,3506','云霄县','35','福建省','3506','漳州市','350622','云霄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350623','3506','00,35,3506','漳浦县','35','福建省','3506','漳州市','350623','漳浦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350624','3506','00,35,3506','诏安县','35','福建省','3506','漳州市','350624','诏安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350625','3506','00,35,3506','长泰县','35','福建省','3506','漳州市','350625','长泰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350626','3506','00,35,3506','东山县','35','福建省','3506','漳州市','350626','东山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350627','3506','00,35,3506','南靖县','35','福建省','3506','漳州市','350627','南靖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350628','3506','00,35,3506','平和县','35','福建省','3506','漳州市','350628','平和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350629','3506','00,35,3506','华安县','35','福建省','3506','漳州市','350629','华安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350681','3506','00,35,3506','龙海市','35','福建省','3506','漳州市','350681','龙海市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3507','35','00,35','南平市','35','福建省','3507','南平市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350702','3507','00,35,3507','延平区','35','福建省','3507','南平市','350702','延平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350703','3507','00,35,3507','建阳区','35','福建省','3507','南平市','350703','建阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350721','3507','00,35,3507','顺昌县','35','福建省','3507','南平市','350721','顺昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350722','3507','00,35,3507','浦城县','35','福建省','3507','南平市','350722','浦城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350723','3507','00,35,3507','光泽县','35','福建省','3507','南平市','350723','光泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350724','3507','00,35,3507','松溪县','35','福建省','3507','南平市','350724','松溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350725','3507','00,35,3507','政和县','35','福建省','3507','南平市','350725','政和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350781','3507','00,35,3507','邵武市','35','福建省','3507','南平市','350781','邵武市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350782','3507','00,35,3507','武夷山市','35','福建省','3507','南平市','350782','武夷山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350783','3507','00,35,3507','建瓯市','35','福建省','3507','南平市','350783','建瓯市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3508','35','00,35','龙岩市','35','福建省','3508','龙岩市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350802','3508','00,35,3508','新罗区','35','福建省','3508','龙岩市','350802','新罗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350803','3508','00,35,3508','永定区','35','福建省','3508','龙岩市','350803','永定区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350821','3508','00,35,3508','长汀县','35','福建省','3508','龙岩市','350821','长汀县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350823','3508','00,35,3508','上杭县','35','福建省','3508','龙岩市','350823','上杭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350824','3508','00,35,3508','武平县','35','福建省','3508','龙岩市','350824','武平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350825','3508','00,35,3508','连城县','35','福建省','3508','龙岩市','350825','连城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350881','3508','00,35,3508','漳平市','35','福建省','3508','龙岩市','350881','漳平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3509','35','00,35','宁德市','35','福建省','3509','宁德市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350902','3509','00,35,3509','蕉城区','35','福建省','3509','宁德市','350902','蕉城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350921','3509','00,35,3509','霞浦县','35','福建省','3509','宁德市','350921','霞浦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350922','3509','00,35,3509','古田县','35','福建省','3509','宁德市','350922','古田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350923','3509','00,35,3509','屏南县','35','福建省','3509','宁德市','350923','屏南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350924','3509','00,35,3509','寿宁县','35','福建省','3509','宁德市','350924','寿宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350925','3509','00,35,3509','周宁县','35','福建省','3509','宁德市','350925','周宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350926','3509','00,35,3509','柘荣县','35','福建省','3509','宁德市','350926','柘荣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350981','3509','00,35,3509','福安市','35','福建省','3509','宁德市','350981','福安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('350982','3509','00,35,3509','福鼎市','35','福建省','3509','宁德市','350982','福鼎市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('36','00','00','江西省','36','江西省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3601','36','00,36','南昌市','36','江西省','3601','南昌市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360102','3601','00,36,3601','东湖区','36','江西省','3601','南昌市','360102','东湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360103','3601','00,36,3601','西湖区','36','江西省','3601','南昌市','360103','西湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360104','3601','00,36,3601','青云谱区','36','江西省','3601','南昌市','360104','青云谱区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360111','3601','00,36,3601','青山湖区','36','江西省','3601','南昌市','360111','青山湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360112','3601','00,36,3601','新建区','36','江西省','3601','南昌市','360112','新建区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360113','3601','00,36,3601','红谷滩区','36','江西省','3601','南昌市','360113','红谷滩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360121','3601','00,36,3601','南昌县','36','江西省','3601','南昌市','360121','南昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360123','3601','00,36,3601','安义县','36','江西省','3601','南昌市','360123','安义县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360124','3601','00,36,3601','进贤县','36','江西省','3601','南昌市','360124','进贤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3602','36','00,36','景德镇市','36','江西省','3602','景德镇市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360202','3602','00,36,3602','昌江区','36','江西省','3602','景德镇市','360202','昌江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360203','3602','00,36,3602','珠山区','36','江西省','3602','景德镇市','360203','珠山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360222','3602','00,36,3602','浮梁县','36','江西省','3602','景德镇市','360222','浮梁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360281','3602','00,36,3602','乐平市','36','江西省','3602','景德镇市','360281','乐平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3603','36','00,36','萍乡市','36','江西省','3603','萍乡市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360302','3603','00,36,3603','安源区','36','江西省','3603','萍乡市','360302','安源区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360313','3603','00,36,3603','湘东区','36','江西省','3603','萍乡市','360313','湘东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360321','3603','00,36,3603','莲花县','36','江西省','3603','萍乡市','360321','莲花县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360322','3603','00,36,3603','上栗县','36','江西省','3603','萍乡市','360322','上栗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360323','3603','00,36,3603','芦溪县','36','江西省','3603','萍乡市','360323','芦溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3604','36','00,36','九江市','36','江西省','3604','九江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360402','3604','00,36,3604','濂溪区','36','江西省','3604','九江市','360402','濂溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360403','3604','00,36,3604','浔阳区','36','江西省','3604','九江市','360403','浔阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360404','3604','00,36,3604','柴桑区','36','江西省','3604','九江市','360404','柴桑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360423','3604','00,36,3604','武宁县','36','江西省','3604','九江市','360423','武宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360424','3604','00,36,3604','修水县','36','江西省','3604','九江市','360424','修水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360425','3604','00,36,3604','永修县','36','江西省','3604','九江市','360425','永修县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360426','3604','00,36,3604','德安县','36','江西省','3604','九江市','360426','德安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360428','3604','00,36,3604','都昌县','36','江西省','3604','九江市','360428','都昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360429','3604','00,36,3604','湖口县','36','江西省','3604','九江市','360429','湖口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360430','3604','00,36,3604','彭泽县','36','江西省','3604','九江市','360430','彭泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360481','3604','00,36,3604','瑞昌市','36','江西省','3604','九江市','360481','瑞昌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360482','3604','00,36,3604','共青城市','36','江西省','3604','九江市','360482','共青城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360483','3604','00,36,3604','庐山市','36','江西省','3604','九江市','360483','庐山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3605','36','00,36','新余市','36','江西省','3605','新余市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360502','3605','00,36,3605','渝水区','36','江西省','3605','新余市','360502','渝水区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360521','3605','00,36,3605','分宜县','36','江西省','3605','新余市','360521','分宜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3606','36','00,36','鹰潭市','36','江西省','3606','鹰潭市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360602','3606','00,36,3606','月湖区','36','江西省','3606','鹰潭市','360602','月湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360603','3606','00,36,3606','余江区','36','江西省','3606','鹰潭市','360603','余江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360681','3606','00,36,3606','贵溪市','36','江西省','3606','鹰潭市','360681','贵溪市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3607','36','00,36','赣州市','36','江西省','3607','赣州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360702','3607','00,36,3607','章贡区','36','江西省','3607','赣州市','360702','章贡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360703','3607','00,36,3607','南康区','36','江西省','3607','赣州市','360703','南康区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360704','3607','00,36,3607','赣县区','36','江西省','3607','赣州市','360704','赣县区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360722','3607','00,36,3607','信丰县','36','江西省','3607','赣州市','360722','信丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360723','3607','00,36,3607','大余县','36','江西省','3607','赣州市','360723','大余县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360724','3607','00,36,3607','上犹县','36','江西省','3607','赣州市','360724','上犹县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360725','3607','00,36,3607','崇义县','36','江西省','3607','赣州市','360725','崇义县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360726','3607','00,36,3607','安远县','36','江西省','3607','赣州市','360726','安远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360727','3607','00,36,3607','龙南县','36','江西省','3607','赣州市','360727','龙南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360728','3607','00,36,3607','定南县','36','江西省','3607','赣州市','360728','定南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360729','3607','00,36,3607','全南县','36','江西省','3607','赣州市','360729','全南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360730','3607','00,36,3607','宁都县','36','江西省','3607','赣州市','360730','宁都县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360731','3607','00,36,3607','于都县','36','江西省','3607','赣州市','360731','于都县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360732','3607','00,36,3607','兴国县','36','江西省','3607','赣州市','360732','兴国县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360733','3607','00,36,3607','会昌县','36','江西省','3607','赣州市','360733','会昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360734','3607','00,36,3607','寻乌县','36','江西省','3607','赣州市','360734','寻乌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360735','3607','00,36,3607','石城县','36','江西省','3607','赣州市','360735','石城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360781','3607','00,36,3607','瑞金市','36','江西省','3607','赣州市','360781','瑞金市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3608','36','00,36','吉安市','36','江西省','3608','吉安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360802','3608','00,36,3608','吉州区','36','江西省','3608','吉安市','360802','吉州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360803','3608','00,36,3608','青原区','36','江西省','3608','吉安市','360803','青原区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360821','3608','00,36,3608','吉安县','36','江西省','3608','吉安市','360821','吉安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360822','3608','00,36,3608','吉水县','36','江西省','3608','吉安市','360822','吉水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360823','3608','00,36,3608','峡江县','36','江西省','3608','吉安市','360823','峡江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360824','3608','00,36,3608','新干县','36','江西省','3608','吉安市','360824','新干县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360825','3608','00,36,3608','永丰县','36','江西省','3608','吉安市','360825','永丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360826','3608','00,36,3608','泰和县','36','江西省','3608','吉安市','360826','泰和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360827','3608','00,36,3608','遂川县','36','江西省','3608','吉安市','360827','遂川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360828','3608','00,36,3608','万安县','36','江西省','3608','吉安市','360828','万安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360829','3608','00,36,3608','安福县','36','江西省','3608','吉安市','360829','安福县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360830','3608','00,36,3608','永新县','36','江西省','3608','吉安市','360830','永新县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360881','3608','00,36,3608','井冈山市','36','江西省','3608','吉安市','360881','井冈山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3609','36','00,36','宜春市','36','江西省','3609','宜春市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360902','3609','00,36,3609','袁州区','36','江西省','3609','宜春市','360902','袁州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360921','3609','00,36,3609','奉新县','36','江西省','3609','宜春市','360921','奉新县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360922','3609','00,36,3609','万载县','36','江西省','3609','宜春市','360922','万载县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360923','3609','00,36,3609','上高县','36','江西省','3609','宜春市','360923','上高县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360924','3609','00,36,3609','宜丰县','36','江西省','3609','宜春市','360924','宜丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360925','3609','00,36,3609','靖安县','36','江西省','3609','宜春市','360925','靖安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360926','3609','00,36,3609','铜鼓县','36','江西省','3609','宜春市','360926','铜鼓县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360981','3609','00,36,3609','丰城市','36','江西省','3609','宜春市','360981','丰城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360982','3609','00,36,3609','樟树市','36','江西省','3609','宜春市','360982','樟树市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('360983','3609','00,36,3609','高安市','36','江西省','3609','宜春市','360983','高安市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3610','36','00,36','抚州市','36','江西省','3610','抚州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361002','3610','00,36,3610','临川区','36','江西省','3610','抚州市','361002','临川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361003','3610','00,36,3610','东乡区','36','江西省','3610','抚州市','361003','东乡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361021','3610','00,36,3610','南城县','36','江西省','3610','抚州市','361021','南城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361022','3610','00,36,3610','黎川县','36','江西省','3610','抚州市','361022','黎川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361023','3610','00,36,3610','南丰县','36','江西省','3610','抚州市','361023','南丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361024','3610','00,36,3610','崇仁县','36','江西省','3610','抚州市','361024','崇仁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361025','3610','00,36,3610','乐安县','36','江西省','3610','抚州市','361025','乐安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361026','3610','00,36,3610','宜黄县','36','江西省','3610','抚州市','361026','宜黄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361027','3610','00,36,3610','金溪县','36','江西省','3610','抚州市','361027','金溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361028','3610','00,36,3610','资溪县','36','江西省','3610','抚州市','361028','资溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361030','3610','00,36,3610','广昌县','36','江西省','3610','抚州市','361030','广昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3611','36','00,36','上饶市','36','江西省','3611','上饶市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361102','3611','00,36,3611','信州区','36','江西省','3611','上饶市','361102','信州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361103','3611','00,36,3611','广丰区','36','江西省','3611','上饶市','361103','广丰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361104','3611','00,36,3611','广信区','36','江西省','3611','上饶市','361104','广信区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361123','3611','00,36,3611','玉山县','36','江西省','3611','上饶市','361123','玉山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361124','3611','00,36,3611','铅山县','36','江西省','3611','上饶市','361124','铅山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361125','3611','00,36,3611','横峰县','36','江西省','3611','上饶市','361125','横峰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361126','3611','00,36,3611','弋阳县','36','江西省','3611','上饶市','361126','弋阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361127','3611','00,36,3611','余干县','36','江西省','3611','上饶市','361127','余干县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361128','3611','00,36,3611','鄱阳县','36','江西省','3611','上饶市','361128','鄱阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361129','3611','00,36,3611','万年县','36','江西省','3611','上饶市','361129','万年县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361130','3611','00,36,3611','婺源县','36','江西省','3611','上饶市','361130','婺源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('361181','3611','00,36,3611','德兴市','36','江西省','3611','上饶市','361181','德兴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('37','00','00','山东省','37','山东省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3701','37','00,37','济南市','37','山东省','3701','济南市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370102','3701','00,37,3701','历下区','37','山东省','3701','济南市','370102','历下区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370103','3701','00,37,3701','市中区','37','山东省','3701','济南市','370103','市中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370104','3701','00,37,3701','槐荫区','37','山东省','3701','济南市','370104','槐荫区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370105','3701','00,37,3701','天桥区','37','山东省','3701','济南市','370105','天桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370112','3701','00,37,3701','历城区','37','山东省','3701','济南市','370112','历城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370113','3701','00,37,3701','长清区','37','山东省','3701','济南市','370113','长清区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370114','3701','00,37,3701','章丘区','37','山东省','3701','济南市','370114','章丘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370115','3701','00,37,3701','济阳区','37','山东省','3701','济南市','370115','济阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370116','3701','00,37,3701','莱芜区','37','山东省','3701','济南市','370116','莱芜区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370117','3701','00,37,3701','钢城区','37','山东省','3701','济南市','370117','钢城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370124','3701','00,37,3701','平阴县','37','山东省','3701','济南市','370124','平阴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370126','3701','00,37,3701','商河县','37','山东省','3701','济南市','370126','商河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3702','37','00,37','青岛市','37','山东省','3702','青岛市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370202','3702','00,37,3702','市南区','37','山东省','3702','青岛市','370202','市南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370203','3702','00,37,3702','市北区','37','山东省','3702','青岛市','370203','市北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370211','3702','00,37,3702','黄岛区','37','山东省','3702','青岛市','370211','黄岛区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370212','3702','00,37,3702','崂山区','37','山东省','3702','青岛市','370212','崂山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370213','3702','00,37,3702','李沧区','37','山东省','3702','青岛市','370213','李沧区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370214','3702','00,37,3702','城阳区','37','山东省','3702','青岛市','370214','城阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370215','3702','00,37,3702','即墨区','37','山东省','3702','青岛市','370215','即墨区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370281','3702','00,37,3702','胶州市','37','山东省','3702','青岛市','370281','胶州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370283','3702','00,37,3702','平度市','37','山东省','3702','青岛市','370283','平度市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370285','3702','00,37,3702','莱西市','37','山东省','3702','青岛市','370285','莱西市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3703','37','00,37','淄博市','37','山东省','3703','淄博市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370302','3703','00,37,3703','淄川区','37','山东省','3703','淄博市','370302','淄川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370303','3703','00,37,3703','张店区','37','山东省','3703','淄博市','370303','张店区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370304','3703','00,37,3703','博山区','37','山东省','3703','淄博市','370304','博山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370305','3703','00,37,3703','临淄区','37','山东省','3703','淄博市','370305','临淄区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370306','3703','00,37,3703','周村区','37','山东省','3703','淄博市','370306','周村区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370321','3703','00,37,3703','桓台县','37','山东省','3703','淄博市','370321','桓台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370322','3703','00,37,3703','高青县','37','山东省','3703','淄博市','370322','高青县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370323','3703','00,37,3703','沂源县','37','山东省','3703','淄博市','370323','沂源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3704','37','00,37','枣庄市','37','山东省','3704','枣庄市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370402','3704','00,37,3704','市中区','37','山东省','3704','枣庄市','370402','市中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370403','3704','00,37,3704','薛城区','37','山东省','3704','枣庄市','370403','薛城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370404','3704','00,37,3704','峄城区','37','山东省','3704','枣庄市','370404','峄城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370405','3704','00,37,3704','台儿庄区','37','山东省','3704','枣庄市','370405','台儿庄区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370406','3704','00,37,3704','山亭区','37','山东省','3704','枣庄市','370406','山亭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370481','3704','00,37,3704','滕州市','37','山东省','3704','枣庄市','370481','滕州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3705','37','00,37','东营市','37','山东省','3705','东营市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370502','3705','00,37,3705','东营区','37','山东省','3705','东营市','370502','东营区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370503','3705','00,37,3705','河口区','37','山东省','3705','东营市','370503','河口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370505','3705','00,37,3705','垦利区','37','山东省','3705','东营市','370505','垦利区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370522','3705','00,37,3705','利津县','37','山东省','3705','东营市','370522','利津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370523','3705','00,37,3705','广饶县','37','山东省','3705','东营市','370523','广饶县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3706','37','00,37','烟台市','37','山东省','3706','烟台市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370602','3706','00,37,3706','芝罘区','37','山东省','3706','烟台市','370602','芝罘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370611','3706','00,37,3706','福山区','37','山东省','3706','烟台市','370611','福山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370612','3706','00,37,3706','牟平区','37','山东省','3706','烟台市','370612','牟平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370613','3706','00,37,3706','莱山区','37','山东省','3706','烟台市','370613','莱山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370634','3706','00,37,3706','长岛县','37','山东省','3706','烟台市','370634','长岛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370681','3706','00,37,3706','龙口市','37','山东省','3706','烟台市','370681','龙口市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370682','3706','00,37,3706','莱阳市','37','山东省','3706','烟台市','370682','莱阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370683','3706','00,37,3706','莱州市','37','山东省','3706','烟台市','370683','莱州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370684','3706','00,37,3706','蓬莱市','37','山东省','3706','烟台市','370684','蓬莱市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370685','3706','00,37,3706','招远市','37','山东省','3706','烟台市','370685','招远市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370686','3706','00,37,3706','栖霞市','37','山东省','3706','烟台市','370686','栖霞市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370687','3706','00,37,3706','海阳市','37','山东省','3706','烟台市','370687','海阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3707','37','00,37','潍坊市','37','山东省','3707','潍坊市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370702','3707','00,37,3707','潍城区','37','山东省','3707','潍坊市','370702','潍城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370703','3707','00,37,3707','寒亭区','37','山东省','3707','潍坊市','370703','寒亭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370704','3707','00,37,3707','坊子区','37','山东省','3707','潍坊市','370704','坊子区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370705','3707','00,37,3707','奎文区','37','山东省','3707','潍坊市','370705','奎文区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370724','3707','00,37,3707','临朐县','37','山东省','3707','潍坊市','370724','临朐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370725','3707','00,37,3707','昌乐县','37','山东省','3707','潍坊市','370725','昌乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370781','3707','00,37,3707','青州市','37','山东省','3707','潍坊市','370781','青州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370782','3707','00,37,3707','诸城市','37','山东省','3707','潍坊市','370782','诸城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370783','3707','00,37,3707','寿光市','37','山东省','3707','潍坊市','370783','寿光市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370784','3707','00,37,3707','安丘市','37','山东省','3707','潍坊市','370784','安丘市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370785','3707','00,37,3707','高密市','37','山东省','3707','潍坊市','370785','高密市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370786','3707','00,37,3707','昌邑市','37','山东省','3707','潍坊市','370786','昌邑市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3708','37','00,37','济宁市','37','山东省','3708','济宁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370811','3708','00,37,3708','任城区','37','山东省','3708','济宁市','370811','任城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370812','3708','00,37,3708','兖州区','37','山东省','3708','济宁市','370812','兖州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370826','3708','00,37,3708','微山县','37','山东省','3708','济宁市','370826','微山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370827','3708','00,37,3708','鱼台县','37','山东省','3708','济宁市','370827','鱼台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370828','3708','00,37,3708','金乡县','37','山东省','3708','济宁市','370828','金乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370829','3708','00,37,3708','嘉祥县','37','山东省','3708','济宁市','370829','嘉祥县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370830','3708','00,37,3708','汶上县','37','山东省','3708','济宁市','370830','汶上县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370831','3708','00,37,3708','泗水县','37','山东省','3708','济宁市','370831','泗水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370832','3708','00,37,3708','梁山县','37','山东省','3708','济宁市','370832','梁山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370881','3708','00,37,3708','曲阜市','37','山东省','3708','济宁市','370881','曲阜市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370883','3708','00,37,3708','邹城市','37','山东省','3708','济宁市','370883','邹城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3709','37','00,37','泰安市','37','山东省','3709','泰安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370902','3709','00,37,3709','泰山区','37','山东省','3709','泰安市','370902','泰山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370911','3709','00,37,3709','岱岳区','37','山东省','3709','泰安市','370911','岱岳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370921','3709','00,37,3709','宁阳县','37','山东省','3709','泰安市','370921','宁阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370923','3709','00,37,3709','东平县','37','山东省','3709','泰安市','370923','东平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370982','3709','00,37,3709','新泰市','37','山东省','3709','泰安市','370982','新泰市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('370983','3709','00,37,3709','肥城市','37','山东省','3709','泰安市','370983','肥城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3710','37','00,37','威海市','37','山东省','3710','威海市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371002','3710','00,37,3710','环翠区','37','山东省','3710','威海市','371002','环翠区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371003','3710','00,37,3710','文登区','37','山东省','3710','威海市','371003','文登区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371082','3710','00,37,3710','荣成市','37','山东省','3710','威海市','371082','荣成市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371083','3710','00,37,3710','乳山市','37','山东省','3710','威海市','371083','乳山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3711','37','00,37','日照市','37','山东省','3711','日照市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371102','3711','00,37,3711','东港区','37','山东省','3711','日照市','371102','东港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371103','3711','00,37,3711','岚山区','37','山东省','3711','日照市','371103','岚山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371121','3711','00,37,3711','五莲县','37','山东省','3711','日照市','371121','五莲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371122','3711','00,37,3711','莒县','37','山东省','3711','日照市','371122','莒县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3713','37','00,37','临沂市','37','山东省','3713','临沂市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371302','3713','00,37,3713','兰山区','37','山东省','3713','临沂市','371302','兰山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371311','3713','00,37,3713','罗庄区','37','山东省','3713','临沂市','371311','罗庄区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371312','3713','00,37,3713','河东区','37','山东省','3713','临沂市','371312','河东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371321','3713','00,37,3713','沂南县','37','山东省','3713','临沂市','371321','沂南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371322','3713','00,37,3713','郯城县','37','山东省','3713','临沂市','371322','郯城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371323','3713','00,37,3713','沂水县','37','山东省','3713','临沂市','371323','沂水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371324','3713','00,37,3713','兰陵县','37','山东省','3713','临沂市','371324','兰陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371325','3713','00,37,3713','费县','37','山东省','3713','临沂市','371325','费县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371326','3713','00,37,3713','平邑县','37','山东省','3713','临沂市','371326','平邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371327','3713','00,37,3713','莒南县','37','山东省','3713','临沂市','371327','莒南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371328','3713','00,37,3713','蒙阴县','37','山东省','3713','临沂市','371328','蒙阴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371329','3713','00,37,3713','临沭县','37','山东省','3713','临沂市','371329','临沭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3714','37','00,37','德州市','37','山东省','3714','德州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371402','3714','00,37,3714','德城区','37','山东省','3714','德州市','371402','德城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371403','3714','00,37,3714','陵城区','37','山东省','3714','德州市','371403','陵城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371422','3714','00,37,3714','宁津县','37','山东省','3714','德州市','371422','宁津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371423','3714','00,37,3714','庆云县','37','山东省','3714','德州市','371423','庆云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371424','3714','00,37,3714','临邑县','37','山东省','3714','德州市','371424','临邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371425','3714','00,37,3714','齐河县','37','山东省','3714','德州市','371425','齐河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371426','3714','00,37,3714','平原县','37','山东省','3714','德州市','371426','平原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371427','3714','00,37,3714','夏津县','37','山东省','3714','德州市','371427','夏津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371428','3714','00,37,3714','武城县','37','山东省','3714','德州市','371428','武城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371481','3714','00,37,3714','乐陵市','37','山东省','3714','德州市','371481','乐陵市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371482','3714','00,37,3714','禹城市','37','山东省','3714','德州市','371482','禹城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3715','37','00,37','聊城市','37','山东省','3715','聊城市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371502','3715','00,37,3715','东昌府区','37','山东省','3715','聊城市','371502','东昌府区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371503','3715','00,37,3715','茌平区','37','山东省','3715','聊城市','371503','茌平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371521','3715','00,37,3715','阳谷县','37','山东省','3715','聊城市','371521','阳谷县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371522','3715','00,37,3715','莘县','37','山东省','3715','聊城市','371522','莘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371524','3715','00,37,3715','东阿县','37','山东省','3715','聊城市','371524','东阿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371525','3715','00,37,3715','冠县','37','山东省','3715','聊城市','371525','冠县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371526','3715','00,37,3715','高唐县','37','山东省','3715','聊城市','371526','高唐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371581','3715','00,37,3715','临清市','37','山东省','3715','聊城市','371581','临清市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3716','37','00,37','滨州市','37','山东省','3716','滨州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371602','3716','00,37,3716','滨城区','37','山东省','3716','滨州市','371602','滨城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371603','3716','00,37,3716','沾化区','37','山东省','3716','滨州市','371603','沾化区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371621','3716','00,37,3716','惠民县','37','山东省','3716','滨州市','371621','惠民县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371622','3716','00,37,3716','阳信县','37','山东省','3716','滨州市','371622','阳信县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371623','3716','00,37,3716','无棣县','37','山东省','3716','滨州市','371623','无棣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371625','3716','00,37,3716','博兴县','37','山东省','3716','滨州市','371625','博兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371681','3716','00,37,3716','邹平市','37','山东省','3716','滨州市','371681','邹平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('3717','37','00,37','菏泽市','37','山东省','3717','菏泽市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371702','3717','00,37,3717','牡丹区','37','山东省','3717','菏泽市','371702','牡丹区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371703','3717','00,37,3717','定陶区','37','山东省','3717','菏泽市','371703','定陶区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371721','3717','00,37,3717','曹县','37','山东省','3717','菏泽市','371721','曹县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371722','3717','00,37,3717','单县','37','山东省','3717','菏泽市','371722','单县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371723','3717','00,37,3717','成武县','37','山东省','3717','菏泽市','371723','成武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371724','3717','00,37,3717','巨野县','37','山东省','3717','菏泽市','371724','巨野县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371725','3717','00,37,3717','郓城县','37','山东省','3717','菏泽市','371725','郓城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371726','3717','00,37,3717','鄄城县','37','山东省','3717','菏泽市','371726','鄄城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('371728','3717','00,37,3717','东明县','37','山东省','3717','菏泽市','371728','东明县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('41','00','00','河南省','41','河南省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4101','41','00,41','郑州市','41','河南省','4101','郑州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410102','4101','00,41,4101','中原区','41','河南省','4101','郑州市','410102','中原区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410103','4101','00,41,4101','二七区','41','河南省','4101','郑州市','410103','二七区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410104','4101','00,41,4101','管城回族区','41','河南省','4101','郑州市','410104','管城回族区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410105','4101','00,41,4101','金水区','41','河南省','4101','郑州市','410105','金水区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410106','4101','00,41,4101','上街区','41','河南省','4101','郑州市','410106','上街区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410108','4101','00,41,4101','惠济区','41','河南省','4101','郑州市','410108','惠济区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410122','4101','00,41,4101','中牟县','41','河南省','4101','郑州市','410122','中牟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410181','4101','00,41,4101','巩义市','41','河南省','4101','郑州市','410181','巩义市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410182','4101','00,41,4101','荥阳市','41','河南省','4101','郑州市','410182','荥阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410183','4101','00,41,4101','新密市','41','河南省','4101','郑州市','410183','新密市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410184','4101','00,41,4101','新郑市','41','河南省','4101','郑州市','410184','新郑市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410185','4101','00,41,4101','登封市','41','河南省','4101','郑州市','410185','登封市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4102','41','00,41','开封市','41','河南省','4102','开封市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410202','4102','00,41,4102','龙亭区','41','河南省','4102','开封市','410202','龙亭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410203','4102','00,41,4102','顺河回族区','41','河南省','4102','开封市','410203','顺河回族区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410204','4102','00,41,4102','鼓楼区','41','河南省','4102','开封市','410204','鼓楼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410205','4102','00,41,4102','禹王台区','41','河南省','4102','开封市','410205','禹王台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410212','4102','00,41,4102','祥符区','41','河南省','4102','开封市','410212','祥符区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410221','4102','00,41,4102','杞县','41','河南省','4102','开封市','410221','杞县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410222','4102','00,41,4102','通许县','41','河南省','4102','开封市','410222','通许县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410223','4102','00,41,4102','尉氏县','41','河南省','4102','开封市','410223','尉氏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410225','4102','00,41,4102','兰考县','41','河南省','4102','开封市','410225','兰考县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4103','41','00,41','洛阳市','41','河南省','4103','洛阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410302','4103','00,41,4103','老城区','41','河南省','4103','洛阳市','410302','老城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410303','4103','00,41,4103','西工区','41','河南省','4103','洛阳市','410303','西工区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410304','4103','00,41,4103','瀍河回族区','41','河南省','4103','洛阳市','410304','瀍河回族区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410305','4103','00,41,4103','涧西区','41','河南省','4103','洛阳市','410305','涧西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410306','4103','00,41,4103','吉利区','41','河南省','4103','洛阳市','410306','吉利区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410311','4103','00,41,4103','洛龙区','41','河南省','4103','洛阳市','410311','洛龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410322','4103','00,41,4103','孟津县','41','河南省','4103','洛阳市','410322','孟津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410323','4103','00,41,4103','新安县','41','河南省','4103','洛阳市','410323','新安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410324','4103','00,41,4103','栾川县','41','河南省','4103','洛阳市','410324','栾川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410325','4103','00,41,4103','嵩县','41','河南省','4103','洛阳市','410325','嵩县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410326','4103','00,41,4103','汝阳县','41','河南省','4103','洛阳市','410326','汝阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410327','4103','00,41,4103','宜阳县','41','河南省','4103','洛阳市','410327','宜阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410328','4103','00,41,4103','洛宁县','41','河南省','4103','洛阳市','410328','洛宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410329','4103','00,41,4103','伊川县','41','河南省','4103','洛阳市','410329','伊川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410381','4103','00,41,4103','偃师市','41','河南省','4103','洛阳市','410381','偃师市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4104','41','00,41','平顶山市','41','河南省','4104','平顶山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410402','4104','00,41,4104','新华区','41','河南省','4104','平顶山市','410402','新华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410403','4104','00,41,4104','卫东区','41','河南省','4104','平顶山市','410403','卫东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410404','4104','00,41,4104','石龙区','41','河南省','4104','平顶山市','410404','石龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410411','4104','00,41,4104','湛河区','41','河南省','4104','平顶山市','410411','湛河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410421','4104','00,41,4104','宝丰县','41','河南省','4104','平顶山市','410421','宝丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410422','4104','00,41,4104','叶县','41','河南省','4104','平顶山市','410422','叶县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410423','4104','00,41,4104','鲁山县','41','河南省','4104','平顶山市','410423','鲁山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410425','4104','00,41,4104','郏县','41','河南省','4104','平顶山市','410425','郏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410481','4104','00,41,4104','舞钢市','41','河南省','4104','平顶山市','410481','舞钢市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410482','4104','00,41,4104','汝州市','41','河南省','4104','平顶山市','410482','汝州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4105','41','00,41','安阳市','41','河南省','4105','安阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410502','4105','00,41,4105','文峰区','41','河南省','4105','安阳市','410502','文峰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410503','4105','00,41,4105','北关区','41','河南省','4105','安阳市','410503','北关区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410505','4105','00,41,4105','殷都区','41','河南省','4105','安阳市','410505','殷都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410506','4105','00,41,4105','龙安区','41','河南省','4105','安阳市','410506','龙安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410522','4105','00,41,4105','安阳县','41','河南省','4105','安阳市','410522','安阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410523','4105','00,41,4105','汤阴县','41','河南省','4105','安阳市','410523','汤阴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410526','4105','00,41,4105','滑县','41','河南省','4105','安阳市','410526','滑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410527','4105','00,41,4105','内黄县','41','河南省','4105','安阳市','410527','内黄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410581','4105','00,41,4105','林州市','41','河南省','4105','安阳市','410581','林州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4106','41','00,41','鹤壁市','41','河南省','4106','鹤壁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410602','4106','00,41,4106','鹤山区','41','河南省','4106','鹤壁市','410602','鹤山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410603','4106','00,41,4106','山城区','41','河南省','4106','鹤壁市','410603','山城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410611','4106','00,41,4106','淇滨区','41','河南省','4106','鹤壁市','410611','淇滨区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410621','4106','00,41,4106','浚县','41','河南省','4106','鹤壁市','410621','浚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410622','4106','00,41,4106','淇县','41','河南省','4106','鹤壁市','410622','淇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4107','41','00,41','新乡市','41','河南省','4107','新乡市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410702','4107','00,41,4107','红旗区','41','河南省','4107','新乡市','410702','红旗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410703','4107','00,41,4107','卫滨区','41','河南省','4107','新乡市','410703','卫滨区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410704','4107','00,41,4107','凤泉区','41','河南省','4107','新乡市','410704','凤泉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410711','4107','00,41,4107','牧野区','41','河南省','4107','新乡市','410711','牧野区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410721','4107','00,41,4107','新乡县','41','河南省','4107','新乡市','410721','新乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410724','4107','00,41,4107','获嘉县','41','河南省','4107','新乡市','410724','获嘉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410725','4107','00,41,4107','原阳县','41','河南省','4107','新乡市','410725','原阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410726','4107','00,41,4107','延津县','41','河南省','4107','新乡市','410726','延津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410727','4107','00,41,4107','封丘县','41','河南省','4107','新乡市','410727','封丘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410781','4107','00,41,4107','卫辉市','41','河南省','4107','新乡市','410781','卫辉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410782','4107','00,41,4107','辉县市','41','河南省','4107','新乡市','410782','辉县市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410783','4107','00,41,4107','长垣市','41','河南省','4107','新乡市','410783','长垣市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4108','41','00,41','焦作市','41','河南省','4108','焦作市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410802','4108','00,41,4108','解放区','41','河南省','4108','焦作市','410802','解放区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410803','4108','00,41,4108','中站区','41','河南省','4108','焦作市','410803','中站区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410804','4108','00,41,4108','马村区','41','河南省','4108','焦作市','410804','马村区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410811','4108','00,41,4108','山阳区','41','河南省','4108','焦作市','410811','山阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410821','4108','00,41,4108','修武县','41','河南省','4108','焦作市','410821','修武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410822','4108','00,41,4108','博爱县','41','河南省','4108','焦作市','410822','博爱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410823','4108','00,41,4108','武陟县','41','河南省','4108','焦作市','410823','武陟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410825','4108','00,41,4108','温县','41','河南省','4108','焦作市','410825','温县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410882','4108','00,41,4108','沁阳市','41','河南省','4108','焦作市','410882','沁阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410883','4108','00,41,4108','孟州市','41','河南省','4108','焦作市','410883','孟州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4109','41','00,41','濮阳市','41','河南省','4109','濮阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410902','4109','00,41,4109','华龙区','41','河南省','4109','濮阳市','410902','华龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410922','4109','00,41,4109','清丰县','41','河南省','4109','濮阳市','410922','清丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410923','4109','00,41,4109','南乐县','41','河南省','4109','濮阳市','410923','南乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410926','4109','00,41,4109','范县','41','河南省','4109','濮阳市','410926','范县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410927','4109','00,41,4109','台前县','41','河南省','4109','濮阳市','410927','台前县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('410928','4109','00,41,4109','濮阳县','41','河南省','4109','濮阳市','410928','濮阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4110','41','00,41','许昌市','41','河南省','4110','许昌市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411002','4110','00,41,4110','魏都区','41','河南省','4110','许昌市','411002','魏都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411003','4110','00,41,4110','建安区','41','河南省','4110','许昌市','411003','建安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411024','4110','00,41,4110','鄢陵县','41','河南省','4110','许昌市','411024','鄢陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411025','4110','00,41,4110','襄城县','41','河南省','4110','许昌市','411025','襄城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411081','4110','00,41,4110','禹州市','41','河南省','4110','许昌市','411081','禹州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411082','4110','00,41,4110','长葛市','41','河南省','4110','许昌市','411082','长葛市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4111','41','00,41','漯河市','41','河南省','4111','漯河市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411102','4111','00,41,4111','源汇区','41','河南省','4111','漯河市','411102','源汇区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411103','4111','00,41,4111','郾城区','41','河南省','4111','漯河市','411103','郾城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411104','4111','00,41,4111','召陵区','41','河南省','4111','漯河市','411104','召陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411121','4111','00,41,4111','舞阳县','41','河南省','4111','漯河市','411121','舞阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411122','4111','00,41,4111','临颍县','41','河南省','4111','漯河市','411122','临颍县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4112','41','00,41','三门峡市','41','河南省','4112','三门峡市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411202','4112','00,41,4112','湖滨区','41','河南省','4112','三门峡市','411202','湖滨区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411203','4112','00,41,4112','陕州区','41','河南省','4112','三门峡市','411203','陕州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411221','4112','00,41,4112','渑池县','41','河南省','4112','三门峡市','411221','渑池县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411224','4112','00,41,4112','卢氏县','41','河南省','4112','三门峡市','411224','卢氏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411281','4112','00,41,4112','义马市','41','河南省','4112','三门峡市','411281','义马市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411282','4112','00,41,4112','灵宝市','41','河南省','4112','三门峡市','411282','灵宝市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4113','41','00,41','南阳市','41','河南省','4113','南阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411302','4113','00,41,4113','宛城区','41','河南省','4113','南阳市','411302','宛城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411303','4113','00,41,4113','卧龙区','41','河南省','4113','南阳市','411303','卧龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411321','4113','00,41,4113','南召县','41','河南省','4113','南阳市','411321','南召县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411322','4113','00,41,4113','方城县','41','河南省','4113','南阳市','411322','方城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411323','4113','00,41,4113','西峡县','41','河南省','4113','南阳市','411323','西峡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411324','4113','00,41,4113','镇平县','41','河南省','4113','南阳市','411324','镇平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411325','4113','00,41,4113','内乡县','41','河南省','4113','南阳市','411325','内乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411326','4113','00,41,4113','淅川县','41','河南省','4113','南阳市','411326','淅川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411327','4113','00,41,4113','社旗县','41','河南省','4113','南阳市','411327','社旗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411328','4113','00,41,4113','唐河县','41','河南省','4113','南阳市','411328','唐河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411329','4113','00,41,4113','新野县','41','河南省','4113','南阳市','411329','新野县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411330','4113','00,41,4113','桐柏县','41','河南省','4113','南阳市','411330','桐柏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411381','4113','00,41,4113','邓州市','41','河南省','4113','南阳市','411381','邓州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4114','41','00,41','商丘市','41','河南省','4114','商丘市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411402','4114','00,41,4114','梁园区','41','河南省','4114','商丘市','411402','梁园区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411403','4114','00,41,4114','睢阳区','41','河南省','4114','商丘市','411403','睢阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411421','4114','00,41,4114','民权县','41','河南省','4114','商丘市','411421','民权县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411422','4114','00,41,4114','睢县','41','河南省','4114','商丘市','411422','睢县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411423','4114','00,41,4114','宁陵县','41','河南省','4114','商丘市','411423','宁陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411424','4114','00,41,4114','柘城县','41','河南省','4114','商丘市','411424','柘城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411425','4114','00,41,4114','虞城县','41','河南省','4114','商丘市','411425','虞城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411426','4114','00,41,4114','夏邑县','41','河南省','4114','商丘市','411426','夏邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411481','4114','00,41,4114','永城市','41','河南省','4114','商丘市','411481','永城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4115','41','00,41','信阳市','41','河南省','4115','信阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411502','4115','00,41,4115','浉河区','41','河南省','4115','信阳市','411502','浉河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411503','4115','00,41,4115','平桥区','41','河南省','4115','信阳市','411503','平桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411521','4115','00,41,4115','罗山县','41','河南省','4115','信阳市','411521','罗山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411522','4115','00,41,4115','光山县','41','河南省','4115','信阳市','411522','光山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411523','4115','00,41,4115','新县','41','河南省','4115','信阳市','411523','新县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411524','4115','00,41,4115','商城县','41','河南省','4115','信阳市','411524','商城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411525','4115','00,41,4115','固始县','41','河南省','4115','信阳市','411525','固始县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411526','4115','00,41,4115','潢川县','41','河南省','4115','信阳市','411526','潢川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411527','4115','00,41,4115','淮滨县','41','河南省','4115','信阳市','411527','淮滨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411528','4115','00,41,4115','息县','41','河南省','4115','信阳市','411528','息县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4116','41','00,41','周口市','41','河南省','4116','周口市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411602','4116','00,41,4116','川汇区','41','河南省','4116','周口市','411602','川汇区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411603','4116','00,41,4116','淮阳区','41','河南省','4116','周口市','411603','淮阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411621','4116','00,41,4116','扶沟县','41','河南省','4116','周口市','411621','扶沟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411622','4116','00,41,4116','西华县','41','河南省','4116','周口市','411622','西华县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411623','4116','00,41,4116','商水县','41','河南省','4116','周口市','411623','商水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411624','4116','00,41,4116','沈丘县','41','河南省','4116','周口市','411624','沈丘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411625','4116','00,41,4116','郸城县','41','河南省','4116','周口市','411625','郸城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411627','4116','00,41,4116','太康县','41','河南省','4116','周口市','411627','太康县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411628','4116','00,41,4116','鹿邑县','41','河南省','4116','周口市','411628','鹿邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411681','4116','00,41,4116','项城市','41','河南省','4116','周口市','411681','项城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4117','41','00,41','驻马店市','41','河南省','4117','驻马店市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411702','4117','00,41,4117','驿城区','41','河南省','4117','驻马店市','411702','驿城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411721','4117','00,41,4117','西平县','41','河南省','4117','驻马店市','411721','西平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411722','4117','00,41,4117','上蔡县','41','河南省','4117','驻马店市','411722','上蔡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411723','4117','00,41,4117','平舆县','41','河南省','4117','驻马店市','411723','平舆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411724','4117','00,41,4117','正阳县','41','河南省','4117','驻马店市','411724','正阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411725','4117','00,41,4117','确山县','41','河南省','4117','驻马店市','411725','确山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411726','4117','00,41,4117','泌阳县','41','河南省','4117','驻马店市','411726','泌阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411727','4117','00,41,4117','汝南县','41','河南省','4117','驻马店市','411727','汝南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411728','4117','00,41,4117','遂平县','41','河南省','4117','驻马店市','411728','遂平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('411729','4117','00,41,4117','新蔡县','41','河南省','4117','驻马店市','411729','新蔡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4190','41','00,41','省直辖县级行政区','41','河南省','4190','省直辖县级行政区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('419001','4190','00,41,4190','济源市','41','河南省','4190','省直辖县级行政区','419001','济源市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('42','00','00','湖北省','42','湖北省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4201','42','00,42','武汉市','42','湖北省','4201','武汉市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420102','4201','00,42,4201','江岸区','42','湖北省','4201','武汉市','420102','江岸区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420103','4201','00,42,4201','江汉区','42','湖北省','4201','武汉市','420103','江汉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420104','4201','00,42,4201','硚口区','42','湖北省','4201','武汉市','420104','硚口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420105','4201','00,42,4201','汉阳区','42','湖北省','4201','武汉市','420105','汉阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420106','4201','00,42,4201','武昌区','42','湖北省','4201','武汉市','420106','武昌区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420107','4201','00,42,4201','青山区','42','湖北省','4201','武汉市','420107','青山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420111','4201','00,42,4201','洪山区','42','湖北省','4201','武汉市','420111','洪山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420112','4201','00,42,4201','东西湖区','42','湖北省','4201','武汉市','420112','东西湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420113','4201','00,42,4201','汉南区','42','湖北省','4201','武汉市','420113','汉南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420114','4201','00,42,4201','蔡甸区','42','湖北省','4201','武汉市','420114','蔡甸区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420115','4201','00,42,4201','江夏区','42','湖北省','4201','武汉市','420115','江夏区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420116','4201','00,42,4201','黄陂区','42','湖北省','4201','武汉市','420116','黄陂区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420117','4201','00,42,4201','新洲区','42','湖北省','4201','武汉市','420117','新洲区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4202','42','00,42','黄石市','42','湖北省','4202','黄石市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420202','4202','00,42,4202','黄石港区','42','湖北省','4202','黄石市','420202','黄石港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420203','4202','00,42,4202','西塞山区','42','湖北省','4202','黄石市','420203','西塞山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420204','4202','00,42,4202','下陆区','42','湖北省','4202','黄石市','420204','下陆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420205','4202','00,42,4202','铁山区','42','湖北省','4202','黄石市','420205','铁山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420222','4202','00,42,4202','阳新县','42','湖北省','4202','黄石市','420222','阳新县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420281','4202','00,42,4202','大冶市','42','湖北省','4202','黄石市','420281','大冶市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4203','42','00,42','十堰市','42','湖北省','4203','十堰市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420302','4203','00,42,4203','茅箭区','42','湖北省','4203','十堰市','420302','茅箭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420303','4203','00,42,4203','张湾区','42','湖北省','4203','十堰市','420303','张湾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420304','4203','00,42,4203','郧阳区','42','湖北省','4203','十堰市','420304','郧阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420322','4203','00,42,4203','郧西县','42','湖北省','4203','十堰市','420322','郧西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420323','4203','00,42,4203','竹山县','42','湖北省','4203','十堰市','420323','竹山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420324','4203','00,42,4203','竹溪县','42','湖北省','4203','十堰市','420324','竹溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420325','4203','00,42,4203','房县','42','湖北省','4203','十堰市','420325','房县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420381','4203','00,42,4203','丹江口市','42','湖北省','4203','十堰市','420381','丹江口市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4205','42','00,42','宜昌市','42','湖北省','4205','宜昌市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420502','4205','00,42,4205','西陵区','42','湖北省','4205','宜昌市','420502','西陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420503','4205','00,42,4205','伍家岗区','42','湖北省','4205','宜昌市','420503','伍家岗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420504','4205','00,42,4205','点军区','42','湖北省','4205','宜昌市','420504','点军区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420505','4205','00,42,4205','猇亭区','42','湖北省','4205','宜昌市','420505','猇亭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420506','4205','00,42,4205','夷陵区','42','湖北省','4205','宜昌市','420506','夷陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420525','4205','00,42,4205','远安县','42','湖北省','4205','宜昌市','420525','远安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420526','4205','00,42,4205','兴山县','42','湖北省','4205','宜昌市','420526','兴山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420527','4205','00,42,4205','秭归县','42','湖北省','4205','宜昌市','420527','秭归县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420528','4205','00,42,4205','长阳土家族自治县','42','湖北省','4205','宜昌市','420528','长阳土家族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420529','4205','00,42,4205','五峰土家族自治县','42','湖北省','4205','宜昌市','420529','五峰土家族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420581','4205','00,42,4205','宜都市','42','湖北省','4205','宜昌市','420581','宜都市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420582','4205','00,42,4205','当阳市','42','湖北省','4205','宜昌市','420582','当阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420583','4205','00,42,4205','枝江市','42','湖北省','4205','宜昌市','420583','枝江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4206','42','00,42','襄阳市','42','湖北省','4206','襄阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420602','4206','00,42,4206','襄城区','42','湖北省','4206','襄阳市','420602','襄城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420606','4206','00,42,4206','樊城区','42','湖北省','4206','襄阳市','420606','樊城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420607','4206','00,42,4206','襄州区','42','湖北省','4206','襄阳市','420607','襄州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420624','4206','00,42,4206','南漳县','42','湖北省','4206','襄阳市','420624','南漳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420625','4206','00,42,4206','谷城县','42','湖北省','4206','襄阳市','420625','谷城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420626','4206','00,42,4206','保康县','42','湖北省','4206','襄阳市','420626','保康县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420682','4206','00,42,4206','老河口市','42','湖北省','4206','襄阳市','420682','老河口市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420683','4206','00,42,4206','枣阳市','42','湖北省','4206','襄阳市','420683','枣阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420684','4206','00,42,4206','宜城市','42','湖北省','4206','襄阳市','420684','宜城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4207','42','00,42','鄂州市','42','湖北省','4207','鄂州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420702','4207','00,42,4207','梁子湖区','42','湖北省','4207','鄂州市','420702','梁子湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420703','4207','00,42,4207','华容区','42','湖北省','4207','鄂州市','420703','华容区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420704','4207','00,42,4207','鄂城区','42','湖北省','4207','鄂州市','420704','鄂城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4208','42','00,42','荆门市','42','湖北省','4208','荆门市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420802','4208','00,42,4208','东宝区','42','湖北省','4208','荆门市','420802','东宝区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420804','4208','00,42,4208','掇刀区','42','湖北省','4208','荆门市','420804','掇刀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420822','4208','00,42,4208','沙洋县','42','湖北省','4208','荆门市','420822','沙洋县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420881','4208','00,42,4208','钟祥市','42','湖北省','4208','荆门市','420881','钟祥市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420882','4208','00,42,4208','京山市','42','湖北省','4208','荆门市','420882','京山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4209','42','00,42','孝感市','42','湖北省','4209','孝感市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420902','4209','00,42,4209','孝南区','42','湖北省','4209','孝感市','420902','孝南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420921','4209','00,42,4209','孝昌县','42','湖北省','4209','孝感市','420921','孝昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420922','4209','00,42,4209','大悟县','42','湖北省','4209','孝感市','420922','大悟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420923','4209','00,42,4209','云梦县','42','湖北省','4209','孝感市','420923','云梦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420981','4209','00,42,4209','应城市','42','湖北省','4209','孝感市','420981','应城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420982','4209','00,42,4209','安陆市','42','湖北省','4209','孝感市','420982','安陆市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('420984','4209','00,42,4209','汉川市','42','湖北省','4209','孝感市','420984','汉川市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4210','42','00,42','荆州市','42','湖北省','4210','荆州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421002','4210','00,42,4210','沙市区','42','湖北省','4210','荆州市','421002','沙市区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421003','4210','00,42,4210','荆州区','42','湖北省','4210','荆州市','421003','荆州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421022','4210','00,42,4210','公安县','42','湖北省','4210','荆州市','421022','公安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421023','4210','00,42,4210','监利县','42','湖北省','4210','荆州市','421023','监利县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421024','4210','00,42,4210','江陵县','42','湖北省','4210','荆州市','421024','江陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421081','4210','00,42,4210','石首市','42','湖北省','4210','荆州市','421081','石首市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421083','4210','00,42,4210','洪湖市','42','湖北省','4210','荆州市','421083','洪湖市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421087','4210','00,42,4210','松滋市','42','湖北省','4210','荆州市','421087','松滋市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4211','42','00,42','黄冈市','42','湖北省','4211','黄冈市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421102','4211','00,42,4211','黄州区','42','湖北省','4211','黄冈市','421102','黄州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421121','4211','00,42,4211','团风县','42','湖北省','4211','黄冈市','421121','团风县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421122','4211','00,42,4211','红安县','42','湖北省','4211','黄冈市','421122','红安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421123','4211','00,42,4211','罗田县','42','湖北省','4211','黄冈市','421123','罗田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421124','4211','00,42,4211','英山县','42','湖北省','4211','黄冈市','421124','英山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421125','4211','00,42,4211','浠水县','42','湖北省','4211','黄冈市','421125','浠水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421126','4211','00,42,4211','蕲春县','42','湖北省','4211','黄冈市','421126','蕲春县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421127','4211','00,42,4211','黄梅县','42','湖北省','4211','黄冈市','421127','黄梅县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421181','4211','00,42,4211','麻城市','42','湖北省','4211','黄冈市','421181','麻城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421182','4211','00,42,4211','武穴市','42','湖北省','4211','黄冈市','421182','武穴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4212','42','00,42','咸宁市','42','湖北省','4212','咸宁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421202','4212','00,42,4212','咸安区','42','湖北省','4212','咸宁市','421202','咸安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421221','4212','00,42,4212','嘉鱼县','42','湖北省','4212','咸宁市','421221','嘉鱼县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421222','4212','00,42,4212','通城县','42','湖北省','4212','咸宁市','421222','通城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421223','4212','00,42,4212','崇阳县','42','湖北省','4212','咸宁市','421223','崇阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421224','4212','00,42,4212','通山县','42','湖北省','4212','咸宁市','421224','通山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421281','4212','00,42,4212','赤壁市','42','湖北省','4212','咸宁市','421281','赤壁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4213','42','00,42','随州市','42','湖北省','4213','随州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421303','4213','00,42,4213','曾都区','42','湖北省','4213','随州市','421303','曾都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421321','4213','00,42,4213','随县','42','湖北省','4213','随州市','421321','随县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('421381','4213','00,42,4213','广水市','42','湖北省','4213','随州市','421381','广水市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4228','42','00,42','恩施土家族苗族自治州','42','湖北省','4228','恩施土家族苗族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422801','4228','00,42,4228','恩施市','42','湖北省','4228','恩施土家族苗族自治州','422801','恩施市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422802','4228','00,42,4228','利川市','42','湖北省','4228','恩施土家族苗族自治州','422802','利川市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422822','4228','00,42,4228','建始县','42','湖北省','4228','恩施土家族苗族自治州','422822','建始县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422823','4228','00,42,4228','巴东县','42','湖北省','4228','恩施土家族苗族自治州','422823','巴东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422825','4228','00,42,4228','宣恩县','42','湖北省','4228','恩施土家族苗族自治州','422825','宣恩县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422826','4228','00,42,4228','咸丰县','42','湖北省','4228','恩施土家族苗族自治州','422826','咸丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422827','4228','00,42,4228','来凤县','42','湖北省','4228','恩施土家族苗族自治州','422827','来凤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('422828','4228','00,42,4228','鹤峰县','42','湖北省','4228','恩施土家族苗族自治州','422828','鹤峰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4290','42','00,42','省直辖县级行政区','42','湖北省','4290','省直辖县级行政区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('429004','4290','00,42,4290','仙桃市','42','湖北省','4290','省直辖县级行政区','429004','仙桃市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('429005','4290','00,42,4290','潜江市','42','湖北省','4290','省直辖县级行政区','429005','潜江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('429006','4290','00,42,4290','天门市','42','湖北省','4290','省直辖县级行政区','429006','天门市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('429021','4290','00,42,4290','神农架林区','42','湖北省','4290','省直辖县级行政区','429021','神农架林区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('43','00','00','湖南省','43','湖南省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4301','43','00,43','长沙市','43','湖南省','4301','长沙市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430102','4301','00,43,4301','芙蓉区','43','湖南省','4301','长沙市','430102','芙蓉区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430103','4301','00,43,4301','天心区','43','湖南省','4301','长沙市','430103','天心区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430104','4301','00,43,4301','岳麓区','43','湖南省','4301','长沙市','430104','岳麓区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430105','4301','00,43,4301','开福区','43','湖南省','4301','长沙市','430105','开福区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430111','4301','00,43,4301','雨花区','43','湖南省','4301','长沙市','430111','雨花区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430112','4301','00,43,4301','望城区','43','湖南省','4301','长沙市','430112','望城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430121','4301','00,43,4301','长沙县','43','湖南省','4301','长沙市','430121','长沙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430181','4301','00,43,4301','浏阳市','43','湖南省','4301','长沙市','430181','浏阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430182','4301','00,43,4301','宁乡市','43','湖南省','4301','长沙市','430182','宁乡市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4302','43','00,43','株洲市','43','湖南省','4302','株洲市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430202','4302','00,43,4302','荷塘区','43','湖南省','4302','株洲市','430202','荷塘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430203','4302','00,43,4302','芦淞区','43','湖南省','4302','株洲市','430203','芦淞区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430204','4302','00,43,4302','石峰区','43','湖南省','4302','株洲市','430204','石峰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430211','4302','00,43,4302','天元区','43','湖南省','4302','株洲市','430211','天元区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430212','4302','00,43,4302','渌口区','43','湖南省','4302','株洲市','430212','渌口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430223','4302','00,43,4302','攸县','43','湖南省','4302','株洲市','430223','攸县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430224','4302','00,43,4302','茶陵县','43','湖南省','4302','株洲市','430224','茶陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430225','4302','00,43,4302','炎陵县','43','湖南省','4302','株洲市','430225','炎陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430281','4302','00,43,4302','醴陵市','43','湖南省','4302','株洲市','430281','醴陵市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4303','43','00,43','湘潭市','43','湖南省','4303','湘潭市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430302','4303','00,43,4303','雨湖区','43','湖南省','4303','湘潭市','430302','雨湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430304','4303','00,43,4303','岳塘区','43','湖南省','4303','湘潭市','430304','岳塘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430321','4303','00,43,4303','湘潭县','43','湖南省','4303','湘潭市','430321','湘潭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430381','4303','00,43,4303','湘乡市','43','湖南省','4303','湘潭市','430381','湘乡市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430382','4303','00,43,4303','韶山市','43','湖南省','4303','湘潭市','430382','韶山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4304','43','00,43','衡阳市','43','湖南省','4304','衡阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430405','4304','00,43,4304','珠晖区','43','湖南省','4304','衡阳市','430405','珠晖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430406','4304','00,43,4304','雁峰区','43','湖南省','4304','衡阳市','430406','雁峰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430407','4304','00,43,4304','石鼓区','43','湖南省','4304','衡阳市','430407','石鼓区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430408','4304','00,43,4304','蒸湘区','43','湖南省','4304','衡阳市','430408','蒸湘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430412','4304','00,43,4304','南岳区','43','湖南省','4304','衡阳市','430412','南岳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430421','4304','00,43,4304','衡阳县','43','湖南省','4304','衡阳市','430421','衡阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430422','4304','00,43,4304','衡南县','43','湖南省','4304','衡阳市','430422','衡南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430423','4304','00,43,4304','衡山县','43','湖南省','4304','衡阳市','430423','衡山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430424','4304','00,43,4304','衡东县','43','湖南省','4304','衡阳市','430424','衡东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430426','4304','00,43,4304','祁东县','43','湖南省','4304','衡阳市','430426','祁东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430481','4304','00,43,4304','耒阳市','43','湖南省','4304','衡阳市','430481','耒阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430482','4304','00,43,4304','常宁市','43','湖南省','4304','衡阳市','430482','常宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4305','43','00,43','邵阳市','43','湖南省','4305','邵阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430502','4305','00,43,4305','双清区','43','湖南省','4305','邵阳市','430502','双清区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430503','4305','00,43,4305','大祥区','43','湖南省','4305','邵阳市','430503','大祥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430511','4305','00,43,4305','北塔区','43','湖南省','4305','邵阳市','430511','北塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430522','4305','00,43,4305','新邵县','43','湖南省','4305','邵阳市','430522','新邵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430523','4305','00,43,4305','邵阳县','43','湖南省','4305','邵阳市','430523','邵阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430524','4305','00,43,4305','隆回县','43','湖南省','4305','邵阳市','430524','隆回县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430525','4305','00,43,4305','洞口县','43','湖南省','4305','邵阳市','430525','洞口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430527','4305','00,43,4305','绥宁县','43','湖南省','4305','邵阳市','430527','绥宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430528','4305','00,43,4305','新宁县','43','湖南省','4305','邵阳市','430528','新宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430529','4305','00,43,4305','城步苗族自治县','43','湖南省','4305','邵阳市','430529','城步苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430581','4305','00,43,4305','武冈市','43','湖南省','4305','邵阳市','430581','武冈市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430582','4305','00,43,4305','邵东市','43','湖南省','4305','邵阳市','430582','邵东市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4306','43','00,43','岳阳市','43','湖南省','4306','岳阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430602','4306','00,43,4306','岳阳楼区','43','湖南省','4306','岳阳市','430602','岳阳楼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430603','4306','00,43,4306','云溪区','43','湖南省','4306','岳阳市','430603','云溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430611','4306','00,43,4306','君山区','43','湖南省','4306','岳阳市','430611','君山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430621','4306','00,43,4306','岳阳县','43','湖南省','4306','岳阳市','430621','岳阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430623','4306','00,43,4306','华容县','43','湖南省','4306','岳阳市','430623','华容县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430624','4306','00,43,4306','湘阴县','43','湖南省','4306','岳阳市','430624','湘阴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430626','4306','00,43,4306','平江县','43','湖南省','4306','岳阳市','430626','平江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430681','4306','00,43,4306','汨罗市','43','湖南省','4306','岳阳市','430681','汨罗市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430682','4306','00,43,4306','临湘市','43','湖南省','4306','岳阳市','430682','临湘市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4307','43','00,43','常德市','43','湖南省','4307','常德市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430702','4307','00,43,4307','武陵区','43','湖南省','4307','常德市','430702','武陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430703','4307','00,43,4307','鼎城区','43','湖南省','4307','常德市','430703','鼎城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430721','4307','00,43,4307','安乡县','43','湖南省','4307','常德市','430721','安乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430722','4307','00,43,4307','汉寿县','43','湖南省','4307','常德市','430722','汉寿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430723','4307','00,43,4307','澧县','43','湖南省','4307','常德市','430723','澧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430724','4307','00,43,4307','临澧县','43','湖南省','4307','常德市','430724','临澧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430725','4307','00,43,4307','桃源县','43','湖南省','4307','常德市','430725','桃源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430726','4307','00,43,4307','石门县','43','湖南省','4307','常德市','430726','石门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430781','4307','00,43,4307','津市市','43','湖南省','4307','常德市','430781','津市市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4308','43','00,43','张家界市','43','湖南省','4308','张家界市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430802','4308','00,43,4308','永定区','43','湖南省','4308','张家界市','430802','永定区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430811','4308','00,43,4308','武陵源区','43','湖南省','4308','张家界市','430811','武陵源区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430821','4308','00,43,4308','慈利县','43','湖南省','4308','张家界市','430821','慈利县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430822','4308','00,43,4308','桑植县','43','湖南省','4308','张家界市','430822','桑植县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4309','43','00,43','益阳市','43','湖南省','4309','益阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430902','4309','00,43,4309','资阳区','43','湖南省','4309','益阳市','430902','资阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430903','4309','00,43,4309','赫山区','43','湖南省','4309','益阳市','430903','赫山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430921','4309','00,43,4309','南县','43','湖南省','4309','益阳市','430921','南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430922','4309','00,43,4309','桃江县','43','湖南省','4309','益阳市','430922','桃江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430923','4309','00,43,4309','安化县','43','湖南省','4309','益阳市','430923','安化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('430981','4309','00,43,4309','沅江市','43','湖南省','4309','益阳市','430981','沅江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4310','43','00,43','郴州市','43','湖南省','4310','郴州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431002','4310','00,43,4310','北湖区','43','湖南省','4310','郴州市','431002','北湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431003','4310','00,43,4310','苏仙区','43','湖南省','4310','郴州市','431003','苏仙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431021','4310','00,43,4310','桂阳县','43','湖南省','4310','郴州市','431021','桂阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431022','4310','00,43,4310','宜章县','43','湖南省','4310','郴州市','431022','宜章县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431023','4310','00,43,4310','永兴县','43','湖南省','4310','郴州市','431023','永兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431024','4310','00,43,4310','嘉禾县','43','湖南省','4310','郴州市','431024','嘉禾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431025','4310','00,43,4310','临武县','43','湖南省','4310','郴州市','431025','临武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431026','4310','00,43,4310','汝城县','43','湖南省','4310','郴州市','431026','汝城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431027','4310','00,43,4310','桂东县','43','湖南省','4310','郴州市','431027','桂东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431028','4310','00,43,4310','安仁县','43','湖南省','4310','郴州市','431028','安仁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431081','4310','00,43,4310','资兴市','43','湖南省','4310','郴州市','431081','资兴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4311','43','00,43','永州市','43','湖南省','4311','永州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431102','4311','00,43,4311','零陵区','43','湖南省','4311','永州市','431102','零陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431103','4311','00,43,4311','冷水滩区','43','湖南省','4311','永州市','431103','冷水滩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431121','4311','00,43,4311','祁阳县','43','湖南省','4311','永州市','431121','祁阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431122','4311','00,43,4311','东安县','43','湖南省','4311','永州市','431122','东安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431123','4311','00,43,4311','双牌县','43','湖南省','4311','永州市','431123','双牌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431124','4311','00,43,4311','道县','43','湖南省','4311','永州市','431124','道县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431125','4311','00,43,4311','江永县','43','湖南省','4311','永州市','431125','江永县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431126','4311','00,43,4311','宁远县','43','湖南省','4311','永州市','431126','宁远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431127','4311','00,43,4311','蓝山县','43','湖南省','4311','永州市','431127','蓝山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431128','4311','00,43,4311','新田县','43','湖南省','4311','永州市','431128','新田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431129','4311','00,43,4311','江华瑶族自治县','43','湖南省','4311','永州市','431129','江华瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4312','43','00,43','怀化市','43','湖南省','4312','怀化市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431202','4312','00,43,4312','鹤城区','43','湖南省','4312','怀化市','431202','鹤城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431221','4312','00,43,4312','中方县','43','湖南省','4312','怀化市','431221','中方县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431222','4312','00,43,4312','沅陵县','43','湖南省','4312','怀化市','431222','沅陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431223','4312','00,43,4312','辰溪县','43','湖南省','4312','怀化市','431223','辰溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431224','4312','00,43,4312','溆浦县','43','湖南省','4312','怀化市','431224','溆浦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431225','4312','00,43,4312','会同县','43','湖南省','4312','怀化市','431225','会同县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431226','4312','00,43,4312','麻阳苗族自治县','43','湖南省','4312','怀化市','431226','麻阳苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431227','4312','00,43,4312','新晃侗族自治县','43','湖南省','4312','怀化市','431227','新晃侗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431228','4312','00,43,4312','芷江侗族自治县','43','湖南省','4312','怀化市','431228','芷江侗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431229','4312','00,43,4312','靖州苗族侗族自治县','43','湖南省','4312','怀化市','431229','靖州苗族侗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431230','4312','00,43,4312','通道侗族自治县','43','湖南省','4312','怀化市','431230','通道侗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431281','4312','00,43,4312','洪江市','43','湖南省','4312','怀化市','431281','洪江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4313','43','00,43','娄底市','43','湖南省','4313','娄底市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431302','4313','00,43,4313','娄星区','43','湖南省','4313','娄底市','431302','娄星区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431321','4313','00,43,4313','双峰县','43','湖南省','4313','娄底市','431321','双峰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431322','4313','00,43,4313','新化县','43','湖南省','4313','娄底市','431322','新化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431381','4313','00,43,4313','冷水江市','43','湖南省','4313','娄底市','431381','冷水江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('431382','4313','00,43,4313','涟源市','43','湖南省','4313','娄底市','431382','涟源市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4331','43','00,43','湘西土家族苗族自治州','43','湖南省','4331','湘西土家族苗族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433101','4331','00,43,4331','吉首市','43','湖南省','4331','湘西土家族苗族自治州','433101','吉首市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433122','4331','00,43,4331','泸溪县','43','湖南省','4331','湘西土家族苗族自治州','433122','泸溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433123','4331','00,43,4331','凤凰县','43','湖南省','4331','湘西土家族苗族自治州','433123','凤凰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433124','4331','00,43,4331','花垣县','43','湖南省','4331','湘西土家族苗族自治州','433124','花垣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433125','4331','00,43,4331','保靖县','43','湖南省','4331','湘西土家族苗族自治州','433125','保靖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433126','4331','00,43,4331','古丈县','43','湖南省','4331','湘西土家族苗族自治州','433126','古丈县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433127','4331','00,43,4331','永顺县','43','湖南省','4331','湘西土家族苗族自治州','433127','永顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('433130','4331','00,43,4331','龙山县','43','湖南省','4331','湘西土家族苗族自治州','433130','龙山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('44','00','00','广东省','44','广东省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4401','44','00,44','广州市','44','广东省','4401','广州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440103','4401','00,44,4401','荔湾区','44','广东省','4401','广州市','440103','荔湾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440104','4401','00,44,4401','越秀区','44','广东省','4401','广州市','440104','越秀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440105','4401','00,44,4401','海珠区','44','广东省','4401','广州市','440105','海珠区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440106','4401','00,44,4401','天河区','44','广东省','4401','广州市','440106','天河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440111','4401','00,44,4401','白云区','44','广东省','4401','广州市','440111','白云区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440112','4401','00,44,4401','黄埔区','44','广东省','4401','广州市','440112','黄埔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440113','4401','00,44,4401','番禺区','44','广东省','4401','广州市','440113','番禺区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440114','4401','00,44,4401','花都区','44','广东省','4401','广州市','440114','花都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440115','4401','00,44,4401','南沙区','44','广东省','4401','广州市','440115','南沙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440117','4401','00,44,4401','从化区','44','广东省','4401','广州市','440117','从化区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440118','4401','00,44,4401','增城区','44','广东省','4401','广州市','440118','增城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4402','44','00,44','韶关市','44','广东省','4402','韶关市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440203','4402','00,44,4402','武江区','44','广东省','4402','韶关市','440203','武江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440204','4402','00,44,4402','浈江区','44','广东省','4402','韶关市','440204','浈江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440205','4402','00,44,4402','曲江区','44','广东省','4402','韶关市','440205','曲江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440222','4402','00,44,4402','始兴县','44','广东省','4402','韶关市','440222','始兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440224','4402','00,44,4402','仁化县','44','广东省','4402','韶关市','440224','仁化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440229','4402','00,44,4402','翁源县','44','广东省','4402','韶关市','440229','翁源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440232','4402','00,44,4402','乳源瑶族自治县','44','广东省','4402','韶关市','440232','乳源瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440233','4402','00,44,4402','新丰县','44','广东省','4402','韶关市','440233','新丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440281','4402','00,44,4402','乐昌市','44','广东省','4402','韶关市','440281','乐昌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440282','4402','00,44,4402','南雄市','44','广东省','4402','韶关市','440282','南雄市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4403','44','00,44','深圳市','44','广东省','4403','深圳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440303','4403','00,44,4403','罗湖区','44','广东省','4403','深圳市','440303','罗湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440304','4403','00,44,4403','福田区','44','广东省','4403','深圳市','440304','福田区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440305','4403','00,44,4403','南山区','44','广东省','4403','深圳市','440305','南山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440306','4403','00,44,4403','宝安区','44','广东省','4403','深圳市','440306','宝安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440307','4403','00,44,4403','龙岗区','44','广东省','4403','深圳市','440307','龙岗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440308','4403','00,44,4403','盐田区','44','广东省','4403','深圳市','440308','盐田区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440309','4403','00,44,4403','龙华区','44','广东省','4403','深圳市','440309','龙华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440310','4403','00,44,4403','坪山区','44','广东省','4403','深圳市','440310','坪山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440311','4403','00,44,4403','光明区','44','广东省','4403','深圳市','440311','光明区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4404','44','00,44','珠海市','44','广东省','4404','珠海市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440402','4404','00,44,4404','香洲区','44','广东省','4404','珠海市','440402','香洲区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440403','4404','00,44,4404','斗门区','44','广东省','4404','珠海市','440403','斗门区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440404','4404','00,44,4404','金湾区','44','广东省','4404','珠海市','440404','金湾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4405','44','00,44','汕头市','44','广东省','4405','汕头市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440507','4405','00,44,4405','龙湖区','44','广东省','4405','汕头市','440507','龙湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440511','4405','00,44,4405','金平区','44','广东省','4405','汕头市','440511','金平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440512','4405','00,44,4405','濠江区','44','广东省','4405','汕头市','440512','濠江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440513','4405','00,44,4405','潮阳区','44','广东省','4405','汕头市','440513','潮阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440514','4405','00,44,4405','潮南区','44','广东省','4405','汕头市','440514','潮南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440515','4405','00,44,4405','澄海区','44','广东省','4405','汕头市','440515','澄海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440523','4405','00,44,4405','南澳县','44','广东省','4405','汕头市','440523','南澳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4406','44','00,44','佛山市','44','广东省','4406','佛山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440604','4406','00,44,4406','禅城区','44','广东省','4406','佛山市','440604','禅城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440605','4406','00,44,4406','南海区','44','广东省','4406','佛山市','440605','南海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440606','4406','00,44,4406','顺德区','44','广东省','4406','佛山市','440606','顺德区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440607','4406','00,44,4406','三水区','44','广东省','4406','佛山市','440607','三水区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440608','4406','00,44,4406','高明区','44','广东省','4406','佛山市','440608','高明区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4407','44','00,44','江门市','44','广东省','4407','江门市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440703','4407','00,44,4407','蓬江区','44','广东省','4407','江门市','440703','蓬江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440704','4407','00,44,4407','江海区','44','广东省','4407','江门市','440704','江海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440705','4407','00,44,4407','新会区','44','广东省','4407','江门市','440705','新会区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440781','4407','00,44,4407','台山市','44','广东省','4407','江门市','440781','台山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440783','4407','00,44,4407','开平市','44','广东省','4407','江门市','440783','开平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440784','4407','00,44,4407','鹤山市','44','广东省','4407','江门市','440784','鹤山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440785','4407','00,44,4407','恩平市','44','广东省','4407','江门市','440785','恩平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4408','44','00,44','湛江市','44','广东省','4408','湛江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440802','4408','00,44,4408','赤坎区','44','广东省','4408','湛江市','440802','赤坎区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440803','4408','00,44,4408','霞山区','44','广东省','4408','湛江市','440803','霞山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440804','4408','00,44,4408','坡头区','44','广东省','4408','湛江市','440804','坡头区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440811','4408','00,44,4408','麻章区','44','广东省','4408','湛江市','440811','麻章区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440823','4408','00,44,4408','遂溪县','44','广东省','4408','湛江市','440823','遂溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440825','4408','00,44,4408','徐闻县','44','广东省','4408','湛江市','440825','徐闻县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440881','4408','00,44,4408','廉江市','44','广东省','4408','湛江市','440881','廉江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440882','4408','00,44,4408','雷州市','44','广东省','4408','湛江市','440882','雷州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440883','4408','00,44,4408','吴川市','44','广东省','4408','湛江市','440883','吴川市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4409','44','00,44','茂名市','44','广东省','4409','茂名市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440902','4409','00,44,4409','茂南区','44','广东省','4409','茂名市','440902','茂南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440904','4409','00,44,4409','电白区','44','广东省','4409','茂名市','440904','电白区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440981','4409','00,44,4409','高州市','44','广东省','4409','茂名市','440981','高州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440982','4409','00,44,4409','化州市','44','广东省','4409','茂名市','440982','化州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('440983','4409','00,44,4409','信宜市','44','广东省','4409','茂名市','440983','信宜市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4412','44','00,44','肇庆市','44','广东省','4412','肇庆市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441202','4412','00,44,4412','端州区','44','广东省','4412','肇庆市','441202','端州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441203','4412','00,44,4412','鼎湖区','44','广东省','4412','肇庆市','441203','鼎湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441204','4412','00,44,4412','高要区','44','广东省','4412','肇庆市','441204','高要区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441223','4412','00,44,4412','广宁县','44','广东省','4412','肇庆市','441223','广宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441224','4412','00,44,4412','怀集县','44','广东省','4412','肇庆市','441224','怀集县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441225','4412','00,44,4412','封开县','44','广东省','4412','肇庆市','441225','封开县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441226','4412','00,44,4412','德庆县','44','广东省','4412','肇庆市','441226','德庆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441284','4412','00,44,4412','四会市','44','广东省','4412','肇庆市','441284','四会市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4413','44','00,44','惠州市','44','广东省','4413','惠州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441302','4413','00,44,4413','惠城区','44','广东省','4413','惠州市','441302','惠城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441303','4413','00,44,4413','惠阳区','44','广东省','4413','惠州市','441303','惠阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441322','4413','00,44,4413','博罗县','44','广东省','4413','惠州市','441322','博罗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441323','4413','00,44,4413','惠东县','44','广东省','4413','惠州市','441323','惠东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441324','4413','00,44,4413','龙门县','44','广东省','4413','惠州市','441324','龙门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4414','44','00,44','梅州市','44','广东省','4414','梅州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441402','4414','00,44,4414','梅江区','44','广东省','4414','梅州市','441402','梅江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441403','4414','00,44,4414','梅县区','44','广东省','4414','梅州市','441403','梅县区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441422','4414','00,44,4414','大埔县','44','广东省','4414','梅州市','441422','大埔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441423','4414','00,44,4414','丰顺县','44','广东省','4414','梅州市','441423','丰顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441424','4414','00,44,4414','五华县','44','广东省','4414','梅州市','441424','五华县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441426','4414','00,44,4414','平远县','44','广东省','4414','梅州市','441426','平远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441427','4414','00,44,4414','蕉岭县','44','广东省','4414','梅州市','441427','蕉岭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441481','4414','00,44,4414','兴宁市','44','广东省','4414','梅州市','441481','兴宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4415','44','00,44','汕尾市','44','广东省','4415','汕尾市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441502','4415','00,44,4415','城区','44','广东省','4415','汕尾市','441502','城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441521','4415','00,44,4415','海丰县','44','广东省','4415','汕尾市','441521','海丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441523','4415','00,44,4415','陆河县','44','广东省','4415','汕尾市','441523','陆河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441581','4415','00,44,4415','陆丰市','44','广东省','4415','汕尾市','441581','陆丰市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4416','44','00,44','河源市','44','广东省','4416','河源市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441602','4416','00,44,4416','源城区','44','广东省','4416','河源市','441602','源城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441621','4416','00,44,4416','紫金县','44','广东省','4416','河源市','441621','紫金县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441622','4416','00,44,4416','龙川县','44','广东省','4416','河源市','441622','龙川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441623','4416','00,44,4416','连平县','44','广东省','4416','河源市','441623','连平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441624','4416','00,44,4416','和平县','44','广东省','4416','河源市','441624','和平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441625','4416','00,44,4416','东源县','44','广东省','4416','河源市','441625','东源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4417','44','00,44','阳江市','44','广东省','4417','阳江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441702','4417','00,44,4417','江城区','44','广东省','4417','阳江市','441702','江城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441704','4417','00,44,4417','阳东区','44','广东省','4417','阳江市','441704','阳东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441721','4417','00,44,4417','阳西县','44','广东省','4417','阳江市','441721','阳西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441781','4417','00,44,4417','阳春市','44','广东省','4417','阳江市','441781','阳春市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4418','44','00,44','清远市','44','广东省','4418','清远市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441802','4418','00,44,4418','清城区','44','广东省','4418','清远市','441802','清城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441803','4418','00,44,4418','清新区','44','广东省','4418','清远市','441803','清新区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441821','4418','00,44,4418','佛冈县','44','广东省','4418','清远市','441821','佛冈县','','','','',3,1,''); + +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441823','4418','00,44,4418','阳山县','44','广东省','4418','清远市','441823','阳山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441825','4418','00,44,4418','连山壮族瑶族自治县','44','广东省','4418','清远市','441825','连山壮族瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441826','4418','00,44,4418','连南瑶族自治县','44','广东省','4418','清远市','441826','连南瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441881','4418','00,44,4418','英德市','44','广东省','4418','清远市','441881','英德市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441882','4418','00,44,4418','连州市','44','广东省','4418','清远市','441882','连州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4419','44','00,44','东莞市','44','广东省','4419','东莞市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('441900','4419','00,44,4419','东莞市','44','广东省','4419','东莞市','441900','东莞市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4420','44','00,44','中山市','44','广东省','4420','中山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('442000','4420','00,44,4420','中山市','44','广东省','4420','中山市','442000','中山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4451','44','00,44','潮州市','44','广东省','4451','潮州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445102','4451','00,44,4451','湘桥区','44','广东省','4451','潮州市','445102','湘桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445103','4451','00,44,4451','潮安区','44','广东省','4451','潮州市','445103','潮安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445122','4451','00,44,4451','饶平县','44','广东省','4451','潮州市','445122','饶平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4452','44','00,44','揭阳市','44','广东省','4452','揭阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445202','4452','00,44,4452','榕城区','44','广东省','4452','揭阳市','445202','榕城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445203','4452','00,44,4452','揭东区','44','广东省','4452','揭阳市','445203','揭东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445222','4452','00,44,4452','揭西县','44','广东省','4452','揭阳市','445222','揭西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445224','4452','00,44,4452','惠来县','44','广东省','4452','揭阳市','445224','惠来县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445281','4452','00,44,4452','普宁市','44','广东省','4452','揭阳市','445281','普宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4453','44','00,44','云浮市','44','广东省','4453','云浮市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445302','4453','00,44,4453','云城区','44','广东省','4453','云浮市','445302','云城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445303','4453','00,44,4453','云安区','44','广东省','4453','云浮市','445303','云安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445321','4453','00,44,4453','新兴县','44','广东省','4453','云浮市','445321','新兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445322','4453','00,44,4453','郁南县','44','广东省','4453','云浮市','445322','郁南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('445381','4453','00,44,4453','罗定市','44','广东省','4453','云浮市','445381','罗定市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('45','00','00','广西壮族自治区','45','广西壮族自治区','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4501','45','00,45','南宁市','45','广西壮族自治区','4501','南宁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450102','4501','00,45,4501','兴宁区','45','广西壮族自治区','4501','南宁市','450102','兴宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450103','4501','00,45,4501','青秀区','45','广西壮族自治区','4501','南宁市','450103','青秀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450105','4501','00,45,4501','江南区','45','广西壮族自治区','4501','南宁市','450105','江南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450107','4501','00,45,4501','西乡塘区','45','广西壮族自治区','4501','南宁市','450107','西乡塘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450108','4501','00,45,4501','良庆区','45','广西壮族自治区','4501','南宁市','450108','良庆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450109','4501','00,45,4501','邕宁区','45','广西壮族自治区','4501','南宁市','450109','邕宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450110','4501','00,45,4501','武鸣区','45','广西壮族自治区','4501','南宁市','450110','武鸣区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450123','4501','00,45,4501','隆安县','45','广西壮族自治区','4501','南宁市','450123','隆安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450124','4501','00,45,4501','马山县','45','广西壮族自治区','4501','南宁市','450124','马山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450125','4501','00,45,4501','上林县','45','广西壮族自治区','4501','南宁市','450125','上林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450126','4501','00,45,4501','宾阳县','45','广西壮族自治区','4501','南宁市','450126','宾阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450127','4501','00,45,4501','横县','45','广西壮族自治区','4501','南宁市','450127','横县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4502','45','00,45','柳州市','45','广西壮族自治区','4502','柳州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450202','4502','00,45,4502','城中区','45','广西壮族自治区','4502','柳州市','450202','城中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450203','4502','00,45,4502','鱼峰区','45','广西壮族自治区','4502','柳州市','450203','鱼峰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450204','4502','00,45,4502','柳南区','45','广西壮族自治区','4502','柳州市','450204','柳南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450205','4502','00,45,4502','柳北区','45','广西壮族自治区','4502','柳州市','450205','柳北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450206','4502','00,45,4502','柳江区','45','广西壮族自治区','4502','柳州市','450206','柳江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450222','4502','00,45,4502','柳城县','45','广西壮族自治区','4502','柳州市','450222','柳城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450223','4502','00,45,4502','鹿寨县','45','广西壮族自治区','4502','柳州市','450223','鹿寨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450224','4502','00,45,4502','融安县','45','广西壮族自治区','4502','柳州市','450224','融安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450225','4502','00,45,4502','融水苗族自治县','45','广西壮族自治区','4502','柳州市','450225','融水苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450226','4502','00,45,4502','三江侗族自治县','45','广西壮族自治区','4502','柳州市','450226','三江侗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4503','45','00,45','桂林市','45','广西壮族自治区','4503','桂林市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450302','4503','00,45,4503','秀峰区','45','广西壮族自治区','4503','桂林市','450302','秀峰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450303','4503','00,45,4503','叠彩区','45','广西壮族自治区','4503','桂林市','450303','叠彩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450304','4503','00,45,4503','象山区','45','广西壮族自治区','4503','桂林市','450304','象山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450305','4503','00,45,4503','七星区','45','广西壮族自治区','4503','桂林市','450305','七星区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450311','4503','00,45,4503','雁山区','45','广西壮族自治区','4503','桂林市','450311','雁山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450312','4503','00,45,4503','临桂区','45','广西壮族自治区','4503','桂林市','450312','临桂区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450321','4503','00,45,4503','阳朔县','45','广西壮族自治区','4503','桂林市','450321','阳朔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450323','4503','00,45,4503','灵川县','45','广西壮族自治区','4503','桂林市','450323','灵川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450324','4503','00,45,4503','全州县','45','广西壮族自治区','4503','桂林市','450324','全州县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450325','4503','00,45,4503','兴安县','45','广西壮族自治区','4503','桂林市','450325','兴安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450326','4503','00,45,4503','永福县','45','广西壮族自治区','4503','桂林市','450326','永福县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450327','4503','00,45,4503','灌阳县','45','广西壮族自治区','4503','桂林市','450327','灌阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450328','4503','00,45,4503','龙胜各族自治县','45','广西壮族自治区','4503','桂林市','450328','龙胜各族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450329','4503','00,45,4503','资源县','45','广西壮族自治区','4503','桂林市','450329','资源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450330','4503','00,45,4503','平乐县','45','广西壮族自治区','4503','桂林市','450330','平乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450332','4503','00,45,4503','恭城瑶族自治县','45','广西壮族自治区','4503','桂林市','450332','恭城瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450381','4503','00,45,4503','荔浦市','45','广西壮族自治区','4503','桂林市','450381','荔浦市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4504','45','00,45','梧州市','45','广西壮族自治区','4504','梧州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450403','4504','00,45,4504','万秀区','45','广西壮族自治区','4504','梧州市','450403','万秀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450405','4504','00,45,4504','长洲区','45','广西壮族自治区','4504','梧州市','450405','长洲区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450406','4504','00,45,4504','龙圩区','45','广西壮族自治区','4504','梧州市','450406','龙圩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450421','4504','00,45,4504','苍梧县','45','广西壮族自治区','4504','梧州市','450421','苍梧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450422','4504','00,45,4504','藤县','45','广西壮族自治区','4504','梧州市','450422','藤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450423','4504','00,45,4504','蒙山县','45','广西壮族自治区','4504','梧州市','450423','蒙山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450481','4504','00,45,4504','岑溪市','45','广西壮族自治区','4504','梧州市','450481','岑溪市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4505','45','00,45','北海市','45','广西壮族自治区','4505','北海市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450502','4505','00,45,4505','海城区','45','广西壮族自治区','4505','北海市','450502','海城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450503','4505','00,45,4505','银海区','45','广西壮族自治区','4505','北海市','450503','银海区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450512','4505','00,45,4505','铁山港区','45','广西壮族自治区','4505','北海市','450512','铁山港区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450521','4505','00,45,4505','合浦县','45','广西壮族自治区','4505','北海市','450521','合浦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4506','45','00,45','防城港市','45','广西壮族自治区','4506','防城港市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450602','4506','00,45,4506','港口区','45','广西壮族自治区','4506','防城港市','450602','港口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450603','4506','00,45,4506','防城区','45','广西壮族自治区','4506','防城港市','450603','防城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450621','4506','00,45,4506','上思县','45','广西壮族自治区','4506','防城港市','450621','上思县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450681','4506','00,45,4506','东兴市','45','广西壮族自治区','4506','防城港市','450681','东兴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4507','45','00,45','钦州市','45','广西壮族自治区','4507','钦州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450702','4507','00,45,4507','钦南区','45','广西壮族自治区','4507','钦州市','450702','钦南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450703','4507','00,45,4507','钦北区','45','广西壮族自治区','4507','钦州市','450703','钦北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450721','4507','00,45,4507','灵山县','45','广西壮族自治区','4507','钦州市','450721','灵山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450722','4507','00,45,4507','浦北县','45','广西壮族自治区','4507','钦州市','450722','浦北县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4508','45','00,45','贵港市','45','广西壮族自治区','4508','贵港市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450802','4508','00,45,4508','港北区','45','广西壮族自治区','4508','贵港市','450802','港北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450803','4508','00,45,4508','港南区','45','广西壮族自治区','4508','贵港市','450803','港南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450804','4508','00,45,4508','覃塘区','45','广西壮族自治区','4508','贵港市','450804','覃塘区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450821','4508','00,45,4508','平南县','45','广西壮族自治区','4508','贵港市','450821','平南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450881','4508','00,45,4508','桂平市','45','广西壮族自治区','4508','贵港市','450881','桂平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4509','45','00,45','玉林市','45','广西壮族自治区','4509','玉林市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450902','4509','00,45,4509','玉州区','45','广西壮族自治区','4509','玉林市','450902','玉州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450903','4509','00,45,4509','福绵区','45','广西壮族自治区','4509','玉林市','450903','福绵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450921','4509','00,45,4509','容县','45','广西壮族自治区','4509','玉林市','450921','容县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450922','4509','00,45,4509','陆川县','45','广西壮族自治区','4509','玉林市','450922','陆川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450923','4509','00,45,4509','博白县','45','广西壮族自治区','4509','玉林市','450923','博白县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450924','4509','00,45,4509','兴业县','45','广西壮族自治区','4509','玉林市','450924','兴业县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('450981','4509','00,45,4509','北流市','45','广西壮族自治区','4509','玉林市','450981','北流市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4510','45','00,45','百色市','45','广西壮族自治区','4510','百色市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451002','4510','00,45,4510','右江区','45','广西壮族自治区','4510','百色市','451002','右江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451003','4510','00,45,4510','田阳区','45','广西壮族自治区','4510','百色市','451003','田阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451022','4510','00,45,4510','田东县','45','广西壮族自治区','4510','百色市','451022','田东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451024','4510','00,45,4510','德保县','45','广西壮族自治区','4510','百色市','451024','德保县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451026','4510','00,45,4510','那坡县','45','广西壮族自治区','4510','百色市','451026','那坡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451027','4510','00,45,4510','凌云县','45','广西壮族自治区','4510','百色市','451027','凌云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451028','4510','00,45,4510','乐业县','45','广西壮族自治区','4510','百色市','451028','乐业县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451029','4510','00,45,4510','田林县','45','广西壮族自治区','4510','百色市','451029','田林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451030','4510','00,45,4510','西林县','45','广西壮族自治区','4510','百色市','451030','西林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451031','4510','00,45,4510','隆林各族自治县','45','广西壮族自治区','4510','百色市','451031','隆林各族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451081','4510','00,45,4510','靖西市','45','广西壮族自治区','4510','百色市','451081','靖西市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451082','4510','00,45,4510','平果市','45','广西壮族自治区','4510','百色市','451082','平果市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4511','45','00,45','贺州市','45','广西壮族自治区','4511','贺州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451102','4511','00,45,4511','八步区','45','广西壮族自治区','4511','贺州市','451102','八步区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451103','4511','00,45,4511','平桂区','45','广西壮族自治区','4511','贺州市','451103','平桂区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451121','4511','00,45,4511','昭平县','45','广西壮族自治区','4511','贺州市','451121','昭平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451122','4511','00,45,4511','钟山县','45','广西壮族自治区','4511','贺州市','451122','钟山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451123','4511','00,45,4511','富川瑶族自治县','45','广西壮族自治区','4511','贺州市','451123','富川瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4512','45','00,45','河池市','45','广西壮族自治区','4512','河池市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451202','4512','00,45,4512','金城江区','45','广西壮族自治区','4512','河池市','451202','金城江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451203','4512','00,45,4512','宜州区','45','广西壮族自治区','4512','河池市','451203','宜州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451221','4512','00,45,4512','南丹县','45','广西壮族自治区','4512','河池市','451221','南丹县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451222','4512','00,45,4512','天峨县','45','广西壮族自治区','4512','河池市','451222','天峨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451223','4512','00,45,4512','凤山县','45','广西壮族自治区','4512','河池市','451223','凤山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451224','4512','00,45,4512','东兰县','45','广西壮族自治区','4512','河池市','451224','东兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451225','4512','00,45,4512','罗城仫佬族自治县','45','广西壮族自治区','4512','河池市','451225','罗城仫佬族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451226','4512','00,45,4512','环江毛南族自治县','45','广西壮族自治区','4512','河池市','451226','环江毛南族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451227','4512','00,45,4512','巴马瑶族自治县','45','广西壮族自治区','4512','河池市','451227','巴马瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451228','4512','00,45,4512','都安瑶族自治县','45','广西壮族自治区','4512','河池市','451228','都安瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451229','4512','00,45,4512','大化瑶族自治县','45','广西壮族自治区','4512','河池市','451229','大化瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4513','45','00,45','来宾市','45','广西壮族自治区','4513','来宾市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451302','4513','00,45,4513','兴宾区','45','广西壮族自治区','4513','来宾市','451302','兴宾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451321','4513','00,45,4513','忻城县','45','广西壮族自治区','4513','来宾市','451321','忻城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451322','4513','00,45,4513','象州县','45','广西壮族自治区','4513','来宾市','451322','象州县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451323','4513','00,45,4513','武宣县','45','广西壮族自治区','4513','来宾市','451323','武宣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451324','4513','00,45,4513','金秀瑶族自治县','45','广西壮族自治区','4513','来宾市','451324','金秀瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451381','4513','00,45,4513','合山市','45','广西壮族自治区','4513','来宾市','451381','合山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4514','45','00,45','崇左市','45','广西壮族自治区','4514','崇左市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451402','4514','00,45,4514','江州区','45','广西壮族自治区','4514','崇左市','451402','江州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451421','4514','00,45,4514','扶绥县','45','广西壮族自治区','4514','崇左市','451421','扶绥县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451422','4514','00,45,4514','宁明县','45','广西壮族自治区','4514','崇左市','451422','宁明县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451423','4514','00,45,4514','龙州县','45','广西壮族自治区','4514','崇左市','451423','龙州县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451424','4514','00,45,4514','大新县','45','广西壮族自治区','4514','崇左市','451424','大新县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451425','4514','00,45,4514','天等县','45','广西壮族自治区','4514','崇左市','451425','天等县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('451481','4514','00,45,4514','凭祥市','45','广西壮族自治区','4514','崇左市','451481','凭祥市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('46','00','00','海南省','46','海南省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4601','46','00,46','海口市','46','海南省','4601','海口市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460105','4601','00,46,4601','秀英区','46','海南省','4601','海口市','460105','秀英区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460106','4601','00,46,4601','龙华区','46','海南省','4601','海口市','460106','龙华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460107','4601','00,46,4601','琼山区','46','海南省','4601','海口市','460107','琼山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460108','4601','00,46,4601','美兰区','46','海南省','4601','海口市','460108','美兰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4602','46','00,46','三亚市','46','海南省','4602','三亚市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460202','4602','00,46,4602','海棠区','46','海南省','4602','三亚市','460202','海棠区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460203','4602','00,46,4602','吉阳区','46','海南省','4602','三亚市','460203','吉阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460204','4602','00,46,4602','天涯区','46','海南省','4602','三亚市','460204','天涯区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460205','4602','00,46,4602','崖州区','46','海南省','4602','三亚市','460205','崖州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4603','46','00,46','三沙市','46','海南省','4603','三沙市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460300','4603','00,46,4603','三沙市','46','海南省','4603','三沙市','460300','三沙市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4604','46','00,46','儋州市','46','海南省','4604','儋州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('460400','4604','00,46,4604','儋州市','46','海南省','4604','儋州市','460400','儋州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('4690','46','00,46','省直辖县级行政区','46','海南省','4690','省直辖县级行政区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469001','4690','00,46,4690','五指山市','46','海南省','4690','省直辖县级行政区','469001','五指山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469002','4690','00,46,4690','琼海市','46','海南省','4690','省直辖县级行政区','469002','琼海市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469005','4690','00,46,4690','文昌市','46','海南省','4690','省直辖县级行政区','469005','文昌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469006','4690','00,46,4690','万宁市','46','海南省','4690','省直辖县级行政区','469006','万宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469007','4690','00,46,4690','东方市','46','海南省','4690','省直辖县级行政区','469007','东方市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469021','4690','00,46,4690','定安县','46','海南省','4690','省直辖县级行政区','469021','定安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469022','4690','00,46,4690','屯昌县','46','海南省','4690','省直辖县级行政区','469022','屯昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469023','4690','00,46,4690','澄迈县','46','海南省','4690','省直辖县级行政区','469023','澄迈县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469024','4690','00,46,4690','临高县','46','海南省','4690','省直辖县级行政区','469024','临高县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469025','4690','00,46,4690','白沙黎族自治县','46','海南省','4690','省直辖县级行政区','469025','白沙黎族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469026','4690','00,46,4690','昌江黎族自治县','46','海南省','4690','省直辖县级行政区','469026','昌江黎族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469027','4690','00,46,4690','乐东黎族自治县','46','海南省','4690','省直辖县级行政区','469027','乐东黎族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469028','4690','00,46,4690','陵水黎族自治县','46','海南省','4690','省直辖县级行政区','469028','陵水黎族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469029','4690','00,46,4690','保亭黎族苗族自治县','46','海南省','4690','省直辖县级行政区','469029','保亭黎族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('469030','4690','00,46,4690','琼中黎族苗族自治县','46','海南省','4690','省直辖县级行政区','469030','琼中黎族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('50','00','00','重庆市','50','重庆市','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5001','50','00,50','重庆市','50','重庆市','5001','重庆市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500101','5001','00,50,5001','万州区','50','重庆市','5001','重庆市','500101','万州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500102','5001','00,50,5001','涪陵区','50','重庆市','5001','重庆市','500102','涪陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500103','5001','00,50,5001','渝中区','50','重庆市','5001','重庆市','500103','渝中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500104','5001','00,50,5001','大渡口区','50','重庆市','5001','重庆市','500104','大渡口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500105','5001','00,50,5001','江北区','50','重庆市','5001','重庆市','500105','江北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500106','5001','00,50,5001','沙坪坝区','50','重庆市','5001','重庆市','500106','沙坪坝区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500107','5001','00,50,5001','九龙坡区','50','重庆市','5001','重庆市','500107','九龙坡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500108','5001','00,50,5001','南岸区','50','重庆市','5001','重庆市','500108','南岸区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500109','5001','00,50,5001','北碚区','50','重庆市','5001','重庆市','500109','北碚区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500110','5001','00,50,5001','綦江区','50','重庆市','5001','重庆市','500110','綦江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500111','5001','00,50,5001','大足区','50','重庆市','5001','重庆市','500111','大足区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500112','5001','00,50,5001','渝北区','50','重庆市','5001','重庆市','500112','渝北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500113','5001','00,50,5001','巴南区','50','重庆市','5001','重庆市','500113','巴南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500114','5001','00,50,5001','黔江区','50','重庆市','5001','重庆市','500114','黔江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500115','5001','00,50,5001','长寿区','50','重庆市','5001','重庆市','500115','长寿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500116','5001','00,50,5001','江津区','50','重庆市','5001','重庆市','500116','江津区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500117','5001','00,50,5001','合川区','50','重庆市','5001','重庆市','500117','合川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500118','5001','00,50,5001','永川区','50','重庆市','5001','重庆市','500118','永川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500119','5001','00,50,5001','南川区','50','重庆市','5001','重庆市','500119','南川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500120','5001','00,50,5001','璧山区','50','重庆市','5001','重庆市','500120','璧山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500151','5001','00,50,5001','铜梁区','50','重庆市','5001','重庆市','500151','铜梁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500152','5001','00,50,5001','潼南区','50','重庆市','5001','重庆市','500152','潼南区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500153','5001','00,50,5001','荣昌区','50','重庆市','5001','重庆市','500153','荣昌区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500154','5001','00,50,5001','开州区','50','重庆市','5001','重庆市','500154','开州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500155','5001','00,50,5001','梁平区','50','重庆市','5001','重庆市','500155','梁平区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500156','5001','00,50,5001','武隆区','50','重庆市','5001','重庆市','500156','武隆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5002','50','00,50','重庆市','50','重庆市','5002','重庆市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500229','5002','00,50,5002','城口县','50','重庆市','5002','重庆市','500229','城口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500230','5002','00,50,5002','丰都县','50','重庆市','5002','重庆市','500230','丰都县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500231','5002','00,50,5002','垫江县','50','重庆市','5002','重庆市','500231','垫江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500233','5002','00,50,5002','忠县','50','重庆市','5002','重庆市','500233','忠县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500235','5002','00,50,5002','云阳县','50','重庆市','5002','重庆市','500235','云阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500236','5002','00,50,5002','奉节县','50','重庆市','5002','重庆市','500236','奉节县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500237','5002','00,50,5002','巫山县','50','重庆市','5002','重庆市','500237','巫山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500238','5002','00,50,5002','巫溪县','50','重庆市','5002','重庆市','500238','巫溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500240','5002','00,50,5002','石柱土家族自治县','50','重庆市','5002','重庆市','500240','石柱土家族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500241','5002','00,50,5002','秀山土家族苗族自治县','50','重庆市','5002','重庆市','500241','秀山土家族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500242','5002','00,50,5002','酉阳土家族苗族自治县','50','重庆市','5002','重庆市','500242','酉阳土家族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('500243','5002','00,50,5002','彭水苗族土家族自治县','50','重庆市','5002','重庆市','500243','彭水苗族土家族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('51','00','00','四川省','51','四川省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5101','51','00,51','成都市','51','四川省','5101','成都市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510104','5101','00,51,5101','锦江区','51','四川省','5101','成都市','510104','锦江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510105','5101','00,51,5101','青羊区','51','四川省','5101','成都市','510105','青羊区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510106','5101','00,51,5101','金牛区','51','四川省','5101','成都市','510106','金牛区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510107','5101','00,51,5101','武侯区','51','四川省','5101','成都市','510107','武侯区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510108','5101','00,51,5101','成华区','51','四川省','5101','成都市','510108','成华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510112','5101','00,51,5101','龙泉驿区','51','四川省','5101','成都市','510112','龙泉驿区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510113','5101','00,51,5101','青白江区','51','四川省','5101','成都市','510113','青白江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510114','5101','00,51,5101','新都区','51','四川省','5101','成都市','510114','新都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510115','5101','00,51,5101','温江区','51','四川省','5101','成都市','510115','温江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510116','5101','00,51,5101','双流区','51','四川省','5101','成都市','510116','双流区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510117','5101','00,51,5101','郫都区','51','四川省','5101','成都市','510117','郫都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510121','5101','00,51,5101','金堂县','51','四川省','5101','成都市','510121','金堂县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510129','5101','00,51,5101','大邑县','51','四川省','5101','成都市','510129','大邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510131','5101','00,51,5101','蒲江县','51','四川省','5101','成都市','510131','蒲江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510132','5101','00,51,5101','新津县','51','四川省','5101','成都市','510132','新津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510181','5101','00,51,5101','都江堰市','51','四川省','5101','成都市','510181','都江堰市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510182','5101','00,51,5101','彭州市','51','四川省','5101','成都市','510182','彭州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510183','5101','00,51,5101','邛崃市','51','四川省','5101','成都市','510183','邛崃市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510184','5101','00,51,5101','崇州市','51','四川省','5101','成都市','510184','崇州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510185','5101','00,51,5101','简阳市','51','四川省','5101','成都市','510185','简阳市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5103','51','00,51','自贡市','51','四川省','5103','自贡市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510302','5103','00,51,5103','自流井区','51','四川省','5103','自贡市','510302','自流井区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510303','5103','00,51,5103','贡井区','51','四川省','5103','自贡市','510303','贡井区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510304','5103','00,51,5103','大安区','51','四川省','5103','自贡市','510304','大安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510311','5103','00,51,5103','沿滩区','51','四川省','5103','自贡市','510311','沿滩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510321','5103','00,51,5103','荣县','51','四川省','5103','自贡市','510321','荣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510322','5103','00,51,5103','富顺县','51','四川省','5103','自贡市','510322','富顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5104','51','00,51','攀枝花市','51','四川省','5104','攀枝花市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510402','5104','00,51,5104','东区','51','四川省','5104','攀枝花市','510402','东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510403','5104','00,51,5104','西区','51','四川省','5104','攀枝花市','510403','西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510411','5104','00,51,5104','仁和区','51','四川省','5104','攀枝花市','510411','仁和区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510421','5104','00,51,5104','米易县','51','四川省','5104','攀枝花市','510421','米易县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510422','5104','00,51,5104','盐边县','51','四川省','5104','攀枝花市','510422','盐边县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5105','51','00,51','泸州市','51','四川省','5105','泸州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510502','5105','00,51,5105','江阳区','51','四川省','5105','泸州市','510502','江阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510503','5105','00,51,5105','纳溪区','51','四川省','5105','泸州市','510503','纳溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510504','5105','00,51,5105','龙马潭区','51','四川省','5105','泸州市','510504','龙马潭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510521','5105','00,51,5105','泸县','51','四川省','5105','泸州市','510521','泸县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510522','5105','00,51,5105','合江县','51','四川省','5105','泸州市','510522','合江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510524','5105','00,51,5105','叙永县','51','四川省','5105','泸州市','510524','叙永县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510525','5105','00,51,5105','古蔺县','51','四川省','5105','泸州市','510525','古蔺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5106','51','00,51','德阳市','51','四川省','5106','德阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510603','5106','00,51,5106','旌阳区','51','四川省','5106','德阳市','510603','旌阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510604','5106','00,51,5106','罗江区','51','四川省','5106','德阳市','510604','罗江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510623','5106','00,51,5106','中江县','51','四川省','5106','德阳市','510623','中江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510681','5106','00,51,5106','广汉市','51','四川省','5106','德阳市','510681','广汉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510682','5106','00,51,5106','什邡市','51','四川省','5106','德阳市','510682','什邡市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510683','5106','00,51,5106','绵竹市','51','四川省','5106','德阳市','510683','绵竹市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5107','51','00,51','绵阳市','51','四川省','5107','绵阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510703','5107','00,51,5107','涪城区','51','四川省','5107','绵阳市','510703','涪城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510704','5107','00,51,5107','游仙区','51','四川省','5107','绵阳市','510704','游仙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510705','5107','00,51,5107','安州区','51','四川省','5107','绵阳市','510705','安州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510722','5107','00,51,5107','三台县','51','四川省','5107','绵阳市','510722','三台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510723','5107','00,51,5107','盐亭县','51','四川省','5107','绵阳市','510723','盐亭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510725','5107','00,51,5107','梓潼县','51','四川省','5107','绵阳市','510725','梓潼县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510726','5107','00,51,5107','北川羌族自治县','51','四川省','5107','绵阳市','510726','北川羌族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510727','5107','00,51,5107','平武县','51','四川省','5107','绵阳市','510727','平武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510781','5107','00,51,5107','江油市','51','四川省','5107','绵阳市','510781','江油市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5108','51','00,51','广元市','51','四川省','5108','广元市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510802','5108','00,51,5108','利州区','51','四川省','5108','广元市','510802','利州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510811','5108','00,51,5108','昭化区','51','四川省','5108','广元市','510811','昭化区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510812','5108','00,51,5108','朝天区','51','四川省','5108','广元市','510812','朝天区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510821','5108','00,51,5108','旺苍县','51','四川省','5108','广元市','510821','旺苍县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510822','5108','00,51,5108','青川县','51','四川省','5108','广元市','510822','青川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510823','5108','00,51,5108','剑阁县','51','四川省','5108','广元市','510823','剑阁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510824','5108','00,51,5108','苍溪县','51','四川省','5108','广元市','510824','苍溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5109','51','00,51','遂宁市','51','四川省','5109','遂宁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510903','5109','00,51,5109','船山区','51','四川省','5109','遂宁市','510903','船山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510904','5109','00,51,5109','安居区','51','四川省','5109','遂宁市','510904','安居区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510921','5109','00,51,5109','蓬溪县','51','四川省','5109','遂宁市','510921','蓬溪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510923','5109','00,51,5109','大英县','51','四川省','5109','遂宁市','510923','大英县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('510981','5109','00,51,5109','射洪市','51','四川省','5109','遂宁市','510981','射洪市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5110','51','00,51','内江市','51','四川省','5110','内江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511002','5110','00,51,5110','市中区','51','四川省','5110','内江市','511002','市中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511011','5110','00,51,5110','东兴区','51','四川省','5110','内江市','511011','东兴区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511024','5110','00,51,5110','威远县','51','四川省','5110','内江市','511024','威远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511025','5110','00,51,5110','资中县','51','四川省','5110','内江市','511025','资中县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511083','5110','00,51,5110','隆昌市','51','四川省','5110','内江市','511083','隆昌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5111','51','00,51','乐山市','51','四川省','5111','乐山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511102','5111','00,51,5111','市中区','51','四川省','5111','乐山市','511102','市中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511111','5111','00,51,5111','沙湾区','51','四川省','5111','乐山市','511111','沙湾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511112','5111','00,51,5111','五通桥区','51','四川省','5111','乐山市','511112','五通桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511113','5111','00,51,5111','金口河区','51','四川省','5111','乐山市','511113','金口河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511123','5111','00,51,5111','犍为县','51','四川省','5111','乐山市','511123','犍为县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511124','5111','00,51,5111','井研县','51','四川省','5111','乐山市','511124','井研县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511126','5111','00,51,5111','夹江县','51','四川省','5111','乐山市','511126','夹江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511129','5111','00,51,5111','沐川县','51','四川省','5111','乐山市','511129','沐川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511132','5111','00,51,5111','峨边彝族自治县','51','四川省','5111','乐山市','511132','峨边彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511133','5111','00,51,5111','马边彝族自治县','51','四川省','5111','乐山市','511133','马边彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511181','5111','00,51,5111','峨眉山市','51','四川省','5111','乐山市','511181','峨眉山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5113','51','00,51','南充市','51','四川省','5113','南充市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511302','5113','00,51,5113','顺庆区','51','四川省','5113','南充市','511302','顺庆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511303','5113','00,51,5113','高坪区','51','四川省','5113','南充市','511303','高坪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511304','5113','00,51,5113','嘉陵区','51','四川省','5113','南充市','511304','嘉陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511321','5113','00,51,5113','南部县','51','四川省','5113','南充市','511321','南部县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511322','5113','00,51,5113','营山县','51','四川省','5113','南充市','511322','营山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511323','5113','00,51,5113','蓬安县','51','四川省','5113','南充市','511323','蓬安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511324','5113','00,51,5113','仪陇县','51','四川省','5113','南充市','511324','仪陇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511325','5113','00,51,5113','西充县','51','四川省','5113','南充市','511325','西充县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511381','5113','00,51,5113','阆中市','51','四川省','5113','南充市','511381','阆中市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5114','51','00,51','眉山市','51','四川省','5114','眉山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511402','5114','00,51,5114','东坡区','51','四川省','5114','眉山市','511402','东坡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511403','5114','00,51,5114','彭山区','51','四川省','5114','眉山市','511403','彭山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511421','5114','00,51,5114','仁寿县','51','四川省','5114','眉山市','511421','仁寿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511423','5114','00,51,5114','洪雅县','51','四川省','5114','眉山市','511423','洪雅县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511424','5114','00,51,5114','丹棱县','51','四川省','5114','眉山市','511424','丹棱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511425','5114','00,51,5114','青神县','51','四川省','5114','眉山市','511425','青神县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5115','51','00,51','宜宾市','51','四川省','5115','宜宾市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511502','5115','00,51,5115','翠屏区','51','四川省','5115','宜宾市','511502','翠屏区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511503','5115','00,51,5115','南溪区','51','四川省','5115','宜宾市','511503','南溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511504','5115','00,51,5115','叙州区','51','四川省','5115','宜宾市','511504','叙州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511523','5115','00,51,5115','江安县','51','四川省','5115','宜宾市','511523','江安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511524','5115','00,51,5115','长宁县','51','四川省','5115','宜宾市','511524','长宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511525','5115','00,51,5115','高县','51','四川省','5115','宜宾市','511525','高县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511526','5115','00,51,5115','珙县','51','四川省','5115','宜宾市','511526','珙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511527','5115','00,51,5115','筠连县','51','四川省','5115','宜宾市','511527','筠连县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511528','5115','00,51,5115','兴文县','51','四川省','5115','宜宾市','511528','兴文县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511529','5115','00,51,5115','屏山县','51','四川省','5115','宜宾市','511529','屏山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5116','51','00,51','广安市','51','四川省','5116','广安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511602','5116','00,51,5116','广安区','51','四川省','5116','广安市','511602','广安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511603','5116','00,51,5116','前锋区','51','四川省','5116','广安市','511603','前锋区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511621','5116','00,51,5116','岳池县','51','四川省','5116','广安市','511621','岳池县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511622','5116','00,51,5116','武胜县','51','四川省','5116','广安市','511622','武胜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511623','5116','00,51,5116','邻水县','51','四川省','5116','广安市','511623','邻水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511681','5116','00,51,5116','华蓥市','51','四川省','5116','广安市','511681','华蓥市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5117','51','00,51','达州市','51','四川省','5117','达州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511702','5117','00,51,5117','通川区','51','四川省','5117','达州市','511702','通川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511703','5117','00,51,5117','达川区','51','四川省','5117','达州市','511703','达川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511722','5117','00,51,5117','宣汉县','51','四川省','5117','达州市','511722','宣汉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511723','5117','00,51,5117','开江县','51','四川省','5117','达州市','511723','开江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511724','5117','00,51,5117','大竹县','51','四川省','5117','达州市','511724','大竹县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511725','5117','00,51,5117','渠县','51','四川省','5117','达州市','511725','渠县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511781','5117','00,51,5117','万源市','51','四川省','5117','达州市','511781','万源市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5118','51','00,51','雅安市','51','四川省','5118','雅安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511802','5118','00,51,5118','雨城区','51','四川省','5118','雅安市','511802','雨城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511803','5118','00,51,5118','名山区','51','四川省','5118','雅安市','511803','名山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511822','5118','00,51,5118','荥经县','51','四川省','5118','雅安市','511822','荥经县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511823','5118','00,51,5118','汉源县','51','四川省','5118','雅安市','511823','汉源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511824','5118','00,51,5118','石棉县','51','四川省','5118','雅安市','511824','石棉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511825','5118','00,51,5118','天全县','51','四川省','5118','雅安市','511825','天全县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511826','5118','00,51,5118','芦山县','51','四川省','5118','雅安市','511826','芦山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511827','5118','00,51,5118','宝兴县','51','四川省','5118','雅安市','511827','宝兴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5119','51','00,51','巴中市','51','四川省','5119','巴中市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511902','5119','00,51,5119','巴州区','51','四川省','5119','巴中市','511902','巴州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511903','5119','00,51,5119','恩阳区','51','四川省','5119','巴中市','511903','恩阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511921','5119','00,51,5119','通江县','51','四川省','5119','巴中市','511921','通江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511922','5119','00,51,5119','南江县','51','四川省','5119','巴中市','511922','南江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('511923','5119','00,51,5119','平昌县','51','四川省','5119','巴中市','511923','平昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5120','51','00,51','资阳市','51','四川省','5120','资阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('512002','5120','00,51,5120','雁江区','51','四川省','5120','资阳市','512002','雁江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('512021','5120','00,51,5120','安岳县','51','四川省','5120','资阳市','512021','安岳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('512022','5120','00,51,5120','乐至县','51','四川省','5120','资阳市','512022','乐至县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5132','51','00,51','阿坝藏族羌族自治州','51','四川省','5132','阿坝藏族羌族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513201','5132','00,51,5132','马尔康市','51','四川省','5132','阿坝藏族羌族自治州','513201','马尔康市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513221','5132','00,51,5132','汶川县','51','四川省','5132','阿坝藏族羌族自治州','513221','汶川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513222','5132','00,51,5132','理县','51','四川省','5132','阿坝藏族羌族自治州','513222','理县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513223','5132','00,51,5132','茂县','51','四川省','5132','阿坝藏族羌族自治州','513223','茂县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513224','5132','00,51,5132','松潘县','51','四川省','5132','阿坝藏族羌族自治州','513224','松潘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513225','5132','00,51,5132','九寨沟县','51','四川省','5132','阿坝藏族羌族自治州','513225','九寨沟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513226','5132','00,51,5132','金川县','51','四川省','5132','阿坝藏族羌族自治州','513226','金川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513227','5132','00,51,5132','小金县','51','四川省','5132','阿坝藏族羌族自治州','513227','小金县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513228','5132','00,51,5132','黑水县','51','四川省','5132','阿坝藏族羌族自治州','513228','黑水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513230','5132','00,51,5132','壤塘县','51','四川省','5132','阿坝藏族羌族自治州','513230','壤塘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513231','5132','00,51,5132','阿坝县','51','四川省','5132','阿坝藏族羌族自治州','513231','阿坝县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513232','5132','00,51,5132','若尔盖县','51','四川省','5132','阿坝藏族羌族自治州','513232','若尔盖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513233','5132','00,51,5132','红原县','51','四川省','5132','阿坝藏族羌族自治州','513233','红原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5133','51','00,51','甘孜藏族自治州','51','四川省','5133','甘孜藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513301','5133','00,51,5133','康定市','51','四川省','5133','甘孜藏族自治州','513301','康定市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513322','5133','00,51,5133','泸定县','51','四川省','5133','甘孜藏族自治州','513322','泸定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513323','5133','00,51,5133','丹巴县','51','四川省','5133','甘孜藏族自治州','513323','丹巴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513324','5133','00,51,5133','九龙县','51','四川省','5133','甘孜藏族自治州','513324','九龙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513325','5133','00,51,5133','雅江县','51','四川省','5133','甘孜藏族自治州','513325','雅江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513326','5133','00,51,5133','道孚县','51','四川省','5133','甘孜藏族自治州','513326','道孚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513327','5133','00,51,5133','炉霍县','51','四川省','5133','甘孜藏族自治州','513327','炉霍县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513328','5133','00,51,5133','甘孜县','51','四川省','5133','甘孜藏族自治州','513328','甘孜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513329','5133','00,51,5133','新龙县','51','四川省','5133','甘孜藏族自治州','513329','新龙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513330','5133','00,51,5133','德格县','51','四川省','5133','甘孜藏族自治州','513330','德格县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513331','5133','00,51,5133','白玉县','51','四川省','5133','甘孜藏族自治州','513331','白玉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513332','5133','00,51,5133','石渠县','51','四川省','5133','甘孜藏族自治州','513332','石渠县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513333','5133','00,51,5133','色达县','51','四川省','5133','甘孜藏族自治州','513333','色达县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513334','5133','00,51,5133','理塘县','51','四川省','5133','甘孜藏族自治州','513334','理塘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513335','5133','00,51,5133','巴塘县','51','四川省','5133','甘孜藏族自治州','513335','巴塘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513336','5133','00,51,5133','乡城县','51','四川省','5133','甘孜藏族自治州','513336','乡城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513337','5133','00,51,5133','稻城县','51','四川省','5133','甘孜藏族自治州','513337','稻城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513338','5133','00,51,5133','得荣县','51','四川省','5133','甘孜藏族自治州','513338','得荣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5134','51','00,51','凉山彝族自治州','51','四川省','5134','凉山彝族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513401','5134','00,51,5134','西昌市','51','四川省','5134','凉山彝族自治州','513401','西昌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513422','5134','00,51,5134','木里藏族自治县','51','四川省','5134','凉山彝族自治州','513422','木里藏族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513423','5134','00,51,5134','盐源县','51','四川省','5134','凉山彝族自治州','513423','盐源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513424','5134','00,51,5134','德昌县','51','四川省','5134','凉山彝族自治州','513424','德昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513425','5134','00,51,5134','会理县','51','四川省','5134','凉山彝族自治州','513425','会理县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513426','5134','00,51,5134','会东县','51','四川省','5134','凉山彝族自治州','513426','会东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513427','5134','00,51,5134','宁南县','51','四川省','5134','凉山彝族自治州','513427','宁南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513428','5134','00,51,5134','普格县','51','四川省','5134','凉山彝族自治州','513428','普格县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513429','5134','00,51,5134','布拖县','51','四川省','5134','凉山彝族自治州','513429','布拖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513430','5134','00,51,5134','金阳县','51','四川省','5134','凉山彝族自治州','513430','金阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513431','5134','00,51,5134','昭觉县','51','四川省','5134','凉山彝族自治州','513431','昭觉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513432','5134','00,51,5134','喜德县','51','四川省','5134','凉山彝族自治州','513432','喜德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513433','5134','00,51,5134','冕宁县','51','四川省','5134','凉山彝族自治州','513433','冕宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513434','5134','00,51,5134','越西县','51','四川省','5134','凉山彝族自治州','513434','越西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513435','5134','00,51,5134','甘洛县','51','四川省','5134','凉山彝族自治州','513435','甘洛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513436','5134','00,51,5134','美姑县','51','四川省','5134','凉山彝族自治州','513436','美姑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('513437','5134','00,51,5134','雷波县','51','四川省','5134','凉山彝族自治州','513437','雷波县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('52','00','00','贵州省','52','贵州省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5201','52','00,52','贵阳市','52','贵州省','5201','贵阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520102','5201','00,52,5201','南明区','52','贵州省','5201','贵阳市','520102','南明区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520103','5201','00,52,5201','云岩区','52','贵州省','5201','贵阳市','520103','云岩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520111','5201','00,52,5201','花溪区','52','贵州省','5201','贵阳市','520111','花溪区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520112','5201','00,52,5201','乌当区','52','贵州省','5201','贵阳市','520112','乌当区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520113','5201','00,52,5201','白云区','52','贵州省','5201','贵阳市','520113','白云区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520115','5201','00,52,5201','观山湖区','52','贵州省','5201','贵阳市','520115','观山湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520121','5201','00,52,5201','开阳县','52','贵州省','5201','贵阳市','520121','开阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520122','5201','00,52,5201','息烽县','52','贵州省','5201','贵阳市','520122','息烽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520123','5201','00,52,5201','修文县','52','贵州省','5201','贵阳市','520123','修文县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520181','5201','00,52,5201','清镇市','52','贵州省','5201','贵阳市','520181','清镇市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5202','52','00,52','六盘水市','52','贵州省','5202','六盘水市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520201','5202','00,52,5202','钟山区','52','贵州省','5202','六盘水市','520201','钟山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520203','5202','00,52,5202','六枝特区','52','贵州省','5202','六盘水市','520203','六枝特区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520221','5202','00,52,5202','水城县','52','贵州省','5202','六盘水市','520221','水城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520281','5202','00,52,5202','盘州市','52','贵州省','5202','六盘水市','520281','盘州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5203','52','00,52','遵义市','52','贵州省','5203','遵义市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520302','5203','00,52,5203','红花岗区','52','贵州省','5203','遵义市','520302','红花岗区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520303','5203','00,52,5203','汇川区','52','贵州省','5203','遵义市','520303','汇川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520304','5203','00,52,5203','播州区','52','贵州省','5203','遵义市','520304','播州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520322','5203','00,52,5203','桐梓县','52','贵州省','5203','遵义市','520322','桐梓县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520323','5203','00,52,5203','绥阳县','52','贵州省','5203','遵义市','520323','绥阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520324','5203','00,52,5203','正安县','52','贵州省','5203','遵义市','520324','正安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520325','5203','00,52,5203','道真仡佬族苗族自治县','52','贵州省','5203','遵义市','520325','道真仡佬族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520326','5203','00,52,5203','务川仡佬族苗族自治县','52','贵州省','5203','遵义市','520326','务川仡佬族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520327','5203','00,52,5203','凤冈县','52','贵州省','5203','遵义市','520327','凤冈县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520328','5203','00,52,5203','湄潭县','52','贵州省','5203','遵义市','520328','湄潭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520329','5203','00,52,5203','余庆县','52','贵州省','5203','遵义市','520329','余庆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520330','5203','00,52,5203','习水县','52','贵州省','5203','遵义市','520330','习水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520381','5203','00,52,5203','赤水市','52','贵州省','5203','遵义市','520381','赤水市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520382','5203','00,52,5203','仁怀市','52','贵州省','5203','遵义市','520382','仁怀市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5204','52','00,52','安顺市','52','贵州省','5204','安顺市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520402','5204','00,52,5204','西秀区','52','贵州省','5204','安顺市','520402','西秀区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520403','5204','00,52,5204','平坝区','52','贵州省','5204','安顺市','520403','平坝区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520422','5204','00,52,5204','普定县','52','贵州省','5204','安顺市','520422','普定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520423','5204','00,52,5204','镇宁布依族苗族自治县','52','贵州省','5204','安顺市','520423','镇宁布依族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520424','5204','00,52,5204','关岭布依族苗族自治县','52','贵州省','5204','安顺市','520424','关岭布依族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520425','5204','00,52,5204','紫云苗族布依族自治县','52','贵州省','5204','安顺市','520425','紫云苗族布依族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5205','52','00,52','毕节市','52','贵州省','5205','毕节市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520502','5205','00,52,5205','七星关区','52','贵州省','5205','毕节市','520502','七星关区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520521','5205','00,52,5205','大方县','52','贵州省','5205','毕节市','520521','大方县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520522','5205','00,52,5205','黔西县','52','贵州省','5205','毕节市','520522','黔西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520523','5205','00,52,5205','金沙县','52','贵州省','5205','毕节市','520523','金沙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520524','5205','00,52,5205','织金县','52','贵州省','5205','毕节市','520524','织金县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520525','5205','00,52,5205','纳雍县','52','贵州省','5205','毕节市','520525','纳雍县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520526','5205','00,52,5205','威宁彝族回族苗族自治县','52','贵州省','5205','毕节市','520526','威宁彝族回族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520527','5205','00,52,5205','赫章县','52','贵州省','5205','毕节市','520527','赫章县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5206','52','00,52','铜仁市','52','贵州省','5206','铜仁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520602','5206','00,52,5206','碧江区','52','贵州省','5206','铜仁市','520602','碧江区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520603','5206','00,52,5206','万山区','52','贵州省','5206','铜仁市','520603','万山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520621','5206','00,52,5206','江口县','52','贵州省','5206','铜仁市','520621','江口县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520622','5206','00,52,5206','玉屏侗族自治县','52','贵州省','5206','铜仁市','520622','玉屏侗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520623','5206','00,52,5206','石阡县','52','贵州省','5206','铜仁市','520623','石阡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520624','5206','00,52,5206','思南县','52','贵州省','5206','铜仁市','520624','思南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520625','5206','00,52,5206','印江土家族苗族自治县','52','贵州省','5206','铜仁市','520625','印江土家族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520626','5206','00,52,5206','德江县','52','贵州省','5206','铜仁市','520626','德江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520627','5206','00,52,5206','沿河土家族自治县','52','贵州省','5206','铜仁市','520627','沿河土家族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('520628','5206','00,52,5206','松桃苗族自治县','52','贵州省','5206','铜仁市','520628','松桃苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5223','52','00,52','黔西南布依族苗族自治州','52','贵州省','5223','黔西南布依族苗族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522301','5223','00,52,5223','兴义市','52','贵州省','5223','黔西南布依族苗族自治州','522301','兴义市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522302','5223','00,52,5223','兴仁市','52','贵州省','5223','黔西南布依族苗族自治州','522302','兴仁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522323','5223','00,52,5223','普安县','52','贵州省','5223','黔西南布依族苗族自治州','522323','普安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522324','5223','00,52,5223','晴隆县','52','贵州省','5223','黔西南布依族苗族自治州','522324','晴隆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522325','5223','00,52,5223','贞丰县','52','贵州省','5223','黔西南布依族苗族自治州','522325','贞丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522326','5223','00,52,5223','望谟县','52','贵州省','5223','黔西南布依族苗族自治州','522326','望谟县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522327','5223','00,52,5223','册亨县','52','贵州省','5223','黔西南布依族苗族自治州','522327','册亨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522328','5223','00,52,5223','安龙县','52','贵州省','5223','黔西南布依族苗族自治州','522328','安龙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5226','52','00,52','黔东南苗族侗族自治州','52','贵州省','5226','黔东南苗族侗族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522601','5226','00,52,5226','凯里市','52','贵州省','5226','黔东南苗族侗族自治州','522601','凯里市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522622','5226','00,52,5226','黄平县','52','贵州省','5226','黔东南苗族侗族自治州','522622','黄平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522623','5226','00,52,5226','施秉县','52','贵州省','5226','黔东南苗族侗族自治州','522623','施秉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522624','5226','00,52,5226','三穗县','52','贵州省','5226','黔东南苗族侗族自治州','522624','三穗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522625','5226','00,52,5226','镇远县','52','贵州省','5226','黔东南苗族侗族自治州','522625','镇远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522626','5226','00,52,5226','岑巩县','52','贵州省','5226','黔东南苗族侗族自治州','522626','岑巩县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522627','5226','00,52,5226','天柱县','52','贵州省','5226','黔东南苗族侗族自治州','522627','天柱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522628','5226','00,52,5226','锦屏县','52','贵州省','5226','黔东南苗族侗族自治州','522628','锦屏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522629','5226','00,52,5226','剑河县','52','贵州省','5226','黔东南苗族侗族自治州','522629','剑河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522630','5226','00,52,5226','台江县','52','贵州省','5226','黔东南苗族侗族自治州','522630','台江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522631','5226','00,52,5226','黎平县','52','贵州省','5226','黔东南苗族侗族自治州','522631','黎平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522632','5226','00,52,5226','榕江县','52','贵州省','5226','黔东南苗族侗族自治州','522632','榕江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522633','5226','00,52,5226','从江县','52','贵州省','5226','黔东南苗族侗族自治州','522633','从江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522634','5226','00,52,5226','雷山县','52','贵州省','5226','黔东南苗族侗族自治州','522634','雷山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522635','5226','00,52,5226','麻江县','52','贵州省','5226','黔东南苗族侗族自治州','522635','麻江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522636','5226','00,52,5226','丹寨县','52','贵州省','5226','黔东南苗族侗族自治州','522636','丹寨县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5227','52','00,52','黔南布依族苗族自治州','52','贵州省','5227','黔南布依族苗族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522701','5227','00,52,5227','都匀市','52','贵州省','5227','黔南布依族苗族自治州','522701','都匀市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522702','5227','00,52,5227','福泉市','52','贵州省','5227','黔南布依族苗族自治州','522702','福泉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522722','5227','00,52,5227','荔波县','52','贵州省','5227','黔南布依族苗族自治州','522722','荔波县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522723','5227','00,52,5227','贵定县','52','贵州省','5227','黔南布依族苗族自治州','522723','贵定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522725','5227','00,52,5227','瓮安县','52','贵州省','5227','黔南布依族苗族自治州','522725','瓮安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522726','5227','00,52,5227','独山县','52','贵州省','5227','黔南布依族苗族自治州','522726','独山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522727','5227','00,52,5227','平塘县','52','贵州省','5227','黔南布依族苗族自治州','522727','平塘县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522728','5227','00,52,5227','罗甸县','52','贵州省','5227','黔南布依族苗族自治州','522728','罗甸县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522729','5227','00,52,5227','长顺县','52','贵州省','5227','黔南布依族苗族自治州','522729','长顺县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522730','5227','00,52,5227','龙里县','52','贵州省','5227','黔南布依族苗族自治州','522730','龙里县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522731','5227','00,52,5227','惠水县','52','贵州省','5227','黔南布依族苗族自治州','522731','惠水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('522732','5227','00,52,5227','三都水族自治县','52','贵州省','5227','黔南布依族苗族自治州','522732','三都水族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('53','00','00','云南省','53','云南省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5301','53','00,53','昆明市','53','云南省','5301','昆明市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530102','5301','00,53,5301','五华区','53','云南省','5301','昆明市','530102','五华区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530103','5301','00,53,5301','盘龙区','53','云南省','5301','昆明市','530103','盘龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530111','5301','00,53,5301','官渡区','53','云南省','5301','昆明市','530111','官渡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530112','5301','00,53,5301','西山区','53','云南省','5301','昆明市','530112','西山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530113','5301','00,53,5301','东川区','53','云南省','5301','昆明市','530113','东川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530114','5301','00,53,5301','呈贡区','53','云南省','5301','昆明市','530114','呈贡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530115','5301','00,53,5301','晋宁区','53','云南省','5301','昆明市','530115','晋宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530124','5301','00,53,5301','富民县','53','云南省','5301','昆明市','530124','富民县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530125','5301','00,53,5301','宜良县','53','云南省','5301','昆明市','530125','宜良县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530126','5301','00,53,5301','石林彝族自治县','53','云南省','5301','昆明市','530126','石林彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530127','5301','00,53,5301','嵩明县','53','云南省','5301','昆明市','530127','嵩明县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530128','5301','00,53,5301','禄劝彝族苗族自治县','53','云南省','5301','昆明市','530128','禄劝彝族苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530129','5301','00,53,5301','寻甸回族彝族自治县','53','云南省','5301','昆明市','530129','寻甸回族彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530181','5301','00,53,5301','安宁市','53','云南省','5301','昆明市','530181','安宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5303','53','00,53','曲靖市','53','云南省','5303','曲靖市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530302','5303','00,53,5303','麒麟区','53','云南省','5303','曲靖市','530302','麒麟区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530303','5303','00,53,5303','沾益区','53','云南省','5303','曲靖市','530303','沾益区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530304','5303','00,53,5303','马龙区','53','云南省','5303','曲靖市','530304','马龙区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530322','5303','00,53,5303','陆良县','53','云南省','5303','曲靖市','530322','陆良县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530323','5303','00,53,5303','师宗县','53','云南省','5303','曲靖市','530323','师宗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530324','5303','00,53,5303','罗平县','53','云南省','5303','曲靖市','530324','罗平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530325','5303','00,53,5303','富源县','53','云南省','5303','曲靖市','530325','富源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530326','5303','00,53,5303','会泽县','53','云南省','5303','曲靖市','530326','会泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530381','5303','00,53,5303','宣威市','53','云南省','5303','曲靖市','530381','宣威市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5304','53','00,53','玉溪市','53','云南省','5304','玉溪市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530402','5304','00,53,5304','红塔区','53','云南省','5304','玉溪市','530402','红塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530403','5304','00,53,5304','江川区','53','云南省','5304','玉溪市','530403','江川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530423','5304','00,53,5304','通海县','53','云南省','5304','玉溪市','530423','通海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530424','5304','00,53,5304','华宁县','53','云南省','5304','玉溪市','530424','华宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530425','5304','00,53,5304','易门县','53','云南省','5304','玉溪市','530425','易门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530426','5304','00,53,5304','峨山彝族自治县','53','云南省','5304','玉溪市','530426','峨山彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530427','5304','00,53,5304','新平彝族傣族自治县','53','云南省','5304','玉溪市','530427','新平彝族傣族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530428','5304','00,53,5304','元江哈尼族彝族傣族自治县','53','云南省','5304','玉溪市','530428','元江哈尼族彝族傣族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530481','5304','00,53,5304','澄江市','53','云南省','5304','玉溪市','530481','澄江市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5305','53','00,53','保山市','53','云南省','5305','保山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530502','5305','00,53,5305','隆阳区','53','云南省','5305','保山市','530502','隆阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530521','5305','00,53,5305','施甸县','53','云南省','5305','保山市','530521','施甸县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530523','5305','00,53,5305','龙陵县','53','云南省','5305','保山市','530523','龙陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530524','5305','00,53,5305','昌宁县','53','云南省','5305','保山市','530524','昌宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530581','5305','00,53,5305','腾冲市','53','云南省','5305','保山市','530581','腾冲市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5306','53','00,53','昭通市','53','云南省','5306','昭通市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530602','5306','00,53,5306','昭阳区','53','云南省','5306','昭通市','530602','昭阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530621','5306','00,53,5306','鲁甸县','53','云南省','5306','昭通市','530621','鲁甸县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530622','5306','00,53,5306','巧家县','53','云南省','5306','昭通市','530622','巧家县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530623','5306','00,53,5306','盐津县','53','云南省','5306','昭通市','530623','盐津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530624','5306','00,53,5306','大关县','53','云南省','5306','昭通市','530624','大关县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530625','5306','00,53,5306','永善县','53','云南省','5306','昭通市','530625','永善县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530626','5306','00,53,5306','绥江县','53','云南省','5306','昭通市','530626','绥江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530627','5306','00,53,5306','镇雄县','53','云南省','5306','昭通市','530627','镇雄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530628','5306','00,53,5306','彝良县','53','云南省','5306','昭通市','530628','彝良县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530629','5306','00,53,5306','威信县','53','云南省','5306','昭通市','530629','威信县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530681','5306','00,53,5306','水富市','53','云南省','5306','昭通市','530681','水富市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5307','53','00,53','丽江市','53','云南省','5307','丽江市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530702','5307','00,53,5307','古城区','53','云南省','5307','丽江市','530702','古城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530721','5307','00,53,5307','玉龙纳西族自治县','53','云南省','5307','丽江市','530721','玉龙纳西族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530722','5307','00,53,5307','永胜县','53','云南省','5307','丽江市','530722','永胜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530723','5307','00,53,5307','华坪县','53','云南省','5307','丽江市','530723','华坪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530724','5307','00,53,5307','宁蒗彝族自治县','53','云南省','5307','丽江市','530724','宁蒗彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5308','53','00,53','普洱市','53','云南省','5308','普洱市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530802','5308','00,53,5308','思茅区','53','云南省','5308','普洱市','530802','思茅区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530821','5308','00,53,5308','宁洱哈尼族彝族自治县','53','云南省','5308','普洱市','530821','宁洱哈尼族彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530822','5308','00,53,5308','墨江哈尼族自治县','53','云南省','5308','普洱市','530822','墨江哈尼族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530823','5308','00,53,5308','景东彝族自治县','53','云南省','5308','普洱市','530823','景东彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530824','5308','00,53,5308','景谷傣族彝族自治县','53','云南省','5308','普洱市','530824','景谷傣族彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530825','5308','00,53,5308','镇沅彝族哈尼族拉祜族自治县','53','云南省','5308','普洱市','530825','镇沅彝族哈尼族拉祜族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530826','5308','00,53,5308','江城哈尼族彝族自治县','53','云南省','5308','普洱市','530826','江城哈尼族彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530827','5308','00,53,5308','孟连傣族拉祜族佤族自治县','53','云南省','5308','普洱市','530827','孟连傣族拉祜族佤族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530828','5308','00,53,5308','澜沧拉祜族自治县','53','云南省','5308','普洱市','530828','澜沧拉祜族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530829','5308','00,53,5308','西盟佤族自治县','53','云南省','5308','普洱市','530829','西盟佤族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5309','53','00,53','临沧市','53','云南省','5309','临沧市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530902','5309','00,53,5309','临翔区','53','云南省','5309','临沧市','530902','临翔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530921','5309','00,53,5309','凤庆县','53','云南省','5309','临沧市','530921','凤庆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530922','5309','00,53,5309','云县','53','云南省','5309','临沧市','530922','云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530923','5309','00,53,5309','永德县','53','云南省','5309','临沧市','530923','永德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530924','5309','00,53,5309','镇康县','53','云南省','5309','临沧市','530924','镇康县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530925','5309','00,53,5309','双江拉祜族佤族布朗族傣族自治县','53','云南省','5309','临沧市','530925','双江拉祜族佤族布朗族傣族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530926','5309','00,53,5309','耿马傣族佤族自治县','53','云南省','5309','临沧市','530926','耿马傣族佤族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('530927','5309','00,53,5309','沧源佤族自治县','53','云南省','5309','临沧市','530927','沧源佤族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5323','53','00,53','楚雄彝族自治州','53','云南省','5323','楚雄彝族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532301','5323','00,53,5323','楚雄市','53','云南省','5323','楚雄彝族自治州','532301','楚雄市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532322','5323','00,53,5323','双柏县','53','云南省','5323','楚雄彝族自治州','532322','双柏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532323','5323','00,53,5323','牟定县','53','云南省','5323','楚雄彝族自治州','532323','牟定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532324','5323','00,53,5323','南华县','53','云南省','5323','楚雄彝族自治州','532324','南华县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532325','5323','00,53,5323','姚安县','53','云南省','5323','楚雄彝族自治州','532325','姚安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532326','5323','00,53,5323','大姚县','53','云南省','5323','楚雄彝族自治州','532326','大姚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532327','5323','00,53,5323','永仁县','53','云南省','5323','楚雄彝族自治州','532327','永仁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532328','5323','00,53,5323','元谋县','53','云南省','5323','楚雄彝族自治州','532328','元谋县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532329','5323','00,53,5323','武定县','53','云南省','5323','楚雄彝族自治州','532329','武定县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532331','5323','00,53,5323','禄丰县','53','云南省','5323','楚雄彝族自治州','532331','禄丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5325','53','00,53','红河哈尼族彝族自治州','53','云南省','5325','红河哈尼族彝族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532501','5325','00,53,5325','个旧市','53','云南省','5325','红河哈尼族彝族自治州','532501','个旧市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532502','5325','00,53,5325','开远市','53','云南省','5325','红河哈尼族彝族自治州','532502','开远市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532503','5325','00,53,5325','蒙自市','53','云南省','5325','红河哈尼族彝族自治州','532503','蒙自市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532504','5325','00,53,5325','弥勒市','53','云南省','5325','红河哈尼族彝族自治州','532504','弥勒市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532523','5325','00,53,5325','屏边苗族自治县','53','云南省','5325','红河哈尼族彝族自治州','532523','屏边苗族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532524','5325','00,53,5325','建水县','53','云南省','5325','红河哈尼族彝族自治州','532524','建水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532525','5325','00,53,5325','石屏县','53','云南省','5325','红河哈尼族彝族自治州','532525','石屏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532527','5325','00,53,5325','泸西县','53','云南省','5325','红河哈尼族彝族自治州','532527','泸西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532528','5325','00,53,5325','元阳县','53','云南省','5325','红河哈尼族彝族自治州','532528','元阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532529','5325','00,53,5325','红河县','53','云南省','5325','红河哈尼族彝族自治州','532529','红河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532530','5325','00,53,5325','金平苗族瑶族傣族自治县','53','云南省','5325','红河哈尼族彝族自治州','532530','金平苗族瑶族傣族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532531','5325','00,53,5325','绿春县','53','云南省','5325','红河哈尼族彝族自治州','532531','绿春县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532532','5325','00,53,5325','河口瑶族自治县','53','云南省','5325','红河哈尼族彝族自治州','532532','河口瑶族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5326','53','00,53','文山壮族苗族自治州','53','云南省','5326','文山壮族苗族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532601','5326','00,53,5326','文山市','53','云南省','5326','文山壮族苗族自治州','532601','文山市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532622','5326','00,53,5326','砚山县','53','云南省','5326','文山壮族苗族自治州','532622','砚山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532623','5326','00,53,5326','西畴县','53','云南省','5326','文山壮族苗族自治州','532623','西畴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532624','5326','00,53,5326','麻栗坡县','53','云南省','5326','文山壮族苗族自治州','532624','麻栗坡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532625','5326','00,53,5326','马关县','53','云南省','5326','文山壮族苗族自治州','532625','马关县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532626','5326','00,53,5326','丘北县','53','云南省','5326','文山壮族苗族自治州','532626','丘北县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532627','5326','00,53,5326','广南县','53','云南省','5326','文山壮族苗族自治州','532627','广南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532628','5326','00,53,5326','富宁县','53','云南省','5326','文山壮族苗族自治州','532628','富宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5328','53','00,53','西双版纳傣族自治州','53','云南省','5328','西双版纳傣族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532801','5328','00,53,5328','景洪市','53','云南省','5328','西双版纳傣族自治州','532801','景洪市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532822','5328','00,53,5328','勐海县','53','云南省','5328','西双版纳傣族自治州','532822','勐海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532823','5328','00,53,5328','勐腊县','53','云南省','5328','西双版纳傣族自治州','532823','勐腊县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5329','53','00,53','大理白族自治州','53','云南省','5329','大理白族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532901','5329','00,53,5329','大理市','53','云南省','5329','大理白族自治州','532901','大理市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532922','5329','00,53,5329','漾濞彝族自治县','53','云南省','5329','大理白族自治州','532922','漾濞彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532923','5329','00,53,5329','祥云县','53','云南省','5329','大理白族自治州','532923','祥云县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532924','5329','00,53,5329','宾川县','53','云南省','5329','大理白族自治州','532924','宾川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532925','5329','00,53,5329','弥渡县','53','云南省','5329','大理白族自治州','532925','弥渡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532926','5329','00,53,5329','南涧彝族自治县','53','云南省','5329','大理白族自治州','532926','南涧彝族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532927','5329','00,53,5329','巍山彝族回族自治县','53','云南省','5329','大理白族自治州','532927','巍山彝族回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532928','5329','00,53,5329','永平县','53','云南省','5329','大理白族自治州','532928','永平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532929','5329','00,53,5329','云龙县','53','云南省','5329','大理白族自治州','532929','云龙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532930','5329','00,53,5329','洱源县','53','云南省','5329','大理白族自治州','532930','洱源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532931','5329','00,53,5329','剑川县','53','云南省','5329','大理白族自治州','532931','剑川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('532932','5329','00,53,5329','鹤庆县','53','云南省','5329','大理白族自治州','532932','鹤庆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5331','53','00,53','德宏傣族景颇族自治州','53','云南省','5331','德宏傣族景颇族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533102','5331','00,53,5331','瑞丽市','53','云南省','5331','德宏傣族景颇族自治州','533102','瑞丽市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533103','5331','00,53,5331','芒市','53','云南省','5331','德宏傣族景颇族自治州','533103','芒市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533122','5331','00,53,5331','梁河县','53','云南省','5331','德宏傣族景颇族自治州','533122','梁河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533123','5331','00,53,5331','盈江县','53','云南省','5331','德宏傣族景颇族自治州','533123','盈江县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533124','5331','00,53,5331','陇川县','53','云南省','5331','德宏傣族景颇族自治州','533124','陇川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5333','53','00,53','怒江傈僳族自治州','53','云南省','5333','怒江傈僳族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533301','5333','00,53,5333','泸水市','53','云南省','5333','怒江傈僳族自治州','533301','泸水市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533323','5333','00,53,5333','福贡县','53','云南省','5333','怒江傈僳族自治州','533323','福贡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533324','5333','00,53,5333','贡山独龙族怒族自治县','53','云南省','5333','怒江傈僳族自治州','533324','贡山独龙族怒族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533325','5333','00,53,5333','兰坪白族普米族自治县','53','云南省','5333','怒江傈僳族自治州','533325','兰坪白族普米族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5334','53','00,53','迪庆藏族自治州','53','云南省','5334','迪庆藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533401','5334','00,53,5334','香格里拉市','53','云南省','5334','迪庆藏族自治州','533401','香格里拉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533422','5334','00,53,5334','德钦县','53','云南省','5334','迪庆藏族自治州','533422','德钦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('533423','5334','00,53,5334','维西傈僳族自治县','53','云南省','5334','迪庆藏族自治州','533423','维西傈僳族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('54','00','00','西藏自治区','54','西藏自治区','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5401','54','00,54','拉萨市','54','西藏自治区','5401','拉萨市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540102','5401','00,54,5401','城关区','54','西藏自治区','5401','拉萨市','540102','城关区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540103','5401','00,54,5401','堆龙德庆区','54','西藏自治区','5401','拉萨市','540103','堆龙德庆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540104','5401','00,54,5401','达孜区','54','西藏自治区','5401','拉萨市','540104','达孜区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540121','5401','00,54,5401','林周县','54','西藏自治区','5401','拉萨市','540121','林周县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540122','5401','00,54,5401','当雄县','54','西藏自治区','5401','拉萨市','540122','当雄县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540123','5401','00,54,5401','尼木县','54','西藏自治区','5401','拉萨市','540123','尼木县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540124','5401','00,54,5401','曲水县','54','西藏自治区','5401','拉萨市','540124','曲水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540127','5401','00,54,5401','墨竹工卡县','54','西藏自治区','5401','拉萨市','540127','墨竹工卡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5402','54','00,54','日喀则市','54','西藏自治区','5402','日喀则市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540202','5402','00,54,5402','桑珠孜区','54','西藏自治区','5402','日喀则市','540202','桑珠孜区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540221','5402','00,54,5402','南木林县','54','西藏自治区','5402','日喀则市','540221','南木林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540222','5402','00,54,5402','江孜县','54','西藏自治区','5402','日喀则市','540222','江孜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540223','5402','00,54,5402','定日县','54','西藏自治区','5402','日喀则市','540223','定日县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540224','5402','00,54,5402','萨迦县','54','西藏自治区','5402','日喀则市','540224','萨迦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540225','5402','00,54,5402','拉孜县','54','西藏自治区','5402','日喀则市','540225','拉孜县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540226','5402','00,54,5402','昂仁县','54','西藏自治区','5402','日喀则市','540226','昂仁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540227','5402','00,54,5402','谢通门县','54','西藏自治区','5402','日喀则市','540227','谢通门县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540228','5402','00,54,5402','白朗县','54','西藏自治区','5402','日喀则市','540228','白朗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540229','5402','00,54,5402','仁布县','54','西藏自治区','5402','日喀则市','540229','仁布县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540230','5402','00,54,5402','康马县','54','西藏自治区','5402','日喀则市','540230','康马县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540231','5402','00,54,5402','定结县','54','西藏自治区','5402','日喀则市','540231','定结县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540232','5402','00,54,5402','仲巴县','54','西藏自治区','5402','日喀则市','540232','仲巴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540233','5402','00,54,5402','亚东县','54','西藏自治区','5402','日喀则市','540233','亚东县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540234','5402','00,54,5402','吉隆县','54','西藏自治区','5402','日喀则市','540234','吉隆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540235','5402','00,54,5402','聂拉木县','54','西藏自治区','5402','日喀则市','540235','聂拉木县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540236','5402','00,54,5402','萨嘎县','54','西藏自治区','5402','日喀则市','540236','萨嘎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540237','5402','00,54,5402','岗巴县','54','西藏自治区','5402','日喀则市','540237','岗巴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5403','54','00,54','昌都市','54','西藏自治区','5403','昌都市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540302','5403','00,54,5403','卡若区','54','西藏自治区','5403','昌都市','540302','卡若区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540321','5403','00,54,5403','江达县','54','西藏自治区','5403','昌都市','540321','江达县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540322','5403','00,54,5403','贡觉县','54','西藏自治区','5403','昌都市','540322','贡觉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540323','5403','00,54,5403','类乌齐县','54','西藏自治区','5403','昌都市','540323','类乌齐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540324','5403','00,54,5403','丁青县','54','西藏自治区','5403','昌都市','540324','丁青县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540325','5403','00,54,5403','察雅县','54','西藏自治区','5403','昌都市','540325','察雅县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540326','5403','00,54,5403','八宿县','54','西藏自治区','5403','昌都市','540326','八宿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540327','5403','00,54,5403','左贡县','54','西藏自治区','5403','昌都市','540327','左贡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540328','5403','00,54,5403','芒康县','54','西藏自治区','5403','昌都市','540328','芒康县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540329','5403','00,54,5403','洛隆县','54','西藏自治区','5403','昌都市','540329','洛隆县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540330','5403','00,54,5403','边坝县','54','西藏自治区','5403','昌都市','540330','边坝县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5404','54','00,54','林芝市','54','西藏自治区','5404','林芝市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540402','5404','00,54,5404','巴宜区','54','西藏自治区','5404','林芝市','540402','巴宜区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540421','5404','00,54,5404','工布江达县','54','西藏自治区','5404','林芝市','540421','工布江达县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540422','5404','00,54,5404','米林县','54','西藏自治区','5404','林芝市','540422','米林县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540423','5404','00,54,5404','墨脱县','54','西藏自治区','5404','林芝市','540423','墨脱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540424','5404','00,54,5404','波密县','54','西藏自治区','5404','林芝市','540424','波密县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540425','5404','00,54,5404','察隅县','54','西藏自治区','5404','林芝市','540425','察隅县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540426','5404','00,54,5404','朗县','54','西藏自治区','5404','林芝市','540426','朗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5405','54','00,54','山南市','54','西藏自治区','5405','山南市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540502','5405','00,54,5405','乃东区','54','西藏自治区','5405','山南市','540502','乃东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540521','5405','00,54,5405','扎囊县','54','西藏自治区','5405','山南市','540521','扎囊县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540522','5405','00,54,5405','贡嘎县','54','西藏自治区','5405','山南市','540522','贡嘎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540523','5405','00,54,5405','桑日县','54','西藏自治区','5405','山南市','540523','桑日县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540524','5405','00,54,5405','琼结县','54','西藏自治区','5405','山南市','540524','琼结县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540525','5405','00,54,5405','曲松县','54','西藏自治区','5405','山南市','540525','曲松县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540526','5405','00,54,5405','措美县','54','西藏自治区','5405','山南市','540526','措美县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540527','5405','00,54,5405','洛扎县','54','西藏自治区','5405','山南市','540527','洛扎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540528','5405','00,54,5405','加查县','54','西藏自治区','5405','山南市','540528','加查县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540529','5405','00,54,5405','隆子县','54','西藏自治区','5405','山南市','540529','隆子县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540530','5405','00,54,5405','错那县','54','西藏自治区','5405','山南市','540530','错那县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540531','5405','00,54,5405','浪卡子县','54','西藏自治区','5405','山南市','540531','浪卡子县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5406','54','00,54','那曲市','54','西藏自治区','5406','那曲市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540602','5406','00,54,5406','色尼区','54','西藏自治区','5406','那曲市','540602','色尼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540621','5406','00,54,5406','嘉黎县','54','西藏自治区','5406','那曲市','540621','嘉黎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540622','5406','00,54,5406','比如县','54','西藏自治区','5406','那曲市','540622','比如县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540623','5406','00,54,5406','聂荣县','54','西藏自治区','5406','那曲市','540623','聂荣县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540624','5406','00,54,5406','安多县','54','西藏自治区','5406','那曲市','540624','安多县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540625','5406','00,54,5406','申扎县','54','西藏自治区','5406','那曲市','540625','申扎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540626','5406','00,54,5406','索县','54','西藏自治区','5406','那曲市','540626','索县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540627','5406','00,54,5406','班戈县','54','西藏自治区','5406','那曲市','540627','班戈县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540628','5406','00,54,5406','巴青县','54','西藏自治区','5406','那曲市','540628','巴青县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540629','5406','00,54,5406','尼玛县','54','西藏自治区','5406','那曲市','540629','尼玛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('540630','5406','00,54,5406','双湖县','54','西藏自治区','5406','那曲市','540630','双湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('5425','54','00,54','阿里地区','54','西藏自治区','5425','阿里地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542521','5425','00,54,5425','普兰县','54','西藏自治区','5425','阿里地区','542521','普兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542522','5425','00,54,5425','札达县','54','西藏自治区','5425','阿里地区','542522','札达县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542523','5425','00,54,5425','噶尔县','54','西藏自治区','5425','阿里地区','542523','噶尔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542524','5425','00,54,5425','日土县','54','西藏自治区','5425','阿里地区','542524','日土县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542525','5425','00,54,5425','革吉县','54','西藏自治区','5425','阿里地区','542525','革吉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542526','5425','00,54,5425','改则县','54','西藏自治区','5425','阿里地区','542526','改则县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('542527','5425','00,54,5425','措勤县','54','西藏自治区','5425','阿里地区','542527','措勤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('61','00','00','陕西省','61','陕西省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6101','61','00,61','西安市','61','陕西省','6101','西安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610102','6101','00,61,6101','新城区','61','陕西省','6101','西安市','610102','新城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610103','6101','00,61,6101','碑林区','61','陕西省','6101','西安市','610103','碑林区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610104','6101','00,61,6101','莲湖区','61','陕西省','6101','西安市','610104','莲湖区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610111','6101','00,61,6101','灞桥区','61','陕西省','6101','西安市','610111','灞桥区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610112','6101','00,61,6101','未央区','61','陕西省','6101','西安市','610112','未央区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610113','6101','00,61,6101','雁塔区','61','陕西省','6101','西安市','610113','雁塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610114','6101','00,61,6101','阎良区','61','陕西省','6101','西安市','610114','阎良区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610115','6101','00,61,6101','临潼区','61','陕西省','6101','西安市','610115','临潼区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610116','6101','00,61,6101','长安区','61','陕西省','6101','西安市','610116','长安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610117','6101','00,61,6101','高陵区','61','陕西省','6101','西安市','610117','高陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610118','6101','00,61,6101','鄠邑区','61','陕西省','6101','西安市','610118','鄠邑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610122','6101','00,61,6101','蓝田县','61','陕西省','6101','西安市','610122','蓝田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610124','6101','00,61,6101','周至县','61','陕西省','6101','西安市','610124','周至县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6102','61','00,61','铜川市','61','陕西省','6102','铜川市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610202','6102','00,61,6102','王益区','61','陕西省','6102','铜川市','610202','王益区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610203','6102','00,61,6102','印台区','61','陕西省','6102','铜川市','610203','印台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610204','6102','00,61,6102','耀州区','61','陕西省','6102','铜川市','610204','耀州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610222','6102','00,61,6102','宜君县','61','陕西省','6102','铜川市','610222','宜君县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6103','61','00,61','宝鸡市','61','陕西省','6103','宝鸡市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610302','6103','00,61,6103','渭滨区','61','陕西省','6103','宝鸡市','610302','渭滨区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610303','6103','00,61,6103','金台区','61','陕西省','6103','宝鸡市','610303','金台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610304','6103','00,61,6103','陈仓区','61','陕西省','6103','宝鸡市','610304','陈仓区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610322','6103','00,61,6103','凤翔县','61','陕西省','6103','宝鸡市','610322','凤翔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610323','6103','00,61,6103','岐山县','61','陕西省','6103','宝鸡市','610323','岐山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610324','6103','00,61,6103','扶风县','61','陕西省','6103','宝鸡市','610324','扶风县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610326','6103','00,61,6103','眉县','61','陕西省','6103','宝鸡市','610326','眉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610327','6103','00,61,6103','陇县','61','陕西省','6103','宝鸡市','610327','陇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610328','6103','00,61,6103','千阳县','61','陕西省','6103','宝鸡市','610328','千阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610329','6103','00,61,6103','麟游县','61','陕西省','6103','宝鸡市','610329','麟游县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610330','6103','00,61,6103','凤县','61','陕西省','6103','宝鸡市','610330','凤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610331','6103','00,61,6103','太白县','61','陕西省','6103','宝鸡市','610331','太白县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6104','61','00,61','咸阳市','61','陕西省','6104','咸阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610402','6104','00,61,6104','秦都区','61','陕西省','6104','咸阳市','610402','秦都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610403','6104','00,61,6104','杨陵区','61','陕西省','6104','咸阳市','610403','杨陵区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610404','6104','00,61,6104','渭城区','61','陕西省','6104','咸阳市','610404','渭城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610422','6104','00,61,6104','三原县','61','陕西省','6104','咸阳市','610422','三原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610423','6104','00,61,6104','泾阳县','61','陕西省','6104','咸阳市','610423','泾阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610424','6104','00,61,6104','乾县','61','陕西省','6104','咸阳市','610424','乾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610425','6104','00,61,6104','礼泉县','61','陕西省','6104','咸阳市','610425','礼泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610426','6104','00,61,6104','永寿县','61','陕西省','6104','咸阳市','610426','永寿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610428','6104','00,61,6104','长武县','61','陕西省','6104','咸阳市','610428','长武县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610429','6104','00,61,6104','旬邑县','61','陕西省','6104','咸阳市','610429','旬邑县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610430','6104','00,61,6104','淳化县','61','陕西省','6104','咸阳市','610430','淳化县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610431','6104','00,61,6104','武功县','61','陕西省','6104','咸阳市','610431','武功县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610481','6104','00,61,6104','兴平市','61','陕西省','6104','咸阳市','610481','兴平市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610482','6104','00,61,6104','彬州市','61','陕西省','6104','咸阳市','610482','彬州市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6105','61','00,61','渭南市','61','陕西省','6105','渭南市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610502','6105','00,61,6105','临渭区','61','陕西省','6105','渭南市','610502','临渭区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610503','6105','00,61,6105','华州区','61','陕西省','6105','渭南市','610503','华州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610522','6105','00,61,6105','潼关县','61','陕西省','6105','渭南市','610522','潼关县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610523','6105','00,61,6105','大荔县','61','陕西省','6105','渭南市','610523','大荔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610524','6105','00,61,6105','合阳县','61','陕西省','6105','渭南市','610524','合阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610525','6105','00,61,6105','澄城县','61','陕西省','6105','渭南市','610525','澄城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610526','6105','00,61,6105','蒲城县','61','陕西省','6105','渭南市','610526','蒲城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610527','6105','00,61,6105','白水县','61','陕西省','6105','渭南市','610527','白水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610528','6105','00,61,6105','富平县','61','陕西省','6105','渭南市','610528','富平县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610581','6105','00,61,6105','韩城市','61','陕西省','6105','渭南市','610581','韩城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610582','6105','00,61,6105','华阴市','61','陕西省','6105','渭南市','610582','华阴市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6106','61','00,61','延安市','61','陕西省','6106','延安市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610602','6106','00,61,6106','宝塔区','61','陕西省','6106','延安市','610602','宝塔区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610603','6106','00,61,6106','安塞区','61','陕西省','6106','延安市','610603','安塞区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610621','6106','00,61,6106','延长县','61','陕西省','6106','延安市','610621','延长县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610622','6106','00,61,6106','延川县','61','陕西省','6106','延安市','610622','延川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610625','6106','00,61,6106','志丹县','61','陕西省','6106','延安市','610625','志丹县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610626','6106','00,61,6106','吴起县','61','陕西省','6106','延安市','610626','吴起县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610627','6106','00,61,6106','甘泉县','61','陕西省','6106','延安市','610627','甘泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610628','6106','00,61,6106','富县','61','陕西省','6106','延安市','610628','富县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610629','6106','00,61,6106','洛川县','61','陕西省','6106','延安市','610629','洛川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610630','6106','00,61,6106','宜川县','61','陕西省','6106','延安市','610630','宜川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610631','6106','00,61,6106','黄龙县','61','陕西省','6106','延安市','610631','黄龙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610632','6106','00,61,6106','黄陵县','61','陕西省','6106','延安市','610632','黄陵县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610681','6106','00,61,6106','子长市','61','陕西省','6106','延安市','610681','子长市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6107','61','00,61','汉中市','61','陕西省','6107','汉中市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610702','6107','00,61,6107','汉台区','61','陕西省','6107','汉中市','610702','汉台区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610703','6107','00,61,6107','南郑区','61','陕西省','6107','汉中市','610703','南郑区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610722','6107','00,61,6107','城固县','61','陕西省','6107','汉中市','610722','城固县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610723','6107','00,61,6107','洋县','61','陕西省','6107','汉中市','610723','洋县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610724','6107','00,61,6107','西乡县','61','陕西省','6107','汉中市','610724','西乡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610725','6107','00,61,6107','勉县','61','陕西省','6107','汉中市','610725','勉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610726','6107','00,61,6107','宁强县','61','陕西省','6107','汉中市','610726','宁强县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610727','6107','00,61,6107','略阳县','61','陕西省','6107','汉中市','610727','略阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610728','6107','00,61,6107','镇巴县','61','陕西省','6107','汉中市','610728','镇巴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610729','6107','00,61,6107','留坝县','61','陕西省','6107','汉中市','610729','留坝县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610730','6107','00,61,6107','佛坪县','61','陕西省','6107','汉中市','610730','佛坪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6108','61','00,61','榆林市','61','陕西省','6108','榆林市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610802','6108','00,61,6108','榆阳区','61','陕西省','6108','榆林市','610802','榆阳区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610803','6108','00,61,6108','横山区','61','陕西省','6108','榆林市','610803','横山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610822','6108','00,61,6108','府谷县','61','陕西省','6108','榆林市','610822','府谷县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610824','6108','00,61,6108','靖边县','61','陕西省','6108','榆林市','610824','靖边县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610825','6108','00,61,6108','定边县','61','陕西省','6108','榆林市','610825','定边县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610826','6108','00,61,6108','绥德县','61','陕西省','6108','榆林市','610826','绥德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610827','6108','00,61,6108','米脂县','61','陕西省','6108','榆林市','610827','米脂县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610828','6108','00,61,6108','佳县','61','陕西省','6108','榆林市','610828','佳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610829','6108','00,61,6108','吴堡县','61','陕西省','6108','榆林市','610829','吴堡县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610830','6108','00,61,6108','清涧县','61','陕西省','6108','榆林市','610830','清涧县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610831','6108','00,61,6108','子洲县','61','陕西省','6108','榆林市','610831','子洲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610881','6108','00,61,6108','神木市','61','陕西省','6108','榆林市','610881','神木市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6109','61','00,61','安康市','61','陕西省','6109','安康市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610902','6109','00,61,6109','汉滨区','61','陕西省','6109','安康市','610902','汉滨区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610921','6109','00,61,6109','汉阴县','61','陕西省','6109','安康市','610921','汉阴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610922','6109','00,61,6109','石泉县','61','陕西省','6109','安康市','610922','石泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610923','6109','00,61,6109','宁陕县','61','陕西省','6109','安康市','610923','宁陕县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610924','6109','00,61,6109','紫阳县','61','陕西省','6109','安康市','610924','紫阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610925','6109','00,61,6109','岚皋县','61','陕西省','6109','安康市','610925','岚皋县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610926','6109','00,61,6109','平利县','61','陕西省','6109','安康市','610926','平利县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610927','6109','00,61,6109','镇坪县','61','陕西省','6109','安康市','610927','镇坪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610928','6109','00,61,6109','旬阳县','61','陕西省','6109','安康市','610928','旬阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('610929','6109','00,61,6109','白河县','61','陕西省','6109','安康市','610929','白河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6110','61','00,61','商洛市','61','陕西省','6110','商洛市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611002','6110','00,61,6110','商州区','61','陕西省','6110','商洛市','611002','商州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611021','6110','00,61,6110','洛南县','61','陕西省','6110','商洛市','611021','洛南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611022','6110','00,61,6110','丹凤县','61','陕西省','6110','商洛市','611022','丹凤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611023','6110','00,61,6110','商南县','61','陕西省','6110','商洛市','611023','商南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611024','6110','00,61,6110','山阳县','61','陕西省','6110','商洛市','611024','山阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611025','6110','00,61,6110','镇安县','61','陕西省','6110','商洛市','611025','镇安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('611026','6110','00,61,6110','柞水县','61','陕西省','6110','商洛市','611026','柞水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('62','00','00','甘肃省','62','甘肃省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6201','62','00,62','兰州市','62','甘肃省','6201','兰州市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620102','6201','00,62,6201','城关区','62','甘肃省','6201','兰州市','620102','城关区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620103','6201','00,62,6201','七里河区','62','甘肃省','6201','兰州市','620103','七里河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620104','6201','00,62,6201','西固区','62','甘肃省','6201','兰州市','620104','西固区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620105','6201','00,62,6201','安宁区','62','甘肃省','6201','兰州市','620105','安宁区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620111','6201','00,62,6201','红古区','62','甘肃省','6201','兰州市','620111','红古区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620121','6201','00,62,6201','永登县','62','甘肃省','6201','兰州市','620121','永登县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620122','6201','00,62,6201','皋兰县','62','甘肃省','6201','兰州市','620122','皋兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620123','6201','00,62,6201','榆中县','62','甘肃省','6201','兰州市','620123','榆中县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6202','62','00,62','嘉峪关市','62','甘肃省','6202','嘉峪关市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620200','6202','00,62,6202','嘉峪关市','62','甘肃省','6202','嘉峪关市','620200','嘉峪关市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6203','62','00,62','金昌市','62','甘肃省','6203','金昌市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620302','6203','00,62,6203','金川区','62','甘肃省','6203','金昌市','620302','金川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620321','6203','00,62,6203','永昌县','62','甘肃省','6203','金昌市','620321','永昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6204','62','00,62','白银市','62','甘肃省','6204','白银市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620402','6204','00,62,6204','白银区','62','甘肃省','6204','白银市','620402','白银区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620403','6204','00,62,6204','平川区','62','甘肃省','6204','白银市','620403','平川区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620421','6204','00,62,6204','靖远县','62','甘肃省','6204','白银市','620421','靖远县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620422','6204','00,62,6204','会宁县','62','甘肃省','6204','白银市','620422','会宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620423','6204','00,62,6204','景泰县','62','甘肃省','6204','白银市','620423','景泰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6205','62','00,62','天水市','62','甘肃省','6205','天水市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620502','6205','00,62,6205','秦州区','62','甘肃省','6205','天水市','620502','秦州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620503','6205','00,62,6205','麦积区','62','甘肃省','6205','天水市','620503','麦积区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620521','6205','00,62,6205','清水县','62','甘肃省','6205','天水市','620521','清水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620522','6205','00,62,6205','秦安县','62','甘肃省','6205','天水市','620522','秦安县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620523','6205','00,62,6205','甘谷县','62','甘肃省','6205','天水市','620523','甘谷县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620524','6205','00,62,6205','武山县','62','甘肃省','6205','天水市','620524','武山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620525','6205','00,62,6205','张家川回族自治县','62','甘肃省','6205','天水市','620525','张家川回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6206','62','00,62','武威市','62','甘肃省','6206','武威市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620602','6206','00,62,6206','凉州区','62','甘肃省','6206','武威市','620602','凉州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620621','6206','00,62,6206','民勤县','62','甘肃省','6206','武威市','620621','民勤县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620622','6206','00,62,6206','古浪县','62','甘肃省','6206','武威市','620622','古浪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620623','6206','00,62,6206','天祝藏族自治县','62','甘肃省','6206','武威市','620623','天祝藏族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6207','62','00,62','张掖市','62','甘肃省','6207','张掖市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620702','6207','00,62,6207','甘州区','62','甘肃省','6207','张掖市','620702','甘州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620721','6207','00,62,6207','肃南裕固族自治县','62','甘肃省','6207','张掖市','620721','肃南裕固族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620722','6207','00,62,6207','民乐县','62','甘肃省','6207','张掖市','620722','民乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620723','6207','00,62,6207','临泽县','62','甘肃省','6207','张掖市','620723','临泽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620724','6207','00,62,6207','高台县','62','甘肃省','6207','张掖市','620724','高台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620725','6207','00,62,6207','山丹县','62','甘肃省','6207','张掖市','620725','山丹县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6208','62','00,62','平凉市','62','甘肃省','6208','平凉市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620802','6208','00,62,6208','崆峒区','62','甘肃省','6208','平凉市','620802','崆峒区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620821','6208','00,62,6208','泾川县','62','甘肃省','6208','平凉市','620821','泾川县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620822','6208','00,62,6208','灵台县','62','甘肃省','6208','平凉市','620822','灵台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620823','6208','00,62,6208','崇信县','62','甘肃省','6208','平凉市','620823','崇信县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620825','6208','00,62,6208','庄浪县','62','甘肃省','6208','平凉市','620825','庄浪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620826','6208','00,62,6208','静宁县','62','甘肃省','6208','平凉市','620826','静宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620881','6208','00,62,6208','华亭市','62','甘肃省','6208','平凉市','620881','华亭市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6209','62','00,62','酒泉市','62','甘肃省','6209','酒泉市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620902','6209','00,62,6209','肃州区','62','甘肃省','6209','酒泉市','620902','肃州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620921','6209','00,62,6209','金塔县','62','甘肃省','6209','酒泉市','620921','金塔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620922','6209','00,62,6209','瓜州县','62','甘肃省','6209','酒泉市','620922','瓜州县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620923','6209','00,62,6209','肃北蒙古族自治县','62','甘肃省','6209','酒泉市','620923','肃北蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620924','6209','00,62,6209','阿克塞哈萨克族自治县','62','甘肃省','6209','酒泉市','620924','阿克塞哈萨克族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620981','6209','00,62,6209','玉门市','62','甘肃省','6209','酒泉市','620981','玉门市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('620982','6209','00,62,6209','敦煌市','62','甘肃省','6209','酒泉市','620982','敦煌市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6210','62','00,62','庆阳市','62','甘肃省','6210','庆阳市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621002','6210','00,62,6210','西峰区','62','甘肃省','6210','庆阳市','621002','西峰区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621021','6210','00,62,6210','庆城县','62','甘肃省','6210','庆阳市','621021','庆城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621022','6210','00,62,6210','环县','62','甘肃省','6210','庆阳市','621022','环县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621023','6210','00,62,6210','华池县','62','甘肃省','6210','庆阳市','621023','华池县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621024','6210','00,62,6210','合水县','62','甘肃省','6210','庆阳市','621024','合水县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621025','6210','00,62,6210','正宁县','62','甘肃省','6210','庆阳市','621025','正宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621026','6210','00,62,6210','宁县','62','甘肃省','6210','庆阳市','621026','宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621027','6210','00,62,6210','镇原县','62','甘肃省','6210','庆阳市','621027','镇原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6211','62','00,62','定西市','62','甘肃省','6211','定西市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621102','6211','00,62,6211','安定区','62','甘肃省','6211','定西市','621102','安定区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621121','6211','00,62,6211','通渭县','62','甘肃省','6211','定西市','621121','通渭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621122','6211','00,62,6211','陇西县','62','甘肃省','6211','定西市','621122','陇西县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621123','6211','00,62,6211','渭源县','62','甘肃省','6211','定西市','621123','渭源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621124','6211','00,62,6211','临洮县','62','甘肃省','6211','定西市','621124','临洮县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621125','6211','00,62,6211','漳县','62','甘肃省','6211','定西市','621125','漳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621126','6211','00,62,6211','岷县','62','甘肃省','6211','定西市','621126','岷县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6212','62','00,62','陇南市','62','甘肃省','6212','陇南市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621202','6212','00,62,6212','武都区','62','甘肃省','6212','陇南市','621202','武都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621221','6212','00,62,6212','成县','62','甘肃省','6212','陇南市','621221','成县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621222','6212','00,62,6212','文县','62','甘肃省','6212','陇南市','621222','文县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621223','6212','00,62,6212','宕昌县','62','甘肃省','6212','陇南市','621223','宕昌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621224','6212','00,62,6212','康县','62','甘肃省','6212','陇南市','621224','康县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621225','6212','00,62,6212','西和县','62','甘肃省','6212','陇南市','621225','西和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621226','6212','00,62,6212','礼县','62','甘肃省','6212','陇南市','621226','礼县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621227','6212','00,62,6212','徽县','62','甘肃省','6212','陇南市','621227','徽县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('621228','6212','00,62,6212','两当县','62','甘肃省','6212','陇南市','621228','两当县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6229','62','00,62','临夏回族自治州','62','甘肃省','6229','临夏回族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622901','6229','00,62,6229','临夏市','62','甘肃省','6229','临夏回族自治州','622901','临夏市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622921','6229','00,62,6229','临夏县','62','甘肃省','6229','临夏回族自治州','622921','临夏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622922','6229','00,62,6229','康乐县','62','甘肃省','6229','临夏回族自治州','622922','康乐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622923','6229','00,62,6229','永靖县','62','甘肃省','6229','临夏回族自治州','622923','永靖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622924','6229','00,62,6229','广河县','62','甘肃省','6229','临夏回族自治州','622924','广河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622925','6229','00,62,6229','和政县','62','甘肃省','6229','临夏回族自治州','622925','和政县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622926','6229','00,62,6229','东乡族自治县','62','甘肃省','6229','临夏回族自治州','622926','东乡族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('622927','6229','00,62,6229','积石山保安族东乡族撒拉族自治县','62','甘肃省','6229','临夏回族自治州','622927','积石山保安族东乡族撒拉族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6230','62','00,62','甘南藏族自治州','62','甘肃省','6230','甘南藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623001','6230','00,62,6230','合作市','62','甘肃省','6230','甘南藏族自治州','623001','合作市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623021','6230','00,62,6230','临潭县','62','甘肃省','6230','甘南藏族自治州','623021','临潭县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623022','6230','00,62,6230','卓尼县','62','甘肃省','6230','甘南藏族自治州','623022','卓尼县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623023','6230','00,62,6230','舟曲县','62','甘肃省','6230','甘南藏族自治州','623023','舟曲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623024','6230','00,62,6230','迭部县','62','甘肃省','6230','甘南藏族自治州','623024','迭部县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623025','6230','00,62,6230','玛曲县','62','甘肃省','6230','甘南藏族自治州','623025','玛曲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623026','6230','00,62,6230','碌曲县','62','甘肃省','6230','甘南藏族自治州','623026','碌曲县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('623027','6230','00,62,6230','夏河县','62','甘肃省','6230','甘南藏族自治州','623027','夏河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('63','00','00','青海省','63','青海省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6301','63','00,63','西宁市','63','青海省','6301','西宁市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630102','6301','00,63,6301','城东区','63','青海省','6301','西宁市','630102','城东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630103','6301','00,63,6301','城中区','63','青海省','6301','西宁市','630103','城中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630104','6301','00,63,6301','城西区','63','青海省','6301','西宁市','630104','城西区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630105','6301','00,63,6301','城北区','63','青海省','6301','西宁市','630105','城北区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630106','6301','00,63,6301','湟中区','63','青海省','6301','西宁市','630106','湟中区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630121','6301','00,63,6301','大通回族土族自治县','63','青海省','6301','西宁市','630121','大通回族土族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630123','6301','00,63,6301','湟源县','63','青海省','6301','西宁市','630123','湟源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6302','63','00,63','海东市','63','青海省','6302','海东市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630202','6302','00,63,6302','乐都区','63','青海省','6302','海东市','630202','乐都区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630203','6302','00,63,6302','平安区','63','青海省','6302','海东市','630203','平安区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630222','6302','00,63,6302','民和回族土族自治县','63','青海省','6302','海东市','630222','民和回族土族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630223','6302','00,63,6302','互助土族自治县','63','青海省','6302','海东市','630223','互助土族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630224','6302','00,63,6302','化隆回族自治县','63','青海省','6302','海东市','630224','化隆回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('630225','6302','00,63,6302','循化撒拉族自治县','63','青海省','6302','海东市','630225','循化撒拉族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6322','63','00,63','海北藏族自治州','63','青海省','6322','海北藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632221','6322','00,63,6322','门源回族自治县','63','青海省','6322','海北藏族自治州','632221','门源回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632222','6322','00,63,6322','祁连县','63','青海省','6322','海北藏族自治州','632222','祁连县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632223','6322','00,63,6322','海晏县','63','青海省','6322','海北藏族自治州','632223','海晏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632224','6322','00,63,6322','刚察县','63','青海省','6322','海北藏族自治州','632224','刚察县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6323','63','00,63','黄南藏族自治州','63','青海省','6323','黄南藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632321','6323','00,63,6323','同仁县','63','青海省','6323','黄南藏族自治州','632321','同仁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632322','6323','00,63,6323','尖扎县','63','青海省','6323','黄南藏族自治州','632322','尖扎县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632323','6323','00,63,6323','泽库县','63','青海省','6323','黄南藏族自治州','632323','泽库县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632324','6323','00,63,6323','河南蒙古族自治县','63','青海省','6323','黄南藏族自治州','632324','河南蒙古族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6325','63','00,63','海南藏族自治州','63','青海省','6325','海南藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632521','6325','00,63,6325','共和县','63','青海省','6325','海南藏族自治州','632521','共和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632522','6325','00,63,6325','同德县','63','青海省','6325','海南藏族自治州','632522','同德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632523','6325','00,63,6325','贵德县','63','青海省','6325','海南藏族自治州','632523','贵德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632524','6325','00,63,6325','兴海县','63','青海省','6325','海南藏族自治州','632524','兴海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632525','6325','00,63,6325','贵南县','63','青海省','6325','海南藏族自治州','632525','贵南县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6326','63','00,63','果洛藏族自治州','63','青海省','6326','果洛藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632621','6326','00,63,6326','玛沁县','63','青海省','6326','果洛藏族自治州','632621','玛沁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632622','6326','00,63,6326','班玛县','63','青海省','6326','果洛藏族自治州','632622','班玛县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632623','6326','00,63,6326','甘德县','63','青海省','6326','果洛藏族自治州','632623','甘德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632624','6326','00,63,6326','达日县','63','青海省','6326','果洛藏族自治州','632624','达日县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632625','6326','00,63,6326','久治县','63','青海省','6326','果洛藏族自治州','632625','久治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632626','6326','00,63,6326','玛多县','63','青海省','6326','果洛藏族自治州','632626','玛多县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6327','63','00,63','玉树藏族自治州','63','青海省','6327','玉树藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632701','6327','00,63,6327','玉树市','63','青海省','6327','玉树藏族自治州','632701','玉树市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632722','6327','00,63,6327','杂多县','63','青海省','6327','玉树藏族自治州','632722','杂多县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632723','6327','00,63,6327','称多县','63','青海省','6327','玉树藏族自治州','632723','称多县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632724','6327','00,63,6327','治多县','63','青海省','6327','玉树藏族自治州','632724','治多县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632725','6327','00,63,6327','囊谦县','63','青海省','6327','玉树藏族自治州','632725','囊谦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632726','6327','00,63,6327','曲麻莱县','63','青海省','6327','玉树藏族自治州','632726','曲麻莱县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6328','63','00,63','海西蒙古族藏族自治州','63','青海省','6328','海西蒙古族藏族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632801','6328','00,63,6328','格尔木市','63','青海省','6328','海西蒙古族藏族自治州','632801','格尔木市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632802','6328','00,63,6328','德令哈市','63','青海省','6328','海西蒙古族藏族自治州','632802','德令哈市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632803','6328','00,63,6328','茫崖市','63','青海省','6328','海西蒙古族藏族自治州','632803','茫崖市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632821','6328','00,63,6328','乌兰县','63','青海省','6328','海西蒙古族藏族自治州','632821','乌兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632822','6328','00,63,6328','都兰县','63','青海省','6328','海西蒙古族藏族自治州','632822','都兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('632823','6328','00,63,6328','天峻县','63','青海省','6328','海西蒙古族藏族自治州','632823','天峻县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('64','00','00','宁夏回族自治区','64','宁夏回族自治区','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6401','64','00,64','银川市','64','宁夏回族自治区','6401','银川市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640104','6401','00,64,6401','兴庆区','64','宁夏回族自治区','6401','银川市','640104','兴庆区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640105','6401','00,64,6401','西夏区','64','宁夏回族自治区','6401','银川市','640105','西夏区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640106','6401','00,64,6401','金凤区','64','宁夏回族自治区','6401','银川市','640106','金凤区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640121','6401','00,64,6401','永宁县','64','宁夏回族自治区','6401','银川市','640121','永宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640122','6401','00,64,6401','贺兰县','64','宁夏回族自治区','6401','银川市','640122','贺兰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640181','6401','00,64,6401','灵武市','64','宁夏回族自治区','6401','银川市','640181','灵武市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6402','64','00,64','石嘴山市','64','宁夏回族自治区','6402','石嘴山市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640202','6402','00,64,6402','大武口区','64','宁夏回族自治区','6402','石嘴山市','640202','大武口区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640205','6402','00,64,6402','惠农区','64','宁夏回族自治区','6402','石嘴山市','640205','惠农区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640221','6402','00,64,6402','平罗县','64','宁夏回族自治区','6402','石嘴山市','640221','平罗县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6403','64','00,64','吴忠市','64','宁夏回族自治区','6403','吴忠市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640302','6403','00,64,6403','利通区','64','宁夏回族自治区','6403','吴忠市','640302','利通区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640303','6403','00,64,6403','红寺堡区','64','宁夏回族自治区','6403','吴忠市','640303','红寺堡区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640323','6403','00,64,6403','盐池县','64','宁夏回族自治区','6403','吴忠市','640323','盐池县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640324','6403','00,64,6403','同心县','64','宁夏回族自治区','6403','吴忠市','640324','同心县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640381','6403','00,64,6403','青铜峡市','64','宁夏回族自治区','6403','吴忠市','640381','青铜峡市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6404','64','00,64','固原市','64','宁夏回族自治区','6404','固原市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640402','6404','00,64,6404','原州区','64','宁夏回族自治区','6404','固原市','640402','原州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640422','6404','00,64,6404','西吉县','64','宁夏回族自治区','6404','固原市','640422','西吉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640423','6404','00,64,6404','隆德县','64','宁夏回族自治区','6404','固原市','640423','隆德县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640424','6404','00,64,6404','泾源县','64','宁夏回族自治区','6404','固原市','640424','泾源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640425','6404','00,64,6404','彭阳县','64','宁夏回族自治区','6404','固原市','640425','彭阳县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6405','64','00,64','中卫市','64','宁夏回族自治区','6405','中卫市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640502','6405','00,64,6405','沙坡头区','64','宁夏回族自治区','6405','中卫市','640502','沙坡头区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640521','6405','00,64,6405','中宁县','64','宁夏回族自治区','6405','中卫市','640521','中宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('640522','6405','00,64,6405','海原县','64','宁夏回族自治区','6405','中卫市','640522','海原县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('65','00','00','新疆维吾尔自治区','65','新疆维吾尔自治区','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6501','65','00,65','乌鲁木齐市','65','新疆维吾尔自治区','6501','乌鲁木齐市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650102','6501','00,65,6501','天山区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650102','天山区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650103','6501','00,65,6501','沙依巴克区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650103','沙依巴克区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650104','6501','00,65,6501','新市区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650104','新市区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650105','6501','00,65,6501','水磨沟区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650105','水磨沟区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650106','6501','00,65,6501','头屯河区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650106','头屯河区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650107','6501','00,65,6501','达坂城区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650107','达坂城区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650109','6501','00,65,6501','米东区','65','新疆维吾尔自治区','6501','乌鲁木齐市','650109','米东区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650121','6501','00,65,6501','乌鲁木齐县','65','新疆维吾尔自治区','6501','乌鲁木齐市','650121','乌鲁木齐县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6502','65','00,65','克拉玛依市','65','新疆维吾尔自治区','6502','克拉玛依市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650202','6502','00,65,6502','独山子区','65','新疆维吾尔自治区','6502','克拉玛依市','650202','独山子区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650203','6502','00,65,6502','克拉玛依区','65','新疆维吾尔自治区','6502','克拉玛依市','650203','克拉玛依区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650204','6502','00,65,6502','白碱滩区','65','新疆维吾尔自治区','6502','克拉玛依市','650204','白碱滩区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650205','6502','00,65,6502','乌尔禾区','65','新疆维吾尔自治区','6502','克拉玛依市','650205','乌尔禾区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6504','65','00,65','吐鲁番市','65','新疆维吾尔自治区','6504','吐鲁番市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650402','6504','00,65,6504','高昌区','65','新疆维吾尔自治区','6504','吐鲁番市','650402','高昌区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650421','6504','00,65,6504','鄯善县','65','新疆维吾尔自治区','6504','吐鲁番市','650421','鄯善县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650422','6504','00,65,6504','托克逊县','65','新疆维吾尔自治区','6504','吐鲁番市','650422','托克逊县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6505','65','00,65','哈密市','65','新疆维吾尔自治区','6505','哈密市','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650502','6505','00,65,6505','伊州区','65','新疆维吾尔自治区','6505','哈密市','650502','伊州区','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650521','6505','00,65,6505','巴里坤哈萨克自治县','65','新疆维吾尔自治区','6505','哈密市','650521','巴里坤哈萨克自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('650522','6505','00,65,6505','伊吾县','65','新疆维吾尔自治区','6505','哈密市','650522','伊吾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6523','65','00,65','昌吉回族自治州','65','新疆维吾尔自治区','6523','昌吉回族自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652301','6523','00,65,6523','昌吉市','65','新疆维吾尔自治区','6523','昌吉回族自治州','652301','昌吉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652302','6523','00,65,6523','阜康市','65','新疆维吾尔自治区','6523','昌吉回族自治州','652302','阜康市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652323','6523','00,65,6523','呼图壁县','65','新疆维吾尔自治区','6523','昌吉回族自治州','652323','呼图壁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652324','6523','00,65,6523','玛纳斯县','65','新疆维吾尔自治区','6523','昌吉回族自治州','652324','玛纳斯县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652325','6523','00,65,6523','奇台县','65','新疆维吾尔自治区','6523','昌吉回族自治州','652325','奇台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652327','6523','00,65,6523','吉木萨尔县','65','新疆维吾尔自治区','6523','昌吉回族自治州','652327','吉木萨尔县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652328','6523','00,65,6523','木垒哈萨克自治县','65','新疆维吾尔自治区','6523','昌吉回族自治州','652328','木垒哈萨克自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6527','65','00,65','博尔塔拉蒙古自治州','65','新疆维吾尔自治区','6527','博尔塔拉蒙古自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652701','6527','00,65,6527','博乐市','65','新疆维吾尔自治区','6527','博尔塔拉蒙古自治州','652701','博乐市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652702','6527','00,65,6527','阿拉山口市','65','新疆维吾尔自治区','6527','博尔塔拉蒙古自治州','652702','阿拉山口市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652722','6527','00,65,6527','精河县','65','新疆维吾尔自治区','6527','博尔塔拉蒙古自治州','652722','精河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652723','6527','00,65,6527','温泉县','65','新疆维吾尔自治区','6527','博尔塔拉蒙古自治州','652723','温泉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6528','65','00,65','巴音郭楞蒙古自治州','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652801','6528','00,65,6528','库尔勒市','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652801','库尔勒市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652822','6528','00,65,6528','轮台县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652822','轮台县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652823','6528','00,65,6528','尉犁县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652823','尉犁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652824','6528','00,65,6528','若羌县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652824','若羌县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652825','6528','00,65,6528','且末县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652825','且末县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652826','6528','00,65,6528','焉耆回族自治县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652826','焉耆回族自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652827','6528','00,65,6528','和静县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652827','和静县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652828','6528','00,65,6528','和硕县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652828','和硕县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652829','6528','00,65,6528','博湖县','65','新疆维吾尔自治区','6528','巴音郭楞蒙古自治州','652829','博湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6529','65','00,65','阿克苏地区','65','新疆维吾尔自治区','6529','阿克苏地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652901','6529','00,65,6529','阿克苏市','65','新疆维吾尔自治区','6529','阿克苏地区','652901','阿克苏市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652902','6529','00,65,6529','库车市','65','新疆维吾尔自治区','6529','阿克苏地区','652902','库车市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652922','6529','00,65,6529','温宿县','65','新疆维吾尔自治区','6529','阿克苏地区','652922','温宿县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652924','6529','00,65,6529','沙雅县','65','新疆维吾尔自治区','6529','阿克苏地区','652924','沙雅县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652925','6529','00,65,6529','新和县','65','新疆维吾尔自治区','6529','阿克苏地区','652925','新和县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652926','6529','00,65,6529','拜城县','65','新疆维吾尔自治区','6529','阿克苏地区','652926','拜城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652927','6529','00,65,6529','乌什县','65','新疆维吾尔自治区','6529','阿克苏地区','652927','乌什县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652928','6529','00,65,6529','阿瓦提县','65','新疆维吾尔自治区','6529','阿克苏地区','652928','阿瓦提县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('652929','6529','00,65,6529','柯坪县','65','新疆维吾尔自治区','6529','阿克苏地区','652929','柯坪县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6530','65','00,65','克孜勒苏柯尔克孜自治州','65','新疆维吾尔自治区','6530','克孜勒苏柯尔克孜自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653001','6530','00,65,6530','阿图什市','65','新疆维吾尔自治区','6530','克孜勒苏柯尔克孜自治州','653001','阿图什市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653022','6530','00,65,6530','阿克陶县','65','新疆维吾尔自治区','6530','克孜勒苏柯尔克孜自治州','653022','阿克陶县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653023','6530','00,65,6530','阿合奇县','65','新疆维吾尔自治区','6530','克孜勒苏柯尔克孜自治州','653023','阿合奇县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653024','6530','00,65,6530','乌恰县','65','新疆维吾尔自治区','6530','克孜勒苏柯尔克孜自治州','653024','乌恰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6531','65','00,65','喀什地区','65','新疆维吾尔自治区','6531','喀什地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653101','6531','00,65,6531','喀什市','65','新疆维吾尔自治区','6531','喀什地区','653101','喀什市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653121','6531','00,65,6531','疏附县','65','新疆维吾尔自治区','6531','喀什地区','653121','疏附县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653122','6531','00,65,6531','疏勒县','65','新疆维吾尔自治区','6531','喀什地区','653122','疏勒县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653123','6531','00,65,6531','英吉沙县','65','新疆维吾尔自治区','6531','喀什地区','653123','英吉沙县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653124','6531','00,65,6531','泽普县','65','新疆维吾尔自治区','6531','喀什地区','653124','泽普县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653125','6531','00,65,6531','莎车县','65','新疆维吾尔自治区','6531','喀什地区','653125','莎车县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653126','6531','00,65,6531','叶城县','65','新疆维吾尔自治区','6531','喀什地区','653126','叶城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653127','6531','00,65,6531','麦盖提县','65','新疆维吾尔自治区','6531','喀什地区','653127','麦盖提县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653128','6531','00,65,6531','岳普湖县','65','新疆维吾尔自治区','6531','喀什地区','653128','岳普湖县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653129','6531','00,65,6531','伽师县','65','新疆维吾尔自治区','6531','喀什地区','653129','伽师县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653130','6531','00,65,6531','巴楚县','65','新疆维吾尔自治区','6531','喀什地区','653130','巴楚县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653131','6531','00,65,6531','塔什库尔干塔吉克自治县','65','新疆维吾尔自治区','6531','喀什地区','653131','塔什库尔干塔吉克自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6532','65','00,65','和田地区','65','新疆维吾尔自治区','6532','和田地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653201','6532','00,65,6532','和田市','65','新疆维吾尔自治区','6532','和田地区','653201','和田市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653221','6532','00,65,6532','和田县','65','新疆维吾尔自治区','6532','和田地区','653221','和田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653222','6532','00,65,6532','墨玉县','65','新疆维吾尔自治区','6532','和田地区','653222','墨玉县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653223','6532','00,65,6532','皮山县','65','新疆维吾尔自治区','6532','和田地区','653223','皮山县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653224','6532','00,65,6532','洛浦县','65','新疆维吾尔自治区','6532','和田地区','653224','洛浦县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653225','6532','00,65,6532','策勒县','65','新疆维吾尔自治区','6532','和田地区','653225','策勒县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653226','6532','00,65,6532','于田县','65','新疆维吾尔自治区','6532','和田地区','653226','于田县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('653227','6532','00,65,6532','民丰县','65','新疆维吾尔自治区','6532','和田地区','653227','民丰县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6540','65','00,65','伊犁哈萨克自治州','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654002','6540','00,65,6540','伊宁市','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654002','伊宁市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654003','6540','00,65,6540','奎屯市','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654003','奎屯市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654004','6540','00,65,6540','霍尔果斯市','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654004','霍尔果斯市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654021','6540','00,65,6540','伊宁县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654021','伊宁县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654022','6540','00,65,6540','察布查尔锡伯自治县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654022','察布查尔锡伯自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654023','6540','00,65,6540','霍城县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654023','霍城县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654024','6540','00,65,6540','巩留县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654024','巩留县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654025','6540','00,65,6540','新源县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654025','新源县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654026','6540','00,65,6540','昭苏县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654026','昭苏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654027','6540','00,65,6540','特克斯县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654027','特克斯县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654028','6540','00,65,6540','尼勒克县','65','新疆维吾尔自治区','6540','伊犁哈萨克自治州','654028','尼勒克县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6542','65','00,65','塔城地区','65','新疆维吾尔自治区','6542','塔城地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654201','6542','00,65,6542','塔城市','65','新疆维吾尔自治区','6542','塔城地区','654201','塔城市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654202','6542','00,65,6542','乌苏市','65','新疆维吾尔自治区','6542','塔城地区','654202','乌苏市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654221','6542','00,65,6542','额敏县','65','新疆维吾尔自治区','6542','塔城地区','654221','额敏县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654223','6542','00,65,6542','沙湾县','65','新疆维吾尔自治区','6542','塔城地区','654223','沙湾县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654224','6542','00,65,6542','托里县','65','新疆维吾尔自治区','6542','塔城地区','654224','托里县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654225','6542','00,65,6542','裕民县','65','新疆维吾尔自治区','6542','塔城地区','654225','裕民县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654226','6542','00,65,6542','和布克赛尔蒙古自治县','65','新疆维吾尔自治区','6542','塔城地区','654226','和布克赛尔蒙古自治县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6543','65','00,65','阿勒泰地区','65','新疆维吾尔自治区','6543','阿勒泰地区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654301','6543','00,65,6543','阿勒泰市','65','新疆维吾尔自治区','6543','阿勒泰地区','654301','阿勒泰市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654321','6543','00,65,6543','布尔津县','65','新疆维吾尔自治区','6543','阿勒泰地区','654321','布尔津县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654322','6543','00,65,6543','富蕴县','65','新疆维吾尔自治区','6543','阿勒泰地区','654322','富蕴县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654323','6543','00,65,6543','福海县','65','新疆维吾尔自治区','6543','阿勒泰地区','654323','福海县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654324','6543','00,65,6543','哈巴河县','65','新疆维吾尔自治区','6543','阿勒泰地区','654324','哈巴河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654325','6543','00,65,6543','青河县','65','新疆维吾尔自治区','6543','阿勒泰地区','654325','青河县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('654326','6543','00,65,6543','吉木乃县','65','新疆维吾尔自治区','6543','阿勒泰地区','654326','吉木乃县','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('6590','65','00,65','自治区直辖县级行政区','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','','','','','','',2,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659001','6590','00,65,6590','石河子市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659001','石河子市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659002','6590','00,65,6590','阿拉尔市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659002','阿拉尔市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659003','6590','00,65,6590','图木舒克市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659003','图木舒克市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659004','6590','00,65,6590','五家渠市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659004','五家渠市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659005','6590','00,65,6590','北屯市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659005','北屯市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659006','6590','00,65,6590','铁门关市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659006','铁门关市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659007','6590','00,65,6590','双河市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659007','双河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659008','6590','00,65,6590','可克达拉市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659008','可克达拉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659009','6590','00,65,6590','昆玉市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659009','昆玉市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('659010','6590','00,65,6590','胡杨河市','65','新疆维吾尔自治区','6590','自治区直辖县级行政区','659010','胡杨河市','','','','',3,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('71','00','00','台湾省','71','台湾省','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('81','00','00','香港特别行政区','81','香港特别行政区','','','','','','','','',1,1,''); +INSERT INTO "BLADEX"."BLADE_REGION"("CODE","PARENT_CODE","ANCESTORS","NAME","PROVINCE_CODE","PROVINCE_NAME","CITY_CODE","CITY_NAME","DISTRICT_CODE","DISTRICT_NAME","TOWN_CODE","TOWN_NAME","VILLAGE_CODE","VILLAGE_NAME","REGION_LEVEL","SORT","REMARK") VALUES('82','00','00','澳门特别行政区','82','澳门特别行政区','','','','','','','','',1,1,''); + +INSERT INTO "BLADEX"."BLADE_REPORT_FILE"("ID","NAME","CONTENT","CREATE_TIME","UPDATE_TIME","IS_DELETED") VALUES(1291947054502789121,'notice.ureport.xml',0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313331222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E,'2020-08-08 11:59:16.000000','2020-08-08 13:05:02.000000',0); + +INSERT INTO "BLADEX"."BLADE_ROLE"("ID","TENANT_ID","PARENT_ID","ROLE_NAME","SORT","ROLE_ALIAS","IS_DELETED") VALUES(1123598816738675201,'000000',0,'超级管理员',1,'administrator',0); +INSERT INTO "BLADEX"."BLADE_ROLE"("ID","TENANT_ID","PARENT_ID","ROLE_NAME","SORT","ROLE_ALIAS","IS_DELETED") VALUES(1123598816738675202,'000000',0,'用户',2,'user',0); +INSERT INTO "BLADEX"."BLADE_ROLE"("ID","TENANT_ID","PARENT_ID","ROLE_NAME","SORT","ROLE_ALIAS","IS_DELETED") VALUES(1123598816738675203,'000000',1123598816738675202,'人事',1,'hr',0); +INSERT INTO "BLADEX"."BLADE_ROLE"("ID","TENANT_ID","PARENT_ID","ROLE_NAME","SORT","ROLE_ALIAS","IS_DELETED") VALUES(1123598816738675204,'000000',1123598816738675202,'经理',2,'manager',0); +INSERT INTO "BLADEX"."BLADE_ROLE"("ID","TENANT_ID","PARENT_ID","ROLE_NAME","SORT","ROLE_ALIAS","IS_DELETED") VALUES(1123598816738675205,'000000',1123598816738675202,'老板',3,'boss',0); + +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675363,1123598815738675201,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675364,1123598815738675202,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675365,1123598815738675219,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675366,1123598815738675220,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675367,1123598815738675221,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675368,1123598815738675222,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675369,1123598815738675280,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675370,1123598815738675281,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675371,1123598815738675282,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675372,1123598815738675283,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675373,1123598815738675284,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675374,1123598815738675285,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675375,1123598815738675286,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675376,1123598815738675287,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675377,1123598815738675288,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675378,1123598815738675289,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675379,1123598815738675290,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675380,1123598815738675291,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675381,1123598815738675292,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675382,1123598815738675293,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675383,1123598815738675294,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675384,1123598815738675295,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675385,1123598815738675296,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675386,1123598815738675297,1123598816738675202); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675387,1123598815738675201,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675388,1123598815738675202,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675389,1123598815738675219,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675390,1123598815738675220,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675391,1123598815738675221,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675392,1123598815738675222,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675393,1123598815738675280,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675394,1123598815738675281,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675395,1123598815738675282,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675396,1123598815738675283,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675397,1123598815738675284,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675398,1123598815738675285,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675399,1123598815738675286,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675400,1123598815738675287,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675401,1123598815738675288,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675402,1123598815738675289,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675403,1123598815738675290,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675404,1123598815738675291,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675405,1123598815738675292,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675406,1123598815738675293,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675407,1123598815738675294,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675408,1123598815738675295,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675409,1123598815738675296,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675410,1123598815738675297,1123598816738675203); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675411,1123598815738675201,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675412,1123598815738675202,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675413,1123598815738675219,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675414,1123598815738675220,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675415,1123598815738675221,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675416,1123598815738675222,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675417,1123598815738675280,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675418,1123598815738675281,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675419,1123598815738675282,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675420,1123598815738675283,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675421,1123598815738675284,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675422,1123598815738675285,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675423,1123598815738675286,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675424,1123598815738675287,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675425,1123598815738675288,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675426,1123598815738675289,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675427,1123598815738675290,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675428,1123598815738675291,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675429,1123598815738675292,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675430,1123598815738675293,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675431,1123598815738675294,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675432,1123598815738675295,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675433,1123598815738675296,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675434,1123598815738675297,1123598816738675204); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675435,1123598815738675201,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675436,1123598815738675202,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675437,1123598815738675219,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675438,1123598815738675220,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675439,1123598815738675221,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675440,1123598815738675222,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675441,1123598815738675280,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675442,1123598815738675281,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675443,1123598815738675282,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675444,1123598815738675283,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675445,1123598815738675284,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675446,1123598815738675285,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675447,1123598815738675286,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675448,1123598815738675287,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675449,1123598815738675288,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675450,1123598815738675289,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675451,1123598815738675290,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675452,1123598815738675291,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675453,1123598815738675292,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675454,1123598815738675293,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675455,1123598815738675294,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675456,1123598815738675295,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675457,1123598815738675296,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1123598817738675458,1123598815738675297,1123598816738675205); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292426575874,1123598815738675201,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292476907522,1123598815738675202,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292489490433,1123598815738675219,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292502073345,1123598815738675220,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292518850561,1123598815738675221,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292535627777,1123598815738675222,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292548210690,1123598815738675280,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292560793602,1123598815738675281,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292577570817,1123598815738675282,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292594348033,1123598815738675283,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292611125249,1123598815738675284,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292623708162,1123598815738675285,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292640485377,1123598815738675286,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292653068289,1123598815738675287,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292669845506,1123598815738675288,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292682428417,1123598815738675289,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292699205634,1123598815738675290,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292711788545,1123598815738675291,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292724371458,1123598815738675292,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292741148674,1123598815738675293,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292753731585,1123598815738675294,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292766314497,1123598815738675295,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292778897410,1123598815738675296,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292791480321,1123598815738675297,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292808257537,1123598815738675210,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292820840449,1123598815738675211,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292833423362,1123598815738675212,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292846006274,1123598815738675213,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292862783489,1123598815738675214,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292875366401,1123598815738675249,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292887949313,1123598815738675215,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292904726530,1123598815738675250,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292917309442,1123598815738675216,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292929892353,1123598815738675251,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292942475265,1123598815738675217,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292959252482,1123598815738675218,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292971835393,1123598815738675252,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292984418306,1123598815738675253,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888292997001217,1123598815738675254,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293009584129,1123598815738675255,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293026361346,1123598815738675266,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293043138562,1123598815738675267,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293055721473,1123598815738675268,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293072498690,1123598815738675269,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293089275906,1123598815738675270,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293101858817,1123598815738675271,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293114441729,1123598815738675272,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293127024642,1123598815738675273,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293139607554,1123598815738675274,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293152190465,1123598815738675275,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293164773377,1123598815738675276,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293177356290,1123598815738675277,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293189939201,1123598815738675278,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293202522113,1123598815738675279,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293215105026,1123598815738675298,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293227687938,1123598815738675299,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293240270850,1123598815738675301,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293252853762,1123598815738675302,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293265436674,1123598815738675303,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293278019586,1123598815738675304,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293290602497,1123598815738675305,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293303185410,1123598815738675307,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293315768322,1123598815738675308,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293328351234,1123598815738675241,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293336739841,1123598815738675242,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293349322753,1123598815738675243,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293361905666,1123598815738675244,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293374488578,1123598815738675309,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293387071489,1123598815738675310,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293399654402,1123598815738675311,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293412237313,1123598815738675312,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293424820226,1123598815738675203,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293454180354,1123598815738675204,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293483540481,1123598815738675223,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293512900609,1123598815738675224,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293529677826,1123598815738675225,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293554843649,1123598815738675226,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293571620866,1123598815738675227,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293588398081,1123598815738675228,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293605175297,1123598815738675205,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293617758209,1123598815738675229,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293630341121,1123598815738675230,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293642924033,1123598815738675231,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293659701250,1123598815738675232,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293672284162,1123598815738675206,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293684867074,1123598815738675233,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293697449986,1123598815738675234,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293710032897,1123598815738675235,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293722615809,1123598815738675236,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293735198722,1123598815738675207,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293747781633,1123598815738675237,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293760364545,1123598815738675238,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293772947458,1123598815738675239,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293785530370,1123598815738675240,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293798113282,1123598815738675306,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293810696194,1123598815738675208,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293819084802,1123598815738675313,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293831667714,1123598815738675314,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293844250626,1123598815738675315,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293856833538,1123598815738675316,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293856833539,1123598815738675317,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293869416450,1123598815738675209,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293881999362,1123598815738675245,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293894582274,1123598815738675246,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293907165186,1123598815738675247,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293919748097,1123598815738675248,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293932331010,1123598815738675256,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293940719618,1123598815738675257,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293953302530,1123598815738675258,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293965885441,1123598815738675259,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293978468354,1123598815738675260,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293986856962,1123598815738675261,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888293999439874,1123598815738675262,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888294007828482,1123598815738675263,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888294020411393,1123598815738675264,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1149888294028800002,1123598815738675265,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272593873322991,1161272593873321991,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272593873322992,1161272593873321992,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272593873322993,1161272593873321993,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272593873322994,1161272593873321994,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272593873322995,1161272593873321995,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272693873322991,1164733369658963251,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272693873322992,1164733369658963252,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272693873322993,1164733369658963253,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272693873322994,1164733369658963254,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272693873322995,1164733369658963255,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272793873322991,1164733379658963251,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272793873322992,1164733379658963252,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272793873322993,1164733379658963253,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272793873322994,1164733379658963254,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272793873322995,1164733379658963255,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873222991,1164733389658962251,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873222992,1164733389658962252,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873222993,1164733389658962253,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873222994,1164733389658962254,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873222995,1164733389658962255,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873222996,1164733389658962256,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893873322991,1164733389658963251,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875225001,1164733389668962251,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875225002,1164733389668962252,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875225003,1164733389668962253,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875225004,1164733389668962254,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875225005,1164733389668962255,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875225006,1164733389668962256,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226001,1164733399668962201,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226002,1164733399668962202,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226003,1164733399668962203,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226004,1164733399668962204,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226005,1164733399668962205,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226006,1164733399668962206,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875226007,1164733399668962207,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875227001,1164733399669962201,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875227002,1164733399669962202,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875227003,1164733399669962203,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875227004,1164733399669962204,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875228001,1164733399669962301,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875228002,1164733399669962302,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875228003,1164733399669962303,1123598816738675201); +INSERT INTO "BLADEX"."BLADE_ROLE_MENU"("ID","MENU_ID","ROLE_ID") VALUES(1161272893875228004,1164733399669962304,1123598816738675201); + +INSERT INTO "BLADEX"."BLADE_TENANT"("ID","TENANT_ID","TENANT_NAME","DOMAIN_URL","BACKGROUND_URL","LINKMAN","CONTACT_NUMBER","ADDRESS","ACCOUNT_NUMBER","EXPIRE_TIME","PACKAGE_ID","DATASOURCE_ID","LICENSE_KEY","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598820738675201,'000000','管理组',null,null,'admin','666666','管理组',-1,null,null,null,null,1123598821738675201,1123598813738675201,'2019-01-01 00:00:39.000000',1123598821738675201,'2019-01-01 00:00:39.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_USER"("ID","TENANT_ID","CODE","USER_TYPE","ACCOUNT","PASSWORD","NAME","REAL_NAME","AVATAR","EMAIL","PHONE","BIRTHDAY","SEX","ROLE_ID","DEPT_ID","POST_ID","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598821738675201,'000000',null,1,'admin','90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad','管理员','管理员','https://bladex.cn/images/logo.png','admin@bladex.vip','123333333333','2018-08-08 00:00:00.000000',1,'1123598816738675201','1123598813738675201','1123598817738675201',1123598821738675201,1123598813738675201,'2018-08-08 00:00:00.000000',1123598821738675201,'2018-08-08 00:00:00.000000',1,0); +INSERT INTO "BLADEX"."BLADE_USER"("ID","TENANT_ID","CODE","USER_TYPE","ACCOUNT","PASSWORD","NAME","REAL_NAME","AVATAR","EMAIL","PHONE","BIRTHDAY","SEX","ROLE_ID","DEPT_ID","POST_ID","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598821738675202,'000000',null,1,'hr','5e79b90f7bba52d54115f086e48f539016a27ec6','人事','人事','','hr@bladex.vip','123333333333','2018-08-08 00:00:00.000000',1,'1123598816738675203','1123598813738675202','1123598817738675207',1123598821738675201,1123598813738675201,'2019-04-27 17:03:10.000000',1123598821738675201,'2019-04-27 17:03:10.000000',1,0); +INSERT INTO "BLADEX"."BLADE_USER"("ID","TENANT_ID","CODE","USER_TYPE","ACCOUNT","PASSWORD","NAME","REAL_NAME","AVATAR","EMAIL","PHONE","BIRTHDAY","SEX","ROLE_ID","DEPT_ID","POST_ID","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598821738675203,'000000',null,1,'manager','dfbaa3b61caa3a319f463cc165085aa8c822d2ce','经理','经理','','manager@bladex.vip','123333333333','2018-08-08 00:00:00.000000',1,'1123598816738675204','1123598813738675202','1123598817738675206',1123598821738675201,1123598813738675201,'2019-04-27 17:03:38.000000',1123598821738675201,'2019-04-27 17:03:38.000000',1,0); +INSERT INTO "BLADEX"."BLADE_USER"("ID","TENANT_ID","CODE","USER_TYPE","ACCOUNT","PASSWORD","NAME","REAL_NAME","AVATAR","EMAIL","PHONE","BIRTHDAY","SEX","ROLE_ID","DEPT_ID","POST_ID","CREATE_USER","CREATE_DEPT","CREATE_TIME","UPDATE_USER","UPDATE_TIME","STATUS","IS_DELETED") VALUES(1123598821738675204,'000000',null,1,'boss','abe57d23e18f7ad8ea99c86e430c90a05119a9d3','老板','老板','','boss@bladex.vip','123333333333','2018-08-08 00:00:00.000000',1,'1123598816738675205','1123598813738675202','1123598817738675201',1123598821738675201,1123598813738675201,'2019-04-27 17:03:55.000000',1123598821738675201,'2019-04-27 17:03:55.000000',1,0); + +INSERT INTO "BLADEX"."BLADE_USER_DEPT"("ID","USER_ID","DEPT_ID") VALUES(1203503640757788674,1123598821738675201,1123598813738675201); +INSERT INTO "BLADEX"."BLADE_USER_DEPT"("ID","USER_ID","DEPT_ID") VALUES(1203503653323923458,1123598821738675202,1123598813738675202); +INSERT INTO "BLADEX"."BLADE_USER_DEPT"("ID","USER_ID","DEPT_ID") VALUES(1203503663402835969,1123598821738675203,1123598813738675202); +INSERT INTO "BLADEX"."BLADE_USER_DEPT"("ID","USER_ID","DEPT_ID") VALUES(1203503672911323137,1123598821738675204,1123598813738675202); + +COMMIT; diff --git a/doc/sql/bladex/bladex.mysql.all.create.sql b/doc/sql/bladex/bladex.mysql.all.create.sql new file mode 100644 index 0000000..599bc1f --- /dev/null +++ b/doc/sql/bladex/bladex.mysql.all.create.sql @@ -0,0 +1,962 @@ +/* + Navicat Premium Data Transfer + + Source Server : mysql_localhost + Source Server Type : MySQL + Source Server Version : 50729 + Source Host : localhost:3306 + Source Schema : test + + Target Server Type : MySQL + Target Server Version : 50729 + File Encoding : 65001 + + Date: 01/01/2024 01:32:25 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for blade_attach +-- ---------------------------- +DROP TABLE IF EXISTS `blade_attach`; +CREATE TABLE `blade_attach` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `link` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件地址', + `domain_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件域名', + `name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件名称', + `original_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件原名', + `extension` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附件拓展名', + `attach_size` bigint(20) NULL DEFAULT NULL COMMENT '附件大小', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '附件表'; + +-- ---------------------------- +-- Table structure for blade_client +-- ---------------------------- +DROP TABLE IF EXISTS `blade_client`; +CREATE TABLE `blade_client` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `client_id` varchar(48) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端id', + `client_secret` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '客户端密钥', + `resource_ids` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源集合', + `scope` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权范围', + `authorized_grant_types` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '授权类型', + `web_server_redirect_uri` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '回调地址', + `authorities` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '权限', + `access_token_validity` int(11) NOT NULL COMMENT '令牌过期秒数', + `refresh_token_validity` int(11) NOT NULL COMMENT '刷新令牌过期秒数', + `additional_information` varchar(4096) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '附加说明', + `autoapprove` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '自动授权', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NOT NULL COMMENT '状态', + `is_deleted` int(2) NOT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '客户端表'; + +-- ---------------------------- +-- Records of blade_client +-- ---------------------------- +BEGIN; +INSERT INTO `blade_client` VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:40:55', 1123598815738675201, '2019-03-24 10:40:59', 1, 0), (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:1888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:42:29', 1123598815738675201, '2019-03-24 10:42:32', 1, 0), (1123598811738675203, 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0), (1123598811738675204, 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_code +-- ---------------------------- +DROP TABLE IF EXISTS `blade_code`; +CREATE TABLE `blade_code` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `model_id` bigint(20) NULL DEFAULT NULL COMMENT '数据模型主键', + `service_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务名称', + `code_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模块名称', + `table_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表名', + `table_prefix` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '表前缀', + `pk_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主键名', + `package_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端包名', + `template_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模版类型', + `author` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '作者信息', + `sub_model_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表模型主键', + `sub_fk_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子表绑定外键', + `tree_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树主键字段', + `tree_pid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树父主键字段', + `tree_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '树名称字段', + `base_mode` int(2) NULL DEFAULT NULL COMMENT '基础业务模式', + `wrap_mode` int(2) NULL DEFAULT NULL COMMENT '包装器模式', + `feign_mode` int(2) NULL DEFAULT NULL COMMENT '远程调用模式', + `code_style` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '代码风格', + `api_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '后端路径', + `web_path` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '前端路径', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代码生成表'; + +-- ---------------------------- +-- Table structure for blade_datasource +-- ---------------------------- +DROP TABLE IF EXISTS `blade_datasource`; +CREATE TABLE `blade_datasource` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `category` int(2) NULL DEFAULT 1 COMMENT '数据源类型', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称', + `driver_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '驱动类', + `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '连接地址', + `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名', + `password` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码', + `sharding_config` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '分库分表配置', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据源配置表'; + +-- ---------------------------- +-- Records of blade_datasource +-- ---------------------------- +BEGIN; +INSERT INTO `blade_datasource` VALUES (1161483357481541634, 1, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', NULL, 'mysql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:06', 1123598821738675201, '2020-08-08 12:20:06', 1, 0), (1161483504353484802, 1, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', NULL, 'postgresql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:02', 1123598821738675201, '2020-08-08 12:20:02', 1, 0), (1161483594023510018, 1, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', NULL, 'oracle', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0), (1161483594023510020, 1, 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', NULL, 'sqlserver', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dept +-- ---------------------------- +DROP TABLE IF EXISTS `blade_dept`; +CREATE TABLE `blade_dept` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键', + `ancestors` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖级列表', + `dept_category` int(2) NULL DEFAULT NULL COMMENT '部门类型', + `dept_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门名', + `full_name` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门全称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '机构表'; + +-- ---------------------------- +-- Records of blade_dept +-- ---------------------------- +BEGIN; +INSERT INTO `blade_dept` VALUES (1123598813738675201, '000000', 0, '0', 1, '布雷德科技', '上海布雷德科技有限公司', 1, NULL, 0), (1123598813738675202, '000000', 1123598813738675201, '0,1123598813738675201', 1, '常州布雷德', '常州布雷德科技有限公司', 1, NULL, 0), (1123598813738675203, '000000', 1123598813738675201, '0,1123598813738675201', 1, '苏州布雷德', '苏州布雷德科技有限公司', 1, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dict +-- ---------------------------- +DROP TABLE IF EXISTS `blade_dict`; +CREATE TABLE `blade_dict` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码', + `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典值', + `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注', + `is_sealed` int(2) NULL DEFAULT 0 COMMENT '是否已封存', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '字典表'; + +-- ---------------------------- +-- Records of blade_dict +-- ---------------------------- +BEGIN; +INSERT INTO `blade_dict` VALUES (1123598814738675201, 0, 'sex', '-1', '性别', 1, NULL, 0, 0), (1123598814738675202, 1123598814738675201, 'sex', '1', '男', 1, NULL, 0, 0), (1123598814738675203, 1123598814738675201, 'sex', '2', '女', 2, NULL, 0, 0), (1123598814738675204, 0, 'notice', '-1', '通知类型', 2, NULL, 0, 0), (1123598814738675205, 1123598814738675204, 'notice', '1', '发布通知', 1, NULL, 0, 0), (1123598814738675206, 1123598814738675204, 'notice', '2', '批转通知', 2, NULL, 0, 0), (1123598814738675207, 1123598814738675204, 'notice', '3', '转发通知', 3, NULL, 0, 0), (1123598814738675208, 1123598814738675204, 'notice', '4', '指示通知', 4, NULL, 0, 0), (1123598814738675209, 1123598814738675204, 'notice', '5', '任免通知', 5, NULL, 0, 0), (1123598814738675210, 1123598814738675204, 'notice', '6', '事务通知', 6, NULL, 0, 0), (1123598814738675211, 0, 'menu_category', '-1', '菜单类型', 3, NULL, 0, 0), (1123598814738675212, 1123598814738675211, 'menu_category', '1', '菜单', 1, NULL, 0, 0), (1123598814738675213, 1123598814738675211, 'menu_category', '2', '按钮', 2, NULL, 0, 0), (1123598814738675214, 0, 'button_func', '-1', '按钮功能', 4, NULL, 0, 0), (1123598814738675215, 1123598814738675214, 'button_func', '1', '工具栏', 1, NULL, 0, 0), (1123598814738675216, 1123598814738675214, 'button_func', '2', '操作栏', 2, NULL, 0, 0), (1123598814738675217, 1123598814738675214, 'button_func', '3', '工具操作栏', 3, NULL, 0, 0), (1123598814738675218, 0, 'yes_no', '-1', '是否', 5, NULL, 0, 0), (1123598814738675219, 1123598814738675218, 'yes_no', '1', '否', 1, NULL, 0, 0), (1123598814738675220, 1123598814738675218, 'yes_no', '2', '是', 2, NULL, 0, 0), (1123598814738675221, 0, 'flow', '-1', '流程类型', 5, NULL, 0, 0), (1123598814738675222, 1123598814738675221, 'flow', '1', '请假流程', 1, 'leave', 0, 0), (1123598814738675223, 1123598814738675221, 'flow', '2', '报销流程', 2, 'expense', 0, 0), (1123598814738675227, 0, 'org_category', '-1', '机构类型', 7, NULL, 0, 0), (1123598814738675228, 1123598814738675227, 'org_category', '1', '公司', 1, NULL, 0, 0), (1123598814738675229, 1123598814738675227, 'org_category', '2', '部门', 2, NULL, 0, 0), (1123598814738675230, 1123598814738675227, 'org_category', '3', '小组', 3, NULL, 0, 0), (1123598814738675231, 0, 'data_scope_type', '-1', '数据权限', 8, NULL, 0, 0), (1123598814738675232, 1123598814738675231, 'data_scope_type', '1', '全部可见', 1, NULL, 0, 0), (1123598814738675233, 1123598814738675231, 'data_scope_type', '2', '本人可见', 2, NULL, 0, 0), (1123598814738675234, 1123598814738675231, 'data_scope_type', '3', '所在机构可见', 3, NULL, 0, 0), (1123598814738675235, 1123598814738675231, 'data_scope_type', '4', '所在机构及子级可见', 4, NULL, 0, 0), (1123598814738675236, 1123598814738675231, 'data_scope_type', '5', '自定义', 5, NULL, 0, 0), (1123598814738675237, 0, 'api_scope_type', '-1', '接口权限', 10, NULL, 0, 0), (1123598814738675238, 1123598814738675237, 'api_scope_type', '1', '系统接口', 1, NULL, 0, 0), (1123598814738675239, 1123598814738675237, 'api_scope_type', '2', '业务接口', 2, NULL, 0, 0), (1123598814738675240, 0, 'scope_category', '-1', '权限类型', 10, NULL, 0, 0), (1123598814738675241, 1123598814738675240, 'scope_category', '1', '数据权限', 1, NULL, 0, 0), (1123598814738675242, 1123598814738675240, 'scope_category', '2', '接口权限', 2, NULL, 0, 0), (1123598814738676224, 0, 'oss', '-1', '对象存储类型', 6, NULL, 0, 0), (1123598814738676225, 1123598814738676224, 'oss', '1', 'minio', 1, NULL, 0, 0), (1123598814738676226, 1123598814738676224, 'oss', '2', '七牛云', 2, NULL, 0, 0), (1123598814738676227, 1123598814738676224, 'oss', '3', '阿里云', 3, NULL, 0, 0), (1123598814738676228, 1123598814738676224, 'oss', '4', '腾讯云', 4, NULL, 0, 0), (1123598814738676229, 1123598814738676224, 'oss', '5', '华为云', 5, NULL, 0, 0), (1123598814738676230, 1123598814738676224, 'oss', '6', 'amazon s3', 6, NULL, 0, 0), (1123598814738677220, 0, 'sms', '-1', '短信服务类型', 11, NULL, 0, 0), (1123598814738677221, 1123598814738677220, 'sms', '1', '云片', 1, NULL, 0, 0), (1123598814738677222, 1123598814738677220, 'sms', '2', '七牛云', 2, NULL, 0, 0), (1123598814738677223, 1123598814738677220, 'sms', '3', '阿里云', 3, NULL, 0, 0), (1123598814738677224, 1123598814738677220, 'sms', '4', '腾讯云', 4, NULL, 0, 0), (1123598814738777220, 0, 'post_category', '-1', '岗位类型', 12, NULL, 0, 0), (1123598814738777221, 1123598814738777220, 'post_category', '1', '高层', 1, NULL, 0, 0), (1123598814738777222, 1123598814738777220, 'post_category', '2', '中层', 2, NULL, 0, 0), (1123598814738777223, 1123598814738777220, 'post_category', '3', '基层', 3, NULL, 0, 0), (1123598814738777224, 1123598814738777220, 'post_category', '4', '其他', 4, NULL, 0, 0), (1123598814738777230, 0, 'region', '-1', '行政区划', 13, NULL, 0, 0), (1123598814738777231, 1123598814738777230, 'region', '0', '国家', 0, NULL, 0, 0), (1123598814738777232, 1123598814738777230, 'region', '1', '省份/直辖市', 1, NULL, 0, 0), (1123598814738777233, 1123598814738777230, 'region', '2', '地市', 2, NULL, 0, 0), (1123598814738777234, 1123598814738777230, 'region', '3', '区县', 3, NULL, 0, 0), (1123598814738777235, 1123598814738777230, 'region', '4', '乡镇', 4, NULL, 0, 0), (1123598814738777236, 1123598814738777230, 'region', '5', '村委', 5, NULL, 0, 0), (1123598814738778200, 0, 'user_type', '-1', '用户平台', 14, NULL, 0, 0), (1123598814738778201, 1123598814738778200, 'user_type', '1', 'WEB', 1, NULL, 0, 0), (1123598814738778202, 1123598814738778200, 'user_type', '2', 'APP', 2, NULL, 0, 0), (1123598814738778203, 1123598814738778200, 'user_type', '3', 'OTHER', 3, NULL, 0, 0), (1735215689272508418, 0, 'datasource_category', '-1', '数据源类型', 16, '', 0, 0), (1735215870613241857, 1735215689272508418, 'datasource_category', '1', 'jdbc', 1, '', 0, 0), (1735215901546233858, 1735215689272508418, 'datasource_category', '2', 'sharding', 2, '', 0, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dict_biz +-- ---------------------------- +DROP TABLE IF EXISTS `blade_dict_biz`; +CREATE TABLE `blade_dict_biz` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典码', + `dict_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典值', + `dict_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典名称', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典备注', + `is_sealed` int(2) NULL DEFAULT 0 COMMENT '是否已封存', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '业务字典表'; + +-- ---------------------------- +-- Table structure for blade_job_info +-- ---------------------------- +DROP TABLE IF EXISTS `blade_job_info`; +CREATE TABLE `blade_job_info` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `job_server_id` bigint(20) NULL DEFAULT NULL COMMENT '任务服务ID', + `job_id` bigint(20) NULL DEFAULT NULL COMMENT '任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID', + `job_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务名称', + `job_description` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务描述', + `job_params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段', + `time_expression_type` int(2) NULL DEFAULT NULL COMMENT '时间表达式类型,枚举值', + `time_expression` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式', + `execute_type` int(2) NULL DEFAULT NULL COMMENT '执行类型,枚举值', + `processor_type` int(2) NULL DEFAULT NULL COMMENT '处理器类型,枚举值', + `processor_info` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo', + `max_instance_num` int(11) NULL DEFAULT NULL COMMENT '最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)', + `concurrency` int(11) NULL DEFAULT NULL COMMENT '单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量', + `instance_time_limit` bigint(20) NULL DEFAULT NULL COMMENT '任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败', + `instance_retry_num` int(11) NULL DEFAULT NULL COMMENT 'instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用', + `task_retry_num` int(11) NULL DEFAULT NULL COMMENT 'taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用', + `min_cpu_cores` double NULL DEFAULT NULL COMMENT 'minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制', + `min_memory_space` double NULL DEFAULT NULL COMMENT '最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制', + `min_disk_space` double NULL DEFAULT NULL COMMENT '最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制', + `designated_workers` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器', + `max_worker_count` int(2) NULL DEFAULT NULL COMMENT '最大执行机器数量,限定调动执行的机器数量,0代表无限制', + `notify_user_ids` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接收报警的用户 ID 列表', + `enable` int(2) NULL DEFAULT NULL COMMENT '是否启用该任务,未启用的任务不会被调度', + `dispatch_strategy` int(2) NULL DEFAULT NULL COMMENT '调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)', + `lifecycle` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)', + `alert_threshold` int(2) NULL DEFAULT NULL COMMENT '错误阈值,0代表不限制', + `statistic_window_len` int(2) NULL DEFAULT NULL COMMENT '统计的窗口长度(s),0代表不限制', + `silence_window_len` int(2) NULL DEFAULT NULL COMMENT '沉默时间窗口(s),0代表不限制', + `log_type` int(2) NULL DEFAULT NULL COMMENT '日志配置', + `log_level` int(2) NULL DEFAULT NULL COMMENT '日志级别', + `extra` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '日志信息表'; + +-- ---------------------------- +-- Table structure for blade_job_server +-- ---------------------------- +DROP TABLE IF EXISTS `blade_job_server`; +CREATE TABLE `blade_job_server` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `job_server_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务服务名称', + `job_server_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务服务器地址', + `job_app_name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务应用名称', + `job_app_password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务应用密码', + `job_remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '任务备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '任务服务表'; + +-- ---------------------------- +-- Records of blade_job_server +-- ---------------------------- +BEGIN; +INSERT INTO `blade_job_server` VALUES (1741512022505590785, '任务调度服务器', '127.0.0.1:7700', 'blade-job', 'blade-job', '基础服务', 1123598821738675201, 1123598813738675201, '2024-01-01 01:29:57', 1123598821738675201, '2024-01-01 01:29:57', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_log_api +-- ---------------------------- +DROP TABLE IF EXISTS `blade_log_api`; +CREATE TABLE `blade_log_api` ( + `id` bigint(20) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', + `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名', + `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址', + `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器环境', + `type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '日志类型', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '日志标题', + `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式', + `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI', + `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理', + `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据', + `time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '执行时间', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口日志表'; + +-- ---------------------------- +-- Table structure for blade_log_error +-- ---------------------------- +DROP TABLE IF EXISTS `blade_log_error`; +CREATE TABLE `blade_log_error` ( + `id` bigint(20) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', + `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名', + `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址', + `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境', + `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式', + `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI', + `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理', + `stack_trace` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '堆栈', + `exception_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '异常名', + `message` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '异常信息', + `line_number` int(11) NULL DEFAULT NULL COMMENT '错误行数', + `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `file_name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '文件名', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '错误日志表'; + +-- ---------------------------- +-- Table structure for blade_log_usual +-- ---------------------------- +DROP TABLE IF EXISTS `blade_log_usual`; +CREATE TABLE `blade_log_usual` ( + `id` bigint(20) NOT NULL COMMENT '编号', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `service_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务ID', + `server_host` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器名', + `server_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '服务器IP地址', + `env` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统环境', + `log_level` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志级别', + `log_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日志业务id', + `log_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '日志数据', + `method` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作方式', + `request_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求URI', + `remote_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '操作IP地址', + `method_class` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法类', + `method_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '方法名', + `user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户代理', + `params` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '操作提交的数据', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建者', + `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通用日志表'; + +-- ---------------------------- +-- Table structure for blade_menu +-- ---------------------------- +DROP TABLE IF EXISTS `blade_menu`; +CREATE TABLE `blade_menu` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父级菜单', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称', + `alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单别名', + `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求地址', + `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单资源', + `sort` int(2) NULL DEFAULT NULL COMMENT '排序', + `category` int(2) NULL DEFAULT NULL COMMENT '菜单类型', + `action` int(2) NULL DEFAULT 0 COMMENT '操作按钮类型', + `is_open` int(2) NULL DEFAULT 1 COMMENT '是否打开新页面', + `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件地址', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单表'; + +-- ---------------------------- +-- Records of blade_menu +-- ---------------------------- +BEGIN; +INSERT INTO `blade_menu` VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, '', NULL, 0), (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, '', NULL, 0), (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, '', NULL, 0), (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, '', NULL, 0), (1123598815738675205, 1123598815738675203, 'dept', '机构管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, '', NULL, 0), (1123598815738675206, 1123598815738675203, 'dict', '系统字典', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 4, 1, 0, 1, '', NULL, 0), (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 6, 1, 0, 1, '', NULL, 0), (1123598815738675208, 1123598815738675203, 'topmenu', '顶部菜单', 'menu', '/system/topmenu', 'iconfont icon-canshu', 7, 1, 0, 1, '', NULL, 0), (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 8, 1, 0, 1, '', NULL, 0), (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, '', NULL, 0), (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 1, '', NULL, 0), (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 1, '', NULL, 0), (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 8, 1, 0, 1, '', NULL, 0), (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, '', NULL, 0), (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, '', NULL, 0), (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, '', NULL, 0), (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, '', NULL, 0), (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, '', NULL, 0), (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-system/user/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, '', NULL, 0), (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-system/user/reset-password', 'retweet', 5, 2, 1, 1, '', NULL, 0), (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, '', NULL, 0), (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 9, 1, 0, 1, '', NULL, 0), (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 10, 1, 0, 1, '', NULL, 0), (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675266, 0, 'flow', '流程管理', 'menu', '/flow', 'iconfont iconicon_send', 5, 1, 0, 1, '', NULL, 0), (1123598815738675267, 1123598815738675266, 'flow_model', '模型管理', 'menu', '/flow/model', 'iconfont iconicon_discovery', 1, 1, 0, 1, '', NULL, 0), (1123598815738675268, 1123598815738675267, 'flow_model_create', '创建', 'create', '', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675269, 1123598815738675267, 'flow_model_update', '编辑', 'update', '', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675270, 1123598815738675267, 'flow_model_deploy', '部署', 'deploy', '', 'cloud-upload', 3, 2, 2, 1, '', NULL, 0), (1123598815738675271, 1123598815738675267, 'flow_model_download', '下载', 'download', '', 'download', 4, 2, 2, 1, '', NULL, 0), (1123598815738675272, 1123598815738675267, 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', 5, 2, 3, 1, '', NULL, 0), (1123598815738675273, 1123598815738675266, 'flow_deploy', '流程部署', 'menu', '/flow/deploy', 'iconfont iconicon_cspace', 2, 1, 0, 1, '', NULL, 0), (1123598815738675274, 1123598815738675266, 'flow_manager', '流程管理', 'menu', '/flow/manager', 'iconfont iconicon_cloud_history', 3, 1, 0, 1, '', NULL, 0), (1123598815738675275, 1123598815738675274, 'flow_manager_state', '变更状态', 'state', '', 'plus', 1, 2, 2, 1, '', NULL, 0), (1123598815738675276, 1123598815738675274, 'flow_manager_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0), (1123598815738675277, 1123598815738675274, 'flow_manager_remove', '删除', 'remove', '', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675278, 1123598815738675266, 'flow_follow', '流程跟踪', 'menu', '/flow/follow', 'iconfont iconicon_GPS', 4, 1, 0, 1, '', NULL, 0), (1123598815738675279, 1123598815738675278, 'flow_follow_delete', '删除', 'remove', '', 'remove', 1, 2, 2, 1, '', NULL, 0), (1123598815738675280, 0, 'work', '我的事务', 'menu', '/work', 'iconfont iconicon_notice', 2, 1, 0, 1, '', NULL, 0), (1123598815738675281, 1123598815738675280, 'work_start', '发起事务', 'menu', '/work/start', 'iconfont iconicon_compile', 1, 1, 0, 1, '', NULL, 0), (1123598815738675282, 1123598815738675281, 'work_start_flow', '发起', 'flow', '', 'flow', 1, 2, 2, 1, '', NULL, 0), (1123598815738675283, 1123598815738675281, 'work_start_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0), (1123598815738675284, 1123598815738675280, 'work_claim', '待签事务', 'menu', '/work/claim', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0), (1123598815738675285, 1123598815738675284, 'work_claim_sign', '签收', 'sign', '', 'sign', 1, 2, 2, 1, '', NULL, 0), (1123598815738675286, 1123598815738675284, 'work_claim_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0), (1123598815738675287, 1123598815738675284, 'work_claim_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0), (1123598815738675288, 1123598815738675280, 'work_todo', '待办事务', 'menu', '/work/todo', 'iconfont iconicon_savememo', 2, 1, 0, 1, '', NULL, 0), (1123598815738675289, 1123598815738675288, 'work_todo_handle', '办理', 'handle', '', 'handle', 1, 2, 2, 1, '', NULL, 0), (1123598815738675290, 1123598815738675288, 'work_todo_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0), (1123598815738675291, 1123598815738675288, 'work_todo_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0), (1123598815738675292, 1123598815738675280, 'work_send', '已发事务', 'menu', '/work/send', 'iconfont iconicon_doc', 3, 1, 0, 1, '', NULL, 0), (1123598815738675293, 1123598815738675292, 'work_send_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0), (1123598815738675294, 1123598815738675292, 'work_send_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0), (1123598815738675295, 1123598815738675280, 'work_done', '办结事务', 'menu', '/work/done', 'iconfont iconicon_dispose', 4, 1, 0, 1, '', NULL, 0), (1123598815738675296, 1123598815738675295, 'work_done_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0), (1123598815738675297, 1123598815738675295, 'work_done_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0), (1123598815738675298, 0, 'resource', '资源管理', 'menu', '/resource', 'iconfont iconicon_coinpurse_line', 6, 1, 0, 1, '', NULL, 0), (1123598815738675299, 1123598815738675298, 'oss', '对象存储', 'menu', '/resource/oss', 'iconfont iconicon_subordinate', 1, 1, 0, 1, '', NULL, 0), (1123598815738675301, 1123598815738675299, 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675302, 1123598815738675299, 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675303, 1123598815738675299, 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675304, 1123598815738675299, 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675305, 1123598815738675299, 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', 5, 2, 2, 1, '', NULL, 0), (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', NULL, 0), (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, '', NULL, 0), (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', NULL, 0), (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0), (1123598815738675311, 1123598815738675307, 'api_scope', '接口权限', 'menu', '/authority/apiscope', 'iconfont icon-iconset0216', 3, 1, 0, 1, '', NULL, 0), (1123598815738675312, 1123598815738675311, 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0), (1123598815738675313, 1123598815738675208, 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1123598815738675314, 1123598815738675208, 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1123598815738675315, 1123598815738675208, 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1123598815738675316, 1123598815738675208, 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1123598815738675317, 1123598815738675208, 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', 5, 2, 1, 1, '', NULL, 0), (1161272593873321991, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, '', NULL, 0), (1161272593873321992, 1161272593873321991, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1161272593873321993, 1161272593873321991, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1161272593873321994, 1161272593873321991, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1161272593873321995, 1161272593873321991, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0), (1164733369658963251, 1123598815738675210, 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', 'iconfont iconicon_cspace', 3, 1, 0, 1, '', NULL, 0), (1164733369658963252, 1123598815738675210, 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', 'iconfont iconicon_task', 4, 1, 0, 1, '', NULL, 0), (1164733369658963253, 1123598815738675210, 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', 5, 1, 0, 1, '', NULL, 0), (1164733369658963254, 1123598815738675210, 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', 'iconfont iconicon_safety', 6, 1, 0, 1, '', NULL, 0), (1164733369658963255, 1123598815738675210, 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', 'iconfont iconfont iconicon_search', 7, 1, 0, 1, '', NULL, 0), (1164733379658963251, 1123598815738675203, 'dictbiz', '业务字典', 'menu', '/system/dictbiz', 'iconfont iconicon_study', 5, 1, 0, 1, '', NULL, 0), (1164733379658963252, 1164733379658963251, 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733379658963253, 1164733379658963251, 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733379658963254, 1164733379658963251, 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733379658963255, 1164733379658963251, 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733389658962251, 1123598815738675298, 'sms', '短信配置', 'menu', '/resource/sms', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0), (1164733389658962252, 1164733389658962251, 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733389658962253, 1164733389658962251, 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733389658962254, 1164733389658962251, 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733389658962255, 1164733389658962251, 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733389658962256, 1164733389658962251, 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', 5, 2, 2, 1, '', NULL, 0), (1164733389658963251, 1123598815738675298, 'xxljob', '任务调度', 'menu', 'http://localhost:8080/xxl-job-admin', 'iconfont iconicon_cspace', 5, 1, 0, 1, '', NULL, 0), (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0), (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, '', NULL, 0), (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, '', NULL, 0), (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, '', NULL, 0), (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, '', NULL, 0), (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, '', NULL, 0), (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, '', NULL, 0), (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, '', NULL, 0), (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, '', NULL, 0), (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, '', NULL, 0), (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, '', NULL, 0), (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, '', NULL, 0), (1164733399669962201, 1123598815738675298, 'attach', '附件管理', 'menu', '/resource/attach', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0), (1164733399669962202, 1164733399669962201, 'attach_upload', '上传', 'upload', '/resource/attach/upload', '', 1, 2, 1, 1, '', NULL, 0), (1164733399669962203, 1164733399669962201, 'attach_download', '下载', 'download', '/resource/attach/download', '', 2, 2, 2, 1, '', NULL, 0), (1164733399669962204, 1164733399669962201, 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', '', 3, 2, 3, 1, '', NULL, 0), (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, '', NULL, 0), (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, '', NULL, 0), (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, '', NULL, 0), (1164733399669962304, 1164733399669962301, 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', 3, 1, 0, 1, '', NULL, 0), (1164733399669962401, 0, 'job', '任务管理', 'job', '/job', 'iconfont iconicon_cspace', 5, 1, 0, 1, '', NULL, 0), (1164733399669962501, 1164733399669962401, 'jobserver', '任务应用', 'menu', '/job/jobserver', 'iconfont icon-shouji', 1, 1, 0, 1, NULL, NULL, 0), (1164733399669962502, 1164733399669962501, 'jobserver_add', '新增', 'add', '/job/jobserver/add', 'plus', 1, 2, 1, 1, NULL, NULL, 0), (1164733399669962503, 1164733399669962501, 'jobserver_edit', '修改', 'edit', '/job/jobserver/edit', 'form', 2, 2, 2, 1, NULL, NULL, 0), (1164733399669962504, 1164733399669962501, 'jobserver_delete', '删除', 'delete', '/api/blade-job/jobserver/remove', 'delete', 3, 2, 3, 1, NULL, NULL, 0), (1164733399669962505, 1164733399669962501, 'jobserver_view', '查看', 'view', '/job/jobserver/view', 'file-text', 4, 2, 2, 1, NULL, NULL, 0), (1164733399669962601, 1164733399669962401, 'jobinfo', '任务配置', 'menu', '/job/jobinfo', 'iconfont icon-dongtai', 1, 1, 0, 1, NULL, NULL, 0), (1164733399669962602, 1164733399669962601, 'jobinfo_add', '新增', 'add', '/job/jobinfo/add', 'plus', 1, 2, 1, 1, NULL, NULL, 0), (1164733399669962603, 1164733399669962601, 'jobinfo_edit', '修改', 'edit', '/job/jobinfo/edit', 'form', 2, 2, 2, 1, NULL, NULL, 0), (1164733399669962604, 1164733399669962601, 'jobinfo_delete', '删除', 'delete', '/api/blade-job/jobinfo/remove', 'delete', 3, 2, 3, 1, NULL, NULL, 0), (1164733399669962605, 1164733399669962601, 'jobinfo_view', '查看', 'view', '/job/jobinfo/view', 'file-text', 4, 2, 2, 1, NULL, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_model +-- ---------------------------- +DROP TABLE IF EXISTS `blade_model`; +CREATE TABLE `blade_model` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源主键', + `model_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型名称', + `model_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型编号', + `model_table` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理表名', + `model_class` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型类名', + `model_remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模型备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据模型表'; + +-- ---------------------------- +-- Table structure for blade_model_prototype +-- ---------------------------- +DROP TABLE IF EXISTS `blade_model_prototype`; +CREATE TABLE `blade_model_prototype` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', + `model_id` bigint(20) NULL DEFAULT NULL COMMENT '模型主键', + `jdbc_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理列名', + `jdbc_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '物理类型', + `jdbc_comment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '注释说明', + `property_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型', + `property_entity` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体类型引用', + `property_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实体列名', + `is_list` int(2) NULL DEFAULT NULL COMMENT '列表显示', + `is_form` int(2) NULL DEFAULT NULL COMMENT '表单显示', + `is_row` int(2) NULL DEFAULT NULL COMMENT '独占一行', + `component_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '组件类型', + `dict_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '字典编码', + `is_required` int(2) NULL DEFAULT NULL COMMENT '是否必填', + `is_query` int(2) NULL DEFAULT NULL COMMENT '查询配置', + `query_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '查询配置', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据原型表'; + +-- ---------------------------- +-- Table structure for blade_notice +-- ---------------------------- +DROP TABLE IF EXISTS `blade_notice`; +CREATE TABLE `blade_notice` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题', + `category` int(11) NULL DEFAULT NULL COMMENT '类型', + `release_time` datetime(0) NULL DEFAULT NULL COMMENT '发布时间', + `content` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '通知公告表'; + +-- ---------------------------- +-- Records of blade_notice +-- ---------------------------- +BEGIN; +INSERT INTO `blade_notice` VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, 1123598813738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0), (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, 1123598813738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0), (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, 1123598813738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_oss +-- ---------------------------- +DROP TABLE IF EXISTS `blade_oss`; +CREATE TABLE `blade_oss` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `category` int(2) NULL DEFAULT NULL COMMENT '分类', + `oss_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号', + `endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源地址', + `transform_endpoint` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '外网资源地址', + `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey', + `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey', + `bucket_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '空间名', + `app_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用ID', + `region` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地域简称', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '对象存储表'; + +-- ---------------------------- +-- Records of blade_oss +-- ---------------------------- +BEGIN; +INSERT INTO `blade_oss` VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', '', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0), (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', '', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_param +-- ---------------------------- +DROP TABLE IF EXISTS `blade_param`; +CREATE TABLE `blade_param` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `param_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数名', + `param_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数键', + `param_value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数值', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '参数表'; + +-- ---------------------------- +-- Records of blade_param +-- ---------------------------- +BEGIN; +INSERT INTO `blade_param` VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0), (1123598819738675203, '账号错误锁定次数', 'account.failCount', '5', '锁定次数', 1123598821738675201, 1123598813738675201, '2021-12-01 12:00:00', 1123598821738675201, '2021-12-01 12:00:00', 1, 0), (1238706101399142402, '租户默认管理密码', 'tenant.default.password', 'admin', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:43', 1123598821738675201, '2020-03-14 13:58:43', 1, 0), (1238706160295559170, '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:57', 1123598821738675201, '2020-03-14 13:58:57', 1, 0), (1238706330076790786, '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:59:38', 1123598821738675201, '2020-03-14 13:59:38', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_post +-- ---------------------------- +DROP TABLE IF EXISTS `blade_post`; +CREATE TABLE `blade_post` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `category` int(11) NULL DEFAULT NULL COMMENT '岗位类型', + `post_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位编号', + `post_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位名称', + `sort` int(2) NULL DEFAULT NULL COMMENT '岗位排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位描述', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '岗位表'; + +-- ---------------------------- +-- Records of blade_post +-- ---------------------------- +BEGIN; +INSERT INTO `blade_post` VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0), (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_process_leave +-- ---------------------------- +DROP TABLE IF EXISTS `blade_process_leave`; +CREATE TABLE `blade_process_leave` ( + `id` bigint(20) NOT NULL COMMENT '编号', + `process_definition_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程定义主键', + `process_instance_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '流程实例主键', + `start_time` datetime(0) NULL DEFAULT NULL COMMENT '开始时间', + `end_time` datetime(0) NULL DEFAULT NULL COMMENT '结束时间', + `reason` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请假理由', + `task_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第一级审批人', + `apply_time` datetime(0) NULL DEFAULT NULL COMMENT '申请时间', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '流程请假业务表'; + +-- ---------------------------- +-- Table structure for blade_region +-- ---------------------------- +DROP TABLE IF EXISTS `blade_region`; +CREATE TABLE `blade_region` ( + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '区划编号', + `parent_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父区划编号', + `ancestors` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '祖区划编号', + `name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区划名称', + `province_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级区划编号', + `province_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '省级名称', + `city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级区划编号', + `city_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '市级名称', + `district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级区划编号', + `district_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区级名称', + `town_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级区划编号', + `town_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '镇级名称', + `village_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级区划编号', + `village_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '村级名称', + `region_level` int(2) NULL DEFAULT NULL COMMENT '层级', + `sort` int(2) NULL DEFAULT NULL COMMENT '排序', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + PRIMARY KEY (`code`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '行政区划表'; + +-- ---------------------------- +-- Records of blade_region +-- ---------------------------- +BEGIN; +INSERT INTO `blade_region` VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, ''), ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, ''), ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, ''), ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, ''), ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, ''), ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, ''), ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, ''), ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, ''), ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, ''), ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, ''), ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, ''), ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, ''), ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, ''), ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, ''), ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, ''), ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, ''), ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, ''), ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, ''), ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, ''), ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, ''), ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, ''), ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, ''), ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, ''), ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, ''), ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, ''), ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, ''), ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, ''), ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, ''), ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, ''), ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, ''), ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, ''), ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, ''), ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, ''), ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, ''), ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, ''), ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, ''), ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, ''), ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, ''), ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, ''), ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, ''), ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, ''), ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, ''), ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, ''), ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, ''), ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, ''), ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, ''), ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, ''), ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, ''), ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, ''), ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, ''), ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, ''), ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, ''), ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, ''), ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, ''), ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, ''), ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, ''), ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, ''), ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, ''), ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, ''), ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, ''), ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, ''), ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, ''), ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, ''), ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, ''), ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, ''), ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, ''), ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, ''), ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, ''), ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, ''), ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, ''), ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, ''), ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, ''), ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, ''), ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, ''), ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, ''), ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, ''), ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, ''), ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, ''), ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, ''), ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, ''), ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, ''), ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, ''), ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, ''), ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, ''), ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, ''), ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, ''), ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, ''), ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, ''), ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, ''), ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, ''), ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, ''), ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, ''), ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, ''), ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, ''), ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, ''), ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, ''), ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, ''), ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, ''), ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, ''), ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, ''), ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, ''), ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, ''), ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, ''), ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, ''), ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, ''), ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, ''), ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, ''), ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, ''), ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, ''), ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, ''), ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, ''), ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, ''), ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, ''), ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, ''), ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, ''), ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, ''), ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, ''), ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, ''), ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, ''), ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, ''), ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, ''), ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, ''), ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, ''), ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, ''), ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, ''), ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, ''), ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, ''), ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, ''), ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, ''), ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, ''), ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, ''), ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, ''), ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, ''), ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, ''), ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, ''), ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, ''), ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, ''), ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, ''), ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, ''), ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, ''), ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, ''), ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, ''), ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, ''), ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, ''), ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, ''), ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, ''), ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, ''), ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, ''), ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, ''), ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, ''), ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, ''), ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, ''), ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, ''), ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, ''), ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, ''), ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, ''), ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, ''), ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, ''), ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, ''), ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, ''), ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, ''), ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, ''), ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, ''), ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, ''), ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, ''), ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, ''), ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, ''), ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, ''), ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, ''), ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, ''), ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, ''), ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, ''), ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, ''), ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, ''), ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, ''), ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, ''), ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, ''), ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, ''), ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, ''), ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, ''), ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, ''), ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, ''), ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, ''), ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, ''), ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, ''), ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, ''), ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, ''), ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, ''), ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, ''), ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, ''), ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, ''), ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, ''), ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, ''), ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, ''), ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, ''), ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, ''), ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, ''), ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, ''), ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, ''), ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, ''), ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, ''), ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, ''), ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, ''), ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, ''), ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, ''), ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, ''), ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, ''), ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, ''), ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, ''), ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, ''), ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, ''), ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, ''), ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, ''), ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, ''), ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, ''), ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, ''), ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, ''), ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, ''), ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, ''), ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, ''), ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, ''), ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, ''), ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, ''), ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, ''), ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, ''), ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, ''), ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, ''), ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, ''), ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, ''), ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, ''), ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, ''), ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, ''), ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, ''), ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, ''), ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, ''), ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, ''), ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, ''), ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, ''), ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, ''), ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, ''), ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, ''), ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, ''), ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, ''), ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, ''), ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, ''), ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, ''), ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, ''), ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, ''), ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, ''), ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, ''), ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, ''), ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, ''), ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, ''), ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, ''), ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, ''), ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, ''), ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, ''), ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, ''), ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, ''), ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, ''), ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, ''), ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, ''), ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, ''), ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, ''), ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, ''), ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, ''), ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, ''), ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, ''), ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, ''), ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, ''), ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, ''), ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, ''), ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, ''), ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, ''), ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, ''), ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, ''), ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, ''), ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, ''), ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, ''), ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, ''), ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, ''), ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, ''), ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, ''), ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, ''), ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, ''), ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, ''), ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, ''), ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, ''), ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, ''), ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, ''), ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, ''), ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, ''), ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, ''), ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, ''), ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, ''), ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, ''), ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, ''), ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, ''), ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, ''), ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, ''), ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, ''), ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, ''), ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, ''), ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, ''), ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, ''), ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, ''), ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, ''), ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, ''), ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, ''), ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, ''), ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, ''), ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, ''), ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, ''), ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, ''), ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, ''), ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, ''), ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, ''), ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, ''), ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, ''), ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, ''), ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, ''), ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, ''), ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, ''), ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, ''), ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, ''), ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, ''), ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, ''), ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, ''), ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, ''), ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, ''), ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, ''), ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, ''), ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, ''), ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, ''), ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, ''), ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, ''), ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, ''), ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, ''), ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, ''), ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, ''), ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, ''), ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, ''), ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, ''), ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, ''), ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, ''), ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, ''), ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, ''), ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, ''), ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, ''), ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, ''), ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, ''), ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, ''), ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, ''), ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, ''), ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, ''), ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, ''), ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, ''), ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, ''), ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, ''), ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, ''), ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, ''), ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, ''), ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, ''), ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, ''), ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, ''), ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, ''), ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, ''), ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, ''), ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, ''), ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, ''), ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, ''), ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, ''), ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, ''), ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, ''), ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, ''), ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, ''), ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, ''), ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, ''), ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, ''), ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, ''), ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, ''), ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, ''), ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, ''), ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, ''), ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, ''), ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, ''), ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, ''), ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, ''), ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, ''), ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, ''), ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, ''), ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, ''), ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, ''), ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, ''), ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, ''), ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, ''), ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, ''), ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, ''), ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, ''), ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, ''), ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, ''), ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, ''), ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, ''), ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, ''), ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, ''), ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, ''), ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, ''), ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, ''), ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, ''), ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, ''), ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, ''), ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, ''), ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, ''), ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, ''), ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, ''), ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, ''), ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, ''), ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, ''), ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, ''), ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, ''), ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, ''), ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, ''), ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, ''), ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, ''), ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, ''), ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, ''), ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, ''), ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, ''), ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, ''), ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, ''), ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, ''), ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, ''), ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, ''), ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, ''), ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, ''), ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, ''), ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, ''), ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, ''), ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, ''), ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, ''), ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, ''), ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, ''), ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, ''), ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, ''), ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, ''), ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, ''), ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, ''), ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, ''), ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, ''), ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, ''), ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, ''), ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, ''), ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, ''), ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, ''), ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, ''), ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, ''), ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, ''), ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, ''), ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, ''), ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, ''), ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, ''), ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, ''), ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, ''), ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, ''), ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, ''), ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, ''), ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, ''), ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, ''), ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, ''), ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, ''), ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, ''), ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, ''), ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, ''), ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, ''), ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, ''), ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, ''), ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, ''), ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, ''), ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, ''), ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, ''), ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, ''), ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, ''), ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, ''), ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, ''), ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, ''), ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, ''), ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, ''), ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, ''), ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, ''), ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, ''), ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, ''), ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, ''), ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, ''), ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, ''), ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, ''), ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, ''), ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, ''), ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, ''), ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, ''), ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, ''), ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, ''), ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, ''), ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, ''), ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, ''), ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, ''), ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, ''), ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, ''), ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, ''), ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, ''), ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, ''), ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, ''), ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, ''), ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, ''), ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, ''), ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, ''), ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, ''), ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, ''), ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, ''), ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, ''), ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, ''), ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, ''), ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, ''), ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, ''), ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, ''), ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, ''), ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, ''), ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, ''), ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, ''), ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, ''), ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, ''), ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, ''), ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, ''), ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, ''), ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, ''), ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, ''), ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, ''), ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, ''), ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, ''), ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, ''), ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, ''), ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, ''), ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, ''), ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, ''), ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, ''), ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, ''), ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, ''), ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, ''), ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, ''), ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, ''), ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, ''), ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, ''), ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, ''), ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, ''), ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, ''), ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, ''), ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, ''), ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, ''), ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, ''), ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, ''), ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, ''), ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, ''), ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, ''), ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, ''), ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, ''), ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, ''), ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, ''), ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, ''), ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, ''), ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, ''), ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, ''), ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, ''), ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, ''), ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, ''), ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, ''), ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, ''), ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, ''), ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, ''), ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, ''), ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, ''), ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, ''), ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, ''), ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, ''), ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, ''), ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, ''), ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, ''), ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, ''), ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, ''), ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, ''), ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, ''), ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, ''), ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, ''), ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, ''), ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, ''), ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, ''), ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, ''), ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, ''), ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, ''), ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, ''), ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, ''), ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, ''), ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, ''), ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, ''), ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, ''), ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, ''), ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, ''), ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, ''), ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, ''), ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, ''), ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, ''), ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, ''), ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, ''), ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, ''), ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, ''), ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, ''), ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, ''), ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, ''), ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, ''), ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, ''), ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, ''), ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, ''), ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, ''), ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, ''), ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, ''), ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, ''), ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, ''), ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, ''), ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, ''), ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, ''), ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, ''), ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, ''), ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, ''), ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, ''), ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, ''), ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, ''), ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, ''), ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, ''), ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, ''), ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, ''), ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, ''), ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, ''), ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, ''), ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, ''), ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, ''), ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, ''), ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, ''), ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, ''), ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, ''), ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, ''), ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, ''), ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, ''), ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, ''), ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, ''), ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, ''), ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, ''), ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, ''), ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, ''), ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, ''), ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, ''), ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, ''), ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, ''), ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, ''), ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, ''), ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, ''), ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, ''), ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, ''), ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, ''), ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, ''), ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, ''), ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, ''), ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, ''), ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, ''), ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, ''), ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, ''), ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, ''), ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, ''), ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, ''), ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, ''), ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, ''), ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, ''), ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, ''), ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, ''), ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, ''), ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, ''), ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, ''), ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, ''), ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, ''), ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, ''), ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, ''), ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, ''), ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, ''), ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, ''), ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, ''), ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, ''), ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, ''), ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, ''), ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, ''), ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, ''), ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, ''), ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, ''), ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, ''), ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, ''), ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, ''), ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, ''), ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, ''), ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, ''), ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, ''), ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, ''), ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, ''), ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, ''), ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, ''), ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, ''), ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, ''), ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, ''), ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, ''), ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, ''), ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, ''), ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, ''), ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, ''), ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, ''), ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, ''), ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, ''), ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, ''), ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, ''), ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, ''), ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, ''), ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, ''), ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, ''), ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, ''), ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, ''), ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, ''), ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, ''), ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, ''), ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, ''), ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, ''), ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, ''), ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, ''), ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, ''), ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, ''), ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, ''), ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, ''), ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, ''), ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, ''), ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, ''), ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, ''), ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, ''), ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, ''), ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, ''), ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, ''), ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, ''), ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, ''), ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, ''), ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, ''), ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, ''), ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, ''), ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, ''), ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, ''), ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, ''), ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, ''), ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, ''), ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, ''), ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, ''), ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, ''), ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, ''), ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, ''), ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, ''), ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, ''), ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, ''), ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, ''), ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, ''), ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, ''), ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, ''), ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, ''), ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, ''), ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, ''), ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, ''), ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, ''), ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, ''), ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, ''), ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, ''), ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, ''), ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, ''), ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, ''), ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, ''), ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, ''), ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, ''), ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, ''), ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, ''), ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, ''), ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, ''), ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, ''), ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, ''), ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, ''), ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, ''), ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, ''), ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, ''), ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, ''), ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, ''), ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, ''), ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, ''), ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, ''), ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, ''), ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, ''), ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, ''), ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, ''), ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, ''), ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, ''), ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, ''), ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, ''), ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, ''), ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, ''), ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, ''), ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, ''), ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, ''), ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, ''), ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, ''), ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, ''), ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, ''), ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, ''), ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, ''), ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, ''), ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, ''), ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, ''), ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, ''), ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, ''), ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, ''), ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, ''), ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, ''), ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, ''), ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, ''), ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, ''), ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, ''), ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, ''), ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, ''), ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, ''), ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, ''), ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, ''), ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, ''), ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, ''), ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, ''), ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, ''), ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, ''), ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, ''), ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, ''), ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, ''), ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, ''), ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, ''), ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, ''), ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, ''), ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, ''), ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, ''), ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, ''), ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, ''), ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, ''), ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, ''), ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, ''), ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, ''), ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, ''), ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, ''), ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, ''), ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, ''), ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, ''), ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, ''), ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, ''), ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, ''), ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, ''), ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, ''), ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, ''), ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, ''), ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, ''), ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, ''), ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, ''), ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, ''), ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, ''), ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, ''), ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, ''), ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, ''), ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, ''), ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, ''), ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, ''), ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, ''), ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, ''), ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, ''), ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, ''), ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, ''), ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, ''), ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, ''), ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, ''), ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, ''), ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, ''), ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, ''), ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, ''), ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, ''), ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, ''), ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, ''), ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, ''), ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, ''), ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, ''), ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, ''), ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, ''), ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, ''), ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, ''), ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, ''), ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, ''), ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, ''), ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, ''), ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, ''), ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, ''), ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, ''), ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, ''), ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, ''), ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, ''), ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, ''), ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, ''), ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, ''), ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, ''), ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, ''), ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, ''), ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, ''), ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, ''), ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, ''), ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, ''), ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, ''), ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, ''), ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, ''), ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, ''), ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, ''), ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, ''), ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, ''), ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, ''), ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, ''), ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, ''), ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, ''), ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, ''), ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, ''), ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, ''), ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, ''), ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, ''), ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, ''), ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, ''), ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, ''), ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, ''), ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, ''), ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, ''), ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, ''), ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, ''), ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, ''), ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, ''), ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, ''), ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, ''), ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, ''), ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, ''), ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, ''), ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, ''), ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, ''), ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, ''), ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, ''), ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, ''), ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, ''), ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, ''), ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, ''), ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, ''), ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, ''), ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, ''), ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, ''), ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, ''), ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, ''), ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, ''), ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, ''), ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, ''), ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, ''), ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, ''), ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, ''), ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, ''), ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, ''), ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, ''), ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, ''), ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, ''), ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, ''), ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, ''), ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, ''), ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, ''), ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, ''), ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, ''), ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, ''), ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, ''), ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, ''), ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, ''), ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, ''), ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, ''), ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, ''), ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, ''), ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, ''), ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, ''), ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, ''), ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, ''), ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, ''), ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, ''), ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, ''), ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, ''), ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, ''), ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, ''), ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, ''), ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, ''), ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, ''), ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, ''), ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, ''), ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, ''), ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, ''), ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, ''), ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, ''), ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, ''), ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, ''), ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, ''), ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, ''), ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, ''), ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, ''), ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, ''), ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, ''), ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, ''), ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, ''), ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, ''), ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, ''), ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, ''), ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, ''), ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, ''), ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, ''), ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, ''), ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, ''), ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, ''), ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, ''), ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, ''), ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, ''), ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, ''), ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, ''), ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, ''), ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, ''), ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, ''), ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, ''), ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, ''), ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, ''), ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, ''), ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, ''), ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, ''), ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, ''), ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, ''), ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, ''), ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, ''), ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, ''), ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, ''), ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, ''), ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, ''), ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, ''), ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, ''), ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, ''), ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, ''), ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, ''), ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, ''), ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, ''), ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, ''), ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, ''), ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, ''), ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, ''), ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, ''), ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, ''), ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, ''), ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, ''), ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, ''), ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, ''), ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, ''), ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, ''), ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, ''), ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, ''), ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, ''), ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, ''), ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, ''), ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, ''), ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, ''), ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, ''), ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, ''), ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, ''), ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, ''), ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, ''), ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, ''), ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, ''), ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, ''), ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, ''), ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, ''), ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, ''), ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, ''), ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, ''), ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, ''), ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, ''), ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, ''), ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, ''), ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, ''), ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, ''), ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, ''), ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, ''), ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, ''), ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, ''), ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, ''), ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, ''), ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, ''), ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, ''), ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, ''), ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, ''), ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, ''), ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, ''), ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, ''), ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, ''), ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, ''), ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, ''), ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, ''), ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, ''), ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, ''), ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, ''), ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, ''), ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, ''), ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, ''), ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, ''), ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, ''), ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, ''), ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, ''), ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, ''), ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, ''), ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, ''), ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, ''), ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, ''), ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, ''), ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, ''), ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, ''), ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, ''), ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, ''), ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, ''), ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, ''), ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, ''), ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, ''), ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, ''), ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, ''), ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, ''), ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, ''), ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, ''), ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, ''), ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, ''), ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, ''), ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, ''), ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, ''), ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, ''), ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, ''), ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, ''), ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, ''), ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, ''), ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, ''), ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, ''), ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, ''), ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, ''), ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, ''), ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, ''), ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, ''), ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, ''), ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, ''), ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, ''), ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, ''), ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, ''), ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, ''), ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, ''), ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, ''), ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, ''), ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, ''), ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, ''), ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, ''), ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, ''), ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, ''), ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, ''), ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, ''), ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, ''), ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, ''), ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, ''), ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, ''), ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, ''), ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, ''), ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, ''), ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, ''), ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, ''), ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, ''), ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, ''), ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, ''), ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, ''), ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, ''), ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, ''), ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, ''), ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, ''), ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, ''), ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, ''), ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, ''), ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, ''), ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, ''), ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, ''), ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, ''), ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, ''), ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, ''), ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, ''), ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, ''), ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, ''), ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, ''), ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, ''), ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, ''), ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, ''), ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, ''), ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, ''), ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, ''), ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, ''), ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, ''), ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, ''), ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, ''), ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, ''), ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, ''), ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, ''), ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, ''), ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, ''), ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, ''), ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, ''), ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, ''), ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, ''), ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, ''), ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, ''), ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, ''), ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, ''), ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, ''), ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, ''), ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, ''), ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, ''), ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, ''), ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, ''), ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, ''), ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, ''), ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, ''), ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, ''), ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, ''), ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, ''), ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, ''), ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, ''), ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, ''), ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, ''), ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, ''), ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, ''), ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, ''), ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, ''), ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, ''), ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, ''), ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, ''), ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, ''), ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, ''), ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, ''), ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, ''), ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, ''), ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, ''), ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, ''), ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, ''), ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, ''), ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, ''), ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, ''), ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, ''), ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, ''), ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, ''), ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, ''), ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, ''), ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, ''), ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, ''), ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, ''), ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, ''), ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, ''), ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, ''), ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, ''), ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, ''), ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, ''), ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, ''), ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, ''), ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, ''), ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, ''), ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, ''), ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, ''), ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, ''), ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, ''), ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, ''), ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, ''), ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, ''), ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, ''), ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, ''), ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, ''), ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, ''), ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, ''), ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, ''), ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, ''), ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, ''), ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, ''), ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, ''), ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, ''), ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, ''), ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, ''), ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, ''), ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, ''), ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, ''), ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, ''), ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, ''), ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, ''), ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, ''), ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, ''), ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, ''), ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, ''), ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, ''), ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, ''), ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, ''), ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, ''), ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, ''), ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, ''), ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, ''), ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, ''), ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, ''), ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, ''), ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, ''), ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, ''), ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, ''), ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, ''), ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, ''), ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, ''), ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, ''), ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, ''), ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, ''), ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, ''), ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, ''), ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, ''), ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, ''), ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, ''), ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, ''), ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, ''), ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, ''), ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, ''), ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, ''), ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, ''), ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, ''), ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, ''), ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, ''), ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, ''), ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, ''), ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, ''), ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, ''), ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, ''), ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, ''), ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, ''), ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, ''), ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, ''), ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, ''), ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, ''), ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, ''), ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, ''), ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, ''), ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, ''), ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, ''), ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, ''), ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, ''), ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, ''), ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, ''), ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, ''), ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, ''), ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, ''), ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, ''), ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, ''), ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, ''), ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, ''), ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, ''), ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, ''), ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, ''), ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, ''), ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, ''), ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, ''), ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, ''), ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, ''), ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, ''), ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, ''), ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, ''), ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, ''), ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, ''), ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, ''), ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, ''), ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, ''), ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, ''), ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, ''), ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, ''), ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, ''), ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, ''), ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, ''), ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, ''), ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, ''), ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, ''), ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, ''), ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, ''), ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, ''), ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, ''), ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, ''), ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, ''), ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, ''), ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, ''), ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, ''), ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, ''), ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, ''), ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, ''), ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, ''), ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, ''), ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, ''), ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, ''), ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, ''), ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, ''), ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, ''), ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, ''), ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, ''), ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, ''), ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, ''), ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, ''), ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, ''), ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, ''), ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, ''), ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, ''), ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, ''), ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, ''), ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, ''), ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, ''), ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, ''), ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, ''), ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, ''), ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, ''), ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, ''), ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, ''), ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, ''), ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, ''), ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, ''), ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, ''), ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, ''), ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, ''), ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, ''), ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, ''), ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, ''), ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, ''), ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, ''), ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, ''), ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, ''), ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, ''), ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, ''), ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, ''), ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, ''), ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, ''), ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, ''), ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, ''), ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, ''), ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, ''), ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, ''), ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, ''), ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, ''), ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, ''), ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, ''), ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, ''), ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, ''), ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, ''), ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, ''), ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, ''), ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, ''), ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, ''), ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, ''), ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, ''), ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, ''), ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, ''), ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, ''), ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, ''), ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, ''), ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, ''), ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, ''), ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, ''), ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, ''), ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, ''), ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, ''), ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, ''), ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, ''), ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, ''), ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, ''), ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, ''), ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, ''), ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, ''), ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, ''), ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, ''), ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, ''), ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, ''), ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, ''), ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, ''), ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, ''), ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, ''), ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, ''), ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, ''), ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, ''), ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, ''), ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, ''), ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, ''), ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, ''), ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, ''), ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, ''), ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, ''), ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, ''), ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, ''), ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, ''), ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, ''), ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, ''), ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, ''), ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, ''), ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, ''), ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, ''), ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, ''), ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, ''), ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, ''), ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, ''), ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, ''), ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, ''), ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, ''), ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, ''), ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, ''), ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, ''), ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, ''), ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, ''), ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, ''), ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, ''), ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, ''), ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, ''), ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, ''), ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, ''), ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, ''), ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, ''), ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, ''), ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, ''), ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, ''), ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, ''), ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, ''), ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, ''), ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, ''), ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, ''), ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, ''), ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, ''), ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, ''), ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, ''), ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, ''), ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, ''), ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, ''), ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, ''), ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, ''), ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, ''), ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, ''), ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, ''), ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, ''), ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, ''), ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, ''), ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, ''), ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, ''), ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, ''), ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, ''), ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, ''), ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, ''), ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, ''), ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, ''), ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, ''), ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, ''), ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, ''), ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, ''), ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, ''), ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, ''), ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, ''), ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, ''), ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, ''), ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, ''), ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, ''), ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, ''), ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, ''), ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, ''), ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, ''), ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, ''), ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, ''), ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, ''), ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, ''), ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, ''), ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, ''), ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, ''), ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, ''), ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, ''), ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, ''), ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, ''), ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, ''), ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, ''), ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, ''), ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, ''), ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, ''), ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, ''), ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, ''), ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, ''), ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, ''), ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, ''), ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, ''), ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, ''), ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, ''), ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, ''), ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, ''), ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, ''), ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, ''), ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, ''), ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, ''), ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, ''), ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, ''), ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, ''), ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, ''), ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, ''), ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, ''), ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, ''), ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, ''), ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, ''), ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, ''), ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, ''), ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, ''), ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, ''), ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, ''), ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, ''), ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, ''), ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, ''), ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, ''), ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, ''), ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, ''), ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, ''), ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, ''), ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, ''), ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, ''), ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, ''), ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, ''), ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, ''), ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, ''), ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, ''), ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, ''), ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, ''), ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, ''), ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, ''), ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, ''), ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, ''), ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, ''), ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, ''), ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, ''), ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, ''), ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, ''), ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, ''), ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, ''), ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, ''), ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, ''), ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, ''), ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, ''), ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, ''), ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, ''), ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, ''), ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, ''), ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, ''), ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, ''), ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, ''), ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, ''), ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, ''), ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, ''), ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, ''), ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, ''), ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, ''), ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, ''), ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, ''), ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, ''), ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, ''), ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, ''), ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, ''), ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, ''), ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, ''), ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, ''), ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, ''), ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, ''), ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, ''), ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, ''), ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, ''), ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, ''), ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, ''), ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, ''), ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, ''), ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, ''), ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, ''), ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, ''), ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, ''), ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, ''), ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, ''), ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, ''), ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, ''), ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, ''), ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, ''), ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, ''), ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, ''), ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, ''), ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, ''), ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, ''), ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, ''), ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, ''), ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, ''), ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, ''), ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, ''), ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, ''), ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, ''), ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, ''), ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, ''), ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, ''), ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, ''), ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, ''), ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, ''), ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, ''), ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, ''), ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, ''), ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, ''), ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, ''), ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, ''), ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, ''), ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, ''), ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, ''), ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, ''), ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, ''), ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, ''), ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, ''), ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, ''), ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, ''), ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, ''), ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, ''), ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, ''), ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, ''), ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, ''), ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, ''), ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, ''), ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, ''), ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, ''), ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, ''), ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, ''), ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, ''), ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, ''), ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, ''), ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, ''), ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, ''), ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, ''), ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, ''), ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, ''), ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, ''), ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, ''), ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, ''), ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, ''), ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, ''), ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, ''), ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, ''), ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, ''), ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, ''), ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, ''), ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, ''), ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, ''), ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, ''), ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, ''), ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, ''), ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, ''), ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, ''), ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, ''), ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, ''), ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, ''), ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, ''), ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, ''), ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, ''), ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, ''), ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, ''), ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, ''), ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, ''), ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, ''), ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, ''), ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, ''), ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, ''), ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, ''), ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, ''), ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, ''), ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, ''), ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, ''), ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, ''), ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, ''), ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, ''), ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, ''), ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, ''), ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, ''), ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, ''), ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, ''), ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, ''), ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, ''), ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, ''), ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, ''), ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, ''), ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, ''), ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, ''), ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, ''), ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, ''), ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, ''), ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, ''), ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, ''), ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, ''), ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, ''), ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, ''), ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, ''), ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, ''), ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, ''), ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, ''), ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, ''), ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, ''), ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, ''), ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, ''), ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, ''), ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, ''), ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, ''), ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, ''), ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, ''), ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, ''), ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, ''), ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, ''), ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, ''), ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, ''), ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, ''), ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, ''), ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, ''), ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, ''), ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, ''), ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, ''), ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, ''), ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, ''), ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, ''), ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, ''), ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, ''), ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, ''), ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, ''), ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, ''), ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, ''), ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, ''), ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, ''), ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, ''), ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, ''), ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, ''), ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, ''), ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, ''), ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, ''), ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, ''), ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, ''), ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, ''), ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, ''), ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, ''), ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, ''), ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, ''), ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, ''), ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, ''), ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, ''), ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, ''), ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, ''), ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, ''), ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, ''), ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, ''), ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, ''), ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, ''), ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, ''), ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, ''), ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, ''), ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, ''), ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, ''), ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, ''), ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, ''), ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, ''), ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, ''), ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, ''), ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, ''), ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, ''), ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, ''), ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, ''), ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, ''), ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, ''), ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, ''), ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, ''), ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, ''), ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, ''), ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, ''), ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, ''), ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, ''), ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, ''), ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, ''), ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, ''), ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, ''), ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, ''), ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, ''), ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, ''), ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, ''), ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, ''), ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, ''), ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, ''), ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, ''), ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, ''), ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, ''), ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, ''), ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, ''), ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, ''), ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, ''), ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, ''), ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, ''), ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, ''), ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, ''), ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, ''), ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, ''), ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, ''), ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, ''), ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, ''), ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, ''), ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, ''), ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, ''), ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, ''), ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, ''), ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, ''), ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, ''), ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, ''), ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, ''), ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, ''), ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, ''), ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, ''), ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, ''), ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, ''), ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, ''), ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, ''), ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, ''), ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, ''), ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, ''), ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, ''), ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, ''), ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, ''), ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, ''), ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, ''), ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, ''), ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, ''), ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, ''), ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, ''), ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, ''), ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, ''), ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, ''), ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, ''), ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, ''), ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, ''), ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, ''), ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, ''), ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, ''), ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, ''), ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, ''), ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, ''), ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, ''), ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, ''), ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, ''), ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, ''), ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, ''), ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, ''), ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, ''), ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, ''), ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, ''), ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, ''), ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, ''), ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, ''), ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, ''), ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, ''), ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, ''), ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, ''), ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, ''), ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, ''), ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, ''), ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, ''), ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, ''), ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, ''), ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, ''), ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, ''), ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, ''), ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, ''), ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, ''), ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, ''), ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, ''), ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, ''), ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, ''), ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, ''), ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, ''), ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, ''), ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, ''), ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, ''), ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, ''), ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, ''), ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, ''), ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, ''), ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, ''), ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, ''), ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, ''), ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, ''), ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, ''), ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, ''), ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, ''), ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, ''), ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, ''), ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, ''), ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, ''), ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, ''), ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, ''), ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, ''), ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, ''), ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, ''), ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, ''), ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, ''), ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, ''), ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, ''), ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, ''), ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, ''), ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, ''), ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, ''), ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, ''), ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, ''), ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, ''), ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, ''), ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, ''), ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, ''), ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, ''), ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, ''), ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, ''), ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, ''), ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, ''), ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, ''), ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, ''), ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, ''), ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, ''), ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, ''), ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, ''), ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, ''), ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, ''), ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, ''), ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, ''), ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, ''), ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, ''), ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, ''), ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, ''), ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, ''), ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, ''), ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, ''), ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, ''), ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, ''), ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, ''), ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, ''), ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, ''), ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, ''), ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, ''), ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, ''), ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, ''), ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, ''), ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, ''), ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, ''), ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, ''), ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, ''), ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, ''), ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, ''), ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, ''), ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, ''), ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, ''), ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, ''), ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, ''), ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, ''), ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, ''), ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, ''), ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, ''), ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, ''), ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, ''), ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, ''), ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, ''), ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, ''), ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, ''), ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, ''), ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, ''), ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, ''), ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, ''), ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, ''), ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, ''), ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, ''), ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, ''), ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, ''), ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, ''), ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, ''), ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, ''), ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, ''), ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, ''), ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, ''), ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, ''), ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, ''), ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, ''), ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, ''), ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, ''), ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, ''), ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, ''), ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, ''), ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, ''), ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, ''), ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, ''), ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, ''), ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, ''), ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, ''), ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, ''), ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, ''), ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, ''), ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, ''), ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, ''), ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, ''), ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, ''), ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, ''), ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, ''), ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, ''), ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, ''), ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, ''), ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, ''), ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, ''), ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, ''), ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, ''), ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, ''), ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, ''), ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, ''), ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, ''), ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, ''), ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, ''), ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, ''), ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, ''), ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, ''), ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, ''), ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, ''), ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, ''), ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, ''), ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, ''), ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, ''), ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, ''), ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, ''), ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, ''), ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, ''), ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, ''), ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, ''), ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, ''), ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, ''), ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, ''), ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, ''), ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, ''), ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, ''), ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, ''), ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, ''), ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, ''), ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, ''), ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, ''), ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, ''), ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, ''), ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, ''), ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, ''), ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, ''), ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, ''), ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, ''), ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, ''), ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, ''), ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, ''), ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, ''), ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, ''), ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, ''), ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, ''), ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, ''), ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, ''), ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, ''), ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, ''), ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, ''), ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, ''), ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, ''), ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, ''), ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, ''), ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, ''), ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, ''), ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, ''), ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, ''), ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, ''), ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, ''), ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, ''), ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, ''), ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, ''), ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, ''), ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, ''), ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, ''), ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, ''), ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, ''), ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, ''), ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, ''), ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, ''), ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, ''), ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, ''), ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, ''), ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, ''), ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, ''), ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, ''), ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, ''), ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, ''), ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, ''), ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, ''), ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, ''), ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, ''), ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, ''), ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, ''), ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, ''), ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, ''), ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, ''), ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, ''), ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, ''), ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, ''), ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, ''), ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, ''), ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, ''), ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, ''), ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, ''), ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, ''), ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, ''), ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, ''), ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, ''), ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, ''), ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, ''), ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, ''), ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, ''), ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, ''), ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, ''), ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, ''), ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, ''), ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, ''), ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, ''), ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, ''), ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, ''), ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, ''), ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, ''), ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, ''), ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, ''), ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, ''), ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, ''), ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, ''), ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, ''), ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, ''), ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, ''), ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, ''), ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, ''), ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, ''), ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, ''), ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, ''), ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, ''), ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, ''), ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, ''), ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, ''), ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, ''), ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, ''), ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, ''), ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, ''), ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, ''), ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, ''), ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, ''), ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, ''), ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, ''), ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, ''), ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, ''), ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, ''), ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, ''), ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, ''), ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, ''), ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, ''), ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, ''), ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, ''), ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, ''), ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, ''), ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, ''), ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, ''), ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, ''), ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, ''), ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, ''), ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, ''), ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, ''), ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, ''), ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, ''), ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, ''), ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, ''), ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, ''), ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, ''), ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, ''), ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, ''), ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, ''), ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, ''), ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, ''), ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, ''), ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, ''), ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, ''), ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, ''), ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, ''), ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, ''), ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, ''), ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, ''), ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, ''), ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, ''), ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, ''), ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, ''), ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, ''), ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, ''), ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, ''), ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, ''), ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, ''), ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, ''), ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, ''), ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, ''), ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, ''), ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, ''), ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, ''), ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, ''), ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, ''), ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, ''), ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, ''), ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, ''), ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, ''), ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, ''), ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, ''), ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, ''), ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, ''), ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, ''), ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, ''), ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, ''), ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, ''), ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, ''), ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, ''), ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, ''), ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, ''), ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, ''), ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, ''), ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, ''), ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, ''), ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, ''), ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, ''), ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, ''), ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, ''), ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, ''), ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, ''), ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, ''), ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, ''), ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, ''), ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, ''), ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, ''), ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, ''), ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, ''), ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, ''), ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, ''), ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, ''), ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, ''), ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, ''), ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, ''), ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, ''), ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, ''), ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, ''), ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, ''), ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, ''), ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, ''), ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, ''), ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, ''), ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, ''), ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, ''), ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, ''), ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, ''), ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, ''), ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, ''), ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, ''), ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, ''), ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO `blade_region` VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, ''), ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, ''), ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, ''), ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, ''), ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, ''), ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, ''), ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, ''), ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, ''), ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, ''), ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, ''), ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, ''), ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, ''), ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, ''), ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, ''), ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, ''), ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, ''), ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, ''), ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, ''), ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, ''), ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, ''), ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, ''), ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, ''), ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, ''), ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, ''), ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, ''), ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, ''), ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, ''), ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, ''), ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, ''), ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, ''), ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, ''), ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, ''), ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, ''), ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, ''), ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, ''), ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, ''), ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, ''), ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, ''), ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, ''), ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, ''), ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, ''), ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, ''), ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, ''), ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, ''), ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, ''), ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, ''), ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, ''), ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, ''), ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, ''), ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, ''), ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, ''), ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, ''), ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, ''), ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, ''), ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, ''), ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, ''), ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, ''), ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, ''), ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, ''), ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, ''), ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, ''), ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, ''), ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, ''), ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, ''), ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, ''), ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, ''), ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, ''), ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, ''), ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, ''), ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, ''), ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, ''), ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, ''), ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, ''), ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, ''), ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, ''), ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, ''), ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, ''), ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, ''), ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, ''), ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, ''), ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, ''), ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, ''), ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, ''), ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, ''), ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, ''), ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, ''), ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, ''), ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, ''), ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, ''), ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, ''), ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, ''), ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, ''), ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, ''), ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, ''), ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, ''), ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, ''), ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, ''), ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, ''), ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, ''), ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, ''), ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, ''), ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, ''), ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, ''), ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, ''), ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, ''), ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, ''), ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, ''), ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, ''), ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, ''), ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, ''), ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, ''), ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, ''), ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, ''), ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, ''), ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, ''), ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, ''), ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, ''), ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, ''), ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, ''), ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, ''), ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, ''), ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, ''), ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, ''), ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, ''), ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, ''), ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, ''), ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, ''), ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, ''), ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, ''), ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, ''), ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, ''), ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, ''), ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, ''), ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, ''), ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, ''), ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, ''), ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, ''), ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, ''), ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, ''), ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, ''), ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, ''), ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, ''), ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, ''), ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, ''), ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, ''), ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, ''), ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, ''), ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, ''), ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, ''), ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, ''), ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, ''), ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, ''), ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, ''), ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, ''), ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, ''), ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, ''), ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, ''), ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, ''), ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, ''), ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, ''), ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, ''), ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, ''), ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, ''), ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, ''), ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, ''), ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, ''), ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, ''), ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, ''), ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, ''), ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, ''), ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, ''), ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, ''), ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, ''), ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, ''), ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, ''), ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, ''), ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, ''), ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, ''), ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, ''), ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, ''), ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, ''), ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, ''), ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, ''), ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, ''), ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, ''), ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, ''), ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, ''), ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, ''), ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, ''), ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, ''), ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, ''), ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, ''), ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, ''), ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, ''), ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, ''), ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, ''), ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, ''), ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, ''), ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, ''), ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, ''), ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, ''), ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, ''), ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, ''), ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, ''), ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, ''), ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, ''), ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, ''), ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, ''), ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, ''), ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, ''), ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, ''), ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, ''), ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, ''), ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, ''), ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, ''), ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, ''), ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, ''), ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, ''), ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, ''), ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, ''), ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, ''), ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, ''), ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, ''), ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, ''), ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, ''), ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, ''), ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, ''), ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, ''), ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, ''), ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, ''), ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, ''), ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, ''), ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, ''), ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, ''), ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, ''), ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, ''), ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, ''), ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, ''), ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, ''), ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, ''), ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, ''), ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, ''), ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, ''), ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, ''), ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, ''), ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, ''), ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, ''), ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, ''), ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, ''), ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, ''), ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, ''), ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, ''), ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, ''), ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, ''), ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, ''), ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, ''), ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, ''), ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, ''), ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, ''), ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, ''), ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, ''), ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, ''), ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, ''), ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, ''), ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, ''), ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, ''), ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, ''), ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, ''), ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, ''), ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, ''), ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, ''), ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, ''), ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, ''), ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, ''), ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, ''), ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, ''), ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, ''), ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, ''), ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, ''), ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, ''), ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, ''), ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, ''), ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, ''), ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, ''), ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, ''), ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, ''), ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, ''), ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, ''), ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, ''), ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, ''), ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, ''), ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, ''), ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, ''), ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, ''), ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, ''), ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, ''), ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, ''), ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, ''), ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, ''), ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, ''), ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, ''), ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, ''), ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, ''), ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, ''), ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, ''), ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, ''), ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, ''), ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, ''), ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, ''), ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, ''), ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, ''), ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, ''), ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, ''), ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, ''), ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, ''), ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, ''), ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, ''), ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, ''), ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, ''), ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, ''), ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, ''), ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, ''), ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, ''), ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, ''), ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, ''), ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, ''), ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, ''), ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, ''), ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, ''), ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, ''), ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, ''), ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, ''), ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, ''), ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, ''), ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, ''), ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, ''), ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, ''), ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, ''), ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, ''), ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, ''), ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, ''), ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, ''), ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, ''), ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, ''), ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, ''), ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, ''), ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, ''), ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, ''), ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, ''), ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, ''), ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, ''), ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, ''), ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, ''), ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, ''), ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, ''), ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, ''), ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, ''), ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, ''), ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, ''), ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, ''), ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, ''), ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, ''), ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, ''), ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, ''), ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, ''), ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, ''), ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, ''), ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, ''), ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, ''), ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, ''), ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, ''), ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, ''), ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, ''), ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, ''), ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, ''), ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, ''), ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, ''), ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, ''), ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, ''), ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, ''), ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, ''), ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, ''), ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, ''), ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, ''), ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, ''), ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, ''), ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, ''), ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, ''), ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, ''), ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, ''), ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, ''), ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, ''), ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, ''), ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, ''), ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, ''), ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, ''), ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, ''), ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, ''), ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, ''), ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, ''), ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, ''), ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, ''), ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, ''), ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, ''), ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, ''), ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, ''), ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, ''), ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, ''), ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, ''), ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, ''), ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, ''), ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, ''), ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, ''), ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, ''), ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, ''), ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, ''), ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, ''), ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, ''), ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, ''), ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, ''), ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, ''), ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, ''), ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, ''), ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, ''), ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, ''), ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, ''), ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, ''), ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, ''), ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, ''), ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, ''), ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, ''), ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, ''), ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, ''), ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, ''), ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, ''), ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, ''), ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, ''), ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, ''), ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, ''), ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, ''); +INSERT INTO `blade_region` VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, ''), ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, ''), ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, ''), ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, ''), ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, ''), ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, ''), ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, ''), ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, ''), ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, ''), ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, ''), ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, ''), ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, ''), ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, ''), ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, ''), ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, ''), ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, ''), ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, ''), ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, ''), ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, ''), ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, ''), ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, ''), ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, ''), ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, ''), ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, ''), ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, ''), ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, ''), ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, ''), ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, ''), ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, ''), ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, ''), ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, ''), ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, ''), ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, ''), ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, ''), ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, ''), ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, ''), ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, ''), ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, ''), ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, ''), ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, ''), ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, ''), ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, ''), ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, ''), ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, ''), ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, ''), ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, ''), ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, ''), ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, ''), ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, ''), ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, ''), ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, ''), ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, ''), ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, ''), ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, ''), ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, ''), ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, ''), ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, ''), ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, ''), ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, ''), ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, ''), ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, ''), ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, ''), ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, ''), ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, ''), ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, ''), ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, ''), ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, ''), ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, ''), ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, ''), ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, ''), ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, ''), ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, ''), ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, ''), ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, ''), ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, ''), ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, ''), ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, ''), ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, ''), ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, ''), ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, ''), ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, ''), ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, ''), ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, ''), ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, ''), ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, ''), ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, ''), ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, ''), ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, ''), ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, ''), ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, ''), ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, ''), ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, ''), ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, ''), ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, ''), ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, ''), ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, ''), ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, ''), ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, ''), ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, ''), ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, ''), ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, ''), ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, ''), ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, ''), ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, ''), ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, ''), ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, ''), ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, ''), ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, ''), ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, ''), ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, ''), ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, ''), ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, ''), ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, ''), ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, ''), ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, ''), ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, ''), ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, ''), ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, ''), ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, ''), ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, ''), ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, ''), ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, ''), ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, ''), ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, ''), ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, ''), ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, ''), ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, ''), ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, ''), ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, ''), ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, ''), ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, ''), ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, ''), ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, ''), ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, ''), ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, ''), ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, ''), ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, ''), ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, ''), ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, ''), ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, ''), ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, ''), ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, ''), ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, ''), ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, ''), ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, ''), ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, ''), ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, ''), ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, ''), ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, ''), ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, ''), ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, ''), ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, ''), ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, ''), ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, ''), ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, ''), ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, ''), ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, ''), ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, ''), ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, ''), ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, ''), ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, ''), ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, ''), ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, ''), ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, ''), ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, ''), ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, ''), ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, ''), ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, ''), ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, ''), ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, ''), ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, ''), ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, ''), ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, ''), ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, ''), ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, ''), ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, ''), ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, ''), ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, ''), ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, ''), ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, ''), ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, ''), ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, ''), ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, ''), ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, ''), ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, ''), ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, ''), ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, ''), ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, ''), ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, ''), ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, ''), ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, ''), ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, ''), ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, ''), ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, ''), ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, ''), ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, ''), ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, ''), ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, ''), ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, ''), ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, ''), ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, ''), ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, ''), ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, ''), ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, ''), ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, ''), ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, ''), ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, ''), ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, ''), ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, ''), ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, ''), ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, ''), ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, ''), ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, ''), ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, ''), ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, ''), ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, ''), ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, ''), ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, ''), ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, ''), ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, ''), ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, ''), ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, ''), ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, ''), ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, ''), ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, ''), ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, ''), ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, ''), ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, ''), ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, ''), ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, ''), ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, ''), ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, ''), ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, ''), ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, ''), ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, ''), ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, ''), ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, ''), ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, ''), ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, ''), ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, ''), ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, ''), ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, ''), ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, ''), ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, ''), ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, ''), ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, ''), ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, ''), ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, ''), ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, ''), ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, ''), ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, ''), ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, ''), ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, ''), ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, ''), ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, ''), ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, ''), ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, ''), ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, ''), ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, ''), ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, ''), ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, ''), ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, ''), ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, ''), ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, ''), ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, ''), ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, ''), ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, ''), ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, ''), ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, ''), ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, ''), ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, ''), ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, ''), ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, ''), ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, ''), ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, ''), ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, ''), ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, ''), ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, ''), ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, ''), ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, ''), ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, ''), ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, ''), ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, ''), ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, ''), ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, ''), ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, ''), ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, ''), ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, ''), ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, ''), ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, ''), ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, ''), ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, ''), ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, ''), ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, ''), ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, ''), ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, ''), ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, ''), ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, ''), ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, ''), ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, ''), ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, ''), ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, ''), ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, ''), ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, ''), ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, ''), ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, ''), ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, ''), ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, ''), ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, ''), ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, ''), ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, ''), ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, ''), ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, ''), ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, ''), ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, ''), ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, ''), ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, ''), ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, ''), ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, ''), ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, ''), ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, ''), ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, ''), ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, ''), ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, ''), ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, ''), ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, ''), ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, ''), ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, ''), ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, ''), ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, ''), ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, ''), ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, ''), ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, ''), ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, ''), ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, ''), ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, ''), ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, ''), ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, ''), ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, ''), ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, ''), ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, ''), ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, ''), ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, ''), ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, ''), ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, ''), ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, ''), ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, ''), ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, ''), ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, ''), ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, ''), ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, ''), ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, ''), ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, ''), ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, ''), ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, ''), ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, ''), ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''), ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_report_file +-- ---------------------------- +DROP TABLE IF EXISTS `blade_report_file`; +CREATE TABLE `blade_report_file` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '文件名', + `content` mediumblob NULL COMMENT '文件内容', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '报表文件表'; + +-- ---------------------------- +-- Records of blade_report_file +-- ---------------------------- +BEGIN; +INSERT INTO `blade_report_file` VALUES (1291947054502789121, 'notice.ureport.xml', 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313331222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E, '2020-08-08 11:59:16', '2020-08-08 13:05:02', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role +-- ---------------------------- +DROP TABLE IF EXISTS `blade_role`; +CREATE TABLE `blade_role` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父主键', + `role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名', + `sort` int(11) NULL DEFAULT NULL COMMENT '排序', + `role_alias` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色别名', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色表'; + +-- ---------------------------- +-- Records of blade_role +-- ---------------------------- +BEGIN; +INSERT INTO `blade_role` VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0), (1123598816738675202, '000000', 0, '用户', 2, 'user', 0), (1123598816738675203, '000000', 1123598816738675202, '人事', 1, 'hr', 0), (1123598816738675204, '000000', 1123598816738675202, '经理', 2, 'manager', 0), (1123598816738675205, '000000', 1123598816738675202, '老板', 3, 'boss', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS `blade_role_menu`; +CREATE TABLE `blade_role_menu` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单id', + `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色菜单关联表'; + +-- ---------------------------- +-- Records of blade_role_menu +-- ---------------------------- +BEGIN; +INSERT INTO `blade_role_menu` VALUES (1123598817738675363, 1123598815738675201, 1123598816738675202), (1123598817738675364, 1123598815738675202, 1123598816738675202), (1123598817738675365, 1123598815738675219, 1123598816738675202), (1123598817738675366, 1123598815738675220, 1123598816738675202), (1123598817738675367, 1123598815738675221, 1123598816738675202), (1123598817738675368, 1123598815738675222, 1123598816738675202), (1123598817738675369, 1123598815738675280, 1123598816738675202), (1123598817738675370, 1123598815738675281, 1123598816738675202), (1123598817738675371, 1123598815738675282, 1123598816738675202), (1123598817738675372, 1123598815738675283, 1123598816738675202), (1123598817738675373, 1123598815738675284, 1123598816738675202), (1123598817738675374, 1123598815738675285, 1123598816738675202), (1123598817738675375, 1123598815738675286, 1123598816738675202), (1123598817738675376, 1123598815738675287, 1123598816738675202), (1123598817738675377, 1123598815738675288, 1123598816738675202), (1123598817738675378, 1123598815738675289, 1123598816738675202), (1123598817738675379, 1123598815738675290, 1123598816738675202), (1123598817738675380, 1123598815738675291, 1123598816738675202), (1123598817738675381, 1123598815738675292, 1123598816738675202), (1123598817738675382, 1123598815738675293, 1123598816738675202), (1123598817738675383, 1123598815738675294, 1123598816738675202), (1123598817738675384, 1123598815738675295, 1123598816738675202), (1123598817738675385, 1123598815738675296, 1123598816738675202), (1123598817738675386, 1123598815738675297, 1123598816738675202), (1123598817738675387, 1123598815738675201, 1123598816738675203), (1123598817738675388, 1123598815738675202, 1123598816738675203), (1123598817738675389, 1123598815738675219, 1123598816738675203), (1123598817738675390, 1123598815738675220, 1123598816738675203), (1123598817738675391, 1123598815738675221, 1123598816738675203), (1123598817738675392, 1123598815738675222, 1123598816738675203), (1123598817738675393, 1123598815738675280, 1123598816738675203), (1123598817738675394, 1123598815738675281, 1123598816738675203), (1123598817738675395, 1123598815738675282, 1123598816738675203), (1123598817738675396, 1123598815738675283, 1123598816738675203), (1123598817738675397, 1123598815738675284, 1123598816738675203), (1123598817738675398, 1123598815738675285, 1123598816738675203), (1123598817738675399, 1123598815738675286, 1123598816738675203), (1123598817738675400, 1123598815738675287, 1123598816738675203), (1123598817738675401, 1123598815738675288, 1123598816738675203), (1123598817738675402, 1123598815738675289, 1123598816738675203), (1123598817738675403, 1123598815738675290, 1123598816738675203), (1123598817738675404, 1123598815738675291, 1123598816738675203), (1123598817738675405, 1123598815738675292, 1123598816738675203), (1123598817738675406, 1123598815738675293, 1123598816738675203), (1123598817738675407, 1123598815738675294, 1123598816738675203), (1123598817738675408, 1123598815738675295, 1123598816738675203), (1123598817738675409, 1123598815738675296, 1123598816738675203), (1123598817738675410, 1123598815738675297, 1123598816738675203), (1123598817738675411, 1123598815738675201, 1123598816738675204), (1123598817738675412, 1123598815738675202, 1123598816738675204), (1123598817738675413, 1123598815738675219, 1123598816738675204), (1123598817738675414, 1123598815738675220, 1123598816738675204), (1123598817738675415, 1123598815738675221, 1123598816738675204), (1123598817738675416, 1123598815738675222, 1123598816738675204), (1123598817738675417, 1123598815738675280, 1123598816738675204), (1123598817738675418, 1123598815738675281, 1123598816738675204), (1123598817738675419, 1123598815738675282, 1123598816738675204), (1123598817738675420, 1123598815738675283, 1123598816738675204), (1123598817738675421, 1123598815738675284, 1123598816738675204), (1123598817738675422, 1123598815738675285, 1123598816738675204), (1123598817738675423, 1123598815738675286, 1123598816738675204), (1123598817738675424, 1123598815738675287, 1123598816738675204), (1123598817738675425, 1123598815738675288, 1123598816738675204), (1123598817738675426, 1123598815738675289, 1123598816738675204), (1123598817738675427, 1123598815738675290, 1123598816738675204), (1123598817738675428, 1123598815738675291, 1123598816738675204), (1123598817738675429, 1123598815738675292, 1123598816738675204), (1123598817738675430, 1123598815738675293, 1123598816738675204), (1123598817738675431, 1123598815738675294, 1123598816738675204), (1123598817738675432, 1123598815738675295, 1123598816738675204), (1123598817738675433, 1123598815738675296, 1123598816738675204), (1123598817738675434, 1123598815738675297, 1123598816738675204), (1123598817738675435, 1123598815738675201, 1123598816738675205), (1123598817738675436, 1123598815738675202, 1123598816738675205), (1123598817738675437, 1123598815738675219, 1123598816738675205), (1123598817738675438, 1123598815738675220, 1123598816738675205), (1123598817738675439, 1123598815738675221, 1123598816738675205), (1123598817738675440, 1123598815738675222, 1123598816738675205), (1123598817738675441, 1123598815738675280, 1123598816738675205), (1123598817738675442, 1123598815738675281, 1123598816738675205), (1123598817738675443, 1123598815738675282, 1123598816738675205), (1123598817738675444, 1123598815738675283, 1123598816738675205), (1123598817738675445, 1123598815738675284, 1123598816738675205), (1123598817738675446, 1123598815738675285, 1123598816738675205), (1123598817738675447, 1123598815738675286, 1123598816738675205), (1123598817738675448, 1123598815738675287, 1123598816738675205), (1123598817738675449, 1123598815738675288, 1123598816738675205), (1123598817738675450, 1123598815738675289, 1123598816738675205), (1123598817738675451, 1123598815738675290, 1123598816738675205), (1123598817738675452, 1123598815738675291, 1123598816738675205), (1123598817738675453, 1123598815738675292, 1123598816738675205), (1123598817738675454, 1123598815738675293, 1123598816738675205), (1123598817738675455, 1123598815738675294, 1123598816738675205), (1123598817738675456, 1123598815738675295, 1123598816738675205), (1123598817738675457, 1123598815738675296, 1123598816738675205), (1123598817738675458, 1123598815738675297, 1123598816738675205), (1149888292426575874, 1123598815738675201, 1123598816738675201), (1149888292476907522, 1123598815738675202, 1123598816738675201), (1149888292489490433, 1123598815738675219, 1123598816738675201), (1149888292502073345, 1123598815738675220, 1123598816738675201), (1149888292518850561, 1123598815738675221, 1123598816738675201), (1149888292535627777, 1123598815738675222, 1123598816738675201), (1149888292548210690, 1123598815738675280, 1123598816738675201), (1149888292560793602, 1123598815738675281, 1123598816738675201), (1149888292577570817, 1123598815738675282, 1123598816738675201), (1149888292594348033, 1123598815738675283, 1123598816738675201), (1149888292611125249, 1123598815738675284, 1123598816738675201), (1149888292623708162, 1123598815738675285, 1123598816738675201), (1149888292640485377, 1123598815738675286, 1123598816738675201), (1149888292653068289, 1123598815738675287, 1123598816738675201), (1149888292669845506, 1123598815738675288, 1123598816738675201), (1149888292682428417, 1123598815738675289, 1123598816738675201), (1149888292699205634, 1123598815738675290, 1123598816738675201), (1149888292711788545, 1123598815738675291, 1123598816738675201), (1149888292724371458, 1123598815738675292, 1123598816738675201), (1149888292741148674, 1123598815738675293, 1123598816738675201), (1149888292753731585, 1123598815738675294, 1123598816738675201), (1149888292766314497, 1123598815738675295, 1123598816738675201), (1149888292778897410, 1123598815738675296, 1123598816738675201), (1149888292791480321, 1123598815738675297, 1123598816738675201), (1149888292808257537, 1123598815738675210, 1123598816738675201), (1149888292820840449, 1123598815738675211, 1123598816738675201), (1149888292833423362, 1123598815738675212, 1123598816738675201), (1149888292846006274, 1123598815738675213, 1123598816738675201), (1149888292862783489, 1123598815738675214, 1123598816738675201), (1149888292875366401, 1123598815738675249, 1123598816738675201), (1149888292887949313, 1123598815738675215, 1123598816738675201), (1149888292904726530, 1123598815738675250, 1123598816738675201), (1149888292917309442, 1123598815738675216, 1123598816738675201), (1149888292929892353, 1123598815738675251, 1123598816738675201), (1149888292942475265, 1123598815738675217, 1123598816738675201), (1149888292959252482, 1123598815738675218, 1123598816738675201), (1149888292971835393, 1123598815738675252, 1123598816738675201), (1149888292984418306, 1123598815738675253, 1123598816738675201), (1149888292997001217, 1123598815738675254, 1123598816738675201), (1149888293009584129, 1123598815738675255, 1123598816738675201), (1149888293026361346, 1123598815738675266, 1123598816738675201), (1149888293043138562, 1123598815738675267, 1123598816738675201), (1149888293055721473, 1123598815738675268, 1123598816738675201), (1149888293072498690, 1123598815738675269, 1123598816738675201), (1149888293089275906, 1123598815738675270, 1123598816738675201), (1149888293101858817, 1123598815738675271, 1123598816738675201), (1149888293114441729, 1123598815738675272, 1123598816738675201), (1149888293127024642, 1123598815738675273, 1123598816738675201), (1149888293139607554, 1123598815738675274, 1123598816738675201), (1149888293152190465, 1123598815738675275, 1123598816738675201), (1149888293164773377, 1123598815738675276, 1123598816738675201), (1149888293177356290, 1123598815738675277, 1123598816738675201), (1149888293189939201, 1123598815738675278, 1123598816738675201), (1149888293202522113, 1123598815738675279, 1123598816738675201), (1149888293215105026, 1123598815738675298, 1123598816738675201), (1149888293227687938, 1123598815738675299, 1123598816738675201), (1149888293240270850, 1123598815738675301, 1123598816738675201), (1149888293252853762, 1123598815738675302, 1123598816738675201), (1149888293265436674, 1123598815738675303, 1123598816738675201), (1149888293278019586, 1123598815738675304, 1123598816738675201), (1149888293290602497, 1123598815738675305, 1123598816738675201), (1149888293303185410, 1123598815738675307, 1123598816738675201), (1149888293315768322, 1123598815738675308, 1123598816738675201), (1149888293328351234, 1123598815738675241, 1123598816738675201), (1149888293336739841, 1123598815738675242, 1123598816738675201), (1149888293349322753, 1123598815738675243, 1123598816738675201), (1149888293361905666, 1123598815738675244, 1123598816738675201), (1149888293374488578, 1123598815738675309, 1123598816738675201), (1149888293387071489, 1123598815738675310, 1123598816738675201), (1149888293399654402, 1123598815738675311, 1123598816738675201), (1149888293412237313, 1123598815738675312, 1123598816738675201), (1149888293424820226, 1123598815738675203, 1123598816738675201), (1149888293454180354, 1123598815738675204, 1123598816738675201), (1149888293483540481, 1123598815738675223, 1123598816738675201), (1149888293512900609, 1123598815738675224, 1123598816738675201), (1149888293529677826, 1123598815738675225, 1123598816738675201), (1149888293554843649, 1123598815738675226, 1123598816738675201), (1149888293571620866, 1123598815738675227, 1123598816738675201), (1149888293588398081, 1123598815738675228, 1123598816738675201), (1149888293605175297, 1123598815738675205, 1123598816738675201), (1149888293617758209, 1123598815738675229, 1123598816738675201), (1149888293630341121, 1123598815738675230, 1123598816738675201), (1149888293642924033, 1123598815738675231, 1123598816738675201), (1149888293659701250, 1123598815738675232, 1123598816738675201), (1149888293672284162, 1123598815738675206, 1123598816738675201), (1149888293684867074, 1123598815738675233, 1123598816738675201), (1149888293697449986, 1123598815738675234, 1123598816738675201), (1149888293710032897, 1123598815738675235, 1123598816738675201), (1149888293722615809, 1123598815738675236, 1123598816738675201), (1149888293735198722, 1123598815738675207, 1123598816738675201), (1149888293747781633, 1123598815738675237, 1123598816738675201), (1149888293760364545, 1123598815738675238, 1123598816738675201), (1149888293772947458, 1123598815738675239, 1123598816738675201), (1149888293785530370, 1123598815738675240, 1123598816738675201), (1149888293798113282, 1123598815738675306, 1123598816738675201), (1149888293810696194, 1123598815738675208, 1123598816738675201), (1149888293819084802, 1123598815738675313, 1123598816738675201), (1149888293831667714, 1123598815738675314, 1123598816738675201), (1149888293844250626, 1123598815738675315, 1123598816738675201), (1149888293856833538, 1123598815738675316, 1123598816738675201), (1149888293856833539, 1123598815738675317, 1123598816738675201), (1149888293869416450, 1123598815738675209, 1123598816738675201), (1149888293881999362, 1123598815738675245, 1123598816738675201), (1149888293894582274, 1123598815738675246, 1123598816738675201), (1149888293907165186, 1123598815738675247, 1123598816738675201), (1149888293919748097, 1123598815738675248, 1123598816738675201), (1149888293932331010, 1123598815738675256, 1123598816738675201), (1149888293940719618, 1123598815738675257, 1123598816738675201), (1149888293953302530, 1123598815738675258, 1123598816738675201), (1149888293965885441, 1123598815738675259, 1123598816738675201), (1149888293978468354, 1123598815738675260, 1123598816738675201), (1149888293986856962, 1123598815738675261, 1123598816738675201), (1149888293999439874, 1123598815738675262, 1123598816738675201), (1149888294007828482, 1123598815738675263, 1123598816738675201), (1149888294020411393, 1123598815738675264, 1123598816738675201), (1149888294028800002, 1123598815738675265, 1123598816738675201), (1161272593873322991, 1161272593873321991, 1123598816738675201), (1161272593873322992, 1161272593873321992, 1123598816738675201), (1161272593873322993, 1161272593873321993, 1123598816738675201), (1161272593873322994, 1161272593873321994, 1123598816738675201), (1161272593873322995, 1161272593873321995, 1123598816738675201), (1161272693873322991, 1164733369658963251, 1123598816738675201), (1161272693873322992, 1164733369658963252, 1123598816738675201), (1161272693873322993, 1164733369658963253, 1123598816738675201), (1161272693873322994, 1164733369658963254, 1123598816738675201), (1161272693873322995, 1164733369658963255, 1123598816738675201), (1161272793873322991, 1164733379658963251, 1123598816738675201), (1161272793873322992, 1164733379658963252, 1123598816738675201), (1161272793873322993, 1164733379658963253, 1123598816738675201), (1161272793873322994, 1164733379658963254, 1123598816738675201), (1161272793873322995, 1164733379658963255, 1123598816738675201), (1161272893873222991, 1164733389658962251, 1123598816738675201), (1161272893873222992, 1164733389658962252, 1123598816738675201), (1161272893873222993, 1164733389658962253, 1123598816738675201), (1161272893873222994, 1164733389658962254, 1123598816738675201), (1161272893873222995, 1164733389658962255, 1123598816738675201), (1161272893873222996, 1164733389658962256, 1123598816738675201), (1161272893873322991, 1164733389658963251, 1123598816738675201), (1161272893875225001, 1164733389668962251, 1123598816738675201), (1161272893875225002, 1164733389668962252, 1123598816738675201), (1161272893875225003, 1164733389668962253, 1123598816738675201), (1161272893875225004, 1164733389668962254, 1123598816738675201), (1161272893875225005, 1164733389668962255, 1123598816738675201), (1161272893875225006, 1164733389668962256, 1123598816738675201), (1161272893875226001, 1164733399668962201, 1123598816738675201), (1161272893875226002, 1164733399668962202, 1123598816738675201), (1161272893875226003, 1164733399668962203, 1123598816738675201), (1161272893875226004, 1164733399668962204, 1123598816738675201), (1161272893875226005, 1164733399668962205, 1123598816738675201), (1161272893875226006, 1164733399668962206, 1123598816738675201), (1161272893875226007, 1164733399668962207, 1123598816738675201), (1161272893875227001, 1164733399669962201, 1123598816738675201), (1161272893875227002, 1164733399669962202, 1123598816738675201), (1161272893875227003, 1164733399669962203, 1123598816738675201), (1161272893875227004, 1164733399669962204, 1123598816738675201), (1161272893875228001, 1164733399669962301, 1123598816738675201), (1161272893875228002, 1164733399669962302, 1123598816738675201), (1161272893875228003, 1164733399669962303, 1123598816738675201), (1161272893875228004, 1164733399669962304, 1123598816738675201); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role_scope +-- ---------------------------- +DROP TABLE IF EXISTS `blade_role_scope`; +CREATE TABLE `blade_role_scope` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `scope_category` int(2) NULL DEFAULT NULL COMMENT '权限类型(1:数据权限、2:接口权限)', + `scope_id` bigint(20) NULL DEFAULT NULL COMMENT '权限id', + `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色id', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色数据权限关联表'; + +-- ---------------------------- +-- Table structure for blade_scope_api +-- ---------------------------- +DROP TABLE IF EXISTS `blade_scope_api`; +CREATE TABLE `blade_scope_api` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键', + `resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号', + `scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限名', + `scope_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限地址', + `scope_type` int(2) NULL DEFAULT NULL COMMENT '接口权限类型', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口权限备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '接口权限表'; + +-- ---------------------------- +-- Table structure for blade_scope_data +-- ---------------------------- +DROP TABLE IF EXISTS `blade_scope_data`; +CREATE TABLE `blade_scope_data` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键', + `resource_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号', + `scope_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限名称', + `scope_field` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段', + `scope_class` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限类名', + `scope_column` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限字段', + `scope_type` int(2) NULL DEFAULT NULL COMMENT '数据权限类型', + `scope_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限值域', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '数据权限备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据权限表'; + +-- ---------------------------- +-- Table structure for blade_sms +-- ---------------------------- +DROP TABLE IF EXISTS `blade_sms`; +CREATE TABLE `blade_sms` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `category` int(2) NULL DEFAULT NULL COMMENT '分类', + `sms_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '资源编号', + `template_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板ID', + `access_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'accessKey', + `secret_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'secretKey', + `region_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'regionId', + `sign_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短信签名', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短信配置表'; + +-- ---------------------------- +-- Table structure for blade_tenant +-- ---------------------------- +DROP TABLE IF EXISTS `blade_tenant`; +CREATE TABLE `blade_tenant` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `tenant_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '租户名称', + `domain_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址', + `background_url` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '系统背景', + `linkman` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系人', + `contact_number` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系电话', + `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '联系地址', + `account_number` int(11) NULL DEFAULT -1 COMMENT '账号额度', + `expire_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间', + `package_id` bigint(20) NULL DEFAULT NULL COMMENT '产品包ID', + `datasource_id` bigint(20) NULL DEFAULT NULL COMMENT '数据源ID', + `license_key` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权码', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户表'; + +-- ---------------------------- +-- Records of blade_tenant +-- ---------------------------- +BEGIN; +INSERT INTO `blade_tenant` VALUES (1123598820738675201, '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', -1, NULL, NULL, NULL, NULL, 1123598821738675201, 1123598813738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_tenant_package +-- ---------------------------- +DROP TABLE IF EXISTS `blade_tenant_package`; +CREATE TABLE `blade_tenant_package` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `package_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '产品包名', + `menu_id` varchar(3000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单ID', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '租户产品表'; + +-- ---------------------------- +-- Table structure for blade_top_menu +-- ---------------------------- +DROP TABLE IF EXISTS `blade_top_menu`; +CREATE TABLE `blade_top_menu` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户id', + `code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单编号', + `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单名', + `source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '顶部菜单资源', + `sort` int(2) NULL DEFAULT NULL COMMENT '顶部菜单排序', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT NULL COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '顶部菜单表'; + +-- ---------------------------- +-- Table structure for blade_top_menu_setting +-- ---------------------------- +DROP TABLE IF EXISTS `blade_top_menu_setting`; +CREATE TABLE `blade_top_menu_setting` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `top_menu_id` bigint(20) NULL DEFAULT NULL COMMENT '顶部菜单主键', + `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单主键', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '顶部菜单配置表'; + +-- ---------------------------- +-- Table structure for blade_user +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user`; +CREATE TABLE `blade_user` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '000000' COMMENT '租户ID', + `code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户编号', + `user_type` int(2) NULL DEFAULT NULL COMMENT '用户平台', + `account` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号', + `password` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码', + `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '昵称', + `real_name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '真名', + `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `email` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱', + `phone` varchar(45) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机', + `birthday` datetime(0) NULL DEFAULT NULL COMMENT '生日', + `sex` int(2) NULL DEFAULT NULL COMMENT '性别', + `role_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色id', + `dept_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '部门id', + `post_id` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '岗位id', + `create_user` bigint(20) NULL DEFAULT NULL COMMENT '创建人', + `create_dept` bigint(20) NULL DEFAULT NULL COMMENT '创建部门', + `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间', + `update_user` bigint(20) NULL DEFAULT NULL COMMENT '修改人', + `update_time` datetime(0) NULL DEFAULT NULL COMMENT '修改时间', + `status` int(2) NULL DEFAULT NULL COMMENT '状态', + `is_deleted` int(2) NULL DEFAULT 0 COMMENT '是否已删除', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表'; + +-- ---------------------------- +-- Records of blade_user +-- ---------------------------- +BEGIN; +INSERT INTO `blade_user` VALUES (1123598821738675201, '000000', NULL, 1, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://bladex.cn/images/logo.png', 'admin@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0), (1123598821738675202, '000000', NULL, 1, 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', '', 'hr@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675203', '1123598813738675202', '1123598817738675207', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:10', 1123598821738675201, '2019-04-27 17:03:10', 1, 0), (1123598821738675203, '000000', NULL, 1, 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', '', 'manager@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675204', '1123598813738675202', '1123598817738675206', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:38', 1123598821738675201, '2019-04-27 17:03:38', 1, 0), (1123598821738675204, '000000', NULL, 1, 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', '', 'boss@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675205', '1123598813738675202', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:55', 1123598821738675201, '2019-04-27 17:03:55', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_user_app +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user_app`; +CREATE TABLE `blade_user_app` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID', + `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表'; + +-- ---------------------------- +-- Table structure for blade_user_dept +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user_dept`; +CREATE TABLE `blade_user_dept` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID', + `dept_id` bigint(20) NULL DEFAULT 0 COMMENT '部门ID', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户部门表'; + +-- ---------------------------- +-- Records of blade_user_dept +-- ---------------------------- +BEGIN; +INSERT INTO `blade_user_dept` VALUES (1203503640757788674, 1123598821738675201, 1123598813738675201), (1203503653323923458, 1123598821738675202, 1123598813738675202), (1203503663402835969, 1123598821738675203, 1123598813738675202), (1203503672911323137, 1123598821738675204, 1123598813738675202); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_user_oauth +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user_oauth`; +CREATE TABLE `blade_user_oauth` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '租户ID', + `uuid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方系统用户ID', + `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID', + `username` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '账号', + `nickname` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名', + `avatar` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像', + `blog` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '应用主页', + `company` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '公司名', + `location` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '地址', + `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮件', + `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注', + `gender` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '性别', + `source` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户第三方认证表'; + +-- ---------------------------- +-- Table structure for blade_user_other +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user_other`; +CREATE TABLE `blade_user_other` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID', + `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表'; + +-- ---------------------------- +-- Table structure for blade_user_web +-- ---------------------------- +DROP TABLE IF EXISTS `blade_user_web`; +CREATE TABLE `blade_user_web` ( + `id` bigint(20) NOT NULL COMMENT '主键', + `user_id` bigint(20) NULL DEFAULT 0 COMMENT '用户ID', + `user_ext` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户拓展信息', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户平台拓展表'; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/doc/sql/bladex/bladex.oracle.all.create.sql b/doc/sql/bladex/bladex.oracle.all.create.sql new file mode 100644 index 0000000..acbc1a0 --- /dev/null +++ b/doc/sql/bladex/bladex.oracle.all.create.sql @@ -0,0 +1,5843 @@ +/* + Navicat Premium Data Transfer + + Source Server : oracle_localhost + Source Server Type : Oracle + Source Server Version : 110200 + Source Host : 127.0.0.1:1521 + Source Schema : BLADEX + + Target Server Type : Oracle + Target Server Version : 110200 + File Encoding : 65001 + + Date: 01/01/2024 10:15:52 +*/ + + +-- ---------------------------- +-- Table structure for BLADE_ATTACH +-- ---------------------------- +--DROP TABLE "BLADE_ATTACH"; +CREATE TABLE "BLADE_ATTACH" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "LINK" VARCHAR2(1000 BYTE) , + "DOMAIN_URL" VARCHAR2(500 BYTE) , + "NAME" VARCHAR2(500 BYTE) , + "ORIGINAL_NAME" VARCHAR2(500 BYTE) , + "EXTENSION" VARCHAR2(12 BYTE) , + "ATTACH_SIZE" NUMBER(20) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_ATTACH"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_ATTACH"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_ATTACH"."LINK" IS '附件地址'; +COMMENT ON COLUMN "BLADE_ATTACH"."DOMAIN_URL" IS '附件域名'; +COMMENT ON COLUMN "BLADE_ATTACH"."NAME" IS '附件名称'; +COMMENT ON COLUMN "BLADE_ATTACH"."ORIGINAL_NAME" IS '附件原名'; +COMMENT ON COLUMN "BLADE_ATTACH"."EXTENSION" IS '附件拓展名'; +COMMENT ON COLUMN "BLADE_ATTACH"."ATTACH_SIZE" IS '附件大小'; +COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_ATTACH"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_ATTACH"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_ATTACH" IS '附件表'; + +-- ---------------------------- +-- Table structure for BLADE_CLIENT +-- ---------------------------- +--DROP TABLE "BLADE_CLIENT"; +CREATE TABLE "BLADE_CLIENT" ( + "ID" NUMBER(20) NOT NULL , + "CLIENT_ID" NVARCHAR2(48) NOT NULL , + "CLIENT_SECRET" NVARCHAR2(256) NOT NULL , + "RESOURCE_IDS" NVARCHAR2(256) , + "SCOPE" NVARCHAR2(256) NOT NULL , + "AUTHORIZED_GRANT_TYPES" NVARCHAR2(256) NOT NULL , + "WEB_SERVER_REDIRECT_URI" NVARCHAR2(256) , + "AUTHORITIES" NVARCHAR2(256) , + "ACCESS_TOKEN_VALIDITY" NUMBER(11) NOT NULL , + "REFRESH_TOKEN_VALIDITY" NUMBER(11) NOT NULL , + "ADDITIONAL_INFORMATION" NCLOB , + "AUTOAPPROVE" NVARCHAR2(256) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) NOT NULL , + "IS_DELETED" NUMBER(11) NOT NULL +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_CLIENT"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_ID" IS '客户端ID'; +COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_SECRET" IS '客户端密钥'; +COMMENT ON COLUMN "BLADE_CLIENT"."RESOURCE_IDS" IS '资源集合'; +COMMENT ON COLUMN "BLADE_CLIENT"."SCOPE" IS '授权范围'; +COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型'; +COMMENT ON COLUMN "BLADE_CLIENT"."WEB_SERVER_REDIRECT_URI" IS '回调地址'; +COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORITIES" IS '权限'; +COMMENT ON COLUMN "BLADE_CLIENT"."ACCESS_TOKEN_VALIDITY" IS '令牌过期秒数'; +COMMENT ON COLUMN "BLADE_CLIENT"."REFRESH_TOKEN_VALIDITY" IS '刷新令牌过期秒数'; +COMMENT ON COLUMN "BLADE_CLIENT"."ADDITIONAL_INFORMATION" IS '附加说明'; +COMMENT ON COLUMN "BLADE_CLIENT"."AUTOAPPROVE" IS '自动授权'; +COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_CLIENT"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_CLIENT"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_CLIENT" IS '客户端表'; + +-- ---------------------------- +-- Records of BLADE_CLIENT +-- ---------------------------- +INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675201', 'sword', 'sword_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:8888', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:40:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2019-03-24 10:40:59', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675202', 'saber', 'saber_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:1888', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:42:29', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2019-03-24 10:42:32', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675203', 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_CLIENT" VALUES ('1123598811738675204', 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_CODE +-- ---------------------------- +--DROP TABLE "BLADE_CODE"; +CREATE TABLE "BLADE_CODE" ( + "ID" NUMBER(20) NOT NULL , + "MODEL_ID" NUMBER(20) , + "SERVICE_NAME" NVARCHAR2(64) , + "CODE_NAME" NVARCHAR2(64) , + "TABLE_NAME" NVARCHAR2(64) , + "TABLE_PREFIX" NVARCHAR2(64) , + "PK_NAME" NVARCHAR2(32) , + "PACKAGE_NAME" NVARCHAR2(500) , + "TEMPLATE_TYPE" NVARCHAR2(32) , + "AUTHOR" NVARCHAR2(32) , + "SUB_MODEL_ID" NVARCHAR2(32) , + "SUB_FK_ID" NVARCHAR2(32) , + "TREE_ID" NVARCHAR2(32) , + "TREE_PID" NVARCHAR2(32) , + "TREE_NAME" NVARCHAR2(64) , + "BASE_MODE" NUMBER(11) , + "WRAP_MODE" NUMBER(11) , + "FEIGN_MODE" NUMBER(11) , + "CODE_STYLE" NVARCHAR2(32) , + "API_PATH" NCLOB , + "WEB_PATH" NCLOB , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_CODE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_CODE"."MODEL_ID" IS '数据模型主键'; +COMMENT ON COLUMN "BLADE_CODE"."SERVICE_NAME" IS '服务名称'; +COMMENT ON COLUMN "BLADE_CODE"."CODE_NAME" IS '模块名称'; +COMMENT ON COLUMN "BLADE_CODE"."TABLE_NAME" IS '表名'; +COMMENT ON COLUMN "BLADE_CODE"."TABLE_PREFIX" IS '表前缀'; +COMMENT ON COLUMN "BLADE_CODE"."PK_NAME" IS '主键名'; +COMMENT ON COLUMN "BLADE_CODE"."PACKAGE_NAME" IS '后端包名'; +COMMENT ON COLUMN "BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型'; +COMMENT ON COLUMN "BLADE_CODE"."AUTHOR" IS '作者信息'; +COMMENT ON COLUMN "BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键'; +COMMENT ON COLUMN "BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键'; +COMMENT ON COLUMN "BLADE_CODE"."TREE_ID" IS '树主键字段'; +COMMENT ON COLUMN "BLADE_CODE"."TREE_PID" IS '树父主键字段'; +COMMENT ON COLUMN "BLADE_CODE"."TREE_NAME" IS '树名称字段'; +COMMENT ON COLUMN "BLADE_CODE"."BASE_MODE" IS '基础业务模式'; +COMMENT ON COLUMN "BLADE_CODE"."WRAP_MODE" IS '包装器模式'; +COMMENT ON COLUMN "BLADE_CODE"."FEIGN_MODE" IS '远程调用模式'; +COMMENT ON COLUMN "BLADE_CODE"."CODE_STYLE" IS '代码风格'; +COMMENT ON COLUMN "BLADE_CODE"."API_PATH" IS '后端路径'; +COMMENT ON COLUMN "BLADE_CODE"."WEB_PATH" IS '前端路径'; +COMMENT ON COLUMN "BLADE_CODE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_CODE" IS '代码生成表'; + +-- ---------------------------- +-- Table structure for BLADE_DATASOURCE +-- ---------------------------- +--DROP TABLE "BLADE_DATASOURCE"; +CREATE TABLE "BLADE_DATASOURCE" ( + "ID" NUMBER(20) NOT NULL , + "CATEGORY" NUMBER(11) DEFAULT 1 , + "NAME" NVARCHAR2(100) , + "DRIVER_CLASS" NVARCHAR2(100) , + "URL" NVARCHAR2(500) , + "USERNAME" NVARCHAR2(45) , + "PASSWORD" NVARCHAR2(45) , + "SHARDING_CONFIG" NCLOB , + "REMARK" NVARCHAR2(500) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_DATASOURCE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."CATEGORY" IS '数据源类型'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."NAME" IS '名称'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."DRIVER_CLASS" IS '驱动类'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."URL" IS '链接地址'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."USERNAME" IS '用户名'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."PASSWORD" IS '密码'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."SHARDING_CONFIG" IS '分库分表配置'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_DATASOURCE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_DATASOURCE" IS '数据源配置表'; + +-- ---------------------------- +-- Records of BLADE_DATASOURCE +-- ---------------------------- +INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483357481541634', '1', 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', NULL, 'mysql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483504353484802', '1', 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', NULL, 'postgresql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483594023510018', '1', 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', NULL, 'oracle', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_DATASOURCE" VALUES ('1161483594023510020', '1', 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', NULL, 'sqlserver', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_DEPT +-- ---------------------------- +--DROP TABLE "BLADE_DEPT"; +CREATE TABLE "BLADE_DEPT" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "PARENT_ID" NUMBER(20) , + "ANCESTORS" NCLOB , + "DEPT_CATEGORY" NUMBER(11) , + "DEPT_NAME" NVARCHAR2(45) , + "FULL_NAME" NVARCHAR2(45) , + "SORT" NUMBER(11) , + "REMARK" NVARCHAR2(255) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_DEPT"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_DEPT"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_DEPT"."PARENT_ID" IS '父主键'; +COMMENT ON COLUMN "BLADE_DEPT"."ANCESTORS" IS '祖级列表'; +COMMENT ON COLUMN "BLADE_DEPT"."DEPT_CATEGORY" IS '部门类型'; +COMMENT ON COLUMN "BLADE_DEPT"."DEPT_NAME" IS '部门名'; +COMMENT ON COLUMN "BLADE_DEPT"."FULL_NAME" IS '部门全称'; +COMMENT ON COLUMN "BLADE_DEPT"."SORT" IS '排序'; +COMMENT ON COLUMN "BLADE_DEPT"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_DEPT"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_DEPT" IS '机构表'; + +-- ---------------------------- +-- Records of BLADE_DEPT +-- ---------------------------- +INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675201', '000000', '0', '0', '1', '布雷德科技', '上海布雷德科技有限公司', '1', NULL, '0'); +INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675202', '000000', '1123598813738675201', '0,1123598813738675201', '1', '常州布雷德', '常州布雷德科技有限公司', '1', NULL, '0'); +INSERT INTO "BLADE_DEPT" VALUES ('1123598813738675203', '000000', '1123598813738675201', '0,1123598813738675201', '1', '苏州布雷德', '苏州布雷德科技有限公司', '1', NULL, '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_DICT +-- ---------------------------- +--DROP TABLE "BLADE_DICT"; +CREATE TABLE "BLADE_DICT" ( + "ID" NUMBER(20) NOT NULL , + "PARENT_ID" NUMBER(20) , + "CODE" NVARCHAR2(255) , + "DICT_KEY" NVARCHAR2(255) , + "DICT_VALUE" NVARCHAR2(255) , + "SORT" NUMBER(11) , + "REMARK" NVARCHAR2(255) , + "IS_SEALED" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_DICT"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_DICT"."PARENT_ID" IS '父主键'; +COMMENT ON COLUMN "BLADE_DICT"."CODE" IS '字典码'; +COMMENT ON COLUMN "BLADE_DICT"."DICT_KEY" IS '字典值'; +COMMENT ON COLUMN "BLADE_DICT"."DICT_VALUE" IS '字典名称'; +COMMENT ON COLUMN "BLADE_DICT"."SORT" IS '排序'; +COMMENT ON COLUMN "BLADE_DICT"."REMARK" IS '字典备注'; +COMMENT ON COLUMN "BLADE_DICT"."IS_SEALED" IS '是否已封存'; +COMMENT ON COLUMN "BLADE_DICT"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_DICT" IS '字典表'; + +-- ---------------------------- +-- Records of BLADE_DICT +-- ---------------------------- +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675201', '0', 'sex', '-1', '性别', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675202', '1123598814738675201', 'sex', '1', '男', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675203', '1123598814738675201', 'sex', '2', '女', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675204', '0', 'notice', '-1', '通知类型', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675205', '1123598814738675204', 'notice', '1', '发布通知', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675206', '1123598814738675204', 'notice', '2', '批转通知', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675207', '1123598814738675204', 'notice', '3', '转发通知', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675208', '1123598814738675204', 'notice', '4', '指示通知', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675209', '1123598814738675204', 'notice', '5', '任免通知', '5', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675210', '1123598814738675204', 'notice', '6', '事务通知', '6', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675211', '0', 'menu_category', '-1', '菜单类型', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675212', '1123598814738675211', 'menu_category', '1', '菜单', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675213', '1123598814738675211', 'menu_category', '2', '按钮', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675214', '0', 'button_func', '-1', '按钮功能', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675215', '1123598814738675214', 'button_func', '1', '工具栏', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675216', '1123598814738675214', 'button_func', '2', '操作栏', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675217', '1123598814738675214', 'button_func', '3', '工具操作栏', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675218', '0', 'yes_no', '-1', '是否', '5', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675219', '1123598814738675218', 'yes_no', '1', '否', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675220', '1123598814738675218', 'yes_no', '2', '是', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675221', '0', 'flow', '-1', '流程类型', '5', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675222', '1123598814738675221', 'flow', '1', '请假流程', '1', 'leave', '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675223', '1123598814738675221', 'flow', '2', '报销流程', '2', 'expense', '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675227', '0', 'org_category', '-1', '机构类型', '7', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675228', '1123598814738675227', 'org_category', '1', '公司', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675229', '1123598814738675227', 'org_category', '2', '部门', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675230', '1123598814738675227', 'org_category', '3', '小组', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675231', '0', 'data_scope_type', '-1', '数据权限', '8', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675232', '1123598814738675231', 'data_scope_type', '1', '全部可见', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675233', '1123598814738675231', 'data_scope_type', '2', '本人可见', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675234', '1123598814738675231', 'data_scope_type', '3', '所在机构可见', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675235', '1123598814738675231', 'data_scope_type', '4', '所在机构及子级可见', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675236', '1123598814738675231', 'data_scope_type', '5', '自定义', '5', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675237', '0', 'api_scope_type', '-1', '接口权限', '10', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675238', '1123598814738675237', 'api_scope_type', '1', '系统接口', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675239', '1123598814738675237', 'api_scope_type', '2', '业务接口', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675240', '0', 'scope_category', '-1', '权限类型', '10', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675241', '1123598814738675240', 'scope_category', '1', '数据权限', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738675242', '1123598814738675240', 'scope_category', '2', '接口权限', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676224', '0', 'oss', '-1', '对象存储类型', '6', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676225', '1123598814738676224', 'oss', '1', 'minio', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676226', '1123598814738676224', 'oss', '2', 'qiniu', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676227', '1123598814738676224', 'oss', '3', 'ali', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676228', '1123598814738676224', 'oss', '4', 'tencent', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676229', '1123598814738676224', 'oss', '5', '华为云', '5', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738676230', '1123598814738676224', 'oss', '6', 'amazon s3', '6', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738677220', '0', 'sms', '-1', '短信服务类型', '11', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738677221', '1123598814738677220', 'sms', '1', 'yunpian', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738677222', '1123598814738677220', 'sms', '2', 'qiniu', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738677223', '1123598814738677220', 'sms', '3', 'ali', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738677224', '1123598814738677220', 'sms', '4', 'tencent', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777220', '0', 'post_category', '-1', '岗位类型', '12', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777221', '1123598814738777220', 'post_category', '1', '高层', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777222', '1123598814738777220', 'post_category', '2', '中层', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777223', '1123598814738777220', 'post_category', '3', '基层', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777224', '1123598814738777220', 'post_category', '4', '其他', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777230', '0', 'region', '-1', '行政区划', '13', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777231', '1123598814738777230', 'region', '0', '国家', '0', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777232', '1123598814738777230', 'region', '1', '省份/直辖市', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777233', '1123598814738777230', 'region', '2', '地市', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777234', '1123598814738777230', 'region', '3', '区县', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777235', '1123598814738777230', 'region', '4', '乡镇', '4', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738777236', '1123598814738777230', 'region', '5', '村委', '5', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738778200', '0', 'user_type', '-1', '用户平台', '14', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738778201', '1123598814738778200', 'user_type', '1', 'WEB', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738778202', '1123598814738778200', 'user_type', '2', 'APP', '2', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1123598814738778203', '1123598814738778200', 'user_type', '3', 'OTHER', '3', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1735215689272508418', '0', 'datasource_category', '-1', '数据源类型', '16', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1735215870613241857', '1735215689272508418', 'datasource_category', '1', 'jdbc', '1', NULL, '0', '0'); +INSERT INTO "BLADE_DICT" VALUES ('1735215901546233858', '1735215689272508418', 'datasource_category', '2', 'sharding', '2', NULL, '0', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_DICT_BIZ +-- ---------------------------- +--DROP TABLE "BLADE_DICT_BIZ"; +CREATE TABLE "BLADE_DICT_BIZ" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "PARENT_ID" NUMBER(20) , + "CODE" NVARCHAR2(255) , + "DICT_KEY" NVARCHAR2(255) , + "DICT_VALUE" NVARCHAR2(255) , + "SORT" NUMBER(11) , + "REMARK" NVARCHAR2(255) , + "IS_SEALED" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."PARENT_ID" IS '父主键'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."CODE" IS '字典码'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_KEY" IS '字典值'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_VALUE" IS '字典名称'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."SORT" IS '排序'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."REMARK" IS '字典备注'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_SEALED" IS '是否已封存'; +COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_DICT_BIZ" IS '数据源配置表'; + +-- ---------------------------- +-- Table structure for BLADE_JOB_INFO +-- ---------------------------- +--DROP TABLE "BLADE_JOB_INFO"; +CREATE TABLE "BLADE_JOB_INFO" ( + "ID" NUMBER(20) NOT NULL , + "JOB_SERVER_ID" NUMBER(20) , + "JOB_ID" NUMBER(20) , + "JOB_NAME" VARCHAR2(50 BYTE) , + "JOB_DESCRIPTION" VARCHAR2(255 BYTE) , + "JOB_PARAMS" NCLOB , + "TIME_EXPRESSION_TYPE" NUMBER(11) , + "TIME_EXPRESSION" VARCHAR2(255 BYTE) , + "EXECUTE_TYPE" NUMBER(11) , + "PROCESSOR_TYPE" NUMBER(11) , + "PROCESSOR_INFO" VARCHAR2(255 BYTE) , + "MAX_INSTANCE_NUM" NUMBER(11) , + "CONCURRENCY" NUMBER(11) , + "INSTANCE_TIME_LIMIT" NUMBER(11) , + "INSTANCE_RETRY_NUM" NUMBER(11) , + "TASK_RETRY_NUM" NUMBER(11) , + "MIN_CPU_CORES" BINARY_DOUBLE , + "MIN_MEMORY_SPACE" BINARY_DOUBLE , + "MIN_DISK_SPACE" BINARY_DOUBLE , + "DESIGNATED_WORKERS" VARCHAR2(255 BYTE) , + "MAX_WORKER_COUNT" NUMBER(11) , + "NOTIFY_USER_IDS" VARCHAR2(2000 BYTE) , + "ENABLE" NUMBER(11) , + "DISPATCH_STRATEGY" NUMBER(11) , + "LIFECYCLE" VARCHAR2(255 BYTE) , + "ALERT_THRESHOLD" NUMBER(11) , + "STATISTIC_WINDOW_LEN" NUMBER(11) , + "SILENCE_WINDOW_LEN" NUMBER(11) , + "LOG_TYPE" NUMBER(11) , + "LOG_LEVEL" NUMBER(11) , + "EXTRA" VARCHAR2(255 BYTE) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_JOB_INFO"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."JOB_SERVER_ID" IS '任务服务ID'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."JOB_ID" IS '任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."JOB_NAME" IS '任务名称'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."JOB_DESCRIPTION" IS '任务描述'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."JOB_PARAMS" IS '任务参数,Processor#process 方法入参 TaskContext对象的 jobParams 字段'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."TIME_EXPRESSION_TYPE" IS '时间表达式类型,枚举值'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."TIME_EXPRESSION" IS '时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."EXECUTE_TYPE" IS '执行类型,枚举值'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."PROCESSOR_TYPE" IS '处理器类型,枚举值'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."PROCESSOR_INFO" IS '处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."MAX_INSTANCE_NUM" IS '最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."CONCURRENCY" IS '单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."INSTANCE_TIME_LIMIT" IS '任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."INSTANCE_RETRY_NUM" IS '任务实例重试次数,整个任务失败时重试,代价大,不推荐使用'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."TASK_RETRY_NUM" IS 'Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."MIN_CPU_CORES" IS '最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."MIN_MEMORY_SPACE" IS '最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."MIN_DISK_SPACE" IS '最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."DESIGNATED_WORKERS" IS '指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."MAX_WORKER_COUNT" IS '最大执行机器数量,限定调动执行的机器数量,0代表无限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."NOTIFY_USER_IDS" IS '接收报警的用户 ID 列表'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."ENABLE" IS '是否启用该任务,未启用的任务不会被调度'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."DISPATCH_STRATEGY" IS '调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."LIFECYCLE" IS '生命周期(预留,用于指定定时调度任务的生效时间范围)'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."ALERT_THRESHOLD" IS '错误阈值,0代表不限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."STATISTIC_WINDOW_LEN" IS '统计的窗口长度(s),0代表不限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."SILENCE_WINDOW_LEN" IS '沉默时间窗口(s),0代表不限制'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."LOG_TYPE" IS '日志配置'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."LOG_LEVEL" IS '日志级别'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."EXTRA" IS '扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_JOB_INFO"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_JOB_INFO" IS '任务信息表'; + +-- ---------------------------- +-- Table structure for BLADE_JOB_SERVER +-- ---------------------------- +--DROP TABLE "BLADE_JOB_SERVER"; +CREATE TABLE "BLADE_JOB_SERVER" ( + "ID" NUMBER(20) NOT NULL , + "JOB_SERVER_NAME" VARCHAR2(50 BYTE) , + "JOB_SERVER_URL" VARCHAR2(255 BYTE) , + "JOB_APP_NAME" VARCHAR2(20 BYTE) , + "JOB_APP_PASSWORD" VARCHAR2(100 BYTE) , + "JOB_REMARK" VARCHAR2(255 BYTE) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."JOB_SERVER_NAME" IS '任务服务名称'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."JOB_SERVER_URL" IS '任务服务地址'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."JOB_APP_NAME" IS '任务应用名称'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."JOB_APP_PASSWORD" IS '任务应用密码'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."JOB_REMARK" IS '任务说明'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_JOB_SERVER"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_JOB_SERVER" IS '任务服务表'; + +-- ---------------------------- +-- Records of BLADE_JOB_SERVER +-- ---------------------------- +INSERT INTO "BLADE_JOB_SERVER" VALUES (1741512022505590785, '任务调度服务器', '127.0.0.1:7700', 'blade-job', 'blade-job', '基础服务', 1123598821738675201, 1123598813738675201, TO_DATE('2024-01-01 01:29:57', 'SYYYY-MM-DD HH24:MI:SS'), 1123598821738675201, TO_DATE('2024-01-01 01:29:57', 'SYYYY-MM-DD HH24:MI:SS'), 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_LOG_API +-- ---------------------------- +--DROP TABLE "BLADE_LOG_API"; +CREATE TABLE "BLADE_LOG_API" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "SERVICE_ID" NVARCHAR2(32) , + "SERVER_HOST" NVARCHAR2(255) , + "SERVER_IP" NVARCHAR2(255) , + "ENV" NVARCHAR2(255) , + "TYPE" NCHAR(1) , + "TITLE" NVARCHAR2(255) , + "METHOD" NVARCHAR2(10) , + "REQUEST_URI" NVARCHAR2(255) , + "USER_AGENT" NVARCHAR2(1000) , + "REMOTE_IP" NVARCHAR2(255) , + "METHOD_CLASS" NVARCHAR2(255) , + "METHOD_NAME" NVARCHAR2(255) , + "PARAMS" NCLOB , + "TIME" NVARCHAR2(64) , + "CREATE_BY" NVARCHAR2(64) , + "CREATE_TIME" DATE +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_LOG_API"."ID" IS '编号'; +COMMENT ON COLUMN "BLADE_LOG_API"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_LOG_API"."SERVICE_ID" IS '服务ID'; +COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_HOST" IS '服务器名'; +COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_IP" IS '服务器IP地址'; +COMMENT ON COLUMN "BLADE_LOG_API"."ENV" IS '服务器环境'; +COMMENT ON COLUMN "BLADE_LOG_API"."TYPE" IS '日志类型'; +COMMENT ON COLUMN "BLADE_LOG_API"."TITLE" IS '日志标题'; +COMMENT ON COLUMN "BLADE_LOG_API"."METHOD" IS '操作方式'; +COMMENT ON COLUMN "BLADE_LOG_API"."REQUEST_URI" IS '请求URI'; +COMMENT ON COLUMN "BLADE_LOG_API"."USER_AGENT" IS '用户代理'; +COMMENT ON COLUMN "BLADE_LOG_API"."REMOTE_IP" IS '操作IP地址'; +COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_CLASS" IS '方法类'; +COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_NAME" IS '方法名'; +COMMENT ON COLUMN "BLADE_LOG_API"."PARAMS" IS '操作提交的数据'; +COMMENT ON COLUMN "BLADE_LOG_API"."TIME" IS '执行时间'; +COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_BY" IS '创建者'; +COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_TIME" IS '创建时间'; +COMMENT ON TABLE "BLADE_LOG_API" IS '接口日志表'; + +-- ---------------------------- +-- Table structure for BLADE_LOG_ERROR +-- ---------------------------- +--DROP TABLE "BLADE_LOG_ERROR"; +CREATE TABLE "BLADE_LOG_ERROR" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "SERVICE_ID" NVARCHAR2(32) , + "SERVER_HOST" NVARCHAR2(255) , + "SERVER_IP" NVARCHAR2(255) , + "ENV" NVARCHAR2(255) , + "METHOD" NVARCHAR2(10) , + "REQUEST_URI" NVARCHAR2(255) , + "USER_AGENT" NVARCHAR2(1000) , + "STACK_TRACE" NCLOB , + "EXCEPTION_NAME" NVARCHAR2(255) , + "MESSAGE" NCLOB , + "LINE_NUMBER" NUMBER(11) , + "REMOTE_IP" NVARCHAR2(255) , + "METHOD_CLASS" NVARCHAR2(255) , + "FILE_NAME" NVARCHAR2(1000) , + "METHOD_NAME" NVARCHAR2(255) , + "PARAMS" NCLOB , + "CREATE_BY" NVARCHAR2(64) , + "CREATE_TIME" DATE +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."ID" IS '编号'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVICE_ID" IS '服务ID'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_HOST" IS '服务器名'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_IP" IS '服务器IP地址'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."ENV" IS '系统环境'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD" IS '操作方式'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."REQUEST_URI" IS '请求URI'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."USER_AGENT" IS '用户代理'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."STACK_TRACE" IS '堆栈'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."EXCEPTION_NAME" IS '异常名'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."MESSAGE" IS '异常信息'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."LINE_NUMBER" IS '错误行数'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."REMOTE_IP" IS '操作IP地址'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_CLASS" IS '方法类'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."FILE_NAME" IS '文件名'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_NAME" IS '方法名'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."PARAMS" IS '操作提交的数据'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_BY" IS '创建者'; +COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_TIME" IS '创建时间'; +COMMENT ON TABLE "BLADE_LOG_ERROR" IS '错误日志表'; + +-- ---------------------------- +-- Table structure for BLADE_LOG_USUAL +-- ---------------------------- +--DROP TABLE "BLADE_LOG_USUAL"; +CREATE TABLE "BLADE_LOG_USUAL" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "SERVICE_ID" NVARCHAR2(32) , + "SERVER_HOST" NVARCHAR2(255) , + "SERVER_IP" NVARCHAR2(255) , + "ENV" NVARCHAR2(255) , + "LOG_LEVEL" NVARCHAR2(10) , + "LOG_ID" NVARCHAR2(100) , + "LOG_DATA" NCLOB , + "METHOD" NVARCHAR2(10) , + "REQUEST_URI" NVARCHAR2(255) , + "REMOTE_IP" NVARCHAR2(255) , + "METHOD_CLASS" NVARCHAR2(255) , + "METHOD_NAME" NVARCHAR2(255) , + "USER_AGENT" NVARCHAR2(1000) , + "PARAMS" NCLOB , + "CREATE_BY" NVARCHAR2(64) , + "CREATE_TIME" DATE +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."ID" IS '编号'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVICE_ID" IS '服务ID'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_HOST" IS '服务器名'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_IP" IS '服务器IP地址'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."ENV" IS '系统环境'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_LEVEL" IS '日志级别'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_ID" IS '日志业务ID'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_DATA" IS '日志数据'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD" IS '操作方式'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."REQUEST_URI" IS '请求URI'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."REMOTE_IP" IS '操作IP地址'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_CLASS" IS '方法类'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_NAME" IS '方法名'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."USER_AGENT" IS '用户代理'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."PARAMS" IS '操作提交的数据'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_BY" IS '创建者'; +COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_TIME" IS '创建时间'; +COMMENT ON TABLE "BLADE_LOG_USUAL" IS '通用日志表'; + +-- ---------------------------- +-- Table structure for BLADE_MENU +-- ---------------------------- +--DROP TABLE "BLADE_MENU"; +CREATE TABLE "BLADE_MENU" ( + "ID" NUMBER(20) NOT NULL , + "PARENT_ID" NUMBER(20) , + "CODE" NVARCHAR2(255) , + "NAME" NVARCHAR2(255) , + "ALIAS" NVARCHAR2(255) , + "PATH" NVARCHAR2(255) , + "SOURCE" NVARCHAR2(255) , + "SORT" NUMBER(11) , + "CATEGORY" NUMBER(11) , + "ACTION" NUMBER(11) , + "IS_OPEN" NUMBER(11) , + "COMPONENT" NVARCHAR2(255) , + "REMARK" NVARCHAR2(255) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_MENU"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_MENU"."PARENT_ID" IS '父级菜单'; +COMMENT ON COLUMN "BLADE_MENU"."CODE" IS '菜单编号'; +COMMENT ON COLUMN "BLADE_MENU"."NAME" IS '菜单名称'; +COMMENT ON COLUMN "BLADE_MENU"."ALIAS" IS '菜单别名'; +COMMENT ON COLUMN "BLADE_MENU"."PATH" IS '请求地址'; +COMMENT ON COLUMN "BLADE_MENU"."SOURCE" IS '菜单资源'; +COMMENT ON COLUMN "BLADE_MENU"."SORT" IS '排序'; +COMMENT ON COLUMN "BLADE_MENU"."CATEGORY" IS '菜单类型'; +COMMENT ON COLUMN "BLADE_MENU"."ACTION" IS '操作按钮类型'; +COMMENT ON COLUMN "BLADE_MENU"."IS_OPEN" IS '是否打开新页面'; +COMMENT ON COLUMN "BLADE_MENU"."COMPONENT" IS '组件地址'; +COMMENT ON COLUMN "BLADE_MENU"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_MENU"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_MENU" IS '菜单表'; + +-- ---------------------------- +-- Records of BLADE_MENU +-- ---------------------------- +INSERT INTO "BLADE_MENU" VALUES ('1161272593873321995', '1161272593873321991', 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1161272593873321996', '1123598815738675217', 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733369658963251', '1123598815738675210', 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', 'iconfont iconicon_cspace', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962201', '1123598815738675298', 'attach', '附件管理', 'menu', '/resource/attach', 'iconfont iconicon_ding', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962202', '1164733399669962201', 'attach_upload', '上传', 'upload', '/resource/attach/upload', NULL, '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962203', '1164733399669962201', 'attach_download', '下载', 'download', '/resource/attach/download', NULL, '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962204', '1164733399669962201', 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', NULL, '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733369658963252', '1123598815738675210', 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', 'iconfont iconicon_task', '4', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733369658963253', '1123598815738675210', 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', '5', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733369658963254', '1123598815738675210', 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', 'iconfont iconicon_safety', '6', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733369658963255', '1123598815738675210', 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', 'iconfont iconfont iconicon_search', '7', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733379658963251', '1123598815738675203', 'dictbiz', '业务字典', 'menu', '/system/dictbiz', 'iconfont iconicon_study', '5', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733379658963252', '1164733379658963251', 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733379658963253', '1164733379658963251', 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733379658963254', '1164733379658963251', 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733379658963255', '1164733379658963251', 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658963251', '1123598815738675298', 'xxljob', '任务调度', 'menu', 'http://localhost:8080/xxl-job-admin', 'iconfont iconicon_cspace', '5', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675201', '0', 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675202', '1123598815738675201', 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675203', '0', 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', '99', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675204', '1123598815738675203', 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675205', '1123598815738675203', 'dept', '机构管理', 'menu', '/system/dept', 'iconfont iconicon_group', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675206', '1123598815738675203', 'dict', '系统字典', 'menu', '/system/dict', 'iconfont iconicon_addresslist', '4', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675207', '1123598815738675203', 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', '6', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675208', '1123598815738675203', 'topmenu', '顶部菜单', 'menu', '/system/topmenu', 'iconfont icon-canshu', '7', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675209', '1123598815738675203', 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', '8', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675210', '0', 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675211', '1123598815738675210', 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675212', '1123598815738675210', 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675213', '1123598815738675210', 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', '8', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675214', '1123598815738675213', 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675215', '1123598815738675213', 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675216', '1123598815738675213', 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675217', '0', 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', '4', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675218', '1123598815738675217', 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675219', '1123598815738675202', 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675220', '1123598815738675202', 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675221', '1123598815738675202', 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675222', '1123598815738675202', 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675223', '1123598815738675204', 'user_add', '新增', 'add', '/system/user/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389668962251', '1123598815738675203', 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389668962252', '1164733389668962251', 'post_add', '新增', 'add', '/system/post/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389668962253', '1164733389668962251', 'post_edit', '修改', 'edit', '/system/post/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389668962254', '1164733389668962251', 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389668962255', '1164733389668962251', 'post_view', '查看', 'view', '/system/post/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962201', '0', 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', '97', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962202', '1164733399668962201', 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962203', '1164733399668962202', 'region_add', '新增下级', 'add', NULL, NULL, '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962204', '1164733399668962202', 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', NULL, '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962205', '1164733399668962202', 'region_import', '导入', 'import', NULL, NULL, '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962206', '1164733399668962202', 'region_export', '导出', 'export', NULL, NULL, '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399668962207', '1164733399668962202', 'region_debug', '调试', 'debug', NULL, NULL, '5', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675224', '1123598815738675204', 'user_edit', '修改', 'edit', '/system/user/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675225', '1123598815738675204', 'user_delete', '删除', 'delete', '/api/blade-system/user/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675226', '1123598815738675204', 'user_role', '角色配置', 'role', NULL, 'user-add', '4', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675227', '1123598815738675204', 'user_reset', '密码重置', 'reset-password', '/api/blade-system/user/reset-password', 'retweet', '5', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675228', '1123598815738675204', 'user_view', '查看', 'view', '/system/user/view', 'file-text', '6', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675229', '1123598815738675205', 'dept_add', '新增', 'add', '/system/dept/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675230', '1123598815738675205', 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675231', '1123598815738675205', 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675232', '1123598815738675205', 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675233', '1123598815738675206', 'dict_add', '新增', 'add', '/system/dict/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675234', '1123598815738675206', 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675235', '1123598815738675206', 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675236', '1123598815738675206', 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675237', '1123598815738675207', 'menu_add', '新增', 'add', '/system/menu/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675238', '1123598815738675207', 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675239', '1123598815738675207', 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675240', '1123598815738675207', 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675241', '1123598815738675308', 'role_add', '新增', 'add', '/authority/role/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675242', '1123598815738675308', 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675243', '1123598815738675308', 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675244', '1123598815738675308', 'role_view', '查看', 'view', '/authority/role/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675245', '1123598815738675209', 'param_add', '新增', 'add', '/system/param/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675246', '1123598815738675209', 'param_edit', '修改', 'edit', '/system/param/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675247', '1123598815738675209', 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675248', '1123598815738675209', 'param_view', '查看', 'view', '/system/param/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675249', '1123598815738675214', 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675250', '1123598815738675215', 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675251', '1123598815738675216', 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675252', '1123598815738675218', 'code_add', '新增', 'add', '/tool/code/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675253', '1123598815738675218', 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675254', '1123598815738675218', 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675255', '1123598815738675218', 'code_view', '查看', 'view', '/tool/code/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675256', '1123598815738675203', 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', '9', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675257', '1123598815738675256', 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675258', '1123598815738675256', 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675259', '1123598815738675256', 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675260', '1123598815738675256', 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675261', '1123598815738675203', 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', '10', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675262', '1123598815738675261', 'client_add', '新增', 'add', '/system/client/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675263', '1123598815738675261', 'client_edit', '修改', 'edit', '/system/client/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675264', '1123598815738675261', 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675265', '1123598815738675261', 'client_view', '查看', 'view', '/system/client/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675266', '0', 'flow', '流程管理', 'menu', '/flow', 'iconfont iconicon_send', '5', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675267', '1123598815738675266', 'flow_model', '模型管理', 'menu', '/flow/model', 'iconfont iconicon_discovery', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675268', '1123598815738675267', 'flow_model_create', '创建', 'create', NULL, 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675269', '1123598815738675267', 'flow_model_update', '编辑', 'update', NULL, 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675270', '1123598815738675267', 'flow_model_deploy', '部署', 'deploy', NULL, 'cloud-upload', '3', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675271', '1123598815738675267', 'flow_model_download', '下载', 'download', NULL, 'download', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675272', '1123598815738675267', 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', '5', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675273', '1123598815738675266', 'flow_deploy', '流程部署', 'menu', '/flow/deploy', 'iconfont iconicon_cspace', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675274', '1123598815738675266', 'flow_manager', '流程管理', 'menu', '/flow/manager', 'iconfont iconicon_cloud_history', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675275', '1123598815738675274', 'flow_manager_state', '变更状态', 'state', NULL, 'plus', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675276', '1123598815738675274', 'flow_manager_image', '流程图', 'image', NULL, 'image', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675277', '1123598815738675274', 'flow_manager_remove', '删除', 'remove', NULL, 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675278', '1123598815738675266', 'flow_follow', '流程跟踪', 'menu', '/flow/follow', 'iconfont iconicon_GPS', '4', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675279', '1123598815738675278', 'flow_follow_delete', '删除', 'remove', NULL, 'remove', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675280', '0', 'work', '我的事务', 'menu', '/work', 'iconfont iconicon_notice', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675281', '1123598815738675280', 'work_start', '发起事务', 'menu', '/work/start', 'iconfont iconicon_compile', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675282', '1123598815738675281', 'work_start_flow', '发起', 'flow', NULL, 'flow', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675283', '1123598815738675281', 'work_start_image', '流程图', 'image', NULL, 'image', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962301', '0', 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', '5', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962302', '1164733399669962301', 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962303', '1164733399669962301', 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962304', '1164733399669962301', 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675284', '1123598815738675280', 'work_claim', '待签事务', 'menu', '/work/claim', 'iconfont iconicon_ding', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675285', '1123598815738675284', 'work_claim_sign', '签收', 'sign', NULL, 'sign', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675286', '1123598815738675284', 'work_claim_detail', '详情', 'detail', NULL, 'detail', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675287', '1123598815738675284', 'work_claim_follow', '跟踪', 'follow', NULL, 'follow', '3', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675288', '1123598815738675280', 'work_todo', '待办事务', 'menu', '/work/todo', 'iconfont iconicon_savememo', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675289', '1123598815738675288', 'work_todo_handle', '办理', 'handle', NULL, 'handle', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675290', '1123598815738675288', 'work_todo_detail', '详情', 'detail', NULL, 'detail', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675291', '1123598815738675288', 'work_todo_follow', '跟踪', 'follow', NULL, 'follow', '3', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675292', '1123598815738675280', 'work_send', '已发事务', 'menu', '/work/send', 'iconfont iconicon_doc', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675293', '1123598815738675292', 'work_send_detail', '详情', 'detail', NULL, 'detail', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675294', '1123598815738675292', 'work_send_follow', '跟踪', 'follow', NULL, 'follow', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675295', '1123598815738675280', 'work_done', '办结事务', 'menu', '/work/done', 'iconfont iconicon_dispose', '4', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675296', '1123598815738675295', 'work_done_detail', '详情', 'detail', NULL, 'detail', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675297', '1123598815738675295', 'work_done_follow', '跟踪', 'follow', NULL, 'follow', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675298', '0', 'resource', '资源管理', 'menu', '/resource', 'iconfont iconicon_coinpurse_line', '6', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675299', '1123598815738675298', 'oss', '对象存储', 'menu', '/resource/oss', 'iconfont iconicon_subordinate', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675301', '1123598815738675299', 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675302', '1123598815738675299', 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675303', '1123598815738675299', 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675304', '1123598815738675299', 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675305', '1123598815738675299', 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', '5', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675307', '0', 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', '98', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675308', '1123598815738675307', 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675309', '1123598815738675307', 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658962251', '1123598815738675298', 'sms', '短信配置', 'menu', '/resource/sms', 'iconfont iconicon_message', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658962252', '1164733389658962251', 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658962253', '1164733389658962251', 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658962254', '1164733389658962251', 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658962255', '1164733389658962251', 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733389658962256', '1164733389658962251', 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', '5', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675310', '1123598815738675309', 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675311', '1123598815738675307', 'api_scope', '接口权限', 'menu', '/authority/apiscope', 'iconfont icon-iconset0216', '3', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675312', '1123598815738675311', 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', '1', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675313', '1123598815738675208', 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675314', '1123598815738675208', 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675315', '1123598815738675208', 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675316', '1123598815738675208', 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1123598815738675317', '1123598815738675208', 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', '5', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1161272593873321991', '1123598815738675217', 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', '2', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1161272593873321992', '1161272593873321991', 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1161272593873321993', '1161272593873321991', 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1161272593873321994', '1161272593873321991', 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962401', '0', 'job', '任务管理', 'job', '/job', 'iconfont iconicon_cspace', '5', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962501', '1164733399669962401', 'jobserver', '任务应用', 'menu', '/job/jobserver', 'iconfont icon-shouji', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962502', '1164733399669962501', 'jobserver_add', '新增', 'add', '/job/jobserver/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962503', '1164733399669962501', 'jobserver_edit', '修改', 'edit', '/job/jobserver/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962504', '1164733399669962501', 'jobserver_delete', '删除', 'delete', '/api/blade-job/jobserver/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962505', '1164733399669962501', 'jobserver_view', '查看', 'view', '/job/jobserver/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962601', '1164733399669962401', 'jobinfo', '任务配置', 'menu', '/job/jobinfo', 'iconfont icon-dongtai', '1', '1', '0', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962602', '1164733399669962601', 'jobinfo_add', '新增', 'add', '/job/jobinfo/add', 'plus', '1', '2', '1', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962603', '1164733399669962601', 'jobinfo_edit', '修改', 'edit', '/job/jobinfo/edit', 'form', '2', '2', '2', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962604', '1164733399669962601', 'jobinfo_delete', '删除', 'delete', '/api/blade-job/jobinfo/remove', 'delete', '3', '2', '3', '1', NULL, NULL, '0'); +INSERT INTO "BLADE_MENU" VALUES ('1164733399669962605', '1164733399669962601', 'jobinfo_view', '查看', 'view', '/job/jobinfo/view', 'file-text', '4', '2', '2', '1', NULL, NULL, '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_MODEL +-- ---------------------------- +--DROP TABLE "BLADE_MODEL"; +CREATE TABLE "BLADE_MODEL" ( + "ID" NUMBER(20) NOT NULL , + "DATASOURCE_ID" NUMBER(20) , + "MODEL_NAME" NVARCHAR2(50) , + "MODEL_CODE" NVARCHAR2(50) , + "MODEL_TABLE" NVARCHAR2(100) , + "MODEL_CLASS" NVARCHAR2(100) , + "MODEL_REMARK" NVARCHAR2(500) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_MODEL"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键'; +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_NAME" IS '模型名称'; +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CODE" IS '模型编号'; +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_TABLE" IS '物理表名'; +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CLASS" IS '模型类名'; +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_REMARK" IS '模型备注'; +COMMENT ON COLUMN "BLADE_MODEL"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_MODEL"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_MODEL"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_MODEL"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_MODEL"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_MODEL" IS '数据模型表'; + +-- ---------------------------- +-- Table structure for BLADE_MODEL_PROTOTYPE +-- ---------------------------- +--DROP TABLE "BLADE_MODEL_PROTOTYPE"; +CREATE TABLE "BLADE_MODEL_PROTOTYPE" ( + "ID" NUMBER(20) NOT NULL , + "MODEL_ID" NUMBER(20) , + "JDBC_NAME" NVARCHAR2(50) , + "JDBC_TYPE" NVARCHAR2(20) , + "JDBC_COMMENT" NVARCHAR2(500) , + "PROPERTY_TYPE" NVARCHAR2(20) , + "PROPERTY_ENTITY" NVARCHAR2(500) , + "PROPERTY_NAME" NVARCHAR2(50) , + "IS_LIST" NUMBER(11) , + "IS_FORM" NUMBER(11) , + "IS_ROW" NUMBER(11) , + "COMPONENT_TYPE" NVARCHAR2(50) , + "DICT_CODE" NVARCHAR2(50) , + "IS_REQUIRED" NUMBER(11) , + "IS_QUERY" NUMBER(11) , + "QUERY_TYPE" NVARCHAR2(50) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_COMMENT" IS '注释说明'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询类型'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_MODEL_PROTOTYPE" IS '数据原型表'; + +-- ---------------------------- +-- Table structure for BLADE_NOTICE +-- ---------------------------- +--DROP TABLE "BLADE_NOTICE"; +CREATE TABLE "BLADE_NOTICE" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "TITLE" NVARCHAR2(255) , + "CATEGORY" NUMBER(11) , + "RELEASE_TIME" DATE , + "CONTENT" NVARCHAR2(2000) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_NOTICE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_NOTICE"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_NOTICE"."TITLE" IS '标题'; +COMMENT ON COLUMN "BLADE_NOTICE"."CATEGORY" IS '类型'; +COMMENT ON COLUMN "BLADE_NOTICE"."RELEASE_TIME" IS '发布时间'; +COMMENT ON COLUMN "BLADE_NOTICE"."CONTENT" IS '内容'; +COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_NOTICE"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_NOTICE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_NOTICE" IS '通知公告表'; + +-- ---------------------------- +-- Records of BLADE_NOTICE +-- ---------------------------- +INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675223', '000000', '测试公告', '3', TO_DATE('2018-12-31 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '222', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:51', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675224', '000000', '测试公告2', '1', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '333', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 10:32:26', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:34', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_NOTICE" VALUES ('1123598818738675225', '000000', '测试公告3', '6', TO_DATE('2018-12-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '11111', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 11:03:44', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 11:10:28', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_OSS +-- ---------------------------- +--DROP TABLE "BLADE_OSS"; +CREATE TABLE "BLADE_OSS" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "CATEGORY" NUMBER(11) , + "OSS_CODE" NVARCHAR2(32) , + "ENDPOINT" NVARCHAR2(255) , + "TRANSFORM_ENDPOINT" NVARCHAR2(255) , + "ACCESS_KEY" NVARCHAR2(255) , + "SECRET_KEY" NVARCHAR2(255) , + "BUCKET_NAME" NVARCHAR2(255) , + "APP_ID" NVARCHAR2(255) , + "REGION" NVARCHAR2(255) , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_OSS"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_OSS"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_OSS"."CATEGORY" IS '分类'; +COMMENT ON COLUMN "BLADE_OSS"."OSS_CODE" IS '资源编号'; +COMMENT ON COLUMN "BLADE_OSS"."ENDPOINT" IS '资源地址'; +COMMENT ON COLUMN "BLADE_OSS"."TRANSFORM_ENDPOINT" IS '外网资源地址'; +COMMENT ON COLUMN "BLADE_OSS"."ACCESS_KEY" IS 'accessKey'; +COMMENT ON COLUMN "BLADE_OSS"."SECRET_KEY" IS 'secretKey'; +COMMENT ON COLUMN "BLADE_OSS"."BUCKET_NAME" IS '空间名'; +COMMENT ON COLUMN "BLADE_OSS"."APP_ID" IS '应用ID'; +COMMENT ON COLUMN "BLADE_OSS"."REGION" IS '地域简称'; +COMMENT ON COLUMN "BLADE_OSS"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_OSS"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_OSS"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_OSS"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_OSS"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_OSS"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_OSS"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_OSS"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_OSS" IS '对象存储表'; + +-- ---------------------------- +-- Records of BLADE_OSS +-- ---------------------------- +INSERT INTO "BLADE_OSS" VALUES ('1132486733992468482', '000000', '1', 'minio', 'http://127.0.0.1:9000', NULL, 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0'); +INSERT INTO "BLADE_OSS" VALUES ('1132487155981393922', '000000', '2', 'qiniu', 'http://ps458elcs.bkt.clouddn.com', NULL, 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_PARAM +-- ---------------------------- +--DROP TABLE "BLADE_PARAM"; +CREATE TABLE "BLADE_PARAM" ( + "ID" NUMBER(20) NOT NULL , + "PARAM_NAME" NVARCHAR2(255) , + "PARAM_KEY" NVARCHAR2(255) , + "PARAM_VALUE" NVARCHAR2(255) , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_PARAM"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_PARAM"."PARAM_NAME" IS '参数名'; +COMMENT ON COLUMN "BLADE_PARAM"."PARAM_KEY" IS '参数键'; +COMMENT ON COLUMN "BLADE_PARAM"."PARAM_VALUE" IS '参数值'; +COMMENT ON COLUMN "BLADE_PARAM"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_PARAM"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_PARAM"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_PARAM"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_PARAM"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_PARAM"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_PARAM" IS '参数表'; + +-- ---------------------------- +-- Records of BLADE_PARAM +-- ---------------------------- +INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675201', '是否开启注册功能', 'account.registerUser', 'true', '开启注册', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675202', '账号初始密码', 'account.initPassword', '123456', '初始密码', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_PARAM" VALUES ('1123598819738675203', '账号错误锁定次数', 'account.failCount', '5', '锁定次数', '1123598821738675201', '1123598813738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_PARAM" VALUES ('1238706101399142402', '租户默认管理密码', 'tenant.default.password', 'admin', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_PARAM" VALUES ('1238706160295559170', '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_PARAM" VALUES ('1238706330076790786', '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_POST +-- ---------------------------- +--DROP TABLE "BLADE_POST"; +CREATE TABLE "BLADE_POST" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "CATEGORY" NUMBER(11) , + "POST_CODE" VARCHAR2(12 BYTE) , + "POST_NAME" VARCHAR2(64 BYTE) , + "SORT" NUMBER(11) , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_POST"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_POST"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_POST"."CATEGORY" IS '岗位类型'; +COMMENT ON COLUMN "BLADE_POST"."POST_CODE" IS '岗位编号'; +COMMENT ON COLUMN "BLADE_POST"."POST_NAME" IS '岗位名称'; +COMMENT ON COLUMN "BLADE_POST"."SORT" IS '岗位排序'; +COMMENT ON COLUMN "BLADE_POST"."REMARK" IS '岗位描述'; +COMMENT ON COLUMN "BLADE_POST"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_POST"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_POST"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_POST"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_POST"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_POST"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_POST"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_POST" IS '岗位表'; + +-- ---------------------------- +-- Records of BLADE_POST +-- ---------------------------- +INSERT INTO "BLADE_POST" VALUES ('1123598817738675201', '000000', '1', 'ceo', '首席执行官', '1', '总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675202', '000000', '1', 'coo', '首席运营官', '2', '常务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675203', '000000', '1', 'cfo', '首席财务官', '3', '财务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675204', '000000', '1', 'cto', '首席技术官', '4', '技术总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675205', '000000', '1', 'cio', '首席信息官', '5', '信息总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675206', '000000', '2', 'pm', '技术经理', '6', '研发和产品是永远的朋友', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675207', '000000', '2', 'hrm', '人力经理', '7', '人力资源部门工作管理者', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_POST" VALUES ('1123598817738675208', '000000', '3', 'staff', '普通员工', '8', '普通员工', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_PROCESS_LEAVE +-- ---------------------------- +--DROP TABLE "BLADE_PROCESS_LEAVE"; +CREATE TABLE "BLADE_PROCESS_LEAVE" ( + "ID" NUMBER(20) NOT NULL , + "PROCESS_DEFINITION_ID" NVARCHAR2(64) , + "PROCESS_INSTANCE_ID" NVARCHAR2(64) , + "START_TIME" DATE , + "END_TIME" DATE , + "REASON" NVARCHAR2(255) , + "TASK_USER" NVARCHAR2(255) , + "APPLY_TIME" DATE , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."ID" IS '编号'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_DEFINITION_ID" IS '流程定义主键'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_INSTANCE_ID" IS '流程实例主键'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."START_TIME" IS '开始时间'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."END_TIME" IS '结束时间'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."REASON" IS '请假理由'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."TASK_USER" IS '第一级审批人'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."APPLY_TIME" IS '申请时间'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_PROCESS_LEAVE" IS '流程请假业务表'; + +-- ---------------------------- +-- Table structure for BLADE_REGION +-- ---------------------------- +--DROP TABLE "BLADE_REGION"; +CREATE TABLE "BLADE_REGION" ( + "CODE" VARCHAR2(12 BYTE) NOT NULL , + "PARENT_CODE" VARCHAR2(12 BYTE) , + "ANCESTORS" VARCHAR2(255 BYTE) , + "NAME" VARCHAR2(64 BYTE) , + "PROVINCE_CODE" VARCHAR2(12 BYTE) , + "PROVINCE_NAME" VARCHAR2(64 BYTE) , + "CITY_CODE" VARCHAR2(12 BYTE) , + "CITY_NAME" VARCHAR2(64 BYTE) , + "DISTRICT_CODE" VARCHAR2(12 BYTE) , + "DISTRICT_NAME" VARCHAR2(64 BYTE) , + "TOWN_CODE" VARCHAR2(12 BYTE) , + "TOWN_NAME" VARCHAR2(64 BYTE) , + "VILLAGE_CODE" VARCHAR2(12 BYTE) , + "VILLAGE_NAME" VARCHAR2(64 BYTE) , + "REGION_LEVEL" NUMBER(11) NOT NULL , + "SORT" NUMBER(11) NOT NULL , + "REMARK" VARCHAR2(255 BYTE) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_REGION"."CODE" IS '区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."PARENT_CODE" IS '父区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."ANCESTORS" IS '祖区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."NAME" IS '区划名称'; +COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_CODE" IS '省级区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_NAME" IS '省级名称'; +COMMENT ON COLUMN "BLADE_REGION"."CITY_CODE" IS '市级区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."CITY_NAME" IS '市级名称'; +COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_CODE" IS '区级区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_NAME" IS '区级名称'; +COMMENT ON COLUMN "BLADE_REGION"."TOWN_CODE" IS '镇级区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."TOWN_NAME" IS '镇级名称'; +COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_CODE" IS '村级区划编号'; +COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_NAME" IS '村级名称'; +COMMENT ON COLUMN "BLADE_REGION"."REGION_LEVEL" IS '层级'; +COMMENT ON COLUMN "BLADE_REGION"."SORT" IS '排序'; +COMMENT ON COLUMN "BLADE_REGION"."REMARK" IS '备注'; +COMMENT ON TABLE "BLADE_REGION" IS '行政区划表'; + +-- ---------------------------- +-- Records of BLADE_REGION +-- ---------------------------- +INSERT INTO "BLADE_REGION" VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('14', '00', '00', '山西省', '14', '山西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('00', '0', '0', '中华人民共和国', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('11', '00', '00', '北京市', '11', '北京市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('12', '00', '00', '天津市', '12', '天津市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('13', '00', '00', '河北省', '13', '河北省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('21', '00', '00', '辽宁省', '21', '辽宁省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('23', '00', '00', '黑龙江省', '23', '黑龙江省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('31', '00', '00', '上海市', '31', '上海市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('32', '00', '00', '江苏省', '32', '江苏省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('22', '00', '00', '吉林省', '22', '吉林省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('33', '00', '00', '浙江省', '33', '浙江省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('35', '00', '00', '福建省', '35', '福建省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('34', '00', '00', '安徽省', '34', '安徽省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('41', '00', '00', '河南省', '41', '河南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('36', '00', '00', '江西省', '36', '江西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('37', '00', '00', '山东省', '37', '山东省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('42', '00', '00', '湖北省', '42', '湖北省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('44', '00', '00', '广东省', '44', '广东省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('43', '00', '00', '湖南省', '43', '湖南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('51', '00', '00', '四川省', '51', '四川省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('53', '00', '00', '云南省', '53', '云南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('46', '00', '00', '海南省', '46', '海南省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('50', '00', '00', '重庆市', '50', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('52', '00', '00', '贵州省', '52', '贵州省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('62', '00', '00', '甘肃省', '62', '甘肃省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('63', '00', '00', '青海省', '63', '青海省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('54', '00', '00', '西藏自治区', '54', '西藏自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('61', '00', '00', '陕西省', '61', '陕西省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('71', '00', '00', '台湾省', '71', '台湾省', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', NULL, NULL, NULL, NULL, NULL, NULL, '2', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', NULL, NULL, NULL, NULL, '3', '1', NULL); +INSERT INTO "BLADE_REGION" VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', NULL, NULL, NULL, NULL, '3', '1', NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_REPORT_FILE +-- ---------------------------- +--DROP TABLE "BLADE_REPORT_FILE"; +CREATE TABLE "BLADE_REPORT_FILE" ( + "ID" NUMBER(20) NOT NULL , + "NAME" NVARCHAR2(100) NOT NULL , + "CONTENT" BLOB , + "CREATE_TIME" DATE NOT NULL , + "UPDATE_TIME" DATE NOT NULL , + "IS_DELETED" NUMBER(11) DEFAULT 0 + + + + + + + +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_REPORT_FILE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_REPORT_FILE"."NAME" IS '文件名'; +COMMENT ON COLUMN "BLADE_REPORT_FILE"."CONTENT" IS '文件内容'; +COMMENT ON COLUMN "BLADE_REPORT_FILE"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_REPORT_FILE"."UPDATE_TIME" IS '更新时间'; +COMMENT ON COLUMN "BLADE_REPORT_FILE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_REPORT_FILE" IS '报表文件表'; + +-- ---------------------------- +-- Table structure for BLADE_ROLE +-- ---------------------------- +--DROP TABLE "BLADE_ROLE"; +CREATE TABLE "BLADE_ROLE" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "PARENT_ID" NUMBER(20) , + "ROLE_NAME" NVARCHAR2(255) , + "SORT" NUMBER(11) , + "ROLE_ALIAS" NVARCHAR2(255) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_ROLE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_ROLE"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_ROLE"."PARENT_ID" IS '父主键'; +COMMENT ON COLUMN "BLADE_ROLE"."ROLE_NAME" IS '角色名'; +COMMENT ON COLUMN "BLADE_ROLE"."SORT" IS '排序'; +COMMENT ON COLUMN "BLADE_ROLE"."ROLE_ALIAS" IS '角色别名'; +COMMENT ON COLUMN "BLADE_ROLE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_ROLE" IS '角色表'; + +-- ---------------------------- +-- Records of BLADE_ROLE +-- ---------------------------- +INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675201', '000000', '0', '超级管理员', '1', 'administrator', '0'); +INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675202', '000000', '0', '用户', '2', 'user', '0'); +INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675203', '000000', '1123598816738675202', '人事', '1', 'hr', '0'); +INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675204', '000000', '1123598816738675202', '经理', '2', 'manager', '0'); +INSERT INTO "BLADE_ROLE" VALUES ('1123598816738675205', '000000', '1123598816738675202', '老板', '3', 'boss', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_ROLE_MENU +-- ---------------------------- +--DROP TABLE "BLADE_ROLE_MENU"; +CREATE TABLE "BLADE_ROLE_MENU" ( + "ID" NUMBER(20) NOT NULL , + "MENU_ID" NUMBER(20) , + "ROLE_ID" NUMBER(20) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_ROLE_MENU"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_ROLE_MENU"."MENU_ID" IS '菜单ID'; +COMMENT ON COLUMN "BLADE_ROLE_MENU"."ROLE_ID" IS '角色ID'; +COMMENT ON TABLE "BLADE_ROLE_MENU" IS '角色菜单关联表'; + +-- ---------------------------- +-- Records of BLADE_ROLE_MENU +-- ---------------------------- +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675401', '1123598815738675288', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675402', '1123598815738675289', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675403', '1123598815738675290', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675404', '1123598815738675291', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675405', '1123598815738675292', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675406', '1123598815738675293', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675407', '1123598815738675294', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675408', '1123598815738675295', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675409', '1123598815738675296', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675410', '1123598815738675297', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675411', '1123598815738675201', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675412', '1123598815738675202', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675413', '1123598815738675219', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675414', '1123598815738675220', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675415', '1123598815738675221', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675416', '1123598815738675222', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675417', '1123598815738675280', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675418', '1123598815738675281', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675419', '1123598815738675282', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675420', '1123598815738675283', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675421', '1123598815738675284', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675422', '1123598815738675285', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675423', '1123598815738675286', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675424', '1123598815738675287', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675425', '1123598815738675288', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675426', '1123598815738675289', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675427', '1123598815738675290', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675428', '1123598815738675291', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675429', '1123598815738675292', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675430', '1123598815738675293', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675431', '1123598815738675294', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675432', '1123598815738675295', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675433', '1123598815738675296', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675434', '1123598815738675297', '1123598816738675204'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675435', '1123598815738675201', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675436', '1123598815738675202', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675437', '1123598815738675219', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675438', '1123598815738675220', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675439', '1123598815738675221', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675440', '1123598815738675222', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675441', '1123598815738675280', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675442', '1123598815738675281', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675443', '1123598815738675282', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675444', '1123598815738675283', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675445', '1123598815738675284', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675446', '1123598815738675285', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675447', '1123598815738675286', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675448', '1123598815738675287', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675449', '1123598815738675288', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675450', '1123598815738675289', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675451', '1123598815738675290', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675452', '1123598815738675291', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675453', '1123598815738675292', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675454', '1123598815738675293', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675455', '1123598815738675294', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675456', '1123598815738675295', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675457', '1123598815738675296', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675458', '1123598815738675297', '1123598816738675205'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149888293856833539', '1123598815738675317', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666312130561', '1123598815738675201', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666370850818', '1123598815738675202', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666437959682', '1123598815738675219', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666505068546', '1123598815738675220', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666555400193', '1123598815738675221', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666614120449', '1123598815738675222', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666651869185', '1123598815738675280', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666723172353', '1123598815738675281', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666765115393', '1123598815738675282', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666815447041', '1123598815738675283', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666844807170', '1123598815738675284', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666886750210', '1123598815738675285', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666924498946', '1123598815738675286', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891666966441986', '1123598815738675287', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667012579330', '1123598815738675288', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667054522370', '1123598815738675289', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667109048322', '1123598815738675290', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667146797058', '1123598815738675291', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667197128706', '1123598815738675292', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667234877441', '1123598815738675293', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667272626178', '1123598815738675294', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667314569218', '1123598815738675295', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667343929346', '1123598815738675296', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667398455298', '1123598815738675297', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667440398338', '1123598815738675210', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667478147073', '1123598815738675211', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667524284417', '1123598815738675212', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667574616065', '1123598815738675213', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667608170498', '1123598815738675214', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667641724929', '1123598815738675249', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667671085058', '1123598815738675215', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667708833793', '1123598815738675250', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667746582529', '1123598815738675216', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667784331265', '1123598815738675251', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667822080001', '1123598815738675217', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667843051522', '1123598815738675218', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667889188865', '1123598815738675252', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667926937602', '1123598815738675253', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667947909121', '1123598815738675254', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891667989852161', '1123598815738675255', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668015017986', '1123598815738675266', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668061155330', '1123598815738675267', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668086321154', '1123598815738675268', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668136652802', '1123598815738675269', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668199567362', '1123598815738675270', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668262481922', '1123598815738675271', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668321202177', '1123598815738675272', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668367339521', '1123598815738675273', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668405088257', '1123598815738675274', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668438642689', '1123598815738675275', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668472197121', '1123598815738675276', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668509945858', '1123598815738675277', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668568666113', '1123598815738675278', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668631580673', '1123598815738675279', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668669329410', '1123598815738675298', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668719661057', '1123598815738675299', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668757409793', '1123598815738675301', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668803547138', '1123598815738675302', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668849684481', '1123598815738675303', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668883238913', '1123598815738675304', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668920987650', '1123598815738675305', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668950347777', '1123598815738675307', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891668983902209', '1123598815738675308', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669013262338', '1123598815738675241', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669034233857', '1123598815738675242', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669055205378', '1123598815738675243', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669105537025', '1123598815738675244', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669164257282', '1123598815738675309', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669210394626', '1123598815738675310', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669243949058', '1123598815738675311', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669285892097', '1123598815738675312', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669336223745', '1123598815738675203', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669365583873', '1123598815738675204', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669394944001', '1123598815738675223', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669441081346', '1123598815738675224', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669487218689', '1123598815738675225', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669533356033', '1123598815738675226', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669571104770', '1123598815738675227', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669642407937', '1123598815738675228', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669671768065', '1123598815738675205', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225001', '1164733389668962251', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225002', '1164733389668962252', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225003', '1164733389668962253', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225004', '1164733389668962254', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225005', '1164733389668962255', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875225006', '1164733389668962256', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226001', '1164733399668962201', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226002', '1164733399668962202', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226003', '1164733399668962203', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226004', '1164733399668962204', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226005', '1164733399668962205', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226006', '1164733399668962206', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875226007', '1164733399668962207', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227001', '1164733399669962201', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227002', '1164733399669962202', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227003', '1164733399669962203', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875227004', '1164733399669962204', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228001', '1164733399669962301', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228002', '1164733399669962302', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228003', '1164733399669962303', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893875228004', '1164733399669962304', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669696933889', '1123598815738675229', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669743071234', '1123598815738675230', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669797597186', '1123598815738675231', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669847928834', '1123598815738675232', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669919232001', '1123598815738675206', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891669973757954', '1123598815738675233', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670019895298', '1123598815738675234', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670045061121', '1123598815738675235', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670095392770', '1123598815738675236', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670137335809', '1123598815738675207', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670196056065', '1123598815738675237', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670229610498', '1123598815738675238', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670267359234', '1123598815738675239', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670292525057', '1123598815738675240', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670355439617', '1123598815738675306', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670380605442', '1123598815738675208', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670443520001', '1123598815738675313', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670481268737', '1123598815738675314', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670506434561', '1123598815738675315', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670569349121', '1123598815738675316', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670594514945', '1123598815738675209', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670657429506', '1123598815738675245', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670682595330', '1123598815738675246', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670711955457', '1123598815738675247', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670745509889', '1123598815738675248', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670804230146', '1123598815738675256', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670841978881', '1123598815738675257', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670879727617', '1123598815738675258', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670913282050', '1123598815738675259', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670959419394', '1123598815738675260', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891670988779521', '1123598815738675261', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671039111170', '1123598815738675262', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671068471297', '1123598815738675263', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671110414338', '1123598815738675264', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1149891671152357378', '1123598815738675265', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322991', '1161272593873321991', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322992', '1161272593873321992', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322993', '1161272593873321993', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322994', '1161272593873321994', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272593873322995', '1161272593873321995', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322991', '1164733369658963251', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322992', '1164733369658963252', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322993', '1164733369658963253', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322994', '1164733369658963254', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272693873322995', '1164733369658963255', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322991', '1164733379658963251', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322992', '1164733379658963252', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322993', '1164733379658963253', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322994', '1164733379658963254', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272793873322995', '1164733379658963255', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873322991', '1164733389658963251', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222991', '1164733389658962251', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222992', '1164733389658962252', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222993', '1164733389658962253', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222994', '1164733389658962254', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222995', '1164733389658962255', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1161272893873222996', '1164733389658962256', '1123598816738675201'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675363', '1123598815738675201', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675364', '1123598815738675202', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675365', '1123598815738675219', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675366', '1123598815738675220', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675367', '1123598815738675221', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675368', '1123598815738675222', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675369', '1123598815738675280', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675370', '1123598815738675281', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675371', '1123598815738675282', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675372', '1123598815738675283', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675373', '1123598815738675284', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675374', '1123598815738675285', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675375', '1123598815738675286', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675376', '1123598815738675287', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675377', '1123598815738675288', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675378', '1123598815738675289', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675379', '1123598815738675290', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675380', '1123598815738675291', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675381', '1123598815738675292', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675382', '1123598815738675293', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675383', '1123598815738675294', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675384', '1123598815738675295', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675385', '1123598815738675296', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675386', '1123598815738675297', '1123598816738675202'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675387', '1123598815738675201', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675388', '1123598815738675202', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675389', '1123598815738675219', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675390', '1123598815738675220', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675391', '1123598815738675221', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675392', '1123598815738675222', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675393', '1123598815738675280', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675394', '1123598815738675281', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675395', '1123598815738675282', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675396', '1123598815738675283', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675397', '1123598815738675284', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675398', '1123598815738675285', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675399', '1123598815738675286', '1123598816738675203'); +INSERT INTO "BLADE_ROLE_MENU" VALUES ('1123598817738675400', '1123598815738675287', '1123598816738675203'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_ROLE_SCOPE +-- ---------------------------- +--DROP TABLE "BLADE_ROLE_SCOPE"; +CREATE TABLE "BLADE_ROLE_SCOPE" ( + "ID" NUMBER(20) NOT NULL , + "SCOPE_CATEGORY" NUMBER(11) , + "SCOPE_ID" NUMBER(20) , + "ROLE_ID" NUMBER(20) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_CATEGORY" IS '权限类型(1:数据权限、2:接口权限)'; +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_ID" IS '权限ID'; +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ROLE_ID" IS '角色ID'; +COMMENT ON TABLE "BLADE_ROLE_SCOPE" IS '角色数据权限关联表'; + +-- ---------------------------- +-- Table structure for BLADE_SCOPE_API +-- ---------------------------- +--DROP TABLE "BLADE_SCOPE_API"; +CREATE TABLE "BLADE_SCOPE_API" ( + "ID" NUMBER(20) NOT NULL , + "MENU_ID" NUMBER(20) , + "RESOURCE_CODE" NVARCHAR2(255) , + "SCOPE_NAME" NVARCHAR2(255) , + "SCOPE_PATH" NVARCHAR2(255) , + "SCOPE_TYPE" NUMBER(11) , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_SCOPE_API"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."MENU_ID" IS '菜单主键'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."RESOURCE_CODE" IS '资源编号'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_NAME" IS '接口权限名'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_PATH" IS '接口权限地址'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_TYPE" IS '接口权限类型'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."REMARK" IS '接口权限备注'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_SCOPE_API"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_SCOPE_API" IS '接口权限表'; + +-- ---------------------------- +-- Table structure for BLADE_SCOPE_DATA +-- ---------------------------- +--DROP TABLE "BLADE_SCOPE_DATA"; +CREATE TABLE "BLADE_SCOPE_DATA" ( + "ID" NUMBER(20) NOT NULL , + "MENU_ID" NUMBER(20) , + "RESOURCE_CODE" NVARCHAR2(255) , + "SCOPE_NAME" NVARCHAR2(255) , + "SCOPE_FIELD" NVARCHAR2(255) , + "SCOPE_CLASS" NVARCHAR2(500) , + "SCOPE_COLUMN" NVARCHAR2(255) , + "SCOPE_TYPE" NUMBER(11) , + "SCOPE_VALUE" NCLOB , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."MENU_ID" IS '菜单主键'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."RESOURCE_CODE" IS '资源编号'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_NAME" IS '数据权限名称'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_FIELD" IS '数据权限字段'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_CLASS" IS '数据权限类名'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_COLUMN" IS '数据权限字段'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_TYPE" IS '数据权限类型'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_VALUE" IS '数据权限值域'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."REMARK" IS '数据权限备注'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_SCOPE_DATA" IS '数据权限表'; + +-- ---------------------------- +-- Table structure for BLADE_SMS +-- ---------------------------- +--DROP TABLE "BLADE_SMS"; +CREATE TABLE "BLADE_SMS" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "CATEGORY" NUMBER(11) , + "SMS_CODE" VARCHAR2(12 BYTE) , + "TEMPLATE_ID" VARCHAR2(64 BYTE) , + "ACCESS_KEY" NVARCHAR2(255) , + "SECRET_KEY" NVARCHAR2(255) , + "REGION_ID" NVARCHAR2(255) , + "SIGN_NAME" VARCHAR2(64 BYTE) , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_SMS"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_SMS"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_SMS"."CATEGORY" IS '分类'; +COMMENT ON COLUMN "BLADE_SMS"."SMS_CODE" IS '资源编号'; +COMMENT ON COLUMN "BLADE_SMS"."TEMPLATE_ID" IS '模板ID'; +COMMENT ON COLUMN "BLADE_SMS"."ACCESS_KEY" IS 'accessKey'; +COMMENT ON COLUMN "BLADE_SMS"."SECRET_KEY" IS 'secretKey'; +COMMENT ON COLUMN "BLADE_SMS"."REGION_ID" IS 'regionId'; +COMMENT ON COLUMN "BLADE_SMS"."SIGN_NAME" IS '短信签名'; +COMMENT ON COLUMN "BLADE_SMS"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_SMS"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_SMS"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_SMS"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_SMS"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_SMS"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_SMS"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_SMS"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_SMS" IS '短信配置表'; + +-- ---------------------------- +-- Table structure for BLADE_TENANT +-- ---------------------------- +--DROP TABLE "BLADE_TENANT"; +CREATE TABLE "BLADE_TENANT" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "TENANT_NAME" NVARCHAR2(50) NOT NULL , + "DOMAIN_URL" VARCHAR2(255 BYTE) , + "BACKGROUND_URL" VARCHAR2(1000 BYTE) , + "LINKMAN" NVARCHAR2(20) , + "CONTACT_NUMBER" NVARCHAR2(20) , + "ADDRESS" NVARCHAR2(255) , + "ACCOUNT_NUMBER" NUMBER DEFAULT -1 , + "EXPIRE_TIME" DATE , + "PACKAGE_ID" NUMBER(20) , + "DATASOURCE_ID" NUMBER(20) , + "LICENSE_KEY" VARCHAR2(1000 BYTE) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_TENANT"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_TENANT"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_TENANT"."TENANT_NAME" IS '租户名称'; +COMMENT ON COLUMN "BLADE_TENANT"."DOMAIN_URL" IS '域名地址'; +COMMENT ON COLUMN "BLADE_TENANT"."BACKGROUND_URL" IS '系统背景'; +COMMENT ON COLUMN "BLADE_TENANT"."LINKMAN" IS '联系人'; +COMMENT ON COLUMN "BLADE_TENANT"."CONTACT_NUMBER" IS '联系电话'; +COMMENT ON COLUMN "BLADE_TENANT"."ADDRESS" IS '联系地址'; +COMMENT ON COLUMN "BLADE_TENANT"."ACCOUNT_NUMBER" IS '账号额度'; +COMMENT ON COLUMN "BLADE_TENANT"."EXPIRE_TIME" IS '过期时间'; +COMMENT ON COLUMN "BLADE_TENANT"."PACKAGE_ID" IS '产品包ID'; +COMMENT ON COLUMN "BLADE_TENANT"."DATASOURCE_ID" IS '数据源ID'; +COMMENT ON COLUMN "BLADE_TENANT"."LICENSE_KEY" IS '授权码'; +COMMENT ON COLUMN "BLADE_TENANT"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_TENANT"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_TENANT"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_TENANT"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_TENANT"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_TENANT" IS '租户表'; + +-- ---------------------------- +-- Records of BLADE_TENANT +-- ---------------------------- +INSERT INTO "BLADE_TENANT" VALUES ('1123598820738675201', '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', '-1', NULL, NULL, NULL, NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_TENANT_PACKAGE +-- ---------------------------- +--DROP TABLE "BLADE_TENANT_PACKAGE"; +CREATE TABLE "BLADE_TENANT_PACKAGE" ( + "ID" NUMBER(20) NOT NULL , + "PACKAGE_NAME" NVARCHAR2(50) , + "MENU_ID" NVARCHAR2(2000) , + "REMARK" NVARCHAR2(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."PACKAGE_NAME" IS '产品包名'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."MENU_ID" IS '菜单ID'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_TENANT_PACKAGE" IS '租户产品表'; + +-- ---------------------------- +-- Table structure for BLADE_TOP_MENU +-- ---------------------------- +--DROP TABLE "BLADE_TOP_MENU"; +CREATE TABLE "BLADE_TOP_MENU" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "CODE" NVARCHAR2(255) , + "NAME" NVARCHAR2(255) , + "SOURCE" NVARCHAR2(255) , + "SORT" NUMBER(11) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_TOP_MENU"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."CODE" IS '顶部菜单编号'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."NAME" IS '顶部菜单名'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."SOURCE" IS '顶部菜单资源'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."SORT" IS '顶部菜单排序'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_TOP_MENU"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_TOP_MENU" IS '顶部菜单表'; + +-- ---------------------------- +-- Table structure for BLADE_TOP_MENU_SETTING +-- ---------------------------- +--DROP TABLE "BLADE_TOP_MENU_SETTING"; +CREATE TABLE "BLADE_TOP_MENU_SETTING" ( + "ID" NUMBER(20) NOT NULL , + "TOP_MENU_ID" NUMBER(20) , + "MENU_ID" NUMBER(20) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."TOP_MENU_ID" IS '顶部菜单主键'; +COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."MENU_ID" IS '菜单主键'; +COMMENT ON TABLE "BLADE_TOP_MENU_SETTING" IS '顶部菜单配置表'; + +-- ---------------------------- +-- Table structure for BLADE_USER +-- ---------------------------- +--DROP TABLE "BLADE_USER"; +CREATE TABLE "BLADE_USER" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" NVARCHAR2(12) , + "CODE" NVARCHAR2(12) , + "USER_TYPE" NUMBER(6) , + "ACCOUNT" NVARCHAR2(45) , + "PASSWORD" NVARCHAR2(45) , + "NAME" NVARCHAR2(20) , + "REAL_NAME" NVARCHAR2(10) , + "AVATAR" NVARCHAR2(500) , + "EMAIL" NVARCHAR2(45) , + "PHONE" NVARCHAR2(45) , + "BIRTHDAY" DATE , + "SEX" NUMBER(6) , + "ROLE_ID" NVARCHAR2(1000) , + "DEPT_ID" NVARCHAR2(1000) , + "POST_ID" NVARCHAR2(1000) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_USER"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_USER"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_USER"."CODE" IS '用户编号'; +COMMENT ON COLUMN "BLADE_USER"."USER_TYPE" IS '用户平台'; +COMMENT ON COLUMN "BLADE_USER"."ACCOUNT" IS '账号'; +COMMENT ON COLUMN "BLADE_USER"."PASSWORD" IS '密码'; +COMMENT ON COLUMN "BLADE_USER"."NAME" IS '昵称'; +COMMENT ON COLUMN "BLADE_USER"."REAL_NAME" IS '真名'; +COMMENT ON COLUMN "BLADE_USER"."EMAIL" IS '邮箱'; +COMMENT ON COLUMN "BLADE_USER"."PHONE" IS '手机'; +COMMENT ON COLUMN "BLADE_USER"."BIRTHDAY" IS '生日'; +COMMENT ON COLUMN "BLADE_USER"."SEX" IS '性别'; +COMMENT ON COLUMN "BLADE_USER"."ROLE_ID" IS '角色ID'; +COMMENT ON COLUMN "BLADE_USER"."DEPT_ID" IS '部门ID'; +COMMENT ON COLUMN "BLADE_USER"."POST_ID" IS '岗位ID'; +COMMENT ON COLUMN "BLADE_USER"."CREATE_USER" IS '创建人'; +COMMENT ON COLUMN "BLADE_USER"."CREATE_DEPT" IS '创建部门'; +COMMENT ON COLUMN "BLADE_USER"."CREATE_TIME" IS '创建时间'; +COMMENT ON COLUMN "BLADE_USER"."UPDATE_USER" IS '修改人'; +COMMENT ON COLUMN "BLADE_USER"."UPDATE_TIME" IS '修改时间'; +COMMENT ON COLUMN "BLADE_USER"."STATUS" IS '状态'; +COMMENT ON COLUMN "BLADE_USER"."IS_DELETED" IS '是否已删除'; +COMMENT ON TABLE "BLADE_USER" IS '用户表'; + +-- ---------------------------- +-- Records of BLADE_USER +-- ---------------------------- +INSERT INTO "BLADE_USER" VALUES ('1123598821738675201', '000000', NULL, '1', 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://bladex.cn/images/logo.png', 'admin@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675201', '1123598813738675201', '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_USER" VALUES ('1123598821738675202', '000000', NULL, '1', 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://bladex.cn/images/logo.png', 'hr@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675203', '1123598813738675202', '1123598817738675207', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_USER" VALUES ('1123598821738675203', '000000', NULL, '1', 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://bladex.cn/images/logo.png', 'manager@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675204', '1123598813738675202', '1123598817738675206', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_USER" VALUES ('1123598821738675204', '000000', NULL, '1', 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://bladex.cn/images/logo.png', 'boss@bladex.vip', '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675205', '1123598813738675202', '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_USER_APP +-- ---------------------------- +--DROP TABLE "BLADE_USER_APP"; +CREATE TABLE "BLADE_USER_APP" ( + "ID" NUMBER(20) NOT NULL , + "USER_ID" NUMBER(20) , + "USER_EXT" VARCHAR2(255 BYTE) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_USER_APP"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_USER_APP"."USER_ID" IS '用户ID'; +COMMENT ON COLUMN "BLADE_USER_APP"."USER_EXT" IS '用户拓展信息'; +COMMENT ON TABLE "BLADE_USER_APP" IS '用户平台拓展表'; + +-- ---------------------------- +-- Table structure for BLADE_USER_DEPT +-- ---------------------------- +--DROP TABLE "BLADE_USER_DEPT"; +CREATE TABLE "BLADE_USER_DEPT" ( + "ID" NUMBER(20) NOT NULL , + "USER_ID" NUMBER(20) , + "DEPT_ID" NUMBER(20) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_USER_DEPT"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_USER_DEPT"."USER_ID" IS '用户ID'; +COMMENT ON COLUMN "BLADE_USER_DEPT"."DEPT_ID" IS '部门ID'; +COMMENT ON TABLE "BLADE_USER_DEPT" IS '用户部门表'; + +-- ---------------------------- +-- Records of BLADE_USER_DEPT +-- ---------------------------- +INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503640757788674', '1123598821738675201', '1123598813738675201'); +INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503653323923458', '1123598821738675202', '1123598813738675202'); +INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503663402835969', '1123598821738675203', '1123598813738675202'); +INSERT INTO "BLADE_USER_DEPT" VALUES ('1203503672911323137', '1123598821738675204', '1123598813738675202'); +COMMIT; + +-- ---------------------------- +-- Table structure for BLADE_USER_OAUTH +-- ---------------------------- +--DROP TABLE "BLADE_USER_OAUTH"; +CREATE TABLE "BLADE_USER_OAUTH" ( + "ID" NUMBER(20) NOT NULL , + "TENANT_ID" VARCHAR2(12 BYTE) , + "UUID" VARCHAR2(64 BYTE) , + "USER_ID" NUMBER(20) , + "USERNAME" VARCHAR2(32 BYTE) , + "NICKNAME" VARCHAR2(64 BYTE) , + "AVATAR" VARCHAR2(1000 BYTE) , + "BLOG" VARCHAR2(50 BYTE) , + "COMPANY" VARCHAR2(255 BYTE) , + "LOCATION" VARCHAR2(255 BYTE) , + "EMAIL" VARCHAR2(255 BYTE) , + "REMARK" VARCHAR2(255 BYTE) , + "GENDER" VARCHAR2(16 BYTE) , + "SOURCE" VARCHAR2(16 BYTE) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户ID'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."USERNAME" IS '账号'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."NICKNAME" IS '用户名'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."AVATAR" IS '头像'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."BLOG" IS '应用主页'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."COMPANY" IS '公司名'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."LOCATION" IS '地址'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."EMAIL" IS '邮件'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."REMARK" IS '备注'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."GENDER" IS '性别'; +COMMENT ON COLUMN "BLADE_USER_OAUTH"."SOURCE" IS '来源'; +COMMENT ON TABLE "BLADE_USER_OAUTH" IS '用户第三方认证表'; + +-- ---------------------------- +-- Table structure for BLADE_USER_OTHER +-- ---------------------------- +--DROP TABLE "BLADE_USER_OTHER"; +CREATE TABLE "BLADE_USER_OTHER" ( + "ID" NUMBER(20) NOT NULL , + "USER_ID" NUMBER(20) , + "USER_EXT" VARCHAR2(255 BYTE) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_USER_OTHER"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_ID" IS '用户ID'; +COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_EXT" IS '用户拓展信息'; +COMMENT ON TABLE "BLADE_USER_OTHER" IS '用户平台拓展表'; + +-- ---------------------------- +-- Table structure for BLADE_USER_WEB +-- ---------------------------- +--DROP TABLE "BLADE_USER_WEB"; +CREATE TABLE "BLADE_USER_WEB" ( + "ID" NUMBER(20) NOT NULL , + "USER_ID" NUMBER(20) , + "USER_EXT" VARCHAR2(255 BYTE) +) +TABLESPACE "USERS" +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; +COMMENT ON COLUMN "BLADE_USER_WEB"."ID" IS '主键'; +COMMENT ON COLUMN "BLADE_USER_WEB"."USER_ID" IS '用户ID'; +COMMENT ON COLUMN "BLADE_USER_WEB"."USER_EXT" IS '用户拓展信息'; +COMMENT ON TABLE "BLADE_USER_WEB" IS '用户平台拓展表'; + +-- ---------------------------- +-- Table PRIMARY KEY +-- ---------------------------- +ALTER TABLE "BLADE_USER_WEB" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_OTHER" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_OAUTH" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_DEPT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_APP" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TOP_MENU" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TENANT_PACKAGE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TENANT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_SMS" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_SCOPE_DATA" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_SCOPE_API" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ROLE_SCOPE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ROLE_MENU" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ROLE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_REPORT_FILE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_REGION" ADD PRIMARY KEY("CODE") ; + +ALTER TABLE "BLADE_PROCESS_LEAVE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_POST" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_PARAM" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_OSS" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_NOTICE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_MODEL_PROTOTYPE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_MODEL" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_MENU" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_JOB_INFO" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_JOB_SERVER" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_LOG_USUAL" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_LOG_ERROR" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_LOG_API" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DICT_BIZ" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DICT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DEPT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DATASOURCE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_CODE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_CLIENT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ATTACH" ADD PRIMARY KEY("ID") ; diff --git a/doc/sql/bladex/bladex.postgres.all.create.sql b/doc/sql/bladex/bladex.postgres.all.create.sql new file mode 100644 index 0000000..aca8c03 --- /dev/null +++ b/doc/sql/bladex/bladex.postgres.all.create.sql @@ -0,0 +1,5445 @@ +/* + Navicat Premium Data Transfer + + Source Server : postgres_localhost + Source Server Type : PostgreSQL + Source Server Version : 110001 + Source Host : localhost:5432 + Source Catalog : bladex + Source Schema : public + + Target Server Type : PostgreSQL + Target Server Version : 110001 + File Encoding : 65001 + + Date: 01/01/2024 01:44:33 +*/ + + +-- ---------------------------- +-- Table structure for blade_attach +-- ---------------------------- +DROP TABLE IF EXISTS "blade_attach"; +CREATE TABLE "blade_attach" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "link" varchar(1000) COLLATE "pg_catalog"."default", + "domain_url" varchar(500) COLLATE "pg_catalog"."default", + "name" varchar(500) COLLATE "pg_catalog"."default", + "original_name" varchar(500) COLLATE "pg_catalog"."default", + "extension" varchar(12) COLLATE "pg_catalog"."default", + "attach_size" int8, + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_attach"."id" IS '主键'; +COMMENT ON COLUMN "blade_attach"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_attach"."link" IS '附件地址'; +COMMENT ON COLUMN "blade_attach"."domain_url" IS '附件域名'; +COMMENT ON COLUMN "blade_attach"."name" IS '附件名称'; +COMMENT ON COLUMN "blade_attach"."original_name" IS '附件原名'; +COMMENT ON COLUMN "blade_attach"."extension" IS '附件拓展名'; +COMMENT ON COLUMN "blade_attach"."attach_size" IS '附件大小'; +COMMENT ON COLUMN "blade_attach"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_attach"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_attach"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_attach"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_attach"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_attach"."status" IS '状态'; +COMMENT ON COLUMN "blade_attach"."is_deleted" IS '是否已删除'; + +-- ---------------------------- +-- Table structure for blade_client +-- ---------------------------- +DROP TABLE IF EXISTS "blade_client"; +CREATE TABLE "blade_client" ( + "id" int8 NOT NULL, + "client_id" varchar(48) COLLATE "pg_catalog"."default" NOT NULL, + "client_secret" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, + "resource_ids" varchar(256) COLLATE "pg_catalog"."default", + "scope" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, + "authorized_grant_types" varchar(256) COLLATE "pg_catalog"."default" NOT NULL, + "web_server_redirect_uri" varchar(256) COLLATE "pg_catalog"."default", + "authorities" varchar(256) COLLATE "pg_catalog"."default", + "access_token_validity" int4 NOT NULL, + "refresh_token_validity" int4 NOT NULL, + "additional_information" varchar(4096) COLLATE "pg_catalog"."default", + "autoapprove" varchar(256) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4 NOT NULL, + "is_deleted" int4 NOT NULL +) +; +COMMENT ON COLUMN "blade_client"."id" IS '主键'; +COMMENT ON COLUMN "blade_client"."client_id" IS '客户端id'; +COMMENT ON COLUMN "blade_client"."client_secret" IS '客户端密钥'; +COMMENT ON COLUMN "blade_client"."resource_ids" IS '资源集合'; +COMMENT ON COLUMN "blade_client"."scope" IS '授权范围'; +COMMENT ON COLUMN "blade_client"."authorized_grant_types" IS '授权类型'; +COMMENT ON COLUMN "blade_client"."web_server_redirect_uri" IS '回调地址'; +COMMENT ON COLUMN "blade_client"."authorities" IS '权限'; +COMMENT ON COLUMN "blade_client"."access_token_validity" IS '令牌过期秒数'; +COMMENT ON COLUMN "blade_client"."refresh_token_validity" IS '刷新令牌过期秒数'; +COMMENT ON COLUMN "blade_client"."additional_information" IS '附加说明'; +COMMENT ON COLUMN "blade_client"."autoapprove" IS '自动授权'; +COMMENT ON COLUMN "blade_client"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_client"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_client"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_client"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_client"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_client"."status" IS '状态'; +COMMENT ON COLUMN "blade_client"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_client" IS '客户端表'; + +-- ---------------------------- +-- Records of blade_client +-- ---------------------------- +BEGIN; +INSERT INTO "blade_client" VALUES (1123598811738675201, 'sword', 'sword_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:8888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:40:55', 1123598815738675201, '2019-03-24 10:40:59', 1, 0); +INSERT INTO "blade_client" VALUES (1123598811738675202, 'saber', 'saber_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:1888', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2019-03-24 10:42:29', 1123598815738675201, '2019-03-24 10:42:32', 1, 0); +INSERT INTO "blade_client" VALUES (1123598811738675203, 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); +INSERT INTO "blade_client" VALUES (1123598811738675204, 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); + +COMMIT; + +-- ---------------------------- +-- Table structure for blade_code +-- ---------------------------- +DROP TABLE IF EXISTS "blade_code"; +CREATE TABLE "blade_code" ( + "id" int8 NOT NULL, + "model_id" int8, + "service_name" varchar(64) COLLATE "pg_catalog"."default", + "code_name" varchar(64) COLLATE "pg_catalog"."default", + "table_name" varchar(64) COLLATE "pg_catalog"."default", + "table_prefix" varchar(64) COLLATE "pg_catalog"."default", + "pk_name" varchar(32) COLLATE "pg_catalog"."default", + "package_name" varchar(500) COLLATE "pg_catalog"."default", + "base_mode" int2, + "wrap_mode" int2, + "feign_mode" int2, + "code_style" varchar(32) COLLATE "pg_catalog"."default", + "api_path" varchar(2000) COLLATE "pg_catalog"."default", + "web_path" varchar(2000) COLLATE "pg_catalog"."default", + "is_deleted" int4, + "template_type" varchar(32) COLLATE "pg_catalog"."default", + "author" varchar(32) COLLATE "pg_catalog"."default", + "sub_model_id" varchar(32) COLLATE "pg_catalog"."default", + "sub_fk_id" varchar(32) COLLATE "pg_catalog"."default", + "tree_id" varchar(32) COLLATE "pg_catalog"."default", + "tree_pid" varchar(32) COLLATE "pg_catalog"."default", + "tree_name" varchar(64) COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "blade_code"."id" IS '主键'; +COMMENT ON COLUMN "blade_code"."model_id" IS '数据模型主键'; +COMMENT ON COLUMN "blade_code"."service_name" IS '服务名称'; +COMMENT ON COLUMN "blade_code"."code_name" IS '模块名称'; +COMMENT ON COLUMN "blade_code"."table_name" IS '表名'; +COMMENT ON COLUMN "blade_code"."table_prefix" IS '表前缀'; +COMMENT ON COLUMN "blade_code"."pk_name" IS '主键名'; +COMMENT ON COLUMN "blade_code"."package_name" IS '后端包名'; +COMMENT ON COLUMN "blade_code"."base_mode" IS '基础业务模式'; +COMMENT ON COLUMN "blade_code"."wrap_mode" IS '包装器模式'; +COMMENT ON COLUMN "blade_code"."feign_mode" IS '远程调用模式'; +COMMENT ON COLUMN "blade_code"."code_style" IS '代码风格'; +COMMENT ON COLUMN "blade_code"."api_path" IS '后端路径'; +COMMENT ON COLUMN "blade_code"."web_path" IS '前端路径'; +COMMENT ON COLUMN "blade_code"."is_deleted" IS '是否已删除'; +COMMENT ON COLUMN "blade_code"."template_type" IS '模版类型'; +COMMENT ON COLUMN "blade_code"."author" IS '作者信息'; +COMMENT ON COLUMN "blade_code"."sub_model_id" IS '子表模型主键'; +COMMENT ON COLUMN "blade_code"."sub_fk_id" IS '子表绑定外键'; +COMMENT ON COLUMN "blade_code"."tree_id" IS '树主键字段'; +COMMENT ON COLUMN "blade_code"."tree_pid" IS '树父主键字段'; +COMMENT ON COLUMN "blade_code"."tree_name" IS '树名称字段'; +COMMENT ON TABLE "blade_code" IS '代码生成表'; + +-- ---------------------------- +-- Table structure for blade_datasource +-- ---------------------------- +DROP TABLE IF EXISTS "blade_datasource"; +CREATE TABLE "blade_datasource" ( + "id" int8 NOT NULL, + "category" int4 DEFAULT 1, + "name" varchar(100) COLLATE "pg_catalog"."default", + "driver_class" varchar(100) COLLATE "pg_catalog"."default", + "url" varchar(500) COLLATE "pg_catalog"."default", + "username" varchar(45) COLLATE "pg_catalog"."default", + "password" varchar(45) COLLATE "pg_catalog"."default", + "sharding_config" text COLLATE "pg_catalog"."default", + "remark" varchar(500) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_datasource"."id" IS '主键'; +COMMENT ON COLUMN "blade_datasource"."name" IS '名称'; +COMMENT ON COLUMN "blade_datasource"."driver_class" IS '驱动类'; +COMMENT ON COLUMN "blade_datasource"."url" IS '链接地址'; +COMMENT ON COLUMN "blade_datasource"."username" IS '用户名'; +COMMENT ON COLUMN "blade_datasource"."password" IS '密码'; +COMMENT ON COLUMN "blade_datasource"."remark" IS '备注'; +COMMENT ON COLUMN "blade_datasource"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_datasource"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_datasource"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_datasource"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_datasource"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_datasource"."status" IS '状态'; +COMMENT ON COLUMN "blade_datasource"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_datasource" IS '数据源配置表'; + +-- ---------------------------- +-- Records of blade_datasource +-- ---------------------------- +BEGIN; +INSERT INTO "blade_datasource" VALUES (1161483357481541634, 1, 'mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root', 'root', '', 'mysql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:06', 1123598821738675201, '2020-08-08 12:20:06', 1, 0); +INSERT INTO "blade_datasource" VALUES (1161483504353484802, 1, 'postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres', '123456', '', 'postgresql', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:02', 1123598821738675201, '2020-08-08 12:20:02', 1, 0); +INSERT INTO "blade_datasource" VALUES (1161483594023510018, 1, 'oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX', 'BLADEX', '', 'oracle', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0); +INSERT INTO "blade_datasource" VALUES (1161483594023510020, 1, 'sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex', 'bladex', '', 'sqlserver', 1123598821738675201, 1123598813738675201, '2020-08-08 12:20:03', 1123598821738675201, '2020-08-08 12:20:03', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dept +-- ---------------------------- +DROP TABLE IF EXISTS "blade_dept"; +CREATE TABLE "blade_dept" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "parent_id" int8, + "ancestors" varchar(2000) COLLATE "pg_catalog"."default", + "dept_category" int4, + "dept_name" varchar(45) COLLATE "pg_catalog"."default", + "full_name" varchar(45) COLLATE "pg_catalog"."default", + "sort" int4, + "remark" varchar(255) COLLATE "pg_catalog"."default", + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_dept"."id" IS '主键'; +COMMENT ON COLUMN "blade_dept"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_dept"."parent_id" IS '父主键'; +COMMENT ON COLUMN "blade_dept"."ancestors" IS '祖级列表'; +COMMENT ON COLUMN "blade_dept"."dept_category" IS '部门类型'; +COMMENT ON COLUMN "blade_dept"."dept_name" IS '部门名'; +COMMENT ON COLUMN "blade_dept"."full_name" IS '部门全称'; +COMMENT ON COLUMN "blade_dept"."sort" IS '排序'; +COMMENT ON COLUMN "blade_dept"."remark" IS '备注'; +COMMENT ON COLUMN "blade_dept"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_dept" IS '机构表'; + +-- ---------------------------- +-- Records of blade_dept +-- ---------------------------- +BEGIN; +INSERT INTO "blade_dept" VALUES (1123598813738675201, '000000', 0, '0', 1, '布雷德科技', '上海布雷德科技有限公司', 1, NULL, 0); +INSERT INTO "blade_dept" VALUES (1123598813738675202, '000000', 1123598813738675201, '0,1123598813738675201', 1, '常州布雷德', '常州布雷德科技有限公司', 1, NULL, 0); +INSERT INTO "blade_dept" VALUES (1123598813738675203, '000000', 1123598813738675201, '0,1123598813738675201', 1, '苏州布雷德', '苏州布雷德科技有限公司', 1, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dict +-- ---------------------------- +DROP TABLE IF EXISTS "blade_dict"; +CREATE TABLE "blade_dict" ( + "id" int8 NOT NULL, + "parent_id" int8, + "code" varchar(255) COLLATE "pg_catalog"."default", + "dict_key" varchar(255) COLLATE "pg_catalog"."default", + "dict_value" varchar(255) COLLATE "pg_catalog"."default", + "sort" int4, + "remark" varchar(255) COLLATE "pg_catalog"."default", + "is_sealed" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_dict"."id" IS '主键'; +COMMENT ON COLUMN "blade_dict"."parent_id" IS '父主键'; +COMMENT ON COLUMN "blade_dict"."code" IS '字典码'; +COMMENT ON COLUMN "blade_dict"."dict_key" IS '字典值'; +COMMENT ON COLUMN "blade_dict"."dict_value" IS '字典名称'; +COMMENT ON COLUMN "blade_dict"."sort" IS '排序'; +COMMENT ON COLUMN "blade_dict"."remark" IS '字典备注'; +COMMENT ON COLUMN "blade_dict"."is_sealed" IS '是否已封存'; +COMMENT ON COLUMN "blade_dict"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_dict" IS '字典表'; + +-- ---------------------------- +-- Records of blade_dict +-- ---------------------------- +BEGIN; +INSERT INTO "blade_dict" VALUES (1123598814738675201, 0, 'sex', '-1', '性别', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675202, 1123598814738675201, 'sex', '1', '男', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675203, 1123598814738675201, 'sex', '2', '女', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675204, 0, 'notice', '-1', '通知类型', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675205, 1123598814738675204, 'notice', '1', '发布通知', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675206, 1123598814738675204, 'notice', '2', '批转通知', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675207, 1123598814738675204, 'notice', '3', '转发通知', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675208, 1123598814738675204, 'notice', '4', '指示通知', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675209, 1123598814738675204, 'notice', '5', '任免通知', 5, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675210, 1123598814738675204, 'notice', '6', '事务通知', 6, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675211, 0, 'menu_category', '-1', '菜单类型', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675212, 1123598814738675211, 'menu_category', '1', '菜单', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675213, 1123598814738675211, 'menu_category', '2', '按钮', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675214, 0, 'button_func', '-1', '按钮功能', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675215, 1123598814738675214, 'button_func', '1', '工具栏', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675216, 1123598814738675214, 'button_func', '2', '操作栏', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675217, 1123598814738675214, 'button_func', '3', '工具操作栏', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675218, 0, 'yes_no', '-1', '是否', 5, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675219, 1123598814738675218, 'yes_no', '1', '否', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675220, 1123598814738675218, 'yes_no', '2', '是', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675221, 0, 'flow', '-1', '流程类型', 5, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675222, 1123598814738675221, 'flow', '1', '请假流程', 1, 'leave', 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675223, 1123598814738675221, 'flow', '2', '报销流程', 2, 'expense', 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675227, 0, 'org_category', '-1', '机构类型', 7, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675228, 1123598814738675227, 'org_category', '1', '公司', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675229, 1123598814738675227, 'org_category', '2', '部门', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675230, 1123598814738675227, 'org_category', '3', '小组', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675231, 0, 'data_scope_type', '-1', '数据权限', 8, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675232, 1123598814738675231, 'data_scope_type', '1', '全部可见', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675233, 1123598814738675231, 'data_scope_type', '2', '本人可见', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675234, 1123598814738675231, 'data_scope_type', '3', '所在机构可见', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675235, 1123598814738675231, 'data_scope_type', '4', '所在机构及子级可见', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675236, 1123598814738675231, 'data_scope_type', '5', '自定义', 5, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675237, 0, 'api_scope_type', '-1', '接口权限', 10, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675238, 1123598814738675237, 'api_scope_type', '1', '系统接口', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675239, 1123598814738675237, 'api_scope_type', '2', '业务接口', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675240, 0, 'scope_category', '-1', '权限类型', 10, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675241, 1123598814738675240, 'scope_category', '1', '数据权限', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738675242, 1123598814738675240, 'scope_category', '2', '接口权限', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676224, 0, 'oss', '-1', '对象存储类型', 6, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676225, 1123598814738676224, 'oss', '1', 'minio', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676226, 1123598814738676224, 'oss', '2', '七牛云', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676227, 1123598814738676224, 'oss', '3', '阿里云', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676228, 1123598814738676224, 'oss', '4', '腾讯云', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676229, 1123598814738676224, 'oss', '5', '华为云', 5, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738676230, 1123598814738676224, 'oss', '6', 'amazon s3', 6, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738677220, 0, 'sms', '-1', '短信服务类型', 11, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738677221, 1123598814738677220, 'sms', '1', '云片', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738677222, 1123598814738677220, 'sms', '2', '七牛云', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738677223, 1123598814738677220, 'sms', '3', '阿里云', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738677224, 1123598814738677220, 'sms', '4', '腾讯云', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777220, 0, 'post_category', '-1', '岗位类型', 12, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777221, 1123598814738777220, 'post_category', '1', '高层', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777222, 1123598814738777220, 'post_category', '2', '中层', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777223, 1123598814738777220, 'post_category', '3', '基层', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777224, 1123598814738777220, 'post_category', '4', '其他', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777230, 0, 'region', '-1', '行政区划', 13, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777231, 1123598814738777230, 'region', '0', '国家', 0, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777232, 1123598814738777230, 'region', '1', '省份/直辖市', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777233, 1123598814738777230, 'region', '2', '地市', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777234, 1123598814738777230, 'region', '3', '区县', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777235, 1123598814738777230, 'region', '4', '乡镇', 4, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738777236, 1123598814738777230, 'region', '5', '村委', 5, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738778200, 0, 'user_type', '-1', '用户平台', 14, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738778201, 1123598814738778200, 'user_type', '1', 'WEB', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738778202, 1123598814738778200, 'user_type', '2', 'APP', 2, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1123598814738778203, 1123598814738778200, 'user_type', '3', 'OTHER', 3, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1735215689272508418, 0, 'datasource_category', '-1', '数据源类型', 16, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1735215870613241857, 1735215689272508418, 'datasource_category', '1', 'jdbc', 1, NULL, 0, 0); +INSERT INTO "blade_dict" VALUES (1735215901546233858, 1735215689272508418, 'datasource_category', '2', 'sharding', 2, NULL, 0, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_dict_biz +-- ---------------------------- +DROP TABLE IF EXISTS "blade_dict_biz"; +CREATE TABLE "blade_dict_biz" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "parent_id" int8, + "code" varchar(255) COLLATE "pg_catalog"."default", + "dict_key" varchar(255) COLLATE "pg_catalog"."default", + "dict_value" varchar(255) COLLATE "pg_catalog"."default", + "sort" int4, + "remark" varchar(255) COLLATE "pg_catalog"."default", + "is_sealed" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_dict_biz"."id" IS '主键'; +COMMENT ON COLUMN "blade_dict_biz"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_dict_biz"."parent_id" IS '父主键'; +COMMENT ON COLUMN "blade_dict_biz"."code" IS '字典码'; +COMMENT ON COLUMN "blade_dict_biz"."dict_key" IS '字典值'; +COMMENT ON COLUMN "blade_dict_biz"."dict_value" IS '字典名称'; +COMMENT ON COLUMN "blade_dict_biz"."sort" IS '排序'; +COMMENT ON COLUMN "blade_dict_biz"."remark" IS '字典备注'; +COMMENT ON COLUMN "blade_dict_biz"."is_sealed" IS '是否已封存'; +COMMENT ON COLUMN "blade_dict_biz"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_dict_biz" IS '业务字典表'; + +-- ---------------------------- +-- Table structure for blade_job_info +-- ---------------------------- +DROP TABLE IF EXISTS "blade_job_info"; +CREATE TABLE "blade_job_info" ( + "id" int8 NOT NULL, + "job_server_id" int8, + "job_id" int8, + "job_name" varchar(50) COLLATE "pg_catalog"."default", + "job_description" varchar(255) COLLATE "pg_catalog"."default", + "job_params" text COLLATE "pg_catalog"."default", + "time_expression_type" int4, + "time_expression" varchar(255) COLLATE "pg_catalog"."default", + "execute_type" int4, + "processor_type" int4, + "processor_info" varchar(255) COLLATE "pg_catalog"."default", + "max_instance_num" int4, + "concurrency" int4, + "instance_time_limit" int8, + "instance_retry_num" int4, + "task_retry_num" int4, + "min_cpu_cores" float8, + "min_memory_space" float8, + "min_disk_space" float8, + "designated_workers" varchar(255) COLLATE "pg_catalog"."default", + "max_worker_count" int4, + "notify_user_ids" varchar(2000) COLLATE "pg_catalog"."default", + "enable" int4, + "dispatch_strategy" int4, + "lifecycle" varchar(255) COLLATE "pg_catalog"."default", + "alert_threshold" int4, + "statistic_window_len" int4, + "silence_window_len" int4, + "log_type" int4, + "log_level" int4, + "extra" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_job_info"."id" IS '主键'; +COMMENT ON COLUMN "blade_job_info"."job_server_id" IS '任务服务ID'; +COMMENT ON COLUMN "blade_job_info"."job_id" IS '任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID'; +COMMENT ON COLUMN "blade_job_info"."job_name" IS '任务名称'; +COMMENT ON COLUMN "blade_job_info"."job_description" IS '任务描述'; +COMMENT ON COLUMN "blade_job_info"."job_params" IS '任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段'; +COMMENT ON COLUMN "blade_job_info"."time_expression_type" IS '时间表达式类型,枚举值'; +COMMENT ON COLUMN "blade_job_info"."time_expression" IS '时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式'; +COMMENT ON COLUMN "blade_job_info"."execute_type" IS '执行类型,枚举值'; +COMMENT ON COLUMN "blade_job_info"."processor_type" IS '处理器类型,枚举值'; +COMMENT ON COLUMN "blade_job_info"."processor_info" IS '处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo'; +COMMENT ON COLUMN "blade_job_info"."max_instance_num" IS '最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)'; +COMMENT ON COLUMN "blade_job_info"."concurrency" IS '单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量'; +COMMENT ON COLUMN "blade_job_info"."instance_time_limit" IS '任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败'; +COMMENT ON COLUMN "blade_job_info"."instance_retry_num" IS 'instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用'; +COMMENT ON COLUMN "blade_job_info"."task_retry_num" IS 'taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用'; +COMMENT ON COLUMN "blade_job_info"."min_cpu_cores" IS 'minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制'; +COMMENT ON COLUMN "blade_job_info"."min_memory_space" IS '最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制'; +COMMENT ON COLUMN "blade_job_info"."min_disk_space" IS '最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制'; +COMMENT ON COLUMN "blade_job_info"."designated_workers" IS '指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器'; +COMMENT ON COLUMN "blade_job_info"."max_worker_count" IS '最大执行机器数量,限定调动执行的机器数量,0代表无限制'; +COMMENT ON COLUMN "blade_job_info"."notify_user_ids" IS '接收报警的用户 ID 列表'; +COMMENT ON COLUMN "blade_job_info"."enable" IS '是否启用该任务,未启用的任务不会被调度'; +COMMENT ON COLUMN "blade_job_info"."dispatch_strategy" IS '调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)'; +COMMENT ON COLUMN "blade_job_info"."lifecycle" IS 'lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)'; +COMMENT ON COLUMN "blade_job_info"."alert_threshold" IS '错误阈值,0代表不限制'; +COMMENT ON COLUMN "blade_job_info"."statistic_window_len" IS '统计的窗口长度(s),0代表不限制'; +COMMENT ON COLUMN "blade_job_info"."silence_window_len" IS '沉默时间窗口(s),0代表不限制'; +COMMENT ON COLUMN "blade_job_info"."log_type" IS '日志配置'; +COMMENT ON COLUMN "blade_job_info"."log_level" IS '日志级别'; +COMMENT ON COLUMN "blade_job_info"."extra" IS '扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)'; +COMMENT ON COLUMN "blade_job_info"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_job_info"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_job_info"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_job_info"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_job_info"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_job_info"."status" IS '状态'; +COMMENT ON COLUMN "blade_job_info"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_job_info" IS '任务信息表'; + +-- ---------------------------- +-- Table structure for blade_job_server +-- ---------------------------- +DROP TABLE IF EXISTS "blade_job_server"; +CREATE TABLE "blade_job_server" ( + "id" int8 NOT NULL, + "job_server_name" varchar(50) COLLATE "pg_catalog"."default", + "job_server_url" varchar(255) COLLATE "pg_catalog"."default", + "job_app_name" varchar(20) COLLATE "pg_catalog"."default", + "job_app_password" varchar(100) COLLATE "pg_catalog"."default", + "job_remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_job_server"."id" IS '主键'; +COMMENT ON COLUMN "blade_job_server"."job_server_name" IS '任务服务名称'; +COMMENT ON COLUMN "blade_job_server"."job_server_url" IS '任务服务器地址'; +COMMENT ON COLUMN "blade_job_server"."job_app_name" IS '任务应用名称'; +COMMENT ON COLUMN "blade_job_server"."job_app_password" IS '任务应用密码'; +COMMENT ON COLUMN "blade_job_server"."job_remark" IS '任务备注'; +COMMENT ON COLUMN "blade_job_server"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_job_server"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_job_server"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_job_server"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_job_server"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_job_server"."status" IS '状态'; +COMMENT ON COLUMN "blade_job_server"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_job_server" IS '任务服务表'; + +-- ---------------------------- +-- Records of blade_job_server +-- ---------------------------- +BEGIN; +INSERT INTO "blade_job_server" VALUES (1741512022505590785, '任务调度服务器', '127.0.0.1:7700', 'blade-job', 'blade-job', '基础服务', 1123598821738675201, 1123598813738675201, '2024-01-01 01:29:57', 1123598821738675201, '2024-01-01 01:29:57', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_log_api +-- ---------------------------- +DROP TABLE IF EXISTS "blade_log_api"; +CREATE TABLE "blade_log_api" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "service_id" varchar(32) COLLATE "pg_catalog"."default", + "server_host" varchar(255) COLLATE "pg_catalog"."default", + "server_ip" varchar(255) COLLATE "pg_catalog"."default", + "env" varchar(255) COLLATE "pg_catalog"."default", + "type" char(1) COLLATE "pg_catalog"."default", + "title" varchar(255) COLLATE "pg_catalog"."default", + "method" varchar(10) COLLATE "pg_catalog"."default", + "request_uri" varchar(255) COLLATE "pg_catalog"."default", + "user_agent" varchar(1000) COLLATE "pg_catalog"."default", + "remote_ip" varchar(255) COLLATE "pg_catalog"."default", + "method_class" varchar(255) COLLATE "pg_catalog"."default", + "method_name" varchar(255) COLLATE "pg_catalog"."default", + "params" text COLLATE "pg_catalog"."default", + "time" varchar(64) COLLATE "pg_catalog"."default", + "create_by" varchar(64) COLLATE "pg_catalog"."default", + "create_time" timestamp(6) +) +; +COMMENT ON COLUMN "blade_log_api"."id" IS '编号'; +COMMENT ON COLUMN "blade_log_api"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_log_api"."service_id" IS '服务ID'; +COMMENT ON COLUMN "blade_log_api"."server_host" IS '服务器名'; +COMMENT ON COLUMN "blade_log_api"."server_ip" IS '服务器IP地址'; +COMMENT ON COLUMN "blade_log_api"."env" IS '服务器环境'; +COMMENT ON COLUMN "blade_log_api"."type" IS '日志类型'; +COMMENT ON COLUMN "blade_log_api"."title" IS '日志标题'; +COMMENT ON COLUMN "blade_log_api"."method" IS '操作方式'; +COMMENT ON COLUMN "blade_log_api"."request_uri" IS '请求URI'; +COMMENT ON COLUMN "blade_log_api"."user_agent" IS '用户代理'; +COMMENT ON COLUMN "blade_log_api"."remote_ip" IS '操作IP地址'; +COMMENT ON COLUMN "blade_log_api"."method_class" IS '方法类'; +COMMENT ON COLUMN "blade_log_api"."method_name" IS '方法名'; +COMMENT ON COLUMN "blade_log_api"."params" IS '操作提交的数据'; +COMMENT ON COLUMN "blade_log_api"."time" IS '执行时间'; +COMMENT ON COLUMN "blade_log_api"."create_by" IS '创建者'; +COMMENT ON COLUMN "blade_log_api"."create_time" IS '创建时间'; +COMMENT ON TABLE "blade_log_api" IS '接口日志表'; + +-- ---------------------------- +-- Table structure for blade_log_error +-- ---------------------------- +DROP TABLE IF EXISTS "blade_log_error"; +CREATE TABLE "blade_log_error" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "service_id" varchar(32) COLLATE "pg_catalog"."default", + "server_host" varchar(255) COLLATE "pg_catalog"."default", + "server_ip" varchar(255) COLLATE "pg_catalog"."default", + "env" varchar(255) COLLATE "pg_catalog"."default", + "method" varchar(10) COLLATE "pg_catalog"."default", + "request_uri" varchar(255) COLLATE "pg_catalog"."default", + "user_agent" varchar(1000) COLLATE "pg_catalog"."default", + "stack_trace" text COLLATE "pg_catalog"."default", + "exception_name" varchar(255) COLLATE "pg_catalog"."default", + "message" text COLLATE "pg_catalog"."default", + "line_number" int4, + "remote_ip" varchar(255) COLLATE "pg_catalog"."default", + "method_class" varchar(255) COLLATE "pg_catalog"."default", + "file_name" varchar(1000) COLLATE "pg_catalog"."default", + "method_name" varchar(255) COLLATE "pg_catalog"."default", + "params" text COLLATE "pg_catalog"."default", + "create_by" varchar(64) COLLATE "pg_catalog"."default", + "create_time" timestamp(6) +) +; +COMMENT ON COLUMN "blade_log_error"."id" IS '编号'; +COMMENT ON COLUMN "blade_log_error"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_log_error"."service_id" IS '服务ID'; +COMMENT ON COLUMN "blade_log_error"."server_host" IS '服务器名'; +COMMENT ON COLUMN "blade_log_error"."server_ip" IS '服务器IP地址'; +COMMENT ON COLUMN "blade_log_error"."env" IS '系统环境'; +COMMENT ON COLUMN "blade_log_error"."method" IS '操作方式'; +COMMENT ON COLUMN "blade_log_error"."request_uri" IS '请求URI'; +COMMENT ON COLUMN "blade_log_error"."user_agent" IS '用户代理'; +COMMENT ON COLUMN "blade_log_error"."stack_trace" IS '堆栈'; +COMMENT ON COLUMN "blade_log_error"."exception_name" IS '异常名'; +COMMENT ON COLUMN "blade_log_error"."message" IS '异常信息'; +COMMENT ON COLUMN "blade_log_error"."line_number" IS '错误行数'; +COMMENT ON COLUMN "blade_log_error"."remote_ip" IS '操作IP地址'; +COMMENT ON COLUMN "blade_log_error"."method_class" IS '方法类'; +COMMENT ON COLUMN "blade_log_error"."file_name" IS '文件名'; +COMMENT ON COLUMN "blade_log_error"."method_name" IS '方法名'; +COMMENT ON COLUMN "blade_log_error"."params" IS '操作提交的数据'; +COMMENT ON COLUMN "blade_log_error"."create_by" IS '创建者'; +COMMENT ON COLUMN "blade_log_error"."create_time" IS '创建时间'; +COMMENT ON TABLE "blade_log_error" IS '错误日志表'; + +-- ---------------------------- +-- Table structure for blade_log_usual +-- ---------------------------- +DROP TABLE IF EXISTS "blade_log_usual"; +CREATE TABLE "blade_log_usual" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "service_id" varchar(32) COLLATE "pg_catalog"."default", + "server_host" varchar(255) COLLATE "pg_catalog"."default", + "server_ip" varchar(255) COLLATE "pg_catalog"."default", + "env" varchar(255) COLLATE "pg_catalog"."default", + "log_level" varchar(10) COLLATE "pg_catalog"."default", + "log_id" varchar(100) COLLATE "pg_catalog"."default", + "log_data" text COLLATE "pg_catalog"."default", + "method" varchar(10) COLLATE "pg_catalog"."default", + "request_uri" varchar(255) COLLATE "pg_catalog"."default", + "remote_ip" varchar(255) COLLATE "pg_catalog"."default", + "method_class" varchar(255) COLLATE "pg_catalog"."default", + "method_name" varchar(255) COLLATE "pg_catalog"."default", + "user_agent" varchar(1000) COLLATE "pg_catalog"."default", + "params" text COLLATE "pg_catalog"."default", + "create_by" varchar(64) COLLATE "pg_catalog"."default", + "create_time" timestamp(6) +) +; +COMMENT ON COLUMN "blade_log_usual"."id" IS '编号'; +COMMENT ON COLUMN "blade_log_usual"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_log_usual"."service_id" IS '服务ID'; +COMMENT ON COLUMN "blade_log_usual"."server_host" IS '服务器名'; +COMMENT ON COLUMN "blade_log_usual"."server_ip" IS '服务器IP地址'; +COMMENT ON COLUMN "blade_log_usual"."env" IS '系统环境'; +COMMENT ON COLUMN "blade_log_usual"."log_level" IS '日志级别'; +COMMENT ON COLUMN "blade_log_usual"."log_id" IS '日志业务id'; +COMMENT ON COLUMN "blade_log_usual"."log_data" IS '日志数据'; +COMMENT ON COLUMN "blade_log_usual"."method" IS '操作方式'; +COMMENT ON COLUMN "blade_log_usual"."request_uri" IS '请求URI'; +COMMENT ON COLUMN "blade_log_usual"."remote_ip" IS '操作IP地址'; +COMMENT ON COLUMN "blade_log_usual"."method_class" IS '方法类'; +COMMENT ON COLUMN "blade_log_usual"."method_name" IS '方法名'; +COMMENT ON COLUMN "blade_log_usual"."user_agent" IS '用户代理'; +COMMENT ON COLUMN "blade_log_usual"."params" IS '操作提交的数据'; +COMMENT ON COLUMN "blade_log_usual"."create_by" IS '创建者'; +COMMENT ON COLUMN "blade_log_usual"."create_time" IS '创建时间'; +COMMENT ON TABLE "blade_log_usual" IS '通用日志表'; + +-- ---------------------------- +-- Table structure for blade_menu +-- ---------------------------- +DROP TABLE IF EXISTS "blade_menu"; +CREATE TABLE "blade_menu" ( + "id" int8 NOT NULL, + "parent_id" int8, + "code" varchar(255) COLLATE "pg_catalog"."default", + "name" varchar(255) COLLATE "pg_catalog"."default", + "alias" varchar(255) COLLATE "pg_catalog"."default", + "path" varchar(255) COLLATE "pg_catalog"."default", + "source" varchar(255) COLLATE "pg_catalog"."default", + "sort" int4, + "category" int4, + "action" int4, + "is_open" int4, + "component" varchar(255) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_menu"."id" IS '主键'; +COMMENT ON COLUMN "blade_menu"."parent_id" IS '父级菜单'; +COMMENT ON COLUMN "blade_menu"."code" IS '菜单编号'; +COMMENT ON COLUMN "blade_menu"."name" IS '菜单名称'; +COMMENT ON COLUMN "blade_menu"."alias" IS '菜单别名'; +COMMENT ON COLUMN "blade_menu"."path" IS '请求地址'; +COMMENT ON COLUMN "blade_menu"."source" IS '菜单资源'; +COMMENT ON COLUMN "blade_menu"."sort" IS '排序'; +COMMENT ON COLUMN "blade_menu"."category" IS '菜单类型'; +COMMENT ON COLUMN "blade_menu"."action" IS '操作按钮类型'; +COMMENT ON COLUMN "blade_menu"."is_open" IS '是否打开新页面'; +COMMENT ON COLUMN "blade_menu"."component" IS '组件地址'; +COMMENT ON COLUMN "blade_menu"."remark" IS '备注'; +COMMENT ON COLUMN "blade_menu"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_menu" IS '菜单表'; + +-- ---------------------------- +-- Records of blade_menu +-- ---------------------------- +BEGIN; +INSERT INTO "blade_menu" VALUES (1123598815738675201, 0, 'desk', '工作台', 'menu', '/desk', 'iconfont iconicon_airplay', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675202, 1123598815738675201, 'notice', '通知公告', 'menu', '/desk/notice', 'iconfont iconicon_sms', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675203, 0, 'system', '系统管理', 'menu', '/system', 'iconfont iconicon_setting', 99, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675204, 1123598815738675203, 'user', '用户管理', 'menu', '/system/user', 'iconfont iconicon_principal', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675205, 1123598815738675203, 'dept', '机构管理', 'menu', '/system/dept', 'iconfont iconicon_group', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675210, 0, 'monitor', '系统监控', 'menu', '/monitor', 'iconfont icon-yanzhengma', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675213, 1123598815738675210, 'log', '日志管理', 'menu', '/monitor/log', 'iconfont iconicon_doc', 8, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675214, 1123598815738675213, 'log_usual', '通用日志', 'menu', '/monitor/log/usual', NULL, 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675215, 1123598815738675213, 'log_api', '接口日志', 'menu', '/monitor/log/api', NULL, 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675216, 1123598815738675213, 'log_error', '错误日志', 'menu', '/monitor/log/error', NULL, 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675217, 0, 'tool', '研发工具', 'menu', '/tool', 'iconfont icon-wxbgongju', 4, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675218, 1123598815738675217, 'code', '代码生成', 'menu', '/tool/code', 'iconfont iconicon_savememo', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675219, 1123598815738675202, 'notice_add', '新增', 'add', '/desk/notice/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675220, 1123598815738675202, 'notice_edit', '修改', 'edit', '/desk/notice/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675221, 1123598815738675202, 'notice_delete', '删除', 'delete', '/api/blade-desk/notice/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675222, 1123598815738675202, 'notice_view', '查看', 'view', '/desk/notice/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675223, 1123598815738675204, 'user_add', '新增', 'add', '/system/user/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675224, 1123598815738675204, 'user_edit', '修改', 'edit', '/system/user/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675225, 1123598815738675204, 'user_delete', '删除', 'delete', '/api/blade-system/user/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675226, 1123598815738675204, 'user_role', '角色配置', 'role', NULL, 'user-add', 4, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675227, 1123598815738675204, 'user_reset', '密码重置', 'reset-password', '/api/blade-system/user/reset-password', 'retweet', 5, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675228, 1123598815738675204, 'user_view', '查看', 'view', '/system/user/view', 'file-text', 6, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675229, 1123598815738675205, 'dept_add', '新增', 'add', '/system/dept/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675230, 1123598815738675205, 'dept_edit', '修改', 'edit', '/system/dept/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675231, 1123598815738675205, 'dept_delete', '删除', 'delete', '/api/blade-system/dept/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675232, 1123598815738675205, 'dept_view', '查看', 'view', '/system/dept/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675233, 1123598815738675206, 'dict_add', '新增', 'add', '/system/dict/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675234, 1123598815738675206, 'dict_edit', '修改', 'edit', '/system/dict/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675235, 1123598815738675206, 'dict_delete', '删除', 'delete', '/api/blade-system/dict/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675236, 1123598815738675206, 'dict_view', '查看', 'view', '/system/dict/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675237, 1123598815738675207, 'menu_add', '新增', 'add', '/system/menu/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675238, 1123598815738675207, 'menu_edit', '修改', 'edit', '/system/menu/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675239, 1123598815738675207, 'menu_delete', '删除', 'delete', '/api/blade-system/menu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675240, 1123598815738675207, 'menu_view', '查看', 'view', '/system/menu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675241, 1123598815738675308, 'role_add', '新增', 'add', '/authority/role/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675242, 1123598815738675308, 'role_edit', '修改', 'edit', '/authority/role/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675243, 1123598815738675308, 'role_delete', '删除', 'delete', '/api/blade-system/role/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675244, 1123598815738675308, 'role_view', '查看', 'view', '/authority/role/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675245, 1123598815738675209, 'param_add', '新增', 'add', '/system/param/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675246, 1123598815738675209, 'param_edit', '修改', 'edit', '/system/param/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675247, 1123598815738675209, 'param_delete', '删除', 'delete', '/api/blade-system/param/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675248, 1123598815738675209, 'param_view', '查看', 'view', '/system/param/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675249, 1123598815738675214, 'log_usual_view', '查看', 'view', '/monitor/log/usual/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675250, 1123598815738675215, 'log_api_view', '查看', 'view', '/monitor/log/api/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675251, 1123598815738675216, 'log_error_view', '查看', 'view', '/monitor/log/error/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675252, 1123598815738675218, 'code_add', '新增', 'add', '/tool/code/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675253, 1123598815738675218, 'code_edit', '修改', 'edit', '/tool/code/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675254, 1123598815738675218, 'code_delete', '删除', 'delete', '/api/blade-system/code/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675255, 1123598815738675218, 'code_view', '查看', 'view', '/tool/code/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675257, 1123598815738675256, 'tenant_add', '新增', 'add', '/system/tenant/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675258, 1123598815738675256, 'tenant_edit', '修改', 'edit', '/system/tenant/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675259, 1123598815738675256, 'tenant_delete', '删除', 'delete', '/api/blade-system/tenant/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675260, 1123598815738675256, 'tenant_view', '查看', 'view', '/system/tenant/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675262, 1123598815738675261, 'client_add', '新增', 'add', '/system/client/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675208, 1123598815738675203, 'topmenu', '顶部菜单', 'menu', '/system/topmenu', 'iconfont icon-canshu', 7, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675209, 1123598815738675203, 'param', '参数管理', 'menu', '/system/param', 'iconfont iconicon_community_line', 8, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675207, 1123598815738675203, 'menu', '菜单管理', 'menu', '/system/menu', 'iconfont iconicon_subordinate', 6, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675256, 1123598815738675203, 'tenant', '租户管理', 'menu', '/system/tenant', 'iconfont icon-quanxian', 9, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675261, 1123598815738675203, 'client', '应用管理', 'menu', '/system/client', 'iconfont iconicon_mobilephone', 10, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675212, 1123598815738675210, 'admin', '服务治理', 'menu', 'http://localhost:7002', 'iconfont icon-canshu', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675263, 1123598815738675261, 'client_edit', '修改', 'edit', '/system/client/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675266, 0, 'flow', '流程管理', 'menu', '/flow', 'iconfont iconicon_send', 5, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675267, 1123598815738675266, 'flow_model', '模型管理', 'menu', '/flow/model', 'iconfont iconicon_discovery', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675268, 1123598815738675267, 'flow_model_create', '创建', 'create', '', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675269, 1123598815738675267, 'flow_model_update', '编辑', 'update', '', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675270, 1123598815738675267, 'flow_model_deploy', '部署', 'deploy', '', 'cloud-upload', 3, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675271, 1123598815738675267, 'flow_model_download', '下载', 'download', '', 'download', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675272, 1123598815738675267, 'flow_model_delete', '删除', 'delete', '/api/blade-flow/model/remove', 'delete', 5, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675273, 1123598815738675266, 'flow_deploy', '流程部署', 'menu', '/flow/deploy', 'iconfont iconicon_cspace', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675274, 1123598815738675266, 'flow_manager', '流程管理', 'menu', '/flow/manager', 'iconfont iconicon_cloud_history', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675275, 1123598815738675274, 'flow_manager_state', '变更状态', 'state', '', 'plus', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675276, 1123598815738675274, 'flow_manager_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675277, 1123598815738675274, 'flow_manager_remove', '删除', 'remove', '', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675278, 1123598815738675266, 'flow_follow', '流程跟踪', 'menu', '/flow/follow', 'iconfont iconicon_GPS', 4, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675279, 1123598815738675278, 'flow_follow_delete', '删除', 'remove', '', 'remove', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675280, 0, 'work', '我的事务', 'menu', '/work', 'iconfont iconicon_notice', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675281, 1123598815738675280, 'work_start', '发起事务', 'menu', '/work/start', 'iconfont iconicon_compile', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675282, 1123598815738675281, 'work_start_flow', '发起', 'flow', '', 'flow', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675283, 1123598815738675281, 'work_start_image', '流程图', 'image', '', 'image', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675284, 1123598815738675280, 'work_claim', '待签事务', 'menu', '/work/claim', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675285, 1123598815738675284, 'work_claim_sign', '签收', 'sign', '', 'sign', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675286, 1123598815738675284, 'work_claim_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675287, 1123598815738675284, 'work_claim_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675288, 1123598815738675280, 'work_todo', '待办事务', 'menu', '/work/todo', 'iconfont iconicon_savememo', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675289, 1123598815738675288, 'work_todo_handle', '办理', 'handle', '', 'handle', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675290, 1123598815738675288, 'work_todo_detail', '详情', 'detail', '', 'detail', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675291, 1123598815738675288, 'work_todo_follow', '跟踪', 'follow', '', 'follow', 3, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675292, 1123598815738675280, 'work_send', '已发事务', 'menu', '/work/send', 'iconfont iconicon_doc', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675293, 1123598815738675292, 'work_send_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675294, 1123598815738675292, 'work_send_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675295, 1123598815738675280, 'work_done', '办结事务', 'menu', '/work/done', 'iconfont iconicon_dispose', 4, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675296, 1123598815738675295, 'work_done_detail', '详情', 'detail', '', 'detail', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675297, 1123598815738675295, 'work_done_follow', '跟踪', 'follow', '', 'follow', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675298, 0, 'resource', '资源管理', 'menu', '/resource', 'iconfont iconicon_coinpurse_line', 6, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675299, 1123598815738675298, 'oss', '对象存储', 'menu', '/resource/oss', 'iconfont iconicon_subordinate', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675301, 1123598815738675299, 'oss_add', '新增', 'add', '/resource/oss/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675307, 0, 'authority', '权限管理', 'menu', '/authority', 'iconfont icon-bofangqi-suoping', 98, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675308, 1123598815738675307, 'role', '角色管理', 'menu', '/authority/role', 'iconfont iconicon_boss', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675309, 1123598815738675307, 'data_scope', '数据权限', 'menu', '/authority/datascope', 'iconfont icon-shujuzhanshi2', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675310, 1123598815738675309, 'data_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675311, 1123598815738675307, 'api_scope', '接口权限', 'menu', '/authority/apiscope', 'iconfont icon-iconset0216', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675312, 1123598815738675311, 'api_scope_setting', '权限配置', 'setting', NULL, 'setting', 1, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675313, 1123598815738675208, 'topmenu_add', '新增', 'add', '/system/topmenu/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675314, 1123598815738675208, 'topmenu_edit', '修改', 'edit', '/system/topmenu/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675315, 1123598815738675208, 'topmenu_delete', '删除', 'delete', '/api/blade-system/topmenu/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675316, 1123598815738675208, 'topmenu_view', '查看', 'view', '/system/topmenu/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675317, 1123598815738675208, 'topmenu_setting', '菜单配置', 'setting', NULL, 'setting', 5, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1161272593873321991, 1123598815738675217, 'datasource', '数据源管理', 'menu', '/tool/datasource', 'iconfont icon-caidanguanli', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1161272593873321992, 1161272593873321991, 'datasource_add', '新增', 'add', '/tool/datasource/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675265, 1123598815738675261, 'client_view', '查看', 'view', '/system/client/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675302, 1123598815738675299, 'oss_edit', '修改', 'edit', '/resource/oss/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675303, 1123598815738675299, 'oss_delete', '删除', 'delete', '/api/blade-resource/oss/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675304, 1123598815738675299, 'oss_view', '查看', 'view', '/resource/oss/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675305, 1123598815738675299, 'oss_enable', '启用', 'enable', '/api/blade-resource/oss/enable', 'key', 5, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1161272593873321993, 1161272593873321991, 'datasource_edit', '修改', 'edit', '/tool/datasource/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1161272593873321994, 1161272593873321991, 'datasource_delete', '删除', 'delete', '/api/blade-develop/datasource/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1161272593873321995, 1161272593873321991, 'datasource_view', '查看', 'view', '/tool/datasource/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1161272593873321996, 1123598815738675217, 'model', '数据模型设计', 'menu', '/tool/model', 'iconfont icon-biaodan', 3, 1, 0, 1, '', '', 0); +INSERT INTO "blade_menu" VALUES (1164733369658963251, 1123598815738675210, 'elk', 'ELK监控', 'menu', 'http://localhost:5601/', 'iconfont iconicon_cspace', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733369658963252, 1123598815738675210, 'zipkin', 'Zipkin监控', 'menu', 'http://localhost:9411/', 'iconfont iconicon_task', 4, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733369658963253, 1123598815738675210, 'turbine', 'Turbine监控', 'menu', 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', 5, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733379658963252, 1164733379658963251, 'dictbiz_add', '新增', 'add', '/system/dictbiz/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733379658963253, 1164733379658963251, 'dictbiz_edit', '修改', 'edit', '/system/dictbiz/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733379658963254, 1164733379658963251, 'dictbiz_delete', '删除', 'delete', '/api/blade-system/dict-biz/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733379658963255, 1164733379658963251, 'dictbiz_view', '查看', 'view', '/system/dictbiz/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658962251, 1123598815738675298, 'sms', '短信配置', 'menu', '/resource/sms', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658962252, 1164733389658962251, 'sms_add', '新增', 'add', '/resource/sms/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658962253, 1164733389658962251, 'sms_edit', '修改', 'edit', '/resource/sms/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658962254, 1164733389658962251, 'sms_delete', '删除', 'delete', '/api/blade-resource/sms/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658962255, 1164733389658962251, 'sms_view', '查看', 'view', '/resource/sms/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389668962252, 1164733389668962251, 'post_add', '新增', 'add', '/system/post/add', 'plus', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389668962253, 1164733389668962251, 'post_edit', '修改', 'edit', '/system/post/edit', 'form', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389668962254, 1164733389668962251, 'post_delete', '删除', 'delete', '/api/blade-system/post/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389668962255, 1164733389668962251, 'post_view', '查看', 'view', '/system/post/view', 'file-text', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389668962251, 1123598815738675203, 'post', '岗位管理', 'menu', '/system/post', 'iconfont iconicon_message', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675206, 1123598815738675203, 'dict', '系统字典', 'menu', '/system/dict', 'iconfont iconicon_addresslist', 4, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733379658963251, 1123598815738675203, 'dictbiz', '业务字典', 'menu', '/system/dictbiz', 'iconfont iconicon_study', 5, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962201, 0, 'base', '基础配置', 'menu', '/base', 'iconfont iconicon_affiliations_li', 97, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962202, 1164733399668962201, 'region', '行政区划', 'menu', '/base/region', 'iconfont icon-iframe', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962203, 1164733399668962202, 'region_add', '新增下级', 'add', '', '', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962204, 1164733399668962202, 'region_delete', '删除', 'delete', '/api/blade-system/region/remove', '', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962205, 1164733399668962202, 'region_import', '导入', 'import', '', '', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962206, 1164733399668962202, 'region_export', '导出', 'export', '', '', 4, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399668962207, 1164733399668962202, 'region_debug', '调试', 'debug', '', '', 5, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962201, 1123598815738675298, 'attach', '附件管理', 'menu', '/resource/attach', 'iconfont iconicon_ding', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962202, 1164733399669962201, 'attach_upload', '上传', 'upload', '/resource/attach/upload', '', 1, 2, 1, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962203, 1164733399669962201, 'attach_download', '下载', 'download', '/resource/attach/download', '', 2, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962204, 1164733399669962201, 'attach_delete', '删除', 'delete', '/api/blade-resource/attach/remove', '', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962301, 0, 'report', '报表管理', 'menu', '/report', 'iconfont icon-shujuzhanshi2', 5, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962303, 1164733399669962301, 'report_list', '报表列表', 'menu', '/report/reportlist', 'iconfont icon-biaodan', 2, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675211, 1123598815738675210, 'doc', '接口文档', 'menu', 'http://localhost/doc.html', 'iconfont iconicon_study', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1123598815738675264, 1123598815738675261, 'client_delete', '删除', 'delete', '/api/blade-system/client/remove', 'delete', 3, 2, 3, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733369658963254, 1123598815738675210, 'sentinel', 'Sentinel管理', 'menu', 'http://localhost:8858', 'iconfont iconicon_safety', 6, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733369658963255, 1123598815738675210, 'es', 'Elasticsearch管理', 'menu', 'http://localhost:9100/', 'iconfont iconfont iconicon_search', 7, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658962256, 1164733389658962251, 'sms_enable', '启用', 'enable', '/api/blade-resource/sms/enable', 'key', 5, 2, 2, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733389658963251, 1123598815738675298, 'xxljob', '任务调度', 'menu', 'http://localhost:8080/xxl-job-admin', 'iconfont iconicon_cspace', 5, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962302, 1164733399669962301, 'report_setting', '报表配置', 'menu', 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', 1, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962304, 1164733399669962301, 'report_notice', '公告报表', 'menu', 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', 3, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962401, 0, 'job', '任务管理', 'job', '/job', 'iconfont iconicon_cspace', 5, 1, 0, 1, '', NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962501, 1164733399669962401, 'jobserver', '任务应用', 'menu', '/job/jobserver', 'iconfont icon-shouji', 1, 1, 0, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962502, 1164733399669962501, 'jobserver_add', '新增', 'add', '/job/jobserver/add', 'plus', 1, 2, 1, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962503, 1164733399669962501, 'jobserver_edit', '修改', 'edit', '/job/jobserver/edit', 'form', 2, 2, 2, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962504, 1164733399669962501, 'jobserver_delete', '删除', 'delete', '/api/blade-job/jobserver/remove', 'delete', 3, 2, 3, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962505, 1164733399669962501, 'jobserver_view', '查看', 'view', '/job/jobserver/view', 'file-text', 4, 2, 2, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962601, 1164733399669962401, 'jobinfo', '任务配置', 'menu', '/job/jobinfo', 'iconfont icon-dongtai', 1, 1, 0, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962602, 1164733399669962601, 'jobinfo_add', '新增', 'add', '/job/jobinfo/add', 'plus', 1, 2, 1, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962603, 1164733399669962601, 'jobinfo_edit', '修改', 'edit', '/job/jobinfo/edit', 'form', 2, 2, 2, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962604, 1164733399669962601, 'jobinfo_delete', '删除', 'delete', '/api/blade-job/jobinfo/remove', 'delete', 3, 2, 3, 1, NULL, NULL, 0); +INSERT INTO "blade_menu" VALUES (1164733399669962605, 1164733399669962601, 'jobinfo_view', '查看', 'view', '/job/jobinfo/view', 'file-text', 4, 2, 2, 1, NULL, NULL, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_model +-- ---------------------------- +DROP TABLE IF EXISTS "blade_model"; +CREATE TABLE "blade_model" ( + "id" int8 NOT NULL, + "datasource_id" int8, + "model_name" varchar(50) COLLATE "pg_catalog"."default", + "model_code" varchar(50) COLLATE "pg_catalog"."default", + "model_table" varchar(100) COLLATE "pg_catalog"."default", + "model_class" varchar(100) COLLATE "pg_catalog"."default", + "model_remark" varchar(500) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_model"."id" IS '主键'; +COMMENT ON COLUMN "blade_model"."datasource_id" IS '数据源主键'; +COMMENT ON COLUMN "blade_model"."model_name" IS '模型名称'; +COMMENT ON COLUMN "blade_model"."model_code" IS '模型编号'; +COMMENT ON COLUMN "blade_model"."model_table" IS '物理表名'; +COMMENT ON COLUMN "blade_model"."model_class" IS '模型类名'; +COMMENT ON COLUMN "blade_model"."model_remark" IS '模型备注'; +COMMENT ON COLUMN "blade_model"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_model"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_model"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_model"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_model"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_model"."status" IS '状态'; +COMMENT ON COLUMN "blade_model"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_model" IS '数据模型表'; + +-- ---------------------------- +-- Table structure for blade_model_prototype +-- ---------------------------- +DROP TABLE IF EXISTS "blade_model_prototype"; +CREATE TABLE "blade_model_prototype" ( + "id" int8 NOT NULL, + "model_id" int8, + "jdbc_name" varchar(50) COLLATE "pg_catalog"."default", + "jdbc_type" varchar(20) COLLATE "pg_catalog"."default", + "jdbc_comment" varchar(500) COLLATE "pg_catalog"."default", + "property_type" varchar(20) COLLATE "pg_catalog"."default", + "property_entity" varchar(500) COLLATE "pg_catalog"."default", + "property_name" varchar(50) COLLATE "pg_catalog"."default", + "is_list" int4, + "is_form" int4, + "is_row" int4, + "component_type" varchar(50) COLLATE "pg_catalog"."default", + "dict_code" varchar(50) COLLATE "pg_catalog"."default", + "is_required" int4, + "validate_type" varchar(50) COLLATE "pg_catalog"."default", + "is_query" int4, + "query_type" varchar(50) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_model_prototype"."id" IS '主键'; +COMMENT ON COLUMN "blade_model_prototype"."model_id" IS '模型主键'; +COMMENT ON COLUMN "blade_model_prototype"."jdbc_name" IS '物理列名'; +COMMENT ON COLUMN "blade_model_prototype"."jdbc_type" IS '物理类型'; +COMMENT ON COLUMN "blade_model_prototype"."jdbc_comment" IS '注释说明'; +COMMENT ON COLUMN "blade_model_prototype"."property_type" IS '实体类型'; +COMMENT ON COLUMN "blade_model_prototype"."property_entity" IS '实体类型引用'; +COMMENT ON COLUMN "blade_model_prototype"."property_name" IS '实体列名'; +COMMENT ON COLUMN "blade_model_prototype"."is_list" IS '列表显示'; +COMMENT ON COLUMN "blade_model_prototype"."is_form" IS '表单显示'; +COMMENT ON COLUMN "blade_model_prototype"."is_row" IS '独占一行'; +COMMENT ON COLUMN "blade_model_prototype"."component_type" IS '组件类型'; +COMMENT ON COLUMN "blade_model_prototype"."dict_code" IS '字典编码'; +COMMENT ON COLUMN "blade_model_prototype"."is_required" IS '是否必填'; +COMMENT ON COLUMN "blade_model_prototype"."validate_type" IS '验证类型'; +COMMENT ON COLUMN "blade_model_prototype"."is_query" IS '查询配置'; +COMMENT ON COLUMN "blade_model_prototype"."query_type" IS '查询类型'; +COMMENT ON COLUMN "blade_model_prototype"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_model_prototype"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_model_prototype"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_model_prototype"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_model_prototype"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_model_prototype"."status" IS '状态'; +COMMENT ON COLUMN "blade_model_prototype"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_model_prototype" IS '数据原型表'; + +-- ---------------------------- +-- Table structure for blade_notice +-- ---------------------------- +DROP TABLE IF EXISTS "blade_notice"; +CREATE TABLE "blade_notice" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "title" varchar(255) COLLATE "pg_catalog"."default", + "category" int4, + "release_time" timestamp(6), + "content" varchar(2000) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_notice"."id" IS '主键'; +COMMENT ON COLUMN "blade_notice"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_notice"."title" IS '标题'; +COMMENT ON COLUMN "blade_notice"."category" IS '类型'; +COMMENT ON COLUMN "blade_notice"."release_time" IS '发布时间'; +COMMENT ON COLUMN "blade_notice"."content" IS '内容'; +COMMENT ON COLUMN "blade_notice"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_notice"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_notice"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_notice"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_notice"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_notice"."status" IS '状态'; +COMMENT ON COLUMN "blade_notice"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_notice" IS '通知公告表'; + +-- ---------------------------- +-- Records of blade_notice +-- ---------------------------- +BEGIN; +INSERT INTO "blade_notice" VALUES (1123598818738675223, '000000', '测试公告', 3, '2018-12-31 20:03:31', '222', 1123598821738675201, 1123598813738675201, '2018-12-05 20:03:31', 1123598821738675201, '2018-12-28 11:10:51', 1, 0); +INSERT INTO "blade_notice" VALUES (1123598818738675224, '000000', '测试公告2', 1, '2018-12-05 20:03:31', '333', 1123598821738675201, 1123598813738675201, '2018-12-28 10:32:26', 1123598821738675201, '2018-12-28 11:10:34', 1, 0); +INSERT INTO "blade_notice" VALUES (1123598818738675225, '000000', '测试公告3', 6, '2018-12-29 00:00:00', '11111', 1123598821738675201, 1123598813738675201, '2018-12-28 11:03:44', 1123598821738675201, '2018-12-28 11:10:28', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_oss +-- ---------------------------- +DROP TABLE IF EXISTS "blade_oss"; +CREATE TABLE "blade_oss" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "category" int4, + "oss_code" varchar(32) COLLATE "pg_catalog"."default", + "endpoint" varchar(255) COLLATE "pg_catalog"."default", + "transform_endpoint" varchar(255) COLLATE "pg_catalog"."default", + "access_key" varchar(255) COLLATE "pg_catalog"."default", + "secret_key" varchar(255) COLLATE "pg_catalog"."default", + "bucket_name" varchar(255) COLLATE "pg_catalog"."default", + "app_id" varchar(255) COLLATE "pg_catalog"."default", + "region" varchar(255) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_oss"."id" IS '主键'; +COMMENT ON COLUMN "blade_oss"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_oss"."category" IS '分类'; +COMMENT ON COLUMN "blade_oss"."oss_code" IS '资源编号'; +COMMENT ON COLUMN "blade_oss"."endpoint" IS '资源地址'; +COMMENT ON COLUMN "blade_oss"."transform_endpoint" IS '外网资源地址'; +COMMENT ON COLUMN "blade_oss"."access_key" IS 'accessKey'; +COMMENT ON COLUMN "blade_oss"."secret_key" IS 'secretKey'; +COMMENT ON COLUMN "blade_oss"."bucket_name" IS '空间名'; +COMMENT ON COLUMN "blade_oss"."app_id" IS '应用ID'; +COMMENT ON COLUMN "blade_oss"."region" IS '地域简称'; +COMMENT ON COLUMN "blade_oss"."remark" IS '备注'; +COMMENT ON COLUMN "blade_oss"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_oss"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_oss"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_oss"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_oss"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_oss"."status" IS '状态'; +COMMENT ON COLUMN "blade_oss"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_oss" IS '对象存储表'; + +-- ---------------------------- +-- Records of blade_oss +-- ---------------------------- +BEGIN; +INSERT INTO "blade_oss" VALUES (1132486733992468482, '000000', 1, 'minio', 'http://127.0.0.1:9000', '', 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:20:52', 1123598821738675201, '2019-05-27 08:34:55', 2, 0); +INSERT INTO "blade_oss" VALUES (1132487155981393922, '000000', 2, 'qiniu', 'http://ps458elcs.bkt.clouddn.com', '', 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', '', '', '', 1123598821738675201, 1123598813738675201, '2019-05-26 11:22:33', 1123598821738675201, '2019-05-26 23:27:56', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_param +-- ---------------------------- +DROP TABLE IF EXISTS "blade_param"; +CREATE TABLE "blade_param" ( + "id" int8 NOT NULL, + "param_name" varchar(255) COLLATE "pg_catalog"."default", + "param_key" varchar(255) COLLATE "pg_catalog"."default", + "param_value" varchar(255) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_param"."id" IS '主键'; +COMMENT ON COLUMN "blade_param"."param_name" IS '参数名'; +COMMENT ON COLUMN "blade_param"."param_key" IS '参数键'; +COMMENT ON COLUMN "blade_param"."param_value" IS '参数值'; +COMMENT ON COLUMN "blade_param"."remark" IS '备注'; +COMMENT ON COLUMN "blade_param"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_param"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_param"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_param"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_param"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_param"."status" IS '状态'; +COMMENT ON COLUMN "blade_param"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_param" IS '参数表'; + +-- ---------------------------- +-- Records of blade_param +-- ---------------------------- +BEGIN; +INSERT INTO "blade_param" VALUES (1123598819738675201, '是否开启注册功能', 'account.registerUser', 'true', '开启注册', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0); +INSERT INTO "blade_param" VALUES (1123598819738675202, '账号初始密码', 'account.initPassword', '123456', '初始密码', 1123598821738675201, 1123598813738675201, '2018-12-28 12:19:01', 1123598821738675201, '2018-12-28 12:19:01', 1, 0); +INSERT INTO "blade_param" VALUES (1123598819738675203, '账号错误锁定次数', 'account.failCount', '5', '锁定次数', 1123598821738675201, 1123598813738675201, '2021-12-01 12:00:00', 1123598821738675201, '2021-12-01 12:00:00', 1, 0); +INSERT INTO "blade_param" VALUES (1238706101399142402, '租户默认管理密码', 'tenant.default.password', 'admin', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:43', 1123598821738675201, '2020-03-14 13:58:43', 1, 0); +INSERT INTO "blade_param" VALUES (1238706160295559170, '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:58:57', 1123598821738675201, '2020-03-14 13:58:57', 1, 0); +INSERT INTO "blade_param" VALUES (1238706330076790786, '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, 1123598821738675201, 1123598813738675201, '2020-03-14 13:59:38', 1123598821738675201, '2020-03-14 13:59:38', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_post +-- ---------------------------- +DROP TABLE IF EXISTS "blade_post"; +CREATE TABLE "blade_post" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "category" int4, + "post_code" varchar(12) COLLATE "pg_catalog"."default", + "post_name" varchar(64) COLLATE "pg_catalog"."default", + "sort" int4, + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_post"."id" IS '主键'; +COMMENT ON COLUMN "blade_post"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_post"."category" IS '岗位类型'; +COMMENT ON COLUMN "blade_post"."post_code" IS '岗位编号'; +COMMENT ON COLUMN "blade_post"."post_name" IS '岗位名称'; +COMMENT ON COLUMN "blade_post"."sort" IS '岗位排序'; +COMMENT ON COLUMN "blade_post"."remark" IS '岗位排序'; +COMMENT ON COLUMN "blade_post"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_post"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_post"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_post"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_post"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_post"."status" IS '状态'; +COMMENT ON COLUMN "blade_post"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_post" IS '岗位表'; + +-- ---------------------------- +-- Records of blade_post +-- ---------------------------- +BEGIN; +INSERT INTO "blade_post" VALUES (1123598817738675201, '000000', 1, 'ceo', '首席执行官', 1, '总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675202, '000000', 1, 'coo', '首席运营官', 2, '常务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675203, '000000', 1, 'cfo', '首席财务官', 3, '财务总经理', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675204, '000000', 1, 'cto', '首席技术官', 4, '技术总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675205, '000000', 1, 'cio', '首席信息官', 5, '信息总监', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675206, '000000', 2, 'pm', '技术经理', 6, '研发和产品是永远的朋友', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675207, '000000', 2, 'hrm', '人力经理', 7, '人力资源部门工作管理者', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +INSERT INTO "blade_post" VALUES (1123598817738675208, '000000', 3, 'staff', '普通员工', 8, '普通员工', 1123598821738675201, 1123598813738675201, '2020-04-01 00:00:00', 1123598821738675201, '2020-04-01 00:00:00', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_process_leave +-- ---------------------------- +DROP TABLE IF EXISTS "blade_process_leave"; +CREATE TABLE "blade_process_leave" ( + "id" int8 NOT NULL, + "process_definition_id" varchar(64) COLLATE "pg_catalog"."default", + "process_instance_id" varchar(64) COLLATE "pg_catalog"."default", + "start_time" timestamp(6), + "end_time" timestamp(6), + "reason" varchar(255) COLLATE "pg_catalog"."default", + "task_user" varchar(255) COLLATE "pg_catalog"."default", + "apply_time" timestamp(6), + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_process_leave"."id" IS '编号'; +COMMENT ON COLUMN "blade_process_leave"."process_definition_id" IS '流程定义主键'; +COMMENT ON COLUMN "blade_process_leave"."process_instance_id" IS '流程实例主键'; +COMMENT ON COLUMN "blade_process_leave"."start_time" IS '开始时间'; +COMMENT ON COLUMN "blade_process_leave"."end_time" IS '结束时间'; +COMMENT ON COLUMN "blade_process_leave"."reason" IS '请假理由'; +COMMENT ON COLUMN "blade_process_leave"."task_user" IS '第一级审批人'; +COMMENT ON COLUMN "blade_process_leave"."apply_time" IS '申请时间'; +COMMENT ON COLUMN "blade_process_leave"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_process_leave"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_process_leave"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_process_leave"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_process_leave"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_process_leave"."status" IS '状态'; +COMMENT ON COLUMN "blade_process_leave"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_process_leave" IS '流程请假业务表'; + +-- ---------------------------- +-- Table structure for blade_region +-- ---------------------------- +DROP TABLE IF EXISTS "blade_region"; +CREATE TABLE "blade_region" ( + "code" varchar(12) COLLATE "pg_catalog"."default" NOT NULL, + "parent_code" varchar(12) COLLATE "pg_catalog"."default", + "ancestors" varchar(255) COLLATE "pg_catalog"."default", + "name" varchar(32) COLLATE "pg_catalog"."default", + "province_code" varchar(12) COLLATE "pg_catalog"."default", + "province_name" varchar(32) COLLATE "pg_catalog"."default", + "city_code" varchar(12) COLLATE "pg_catalog"."default", + "city_name" varchar(32) COLLATE "pg_catalog"."default", + "district_code" varchar(12) COLLATE "pg_catalog"."default", + "district_name" varchar(32) COLLATE "pg_catalog"."default", + "town_code" varchar(12) COLLATE "pg_catalog"."default", + "town_name" varchar(32) COLLATE "pg_catalog"."default", + "village_code" varchar(12) COLLATE "pg_catalog"."default", + "village_name" varchar(32) COLLATE "pg_catalog"."default", + "region_level" int4, + "sort" int4, + "remark" varchar(255) COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "blade_region"."code" IS '区划编号'; +COMMENT ON COLUMN "blade_region"."parent_code" IS '父区划编号'; +COMMENT ON COLUMN "blade_region"."ancestors" IS '祖区划编号'; +COMMENT ON COLUMN "blade_region"."name" IS '区划名称'; +COMMENT ON COLUMN "blade_region"."province_code" IS '省级区划编号'; +COMMENT ON COLUMN "blade_region"."province_name" IS '省级名称'; +COMMENT ON COLUMN "blade_region"."city_code" IS '市级区划编号'; +COMMENT ON COLUMN "blade_region"."city_name" IS '市级名称'; +COMMENT ON COLUMN "blade_region"."district_code" IS '区级区划编号'; +COMMENT ON COLUMN "blade_region"."district_name" IS '区级名称'; +COMMENT ON COLUMN "blade_region"."town_code" IS '镇级区划编号'; +COMMENT ON COLUMN "blade_region"."town_name" IS '镇级名称'; +COMMENT ON COLUMN "blade_region"."village_code" IS '村级区划编号'; +COMMENT ON COLUMN "blade_region"."village_name" IS '村级名称'; +COMMENT ON COLUMN "blade_region"."region_level" IS '层级'; +COMMENT ON COLUMN "blade_region"."sort" IS '排序'; +COMMENT ON COLUMN "blade_region"."remark" IS '备注'; +COMMENT ON TABLE "blade_region" IS '行政区划表'; + +-- ---------------------------- +-- Records of blade_region +-- ---------------------------- +BEGIN; +INSERT INTO "blade_region" VALUES ('00', '0', '0', '中华人民共和国', '', '', '', '', '', '', '', '', '', '', 0, 1, ''); +INSERT INTO "blade_region" VALUES ('11', '00', '00', '北京市', '11', '北京市', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('1101', '11', '00,11', '北京市', '11', '北京市', '1101', '北京市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('110101', '1101', '00,11,1101', '东城区', '11', '北京市', '1101', '北京市', '110101', '东城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110102', '1101', '00,11,1101', '西城区', '11', '北京市', '1101', '北京市', '110102', '西城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11', '北京市', '1101', '北京市', '110105', '朝阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110106', '1101', '00,11,1101', '丰台区', '11', '北京市', '1101', '北京市', '110106', '丰台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110107', '1101', '00,11,1101', '石景山区', '11', '北京市', '1101', '北京市', '110107', '石景山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110108', '1101', '00,11,1101', '海淀区', '11', '北京市', '1101', '北京市', '110108', '海淀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11', '北京市', '1101', '北京市', '110109', '门头沟区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110111', '1101', '00,11,1101', '房山区', '11', '北京市', '1101', '北京市', '110111', '房山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110112', '1101', '00,11,1101', '通州区', '11', '北京市', '1101', '北京市', '110112', '通州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110113', '1101', '00,11,1101', '顺义区', '11', '北京市', '1101', '北京市', '110113', '顺义区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110114', '1101', '00,11,1101', '昌平区', '11', '北京市', '1101', '北京市', '110114', '昌平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110115', '1101', '00,11,1101', '大兴区', '11', '北京市', '1101', '北京市', '110115', '大兴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11', '北京市', '1101', '北京市', '110116', '怀柔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110117', '1101', '00,11,1101', '平谷区', '11', '北京市', '1101', '北京市', '110117', '平谷区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110118', '1101', '00,11,1101', '密云区', '11', '北京市', '1101', '北京市', '110118', '密云区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('110119', '1101', '00,11,1101', '延庆区', '11', '北京市', '1101', '北京市', '110119', '延庆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('12', '00', '00', '天津市', '12', '天津市', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('1201', '12', '00,12', '天津市', '12', '天津市', '1201', '天津市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('120101', '1201', '00,12,1201', '和平区', '12', '天津市', '1201', '天津市', '120101', '和平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120102', '1201', '00,12,1201', '河东区', '12', '天津市', '1201', '天津市', '120102', '河东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120103', '1201', '00,12,1201', '河西区', '12', '天津市', '1201', '天津市', '120103', '河西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120104', '1201', '00,12,1201', '南开区', '12', '天津市', '1201', '天津市', '120104', '南开区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120105', '1201', '00,12,1201', '河北区', '12', '天津市', '1201', '天津市', '120105', '河北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120106', '1201', '00,12,1201', '红桥区', '12', '天津市', '1201', '天津市', '120106', '红桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120110', '1201', '00,12,1201', '东丽区', '12', '天津市', '1201', '天津市', '120110', '东丽区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120111', '1201', '00,12,1201', '西青区', '12', '天津市', '1201', '天津市', '120111', '西青区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120112', '1201', '00,12,1201', '津南区', '12', '天津市', '1201', '天津市', '120112', '津南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120113', '1201', '00,12,1201', '北辰区', '12', '天津市', '1201', '天津市', '120113', '北辰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120114', '1201', '00,12,1201', '武清区', '12', '天津市', '1201', '天津市', '120114', '武清区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12', '天津市', '1201', '天津市', '120115', '宝坻区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12', '天津市', '1201', '天津市', '120116', '滨海新区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120117', '1201', '00,12,1201', '宁河区', '12', '天津市', '1201', '天津市', '120117', '宁河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120118', '1201', '00,12,1201', '静海区', '12', '天津市', '1201', '天津市', '120118', '静海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12', '天津市', '1201', '天津市', '120119', '蓟州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('13', '00', '00', '河北省', '13', '河北省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('1301', '13', '00,13', '石家庄市', '13', '河北省', '1301', '石家庄市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130102', '1301', '00,13,1301', '长安区', '13', '河北省', '1301', '石家庄市', '130102', '长安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130104', '1301', '00,13,1301', '桥西区', '13', '河北省', '1301', '石家庄市', '130104', '桥西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130105', '1301', '00,13,1301', '新华区', '13', '河北省', '1301', '石家庄市', '130105', '新华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13', '河北省', '1301', '石家庄市', '130107', '井陉矿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130108', '1301', '00,13,1301', '裕华区', '13', '河北省', '1301', '石家庄市', '130108', '裕华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130109', '1301', '00,13,1301', '藁城区', '13', '河北省', '1301', '石家庄市', '130109', '藁城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13', '河北省', '1301', '石家庄市', '130110', '鹿泉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130111', '1301', '00,13,1301', '栾城区', '13', '河北省', '1301', '石家庄市', '130111', '栾城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130121', '1301', '00,13,1301', '井陉县', '13', '河北省', '1301', '石家庄市', '130121', '井陉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130123', '1301', '00,13,1301', '正定县', '13', '河北省', '1301', '石家庄市', '130123', '正定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130125', '1301', '00,13,1301', '行唐县', '13', '河北省', '1301', '石家庄市', '130125', '行唐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13', '河北省', '1301', '石家庄市', '130126', '灵寿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130127', '1301', '00,13,1301', '高邑县', '13', '河北省', '1301', '石家庄市', '130127', '高邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130128', '1301', '00,13,1301', '深泽县', '13', '河北省', '1301', '石家庄市', '130128', '深泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13', '河北省', '1301', '石家庄市', '130129', '赞皇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130130', '1301', '00,13,1301', '无极县', '13', '河北省', '1301', '石家庄市', '130130', '无极县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130131', '1301', '00,13,1301', '平山县', '13', '河北省', '1301', '石家庄市', '130131', '平山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130132', '1301', '00,13,1301', '元氏县', '13', '河北省', '1301', '石家庄市', '130132', '元氏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130133', '1301', '00,13,1301', '赵县', '13', '河北省', '1301', '石家庄市', '130133', '赵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130181', '1301', '00,13,1301', '辛集市', '13', '河北省', '1301', '石家庄市', '130181', '辛集市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130183', '1301', '00,13,1301', '晋州市', '13', '河北省', '1301', '石家庄市', '130183', '晋州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130184', '1301', '00,13,1301', '新乐市', '13', '河北省', '1301', '石家庄市', '130184', '新乐市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1302', '13', '00,13', '唐山市', '13', '河北省', '1302', '唐山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130202', '1302', '00,13,1302', '路南区', '13', '河北省', '1302', '唐山市', '130202', '路南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130203', '1302', '00,13,1302', '路北区', '13', '河北省', '1302', '唐山市', '130203', '路北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130204', '1302', '00,13,1302', '古冶区', '13', '河北省', '1302', '唐山市', '130204', '古冶区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130205', '1302', '00,13,1302', '开平区', '13', '河北省', '1302', '唐山市', '130205', '开平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130207', '1302', '00,13,1302', '丰南区', '13', '河北省', '1302', '唐山市', '130207', '丰南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130208', '1302', '00,13,1302', '丰润区', '13', '河北省', '1302', '唐山市', '130208', '丰润区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13', '河北省', '1302', '唐山市', '130209', '曹妃甸区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130224', '1302', '00,13,1302', '滦南县', '13', '河北省', '1302', '唐山市', '130224', '滦南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13', '河北省', '1302', '唐山市', '130225', '乐亭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130227', '1302', '00,13,1302', '迁西县', '13', '河北省', '1302', '唐山市', '130227', '迁西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130229', '1302', '00,13,1302', '玉田县', '13', '河北省', '1302', '唐山市', '130229', '玉田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130281', '1302', '00,13,1302', '遵化市', '13', '河北省', '1302', '唐山市', '130281', '遵化市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130283', '1302', '00,13,1302', '迁安市', '13', '河北省', '1302', '唐山市', '130283', '迁安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130284', '1302', '00,13,1302', '滦州市', '13', '河北省', '1302', '唐山市', '130284', '滦州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1303', '13', '00,13', '秦皇岛市', '13', '河北省', '1303', '秦皇岛市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130302', '1303', '00,13,1303', '海港区', '13', '河北省', '1303', '秦皇岛市', '130302', '海港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130303', '1303', '00,13,1303', '山海关区', '13', '河北省', '1303', '秦皇岛市', '130303', '山海关区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13', '河北省', '1303', '秦皇岛市', '130304', '北戴河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13', '河北省', '1303', '秦皇岛市', '130306', '抚宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13', '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13', '河北省', '1303', '秦皇岛市', '130322', '昌黎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13', '河北省', '1303', '秦皇岛市', '130324', '卢龙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1304', '13', '00,13', '邯郸市', '13', '河北省', '1304', '邯郸市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130402', '1304', '00,13,1304', '邯山区', '13', '河北省', '1304', '邯郸市', '130402', '邯山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130403', '1304', '00,13,1304', '丛台区', '13', '河北省', '1304', '邯郸市', '130403', '丛台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130404', '1304', '00,13,1304', '复兴区', '13', '河北省', '1304', '邯郸市', '130404', '复兴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13', '河北省', '1304', '邯郸市', '130406', '峰峰矿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13', '河北省', '1304', '邯郸市', '130407', '肥乡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130408', '1304', '00,13,1304', '永年区', '13', '河北省', '1304', '邯郸市', '130408', '永年区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130423', '1304', '00,13,1304', '临漳县', '13', '河北省', '1304', '邯郸市', '130423', '临漳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130424', '1304', '00,13,1304', '成安县', '13', '河北省', '1304', '邯郸市', '130424', '成安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130425', '1304', '00,13,1304', '大名县', '13', '河北省', '1304', '邯郸市', '130425', '大名县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130426', '1304', '00,13,1304', '涉县', '13', '河北省', '1304', '邯郸市', '130426', '涉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130427', '1304', '00,13,1304', '磁县', '13', '河北省', '1304', '邯郸市', '130427', '磁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130430', '1304', '00,13,1304', '邱县', '13', '河北省', '1304', '邯郸市', '130430', '邱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13', '河北省', '1304', '邯郸市', '130431', '鸡泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130432', '1304', '00,13,1304', '广平县', '13', '河北省', '1304', '邯郸市', '130432', '广平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13', '河北省', '1304', '邯郸市', '130433', '馆陶县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130434', '1304', '00,13,1304', '魏县', '13', '河北省', '1304', '邯郸市', '130434', '魏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130435', '1304', '00,13,1304', '曲周县', '13', '河北省', '1304', '邯郸市', '130435', '曲周县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130481', '1304', '00,13,1304', '武安市', '13', '河北省', '1304', '邯郸市', '130481', '武安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1305', '13', '00,13', '邢台市', '13', '河北省', '1305', '邢台市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130502', '1305', '00,13,1305', '桥东区', '13', '河北省', '1305', '邢台市', '130502', '桥东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130503', '1305', '00,13,1305', '桥西区', '13', '河北省', '1305', '邢台市', '130503', '桥西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130521', '1305', '00,13,1305', '邢台县', '13', '河北省', '1305', '邢台市', '130521', '邢台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130522', '1305', '00,13,1305', '临城县', '13', '河北省', '1305', '邢台市', '130522', '临城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130523', '1305', '00,13,1305', '内丘县', '13', '河北省', '1305', '邢台市', '130523', '内丘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13', '河北省', '1305', '邢台市', '130524', '柏乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13', '河北省', '1305', '邢台市', '130525', '隆尧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130526', '1305', '00,13,1305', '任县', '13', '河北省', '1305', '邢台市', '130526', '任县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130527', '1305', '00,13,1305', '南和县', '13', '河北省', '1305', '邢台市', '130527', '南和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13', '河北省', '1305', '邢台市', '130528', '宁晋县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13', '河北省', '1305', '邢台市', '130529', '巨鹿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130530', '1305', '00,13,1305', '新河县', '13', '河北省', '1305', '邢台市', '130530', '新河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130531', '1305', '00,13,1305', '广宗县', '13', '河北省', '1305', '邢台市', '130531', '广宗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130532', '1305', '00,13,1305', '平乡县', '13', '河北省', '1305', '邢台市', '130532', '平乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130533', '1305', '00,13,1305', '威县', '13', '河北省', '1305', '邢台市', '130533', '威县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130534', '1305', '00,13,1305', '清河县', '13', '河北省', '1305', '邢台市', '130534', '清河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130535', '1305', '00,13,1305', '临西县', '13', '河北省', '1305', '邢台市', '130535', '临西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130581', '1305', '00,13,1305', '南宫市', '13', '河北省', '1305', '邢台市', '130581', '南宫市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130582', '1305', '00,13,1305', '沙河市', '13', '河北省', '1305', '邢台市', '130582', '沙河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1306', '13', '00,13', '保定市', '13', '河北省', '1306', '保定市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13', '河北省', '1306', '保定市', '130602', '竞秀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130606', '1306', '00,13,1306', '莲池区', '13', '河北省', '1306', '保定市', '130606', '莲池区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130607', '1306', '00,13,1306', '满城区', '13', '河北省', '1306', '保定市', '130607', '满城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130608', '1306', '00,13,1306', '清苑区', '13', '河北省', '1306', '保定市', '130608', '清苑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130609', '1306', '00,13,1306', '徐水区', '13', '河北省', '1306', '保定市', '130609', '徐水区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130623', '1306', '00,13,1306', '涞水县', '13', '河北省', '1306', '保定市', '130623', '涞水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130624', '1306', '00,13,1306', '阜平县', '13', '河北省', '1306', '保定市', '130624', '阜平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130626', '1306', '00,13,1306', '定兴县', '13', '河北省', '1306', '保定市', '130626', '定兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130627', '1306', '00,13,1306', '唐县', '13', '河北省', '1306', '保定市', '130627', '唐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130628', '1306', '00,13,1306', '高阳县', '13', '河北省', '1306', '保定市', '130628', '高阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130629', '1306', '00,13,1306', '容城县', '13', '河北省', '1306', '保定市', '130629', '容城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130630', '1306', '00,13,1306', '涞源县', '13', '河北省', '1306', '保定市', '130630', '涞源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130631', '1306', '00,13,1306', '望都县', '13', '河北省', '1306', '保定市', '130631', '望都县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130632', '1306', '00,13,1306', '安新县', '13', '河北省', '1306', '保定市', '130632', '安新县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130633', '1306', '00,13,1306', '易县', '13', '河北省', '1306', '保定市', '130633', '易县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13', '河北省', '1306', '保定市', '130634', '曲阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130635', '1306', '00,13,1306', '蠡县', '13', '河北省', '1306', '保定市', '130635', '蠡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130636', '1306', '00,13,1306', '顺平县', '13', '河北省', '1306', '保定市', '130636', '顺平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130637', '1306', '00,13,1306', '博野县', '13', '河北省', '1306', '保定市', '130637', '博野县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130638', '1306', '00,13,1306', '雄县', '13', '河北省', '1306', '保定市', '130638', '雄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130681', '1306', '00,13,1306', '涿州市', '13', '河北省', '1306', '保定市', '130681', '涿州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130682', '1306', '00,13,1306', '定州市', '13', '河北省', '1306', '保定市', '130682', '定州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130683', '1306', '00,13,1306', '安国市', '13', '河北省', '1306', '保定市', '130683', '安国市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13', '河北省', '1306', '保定市', '130684', '高碑店市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1307', '13', '00,13', '张家口市', '13', '河北省', '1307', '张家口市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130702', '1307', '00,13,1307', '桥东区', '13', '河北省', '1307', '张家口市', '130702', '桥东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130703', '1307', '00,13,1307', '桥西区', '13', '河北省', '1307', '张家口市', '130703', '桥西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130705', '1307', '00,13,1307', '宣化区', '13', '河北省', '1307', '张家口市', '130705', '宣化区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130706', '1307', '00,13,1307', '下花园区', '13', '河北省', '1307', '张家口市', '130706', '下花园区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130708', '1307', '00,13,1307', '万全区', '13', '河北省', '1307', '张家口市', '130708', '万全区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13', '河北省', '1307', '张家口市', '130709', '崇礼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130722', '1307', '00,13,1307', '张北县', '13', '河北省', '1307', '张家口市', '130722', '张北县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130723', '1307', '00,13,1307', '康保县', '13', '河北省', '1307', '张家口市', '130723', '康保县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130724', '1307', '00,13,1307', '沽源县', '13', '河北省', '1307', '张家口市', '130724', '沽源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130725', '1307', '00,13,1307', '尚义县', '13', '河北省', '1307', '张家口市', '130725', '尚义县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130726', '1307', '00,13,1307', '蔚县', '13', '河北省', '1307', '张家口市', '130726', '蔚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130727', '1307', '00,13,1307', '阳原县', '13', '河北省', '1307', '张家口市', '130727', '阳原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130728', '1307', '00,13,1307', '怀安县', '13', '河北省', '1307', '张家口市', '130728', '怀安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130730', '1307', '00,13,1307', '怀来县', '13', '河北省', '1307', '张家口市', '130730', '怀来县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13', '河北省', '1307', '张家口市', '130731', '涿鹿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130732', '1307', '00,13,1307', '赤城县', '13', '河北省', '1307', '张家口市', '130732', '赤城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1308', '13', '00,13', '承德市', '13', '河北省', '1308', '承德市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130802', '1308', '00,13,1308', '双桥区', '13', '河北省', '1308', '承德市', '130802', '双桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130803', '1308', '00,13,1308', '双滦区', '13', '河北省', '1308', '承德市', '130803', '双滦区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13', '河北省', '1308', '承德市', '130804', '鹰手营子矿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130821', '1308', '00,13,1308', '承德县', '13', '河北省', '1308', '承德市', '130821', '承德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13', '河北省', '1308', '承德市', '130822', '兴隆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130824', '1308', '00,13,1308', '滦平县', '13', '河北省', '1308', '承德市', '130824', '滦平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130825', '1308', '00,13,1308', '隆化县', '13', '河北省', '1308', '承德市', '130825', '隆化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13', '河北省', '1308', '承德市', '130826', '丰宁满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13', '河北省', '1308', '承德市', '130827', '宽城满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13', '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130881', '1308', '00,13,1308', '平泉市', '13', '河北省', '1308', '承德市', '130881', '平泉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1309', '13', '00,13', '沧州市', '13', '河北省', '1309', '沧州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('130902', '1309', '00,13,1309', '新华区', '13', '河北省', '1309', '沧州市', '130902', '新华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130903', '1309', '00,13,1309', '运河区', '13', '河北省', '1309', '沧州市', '130903', '运河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130921', '1309', '00,13,1309', '沧县', '13', '河北省', '1309', '沧州市', '130921', '沧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130922', '1309', '00,13,1309', '青县', '13', '河北省', '1309', '沧州市', '130922', '青县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130923', '1309', '00,13,1309', '东光县', '13', '河北省', '1309', '沧州市', '130923', '东光县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130924', '1309', '00,13,1309', '海兴县', '13', '河北省', '1309', '沧州市', '130924', '海兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130925', '1309', '00,13,1309', '盐山县', '13', '河北省', '1309', '沧州市', '130925', '盐山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13', '河北省', '1309', '沧州市', '130926', '肃宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130927', '1309', '00,13,1309', '南皮县', '13', '河北省', '1309', '沧州市', '130927', '南皮县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13', '河北省', '1309', '沧州市', '130928', '吴桥县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130929', '1309', '00,13,1309', '献县', '13', '河北省', '1309', '沧州市', '130929', '献县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13', '河北省', '1309', '沧州市', '130930', '孟村回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130981', '1309', '00,13,1309', '泊头市', '13', '河北省', '1309', '沧州市', '130981', '泊头市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130982', '1309', '00,13,1309', '任丘市', '13', '河北省', '1309', '沧州市', '130982', '任丘市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13', '河北省', '1309', '沧州市', '130983', '黄骅市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('130984', '1309', '00,13,1309', '河间市', '13', '河北省', '1309', '沧州市', '130984', '河间市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1310', '13', '00,13', '廊坊市', '13', '河北省', '1310', '廊坊市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('131002', '1310', '00,13,1310', '安次区', '13', '河北省', '1310', '廊坊市', '131002', '安次区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3403', '34', '00,34', '蚌埠市', '34', '安徽省', '3403', '蚌埠市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('131003', '1310', '00,13,1310', '广阳区', '13', '河北省', '1310', '廊坊市', '131003', '广阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131022', '1310', '00,13,1310', '固安县', '13', '河北省', '1310', '廊坊市', '131022', '固安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131023', '1310', '00,13,1310', '永清县', '13', '河北省', '1310', '廊坊市', '131023', '永清县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131024', '1310', '00,13,1310', '香河县', '13', '河北省', '1310', '廊坊市', '131024', '香河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131025', '1310', '00,13,1310', '大城县', '13', '河北省', '1310', '廊坊市', '131025', '大城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131026', '1310', '00,13,1310', '文安县', '13', '河北省', '1310', '廊坊市', '131026', '文安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13', '河北省', '1310', '廊坊市', '131028', '大厂回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131081', '1310', '00,13,1310', '霸州市', '13', '河北省', '1310', '廊坊市', '131081', '霸州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131082', '1310', '00,13,1310', '三河市', '13', '河北省', '1310', '廊坊市', '131082', '三河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1311', '13', '00,13', '衡水市', '13', '河北省', '1311', '衡水市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('131102', '1311', '00,13,1311', '桃城区', '13', '河北省', '1311', '衡水市', '131102', '桃城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131103', '1311', '00,13,1311', '冀州区', '13', '河北省', '1311', '衡水市', '131103', '冀州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131121', '1311', '00,13,1311', '枣强县', '13', '河北省', '1311', '衡水市', '131121', '枣强县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131122', '1311', '00,13,1311', '武邑县', '13', '河北省', '1311', '衡水市', '131122', '武邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131123', '1311', '00,13,1311', '武强县', '13', '河北省', '1311', '衡水市', '131123', '武强县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13', '河北省', '1311', '衡水市', '131124', '饶阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131125', '1311', '00,13,1311', '安平县', '13', '河北省', '1311', '衡水市', '131125', '安平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131126', '1311', '00,13,1311', '故城县', '13', '河北省', '1311', '衡水市', '131126', '故城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131127', '1311', '00,13,1311', '景县', '13', '河北省', '1311', '衡水市', '131127', '景县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131128', '1311', '00,13,1311', '阜城县', '13', '河北省', '1311', '衡水市', '131128', '阜城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('131182', '1311', '00,13,1311', '深州市', '13', '河北省', '1311', '衡水市', '131182', '深州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('14', '00', '00', '山西省', '14', '山西省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('1401', '14', '00,14', '太原市', '14', '山西省', '1401', '太原市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140105', '1401', '00,14,1401', '小店区', '14', '山西省', '1401', '太原市', '140105', '小店区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14', '山西省', '1401', '太原市', '140106', '迎泽区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14', '山西省', '1401', '太原市', '140107', '杏花岭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14', '山西省', '1401', '太原市', '140108', '尖草坪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14', '山西省', '1401', '太原市', '140109', '万柏林区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140110', '1401', '00,14,1401', '晋源区', '14', '山西省', '1401', '太原市', '140110', '晋源区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140121', '1401', '00,14,1401', '清徐县', '14', '山西省', '1401', '太原市', '140121', '清徐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14', '山西省', '1401', '太原市', '140122', '阳曲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14', '山西省', '1401', '太原市', '140123', '娄烦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140181', '1401', '00,14,1401', '古交市', '14', '山西省', '1401', '太原市', '140181', '古交市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1402', '14', '00,14', '大同市', '14', '山西省', '1402', '大同市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140212', '1402', '00,14,1402', '新荣区', '14', '山西省', '1402', '大同市', '140212', '新荣区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140213', '1402', '00,14,1402', '平城区', '14', '山西省', '1402', '大同市', '140213', '平城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140214', '1402', '00,14,1402', '云冈区', '14', '山西省', '1402', '大同市', '140214', '云冈区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140215', '1402', '00,14,1402', '云州区', '14', '山西省', '1402', '大同市', '140215', '云州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140221', '1402', '00,14,1402', '阳高县', '14', '山西省', '1402', '大同市', '140221', '阳高县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140222', '1402', '00,14,1402', '天镇县', '14', '山西省', '1402', '大同市', '140222', '天镇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140223', '1402', '00,14,1402', '广灵县', '14', '山西省', '1402', '大同市', '140223', '广灵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14', '山西省', '1402', '大同市', '140224', '灵丘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140225', '1402', '00,14,1402', '浑源县', '14', '山西省', '1402', '大同市', '140225', '浑源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140226', '1402', '00,14,1402', '左云县', '14', '山西省', '1402', '大同市', '140226', '左云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1403', '14', '00,14', '阳泉市', '14', '山西省', '1403', '阳泉市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140302', '1403', '00,14,1403', '城区', '14', '山西省', '1403', '阳泉市', '140302', '城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140303', '1403', '00,14,1403', '矿区', '14', '山西省', '1403', '阳泉市', '140303', '矿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140311', '1403', '00,14,1403', '郊区', '14', '山西省', '1403', '阳泉市', '140311', '郊区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140321', '1403', '00,14,1403', '平定县', '14', '山西省', '1403', '阳泉市', '140321', '平定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140322', '1403', '00,14,1403', '盂县', '14', '山西省', '1403', '阳泉市', '140322', '盂县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1404', '14', '00,14', '长治市', '14', '山西省', '1404', '长治市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140403', '1404', '00,14,1404', '潞州区', '14', '山西省', '1404', '长治市', '140403', '潞州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140404', '1404', '00,14,1404', '上党区', '14', '山西省', '1404', '长治市', '140404', '上党区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140405', '1404', '00,14,1404', '屯留区', '14', '山西省', '1404', '长治市', '140405', '屯留区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140406', '1404', '00,14,1404', '潞城区', '14', '山西省', '1404', '长治市', '140406', '潞城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14', '山西省', '1404', '长治市', '140423', '襄垣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140425', '1404', '00,14,1404', '平顺县', '14', '山西省', '1404', '长治市', '140425', '平顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140426', '1404', '00,14,1404', '黎城县', '14', '山西省', '1404', '长治市', '140426', '黎城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140427', '1404', '00,14,1404', '壶关县', '14', '山西省', '1404', '长治市', '140427', '壶关县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140428', '1404', '00,14,1404', '长子县', '14', '山西省', '1404', '长治市', '140428', '长子县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140429', '1404', '00,14,1404', '武乡县', '14', '山西省', '1404', '长治市', '140429', '武乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140430', '1404', '00,14,1404', '沁县', '14', '山西省', '1404', '长治市', '140430', '沁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140431', '1404', '00,14,1404', '沁源县', '14', '山西省', '1404', '长治市', '140431', '沁源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1405', '14', '00,14', '晋城市', '14', '山西省', '1405', '晋城市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140502', '1405', '00,14,1405', '城区', '14', '山西省', '1405', '晋城市', '140502', '城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140521', '1405', '00,14,1405', '沁水县', '14', '山西省', '1405', '晋城市', '140521', '沁水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140522', '1405', '00,14,1405', '阳城县', '14', '山西省', '1405', '晋城市', '140522', '阳城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140524', '1405', '00,14,1405', '陵川县', '14', '山西省', '1405', '晋城市', '140524', '陵川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140525', '1405', '00,14,1405', '泽州县', '14', '山西省', '1405', '晋城市', '140525', '泽州县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140581', '1405', '00,14,1405', '高平市', '14', '山西省', '1405', '晋城市', '140581', '高平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1406', '14', '00,14', '朔州市', '14', '山西省', '1406', '朔州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140602', '1406', '00,14,1406', '朔城区', '14', '山西省', '1406', '朔州市', '140602', '朔城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14', '山西省', '1406', '朔州市', '140603', '平鲁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140621', '1406', '00,14,1406', '山阴县', '14', '山西省', '1406', '朔州市', '140621', '山阴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140622', '1406', '00,14,1406', '应县', '14', '山西省', '1406', '朔州市', '140622', '应县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140623', '1406', '00,14,1406', '右玉县', '14', '山西省', '1406', '朔州市', '140623', '右玉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14', '山西省', '1406', '朔州市', '140681', '怀仁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1407', '14', '00,14', '晋中市', '14', '山西省', '1407', '晋中市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140702', '1407', '00,14,1407', '榆次区', '14', '山西省', '1407', '晋中市', '140702', '榆次区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140703', '1407', '00,14,1407', '太谷区', '14', '山西省', '1407', '晋中市', '140703', '太谷区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140721', '1407', '00,14,1407', '榆社县', '14', '山西省', '1407', '晋中市', '140721', '榆社县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140722', '1407', '00,14,1407', '左权县', '14', '山西省', '1407', '晋中市', '140722', '左权县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140723', '1407', '00,14,1407', '和顺县', '14', '山西省', '1407', '晋中市', '140723', '和顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14', '山西省', '1407', '晋中市', '140724', '昔阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14', '山西省', '1407', '晋中市', '140725', '寿阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140727', '1407', '00,14,1407', '祁县', '14', '山西省', '1407', '晋中市', '140727', '祁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140728', '1407', '00,14,1407', '平遥县', '14', '山西省', '1407', '晋中市', '140728', '平遥县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140729', '1407', '00,14,1407', '灵石县', '14', '山西省', '1407', '晋中市', '140729', '灵石县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140781', '1407', '00,14,1407', '介休市', '14', '山西省', '1407', '晋中市', '140781', '介休市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1408', '14', '00,14', '运城市', '14', '山西省', '1408', '运城市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14', '山西省', '1408', '运城市', '140802', '盐湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140821', '1408', '00,14,1408', '临猗县', '14', '山西省', '1408', '运城市', '140821', '临猗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140822', '1408', '00,14,1408', '万荣县', '14', '山西省', '1408', '运城市', '140822', '万荣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14', '山西省', '1408', '运城市', '140823', '闻喜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140824', '1408', '00,14,1408', '稷山县', '14', '山西省', '1408', '运城市', '140824', '稷山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140825', '1408', '00,14,1408', '新绛县', '14', '山西省', '1408', '运城市', '140825', '新绛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140826', '1408', '00,14,1408', '绛县', '14', '山西省', '1408', '运城市', '140826', '绛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14', '山西省', '1408', '运城市', '140827', '垣曲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140828', '1408', '00,14,1408', '夏县', '14', '山西省', '1408', '运城市', '140828', '夏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140829', '1408', '00,14,1408', '平陆县', '14', '山西省', '1408', '运城市', '140829', '平陆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140830', '1408', '00,14,1408', '芮城县', '14', '山西省', '1408', '运城市', '140830', '芮城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140881', '1408', '00,14,1408', '永济市', '14', '山西省', '1408', '运城市', '140881', '永济市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140882', '1408', '00,14,1408', '河津市', '14', '山西省', '1408', '运城市', '140882', '河津市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1409', '14', '00,14', '忻州市', '14', '山西省', '1409', '忻州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('140902', '1409', '00,14,1409', '忻府区', '14', '山西省', '1409', '忻州市', '140902', '忻府区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140921', '1409', '00,14,1409', '定襄县', '14', '山西省', '1409', '忻州市', '140921', '定襄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140922', '1409', '00,14,1409', '五台县', '14', '山西省', '1409', '忻州市', '140922', '五台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140923', '1409', '00,14,1409', '代县', '14', '山西省', '1409', '忻州市', '140923', '代县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14', '山西省', '1409', '忻州市', '140924', '繁峙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140925', '1409', '00,14,1409', '宁武县', '14', '山西省', '1409', '忻州市', '140925', '宁武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140926', '1409', '00,14,1409', '静乐县', '14', '山西省', '1409', '忻州市', '140926', '静乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140927', '1409', '00,14,1409', '神池县', '14', '山西省', '1409', '忻州市', '140927', '神池县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140928', '1409', '00,14,1409', '五寨县', '14', '山西省', '1409', '忻州市', '140928', '五寨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14', '山西省', '1409', '忻州市', '140929', '岢岚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140930', '1409', '00,14,1409', '河曲县', '14', '山西省', '1409', '忻州市', '140930', '河曲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140931', '1409', '00,14,1409', '保德县', '14', '山西省', '1409', '忻州市', '140931', '保德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140932', '1409', '00,14,1409', '偏关县', '14', '山西省', '1409', '忻州市', '140932', '偏关县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('140981', '1409', '00,14,1409', '原平市', '14', '山西省', '1409', '忻州市', '140981', '原平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1410', '14', '00,14', '临汾市', '14', '山西省', '1410', '临汾市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('141002', '1410', '00,14,1410', '尧都区', '14', '山西省', '1410', '临汾市', '141002', '尧都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14', '山西省', '1410', '临汾市', '141021', '曲沃县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141022', '1410', '00,14,1410', '翼城县', '14', '山西省', '1410', '临汾市', '141022', '翼城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14', '山西省', '1410', '临汾市', '141023', '襄汾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14', '山西省', '1410', '临汾市', '141024', '洪洞县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141025', '1410', '00,14,1410', '古县', '14', '山西省', '1410', '临汾市', '141025', '古县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141026', '1410', '00,14,1410', '安泽县', '14', '山西省', '1410', '临汾市', '141026', '安泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141027', '1410', '00,14,1410', '浮山县', '14', '山西省', '1410', '临汾市', '141027', '浮山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141028', '1410', '00,14,1410', '吉县', '14', '山西省', '1410', '临汾市', '141028', '吉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14', '山西省', '1410', '临汾市', '141029', '乡宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141030', '1410', '00,14,1410', '大宁县', '14', '山西省', '1410', '临汾市', '141030', '大宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141031', '1410', '00,14,1410', '隰县', '14', '山西省', '1410', '临汾市', '141031', '隰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141032', '1410', '00,14,1410', '永和县', '14', '山西省', '1410', '临汾市', '141032', '永和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141033', '1410', '00,14,1410', '蒲县', '14', '山西省', '1410', '临汾市', '141033', '蒲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141034', '1410', '00,14,1410', '汾西县', '14', '山西省', '1410', '临汾市', '141034', '汾西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141081', '1410', '00,14,1410', '侯马市', '14', '山西省', '1410', '临汾市', '141081', '侯马市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141082', '1410', '00,14,1410', '霍州市', '14', '山西省', '1410', '临汾市', '141082', '霍州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1411', '14', '00,14', '吕梁市', '14', '山西省', '1411', '吕梁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('141102', '1411', '00,14,1411', '离石区', '14', '山西省', '1411', '吕梁市', '141102', '离石区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141121', '1411', '00,14,1411', '文水县', '14', '山西省', '1411', '吕梁市', '141121', '文水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141122', '1411', '00,14,1411', '交城县', '14', '山西省', '1411', '吕梁市', '141122', '交城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141123', '1411', '00,14,1411', '兴县', '14', '山西省', '1411', '吕梁市', '141123', '兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141124', '1411', '00,14,1411', '临县', '14', '山西省', '1411', '吕梁市', '141124', '临县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141125', '1411', '00,14,1411', '柳林县', '14', '山西省', '1411', '吕梁市', '141125', '柳林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141126', '1411', '00,14,1411', '石楼县', '14', '山西省', '1411', '吕梁市', '141126', '石楼县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141127', '1411', '00,14,1411', '岚县', '14', '山西省', '1411', '吕梁市', '141127', '岚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141128', '1411', '00,14,1411', '方山县', '14', '山西省', '1411', '吕梁市', '141128', '方山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141129', '1411', '00,14,1411', '中阳县', '14', '山西省', '1411', '吕梁市', '141129', '中阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141130', '1411', '00,14,1411', '交口县', '14', '山西省', '1411', '吕梁市', '141130', '交口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141181', '1411', '00,14,1411', '孝义市', '14', '山西省', '1411', '吕梁市', '141181', '孝义市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14', '山西省', '1411', '吕梁市', '141182', '汾阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('15', '00', '00', '内蒙古自治区', '15', '内蒙古自治区', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('1501', '15', '00,15', '呼和浩特市', '15', '内蒙古自治区', '1501', '呼和浩特市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150102', '1501', '00,15,1501', '新城区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150103', '1501', '00,15,1501', '回民区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15', '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15', '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150122', '1501', '00,15,1501', '托克托县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150124', '1501', '00,15,1501', '清水河县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150125', '1501', '00,15,1501', '武川县', '15', '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1502', '15', '00,15', '包头市', '15', '内蒙古自治区', '1502', '包头市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150202', '1502', '00,15,1502', '东河区', '15', '内蒙古自治区', '1502', '包头市', '150202', '东河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15', '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150204', '1502', '00,15,1502', '青山区', '15', '内蒙古自治区', '1502', '包头市', '150204', '青山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150205', '1502', '00,15,1502', '石拐区', '15', '内蒙古自治区', '1502', '包头市', '150205', '石拐区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15', '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150207', '1502', '00,15,1502', '九原区', '15', '内蒙古自治区', '1502', '包头市', '150207', '九原区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15', '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150222', '1502', '00,15,1502', '固阳县', '15', '内蒙古自治区', '1502', '包头市', '150222', '固阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15', '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1503', '15', '00,15', '乌海市', '15', '内蒙古自治区', '1503', '乌海市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15', '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150303', '1503', '00,15,1503', '海南区', '15', '内蒙古自治区', '1503', '乌海市', '150303', '海南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150304', '1503', '00,15,1503', '乌达区', '15', '内蒙古自治区', '1503', '乌海市', '150304', '乌达区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1504', '15', '00,15', '赤峰市', '15', '内蒙古自治区', '1504', '赤峰市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150402', '1504', '00,15,1504', '红山区', '15', '内蒙古自治区', '1504', '赤峰市', '150402', '红山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15', '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150404', '1504', '00,15,1504', '松山区', '15', '内蒙古自治区', '1504', '赤峰市', '150404', '松山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15', '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15', '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150424', '1504', '00,15,1504', '林西县', '15', '内蒙古自治区', '1504', '赤峰市', '150424', '林西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15', '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15', '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15', '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150429', '1504', '00,15,1504', '宁城县', '15', '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15', '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1505', '15', '00,15', '通辽市', '15', '内蒙古自治区', '1505', '通辽市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15', '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15', '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15', '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15', '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15', '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15', '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15', '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15', '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150602', '1506', '00,15,1506', '东胜区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15', '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150785', '1507', '00,15,1507', '根河市', '15', '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150802', '1508', '00,15,1508', '临河区', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150821', '1508', '00,15,1508', '五原县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150822', '1508', '00,15,1508', '磴口县', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15', '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1509', '15', '00,15', '乌兰察布市', '15', '内蒙古自治区', '1509', '乌兰察布市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('150902', '1509', '00,15,1509', '集宁区', '15', '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150921', '1509', '00,15,1509', '卓资县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150922', '1509', '00,15,1509', '化德县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150923', '1509', '00,15,1509', '商都县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150924', '1509', '00,15,1509', '兴和县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150925', '1509', '00,15,1509', '凉城县', '15', '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15', '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15', '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1522', '15', '00,15', '兴安盟', '15', '内蒙古自治区', '1522', '兴安盟', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15', '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15', '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15', '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15', '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15', '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152224', '1522', '00,15,1522', '突泉县', '15', '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('211421', '2114', '00,21,2114', '绥中县', '21', '辽宁省', '2114', '葫芦岛市', '211421', '绥中县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152531', '1525', '00,15,1525', '多伦县', '15', '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('1529', '15', '00,15', '阿拉善盟', '15', '内蒙古自治区', '1529', '阿拉善盟', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15', '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('21', '00', '00', '辽宁省', '21', '辽宁省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('2101', '21', '00,21', '沈阳市', '21', '辽宁省', '2101', '沈阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210102', '2101', '00,21,2101', '和平区', '21', '辽宁省', '2101', '沈阳市', '210102', '和平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210103', '2101', '00,21,2101', '沈河区', '21', '辽宁省', '2101', '沈阳市', '210103', '沈河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210104', '2101', '00,21,2101', '大东区', '21', '辽宁省', '2101', '沈阳市', '210104', '大东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21', '辽宁省', '2101', '沈阳市', '210105', '皇姑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210106', '2101', '00,21,2101', '铁西区', '21', '辽宁省', '2101', '沈阳市', '210106', '铁西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21', '辽宁省', '2101', '沈阳市', '210111', '苏家屯区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210112', '2101', '00,21,2101', '浑南区', '21', '辽宁省', '2101', '沈阳市', '210112', '浑南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21', '辽宁省', '2101', '沈阳市', '210113', '沈北新区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210114', '2101', '00,21,2101', '于洪区', '21', '辽宁省', '2101', '沈阳市', '210114', '于洪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210115', '2101', '00,21,2101', '辽中区', '21', '辽宁省', '2101', '沈阳市', '210115', '辽中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210123', '2101', '00,21,2101', '康平县', '21', '辽宁省', '2101', '沈阳市', '210123', '康平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210124', '2101', '00,21,2101', '法库县', '21', '辽宁省', '2101', '沈阳市', '210124', '法库县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210181', '2101', '00,21,2101', '新民市', '21', '辽宁省', '2101', '沈阳市', '210181', '新民市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2102', '21', '00,21', '大连市', '21', '辽宁省', '2102', '大连市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210202', '2102', '00,21,2102', '中山区', '21', '辽宁省', '2102', '大连市', '210202', '中山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210203', '2102', '00,21,2102', '西岗区', '21', '辽宁省', '2102', '大连市', '210203', '西岗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21', '辽宁省', '2102', '大连市', '210204', '沙河口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21', '辽宁省', '2102', '大连市', '210211', '甘井子区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21', '辽宁省', '2102', '大连市', '210212', '旅顺口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210213', '2102', '00,21,2102', '金州区', '21', '辽宁省', '2102', '大连市', '210213', '金州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21', '辽宁省', '2102', '大连市', '210214', '普兰店区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210224', '2102', '00,21,2102', '长海县', '21', '辽宁省', '2102', '大连市', '210224', '长海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21', '辽宁省', '2102', '大连市', '210281', '瓦房店市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210283', '2102', '00,21,2102', '庄河市', '21', '辽宁省', '2102', '大连市', '210283', '庄河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2103', '21', '00,21', '鞍山市', '21', '辽宁省', '2103', '鞍山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210302', '2103', '00,21,2103', '铁东区', '21', '辽宁省', '2103', '鞍山市', '210302', '铁东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210303', '2103', '00,21,2103', '铁西区', '21', '辽宁省', '2103', '鞍山市', '210303', '铁西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210304', '2103', '00,21,2103', '立山区', '21', '辽宁省', '2103', '鞍山市', '210304', '立山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210311', '2103', '00,21,2103', '千山区', '21', '辽宁省', '2103', '鞍山市', '210311', '千山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210321', '2103', '00,21,2103', '台安县', '21', '辽宁省', '2103', '鞍山市', '210321', '台安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21', '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210381', '2103', '00,21,2103', '海城市', '21', '辽宁省', '2103', '鞍山市', '210381', '海城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2104', '21', '00,21', '抚顺市', '21', '辽宁省', '2104', '抚顺市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210402', '2104', '00,21,2104', '新抚区', '21', '辽宁省', '2104', '抚顺市', '210402', '新抚区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210403', '2104', '00,21,2104', '东洲区', '21', '辽宁省', '2104', '抚顺市', '210403', '东洲区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210404', '2104', '00,21,2104', '望花区', '21', '辽宁省', '2104', '抚顺市', '210404', '望花区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210411', '2104', '00,21,2104', '顺城区', '21', '辽宁省', '2104', '抚顺市', '210411', '顺城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21', '辽宁省', '2104', '抚顺市', '210421', '抚顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21', '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21', '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2105', '21', '00,21', '本溪市', '21', '辽宁省', '2105', '本溪市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210502', '2105', '00,21,2105', '平山区', '21', '辽宁省', '2105', '本溪市', '210502', '平山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21', '辽宁省', '2105', '本溪市', '210503', '溪湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210504', '2105', '00,21,2105', '明山区', '21', '辽宁省', '2105', '本溪市', '210504', '明山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210505', '2105', '00,21,2105', '南芬区', '21', '辽宁省', '2105', '本溪市', '210505', '南芬区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21', '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21', '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2106', '21', '00,21', '丹东市', '21', '辽宁省', '2106', '丹东市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210602', '2106', '00,21,2106', '元宝区', '21', '辽宁省', '2106', '丹东市', '210602', '元宝区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210603', '2106', '00,21,2106', '振兴区', '21', '辽宁省', '2106', '丹东市', '210603', '振兴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210604', '2106', '00,21,2106', '振安区', '21', '辽宁省', '2106', '丹东市', '210604', '振安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21', '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210681', '2106', '00,21,2106', '东港市', '21', '辽宁省', '2106', '丹东市', '210681', '东港市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210682', '2106', '00,21,2106', '凤城市', '21', '辽宁省', '2106', '丹东市', '210682', '凤城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2107', '21', '00,21', '锦州市', '21', '辽宁省', '2107', '锦州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210702', '2107', '00,21,2107', '古塔区', '21', '辽宁省', '2107', '锦州市', '210702', '古塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210703', '2107', '00,21,2107', '凌河区', '21', '辽宁省', '2107', '锦州市', '210703', '凌河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210711', '2107', '00,21,2107', '太和区', '21', '辽宁省', '2107', '锦州市', '210711', '太和区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210726', '2107', '00,21,2107', '黑山县', '21', '辽宁省', '2107', '锦州市', '210726', '黑山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210727', '2107', '00,21,2107', '义县', '21', '辽宁省', '2107', '锦州市', '210727', '义县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210781', '2107', '00,21,2107', '凌海市', '21', '辽宁省', '2107', '锦州市', '210781', '凌海市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210782', '2107', '00,21,2107', '北镇市', '21', '辽宁省', '2107', '锦州市', '210782', '北镇市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2108', '21', '00,21', '营口市', '21', '辽宁省', '2108', '营口市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210802', '2108', '00,21,2108', '站前区', '21', '辽宁省', '2108', '营口市', '210802', '站前区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210803', '2108', '00,21,2108', '西市区', '21', '辽宁省', '2108', '营口市', '210803', '西市区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21', '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210811', '2108', '00,21,2108', '老边区', '21', '辽宁省', '2108', '营口市', '210811', '老边区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210881', '2108', '00,21,2108', '盖州市', '21', '辽宁省', '2108', '营口市', '210881', '盖州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21', '辽宁省', '2108', '营口市', '210882', '大石桥市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2109', '21', '00,21', '阜新市', '21', '辽宁省', '2109', '阜新市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('210902', '2109', '00,21,2109', '海州区', '21', '辽宁省', '2109', '阜新市', '210902', '海州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210903', '2109', '00,21,2109', '新邱区', '21', '辽宁省', '2109', '阜新市', '210903', '新邱区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210904', '2109', '00,21,2109', '太平区', '21', '辽宁省', '2109', '阜新市', '210904', '太平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210905', '2109', '00,21,2109', '清河门区', '21', '辽宁省', '2109', '阜新市', '210905', '清河门区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210911', '2109', '00,21,2109', '细河区', '21', '辽宁省', '2109', '阜新市', '210911', '细河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21', '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('210922', '2109', '00,21,2109', '彰武县', '21', '辽宁省', '2109', '阜新市', '210922', '彰武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2110', '21', '00,21', '辽阳市', '21', '辽宁省', '2110', '辽阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('211002', '2110', '00,21,2110', '白塔区', '21', '辽宁省', '2110', '辽阳市', '211002', '白塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211003', '2110', '00,21,2110', '文圣区', '21', '辽宁省', '2110', '辽阳市', '211003', '文圣区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21', '辽宁省', '2110', '辽阳市', '211004', '宏伟区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21', '辽宁省', '2110', '辽阳市', '211005', '弓长岭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211011', '2110', '00,21,2110', '太子河区', '21', '辽宁省', '2110', '辽阳市', '211011', '太子河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21', '辽宁省', '2110', '辽阳市', '211021', '辽阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21', '辽宁省', '2110', '辽阳市', '211081', '灯塔市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2111', '21', '00,21', '盘锦市', '21', '辽宁省', '2111', '盘锦市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('211102', '2111', '00,21,2111', '双台子区', '21', '辽宁省', '2111', '盘锦市', '211102', '双台子区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21', '辽宁省', '2111', '盘锦市', '211103', '兴隆台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211104', '2111', '00,21,2111', '大洼区', '21', '辽宁省', '2111', '盘锦市', '211104', '大洼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211122', '2111', '00,21,2111', '盘山县', '21', '辽宁省', '2111', '盘锦市', '211122', '盘山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2112', '21', '00,21', '铁岭市', '21', '辽宁省', '2112', '铁岭市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('211202', '2112', '00,21,2112', '银州区', '21', '辽宁省', '2112', '铁岭市', '211202', '银州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211204', '2112', '00,21,2112', '清河区', '21', '辽宁省', '2112', '铁岭市', '211204', '清河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21', '辽宁省', '2112', '铁岭市', '211221', '铁岭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211223', '2112', '00,21,2112', '西丰县', '21', '辽宁省', '2112', '铁岭市', '211223', '西丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211224', '2112', '00,21,2112', '昌图县', '21', '辽宁省', '2112', '铁岭市', '211224', '昌图县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21', '辽宁省', '2112', '铁岭市', '211281', '调兵山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211282', '2112', '00,21,2112', '开原市', '21', '辽宁省', '2112', '铁岭市', '211282', '开原市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2113', '21', '00,21', '朝阳市', '21', '辽宁省', '2113', '朝阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('211302', '2113', '00,21,2113', '双塔区', '21', '辽宁省', '2113', '朝阳市', '211302', '双塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211303', '2113', '00,21,2113', '龙城区', '21', '辽宁省', '2113', '朝阳市', '211303', '龙城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21', '辽宁省', '2113', '朝阳市', '211321', '朝阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211322', '2113', '00,21,2113', '建平县', '21', '辽宁省', '2113', '朝阳市', '211322', '建平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21', '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211381', '2113', '00,21,2113', '北票市', '21', '辽宁省', '2113', '朝阳市', '211381', '北票市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211382', '2113', '00,21,2113', '凌源市', '21', '辽宁省', '2113', '朝阳市', '211382', '凌源市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2114', '21', '00,21', '葫芦岛市', '21', '辽宁省', '2114', '葫芦岛市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('211402', '2114', '00,21,2114', '连山区', '21', '辽宁省', '2114', '葫芦岛市', '211402', '连山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211403', '2114', '00,21,2114', '龙港区', '21', '辽宁省', '2114', '葫芦岛市', '211403', '龙港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211404', '2114', '00,21,2114', '南票区', '21', '辽宁省', '2114', '葫芦岛市', '211404', '南票区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211422', '2114', '00,21,2114', '建昌县', '21', '辽宁省', '2114', '葫芦岛市', '211422', '建昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('211481', '2114', '00,21,2114', '兴城市', '21', '辽宁省', '2114', '葫芦岛市', '211481', '兴城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('22', '00', '00', '吉林省', '22', '吉林省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('2201', '22', '00,22', '长春市', '22', '吉林省', '2201', '长春市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220102', '2201', '00,22,2201', '南关区', '22', '吉林省', '2201', '长春市', '220102', '南关区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220103', '2201', '00,22,2201', '宽城区', '22', '吉林省', '2201', '长春市', '220103', '宽城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22', '吉林省', '2201', '长春市', '220104', '朝阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220105', '2201', '00,22,2201', '二道区', '22', '吉林省', '2201', '长春市', '220105', '二道区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220106', '2201', '00,22,2201', '绿园区', '22', '吉林省', '2201', '长春市', '220106', '绿园区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220112', '2201', '00,22,2201', '双阳区', '22', '吉林省', '2201', '长春市', '220112', '双阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220113', '2201', '00,22,2201', '九台区', '22', '吉林省', '2201', '长春市', '220113', '九台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220122', '2201', '00,22,2201', '农安县', '22', '吉林省', '2201', '长春市', '220122', '农安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220182', '2201', '00,22,2201', '榆树市', '22', '吉林省', '2201', '长春市', '220182', '榆树市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220183', '2201', '00,22,2201', '德惠市', '22', '吉林省', '2201', '长春市', '220183', '德惠市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2202', '22', '00,22', '吉林市', '22', '吉林省', '2202', '吉林市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22', '吉林省', '2202', '吉林市', '220202', '昌邑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22', '吉林省', '2202', '吉林市', '220203', '龙潭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220204', '2202', '00,22,2202', '船营区', '22', '吉林省', '2202', '吉林市', '220204', '船营区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220211', '2202', '00,22,2202', '丰满区', '22', '吉林省', '2202', '吉林市', '220211', '丰满区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220221', '2202', '00,22,2202', '永吉县', '22', '吉林省', '2202', '吉林市', '220221', '永吉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22', '吉林省', '2202', '吉林市', '220281', '蛟河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22', '吉林省', '2202', '吉林市', '220282', '桦甸市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22', '吉林省', '2202', '吉林市', '220283', '舒兰市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220284', '2202', '00,22,2202', '磐石市', '22', '吉林省', '2202', '吉林市', '220284', '磐石市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2203', '22', '00,22', '四平市', '22', '吉林省', '2203', '四平市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220302', '2203', '00,22,2203', '铁西区', '22', '吉林省', '2203', '四平市', '220302', '铁西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220303', '2203', '00,22,2203', '铁东区', '22', '吉林省', '2203', '四平市', '220303', '铁东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220322', '2203', '00,22,2203', '梨树县', '22', '吉林省', '2203', '四平市', '220322', '梨树县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22', '吉林省', '2203', '四平市', '220323', '伊通满族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22', '吉林省', '2203', '四平市', '220381', '公主岭市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220382', '2203', '00,22,2203', '双辽市', '22', '吉林省', '2203', '四平市', '220382', '双辽市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2204', '22', '00,22', '辽源市', '22', '吉林省', '2204', '辽源市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220402', '2204', '00,22,2204', '龙山区', '22', '吉林省', '2204', '辽源市', '220402', '龙山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220403', '2204', '00,22,2204', '西安区', '22', '吉林省', '2204', '辽源市', '220403', '西安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220421', '2204', '00,22,2204', '东丰县', '22', '吉林省', '2204', '辽源市', '220421', '东丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220422', '2204', '00,22,2204', '东辽县', '22', '吉林省', '2204', '辽源市', '220422', '东辽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2205', '22', '00,22', '通化市', '22', '吉林省', '2205', '通化市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220502', '2205', '00,22,2205', '东昌区', '22', '吉林省', '2205', '通化市', '220502', '东昌区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220503', '2205', '00,22,2205', '二道江区', '22', '吉林省', '2205', '通化市', '220503', '二道江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220521', '2205', '00,22,2205', '通化县', '22', '吉林省', '2205', '通化市', '220521', '通化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220523', '2205', '00,22,2205', '辉南县', '22', '吉林省', '2205', '通化市', '220523', '辉南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220524', '2205', '00,22,2205', '柳河县', '22', '吉林省', '2205', '通化市', '220524', '柳河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22', '吉林省', '2205', '通化市', '220581', '梅河口市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220582', '2205', '00,22,2205', '集安市', '22', '吉林省', '2205', '通化市', '220582', '集安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2206', '22', '00,22', '白山市', '22', '吉林省', '2206', '白山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220602', '2206', '00,22,2206', '浑江区', '22', '吉林省', '2206', '白山市', '220602', '浑江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220605', '2206', '00,22,2206', '江源区', '22', '吉林省', '2206', '白山市', '220605', '江源区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220621', '2206', '00,22,2206', '抚松县', '22', '吉林省', '2206', '白山市', '220621', '抚松县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22', '吉林省', '2206', '白山市', '220622', '靖宇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22', '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220681', '2206', '00,22,2206', '临江市', '22', '吉林省', '2206', '白山市', '220681', '临江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2207', '22', '00,22', '松原市', '22', '吉林省', '2207', '松原市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220702', '2207', '00,22,2207', '宁江区', '22', '吉林省', '2207', '松原市', '220702', '宁江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22', '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220722', '2207', '00,22,2207', '长岭县', '22', '吉林省', '2207', '松原市', '220722', '长岭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220723', '2207', '00,22,2207', '乾安县', '22', '吉林省', '2207', '松原市', '220723', '乾安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220781', '2207', '00,22,2207', '扶余市', '22', '吉林省', '2207', '松原市', '220781', '扶余市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2208', '22', '00,22', '白城市', '22', '吉林省', '2208', '白城市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('220802', '2208', '00,22,2208', '洮北区', '22', '吉林省', '2208', '白城市', '220802', '洮北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22', '吉林省', '2208', '白城市', '220821', '镇赉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220822', '2208', '00,22,2208', '通榆县', '22', '吉林省', '2208', '白城市', '220822', '通榆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220881', '2208', '00,22,2208', '洮南市', '22', '吉林省', '2208', '白城市', '220881', '洮南市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('220882', '2208', '00,22,2208', '大安市', '22', '吉林省', '2208', '白城市', '220882', '大安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22', '吉林省', '2224', '延边朝鲜族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('222401', '2224', '00,22,2224', '延吉市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222402', '2224', '00,22,2224', '图们市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222403', '2224', '00,22,2224', '敦化市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222404', '2224', '00,22,2224', '珲春市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222405', '2224', '00,22,2224', '龙井市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222406', '2224', '00,22,2224', '和龙市', '22', '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222424', '2224', '00,22,2224', '汪清县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('222426', '2224', '00,22,2224', '安图县', '22', '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('23', '00', '00', '黑龙江省', '23', '黑龙江省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('2301', '23', '00,23', '哈尔滨市', '23', '黑龙江省', '2301', '哈尔滨市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230102', '2301', '00,23,2301', '道里区', '23', '黑龙江省', '2301', '哈尔滨市', '230102', '道里区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230103', '2301', '00,23,2301', '南岗区', '23', '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230104', '2301', '00,23,2301', '道外区', '23', '黑龙江省', '2301', '哈尔滨市', '230104', '道外区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230108', '2301', '00,23,2301', '平房区', '23', '黑龙江省', '2301', '哈尔滨市', '230108', '平房区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230109', '2301', '00,23,2301', '松北区', '23', '黑龙江省', '2301', '哈尔滨市', '230109', '松北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230110', '2301', '00,23,2301', '香坊区', '23', '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23', '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230112', '2301', '00,23,2301', '阿城区', '23', '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230113', '2301', '00,23,2301', '双城区', '23', '黑龙江省', '2301', '哈尔滨市', '230113', '双城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230123', '2301', '00,23,2301', '依兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230124', '2301', '00,23,2301', '方正县', '23', '黑龙江省', '2301', '哈尔滨市', '230124', '方正县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230125', '2301', '00,23,2301', '宾县', '23', '黑龙江省', '2301', '哈尔滨市', '230125', '宾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23', '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230127', '2301', '00,23,2301', '木兰县', '23', '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230128', '2301', '00,23,2301', '通河县', '23', '黑龙江省', '2301', '哈尔滨市', '230128', '通河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230129', '2301', '00,23,2301', '延寿县', '23', '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230183', '2301', '00,23,2301', '尚志市', '23', '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230184', '2301', '00,23,2301', '五常市', '23', '黑龙江省', '2301', '哈尔滨市', '230184', '五常市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23', '黑龙江省', '2302', '齐齐哈尔市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230203', '2302', '00,23,2302', '建华区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23', '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230221', '2302', '00,23,2302', '龙江县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230223', '2302', '00,23,2302', '依安县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230224', '2302', '00,23,2302', '泰来县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230225', '2302', '00,23,2302', '甘南县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230227', '2302', '00,23,2302', '富裕县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230229', '2302', '00,23,2302', '克山县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230230', '2302', '00,23,2302', '克东县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23', '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230281', '2302', '00,23,2302', '讷河市', '23', '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2303', '23', '00,23', '鸡西市', '23', '黑龙江省', '2303', '鸡西市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23', '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230303', '2303', '00,23,2303', '恒山区', '23', '黑龙江省', '2303', '鸡西市', '230303', '恒山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230304', '2303', '00,23,2303', '滴道区', '23', '黑龙江省', '2303', '鸡西市', '230304', '滴道区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230305', '2303', '00,23,2303', '梨树区', '23', '黑龙江省', '2303', '鸡西市', '230305', '梨树区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230306', '2303', '00,23,2303', '城子河区', '23', '黑龙江省', '2303', '鸡西市', '230306', '城子河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230307', '2303', '00,23,2303', '麻山区', '23', '黑龙江省', '2303', '鸡西市', '230307', '麻山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23', '黑龙江省', '2303', '鸡西市', '230321', '鸡东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230381', '2303', '00,23,2303', '虎林市', '23', '黑龙江省', '2303', '鸡西市', '230381', '虎林市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230382', '2303', '00,23,2303', '密山市', '23', '黑龙江省', '2303', '鸡西市', '230382', '密山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2304', '23', '00,23', '鹤岗市', '23', '黑龙江省', '2304', '鹤岗市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230402', '2304', '00,23,2304', '向阳区', '23', '黑龙江省', '2304', '鹤岗市', '230402', '向阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230403', '2304', '00,23,2304', '工农区', '23', '黑龙江省', '2304', '鹤岗市', '230403', '工农区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230404', '2304', '00,23,2304', '南山区', '23', '黑龙江省', '2304', '鹤岗市', '230404', '南山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230405', '2304', '00,23,2304', '兴安区', '23', '黑龙江省', '2304', '鹤岗市', '230405', '兴安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230406', '2304', '00,23,2304', '东山区', '23', '黑龙江省', '2304', '鹤岗市', '230406', '东山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230407', '2304', '00,23,2304', '兴山区', '23', '黑龙江省', '2304', '鹤岗市', '230407', '兴山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230421', '2304', '00,23,2304', '萝北县', '23', '黑龙江省', '2304', '鹤岗市', '230421', '萝北县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23', '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2305', '23', '00,23', '双鸭山市', '23', '黑龙江省', '2305', '双鸭山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230502', '2305', '00,23,2305', '尖山区', '23', '黑龙江省', '2305', '双鸭山市', '230502', '尖山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230503', '2305', '00,23,2305', '岭东区', '23', '黑龙江省', '2305', '双鸭山市', '230503', '岭东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230505', '2305', '00,23,2305', '四方台区', '23', '黑龙江省', '2305', '双鸭山市', '230505', '四方台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230506', '2305', '00,23,2305', '宝山区', '23', '黑龙江省', '2305', '双鸭山市', '230506', '宝山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230521', '2305', '00,23,2305', '集贤县', '23', '黑龙江省', '2305', '双鸭山市', '230521', '集贤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230522', '2305', '00,23,2305', '友谊县', '23', '黑龙江省', '2305', '双鸭山市', '230522', '友谊县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230523', '2305', '00,23,2305', '宝清县', '23', '黑龙江省', '2305', '双鸭山市', '230523', '宝清县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230524', '2305', '00,23,2305', '饶河县', '23', '黑龙江省', '2305', '双鸭山市', '230524', '饶河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2306', '23', '00,23', '大庆市', '23', '黑龙江省', '2306', '大庆市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23', '黑龙江省', '2306', '大庆市', '230602', '萨尔图区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23', '黑龙江省', '2306', '大庆市', '230603', '龙凤区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23', '黑龙江省', '2306', '大庆市', '230604', '让胡路区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230605', '2306', '00,23,2306', '红岗区', '23', '黑龙江省', '2306', '大庆市', '230605', '红岗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230606', '2306', '00,23,2306', '大同区', '23', '黑龙江省', '2306', '大庆市', '230606', '大同区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230621', '2306', '00,23,2306', '肇州县', '23', '黑龙江省', '2306', '大庆市', '230621', '肇州县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230622', '2306', '00,23,2306', '肇源县', '23', '黑龙江省', '2306', '大庆市', '230622', '肇源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230623', '2306', '00,23,2306', '林甸县', '23', '黑龙江省', '2306', '大庆市', '230623', '林甸县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23', '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2307', '23', '00,23', '伊春市', '23', '黑龙江省', '2307', '伊春市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230717', '2307', '00,23,2307', '伊美区', '23', '黑龙江省', '2307', '伊春市', '230717', '伊美区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23', '黑龙江省', '2307', '伊春市', '230718', '乌翠区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230719', '2307', '00,23,2307', '友好区', '23', '黑龙江省', '2307', '伊春市', '230719', '友好区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23', '黑龙江省', '2307', '伊春市', '230722', '嘉荫县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23', '黑龙江省', '2307', '伊春市', '230723', '汤旺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230724', '2307', '00,23,2307', '丰林县', '23', '黑龙江省', '2307', '伊春市', '230724', '丰林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23', '黑龙江省', '2307', '伊春市', '230725', '大箐山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230726', '2307', '00,23,2307', '南岔县', '23', '黑龙江省', '2307', '伊春市', '230726', '南岔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230751', '2307', '00,23,2307', '金林区', '23', '黑龙江省', '2307', '伊春市', '230751', '金林区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230781', '2307', '00,23,2307', '铁力市', '23', '黑龙江省', '2307', '伊春市', '230781', '铁力市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2308', '23', '00,23', '佳木斯市', '23', '黑龙江省', '2308', '佳木斯市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230803', '2308', '00,23,2308', '向阳区', '23', '黑龙江省', '2308', '佳木斯市', '230803', '向阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230804', '2308', '00,23,2308', '前进区', '23', '黑龙江省', '2308', '佳木斯市', '230804', '前进区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230805', '2308', '00,23,2308', '东风区', '23', '黑龙江省', '2308', '佳木斯市', '230805', '东风区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230811', '2308', '00,23,2308', '郊区', '23', '黑龙江省', '2308', '佳木斯市', '230811', '郊区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230822', '2308', '00,23,2308', '桦南县', '23', '黑龙江省', '2308', '佳木斯市', '230822', '桦南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230826', '2308', '00,23,2308', '桦川县', '23', '黑龙江省', '2308', '佳木斯市', '230826', '桦川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230828', '2308', '00,23,2308', '汤原县', '23', '黑龙江省', '2308', '佳木斯市', '230828', '汤原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230881', '2308', '00,23,2308', '同江市', '23', '黑龙江省', '2308', '佳木斯市', '230881', '同江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230882', '2308', '00,23,2308', '富锦市', '23', '黑龙江省', '2308', '佳木斯市', '230882', '富锦市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230883', '2308', '00,23,2308', '抚远市', '23', '黑龙江省', '2308', '佳木斯市', '230883', '抚远市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2309', '23', '00,23', '七台河市', '23', '黑龙江省', '2309', '七台河市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('230902', '2309', '00,23,2309', '新兴区', '23', '黑龙江省', '2309', '七台河市', '230902', '新兴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230903', '2309', '00,23,2309', '桃山区', '23', '黑龙江省', '2309', '七台河市', '230903', '桃山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23', '黑龙江省', '2309', '七台河市', '230904', '茄子河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('230921', '2309', '00,23,2309', '勃利县', '23', '黑龙江省', '2309', '七台河市', '230921', '勃利县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2310', '23', '00,23', '牡丹江市', '23', '黑龙江省', '2310', '牡丹江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('231002', '2310', '00,23,2310', '东安区', '23', '黑龙江省', '2310', '牡丹江市', '231002', '东安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231003', '2310', '00,23,2310', '阳明区', '23', '黑龙江省', '2310', '牡丹江市', '231003', '阳明区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231004', '2310', '00,23,2310', '爱民区', '23', '黑龙江省', '2310', '牡丹江市', '231004', '爱民区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231005', '2310', '00,23,2310', '西安区', '23', '黑龙江省', '2310', '牡丹江市', '231005', '西安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231025', '2310', '00,23,2310', '林口县', '23', '黑龙江省', '2310', '牡丹江市', '231025', '林口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23', '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231083', '2310', '00,23,2310', '海林市', '23', '黑龙江省', '2310', '牡丹江市', '231083', '海林市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231084', '2310', '00,23,2310', '宁安市', '23', '黑龙江省', '2310', '牡丹江市', '231084', '宁安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23', '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231086', '2310', '00,23,2310', '东宁市', '23', '黑龙江省', '2310', '牡丹江市', '231086', '东宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2311', '23', '00,23', '黑河市', '23', '黑龙江省', '2311', '黑河市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23', '黑龙江省', '2311', '黑河市', '231102', '爱辉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231123', '2311', '00,23,2311', '逊克县', '23', '黑龙江省', '2311', '黑河市', '231123', '逊克县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23', '黑龙江省', '2311', '黑河市', '231124', '孙吴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231181', '2311', '00,23,2311', '北安市', '23', '黑龙江省', '2311', '黑河市', '231181', '北安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23', '黑龙江省', '2311', '黑河市', '231182', '五大连池市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23', '黑龙江省', '2311', '黑河市', '231183', '嫩江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2312', '23', '00,23', '绥化市', '23', '黑龙江省', '2312', '绥化市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('231202', '2312', '00,23,2312', '北林区', '23', '黑龙江省', '2312', '绥化市', '231202', '北林区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231221', '2312', '00,23,2312', '望奎县', '23', '黑龙江省', '2312', '绥化市', '231221', '望奎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231222', '2312', '00,23,2312', '兰西县', '23', '黑龙江省', '2312', '绥化市', '231222', '兰西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231223', '2312', '00,23,2312', '青冈县', '23', '黑龙江省', '2312', '绥化市', '231223', '青冈县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231224', '2312', '00,23,2312', '庆安县', '23', '黑龙江省', '2312', '绥化市', '231224', '庆安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231225', '2312', '00,23,2312', '明水县', '23', '黑龙江省', '2312', '绥化市', '231225', '明水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23', '黑龙江省', '2312', '绥化市', '231226', '绥棱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231281', '2312', '00,23,2312', '安达市', '23', '黑龙江省', '2312', '绥化市', '231281', '安达市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231282', '2312', '00,23,2312', '肇东市', '23', '黑龙江省', '2312', '绥化市', '231282', '肇东市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('231283', '2312', '00,23,2312', '海伦市', '23', '黑龙江省', '2312', '绥化市', '231283', '海伦市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('2327', '23', '00,23', '大兴安岭地区', '23', '黑龙江省', '2327', '大兴安岭地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('232701', '2327', '00,23,2327', '漠河市', '23', '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23', '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('232722', '2327', '00,23,2327', '塔河县', '23', '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('31', '00', '00', '上海市', '31', '上海市', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3101', '31', '00,31', '上海市', '31', '上海市', '3101', '上海市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31', '上海市', '3101', '上海市', '310101', '黄浦区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31', '上海市', '3101', '上海市', '310104', '徐汇区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310105', '3101', '00,31,3101', '长宁区', '31', '上海市', '3101', '上海市', '310105', '长宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310106', '3101', '00,31,3101', '静安区', '31', '上海市', '3101', '上海市', '310106', '静安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310107', '3101', '00,31,3101', '普陀区', '31', '上海市', '3101', '上海市', '310107', '普陀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310109', '3101', '00,31,3101', '虹口区', '31', '上海市', '3101', '上海市', '310109', '虹口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31', '上海市', '3101', '上海市', '310110', '杨浦区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310112', '3101', '00,31,3101', '闵行区', '31', '上海市', '3101', '上海市', '310112', '闵行区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310113', '3101', '00,31,3101', '宝山区', '31', '上海市', '3101', '上海市', '310113', '宝山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31', '上海市', '3101', '上海市', '310114', '嘉定区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31', '上海市', '3101', '上海市', '310115', '浦东新区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310116', '3101', '00,31,3101', '金山区', '31', '上海市', '3101', '上海市', '310116', '金山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310117', '3101', '00,31,3101', '松江区', '31', '上海市', '3101', '上海市', '310117', '松江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310118', '3101', '00,31,3101', '青浦区', '31', '上海市', '3101', '上海市', '310118', '青浦区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31', '上海市', '3101', '上海市', '310120', '奉贤区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('310151', '3101', '00,31,3101', '崇明区', '31', '上海市', '3101', '上海市', '310151', '崇明区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('32', '00', '00', '江苏省', '32', '江苏省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3201', '32', '00,32', '南京市', '32', '江苏省', '3201', '南京市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320102', '3201', '00,32,3201', '玄武区', '32', '江苏省', '3201', '南京市', '320102', '玄武区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32', '江苏省', '3201', '南京市', '320104', '秦淮区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320105', '3201', '00,32,3201', '建邺区', '32', '江苏省', '3201', '南京市', '320105', '建邺区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32', '江苏省', '3201', '南京市', '320106', '鼓楼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320111', '3201', '00,32,3201', '浦口区', '32', '江苏省', '3201', '南京市', '320111', '浦口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32', '江苏省', '3201', '南京市', '320113', '栖霞区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32', '江苏省', '3201', '南京市', '320114', '雨花台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320115', '3201', '00,32,3201', '江宁区', '32', '江苏省', '3201', '南京市', '320115', '江宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320116', '3201', '00,32,3201', '六合区', '32', '江苏省', '3201', '南京市', '320116', '六合区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320117', '3201', '00,32,3201', '溧水区', '32', '江苏省', '3201', '南京市', '320117', '溧水区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320118', '3201', '00,32,3201', '高淳区', '32', '江苏省', '3201', '南京市', '320118', '高淳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3202', '32', '00,32', '无锡市', '32', '江苏省', '3202', '无锡市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320205', '3202', '00,32,3202', '锡山区', '32', '江苏省', '3202', '无锡市', '320205', '锡山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320206', '3202', '00,32,3202', '惠山区', '32', '江苏省', '3202', '无锡市', '320206', '惠山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32', '江苏省', '3202', '无锡市', '320211', '滨湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32', '江苏省', '3202', '无锡市', '320213', '梁溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320214', '3202', '00,32,3202', '新吴区', '32', '江苏省', '3202', '无锡市', '320214', '新吴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320281', '3202', '00,32,3202', '江阴市', '32', '江苏省', '3202', '无锡市', '320281', '江阴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32', '江苏省', '3202', '无锡市', '320282', '宜兴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3203', '32', '00,32', '徐州市', '32', '江苏省', '3203', '徐州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32', '江苏省', '3203', '徐州市', '320302', '鼓楼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320303', '3203', '00,32,3203', '云龙区', '32', '江苏省', '3203', '徐州市', '320303', '云龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32', '江苏省', '3203', '徐州市', '320305', '贾汪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320311', '3203', '00,32,3203', '泉山区', '32', '江苏省', '3203', '徐州市', '320311', '泉山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320312', '3203', '00,32,3203', '铜山区', '32', '江苏省', '3203', '徐州市', '320312', '铜山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320321', '3203', '00,32,3203', '丰县', '32', '江苏省', '3203', '徐州市', '320321', '丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320322', '3203', '00,32,3203', '沛县', '32', '江苏省', '3203', '徐州市', '320322', '沛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32', '江苏省', '3203', '徐州市', '320324', '睢宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320381', '3203', '00,32,3203', '新沂市', '32', '江苏省', '3203', '徐州市', '320381', '新沂市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320382', '3203', '00,32,3203', '邳州市', '32', '江苏省', '3203', '徐州市', '320382', '邳州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3204', '32', '00,32', '常州市', '32', '江苏省', '3204', '常州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320402', '3204', '00,32,3204', '天宁区', '32', '江苏省', '3204', '常州市', '320402', '天宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32', '江苏省', '3204', '常州市', '320404', '钟楼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320411', '3204', '00,32,3204', '新北区', '32', '江苏省', '3204', '常州市', '320411', '新北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320412', '3204', '00,32,3204', '武进区', '32', '江苏省', '3204', '常州市', '320412', '武进区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320413', '3204', '00,32,3204', '金坛区', '32', '江苏省', '3204', '常州市', '320413', '金坛区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32', '江苏省', '3204', '常州市', '320481', '溧阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3205', '32', '00,32', '苏州市', '32', '江苏省', '3205', '苏州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32', '江苏省', '3205', '苏州市', '320505', '虎丘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320506', '3205', '00,32,3205', '吴中区', '32', '江苏省', '3205', '苏州市', '320506', '吴中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320507', '3205', '00,32,3205', '相城区', '32', '江苏省', '3205', '苏州市', '320507', '相城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32', '江苏省', '3205', '苏州市', '320508', '姑苏区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320509', '3205', '00,32,3205', '吴江区', '32', '江苏省', '3205', '苏州市', '320509', '吴江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320581', '3205', '00,32,3205', '常熟市', '32', '江苏省', '3205', '苏州市', '320581', '常熟市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320582', '3205', '00,32,3205', '张家港市', '32', '江苏省', '3205', '苏州市', '320582', '张家港市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320583', '3205', '00,32,3205', '昆山市', '32', '江苏省', '3205', '苏州市', '320583', '昆山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320585', '3205', '00,32,3205', '太仓市', '32', '江苏省', '3205', '苏州市', '320585', '太仓市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3206', '32', '00,32', '南通市', '32', '江苏省', '3206', '南通市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320602', '3206', '00,32,3206', '崇川区', '32', '江苏省', '3206', '南通市', '320602', '崇川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320611', '3206', '00,32,3206', '港闸区', '32', '江苏省', '3206', '南通市', '320611', '港闸区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320612', '3206', '00,32,3206', '通州区', '32', '江苏省', '3206', '南通市', '320612', '通州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320623', '3206', '00,32,3206', '如东县', '32', '江苏省', '3206', '南通市', '320623', '如东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320681', '3206', '00,32,3206', '启东市', '32', '江苏省', '3206', '南通市', '320681', '启东市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320682', '3206', '00,32,3206', '如皋市', '32', '江苏省', '3206', '南通市', '320682', '如皋市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320684', '3206', '00,32,3206', '海门市', '32', '江苏省', '3206', '南通市', '320684', '海门市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320685', '3206', '00,32,3206', '海安市', '32', '江苏省', '3206', '南通市', '320685', '海安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3207', '32', '00,32', '连云港市', '32', '江苏省', '3207', '连云港市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320703', '3207', '00,32,3207', '连云区', '32', '江苏省', '3207', '连云港市', '320703', '连云区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320706', '3207', '00,32,3207', '海州区', '32', '江苏省', '3207', '连云港市', '320706', '海州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32', '江苏省', '3207', '连云港市', '320707', '赣榆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320722', '3207', '00,32,3207', '东海县', '32', '江苏省', '3207', '连云港市', '320722', '东海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320723', '3207', '00,32,3207', '灌云县', '32', '江苏省', '3207', '连云港市', '320723', '灌云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320724', '3207', '00,32,3207', '灌南县', '32', '江苏省', '3207', '连云港市', '320724', '灌南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3208', '32', '00,32', '淮安市', '32', '江苏省', '3208', '淮安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320803', '3208', '00,32,3208', '淮安区', '32', '江苏省', '3208', '淮安市', '320803', '淮安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32', '江苏省', '3208', '淮安市', '320804', '淮阴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32', '江苏省', '3208', '淮安市', '320812', '清江浦区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32', '江苏省', '3208', '淮安市', '320813', '洪泽区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320826', '3208', '00,32,3208', '涟水县', '32', '江苏省', '3208', '淮安市', '320826', '涟水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32', '江苏省', '3208', '淮安市', '320830', '盱眙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320831', '3208', '00,32,3208', '金湖县', '32', '江苏省', '3208', '淮安市', '320831', '金湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3209', '32', '00,32', '盐城市', '32', '江苏省', '3209', '盐城市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32', '江苏省', '3209', '盐城市', '320902', '亭湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320903', '3209', '00,32,3209', '盐都区', '32', '江苏省', '3209', '盐城市', '320903', '盐都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320904', '3209', '00,32,3209', '大丰区', '32', '江苏省', '3209', '盐城市', '320904', '大丰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320921', '3209', '00,32,3209', '响水县', '32', '江苏省', '3209', '盐城市', '320921', '响水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320922', '3209', '00,32,3209', '滨海县', '32', '江苏省', '3209', '盐城市', '320922', '滨海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32', '江苏省', '3209', '盐城市', '320923', '阜宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320924', '3209', '00,32,3209', '射阳县', '32', '江苏省', '3209', '盐城市', '320924', '射阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320925', '3209', '00,32,3209', '建湖县', '32', '江苏省', '3209', '盐城市', '320925', '建湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('320981', '3209', '00,32,3209', '东台市', '32', '江苏省', '3209', '盐城市', '320981', '东台市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3210', '32', '00,32', '扬州市', '32', '江苏省', '3210', '扬州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('321002', '3210', '00,32,3210', '广陵区', '32', '江苏省', '3210', '扬州市', '321002', '广陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321003', '3210', '00,32,3210', '邗江区', '32', '江苏省', '3210', '扬州市', '321003', '邗江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321012', '3210', '00,32,3210', '江都区', '32', '江苏省', '3210', '扬州市', '321012', '江都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321023', '3210', '00,32,3210', '宝应县', '32', '江苏省', '3210', '扬州市', '321023', '宝应县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321081', '3210', '00,32,3210', '仪征市', '32', '江苏省', '3210', '扬州市', '321081', '仪征市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321084', '3210', '00,32,3210', '高邮市', '32', '江苏省', '3210', '扬州市', '321084', '高邮市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3211', '32', '00,32', '镇江市', '32', '江苏省', '3211', '镇江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('321102', '3211', '00,32,3211', '京口区', '32', '江苏省', '3211', '镇江市', '321102', '京口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321111', '3211', '00,32,3211', '润州区', '32', '江苏省', '3211', '镇江市', '321111', '润州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32', '江苏省', '3211', '镇江市', '321112', '丹徒区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32', '江苏省', '3211', '镇江市', '321181', '丹阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321182', '3211', '00,32,3211', '扬中市', '32', '江苏省', '3211', '镇江市', '321182', '扬中市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321183', '3211', '00,32,3211', '句容市', '32', '江苏省', '3211', '镇江市', '321183', '句容市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3212', '32', '00,32', '泰州市', '32', '江苏省', '3212', '泰州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('321202', '3212', '00,32,3212', '海陵区', '32', '江苏省', '3212', '泰州市', '321202', '海陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321203', '3212', '00,32,3212', '高港区', '32', '江苏省', '3212', '泰州市', '321203', '高港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32', '江苏省', '3212', '泰州市', '321204', '姜堰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321281', '3212', '00,32,3212', '兴化市', '32', '江苏省', '3212', '泰州市', '321281', '兴化市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321282', '3212', '00,32,3212', '靖江市', '32', '江苏省', '3212', '泰州市', '321282', '靖江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32', '江苏省', '3212', '泰州市', '321283', '泰兴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3213', '32', '00,32', '宿迁市', '32', '江苏省', '3213', '宿迁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('321302', '3213', '00,32,3213', '宿城区', '32', '江苏省', '3213', '宿迁市', '321302', '宿城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32', '江苏省', '3213', '宿迁市', '321311', '宿豫区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32', '江苏省', '3213', '宿迁市', '321322', '沭阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32', '江苏省', '3213', '宿迁市', '321323', '泗阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32', '江苏省', '3213', '宿迁市', '321324', '泗洪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('33', '00', '00', '浙江省', '33', '浙江省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3301', '33', '00,33', '杭州市', '33', '浙江省', '3301', '杭州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330102', '3301', '00,33,3301', '上城区', '33', '浙江省', '3301', '杭州市', '330102', '上城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330103', '3301', '00,33,3301', '下城区', '33', '浙江省', '3301', '杭州市', '330103', '下城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330104', '3301', '00,33,3301', '江干区', '33', '浙江省', '3301', '杭州市', '330104', '江干区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33', '浙江省', '3301', '杭州市', '330105', '拱墅区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330106', '3301', '00,33,3301', '西湖区', '33', '浙江省', '3301', '杭州市', '330106', '西湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330108', '3301', '00,33,3301', '滨江区', '33', '浙江省', '3301', '杭州市', '330108', '滨江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330109', '3301', '00,33,3301', '萧山区', '33', '浙江省', '3301', '杭州市', '330109', '萧山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330110', '3301', '00,33,3301', '余杭区', '33', '浙江省', '3301', '杭州市', '330110', '余杭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330111', '3301', '00,33,3301', '富阳区', '33', '浙江省', '3301', '杭州市', '330111', '富阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330112', '3301', '00,33,3301', '临安区', '33', '浙江省', '3301', '杭州市', '330112', '临安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33', '浙江省', '3301', '杭州市', '330122', '桐庐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330127', '3301', '00,33,3301', '淳安县', '33', '浙江省', '3301', '杭州市', '330127', '淳安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330182', '3301', '00,33,3301', '建德市', '33', '浙江省', '3301', '杭州市', '330182', '建德市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3302', '33', '00,33', '宁波市', '33', '浙江省', '3302', '宁波市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330203', '3302', '00,33,3302', '海曙区', '33', '浙江省', '3302', '宁波市', '330203', '海曙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330205', '3302', '00,33,3302', '江北区', '33', '浙江省', '3302', '宁波市', '330205', '江北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330206', '3302', '00,33,3302', '北仑区', '33', '浙江省', '3302', '宁波市', '330206', '北仑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330211', '3302', '00,33,3302', '镇海区', '33', '浙江省', '3302', '宁波市', '330211', '镇海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33', '浙江省', '3302', '宁波市', '330212', '鄞州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330213', '3302', '00,33,3302', '奉化区', '33', '浙江省', '3302', '宁波市', '330213', '奉化区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330225', '3302', '00,33,3302', '象山县', '33', '浙江省', '3302', '宁波市', '330225', '象山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330226', '3302', '00,33,3302', '宁海县', '33', '浙江省', '3302', '宁波市', '330226', '宁海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330281', '3302', '00,33,3302', '余姚市', '33', '浙江省', '3302', '宁波市', '330281', '余姚市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33', '浙江省', '3302', '宁波市', '330282', '慈溪市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3303', '33', '00,33', '温州市', '33', '浙江省', '3303', '温州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33', '浙江省', '3303', '温州市', '330302', '鹿城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33', '浙江省', '3303', '温州市', '330303', '龙湾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33', '浙江省', '3303', '温州市', '330304', '瓯海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330305', '3303', '00,33,3303', '洞头区', '33', '浙江省', '3303', '温州市', '330305', '洞头区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33', '浙江省', '3303', '温州市', '330324', '永嘉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330326', '3303', '00,33,3303', '平阳县', '33', '浙江省', '3303', '温州市', '330326', '平阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330327', '3303', '00,33,3303', '苍南县', '33', '浙江省', '3303', '温州市', '330327', '苍南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330328', '3303', '00,33,3303', '文成县', '33', '浙江省', '3303', '温州市', '330328', '文成县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33', '浙江省', '3303', '温州市', '330329', '泰顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33', '浙江省', '3303', '温州市', '330381', '瑞安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330382', '3303', '00,33,3303', '乐清市', '33', '浙江省', '3303', '温州市', '330382', '乐清市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330383', '3303', '00,33,3303', '龙港市', '33', '浙江省', '3303', '温州市', '330383', '龙港市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3304', '33', '00,33', '嘉兴市', '33', '浙江省', '3304', '嘉兴市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330402', '3304', '00,33,3304', '南湖区', '33', '浙江省', '3304', '嘉兴市', '330402', '南湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33', '浙江省', '3304', '嘉兴市', '330411', '秀洲区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33', '浙江省', '3304', '嘉兴市', '330421', '嘉善县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330424', '3304', '00,33,3304', '海盐县', '33', '浙江省', '3304', '嘉兴市', '330424', '海盐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330481', '3304', '00,33,3304', '海宁市', '33', '浙江省', '3304', '嘉兴市', '330481', '海宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330482', '3304', '00,33,3304', '平湖市', '33', '浙江省', '3304', '嘉兴市', '330482', '平湖市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33', '浙江省', '3304', '嘉兴市', '330483', '桐乡市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3305', '33', '00,33', '湖州市', '33', '浙江省', '3305', '湖州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33', '浙江省', '3305', '湖州市', '330502', '吴兴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330503', '3305', '00,33,3305', '南浔区', '33', '浙江省', '3305', '湖州市', '330503', '南浔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330521', '3305', '00,33,3305', '德清县', '33', '浙江省', '3305', '湖州市', '330521', '德清县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330522', '3305', '00,33,3305', '长兴县', '33', '浙江省', '3305', '湖州市', '330522', '长兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330523', '3305', '00,33,3305', '安吉县', '33', '浙江省', '3305', '湖州市', '330523', '安吉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3306', '33', '00,33', '绍兴市', '33', '浙江省', '3306', '绍兴市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330602', '3306', '00,33,3306', '越城区', '33', '浙江省', '3306', '绍兴市', '330602', '越城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33', '浙江省', '3306', '绍兴市', '330603', '柯桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330604', '3306', '00,33,3306', '上虞区', '33', '浙江省', '3306', '绍兴市', '330604', '上虞区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330624', '3306', '00,33,3306', '新昌县', '33', '浙江省', '3306', '绍兴市', '330624', '新昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33', '浙江省', '3306', '绍兴市', '330681', '诸暨市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33', '浙江省', '3306', '绍兴市', '330683', '嵊州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3307', '33', '00,33', '金华市', '33', '浙江省', '3307', '金华市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330702', '3307', '00,33,3307', '婺城区', '33', '浙江省', '3307', '金华市', '330702', '婺城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330703', '3307', '00,33,3307', '金东区', '33', '浙江省', '3307', '金华市', '330703', '金东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330723', '3307', '00,33,3307', '武义县', '33', '浙江省', '3307', '金华市', '330723', '武义县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330726', '3307', '00,33,3307', '浦江县', '33', '浙江省', '3307', '金华市', '330726', '浦江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330727', '3307', '00,33,3307', '磐安县', '33', '浙江省', '3307', '金华市', '330727', '磐安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33', '浙江省', '3307', '金华市', '330781', '兰溪市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330782', '3307', '00,33,3307', '义乌市', '33', '浙江省', '3307', '金华市', '330782', '义乌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330783', '3307', '00,33,3307', '东阳市', '33', '浙江省', '3307', '金华市', '330783', '东阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330784', '3307', '00,33,3307', '永康市', '33', '浙江省', '3307', '金华市', '330784', '永康市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3308', '33', '00,33', '衢州市', '33', '浙江省', '3308', '衢州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330802', '3308', '00,33,3308', '柯城区', '33', '浙江省', '3308', '衢州市', '330802', '柯城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330803', '3308', '00,33,3308', '衢江区', '33', '浙江省', '3308', '衢州市', '330803', '衢江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330822', '3308', '00,33,3308', '常山县', '33', '浙江省', '3308', '衢州市', '330822', '常山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330824', '3308', '00,33,3308', '开化县', '33', '浙江省', '3308', '衢州市', '330824', '开化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330825', '3308', '00,33,3308', '龙游县', '33', '浙江省', '3308', '衢州市', '330825', '龙游县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330881', '3308', '00,33,3308', '江山市', '33', '浙江省', '3308', '衢州市', '330881', '江山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3309', '33', '00,33', '舟山市', '33', '浙江省', '3309', '舟山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('330902', '3309', '00,33,3309', '定海区', '33', '浙江省', '3309', '舟山市', '330902', '定海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330903', '3309', '00,33,3309', '普陀区', '33', '浙江省', '3309', '舟山市', '330903', '普陀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330921', '3309', '00,33,3309', '岱山县', '33', '浙江省', '3309', '舟山市', '330921', '岱山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33', '浙江省', '3309', '舟山市', '330922', '嵊泗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3310', '33', '00,33', '台州市', '33', '浙江省', '3310', '台州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('331002', '3310', '00,33,3310', '椒江区', '33', '浙江省', '3310', '台州市', '331002', '椒江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33', '浙江省', '3310', '台州市', '331003', '黄岩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331004', '3310', '00,33,3310', '路桥区', '33', '浙江省', '3310', '台州市', '331004', '路桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331022', '3310', '00,33,3310', '三门县', '33', '浙江省', '3310', '台州市', '331022', '三门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331023', '3310', '00,33,3310', '天台县', '33', '浙江省', '3310', '台州市', '331023', '天台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331024', '3310', '00,33,3310', '仙居县', '33', '浙江省', '3310', '台州市', '331024', '仙居县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331081', '3310', '00,33,3310', '温岭市', '33', '浙江省', '3310', '台州市', '331081', '温岭市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331082', '3310', '00,33,3310', '临海市', '33', '浙江省', '3310', '台州市', '331082', '临海市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331083', '3310', '00,33,3310', '玉环市', '33', '浙江省', '3310', '台州市', '331083', '玉环市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3311', '33', '00,33', '丽水市', '33', '浙江省', '3311', '丽水市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('331102', '3311', '00,33,3311', '莲都区', '33', '浙江省', '3311', '丽水市', '331102', '莲都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331121', '3311', '00,33,3311', '青田县', '33', '浙江省', '3311', '丽水市', '331121', '青田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331122', '3311', '00,33,3311', '缙云县', '33', '浙江省', '3311', '丽水市', '331122', '缙云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33', '浙江省', '3311', '丽水市', '331123', '遂昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331124', '3311', '00,33,3311', '松阳县', '33', '浙江省', '3311', '丽水市', '331124', '松阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331125', '3311', '00,33,3311', '云和县', '33', '浙江省', '3311', '丽水市', '331125', '云和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331126', '3311', '00,33,3311', '庆元县', '33', '浙江省', '3311', '丽水市', '331126', '庆元县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33', '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33', '浙江省', '3311', '丽水市', '331181', '龙泉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('34', '00', '00', '安徽省', '34', '安徽省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3401', '34', '00,34', '合肥市', '34', '安徽省', '3401', '合肥市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34', '安徽省', '3401', '合肥市', '340102', '瑶海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34', '安徽省', '3401', '合肥市', '340103', '庐阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34', '安徽省', '3401', '合肥市', '340104', '蜀山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340111', '3401', '00,34,3401', '包河区', '34', '安徽省', '3401', '合肥市', '340111', '包河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340121', '3401', '00,34,3401', '长丰县', '34', '安徽省', '3401', '合肥市', '340121', '长丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340122', '3401', '00,34,3401', '肥东县', '34', '安徽省', '3401', '合肥市', '340122', '肥东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340123', '3401', '00,34,3401', '肥西县', '34', '安徽省', '3401', '合肥市', '340123', '肥西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340124', '3401', '00,34,3401', '庐江县', '34', '安徽省', '3401', '合肥市', '340124', '庐江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34', '安徽省', '3401', '合肥市', '340181', '巢湖市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3402', '34', '00,34', '芜湖市', '34', '安徽省', '3402', '芜湖市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34', '安徽省', '3402', '芜湖市', '340202', '镜湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340203', '3402', '00,34,3402', '弋江区', '34', '安徽省', '3402', '芜湖市', '340203', '弋江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34', '安徽省', '3402', '芜湖市', '340207', '鸠江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340208', '3402', '00,34,3402', '三山区', '34', '安徽省', '3402', '芜湖市', '340208', '三山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34', '安徽省', '3402', '芜湖市', '340221', '芜湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34', '安徽省', '3402', '芜湖市', '340222', '繁昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340223', '3402', '00,34,3402', '南陵县', '34', '安徽省', '3402', '芜湖市', '340223', '南陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340281', '3402', '00,34,3402', '无为市', '34', '安徽省', '3402', '芜湖市', '340281', '无为市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34', '安徽省', '3403', '蚌埠市', '340302', '龙子湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34', '安徽省', '3403', '蚌埠市', '340303', '蚌山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340304', '3403', '00,34,3403', '禹会区', '34', '安徽省', '3403', '蚌埠市', '340304', '禹会区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340311', '3403', '00,34,3403', '淮上区', '34', '安徽省', '3403', '蚌埠市', '340311', '淮上区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340321', '3403', '00,34,3403', '怀远县', '34', '安徽省', '3403', '蚌埠市', '340321', '怀远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340322', '3403', '00,34,3403', '五河县', '34', '安徽省', '3403', '蚌埠市', '340322', '五河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340323', '3403', '00,34,3403', '固镇县', '34', '安徽省', '3403', '蚌埠市', '340323', '固镇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3404', '34', '00,34', '淮南市', '34', '安徽省', '3404', '淮南市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340402', '3404', '00,34,3404', '大通区', '34', '安徽省', '3404', '淮南市', '340402', '大通区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34', '安徽省', '3404', '淮南市', '340403', '田家庵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34', '安徽省', '3404', '淮南市', '340404', '谢家集区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340405', '3404', '00,34,3404', '八公山区', '34', '安徽省', '3404', '淮南市', '340405', '八公山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340406', '3404', '00,34,3404', '潘集区', '34', '安徽省', '3404', '淮南市', '340406', '潘集区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340421', '3404', '00,34,3404', '凤台县', '34', '安徽省', '3404', '淮南市', '340421', '凤台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340422', '3404', '00,34,3404', '寿县', '34', '安徽省', '3404', '淮南市', '340422', '寿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3405', '34', '00,34', '马鞍山市', '34', '安徽省', '3405', '马鞍山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340503', '3405', '00,34,3405', '花山区', '34', '安徽省', '3405', '马鞍山市', '340503', '花山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340504', '3405', '00,34,3405', '雨山区', '34', '安徽省', '3405', '马鞍山市', '340504', '雨山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340506', '3405', '00,34,3405', '博望区', '34', '安徽省', '3405', '马鞍山市', '340506', '博望区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340521', '3405', '00,34,3405', '当涂县', '34', '安徽省', '3405', '马鞍山市', '340521', '当涂县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340522', '3405', '00,34,3405', '含山县', '34', '安徽省', '3405', '马鞍山市', '340522', '含山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340523', '3405', '00,34,3405', '和县', '34', '安徽省', '3405', '马鞍山市', '340523', '和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3406', '34', '00,34', '淮北市', '34', '安徽省', '3406', '淮北市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340602', '3406', '00,34,3406', '杜集区', '34', '安徽省', '3406', '淮北市', '340602', '杜集区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340603', '3406', '00,34,3406', '相山区', '34', '安徽省', '3406', '淮北市', '340603', '相山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340604', '3406', '00,34,3406', '烈山区', '34', '安徽省', '3406', '淮北市', '340604', '烈山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34', '安徽省', '3406', '淮北市', '340621', '濉溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3407', '34', '00,34', '铜陵市', '34', '安徽省', '3407', '铜陵市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340705', '3407', '00,34,3407', '铜官区', '34', '安徽省', '3407', '铜陵市', '340705', '铜官区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340706', '3407', '00,34,3407', '义安区', '34', '安徽省', '3407', '铜陵市', '340706', '义安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340711', '3407', '00,34,3407', '郊区', '34', '安徽省', '3407', '铜陵市', '340711', '郊区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34', '安徽省', '3407', '铜陵市', '340722', '枞阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3408', '34', '00,34', '安庆市', '34', '安徽省', '3408', '安庆市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('340802', '3408', '00,34,3408', '迎江区', '34', '安徽省', '3408', '安庆市', '340802', '迎江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340803', '3408', '00,34,3408', '大观区', '34', '安徽省', '3408', '安庆市', '340803', '大观区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34', '安徽省', '3408', '安庆市', '340811', '宜秀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34', '安徽省', '3408', '安庆市', '340822', '怀宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340825', '3408', '00,34,3408', '太湖县', '34', '安徽省', '3408', '安庆市', '340825', '太湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340826', '3408', '00,34,3408', '宿松县', '34', '安徽省', '3408', '安庆市', '340826', '宿松县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340827', '3408', '00,34,3408', '望江县', '34', '安徽省', '3408', '安庆市', '340827', '望江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340828', '3408', '00,34,3408', '岳西县', '34', '安徽省', '3408', '安庆市', '340828', '岳西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340881', '3408', '00,34,3408', '桐城市', '34', '安徽省', '3408', '安庆市', '340881', '桐城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('340882', '3408', '00,34,3408', '潜山市', '34', '安徽省', '3408', '安庆市', '340882', '潜山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3410', '34', '00,34', '黄山市', '34', '安徽省', '3410', '黄山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34', '安徽省', '3410', '黄山市', '341002', '屯溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341003', '3410', '00,34,3410', '黄山区', '34', '安徽省', '3410', '黄山市', '341003', '黄山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341004', '3410', '00,34,3410', '徽州区', '34', '安徽省', '3410', '黄山市', '341004', '徽州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341021', '3410', '00,34,3410', '歙县', '34', '安徽省', '3410', '黄山市', '341021', '歙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341022', '3410', '00,34,3410', '休宁县', '34', '安徽省', '3410', '黄山市', '341022', '休宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341023', '3410', '00,34,3410', '黟县', '34', '安徽省', '3410', '黄山市', '341023', '黟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341024', '3410', '00,34,3410', '祁门县', '34', '安徽省', '3410', '黄山市', '341024', '祁门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3411', '34', '00,34', '滁州市', '34', '安徽省', '3411', '滁州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34', '安徽省', '3411', '滁州市', '341102', '琅琊区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341103', '3411', '00,34,3411', '南谯区', '34', '安徽省', '3411', '滁州市', '341103', '南谯区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341122', '3411', '00,34,3411', '来安县', '34', '安徽省', '3411', '滁州市', '341122', '来安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341124', '3411', '00,34,3411', '全椒县', '34', '安徽省', '3411', '滁州市', '341124', '全椒县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341125', '3411', '00,34,3411', '定远县', '34', '安徽省', '3411', '滁州市', '341125', '定远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34', '安徽省', '3411', '滁州市', '341126', '凤阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341181', '3411', '00,34,3411', '天长市', '34', '安徽省', '3411', '滁州市', '341181', '天长市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341182', '3411', '00,34,3411', '明光市', '34', '安徽省', '3411', '滁州市', '341182', '明光市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3412', '34', '00,34', '阜阳市', '34', '安徽省', '3412', '阜阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341202', '3412', '00,34,3412', '颍州区', '34', '安徽省', '3412', '阜阳市', '341202', '颍州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341203', '3412', '00,34,3412', '颍东区', '34', '安徽省', '3412', '阜阳市', '341203', '颍东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34', '安徽省', '3412', '阜阳市', '341204', '颍泉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341221', '3412', '00,34,3412', '临泉县', '34', '安徽省', '3412', '阜阳市', '341221', '临泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341222', '3412', '00,34,3412', '太和县', '34', '安徽省', '3412', '阜阳市', '341222', '太和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341225', '3412', '00,34,3412', '阜南县', '34', '安徽省', '3412', '阜阳市', '341225', '阜南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341226', '3412', '00,34,3412', '颍上县', '34', '安徽省', '3412', '阜阳市', '341226', '颍上县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341282', '3412', '00,34,3412', '界首市', '34', '安徽省', '3412', '阜阳市', '341282', '界首市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3413', '34', '00,34', '宿州市', '34', '安徽省', '3413', '宿州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34', '安徽省', '3413', '宿州市', '341302', '埇桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341321', '3413', '00,34,3413', '砀山县', '34', '安徽省', '3413', '宿州市', '341321', '砀山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341322', '3413', '00,34,3413', '萧县', '34', '安徽省', '3413', '宿州市', '341322', '萧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34', '安徽省', '3413', '宿州市', '341323', '灵璧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341324', '3413', '00,34,3413', '泗县', '34', '安徽省', '3413', '宿州市', '341324', '泗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3415', '34', '00,34', '六安市', '34', '安徽省', '3415', '六安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341502', '3415', '00,34,3415', '金安区', '34', '安徽省', '3415', '六安市', '341502', '金安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341503', '3415', '00,34,3415', '裕安区', '34', '安徽省', '3415', '六安市', '341503', '裕安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341504', '3415', '00,34,3415', '叶集区', '34', '安徽省', '3415', '六安市', '341504', '叶集区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34', '安徽省', '3415', '六安市', '341522', '霍邱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341523', '3415', '00,34,3415', '舒城县', '34', '安徽省', '3415', '六安市', '341523', '舒城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341524', '3415', '00,34,3415', '金寨县', '34', '安徽省', '3415', '六安市', '341524', '金寨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341525', '3415', '00,34,3415', '霍山县', '34', '安徽省', '3415', '六安市', '341525', '霍山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3416', '34', '00,34', '亳州市', '34', '安徽省', '3416', '亳州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341602', '3416', '00,34,3416', '谯城区', '34', '安徽省', '3416', '亳州市', '341602', '谯城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34', '安徽省', '3416', '亳州市', '341621', '涡阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34', '安徽省', '3416', '亳州市', '341622', '蒙城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341623', '3416', '00,34,3416', '利辛县', '34', '安徽省', '3416', '亳州市', '341623', '利辛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3417', '34', '00,34', '池州市', '34', '安徽省', '3417', '池州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341702', '3417', '00,34,3417', '贵池区', '34', '安徽省', '3417', '池州市', '341702', '贵池区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341721', '3417', '00,34,3417', '东至县', '34', '安徽省', '3417', '池州市', '341721', '东至县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341722', '3417', '00,34,3417', '石台县', '34', '安徽省', '3417', '池州市', '341722', '石台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341723', '3417', '00,34,3417', '青阳县', '34', '安徽省', '3417', '池州市', '341723', '青阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3418', '34', '00,34', '宣城市', '34', '安徽省', '3418', '宣城市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('341802', '3418', '00,34,3418', '宣州区', '34', '安徽省', '3418', '宣城市', '341802', '宣州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34', '安徽省', '3418', '宣城市', '341821', '郎溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341823', '3418', '00,34,3418', '泾县', '34', '安徽省', '3418', '宣城市', '341823', '泾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34', '安徽省', '3418', '宣城市', '341824', '绩溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341825', '3418', '00,34,3418', '旌德县', '34', '安徽省', '3418', '宣城市', '341825', '旌德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341881', '3418', '00,34,3418', '宁国市', '34', '安徽省', '3418', '宣城市', '341881', '宁国市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('341882', '3418', '00,34,3418', '广德市', '34', '安徽省', '3418', '宣城市', '341882', '广德市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('35', '00', '00', '福建省', '35', '福建省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3501', '35', '00,35', '福州市', '35', '福建省', '3501', '福州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35', '福建省', '3501', '福州市', '350102', '鼓楼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350103', '3501', '00,35,3501', '台江区', '35', '福建省', '3501', '福州市', '350103', '台江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350104', '3501', '00,35,3501', '仓山区', '35', '福建省', '3501', '福州市', '350104', '仓山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350105', '3501', '00,35,3501', '马尾区', '35', '福建省', '3501', '福州市', '350105', '马尾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350111', '3501', '00,35,3501', '晋安区', '35', '福建省', '3501', '福州市', '350111', '晋安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350112', '3501', '00,35,3501', '长乐区', '35', '福建省', '3501', '福州市', '350112', '长乐区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35', '福建省', '3501', '福州市', '350121', '闽侯县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350122', '3501', '00,35,3501', '连江县', '35', '福建省', '3501', '福州市', '350122', '连江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350123', '3501', '00,35,3501', '罗源县', '35', '福建省', '3501', '福州市', '350123', '罗源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350124', '3501', '00,35,3501', '闽清县', '35', '福建省', '3501', '福州市', '350124', '闽清县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350125', '3501', '00,35,3501', '永泰县', '35', '福建省', '3501', '福州市', '350125', '永泰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350128', '3501', '00,35,3501', '平潭县', '35', '福建省', '3501', '福州市', '350128', '平潭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350181', '3501', '00,35,3501', '福清市', '35', '福建省', '3501', '福州市', '350181', '福清市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3502', '35', '00,35', '厦门市', '35', '福建省', '3502', '厦门市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350203', '3502', '00,35,3502', '思明区', '35', '福建省', '3502', '厦门市', '350203', '思明区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350205', '3502', '00,35,3502', '海沧区', '35', '福建省', '3502', '厦门市', '350205', '海沧区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350206', '3502', '00,35,3502', '湖里区', '35', '福建省', '3502', '厦门市', '350206', '湖里区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350211', '3502', '00,35,3502', '集美区', '35', '福建省', '3502', '厦门市', '350211', '集美区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350212', '3502', '00,35,3502', '同安区', '35', '福建省', '3502', '厦门市', '350212', '同安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350213', '3502', '00,35,3502', '翔安区', '35', '福建省', '3502', '厦门市', '350213', '翔安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3503', '35', '00,35', '莆田市', '35', '福建省', '3503', '莆田市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350302', '3503', '00,35,3503', '城厢区', '35', '福建省', '3503', '莆田市', '350302', '城厢区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350303', '3503', '00,35,3503', '涵江区', '35', '福建省', '3503', '莆田市', '350303', '涵江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350304', '3503', '00,35,3503', '荔城区', '35', '福建省', '3503', '莆田市', '350304', '荔城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35', '福建省', '3503', '莆田市', '350305', '秀屿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350322', '3503', '00,35,3503', '仙游县', '35', '福建省', '3503', '莆田市', '350322', '仙游县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3504', '35', '00,35', '三明市', '35', '福建省', '3504', '三明市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350402', '3504', '00,35,3504', '梅列区', '35', '福建省', '3504', '三明市', '350402', '梅列区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350403', '3504', '00,35,3504', '三元区', '35', '福建省', '3504', '三明市', '350403', '三元区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350421', '3504', '00,35,3504', '明溪县', '35', '福建省', '3504', '三明市', '350421', '明溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350423', '3504', '00,35,3504', '清流县', '35', '福建省', '3504', '三明市', '350423', '清流县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350424', '3504', '00,35,3504', '宁化县', '35', '福建省', '3504', '三明市', '350424', '宁化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350425', '3504', '00,35,3504', '大田县', '35', '福建省', '3504', '三明市', '350425', '大田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35', '福建省', '3504', '三明市', '350426', '尤溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350427', '3504', '00,35,3504', '沙县', '35', '福建省', '3504', '三明市', '350427', '沙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350428', '3504', '00,35,3504', '将乐县', '35', '福建省', '3504', '三明市', '350428', '将乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35', '福建省', '3504', '三明市', '350429', '泰宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350430', '3504', '00,35,3504', '建宁县', '35', '福建省', '3504', '三明市', '350430', '建宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350481', '3504', '00,35,3504', '永安市', '35', '福建省', '3504', '三明市', '350481', '永安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3505', '35', '00,35', '泉州市', '35', '福建省', '3505', '泉州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35', '福建省', '3505', '泉州市', '350502', '鲤城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35', '福建省', '3505', '泉州市', '350503', '丰泽区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350504', '3505', '00,35,3505', '洛江区', '35', '福建省', '3505', '泉州市', '350504', '洛江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350505', '3505', '00,35,3505', '泉港区', '35', '福建省', '3505', '泉州市', '350505', '泉港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350521', '3505', '00,35,3505', '惠安县', '35', '福建省', '3505', '泉州市', '350521', '惠安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350524', '3505', '00,35,3505', '安溪县', '35', '福建省', '3505', '泉州市', '350524', '安溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350525', '3505', '00,35,3505', '永春县', '35', '福建省', '3505', '泉州市', '350525', '永春县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350526', '3505', '00,35,3505', '德化县', '35', '福建省', '3505', '泉州市', '350526', '德化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350527', '3505', '00,35,3505', '金门县', '35', '福建省', '3505', '泉州市', '350527', '金门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350581', '3505', '00,35,3505', '石狮市', '35', '福建省', '3505', '泉州市', '350581', '石狮市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350582', '3505', '00,35,3505', '晋江市', '35', '福建省', '3505', '泉州市', '350582', '晋江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350583', '3505', '00,35,3505', '南安市', '35', '福建省', '3505', '泉州市', '350583', '南安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3506', '35', '00,35', '漳州市', '35', '福建省', '3506', '漳州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350602', '3506', '00,35,3506', '芗城区', '35', '福建省', '3506', '漳州市', '350602', '芗城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350603', '3506', '00,35,3506', '龙文区', '35', '福建省', '3506', '漳州市', '350603', '龙文区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350622', '3506', '00,35,3506', '云霄县', '35', '福建省', '3506', '漳州市', '350622', '云霄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35', '福建省', '3506', '漳州市', '350623', '漳浦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350624', '3506', '00,35,3506', '诏安县', '35', '福建省', '3506', '漳州市', '350624', '诏安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350625', '3506', '00,35,3506', '长泰县', '35', '福建省', '3506', '漳州市', '350625', '长泰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350626', '3506', '00,35,3506', '东山县', '35', '福建省', '3506', '漳州市', '350626', '东山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350627', '3506', '00,35,3506', '南靖县', '35', '福建省', '3506', '漳州市', '350627', '南靖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350628', '3506', '00,35,3506', '平和县', '35', '福建省', '3506', '漳州市', '350628', '平和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350629', '3506', '00,35,3506', '华安县', '35', '福建省', '3506', '漳州市', '350629', '华安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350681', '3506', '00,35,3506', '龙海市', '35', '福建省', '3506', '漳州市', '350681', '龙海市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3507', '35', '00,35', '南平市', '35', '福建省', '3507', '南平市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350702', '3507', '00,35,3507', '延平区', '35', '福建省', '3507', '南平市', '350702', '延平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350703', '3507', '00,35,3507', '建阳区', '35', '福建省', '3507', '南平市', '350703', '建阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35', '福建省', '3507', '南平市', '350721', '顺昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350722', '3507', '00,35,3507', '浦城县', '35', '福建省', '3507', '南平市', '350722', '浦城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350723', '3507', '00,35,3507', '光泽县', '35', '福建省', '3507', '南平市', '350723', '光泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350724', '3507', '00,35,3507', '松溪县', '35', '福建省', '3507', '南平市', '350724', '松溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350725', '3507', '00,35,3507', '政和县', '35', '福建省', '3507', '南平市', '350725', '政和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350781', '3507', '00,35,3507', '邵武市', '35', '福建省', '3507', '南平市', '350781', '邵武市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35', '福建省', '3507', '南平市', '350782', '武夷山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35', '福建省', '3507', '南平市', '350783', '建瓯市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3508', '35', '00,35', '龙岩市', '35', '福建省', '3508', '龙岩市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350802', '3508', '00,35,3508', '新罗区', '35', '福建省', '3508', '龙岩市', '350802', '新罗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350803', '3508', '00,35,3508', '永定区', '35', '福建省', '3508', '龙岩市', '350803', '永定区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350821', '3508', '00,35,3508', '长汀县', '35', '福建省', '3508', '龙岩市', '350821', '长汀县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350823', '3508', '00,35,3508', '上杭县', '35', '福建省', '3508', '龙岩市', '350823', '上杭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350824', '3508', '00,35,3508', '武平县', '35', '福建省', '3508', '龙岩市', '350824', '武平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350825', '3508', '00,35,3508', '连城县', '35', '福建省', '3508', '龙岩市', '350825', '连城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350881', '3508', '00,35,3508', '漳平市', '35', '福建省', '3508', '龙岩市', '350881', '漳平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3509', '35', '00,35', '宁德市', '35', '福建省', '3509', '宁德市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35', '福建省', '3509', '宁德市', '350902', '蕉城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35', '福建省', '3509', '宁德市', '350921', '霞浦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350922', '3509', '00,35,3509', '古田县', '35', '福建省', '3509', '宁德市', '350922', '古田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350923', '3509', '00,35,3509', '屏南县', '35', '福建省', '3509', '宁德市', '350923', '屏南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35', '福建省', '3509', '宁德市', '350924', '寿宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350925', '3509', '00,35,3509', '周宁县', '35', '福建省', '3509', '宁德市', '350925', '周宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35', '福建省', '3509', '宁德市', '350926', '柘荣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350981', '3509', '00,35,3509', '福安市', '35', '福建省', '3509', '宁德市', '350981', '福安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35', '福建省', '3509', '宁德市', '350982', '福鼎市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('36', '00', '00', '江西省', '36', '江西省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3601', '36', '00,36', '南昌市', '36', '江西省', '3601', '南昌市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360102', '3601', '00,36,3601', '东湖区', '36', '江西省', '3601', '南昌市', '360102', '东湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360103', '3601', '00,36,3601', '西湖区', '36', '江西省', '3601', '南昌市', '360103', '西湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36', '江西省', '3601', '南昌市', '360104', '青云谱区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36', '江西省', '3601', '南昌市', '360111', '青山湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360112', '3601', '00,36,3601', '新建区', '36', '江西省', '3601', '南昌市', '360112', '新建区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36', '江西省', '3601', '南昌市', '360113', '红谷滩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360121', '3601', '00,36,3601', '南昌县', '36', '江西省', '3601', '南昌市', '360121', '南昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360123', '3601', '00,36,3601', '安义县', '36', '江西省', '3601', '南昌市', '360123', '安义县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360124', '3601', '00,36,3601', '进贤县', '36', '江西省', '3601', '南昌市', '360124', '进贤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3602', '36', '00,36', '景德镇市', '36', '江西省', '3602', '景德镇市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360202', '3602', '00,36,3602', '昌江区', '36', '江西省', '3602', '景德镇市', '360202', '昌江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360203', '3602', '00,36,3602', '珠山区', '36', '江西省', '3602', '景德镇市', '360203', '珠山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36', '江西省', '3602', '景德镇市', '360222', '浮梁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360281', '3602', '00,36,3602', '乐平市', '36', '江西省', '3602', '景德镇市', '360281', '乐平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3603', '36', '00,36', '萍乡市', '36', '江西省', '3603', '萍乡市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360302', '3603', '00,36,3603', '安源区', '36', '江西省', '3603', '萍乡市', '360302', '安源区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360313', '3603', '00,36,3603', '湘东区', '36', '江西省', '3603', '萍乡市', '360313', '湘东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360321', '3603', '00,36,3603', '莲花县', '36', '江西省', '3603', '萍乡市', '360321', '莲花县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360322', '3603', '00,36,3603', '上栗县', '36', '江西省', '3603', '萍乡市', '360322', '上栗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36', '江西省', '3603', '萍乡市', '360323', '芦溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3604', '36', '00,36', '九江市', '36', '江西省', '3604', '九江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36', '江西省', '3604', '九江市', '360402', '濂溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36', '江西省', '3604', '九江市', '360403', '浔阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36', '江西省', '3604', '九江市', '360404', '柴桑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360423', '3604', '00,36,3604', '武宁县', '36', '江西省', '3604', '九江市', '360423', '武宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360424', '3604', '00,36,3604', '修水县', '36', '江西省', '3604', '九江市', '360424', '修水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360425', '3604', '00,36,3604', '永修县', '36', '江西省', '3604', '九江市', '360425', '永修县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360426', '3604', '00,36,3604', '德安县', '36', '江西省', '3604', '九江市', '360426', '德安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360428', '3604', '00,36,3604', '都昌县', '36', '江西省', '3604', '九江市', '360428', '都昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360429', '3604', '00,36,3604', '湖口县', '36', '江西省', '3604', '九江市', '360429', '湖口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36', '江西省', '3604', '九江市', '360430', '彭泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36', '江西省', '3604', '九江市', '360481', '瑞昌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360482', '3604', '00,36,3604', '共青城市', '36', '江西省', '3604', '九江市', '360482', '共青城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360483', '3604', '00,36,3604', '庐山市', '36', '江西省', '3604', '九江市', '360483', '庐山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3605', '36', '00,36', '新余市', '36', '江西省', '3605', '新余市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360502', '3605', '00,36,3605', '渝水区', '36', '江西省', '3605', '新余市', '360502', '渝水区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360521', '3605', '00,36,3605', '分宜县', '36', '江西省', '3605', '新余市', '360521', '分宜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3606', '36', '00,36', '鹰潭市', '36', '江西省', '3606', '鹰潭市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360602', '3606', '00,36,3606', '月湖区', '36', '江西省', '3606', '鹰潭市', '360602', '月湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360603', '3606', '00,36,3606', '余江区', '36', '江西省', '3606', '鹰潭市', '360603', '余江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36', '江西省', '3606', '鹰潭市', '360681', '贵溪市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3607', '36', '00,36', '赣州市', '36', '江西省', '3607', '赣州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360702', '3607', '00,36,3607', '章贡区', '36', '江西省', '3607', '赣州市', '360702', '章贡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360703', '3607', '00,36,3607', '南康区', '36', '江西省', '3607', '赣州市', '360703', '南康区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360704', '3607', '00,36,3607', '赣县区', '36', '江西省', '3607', '赣州市', '360704', '赣县区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360722', '3607', '00,36,3607', '信丰县', '36', '江西省', '3607', '赣州市', '360722', '信丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360723', '3607', '00,36,3607', '大余县', '36', '江西省', '3607', '赣州市', '360723', '大余县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360724', '3607', '00,36,3607', '上犹县', '36', '江西省', '3607', '赣州市', '360724', '上犹县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360725', '3607', '00,36,3607', '崇义县', '36', '江西省', '3607', '赣州市', '360725', '崇义县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360726', '3607', '00,36,3607', '安远县', '36', '江西省', '3607', '赣州市', '360726', '安远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360727', '3607', '00,36,3607', '龙南县', '36', '江西省', '3607', '赣州市', '360727', '龙南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360728', '3607', '00,36,3607', '定南县', '36', '江西省', '3607', '赣州市', '360728', '定南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360729', '3607', '00,36,3607', '全南县', '36', '江西省', '3607', '赣州市', '360729', '全南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360730', '3607', '00,36,3607', '宁都县', '36', '江西省', '3607', '赣州市', '360730', '宁都县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360731', '3607', '00,36,3607', '于都县', '36', '江西省', '3607', '赣州市', '360731', '于都县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360732', '3607', '00,36,3607', '兴国县', '36', '江西省', '3607', '赣州市', '360732', '兴国县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360733', '3607', '00,36,3607', '会昌县', '36', '江西省', '3607', '赣州市', '360733', '会昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36', '江西省', '3607', '赣州市', '360734', '寻乌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360735', '3607', '00,36,3607', '石城县', '36', '江西省', '3607', '赣州市', '360735', '石城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36', '江西省', '3607', '赣州市', '360781', '瑞金市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3608', '36', '00,36', '吉安市', '36', '江西省', '3608', '吉安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360802', '3608', '00,36,3608', '吉州区', '36', '江西省', '3608', '吉安市', '360802', '吉州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360803', '3608', '00,36,3608', '青原区', '36', '江西省', '3608', '吉安市', '360803', '青原区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360821', '3608', '00,36,3608', '吉安县', '36', '江西省', '3608', '吉安市', '360821', '吉安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360822', '3608', '00,36,3608', '吉水县', '36', '江西省', '3608', '吉安市', '360822', '吉水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360823', '3608', '00,36,3608', '峡江县', '36', '江西省', '3608', '吉安市', '360823', '峡江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360824', '3608', '00,36,3608', '新干县', '36', '江西省', '3608', '吉安市', '360824', '新干县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360825', '3608', '00,36,3608', '永丰县', '36', '江西省', '3608', '吉安市', '360825', '永丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360826', '3608', '00,36,3608', '泰和县', '36', '江西省', '3608', '吉安市', '360826', '泰和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360827', '3608', '00,36,3608', '遂川县', '36', '江西省', '3608', '吉安市', '360827', '遂川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360828', '3608', '00,36,3608', '万安县', '36', '江西省', '3608', '吉安市', '360828', '万安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360829', '3608', '00,36,3608', '安福县', '36', '江西省', '3608', '吉安市', '360829', '安福县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360830', '3608', '00,36,3608', '永新县', '36', '江西省', '3608', '吉安市', '360830', '永新县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36', '江西省', '3608', '吉安市', '360881', '井冈山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3609', '36', '00,36', '宜春市', '36', '江西省', '3609', '宜春市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('360902', '3609', '00,36,3609', '袁州区', '36', '江西省', '3609', '宜春市', '360902', '袁州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360921', '3609', '00,36,3609', '奉新县', '36', '江西省', '3609', '宜春市', '360921', '奉新县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360922', '3609', '00,36,3609', '万载县', '36', '江西省', '3609', '宜春市', '360922', '万载县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360923', '3609', '00,36,3609', '上高县', '36', '江西省', '3609', '宜春市', '360923', '上高县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36', '江西省', '3609', '宜春市', '360924', '宜丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360925', '3609', '00,36,3609', '靖安县', '36', '江西省', '3609', '宜春市', '360925', '靖安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36', '江西省', '3609', '宜春市', '360926', '铜鼓县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360981', '3609', '00,36,3609', '丰城市', '36', '江西省', '3609', '宜春市', '360981', '丰城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360982', '3609', '00,36,3609', '樟树市', '36', '江西省', '3609', '宜春市', '360982', '樟树市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('360983', '3609', '00,36,3609', '高安市', '36', '江西省', '3609', '宜春市', '360983', '高安市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3610', '36', '00,36', '抚州市', '36', '江西省', '3610', '抚州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('361002', '3610', '00,36,3610', '临川区', '36', '江西省', '3610', '抚州市', '361002', '临川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361003', '3610', '00,36,3610', '东乡区', '36', '江西省', '3610', '抚州市', '361003', '东乡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361021', '3610', '00,36,3610', '南城县', '36', '江西省', '3610', '抚州市', '361021', '南城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361022', '3610', '00,36,3610', '黎川县', '36', '江西省', '3610', '抚州市', '361022', '黎川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361023', '3610', '00,36,3610', '南丰县', '36', '江西省', '3610', '抚州市', '361023', '南丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36', '江西省', '3610', '抚州市', '361024', '崇仁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361025', '3610', '00,36,3610', '乐安县', '36', '江西省', '3610', '抚州市', '361025', '乐安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36', '江西省', '3610', '抚州市', '361026', '宜黄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361027', '3610', '00,36,3610', '金溪县', '36', '江西省', '3610', '抚州市', '361027', '金溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361028', '3610', '00,36,3610', '资溪县', '36', '江西省', '3610', '抚州市', '361028', '资溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361030', '3610', '00,36,3610', '广昌县', '36', '江西省', '3610', '抚州市', '361030', '广昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3611', '36', '00,36', '上饶市', '36', '江西省', '3611', '上饶市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('361102', '3611', '00,36,3611', '信州区', '36', '江西省', '3611', '上饶市', '361102', '信州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361103', '3611', '00,36,3611', '广丰区', '36', '江西省', '3611', '上饶市', '361103', '广丰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361104', '3611', '00,36,3611', '广信区', '36', '江西省', '3611', '上饶市', '361104', '广信区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361123', '3611', '00,36,3611', '玉山县', '36', '江西省', '3611', '上饶市', '361123', '玉山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361124', '3611', '00,36,3611', '铅山县', '36', '江西省', '3611', '上饶市', '361124', '铅山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361125', '3611', '00,36,3611', '横峰县', '36', '江西省', '3611', '上饶市', '361125', '横峰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36', '江西省', '3611', '上饶市', '361126', '弋阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361127', '3611', '00,36,3611', '余干县', '36', '江西省', '3611', '上饶市', '361127', '余干县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36', '江西省', '3611', '上饶市', '361128', '鄱阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361129', '3611', '00,36,3611', '万年县', '36', '江西省', '3611', '上饶市', '361129', '万年县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361130', '3611', '00,36,3611', '婺源县', '36', '江西省', '3611', '上饶市', '361130', '婺源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('361181', '3611', '00,36,3611', '德兴市', '36', '江西省', '3611', '上饶市', '361181', '德兴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('37', '00', '00', '山东省', '37', '山东省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('3701', '37', '00,37', '济南市', '37', '山东省', '3701', '济南市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370102', '3701', '00,37,3701', '历下区', '37', '山东省', '3701', '济南市', '370102', '历下区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370103', '3701', '00,37,3701', '市中区', '37', '山东省', '3701', '济南市', '370103', '市中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37', '山东省', '3701', '济南市', '370104', '槐荫区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370105', '3701', '00,37,3701', '天桥区', '37', '山东省', '3701', '济南市', '370105', '天桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370112', '3701', '00,37,3701', '历城区', '37', '山东省', '3701', '济南市', '370112', '历城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370113', '3701', '00,37,3701', '长清区', '37', '山东省', '3701', '济南市', '370113', '长清区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370114', '3701', '00,37,3701', '章丘区', '37', '山东省', '3701', '济南市', '370114', '章丘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370115', '3701', '00,37,3701', '济阳区', '37', '山东省', '3701', '济南市', '370115', '济阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37', '山东省', '3701', '济南市', '370116', '莱芜区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370117', '3701', '00,37,3701', '钢城区', '37', '山东省', '3701', '济南市', '370117', '钢城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370124', '3701', '00,37,3701', '平阴县', '37', '山东省', '3701', '济南市', '370124', '平阴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370126', '3701', '00,37,3701', '商河县', '37', '山东省', '3701', '济南市', '370126', '商河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3702', '37', '00,37', '青岛市', '37', '山东省', '3702', '青岛市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370202', '3702', '00,37,3702', '市南区', '37', '山东省', '3702', '青岛市', '370202', '市南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370203', '3702', '00,37,3702', '市北区', '37', '山东省', '3702', '青岛市', '370203', '市北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37', '山东省', '3702', '青岛市', '370211', '黄岛区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370212', '3702', '00,37,3702', '崂山区', '37', '山东省', '3702', '青岛市', '370212', '崂山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370213', '3702', '00,37,3702', '李沧区', '37', '山东省', '3702', '青岛市', '370213', '李沧区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370214', '3702', '00,37,3702', '城阳区', '37', '山东省', '3702', '青岛市', '370214', '城阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370215', '3702', '00,37,3702', '即墨区', '37', '山东省', '3702', '青岛市', '370215', '即墨区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370281', '3702', '00,37,3702', '胶州市', '37', '山东省', '3702', '青岛市', '370281', '胶州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370283', '3702', '00,37,3702', '平度市', '37', '山东省', '3702', '青岛市', '370283', '平度市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370285', '3702', '00,37,3702', '莱西市', '37', '山东省', '3702', '青岛市', '370285', '莱西市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3703', '37', '00,37', '淄博市', '37', '山东省', '3703', '淄博市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370302', '3703', '00,37,3703', '淄川区', '37', '山东省', '3703', '淄博市', '370302', '淄川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370303', '3703', '00,37,3703', '张店区', '37', '山东省', '3703', '淄博市', '370303', '张店区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370304', '3703', '00,37,3703', '博山区', '37', '山东省', '3703', '淄博市', '370304', '博山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370305', '3703', '00,37,3703', '临淄区', '37', '山东省', '3703', '淄博市', '370305', '临淄区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370306', '3703', '00,37,3703', '周村区', '37', '山东省', '3703', '淄博市', '370306', '周村区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370321', '3703', '00,37,3703', '桓台县', '37', '山东省', '3703', '淄博市', '370321', '桓台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370322', '3703', '00,37,3703', '高青县', '37', '山东省', '3703', '淄博市', '370322', '高青县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370323', '3703', '00,37,3703', '沂源县', '37', '山东省', '3703', '淄博市', '370323', '沂源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3704', '37', '00,37', '枣庄市', '37', '山东省', '3704', '枣庄市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370402', '3704', '00,37,3704', '市中区', '37', '山东省', '3704', '枣庄市', '370402', '市中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370403', '3704', '00,37,3704', '薛城区', '37', '山东省', '3704', '枣庄市', '370403', '薛城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370404', '3704', '00,37,3704', '峄城区', '37', '山东省', '3704', '枣庄市', '370404', '峄城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37', '山东省', '3704', '枣庄市', '370405', '台儿庄区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370406', '3704', '00,37,3704', '山亭区', '37', '山东省', '3704', '枣庄市', '370406', '山亭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370481', '3704', '00,37,3704', '滕州市', '37', '山东省', '3704', '枣庄市', '370481', '滕州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3705', '37', '00,37', '东营市', '37', '山东省', '3705', '东营市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370502', '3705', '00,37,3705', '东营区', '37', '山东省', '3705', '东营市', '370502', '东营区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370503', '3705', '00,37,3705', '河口区', '37', '山东省', '3705', '东营市', '370503', '河口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370505', '3705', '00,37,3705', '垦利区', '37', '山东省', '3705', '东营市', '370505', '垦利区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370522', '3705', '00,37,3705', '利津县', '37', '山东省', '3705', '东营市', '370522', '利津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370523', '3705', '00,37,3705', '广饶县', '37', '山东省', '3705', '东营市', '370523', '广饶县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3706', '37', '00,37', '烟台市', '37', '山东省', '3706', '烟台市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37', '山东省', '3706', '烟台市', '370602', '芝罘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370611', '3706', '00,37,3706', '福山区', '37', '山东省', '3706', '烟台市', '370611', '福山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370612', '3706', '00,37,3706', '牟平区', '37', '山东省', '3706', '烟台市', '370612', '牟平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370613', '3706', '00,37,3706', '莱山区', '37', '山东省', '3706', '烟台市', '370613', '莱山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370634', '3706', '00,37,3706', '长岛县', '37', '山东省', '3706', '烟台市', '370634', '长岛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370681', '3706', '00,37,3706', '龙口市', '37', '山东省', '3706', '烟台市', '370681', '龙口市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37', '山东省', '3706', '烟台市', '370682', '莱阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370683', '3706', '00,37,3706', '莱州市', '37', '山东省', '3706', '烟台市', '370683', '莱州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37', '山东省', '3706', '烟台市', '370684', '蓬莱市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370685', '3706', '00,37,3706', '招远市', '37', '山东省', '3706', '烟台市', '370685', '招远市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37', '山东省', '3706', '烟台市', '370686', '栖霞市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370687', '3706', '00,37,3706', '海阳市', '37', '山东省', '3706', '烟台市', '370687', '海阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3707', '37', '00,37', '潍坊市', '37', '山东省', '3707', '潍坊市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370702', '3707', '00,37,3707', '潍城区', '37', '山东省', '3707', '潍坊市', '370702', '潍城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37', '山东省', '3707', '潍坊市', '370703', '寒亭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370704', '3707', '00,37,3707', '坊子区', '37', '山东省', '3707', '潍坊市', '370704', '坊子区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370705', '3707', '00,37,3707', '奎文区', '37', '山东省', '3707', '潍坊市', '370705', '奎文区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370724', '3707', '00,37,3707', '临朐县', '37', '山东省', '3707', '潍坊市', '370724', '临朐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37', '山东省', '3707', '潍坊市', '370725', '昌乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370781', '3707', '00,37,3707', '青州市', '37', '山东省', '3707', '潍坊市', '370781', '青州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370782', '3707', '00,37,3707', '诸城市', '37', '山东省', '3707', '潍坊市', '370782', '诸城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370783', '3707', '00,37,3707', '寿光市', '37', '山东省', '3707', '潍坊市', '370783', '寿光市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370784', '3707', '00,37,3707', '安丘市', '37', '山东省', '3707', '潍坊市', '370784', '安丘市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370785', '3707', '00,37,3707', '高密市', '37', '山东省', '3707', '潍坊市', '370785', '高密市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37', '山东省', '3707', '潍坊市', '370786', '昌邑市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3708', '37', '00,37', '济宁市', '37', '山东省', '3708', '济宁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370811', '3708', '00,37,3708', '任城区', '37', '山东省', '3708', '济宁市', '370811', '任城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370812', '3708', '00,37,3708', '兖州区', '37', '山东省', '3708', '济宁市', '370812', '兖州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370826', '3708', '00,37,3708', '微山县', '37', '山东省', '3708', '济宁市', '370826', '微山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37', '山东省', '3708', '济宁市', '370827', '鱼台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370828', '3708', '00,37,3708', '金乡县', '37', '山东省', '3708', '济宁市', '370828', '金乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37', '山东省', '3708', '济宁市', '370829', '嘉祥县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370830', '3708', '00,37,3708', '汶上县', '37', '山东省', '3708', '济宁市', '370830', '汶上县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370831', '3708', '00,37,3708', '泗水县', '37', '山东省', '3708', '济宁市', '370831', '泗水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370832', '3708', '00,37,3708', '梁山县', '37', '山东省', '3708', '济宁市', '370832', '梁山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37', '山东省', '3708', '济宁市', '370881', '曲阜市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370883', '3708', '00,37,3708', '邹城市', '37', '山东省', '3708', '济宁市', '370883', '邹城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3709', '37', '00,37', '泰安市', '37', '山东省', '3709', '泰安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('370902', '3709', '00,37,3709', '泰山区', '37', '山东省', '3709', '泰安市', '370902', '泰山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37', '山东省', '3709', '泰安市', '370911', '岱岳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37', '山东省', '3709', '泰安市', '370921', '宁阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370923', '3709', '00,37,3709', '东平县', '37', '山东省', '3709', '泰安市', '370923', '东平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370982', '3709', '00,37,3709', '新泰市', '37', '山东省', '3709', '泰安市', '370982', '新泰市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('370983', '3709', '00,37,3709', '肥城市', '37', '山东省', '3709', '泰安市', '370983', '肥城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3710', '37', '00,37', '威海市', '37', '山东省', '3710', '威海市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371002', '3710', '00,37,3710', '环翠区', '37', '山东省', '3710', '威海市', '371002', '环翠区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371003', '3710', '00,37,3710', '文登区', '37', '山东省', '3710', '威海市', '371003', '文登区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371082', '3710', '00,37,3710', '荣成市', '37', '山东省', '3710', '威海市', '371082', '荣成市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371083', '3710', '00,37,3710', '乳山市', '37', '山东省', '3710', '威海市', '371083', '乳山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3711', '37', '00,37', '日照市', '37', '山东省', '3711', '日照市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371102', '3711', '00,37,3711', '东港区', '37', '山东省', '3711', '日照市', '371102', '东港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371103', '3711', '00,37,3711', '岚山区', '37', '山东省', '3711', '日照市', '371103', '岚山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371121', '3711', '00,37,3711', '五莲县', '37', '山东省', '3711', '日照市', '371121', '五莲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371122', '3711', '00,37,3711', '莒县', '37', '山东省', '3711', '日照市', '371122', '莒县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3713', '37', '00,37', '临沂市', '37', '山东省', '3713', '临沂市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371302', '3713', '00,37,3713', '兰山区', '37', '山东省', '3713', '临沂市', '371302', '兰山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37', '山东省', '3713', '临沂市', '371311', '罗庄区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371312', '3713', '00,37,3713', '河东区', '37', '山东省', '3713', '临沂市', '371312', '河东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371321', '3713', '00,37,3713', '沂南县', '37', '山东省', '3713', '临沂市', '371321', '沂南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371322', '3713', '00,37,3713', '郯城县', '37', '山东省', '3713', '临沂市', '371322', '郯城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371323', '3713', '00,37,3713', '沂水县', '37', '山东省', '3713', '临沂市', '371323', '沂水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37', '山东省', '3713', '临沂市', '371324', '兰陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371325', '3713', '00,37,3713', '费县', '37', '山东省', '3713', '临沂市', '371325', '费县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371326', '3713', '00,37,3713', '平邑县', '37', '山东省', '3713', '临沂市', '371326', '平邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371327', '3713', '00,37,3713', '莒南县', '37', '山东省', '3713', '临沂市', '371327', '莒南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37', '山东省', '3713', '临沂市', '371328', '蒙阴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371329', '3713', '00,37,3713', '临沭县', '37', '山东省', '3713', '临沂市', '371329', '临沭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3714', '37', '00,37', '德州市', '37', '山东省', '3714', '德州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371402', '3714', '00,37,3714', '德城区', '37', '山东省', '3714', '德州市', '371402', '德城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371403', '3714', '00,37,3714', '陵城区', '37', '山东省', '3714', '德州市', '371403', '陵城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371422', '3714', '00,37,3714', '宁津县', '37', '山东省', '3714', '德州市', '371422', '宁津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371423', '3714', '00,37,3714', '庆云县', '37', '山东省', '3714', '德州市', '371423', '庆云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371424', '3714', '00,37,3714', '临邑县', '37', '山东省', '3714', '德州市', '371424', '临邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371425', '3714', '00,37,3714', '齐河县', '37', '山东省', '3714', '德州市', '371425', '齐河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371426', '3714', '00,37,3714', '平原县', '37', '山东省', '3714', '德州市', '371426', '平原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371427', '3714', '00,37,3714', '夏津县', '37', '山东省', '3714', '德州市', '371427', '夏津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371428', '3714', '00,37,3714', '武城县', '37', '山东省', '3714', '德州市', '371428', '武城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37', '山东省', '3714', '德州市', '371481', '乐陵市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371482', '3714', '00,37,3714', '禹城市', '37', '山东省', '3714', '德州市', '371482', '禹城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3715', '37', '00,37', '聊城市', '37', '山东省', '3715', '聊城市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37', '山东省', '3715', '聊城市', '371502', '东昌府区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371503', '3715', '00,37,3715', '茌平区', '37', '山东省', '3715', '聊城市', '371503', '茌平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37', '山东省', '3715', '聊城市', '371521', '阳谷县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371522', '3715', '00,37,3715', '莘县', '37', '山东省', '3715', '聊城市', '371522', '莘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371524', '3715', '00,37,3715', '东阿县', '37', '山东省', '3715', '聊城市', '371524', '东阿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371525', '3715', '00,37,3715', '冠县', '37', '山东省', '3715', '聊城市', '371525', '冠县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371526', '3715', '00,37,3715', '高唐县', '37', '山东省', '3715', '聊城市', '371526', '高唐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371581', '3715', '00,37,3715', '临清市', '37', '山东省', '3715', '聊城市', '371581', '临清市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3716', '37', '00,37', '滨州市', '37', '山东省', '3716', '滨州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371602', '3716', '00,37,3716', '滨城区', '37', '山东省', '3716', '滨州市', '371602', '滨城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371603', '3716', '00,37,3716', '沾化区', '37', '山东省', '3716', '滨州市', '371603', '沾化区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371621', '3716', '00,37,3716', '惠民县', '37', '山东省', '3716', '滨州市', '371621', '惠民县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371622', '3716', '00,37,3716', '阳信县', '37', '山东省', '3716', '滨州市', '371622', '阳信县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371623', '3716', '00,37,3716', '无棣县', '37', '山东省', '3716', '滨州市', '371623', '无棣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371625', '3716', '00,37,3716', '博兴县', '37', '山东省', '3716', '滨州市', '371625', '博兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371681', '3716', '00,37,3716', '邹平市', '37', '山东省', '3716', '滨州市', '371681', '邹平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('3717', '37', '00,37', '菏泽市', '37', '山东省', '3717', '菏泽市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37', '山东省', '3717', '菏泽市', '371702', '牡丹区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371703', '3717', '00,37,3717', '定陶区', '37', '山东省', '3717', '菏泽市', '371703', '定陶区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371721', '3717', '00,37,3717', '曹县', '37', '山东省', '3717', '菏泽市', '371721', '曹县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371722', '3717', '00,37,3717', '单县', '37', '山东省', '3717', '菏泽市', '371722', '单县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371723', '3717', '00,37,3717', '成武县', '37', '山东省', '3717', '菏泽市', '371723', '成武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371724', '3717', '00,37,3717', '巨野县', '37', '山东省', '3717', '菏泽市', '371724', '巨野县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371725', '3717', '00,37,3717', '郓城县', '37', '山东省', '3717', '菏泽市', '371725', '郓城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37', '山东省', '3717', '菏泽市', '371726', '鄄城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('371728', '3717', '00,37,3717', '东明县', '37', '山东省', '3717', '菏泽市', '371728', '东明县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('41', '00', '00', '河南省', '41', '河南省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('4101', '41', '00,41', '郑州市', '41', '河南省', '4101', '郑州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410102', '4101', '00,41,4101', '中原区', '41', '河南省', '4101', '郑州市', '410102', '中原区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410103', '4101', '00,41,4101', '二七区', '41', '河南省', '4101', '郑州市', '410103', '二七区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41', '河南省', '4101', '郑州市', '410104', '管城回族区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410105', '4101', '00,41,4101', '金水区', '41', '河南省', '4101', '郑州市', '410105', '金水区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410106', '4101', '00,41,4101', '上街区', '41', '河南省', '4101', '郑州市', '410106', '上街区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410108', '4101', '00,41,4101', '惠济区', '41', '河南省', '4101', '郑州市', '410108', '惠济区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410122', '4101', '00,41,4101', '中牟县', '41', '河南省', '4101', '郑州市', '410122', '中牟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410181', '4101', '00,41,4101', '巩义市', '41', '河南省', '4101', '郑州市', '410181', '巩义市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41', '河南省', '4101', '郑州市', '410182', '荥阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410183', '4101', '00,41,4101', '新密市', '41', '河南省', '4101', '郑州市', '410183', '新密市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410184', '4101', '00,41,4101', '新郑市', '41', '河南省', '4101', '郑州市', '410184', '新郑市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410185', '4101', '00,41,4101', '登封市', '41', '河南省', '4101', '郑州市', '410185', '登封市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4102', '41', '00,41', '开封市', '41', '河南省', '4102', '开封市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41', '河南省', '4102', '开封市', '410202', '龙亭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41', '河南省', '4102', '开封市', '410203', '顺河回族区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41', '河南省', '4102', '开封市', '410204', '鼓楼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41', '河南省', '4102', '开封市', '410205', '禹王台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410212', '4102', '00,41,4102', '祥符区', '41', '河南省', '4102', '开封市', '410212', '祥符区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410221', '4102', '00,41,4102', '杞县', '41', '河南省', '4102', '开封市', '410221', '杞县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410222', '4102', '00,41,4102', '通许县', '41', '河南省', '4102', '开封市', '410222', '通许县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41', '河南省', '4102', '开封市', '410223', '尉氏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410225', '4102', '00,41,4102', '兰考县', '41', '河南省', '4102', '开封市', '410225', '兰考县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4103', '41', '00,41', '洛阳市', '41', '河南省', '4103', '洛阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410302', '4103', '00,41,4103', '老城区', '41', '河南省', '4103', '洛阳市', '410302', '老城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410303', '4103', '00,41,4103', '西工区', '41', '河南省', '4103', '洛阳市', '410303', '西工区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41', '河南省', '4103', '洛阳市', '410304', '瀍河回族区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410305', '4103', '00,41,4103', '涧西区', '41', '河南省', '4103', '洛阳市', '410305', '涧西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410306', '4103', '00,41,4103', '吉利区', '41', '河南省', '4103', '洛阳市', '410306', '吉利区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41', '河南省', '4103', '洛阳市', '410311', '洛龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410322', '4103', '00,41,4103', '孟津县', '41', '河南省', '4103', '洛阳市', '410322', '孟津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410323', '4103', '00,41,4103', '新安县', '41', '河南省', '4103', '洛阳市', '410323', '新安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410324', '4103', '00,41,4103', '栾川县', '41', '河南省', '4103', '洛阳市', '410324', '栾川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410325', '4103', '00,41,4103', '嵩县', '41', '河南省', '4103', '洛阳市', '410325', '嵩县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41', '河南省', '4103', '洛阳市', '410326', '汝阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41', '河南省', '4103', '洛阳市', '410327', '宜阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41', '河南省', '4103', '洛阳市', '410328', '洛宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410329', '4103', '00,41,4103', '伊川县', '41', '河南省', '4103', '洛阳市', '410329', '伊川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410381', '4103', '00,41,4103', '偃师市', '41', '河南省', '4103', '洛阳市', '410381', '偃师市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4104', '41', '00,41', '平顶山市', '41', '河南省', '4104', '平顶山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410402', '4104', '00,41,4104', '新华区', '41', '河南省', '4104', '平顶山市', '410402', '新华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410403', '4104', '00,41,4104', '卫东区', '41', '河南省', '4104', '平顶山市', '410403', '卫东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410404', '4104', '00,41,4104', '石龙区', '41', '河南省', '4104', '平顶山市', '410404', '石龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410411', '4104', '00,41,4104', '湛河区', '41', '河南省', '4104', '平顶山市', '410411', '湛河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41', '河南省', '4104', '平顶山市', '410421', '宝丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410422', '4104', '00,41,4104', '叶县', '41', '河南省', '4104', '平顶山市', '410422', '叶县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41', '河南省', '4104', '平顶山市', '410423', '鲁山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410425', '4104', '00,41,4104', '郏县', '41', '河南省', '4104', '平顶山市', '410425', '郏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41', '河南省', '4104', '平顶山市', '410481', '舞钢市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410482', '4104', '00,41,4104', '汝州市', '41', '河南省', '4104', '平顶山市', '410482', '汝州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4105', '41', '00,41', '安阳市', '41', '河南省', '4105', '安阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410502', '4105', '00,41,4105', '文峰区', '41', '河南省', '4105', '安阳市', '410502', '文峰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410503', '4105', '00,41,4105', '北关区', '41', '河南省', '4105', '安阳市', '410503', '北关区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410505', '4105', '00,41,4105', '殷都区', '41', '河南省', '4105', '安阳市', '410505', '殷都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410506', '4105', '00,41,4105', '龙安区', '41', '河南省', '4105', '安阳市', '410506', '龙安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410522', '4105', '00,41,4105', '安阳县', '41', '河南省', '4105', '安阳市', '410522', '安阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41', '河南省', '4105', '安阳市', '410523', '汤阴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410526', '4105', '00,41,4105', '滑县', '41', '河南省', '4105', '安阳市', '410526', '滑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410527', '4105', '00,41,4105', '内黄县', '41', '河南省', '4105', '安阳市', '410527', '内黄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410581', '4105', '00,41,4105', '林州市', '41', '河南省', '4105', '安阳市', '410581', '林州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4106', '41', '00,41', '鹤壁市', '41', '河南省', '4106', '鹤壁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41', '河南省', '4106', '鹤壁市', '410602', '鹤山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410603', '4106', '00,41,4106', '山城区', '41', '河南省', '4106', '鹤壁市', '410603', '山城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41', '河南省', '4106', '鹤壁市', '410611', '淇滨区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410621', '4106', '00,41,4106', '浚县', '41', '河南省', '4106', '鹤壁市', '410621', '浚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410622', '4106', '00,41,4106', '淇县', '41', '河南省', '4106', '鹤壁市', '410622', '淇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4107', '41', '00,41', '新乡市', '41', '河南省', '4107', '新乡市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410702', '4107', '00,41,4107', '红旗区', '41', '河南省', '4107', '新乡市', '410702', '红旗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41', '河南省', '4107', '新乡市', '410703', '卫滨区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41', '河南省', '4107', '新乡市', '410704', '凤泉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410711', '4107', '00,41,4107', '牧野区', '41', '河南省', '4107', '新乡市', '410711', '牧野区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410721', '4107', '00,41,4107', '新乡县', '41', '河南省', '4107', '新乡市', '410721', '新乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41', '河南省', '4107', '新乡市', '410724', '获嘉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410725', '4107', '00,41,4107', '原阳县', '41', '河南省', '4107', '新乡市', '410725', '原阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410726', '4107', '00,41,4107', '延津县', '41', '河南省', '4107', '新乡市', '410726', '延津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410727', '4107', '00,41,4107', '封丘县', '41', '河南省', '4107', '新乡市', '410727', '封丘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41', '河南省', '4107', '新乡市', '410781', '卫辉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410782', '4107', '00,41,4107', '辉县市', '41', '河南省', '4107', '新乡市', '410782', '辉县市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410783', '4107', '00,41,4107', '长垣市', '41', '河南省', '4107', '新乡市', '410783', '长垣市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4108', '41', '00,41', '焦作市', '41', '河南省', '4108', '焦作市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410802', '4108', '00,41,4108', '解放区', '41', '河南省', '4108', '焦作市', '410802', '解放区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410803', '4108', '00,41,4108', '中站区', '41', '河南省', '4108', '焦作市', '410803', '中站区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410804', '4108', '00,41,4108', '马村区', '41', '河南省', '4108', '焦作市', '410804', '马村区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410811', '4108', '00,41,4108', '山阳区', '41', '河南省', '4108', '焦作市', '410811', '山阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410821', '4108', '00,41,4108', '修武县', '41', '河南省', '4108', '焦作市', '410821', '修武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410822', '4108', '00,41,4108', '博爱县', '41', '河南省', '4108', '焦作市', '410822', '博爱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410823', '4108', '00,41,4108', '武陟县', '41', '河南省', '4108', '焦作市', '410823', '武陟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410825', '4108', '00,41,4108', '温县', '41', '河南省', '4108', '焦作市', '410825', '温县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41', '河南省', '4108', '焦作市', '410882', '沁阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410883', '4108', '00,41,4108', '孟州市', '41', '河南省', '4108', '焦作市', '410883', '孟州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4109', '41', '00,41', '濮阳市', '41', '河南省', '4109', '濮阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('410902', '4109', '00,41,4109', '华龙区', '41', '河南省', '4109', '濮阳市', '410902', '华龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410922', '4109', '00,41,4109', '清丰县', '41', '河南省', '4109', '濮阳市', '410922', '清丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410923', '4109', '00,41,4109', '南乐县', '41', '河南省', '4109', '濮阳市', '410923', '南乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410926', '4109', '00,41,4109', '范县', '41', '河南省', '4109', '濮阳市', '410926', '范县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410927', '4109', '00,41,4109', '台前县', '41', '河南省', '4109', '濮阳市', '410927', '台前县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41', '河南省', '4109', '濮阳市', '410928', '濮阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4110', '41', '00,41', '许昌市', '41', '河南省', '4110', '许昌市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411002', '4110', '00,41,4110', '魏都区', '41', '河南省', '4110', '许昌市', '411002', '魏都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411003', '4110', '00,41,4110', '建安区', '41', '河南省', '4110', '许昌市', '411003', '建安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41', '河南省', '4110', '许昌市', '411024', '鄢陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411025', '4110', '00,41,4110', '襄城县', '41', '河南省', '4110', '许昌市', '411025', '襄城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411081', '4110', '00,41,4110', '禹州市', '41', '河南省', '4110', '许昌市', '411081', '禹州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411082', '4110', '00,41,4110', '长葛市', '41', '河南省', '4110', '许昌市', '411082', '长葛市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4111', '41', '00,41', '漯河市', '41', '河南省', '4111', '漯河市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411102', '4111', '00,41,4111', '源汇区', '41', '河南省', '4111', '漯河市', '411102', '源汇区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411103', '4111', '00,41,4111', '郾城区', '41', '河南省', '4111', '漯河市', '411103', '郾城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411104', '4111', '00,41,4111', '召陵区', '41', '河南省', '4111', '漯河市', '411104', '召陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41', '河南省', '4111', '漯河市', '411121', '舞阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411122', '4111', '00,41,4111', '临颍县', '41', '河南省', '4111', '漯河市', '411122', '临颍县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4112', '41', '00,41', '三门峡市', '41', '河南省', '4112', '三门峡市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41', '河南省', '4112', '三门峡市', '411202', '湖滨区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411203', '4112', '00,41,4112', '陕州区', '41', '河南省', '4112', '三门峡市', '411203', '陕州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411221', '4112', '00,41,4112', '渑池县', '41', '河南省', '4112', '三门峡市', '411221', '渑池县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41', '河南省', '4112', '三门峡市', '411224', '卢氏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411281', '4112', '00,41,4112', '义马市', '41', '河南省', '4112', '三门峡市', '411281', '义马市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41', '河南省', '4112', '三门峡市', '411282', '灵宝市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4113', '41', '00,41', '南阳市', '41', '河南省', '4113', '南阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411302', '4113', '00,41,4113', '宛城区', '41', '河南省', '4113', '南阳市', '411302', '宛城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41', '河南省', '4113', '南阳市', '411303', '卧龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411321', '4113', '00,41,4113', '南召县', '41', '河南省', '4113', '南阳市', '411321', '南召县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411322', '4113', '00,41,4113', '方城县', '41', '河南省', '4113', '南阳市', '411322', '方城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411323', '4113', '00,41,4113', '西峡县', '41', '河南省', '4113', '南阳市', '411323', '西峡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411324', '4113', '00,41,4113', '镇平县', '41', '河南省', '4113', '南阳市', '411324', '镇平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411325', '4113', '00,41,4113', '内乡县', '41', '河南省', '4113', '南阳市', '411325', '内乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411326', '4113', '00,41,4113', '淅川县', '41', '河南省', '4113', '南阳市', '411326', '淅川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411327', '4113', '00,41,4113', '社旗县', '41', '河南省', '4113', '南阳市', '411327', '社旗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411328', '4113', '00,41,4113', '唐河县', '41', '河南省', '4113', '南阳市', '411328', '唐河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411329', '4113', '00,41,4113', '新野县', '41', '河南省', '4113', '南阳市', '411329', '新野县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41', '河南省', '4113', '南阳市', '411330', '桐柏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411381', '4113', '00,41,4113', '邓州市', '41', '河南省', '4113', '南阳市', '411381', '邓州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4114', '41', '00,41', '商丘市', '41', '河南省', '4114', '商丘市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411402', '4114', '00,41,4114', '梁园区', '41', '河南省', '4114', '商丘市', '411402', '梁园区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41', '河南省', '4114', '商丘市', '411403', '睢阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411421', '4114', '00,41,4114', '民权县', '41', '河南省', '4114', '商丘市', '411421', '民权县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411422', '4114', '00,41,4114', '睢县', '41', '河南省', '4114', '商丘市', '411422', '睢县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41', '河南省', '4114', '商丘市', '411423', '宁陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411424', '4114', '00,41,4114', '柘城县', '41', '河南省', '4114', '商丘市', '411424', '柘城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4415', '44', '00,44', '汕尾市', '44', '广东省', '4415', '汕尾市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411425', '4114', '00,41,4114', '虞城县', '41', '河南省', '4114', '商丘市', '411425', '虞城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41', '河南省', '4114', '商丘市', '411426', '夏邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411481', '4114', '00,41,4114', '永城市', '41', '河南省', '4114', '商丘市', '411481', '永城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4115', '41', '00,41', '信阳市', '41', '河南省', '4115', '信阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411502', '4115', '00,41,4115', '浉河区', '41', '河南省', '4115', '信阳市', '411502', '浉河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411503', '4115', '00,41,4115', '平桥区', '41', '河南省', '4115', '信阳市', '411503', '平桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411521', '4115', '00,41,4115', '罗山县', '41', '河南省', '4115', '信阳市', '411521', '罗山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411522', '4115', '00,41,4115', '光山县', '41', '河南省', '4115', '信阳市', '411522', '光山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411523', '4115', '00,41,4115', '新县', '41', '河南省', '4115', '信阳市', '411523', '新县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411524', '4115', '00,41,4115', '商城县', '41', '河南省', '4115', '信阳市', '411524', '商城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411525', '4115', '00,41,4115', '固始县', '41', '河南省', '4115', '信阳市', '411525', '固始县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411526', '4115', '00,41,4115', '潢川县', '41', '河南省', '4115', '信阳市', '411526', '潢川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41', '河南省', '4115', '信阳市', '411527', '淮滨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411528', '4115', '00,41,4115', '息县', '41', '河南省', '4115', '信阳市', '411528', '息县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4116', '41', '00,41', '周口市', '41', '河南省', '4116', '周口市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411602', '4116', '00,41,4116', '川汇区', '41', '河南省', '4116', '周口市', '411602', '川汇区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41', '河南省', '4116', '周口市', '411603', '淮阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41', '河南省', '4116', '周口市', '411621', '扶沟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411622', '4116', '00,41,4116', '西华县', '41', '河南省', '4116', '周口市', '411622', '西华县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411623', '4116', '00,41,4116', '商水县', '41', '河南省', '4116', '周口市', '411623', '商水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41', '河南省', '4116', '周口市', '411624', '沈丘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411625', '4116', '00,41,4116', '郸城县', '41', '河南省', '4116', '周口市', '411625', '郸城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411627', '4116', '00,41,4116', '太康县', '41', '河南省', '4116', '周口市', '411627', '太康县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41', '河南省', '4116', '周口市', '411628', '鹿邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411681', '4116', '00,41,4116', '项城市', '41', '河南省', '4116', '周口市', '411681', '项城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4117', '41', '00,41', '驻马店市', '41', '河南省', '4117', '驻马店市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('411702', '4117', '00,41,4117', '驿城区', '41', '河南省', '4117', '驻马店市', '411702', '驿城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411721', '4117', '00,41,4117', '西平县', '41', '河南省', '4117', '驻马店市', '411721', '西平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41', '河南省', '4117', '驻马店市', '411722', '上蔡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411723', '4117', '00,41,4117', '平舆县', '41', '河南省', '4117', '驻马店市', '411723', '平舆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411724', '4117', '00,41,4117', '正阳县', '41', '河南省', '4117', '驻马店市', '411724', '正阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411725', '4117', '00,41,4117', '确山县', '41', '河南省', '4117', '驻马店市', '411725', '确山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41', '河南省', '4117', '驻马店市', '411726', '泌阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411727', '4117', '00,41,4117', '汝南县', '41', '河南省', '4117', '驻马店市', '411727', '汝南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411728', '4117', '00,41,4117', '遂平县', '41', '河南省', '4117', '驻马店市', '411728', '遂平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41', '河南省', '4117', '驻马店市', '411729', '新蔡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41', '河南省', '4190', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('419001', '4190', '00,41,4190', '济源市', '41', '河南省', '4190', '省直辖县级行政区', '419001', '济源市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('42', '00', '00', '湖北省', '42', '湖北省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('4201', '42', '00,42', '武汉市', '42', '湖北省', '4201', '武汉市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420102', '4201', '00,42,4201', '江岸区', '42', '湖北省', '4201', '武汉市', '420102', '江岸区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420103', '4201', '00,42,4201', '江汉区', '42', '湖北省', '4201', '武汉市', '420103', '江汉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420104', '4201', '00,42,4201', '硚口区', '42', '湖北省', '4201', '武汉市', '420104', '硚口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42', '湖北省', '4201', '武汉市', '420105', '汉阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420106', '4201', '00,42,4201', '武昌区', '42', '湖北省', '4201', '武汉市', '420106', '武昌区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420107', '4201', '00,42,4201', '青山区', '42', '湖北省', '4201', '武汉市', '420107', '青山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420111', '4201', '00,42,4201', '洪山区', '42', '湖北省', '4201', '武汉市', '420111', '洪山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42', '湖北省', '4201', '武汉市', '420112', '东西湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420113', '4201', '00,42,4201', '汉南区', '42', '湖北省', '4201', '武汉市', '420113', '汉南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42', '湖北省', '4201', '武汉市', '420114', '蔡甸区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420115', '4201', '00,42,4201', '江夏区', '42', '湖北省', '4201', '武汉市', '420115', '江夏区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42', '湖北省', '4201', '武汉市', '420116', '黄陂区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420117', '4201', '00,42,4201', '新洲区', '42', '湖北省', '4201', '武汉市', '420117', '新洲区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4202', '42', '00,42', '黄石市', '42', '湖北省', '4202', '黄石市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42', '湖北省', '4202', '黄石市', '420202', '黄石港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42', '湖北省', '4202', '黄石市', '420203', '西塞山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420204', '4202', '00,42,4202', '下陆区', '42', '湖北省', '4202', '黄石市', '420204', '下陆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420205', '4202', '00,42,4202', '铁山区', '42', '湖北省', '4202', '黄石市', '420205', '铁山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420222', '4202', '00,42,4202', '阳新县', '42', '湖北省', '4202', '黄石市', '420222', '阳新县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420281', '4202', '00,42,4202', '大冶市', '42', '湖北省', '4202', '黄石市', '420281', '大冶市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4203', '42', '00,42', '十堰市', '42', '湖北省', '4203', '十堰市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42', '湖北省', '4203', '十堰市', '420302', '茅箭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420303', '4203', '00,42,4203', '张湾区', '42', '湖北省', '4203', '十堰市', '420303', '张湾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42', '湖北省', '4203', '十堰市', '420304', '郧阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420322', '4203', '00,42,4203', '郧西县', '42', '湖北省', '4203', '十堰市', '420322', '郧西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420323', '4203', '00,42,4203', '竹山县', '42', '湖北省', '4203', '十堰市', '420323', '竹山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42', '湖北省', '4203', '十堰市', '420324', '竹溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420325', '4203', '00,42,4203', '房县', '42', '湖北省', '4203', '十堰市', '420325', '房县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42', '湖北省', '4203', '十堰市', '420381', '丹江口市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4205', '42', '00,42', '宜昌市', '42', '湖北省', '4205', '宜昌市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420502', '4205', '00,42,4205', '西陵区', '42', '湖北省', '4205', '宜昌市', '420502', '西陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42', '湖北省', '4205', '宜昌市', '420503', '伍家岗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420504', '4205', '00,42,4205', '点军区', '42', '湖北省', '4205', '宜昌市', '420504', '点军区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42', '湖北省', '4205', '宜昌市', '420505', '猇亭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42', '湖北省', '4205', '宜昌市', '420506', '夷陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420525', '4205', '00,42,4205', '远安县', '42', '湖北省', '4205', '宜昌市', '420525', '远安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420526', '4205', '00,42,4205', '兴山县', '42', '湖北省', '4205', '宜昌市', '420526', '兴山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420527', '4205', '00,42,4205', '秭归县', '42', '湖北省', '4205', '宜昌市', '420527', '秭归县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42', '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42', '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420581', '4205', '00,42,4205', '宜都市', '42', '湖北省', '4205', '宜昌市', '420581', '宜都市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420582', '4205', '00,42,4205', '当阳市', '42', '湖北省', '4205', '宜昌市', '420582', '当阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420583', '4205', '00,42,4205', '枝江市', '42', '湖北省', '4205', '宜昌市', '420583', '枝江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4206', '42', '00,42', '襄阳市', '42', '湖北省', '4206', '襄阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420602', '4206', '00,42,4206', '襄城区', '42', '湖北省', '4206', '襄阳市', '420602', '襄城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420606', '4206', '00,42,4206', '樊城区', '42', '湖北省', '4206', '襄阳市', '420606', '樊城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420607', '4206', '00,42,4206', '襄州区', '42', '湖北省', '4206', '襄阳市', '420607', '襄州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420624', '4206', '00,42,4206', '南漳县', '42', '湖北省', '4206', '襄阳市', '420624', '南漳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420625', '4206', '00,42,4206', '谷城县', '42', '湖北省', '4206', '襄阳市', '420625', '谷城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420626', '4206', '00,42,4206', '保康县', '42', '湖北省', '4206', '襄阳市', '420626', '保康县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420682', '4206', '00,42,4206', '老河口市', '42', '湖北省', '4206', '襄阳市', '420682', '老河口市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42', '湖北省', '4206', '襄阳市', '420683', '枣阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420684', '4206', '00,42,4206', '宜城市', '42', '湖北省', '4206', '襄阳市', '420684', '宜城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4207', '42', '00,42', '鄂州市', '42', '湖北省', '4207', '鄂州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42', '湖北省', '4207', '鄂州市', '420702', '梁子湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420703', '4207', '00,42,4207', '华容区', '42', '湖北省', '4207', '鄂州市', '420703', '华容区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42', '湖北省', '4207', '鄂州市', '420704', '鄂城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4208', '42', '00,42', '荆门市', '42', '湖北省', '4208', '荆门市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420802', '4208', '00,42,4208', '东宝区', '42', '湖北省', '4208', '荆门市', '420802', '东宝区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42', '湖北省', '4208', '荆门市', '420804', '掇刀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42', '湖北省', '4208', '荆门市', '420822', '沙洋县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42', '湖北省', '4208', '荆门市', '420881', '钟祥市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420882', '4208', '00,42,4208', '京山市', '42', '湖北省', '4208', '荆门市', '420882', '京山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4209', '42', '00,42', '孝感市', '42', '湖北省', '4209', '孝感市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('420902', '4209', '00,42,4209', '孝南区', '42', '湖北省', '4209', '孝感市', '420902', '孝南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42', '湖北省', '4209', '孝感市', '420921', '孝昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420922', '4209', '00,42,4209', '大悟县', '42', '湖北省', '4209', '孝感市', '420922', '大悟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420923', '4209', '00,42,4209', '云梦县', '42', '湖北省', '4209', '孝感市', '420923', '云梦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420981', '4209', '00,42,4209', '应城市', '42', '湖北省', '4209', '孝感市', '420981', '应城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420982', '4209', '00,42,4209', '安陆市', '42', '湖北省', '4209', '孝感市', '420982', '安陆市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('420984', '4209', '00,42,4209', '汉川市', '42', '湖北省', '4209', '孝感市', '420984', '汉川市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4210', '42', '00,42', '荆州市', '42', '湖北省', '4210', '荆州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('421002', '4210', '00,42,4210', '沙市区', '42', '湖北省', '4210', '荆州市', '421002', '沙市区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421003', '4210', '00,42,4210', '荆州区', '42', '湖北省', '4210', '荆州市', '421003', '荆州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421022', '4210', '00,42,4210', '公安县', '42', '湖北省', '4210', '荆州市', '421022', '公安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421023', '4210', '00,42,4210', '监利县', '42', '湖北省', '4210', '荆州市', '421023', '监利县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421024', '4210', '00,42,4210', '江陵县', '42', '湖北省', '4210', '荆州市', '421024', '江陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421081', '4210', '00,42,4210', '石首市', '42', '湖北省', '4210', '荆州市', '421081', '石首市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42', '湖北省', '4210', '荆州市', '421083', '洪湖市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421087', '4210', '00,42,4210', '松滋市', '42', '湖北省', '4210', '荆州市', '421087', '松滋市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4211', '42', '00,42', '黄冈市', '42', '湖北省', '4211', '黄冈市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('421102', '4211', '00,42,4211', '黄州区', '42', '湖北省', '4211', '黄冈市', '421102', '黄州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421121', '4211', '00,42,4211', '团风县', '42', '湖北省', '4211', '黄冈市', '421121', '团风县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421122', '4211', '00,42,4211', '红安县', '42', '湖北省', '4211', '黄冈市', '421122', '红安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421123', '4211', '00,42,4211', '罗田县', '42', '湖北省', '4211', '黄冈市', '421123', '罗田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421124', '4211', '00,42,4211', '英山县', '42', '湖北省', '4211', '黄冈市', '421124', '英山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421125', '4211', '00,42,4211', '浠水县', '42', '湖北省', '4211', '黄冈市', '421125', '浠水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42', '湖北省', '4211', '黄冈市', '421126', '蕲春县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42', '湖北省', '4211', '黄冈市', '421127', '黄梅县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421181', '4211', '00,42,4211', '麻城市', '42', '湖北省', '4211', '黄冈市', '421181', '麻城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421182', '4211', '00,42,4211', '武穴市', '42', '湖北省', '4211', '黄冈市', '421182', '武穴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4212', '42', '00,42', '咸宁市', '42', '湖北省', '4212', '咸宁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('421202', '4212', '00,42,4212', '咸安区', '42', '湖北省', '4212', '咸宁市', '421202', '咸安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42', '湖北省', '4212', '咸宁市', '421221', '嘉鱼县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421222', '4212', '00,42,4212', '通城县', '42', '湖北省', '4212', '咸宁市', '421222', '通城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42', '湖北省', '4212', '咸宁市', '421223', '崇阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421224', '4212', '00,42,4212', '通山县', '42', '湖北省', '4212', '咸宁市', '421224', '通山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42', '湖北省', '4212', '咸宁市', '421281', '赤壁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4213', '42', '00,42', '随州市', '42', '湖北省', '4213', '随州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('421303', '4213', '00,42,4213', '曾都区', '42', '湖北省', '4213', '随州市', '421303', '曾都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421321', '4213', '00,42,4213', '随县', '42', '湖北省', '4213', '随州市', '421321', '随县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('421381', '4213', '00,42,4213', '广水市', '42', '湖北省', '4213', '随州市', '421381', '广水市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42', '湖北省', '4228', '恩施土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('422801', '4228', '00,42,4228', '恩施市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422802', '4228', '00,42,4228', '利川市', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422822', '4228', '00,42,4228', '建始县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422823', '4228', '00,42,4228', '巴东县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422827', '4228', '00,42,4228', '来凤县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42', '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42', '湖北省', '4290', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42', '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('429005', '4290', '00,42,4290', '潜江市', '42', '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('429006', '4290', '00,42,4290', '天门市', '42', '湖北省', '4290', '省直辖县级行政区', '429006', '天门市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42', '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('43', '00', '00', '湖南省', '43', '湖南省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('4301', '43', '00,43', '长沙市', '43', '湖南省', '4301', '长沙市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43', '湖南省', '4301', '长沙市', '430102', '芙蓉区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430103', '4301', '00,43,4301', '天心区', '43', '湖南省', '4301', '长沙市', '430103', '天心区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43', '湖南省', '4301', '长沙市', '430104', '岳麓区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430105', '4301', '00,43,4301', '开福区', '43', '湖南省', '4301', '长沙市', '430105', '开福区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430111', '4301', '00,43,4301', '雨花区', '43', '湖南省', '4301', '长沙市', '430111', '雨花区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430112', '4301', '00,43,4301', '望城区', '43', '湖南省', '4301', '长沙市', '430112', '望城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430121', '4301', '00,43,4301', '长沙县', '43', '湖南省', '4301', '长沙市', '430121', '长沙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43', '湖南省', '4301', '长沙市', '430181', '浏阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43', '湖南省', '4301', '长沙市', '430182', '宁乡市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4302', '43', '00,43', '株洲市', '43', '湖南省', '4302', '株洲市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43', '湖南省', '4302', '株洲市', '430202', '荷塘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43', '湖南省', '4302', '株洲市', '430203', '芦淞区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430204', '4302', '00,43,4302', '石峰区', '43', '湖南省', '4302', '株洲市', '430204', '石峰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430211', '4302', '00,43,4302', '天元区', '43', '湖南省', '4302', '株洲市', '430211', '天元区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430212', '4302', '00,43,4302', '渌口区', '43', '湖南省', '4302', '株洲市', '430212', '渌口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430223', '4302', '00,43,4302', '攸县', '43', '湖南省', '4302', '株洲市', '430223', '攸县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43', '湖南省', '4302', '株洲市', '430224', '茶陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43', '湖南省', '4302', '株洲市', '430225', '炎陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43', '湖南省', '4302', '株洲市', '430281', '醴陵市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4303', '43', '00,43', '湘潭市', '43', '湖南省', '4303', '湘潭市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43', '湖南省', '4303', '湘潭市', '430302', '雨湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43', '湖南省', '4303', '湘潭市', '430304', '岳塘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43', '湖南省', '4303', '湘潭市', '430321', '湘潭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43', '湖南省', '4303', '湘潭市', '430381', '湘乡市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430382', '4303', '00,43,4303', '韶山市', '43', '湖南省', '4303', '湘潭市', '430382', '韶山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4304', '43', '00,43', '衡阳市', '43', '湖南省', '4304', '衡阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43', '湖南省', '4304', '衡阳市', '430405', '珠晖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43', '湖南省', '4304', '衡阳市', '430406', '雁峰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43', '湖南省', '4304', '衡阳市', '430407', '石鼓区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43', '湖南省', '4304', '衡阳市', '430408', '蒸湘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430412', '4304', '00,43,4304', '南岳区', '43', '湖南省', '4304', '衡阳市', '430412', '南岳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43', '湖南省', '4304', '衡阳市', '430421', '衡阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430422', '4304', '00,43,4304', '衡南县', '43', '湖南省', '4304', '衡阳市', '430422', '衡南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430423', '4304', '00,43,4304', '衡山县', '43', '湖南省', '4304', '衡阳市', '430423', '衡山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430424', '4304', '00,43,4304', '衡东县', '43', '湖南省', '4304', '衡阳市', '430424', '衡东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430426', '4304', '00,43,4304', '祁东县', '43', '湖南省', '4304', '衡阳市', '430426', '祁东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43', '湖南省', '4304', '衡阳市', '430481', '耒阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430482', '4304', '00,43,4304', '常宁市', '43', '湖南省', '4304', '衡阳市', '430482', '常宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4305', '43', '00,43', '邵阳市', '43', '湖南省', '4305', '邵阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430502', '4305', '00,43,4305', '双清区', '43', '湖南省', '4305', '邵阳市', '430502', '双清区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430503', '4305', '00,43,4305', '大祥区', '43', '湖南省', '4305', '邵阳市', '430503', '大祥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430511', '4305', '00,43,4305', '北塔区', '43', '湖南省', '4305', '邵阳市', '430511', '北塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430522', '4305', '00,43,4305', '新邵县', '43', '湖南省', '4305', '邵阳市', '430522', '新邵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43', '湖南省', '4305', '邵阳市', '430523', '邵阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430524', '4305', '00,43,4305', '隆回县', '43', '湖南省', '4305', '邵阳市', '430524', '隆回县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430525', '4305', '00,43,4305', '洞口县', '43', '湖南省', '4305', '邵阳市', '430525', '洞口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43', '湖南省', '4305', '邵阳市', '430527', '绥宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430528', '4305', '00,43,4305', '新宁县', '43', '湖南省', '4305', '邵阳市', '430528', '新宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43', '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430581', '4305', '00,43,4305', '武冈市', '43', '湖南省', '4305', '邵阳市', '430581', '武冈市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430582', '4305', '00,43,4305', '邵东市', '43', '湖南省', '4305', '邵阳市', '430582', '邵东市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4306', '43', '00,43', '岳阳市', '43', '湖南省', '4306', '岳阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43', '湖南省', '4306', '岳阳市', '430602', '岳阳楼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430603', '4306', '00,43,4306', '云溪区', '43', '湖南省', '4306', '岳阳市', '430603', '云溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430611', '4306', '00,43,4306', '君山区', '43', '湖南省', '4306', '岳阳市', '430611', '君山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43', '湖南省', '4306', '岳阳市', '430621', '岳阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430623', '4306', '00,43,4306', '华容县', '43', '湖南省', '4306', '岳阳市', '430623', '华容县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43', '湖南省', '4306', '岳阳市', '430624', '湘阴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430626', '4306', '00,43,4306', '平江县', '43', '湖南省', '4306', '岳阳市', '430626', '平江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43', '湖南省', '4306', '岳阳市', '430681', '汨罗市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430682', '4306', '00,43,4306', '临湘市', '43', '湖南省', '4306', '岳阳市', '430682', '临湘市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4307', '43', '00,43', '常德市', '43', '湖南省', '4307', '常德市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430702', '4307', '00,43,4307', '武陵区', '43', '湖南省', '4307', '常德市', '430702', '武陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43', '湖南省', '4307', '常德市', '430703', '鼎城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430721', '4307', '00,43,4307', '安乡县', '43', '湖南省', '4307', '常德市', '430721', '安乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43', '湖南省', '4307', '常德市', '430722', '汉寿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430723', '4307', '00,43,4307', '澧县', '43', '湖南省', '4307', '常德市', '430723', '澧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430724', '4307', '00,43,4307', '临澧县', '43', '湖南省', '4307', '常德市', '430724', '临澧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430725', '4307', '00,43,4307', '桃源县', '43', '湖南省', '4307', '常德市', '430725', '桃源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430726', '4307', '00,43,4307', '石门县', '43', '湖南省', '4307', '常德市', '430726', '石门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430781', '4307', '00,43,4307', '津市市', '43', '湖南省', '4307', '常德市', '430781', '津市市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4308', '43', '00,43', '张家界市', '43', '湖南省', '4308', '张家界市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430802', '4308', '00,43,4308', '永定区', '43', '湖南省', '4308', '张家界市', '430802', '永定区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43', '湖南省', '4308', '张家界市', '430811', '武陵源区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430821', '4308', '00,43,4308', '慈利县', '43', '湖南省', '4308', '张家界市', '430821', '慈利县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430822', '4308', '00,43,4308', '桑植县', '43', '湖南省', '4308', '张家界市', '430822', '桑植县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4309', '43', '00,43', '益阳市', '43', '湖南省', '4309', '益阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('430902', '4309', '00,43,4309', '资阳区', '43', '湖南省', '4309', '益阳市', '430902', '资阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430903', '4309', '00,43,4309', '赫山区', '43', '湖南省', '4309', '益阳市', '430903', '赫山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430921', '4309', '00,43,4309', '南县', '43', '湖南省', '4309', '益阳市', '430921', '南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430922', '4309', '00,43,4309', '桃江县', '43', '湖南省', '4309', '益阳市', '430922', '桃江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430923', '4309', '00,43,4309', '安化县', '43', '湖南省', '4309', '益阳市', '430923', '安化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('430981', '4309', '00,43,4309', '沅江市', '43', '湖南省', '4309', '益阳市', '430981', '沅江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4310', '43', '00,43', '郴州市', '43', '湖南省', '4310', '郴州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('431002', '4310', '00,43,4310', '北湖区', '43', '湖南省', '4310', '郴州市', '431002', '北湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43', '湖南省', '4310', '郴州市', '431003', '苏仙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43', '湖南省', '4310', '郴州市', '431021', '桂阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431022', '4310', '00,43,4310', '宜章县', '43', '湖南省', '4310', '郴州市', '431022', '宜章县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431023', '4310', '00,43,4310', '永兴县', '43', '湖南省', '4310', '郴州市', '431023', '永兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43', '湖南省', '4310', '郴州市', '431024', '嘉禾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431025', '4310', '00,43,4310', '临武县', '43', '湖南省', '4310', '郴州市', '431025', '临武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431026', '4310', '00,43,4310', '汝城县', '43', '湖南省', '4310', '郴州市', '431026', '汝城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431027', '4310', '00,43,4310', '桂东县', '43', '湖南省', '4310', '郴州市', '431027', '桂东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431028', '4310', '00,43,4310', '安仁县', '43', '湖南省', '4310', '郴州市', '431028', '安仁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431081', '4310', '00,43,4310', '资兴市', '43', '湖南省', '4310', '郴州市', '431081', '资兴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4311', '43', '00,43', '永州市', '43', '湖南省', '4311', '永州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('431102', '4311', '00,43,4311', '零陵区', '43', '湖南省', '4311', '永州市', '431102', '零陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43', '湖南省', '4311', '永州市', '431103', '冷水滩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43', '湖南省', '4311', '永州市', '431121', '祁阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431122', '4311', '00,43,4311', '东安县', '43', '湖南省', '4311', '永州市', '431122', '东安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431123', '4311', '00,43,4311', '双牌县', '43', '湖南省', '4311', '永州市', '431123', '双牌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431124', '4311', '00,43,4311', '道县', '43', '湖南省', '4311', '永州市', '431124', '道县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431125', '4311', '00,43,4311', '江永县', '43', '湖南省', '4311', '永州市', '431125', '江永县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431126', '4311', '00,43,4311', '宁远县', '43', '湖南省', '4311', '永州市', '431126', '宁远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43', '湖南省', '4311', '永州市', '431127', '蓝山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431128', '4311', '00,43,4311', '新田县', '43', '湖南省', '4311', '永州市', '431128', '新田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43', '湖南省', '4311', '永州市', '431129', '江华瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4312', '43', '00,43', '怀化市', '43', '湖南省', '4312', '怀化市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43', '湖南省', '4312', '怀化市', '431202', '鹤城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431221', '4312', '00,43,4312', '中方县', '43', '湖南省', '4312', '怀化市', '431221', '中方县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43', '湖南省', '4312', '怀化市', '431222', '沅陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43', '湖南省', '4312', '怀化市', '431223', '辰溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43', '湖南省', '4312', '怀化市', '431224', '溆浦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431225', '4312', '00,43,4312', '会同县', '43', '湖南省', '4312', '怀化市', '431225', '会同县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43', '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43', '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43', '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43', '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43', '湖南省', '4312', '怀化市', '431230', '通道侗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431281', '4312', '00,43,4312', '洪江市', '43', '湖南省', '4312', '怀化市', '431281', '洪江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4313', '43', '00,43', '娄底市', '43', '湖南省', '4313', '娄底市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('431302', '4313', '00,43,4313', '娄星区', '43', '湖南省', '4313', '娄底市', '431302', '娄星区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431321', '4313', '00,43,4313', '双峰县', '43', '湖南省', '4313', '娄底市', '431321', '双峰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431322', '4313', '00,43,4313', '新化县', '43', '湖南省', '4313', '娄底市', '431322', '新化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43', '湖南省', '4313', '娄底市', '431381', '冷水江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('431382', '4313', '00,43,4313', '涟源市', '43', '湖南省', '4313', '娄底市', '431382', '涟源市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43', '湖南省', '4331', '湘西土家族苗族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('433101', '4331', '00,43,4331', '吉首市', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433124', '4331', '00,43,4331', '花垣县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433125', '4331', '00,43,4331', '保靖县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433126', '4331', '00,43,4331', '古丈县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433127', '4331', '00,43,4331', '永顺县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('433130', '4331', '00,43,4331', '龙山县', '43', '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('44', '00', '00', '广东省', '44', '广东省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('4401', '44', '00,44', '广州市', '44', '广东省', '4401', '广州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44', '广东省', '4401', '广州市', '440103', '荔湾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440104', '4401', '00,44,4401', '越秀区', '44', '广东省', '4401', '广州市', '440104', '越秀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440105', '4401', '00,44,4401', '海珠区', '44', '广东省', '4401', '广州市', '440105', '海珠区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440106', '4401', '00,44,4401', '天河区', '44', '广东省', '4401', '广州市', '440106', '天河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440111', '4401', '00,44,4401', '白云区', '44', '广东省', '4401', '广州市', '440111', '白云区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44', '广东省', '4401', '广州市', '440112', '黄埔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440113', '4401', '00,44,4401', '番禺区', '44', '广东省', '4401', '广州市', '440113', '番禺区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440114', '4401', '00,44,4401', '花都区', '44', '广东省', '4401', '广州市', '440114', '花都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440115', '4401', '00,44,4401', '南沙区', '44', '广东省', '4401', '广州市', '440115', '南沙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440117', '4401', '00,44,4401', '从化区', '44', '广东省', '4401', '广州市', '440117', '从化区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440118', '4401', '00,44,4401', '增城区', '44', '广东省', '4401', '广州市', '440118', '增城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4402', '44', '00,44', '韶关市', '44', '广东省', '4402', '韶关市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440203', '4402', '00,44,4402', '武江区', '44', '广东省', '4402', '韶关市', '440203', '武江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440204', '4402', '00,44,4402', '浈江区', '44', '广东省', '4402', '韶关市', '440204', '浈江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440205', '4402', '00,44,4402', '曲江区', '44', '广东省', '4402', '韶关市', '440205', '曲江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440222', '4402', '00,44,4402', '始兴县', '44', '广东省', '4402', '韶关市', '440222', '始兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440224', '4402', '00,44,4402', '仁化县', '44', '广东省', '4402', '韶关市', '440224', '仁化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440229', '4402', '00,44,4402', '翁源县', '44', '广东省', '4402', '韶关市', '440229', '翁源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44', '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440233', '4402', '00,44,4402', '新丰县', '44', '广东省', '4402', '韶关市', '440233', '新丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44', '广东省', '4402', '韶关市', '440281', '乐昌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440282', '4402', '00,44,4402', '南雄市', '44', '广东省', '4402', '韶关市', '440282', '南雄市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4403', '44', '00,44', '深圳市', '44', '广东省', '4403', '深圳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44', '广东省', '4403', '深圳市', '440303', '罗湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440304', '4403', '00,44,4403', '福田区', '44', '广东省', '4403', '深圳市', '440304', '福田区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440305', '4403', '00,44,4403', '南山区', '44', '广东省', '4403', '深圳市', '440305', '南山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440306', '4403', '00,44,4403', '宝安区', '44', '广东省', '4403', '深圳市', '440306', '宝安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44', '广东省', '4403', '深圳市', '440307', '龙岗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440308', '4403', '00,44,4403', '盐田区', '44', '广东省', '4403', '深圳市', '440308', '盐田区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440309', '4403', '00,44,4403', '龙华区', '44', '广东省', '4403', '深圳市', '440309', '龙华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440310', '4403', '00,44,4403', '坪山区', '44', '广东省', '4403', '深圳市', '440310', '坪山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4604', '46', '00,46', '儋州市', '46', '海南省', '4604', '儋州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440311', '4403', '00,44,4403', '光明区', '44', '广东省', '4403', '深圳市', '440311', '光明区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4404', '44', '00,44', '珠海市', '44', '广东省', '4404', '珠海市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440402', '4404', '00,44,4404', '香洲区', '44', '广东省', '4404', '珠海市', '440402', '香洲区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440403', '4404', '00,44,4404', '斗门区', '44', '广东省', '4404', '珠海市', '440403', '斗门区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440404', '4404', '00,44,4404', '金湾区', '44', '广东省', '4404', '珠海市', '440404', '金湾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4405', '44', '00,44', '汕头市', '44', '广东省', '4405', '汕头市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44', '广东省', '4405', '汕头市', '440507', '龙湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440511', '4405', '00,44,4405', '金平区', '44', '广东省', '4405', '汕头市', '440511', '金平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440512', '4405', '00,44,4405', '濠江区', '44', '广东省', '4405', '汕头市', '440512', '濠江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44', '广东省', '4405', '汕头市', '440513', '潮阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440514', '4405', '00,44,4405', '潮南区', '44', '广东省', '4405', '汕头市', '440514', '潮南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440515', '4405', '00,44,4405', '澄海区', '44', '广东省', '4405', '汕头市', '440515', '澄海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440523', '4405', '00,44,4405', '南澳县', '44', '广东省', '4405', '汕头市', '440523', '南澳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4406', '44', '00,44', '佛山市', '44', '广东省', '4406', '佛山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440604', '4406', '00,44,4406', '禅城区', '44', '广东省', '4406', '佛山市', '440604', '禅城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440605', '4406', '00,44,4406', '南海区', '44', '广东省', '4406', '佛山市', '440605', '南海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440606', '4406', '00,44,4406', '顺德区', '44', '广东省', '4406', '佛山市', '440606', '顺德区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440607', '4406', '00,44,4406', '三水区', '44', '广东省', '4406', '佛山市', '440607', '三水区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440608', '4406', '00,44,4406', '高明区', '44', '广东省', '4406', '佛山市', '440608', '高明区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4407', '44', '00,44', '江门市', '44', '广东省', '4407', '江门市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44', '广东省', '4407', '江门市', '440703', '蓬江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440704', '4407', '00,44,4407', '江海区', '44', '广东省', '4407', '江门市', '440704', '江海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440705', '4407', '00,44,4407', '新会区', '44', '广东省', '4407', '江门市', '440705', '新会区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440781', '4407', '00,44,4407', '台山市', '44', '广东省', '4407', '江门市', '440781', '台山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440783', '4407', '00,44,4407', '开平市', '44', '广东省', '4407', '江门市', '440783', '开平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44', '广东省', '4407', '江门市', '440784', '鹤山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440785', '4407', '00,44,4407', '恩平市', '44', '广东省', '4407', '江门市', '440785', '恩平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4408', '44', '00,44', '湛江市', '44', '广东省', '4408', '湛江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44', '广东省', '4408', '湛江市', '440802', '赤坎区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440803', '4408', '00,44,4408', '霞山区', '44', '广东省', '4408', '湛江市', '440803', '霞山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440804', '4408', '00,44,4408', '坡头区', '44', '广东省', '4408', '湛江市', '440804', '坡头区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440811', '4408', '00,44,4408', '麻章区', '44', '广东省', '4408', '湛江市', '440811', '麻章区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44', '广东省', '4408', '湛江市', '440823', '遂溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44', '广东省', '4408', '湛江市', '440825', '徐闻县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440881', '4408', '00,44,4408', '廉江市', '44', '广东省', '4408', '湛江市', '440881', '廉江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440882', '4408', '00,44,4408', '雷州市', '44', '广东省', '4408', '湛江市', '440882', '雷州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440883', '4408', '00,44,4408', '吴川市', '44', '广东省', '4408', '湛江市', '440883', '吴川市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4409', '44', '00,44', '茂名市', '44', '广东省', '4409', '茂名市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('440902', '4409', '00,44,4409', '茂南区', '44', '广东省', '4409', '茂名市', '440902', '茂南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440904', '4409', '00,44,4409', '电白区', '44', '广东省', '4409', '茂名市', '440904', '电白区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440981', '4409', '00,44,4409', '高州市', '44', '广东省', '4409', '茂名市', '440981', '高州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440982', '4409', '00,44,4409', '化州市', '44', '广东省', '4409', '茂名市', '440982', '化州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('440983', '4409', '00,44,4409', '信宜市', '44', '广东省', '4409', '茂名市', '440983', '信宜市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4412', '44', '00,44', '肇庆市', '44', '广东省', '4412', '肇庆市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441202', '4412', '00,44,4412', '端州区', '44', '广东省', '4412', '肇庆市', '441202', '端州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44', '广东省', '4412', '肇庆市', '441203', '鼎湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441204', '4412', '00,44,4412', '高要区', '44', '广东省', '4412', '肇庆市', '441204', '高要区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441223', '4412', '00,44,4412', '广宁县', '44', '广东省', '4412', '肇庆市', '441223', '广宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441224', '4412', '00,44,4412', '怀集县', '44', '广东省', '4412', '肇庆市', '441224', '怀集县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441225', '4412', '00,44,4412', '封开县', '44', '广东省', '4412', '肇庆市', '441225', '封开县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441226', '4412', '00,44,4412', '德庆县', '44', '广东省', '4412', '肇庆市', '441226', '德庆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441284', '4412', '00,44,4412', '四会市', '44', '广东省', '4412', '肇庆市', '441284', '四会市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4413', '44', '00,44', '惠州市', '44', '广东省', '4413', '惠州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441302', '4413', '00,44,4413', '惠城区', '44', '广东省', '4413', '惠州市', '441302', '惠城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44', '广东省', '4413', '惠州市', '441303', '惠阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441322', '4413', '00,44,4413', '博罗县', '44', '广东省', '4413', '惠州市', '441322', '博罗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441323', '4413', '00,44,4413', '惠东县', '44', '广东省', '4413', '惠州市', '441323', '惠东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441324', '4413', '00,44,4413', '龙门县', '44', '广东省', '4413', '惠州市', '441324', '龙门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4414', '44', '00,44', '梅州市', '44', '广东省', '4414', '梅州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441402', '4414', '00,44,4414', '梅江区', '44', '广东省', '4414', '梅州市', '441402', '梅江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441403', '4414', '00,44,4414', '梅县区', '44', '广东省', '4414', '梅州市', '441403', '梅县区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441422', '4414', '00,44,4414', '大埔县', '44', '广东省', '4414', '梅州市', '441422', '大埔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44', '广东省', '4414', '梅州市', '441423', '丰顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441424', '4414', '00,44,4414', '五华县', '44', '广东省', '4414', '梅州市', '441424', '五华县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441426', '4414', '00,44,4414', '平远县', '44', '广东省', '4414', '梅州市', '441426', '平远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44', '广东省', '4414', '梅州市', '441427', '蕉岭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44', '广东省', '4414', '梅州市', '441481', '兴宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441502', '4415', '00,44,4415', '城区', '44', '广东省', '4415', '汕尾市', '441502', '城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441521', '4415', '00,44,4415', '海丰县', '44', '广东省', '4415', '汕尾市', '441521', '海丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441523', '4415', '00,44,4415', '陆河县', '44', '广东省', '4415', '汕尾市', '441523', '陆河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44', '广东省', '4415', '汕尾市', '441581', '陆丰市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4416', '44', '00,44', '河源市', '44', '广东省', '4416', '河源市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441602', '4416', '00,44,4416', '源城区', '44', '广东省', '4416', '河源市', '441602', '源城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441621', '4416', '00,44,4416', '紫金县', '44', '广东省', '4416', '河源市', '441621', '紫金县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441622', '4416', '00,44,4416', '龙川县', '44', '广东省', '4416', '河源市', '441622', '龙川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441623', '4416', '00,44,4416', '连平县', '44', '广东省', '4416', '河源市', '441623', '连平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441624', '4416', '00,44,4416', '和平县', '44', '广东省', '4416', '河源市', '441624', '和平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441625', '4416', '00,44,4416', '东源县', '44', '广东省', '4416', '河源市', '441625', '东源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4417', '44', '00,44', '阳江市', '44', '广东省', '4417', '阳江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441702', '4417', '00,44,4417', '江城区', '44', '广东省', '4417', '阳江市', '441702', '江城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441704', '4417', '00,44,4417', '阳东区', '44', '广东省', '4417', '阳江市', '441704', '阳东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441721', '4417', '00,44,4417', '阳西县', '44', '广东省', '4417', '阳江市', '441721', '阳西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441781', '4417', '00,44,4417', '阳春市', '44', '广东省', '4417', '阳江市', '441781', '阳春市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4418', '44', '00,44', '清远市', '44', '广东省', '4418', '清远市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441802', '4418', '00,44,4418', '清城区', '44', '广东省', '4418', '清远市', '441802', '清城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441803', '4418', '00,44,4418', '清新区', '44', '广东省', '4418', '清远市', '441803', '清新区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44', '广东省', '4418', '清远市', '441821', '佛冈县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441823', '4418', '00,44,4418', '阳山县', '44', '广东省', '4418', '清远市', '441823', '阳山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44', '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44', '广东省', '4418', '清远市', '441826', '连南瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441881', '4418', '00,44,4418', '英德市', '44', '广东省', '4418', '清远市', '441881', '英德市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('441882', '4418', '00,44,4418', '连州市', '44', '广东省', '4418', '清远市', '441882', '连州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4419', '44', '00,44', '东莞市', '44', '广东省', '4419', '东莞市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('441900', '4419', '00,44,4419', '东莞市', '44', '广东省', '4419', '东莞市', '441900', '东莞市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4420', '44', '00,44', '中山市', '44', '广东省', '4420', '中山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('442000', '4420', '00,44,4420', '中山市', '44', '广东省', '4420', '中山市', '442000', '中山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4451', '44', '00,44', '潮州市', '44', '广东省', '4451', '潮州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44', '广东省', '4451', '潮州市', '445102', '湘桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445103', '4451', '00,44,4451', '潮安区', '44', '广东省', '4451', '潮州市', '445103', '潮安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445122', '4451', '00,44,4451', '饶平县', '44', '广东省', '4451', '潮州市', '445122', '饶平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4452', '44', '00,44', '揭阳市', '44', '广东省', '4452', '揭阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('445202', '4452', '00,44,4452', '榕城区', '44', '广东省', '4452', '揭阳市', '445202', '榕城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445203', '4452', '00,44,4452', '揭东区', '44', '广东省', '4452', '揭阳市', '445203', '揭东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445222', '4452', '00,44,4452', '揭西县', '44', '广东省', '4452', '揭阳市', '445222', '揭西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445224', '4452', '00,44,4452', '惠来县', '44', '广东省', '4452', '揭阳市', '445224', '惠来县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445281', '4452', '00,44,4452', '普宁市', '44', '广东省', '4452', '揭阳市', '445281', '普宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4453', '44', '00,44', '云浮市', '44', '广东省', '4453', '云浮市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('445302', '4453', '00,44,4453', '云城区', '44', '广东省', '4453', '云浮市', '445302', '云城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445303', '4453', '00,44,4453', '云安区', '44', '广东省', '4453', '云浮市', '445303', '云安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445321', '4453', '00,44,4453', '新兴县', '44', '广东省', '4453', '云浮市', '445321', '新兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445322', '4453', '00,44,4453', '郁南县', '44', '广东省', '4453', '云浮市', '445322', '郁南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('445381', '4453', '00,44,4453', '罗定市', '44', '广东省', '4453', '云浮市', '445381', '罗定市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('45', '00', '00', '广西壮族自治区', '45', '广西壮族自治区', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('4501', '45', '00,45', '南宁市', '45', '广西壮族自治区', '4501', '南宁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45', '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450103', '4501', '00,45,4501', '青秀区', '45', '广西壮族自治区', '4501', '南宁市', '450103', '青秀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450105', '4501', '00,45,4501', '江南区', '45', '广西壮族自治区', '4501', '南宁市', '450105', '江南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45', '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450108', '4501', '00,45,4501', '良庆区', '45', '广西壮族自治区', '4501', '南宁市', '450108', '良庆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45', '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45', '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450123', '4501', '00,45,4501', '隆安县', '45', '广西壮族自治区', '4501', '南宁市', '450123', '隆安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450124', '4501', '00,45,4501', '马山县', '45', '广西壮族自治区', '4501', '南宁市', '450124', '马山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450125', '4501', '00,45,4501', '上林县', '45', '广西壮族自治区', '4501', '南宁市', '450125', '上林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45', '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450127', '4501', '00,45,4501', '横县', '45', '广西壮族自治区', '4501', '南宁市', '450127', '横县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4502', '45', '00,45', '柳州市', '45', '广西壮族自治区', '4502', '柳州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450202', '4502', '00,45,4502', '城中区', '45', '广西壮族自治区', '4502', '柳州市', '450202', '城中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45', '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450204', '4502', '00,45,4502', '柳南区', '45', '广西壮族自治区', '4502', '柳州市', '450204', '柳南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450205', '4502', '00,45,4502', '柳北区', '45', '广西壮族自治区', '4502', '柳州市', '450205', '柳北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450206', '4502', '00,45,4502', '柳江区', '45', '广西壮族自治区', '4502', '柳州市', '450206', '柳江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450222', '4502', '00,45,4502', '柳城县', '45', '广西壮族自治区', '4502', '柳州市', '450222', '柳城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45', '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450224', '4502', '00,45,4502', '融安县', '45', '广西壮族自治区', '4502', '柳州市', '450224', '融安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45', '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4503', '45', '00,45', '桂林市', '45', '广西壮族自治区', '4503', '桂林市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45', '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45', '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450304', '4503', '00,45,4503', '象山区', '45', '广西壮族自治区', '4503', '桂林市', '450304', '象山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450305', '4503', '00,45,4503', '七星区', '45', '广西壮族自治区', '4503', '桂林市', '450305', '七星区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450311', '4503', '00,45,4503', '雁山区', '45', '广西壮族自治区', '4503', '桂林市', '450311', '雁山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450312', '4503', '00,45,4503', '临桂区', '45', '广西壮族自治区', '4503', '桂林市', '450312', '临桂区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45', '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450323', '4503', '00,45,4503', '灵川县', '45', '广西壮族自治区', '4503', '桂林市', '450323', '灵川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450324', '4503', '00,45,4503', '全州县', '45', '广西壮族自治区', '4503', '桂林市', '450324', '全州县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450325', '4503', '00,45,4503', '兴安县', '45', '广西壮族自治区', '4503', '桂林市', '450325', '兴安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450326', '4503', '00,45,4503', '永福县', '45', '广西壮族自治区', '4503', '桂林市', '450326', '永福县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45', '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450329', '4503', '00,45,4503', '资源县', '45', '广西壮族自治区', '4503', '桂林市', '450329', '资源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450330', '4503', '00,45,4503', '平乐县', '45', '广西壮族自治区', '4503', '桂林市', '450330', '平乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45', '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45', '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4504', '45', '00,45', '梧州市', '45', '广西壮族自治区', '4504', '梧州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450403', '4504', '00,45,4504', '万秀区', '45', '广西壮族自治区', '4504', '梧州市', '450403', '万秀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450405', '4504', '00,45,4504', '长洲区', '45', '广西壮族自治区', '4504', '梧州市', '450405', '长洲区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45', '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45', '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450422', '4504', '00,45,4504', '藤县', '45', '广西壮族自治区', '4504', '梧州市', '450422', '藤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45', '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45', '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4505', '45', '00,45', '北海市', '45', '广西壮族自治区', '4505', '北海市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450502', '4505', '00,45,4505', '海城区', '45', '广西壮族自治区', '4505', '北海市', '450502', '海城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450503', '4505', '00,45,4505', '银海区', '45', '广西壮族自治区', '4505', '北海市', '450503', '银海区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45', '广西壮族自治区', '4505', '北海市', '450512', '铁山港区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450521', '4505', '00,45,4505', '合浦县', '45', '广西壮族自治区', '4505', '北海市', '450521', '合浦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4506', '45', '00,45', '防城港市', '45', '广西壮族自治区', '4506', '防城港市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450602', '4506', '00,45,4506', '港口区', '45', '广西壮族自治区', '4506', '防城港市', '450602', '港口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450603', '4506', '00,45,4506', '防城区', '45', '广西壮族自治区', '4506', '防城港市', '450603', '防城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450621', '4506', '00,45,4506', '上思县', '45', '广西壮族自治区', '4506', '防城港市', '450621', '上思县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450681', '4506', '00,45,4506', '东兴市', '45', '广西壮族自治区', '4506', '防城港市', '450681', '东兴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4507', '45', '00,45', '钦州市', '45', '广西壮族自治区', '4507', '钦州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450702', '4507', '00,45,4507', '钦南区', '45', '广西壮族自治区', '4507', '钦州市', '450702', '钦南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450703', '4507', '00,45,4507', '钦北区', '45', '广西壮族自治区', '4507', '钦州市', '450703', '钦北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450721', '4507', '00,45,4507', '灵山县', '45', '广西壮族自治区', '4507', '钦州市', '450721', '灵山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450722', '4507', '00,45,4507', '浦北县', '45', '广西壮族自治区', '4507', '钦州市', '450722', '浦北县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4508', '45', '00,45', '贵港市', '45', '广西壮族自治区', '4508', '贵港市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450802', '4508', '00,45,4508', '港北区', '45', '广西壮族自治区', '4508', '贵港市', '450802', '港北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450803', '4508', '00,45,4508', '港南区', '45', '广西壮族自治区', '4508', '贵港市', '450803', '港南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45', '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450821', '4508', '00,45,4508', '平南县', '45', '广西壮族自治区', '4508', '贵港市', '450821', '平南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450881', '4508', '00,45,4508', '桂平市', '45', '广西壮族自治区', '4508', '贵港市', '450881', '桂平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4509', '45', '00,45', '玉林市', '45', '广西壮族自治区', '4509', '玉林市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('450902', '4509', '00,45,4509', '玉州区', '45', '广西壮族自治区', '4509', '玉林市', '450902', '玉州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450903', '4509', '00,45,4509', '福绵区', '45', '广西壮族自治区', '4509', '玉林市', '450903', '福绵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450921', '4509', '00,45,4509', '容县', '45', '广西壮族自治区', '4509', '玉林市', '450921', '容县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450922', '4509', '00,45,4509', '陆川县', '45', '广西壮族自治区', '4509', '玉林市', '450922', '陆川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450923', '4509', '00,45,4509', '博白县', '45', '广西壮族自治区', '4509', '玉林市', '450923', '博白县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460300', '4603', '00,46,4603', '三沙市', '46', '海南省', '4603', '三沙市', '460300', '三沙市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450924', '4509', '00,45,4509', '兴业县', '45', '广西壮族自治区', '4509', '玉林市', '450924', '兴业县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('450981', '4509', '00,45,4509', '北流市', '45', '广西壮族自治区', '4509', '玉林市', '450981', '北流市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4510', '45', '00,45', '百色市', '45', '广西壮族自治区', '4510', '百色市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('451002', '4510', '00,45,4510', '右江区', '45', '广西壮族自治区', '4510', '百色市', '451002', '右江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451003', '4510', '00,45,4510', '田阳区', '45', '广西壮族自治区', '4510', '百色市', '451003', '田阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451022', '4510', '00,45,4510', '田东县', '45', '广西壮族自治区', '4510', '百色市', '451022', '田东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451024', '4510', '00,45,4510', '德保县', '45', '广西壮族自治区', '4510', '百色市', '451024', '德保县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451026', '4510', '00,45,4510', '那坡县', '45', '广西壮族自治区', '4510', '百色市', '451026', '那坡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451027', '4510', '00,45,4510', '凌云县', '45', '广西壮族自治区', '4510', '百色市', '451027', '凌云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451028', '4510', '00,45,4510', '乐业县', '45', '广西壮族自治区', '4510', '百色市', '451028', '乐业县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451029', '4510', '00,45,4510', '田林县', '45', '广西壮族自治区', '4510', '百色市', '451029', '田林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451030', '4510', '00,45,4510', '西林县', '45', '广西壮族自治区', '4510', '百色市', '451030', '西林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45', '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451081', '4510', '00,45,4510', '靖西市', '45', '广西壮族自治区', '4510', '百色市', '451081', '靖西市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451082', '4510', '00,45,4510', '平果市', '45', '广西壮族自治区', '4510', '百色市', '451082', '平果市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4511', '45', '00,45', '贺州市', '45', '广西壮族自治区', '4511', '贺州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('451102', '4511', '00,45,4511', '八步区', '45', '广西壮族自治区', '4511', '贺州市', '451102', '八步区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451103', '4511', '00,45,4511', '平桂区', '45', '广西壮族自治区', '4511', '贺州市', '451103', '平桂区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451121', '4511', '00,45,4511', '昭平县', '45', '广西壮族自治区', '4511', '贺州市', '451121', '昭平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451122', '4511', '00,45,4511', '钟山县', '45', '广西壮族自治区', '4511', '贺州市', '451122', '钟山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45', '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4512', '45', '00,45', '河池市', '45', '广西壮族自治区', '4512', '河池市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('451202', '4512', '00,45,4512', '金城江区', '45', '广西壮族自治区', '4512', '河池市', '451202', '金城江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451203', '4512', '00,45,4512', '宜州区', '45', '广西壮族自治区', '4512', '河池市', '451203', '宜州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451221', '4512', '00,45,4512', '南丹县', '45', '广西壮族自治区', '4512', '河池市', '451221', '南丹县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451222', '4512', '00,45,4512', '天峨县', '45', '广西壮族自治区', '4512', '河池市', '451222', '天峨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451223', '4512', '00,45,4512', '凤山县', '45', '广西壮族自治区', '4512', '河池市', '451223', '凤山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451224', '4512', '00,45,4512', '东兰县', '45', '广西壮族自治区', '4512', '河池市', '451224', '东兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45', '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45', '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45', '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4513', '45', '00,45', '来宾市', '45', '广西壮族自治区', '4513', '来宾市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45', '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451321', '4513', '00,45,4513', '忻城县', '45', '广西壮族自治区', '4513', '来宾市', '451321', '忻城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451322', '4513', '00,45,4513', '象州县', '45', '广西壮族自治区', '4513', '来宾市', '451322', '象州县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451323', '4513', '00,45,4513', '武宣县', '45', '广西壮族自治区', '4513', '来宾市', '451323', '武宣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45', '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451381', '4513', '00,45,4513', '合山市', '45', '广西壮族自治区', '4513', '来宾市', '451381', '合山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4514', '45', '00,45', '崇左市', '45', '广西壮族自治区', '4514', '崇左市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('451402', '4514', '00,45,4514', '江州区', '45', '广西壮族自治区', '4514', '崇左市', '451402', '江州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45', '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451422', '4514', '00,45,4514', '宁明县', '45', '广西壮族自治区', '4514', '崇左市', '451422', '宁明县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451423', '4514', '00,45,4514', '龙州县', '45', '广西壮族自治区', '4514', '崇左市', '451423', '龙州县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451424', '4514', '00,45,4514', '大新县', '45', '广西壮族自治区', '4514', '崇左市', '451424', '大新县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451425', '4514', '00,45,4514', '天等县', '45', '广西壮族自治区', '4514', '崇左市', '451425', '天等县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45', '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('46', '00', '00', '海南省', '46', '海南省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('4601', '46', '00,46', '海口市', '46', '海南省', '4601', '海口市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('460105', '4601', '00,46,4601', '秀英区', '46', '海南省', '4601', '海口市', '460105', '秀英区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460106', '4601', '00,46,4601', '龙华区', '46', '海南省', '4601', '海口市', '460106', '龙华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460107', '4601', '00,46,4601', '琼山区', '46', '海南省', '4601', '海口市', '460107', '琼山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460108', '4601', '00,46,4601', '美兰区', '46', '海南省', '4601', '海口市', '460108', '美兰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4602', '46', '00,46', '三亚市', '46', '海南省', '4602', '三亚市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('460202', '4602', '00,46,4602', '海棠区', '46', '海南省', '4602', '三亚市', '460202', '海棠区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46', '海南省', '4602', '三亚市', '460203', '吉阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460204', '4602', '00,46,4602', '天涯区', '46', '海南省', '4602', '三亚市', '460204', '天涯区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('460205', '4602', '00,46,4602', '崖州区', '46', '海南省', '4602', '三亚市', '460205', '崖州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4603', '46', '00,46', '三沙市', '46', '海南省', '4603', '三沙市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('460400', '4604', '00,46,4604', '儋州市', '46', '海南省', '4604', '儋州市', '460400', '儋州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46', '海南省', '4690', '省直辖县级行政区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('469001', '4690', '00,46,4690', '五指山市', '46', '海南省', '4690', '省直辖县级行政区', '469001', '五指山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469002', '4690', '00,46,4690', '琼海市', '46', '海南省', '4690', '省直辖县级行政区', '469002', '琼海市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469005', '4690', '00,46,4690', '文昌市', '46', '海南省', '4690', '省直辖县级行政区', '469005', '文昌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469006', '4690', '00,46,4690', '万宁市', '46', '海南省', '4690', '省直辖县级行政区', '469006', '万宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469007', '4690', '00,46,4690', '东方市', '46', '海南省', '4690', '省直辖县级行政区', '469007', '东方市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469021', '4690', '00,46,4690', '定安县', '46', '海南省', '4690', '省直辖县级行政区', '469021', '定安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46', '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46', '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469024', '4690', '00,46,4690', '临高县', '46', '海南省', '4690', '省直辖县级行政区', '469024', '临高县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46', '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('50', '00', '00', '重庆市', '50', '重庆市', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('5001', '50', '00,50', '重庆市', '50', '重庆市', '5001', '重庆市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('500101', '5001', '00,50,5001', '万州区', '50', '重庆市', '5001', '重庆市', '500101', '万州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50', '重庆市', '5001', '重庆市', '500102', '涪陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500103', '5001', '00,50,5001', '渝中区', '50', '重庆市', '5001', '重庆市', '500103', '渝中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50', '重庆市', '5001', '重庆市', '500104', '大渡口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500105', '5001', '00,50,5001', '江北区', '50', '重庆市', '5001', '重庆市', '500105', '江北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50', '重庆市', '5001', '重庆市', '500106', '沙坪坝区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50', '重庆市', '5001', '重庆市', '500107', '九龙坡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500108', '5001', '00,50,5001', '南岸区', '50', '重庆市', '5001', '重庆市', '500108', '南岸区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500109', '5001', '00,50,5001', '北碚区', '50', '重庆市', '5001', '重庆市', '500109', '北碚区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500110', '5001', '00,50,5001', '綦江区', '50', '重庆市', '5001', '重庆市', '500110', '綦江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500111', '5001', '00,50,5001', '大足区', '50', '重庆市', '5001', '重庆市', '500111', '大足区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500112', '5001', '00,50,5001', '渝北区', '50', '重庆市', '5001', '重庆市', '500112', '渝北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500113', '5001', '00,50,5001', '巴南区', '50', '重庆市', '5001', '重庆市', '500113', '巴南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500114', '5001', '00,50,5001', '黔江区', '50', '重庆市', '5001', '重庆市', '500114', '黔江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500115', '5001', '00,50,5001', '长寿区', '50', '重庆市', '5001', '重庆市', '500115', '长寿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500116', '5001', '00,50,5001', '江津区', '50', '重庆市', '5001', '重庆市', '500116', '江津区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500117', '5001', '00,50,5001', '合川区', '50', '重庆市', '5001', '重庆市', '500117', '合川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500118', '5001', '00,50,5001', '永川区', '50', '重庆市', '5001', '重庆市', '500118', '永川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500119', '5001', '00,50,5001', '南川区', '50', '重庆市', '5001', '重庆市', '500119', '南川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500120', '5001', '00,50,5001', '璧山区', '50', '重庆市', '5001', '重庆市', '500120', '璧山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50', '重庆市', '5001', '重庆市', '500151', '铜梁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500152', '5001', '00,50,5001', '潼南区', '50', '重庆市', '5001', '重庆市', '500152', '潼南区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50', '重庆市', '5001', '重庆市', '500153', '荣昌区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500154', '5001', '00,50,5001', '开州区', '50', '重庆市', '5001', '重庆市', '500154', '开州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500155', '5001', '00,50,5001', '梁平区', '50', '重庆市', '5001', '重庆市', '500155', '梁平区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500156', '5001', '00,50,5001', '武隆区', '50', '重庆市', '5001', '重庆市', '500156', '武隆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5002', '50', '00,50', '重庆市', '50', '重庆市', '5002', '重庆市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('500229', '5002', '00,50,5002', '城口县', '50', '重庆市', '5002', '重庆市', '500229', '城口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500230', '5002', '00,50,5002', '丰都县', '50', '重庆市', '5002', '重庆市', '500230', '丰都县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500231', '5002', '00,50,5002', '垫江县', '50', '重庆市', '5002', '重庆市', '500231', '垫江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500233', '5002', '00,50,5002', '忠县', '50', '重庆市', '5002', '重庆市', '500233', '忠县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500235', '5002', '00,50,5002', '云阳县', '50', '重庆市', '5002', '重庆市', '500235', '云阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500236', '5002', '00,50,5002', '奉节县', '50', '重庆市', '5002', '重庆市', '500236', '奉节县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500237', '5002', '00,50,5002', '巫山县', '50', '重庆市', '5002', '重庆市', '500237', '巫山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50', '重庆市', '5002', '重庆市', '500238', '巫溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50', '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50', '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50', '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('51', '00', '00', '四川省', '51', '四川省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('5101', '51', '00,51', '成都市', '51', '四川省', '5101', '成都市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510104', '5101', '00,51,5101', '锦江区', '51', '四川省', '5101', '成都市', '510104', '锦江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510105', '5101', '00,51,5101', '青羊区', '51', '四川省', '5101', '成都市', '510105', '青羊区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510106', '5101', '00,51,5101', '金牛区', '51', '四川省', '5101', '成都市', '510106', '金牛区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510107', '5101', '00,51,5101', '武侯区', '51', '四川省', '5101', '成都市', '510107', '武侯区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510108', '5101', '00,51,5101', '成华区', '51', '四川省', '5101', '成都市', '510108', '成华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51', '四川省', '5101', '成都市', '510112', '龙泉驿区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510113', '5101', '00,51,5101', '青白江区', '51', '四川省', '5101', '成都市', '510113', '青白江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510114', '5101', '00,51,5101', '新都区', '51', '四川省', '5101', '成都市', '510114', '新都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510115', '5101', '00,51,5101', '温江区', '51', '四川省', '5101', '成都市', '510115', '温江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510116', '5101', '00,51,5101', '双流区', '51', '四川省', '5101', '成都市', '510116', '双流区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510117', '5101', '00,51,5101', '郫都区', '51', '四川省', '5101', '成都市', '510117', '郫都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510121', '5101', '00,51,5101', '金堂县', '51', '四川省', '5101', '成都市', '510121', '金堂县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510129', '5101', '00,51,5101', '大邑县', '51', '四川省', '5101', '成都市', '510129', '大邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51', '四川省', '5101', '成都市', '510131', '蒲江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510132', '5101', '00,51,5101', '新津县', '51', '四川省', '5101', '成都市', '510132', '新津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51', '四川省', '5101', '成都市', '510181', '都江堰市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510182', '5101', '00,51,5101', '彭州市', '51', '四川省', '5101', '成都市', '510182', '彭州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51', '四川省', '5101', '成都市', '510183', '邛崃市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510184', '5101', '00,51,5101', '崇州市', '51', '四川省', '5101', '成都市', '510184', '崇州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510185', '5101', '00,51,5101', '简阳市', '51', '四川省', '5101', '成都市', '510185', '简阳市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5103', '51', '00,51', '自贡市', '51', '四川省', '5103', '自贡市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510302', '5103', '00,51,5103', '自流井区', '51', '四川省', '5103', '自贡市', '510302', '自流井区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510303', '5103', '00,51,5103', '贡井区', '51', '四川省', '5103', '自贡市', '510303', '贡井区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510304', '5103', '00,51,5103', '大安区', '51', '四川省', '5103', '自贡市', '510304', '大安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51', '四川省', '5103', '自贡市', '510311', '沿滩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510321', '5103', '00,51,5103', '荣县', '51', '四川省', '5103', '自贡市', '510321', '荣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510322', '5103', '00,51,5103', '富顺县', '51', '四川省', '5103', '自贡市', '510322', '富顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5104', '51', '00,51', '攀枝花市', '51', '四川省', '5104', '攀枝花市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510402', '5104', '00,51,5104', '东区', '51', '四川省', '5104', '攀枝花市', '510402', '东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510403', '5104', '00,51,5104', '西区', '51', '四川省', '5104', '攀枝花市', '510403', '西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510411', '5104', '00,51,5104', '仁和区', '51', '四川省', '5104', '攀枝花市', '510411', '仁和区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510421', '5104', '00,51,5104', '米易县', '51', '四川省', '5104', '攀枝花市', '510421', '米易县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510422', '5104', '00,51,5104', '盐边县', '51', '四川省', '5104', '攀枝花市', '510422', '盐边县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5105', '51', '00,51', '泸州市', '51', '四川省', '5105', '泸州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510502', '5105', '00,51,5105', '江阳区', '51', '四川省', '5105', '泸州市', '510502', '江阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51', '四川省', '5105', '泸州市', '510503', '纳溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51', '四川省', '5105', '泸州市', '510504', '龙马潭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510521', '5105', '00,51,5105', '泸县', '51', '四川省', '5105', '泸州市', '510521', '泸县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510522', '5105', '00,51,5105', '合江县', '51', '四川省', '5105', '泸州市', '510522', '合江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510524', '5105', '00,51,5105', '叙永县', '51', '四川省', '5105', '泸州市', '510524', '叙永县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51', '四川省', '5105', '泸州市', '510525', '古蔺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5106', '51', '00,51', '德阳市', '51', '四川省', '5106', '德阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51', '四川省', '5106', '德阳市', '510603', '旌阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510604', '5106', '00,51,5106', '罗江区', '51', '四川省', '5106', '德阳市', '510604', '罗江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510623', '5106', '00,51,5106', '中江县', '51', '四川省', '5106', '德阳市', '510623', '中江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510681', '5106', '00,51,5106', '广汉市', '51', '四川省', '5106', '德阳市', '510681', '广汉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510682', '5106', '00,51,5106', '什邡市', '51', '四川省', '5106', '德阳市', '510682', '什邡市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51', '四川省', '5106', '德阳市', '510683', '绵竹市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5107', '51', '00,51', '绵阳市', '51', '四川省', '5107', '绵阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510703', '5107', '00,51,5107', '涪城区', '51', '四川省', '5107', '绵阳市', '510703', '涪城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510704', '5107', '00,51,5107', '游仙区', '51', '四川省', '5107', '绵阳市', '510704', '游仙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510705', '5107', '00,51,5107', '安州区', '51', '四川省', '5107', '绵阳市', '510705', '安州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510722', '5107', '00,51,5107', '三台县', '51', '四川省', '5107', '绵阳市', '510722', '三台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51', '四川省', '5107', '绵阳市', '510723', '盐亭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51', '四川省', '5107', '绵阳市', '510725', '梓潼县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51', '四川省', '5107', '绵阳市', '510726', '北川羌族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510727', '5107', '00,51,5107', '平武县', '51', '四川省', '5107', '绵阳市', '510727', '平武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510781', '5107', '00,51,5107', '江油市', '51', '四川省', '5107', '绵阳市', '510781', '江油市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5108', '51', '00,51', '广元市', '51', '四川省', '5108', '广元市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510802', '5108', '00,51,5108', '利州区', '51', '四川省', '5108', '广元市', '510802', '利州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510811', '5108', '00,51,5108', '昭化区', '51', '四川省', '5108', '广元市', '510811', '昭化区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510812', '5108', '00,51,5108', '朝天区', '51', '四川省', '5108', '广元市', '510812', '朝天区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51', '四川省', '5108', '广元市', '510821', '旺苍县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510822', '5108', '00,51,5108', '青川县', '51', '四川省', '5108', '广元市', '510822', '青川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51', '四川省', '5108', '广元市', '510823', '剑阁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51', '四川省', '5108', '广元市', '510824', '苍溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5109', '51', '00,51', '遂宁市', '51', '四川省', '5109', '遂宁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('510903', '5109', '00,51,5109', '船山区', '51', '四川省', '5109', '遂宁市', '510903', '船山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510904', '5109', '00,51,5109', '安居区', '51', '四川省', '5109', '遂宁市', '510904', '安居区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51', '四川省', '5109', '遂宁市', '510921', '蓬溪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510923', '5109', '00,51,5109', '大英县', '51', '四川省', '5109', '遂宁市', '510923', '大英县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('510981', '5109', '00,51,5109', '射洪市', '51', '四川省', '5109', '遂宁市', '510981', '射洪市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5110', '51', '00,51', '内江市', '51', '四川省', '5110', '内江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511002', '5110', '00,51,5110', '市中区', '51', '四川省', '5110', '内江市', '511002', '市中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511011', '5110', '00,51,5110', '东兴区', '51', '四川省', '5110', '内江市', '511011', '东兴区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511024', '5110', '00,51,5110', '威远县', '51', '四川省', '5110', '内江市', '511024', '威远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511025', '5110', '00,51,5110', '资中县', '51', '四川省', '5110', '内江市', '511025', '资中县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51', '四川省', '5110', '内江市', '511083', '隆昌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5111', '51', '00,51', '乐山市', '51', '四川省', '5111', '乐山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511102', '5111', '00,51,5111', '市中区', '51', '四川省', '5111', '乐山市', '511102', '市中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51', '四川省', '5111', '乐山市', '511111', '沙湾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51', '四川省', '5111', '乐山市', '511112', '五通桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511113', '5111', '00,51,5111', '金口河区', '51', '四川省', '5111', '乐山市', '511113', '金口河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511123', '5111', '00,51,5111', '犍为县', '51', '四川省', '5111', '乐山市', '511123', '犍为县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511124', '5111', '00,51,5111', '井研县', '51', '四川省', '5111', '乐山市', '511124', '井研县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511126', '5111', '00,51,5111', '夹江县', '51', '四川省', '5111', '乐山市', '511126', '夹江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511129', '5111', '00,51,5111', '沐川县', '51', '四川省', '5111', '乐山市', '511129', '沐川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51', '四川省', '5111', '乐山市', '511132', '峨边彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51', '四川省', '5111', '乐山市', '511133', '马边彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51', '四川省', '5111', '乐山市', '511181', '峨眉山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5113', '51', '00,51', '南充市', '51', '四川省', '5113', '南充市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51', '四川省', '5113', '南充市', '511302', '顺庆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511303', '5113', '00,51,5113', '高坪区', '51', '四川省', '5113', '南充市', '511303', '高坪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51', '四川省', '5113', '南充市', '511304', '嘉陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511321', '5113', '00,51,5113', '南部县', '51', '四川省', '5113', '南充市', '511321', '南部县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511322', '5113', '00,51,5113', '营山县', '51', '四川省', '5113', '南充市', '511322', '营山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51', '四川省', '5113', '南充市', '511323', '蓬安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51', '四川省', '5113', '南充市', '511324', '仪陇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511325', '5113', '00,51,5113', '西充县', '51', '四川省', '5113', '南充市', '511325', '西充县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511381', '5113', '00,51,5113', '阆中市', '51', '四川省', '5113', '南充市', '511381', '阆中市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5114', '51', '00,51', '眉山市', '51', '四川省', '5114', '眉山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511402', '5114', '00,51,5114', '东坡区', '51', '四川省', '5114', '眉山市', '511402', '东坡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511403', '5114', '00,51,5114', '彭山区', '51', '四川省', '5114', '眉山市', '511403', '彭山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51', '四川省', '5114', '眉山市', '511421', '仁寿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51', '四川省', '5114', '眉山市', '511423', '洪雅县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51', '四川省', '5114', '眉山市', '511424', '丹棱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511425', '5114', '00,51,5114', '青神县', '51', '四川省', '5114', '眉山市', '511425', '青神县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5115', '51', '00,51', '宜宾市', '51', '四川省', '5115', '宜宾市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51', '四川省', '5115', '宜宾市', '511502', '翠屏区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511503', '5115', '00,51,5115', '南溪区', '51', '四川省', '5115', '宜宾市', '511503', '南溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511504', '5115', '00,51,5115', '叙州区', '51', '四川省', '5115', '宜宾市', '511504', '叙州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511523', '5115', '00,51,5115', '江安县', '51', '四川省', '5115', '宜宾市', '511523', '江安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511524', '5115', '00,51,5115', '长宁县', '51', '四川省', '5115', '宜宾市', '511524', '长宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511525', '5115', '00,51,5115', '高县', '51', '四川省', '5115', '宜宾市', '511525', '高县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511526', '5115', '00,51,5115', '珙县', '51', '四川省', '5115', '宜宾市', '511526', '珙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511527', '5115', '00,51,5115', '筠连县', '51', '四川省', '5115', '宜宾市', '511527', '筠连县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511528', '5115', '00,51,5115', '兴文县', '51', '四川省', '5115', '宜宾市', '511528', '兴文县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511529', '5115', '00,51,5115', '屏山县', '51', '四川省', '5115', '宜宾市', '511529', '屏山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5116', '51', '00,51', '广安市', '51', '四川省', '5116', '广安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511602', '5116', '00,51,5116', '广安区', '51', '四川省', '5116', '广安市', '511602', '广安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511603', '5116', '00,51,5116', '前锋区', '51', '四川省', '5116', '广安市', '511603', '前锋区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511621', '5116', '00,51,5116', '岳池县', '51', '四川省', '5116', '广安市', '511621', '岳池县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511622', '5116', '00,51,5116', '武胜县', '51', '四川省', '5116', '广安市', '511622', '武胜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511623', '5116', '00,51,5116', '邻水县', '51', '四川省', '5116', '广安市', '511623', '邻水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51', '四川省', '5116', '广安市', '511681', '华蓥市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5117', '51', '00,51', '达州市', '51', '四川省', '5117', '达州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511702', '5117', '00,51,5117', '通川区', '51', '四川省', '5117', '达州市', '511702', '通川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511703', '5117', '00,51,5117', '达川区', '51', '四川省', '5117', '达州市', '511703', '达川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51', '四川省', '5117', '达州市', '511722', '宣汉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511723', '5117', '00,51,5117', '开江县', '51', '四川省', '5117', '达州市', '511723', '开江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511724', '5117', '00,51,5117', '大竹县', '51', '四川省', '5117', '达州市', '511724', '大竹县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511725', '5117', '00,51,5117', '渠县', '51', '四川省', '5117', '达州市', '511725', '渠县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511781', '5117', '00,51,5117', '万源市', '51', '四川省', '5117', '达州市', '511781', '万源市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5118', '51', '00,51', '雅安市', '51', '四川省', '5118', '雅安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511802', '5118', '00,51,5118', '雨城区', '51', '四川省', '5118', '雅安市', '511802', '雨城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511803', '5118', '00,51,5118', '名山区', '51', '四川省', '5118', '雅安市', '511803', '名山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511822', '5118', '00,51,5118', '荥经县', '51', '四川省', '5118', '雅安市', '511822', '荥经县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511823', '5118', '00,51,5118', '汉源县', '51', '四川省', '5118', '雅安市', '511823', '汉源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511824', '5118', '00,51,5118', '石棉县', '51', '四川省', '5118', '雅安市', '511824', '石棉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511825', '5118', '00,51,5118', '天全县', '51', '四川省', '5118', '雅安市', '511825', '天全县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511826', '5118', '00,51,5118', '芦山县', '51', '四川省', '5118', '雅安市', '511826', '芦山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51', '四川省', '5118', '雅安市', '511827', '宝兴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5119', '51', '00,51', '巴中市', '51', '四川省', '5119', '巴中市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('511902', '5119', '00,51,5119', '巴州区', '51', '四川省', '5119', '巴中市', '511902', '巴州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51', '四川省', '5119', '巴中市', '511903', '恩阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511921', '5119', '00,51,5119', '通江县', '51', '四川省', '5119', '巴中市', '511921', '通江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511922', '5119', '00,51,5119', '南江县', '51', '四川省', '5119', '巴中市', '511922', '南江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('511923', '5119', '00,51,5119', '平昌县', '51', '四川省', '5119', '巴中市', '511923', '平昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5120', '51', '00,51', '资阳市', '51', '四川省', '5120', '资阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('512002', '5120', '00,51,5120', '雁江区', '51', '四川省', '5120', '资阳市', '512002', '雁江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('512021', '5120', '00,51,5120', '安岳县', '51', '四川省', '5120', '资阳市', '512021', '安岳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('512022', '5120', '00,51,5120', '乐至县', '51', '四川省', '5120', '资阳市', '512022', '乐至县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51', '四川省', '5132', '阿坝藏族羌族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513221', '5132', '00,51,5132', '汶川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513222', '5132', '00,51,5132', '理县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513223', '5132', '00,51,5132', '茂县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513224', '5132', '00,51,5132', '松潘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513226', '5132', '00,51,5132', '金川县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513227', '5132', '00,51,5132', '小金县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513228', '5132', '00,51,5132', '黑水县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513233', '5132', '00,51,5132', '红原县', '51', '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51', '四川省', '5133', '甘孜藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('513301', '5133', '00,51,5133', '康定市', '51', '四川省', '5133', '甘孜藏族自治州', '513301', '康定市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513322', '5133', '00,51,5133', '泸定县', '51', '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51', '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513324', '5133', '00,51,5133', '九龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513325', '5133', '00,51,5133', '雅江县', '51', '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513326', '5133', '00,51,5133', '道孚县', '51', '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51', '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51', '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513329', '5133', '00,51,5133', '新龙县', '51', '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513330', '5133', '00,51,5133', '德格县', '51', '四川省', '5133', '甘孜藏族自治州', '513330', '德格县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513331', '5133', '00,51,5133', '白玉县', '51', '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513332', '5133', '00,51,5133', '石渠县', '51', '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513333', '5133', '00,51,5133', '色达县', '51', '四川省', '5133', '甘孜藏族自治州', '513333', '色达县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513334', '5133', '00,51,5133', '理塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51', '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513336', '5133', '00,51,5133', '乡城县', '51', '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513337', '5133', '00,51,5133', '稻城县', '51', '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513338', '5133', '00,51,5133', '得荣县', '51', '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51', '四川省', '5134', '凉山彝族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('513401', '5134', '00,51,5134', '西昌市', '51', '四川省', '5134', '凉山彝族自治州', '513401', '西昌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51', '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513423', '5134', '00,51,5134', '盐源县', '51', '四川省', '5134', '凉山彝族自治州', '513423', '盐源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513424', '5134', '00,51,5134', '德昌县', '51', '四川省', '5134', '凉山彝族自治州', '513424', '德昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513425', '5134', '00,51,5134', '会理县', '51', '四川省', '5134', '凉山彝族自治州', '513425', '会理县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513426', '5134', '00,51,5134', '会东县', '51', '四川省', '5134', '凉山彝族自治州', '513426', '会东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513427', '5134', '00,51,5134', '宁南县', '51', '四川省', '5134', '凉山彝族自治州', '513427', '宁南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513428', '5134', '00,51,5134', '普格县', '51', '四川省', '5134', '凉山彝族自治州', '513428', '普格县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513429', '5134', '00,51,5134', '布拖县', '51', '四川省', '5134', '凉山彝族自治州', '513429', '布拖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513430', '5134', '00,51,5134', '金阳县', '51', '四川省', '5134', '凉山彝族自治州', '513430', '金阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51', '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513432', '5134', '00,51,5134', '喜德县', '51', '四川省', '5134', '凉山彝族自治州', '513432', '喜德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51', '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513434', '5134', '00,51,5134', '越西县', '51', '四川省', '5134', '凉山彝族自治州', '513434', '越西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51', '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513436', '5134', '00,51,5134', '美姑县', '51', '四川省', '5134', '凉山彝族自治州', '513436', '美姑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('513437', '5134', '00,51,5134', '雷波县', '51', '四川省', '5134', '凉山彝族自治州', '513437', '雷波县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('52', '00', '00', '贵州省', '52', '贵州省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('5201', '52', '00,52', '贵阳市', '52', '贵州省', '5201', '贵阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('520102', '5201', '00,52,5201', '南明区', '52', '贵州省', '5201', '贵阳市', '520102', '南明区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520103', '5201', '00,52,5201', '云岩区', '52', '贵州省', '5201', '贵阳市', '520103', '云岩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520111', '5201', '00,52,5201', '花溪区', '52', '贵州省', '5201', '贵阳市', '520111', '花溪区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520112', '5201', '00,52,5201', '乌当区', '52', '贵州省', '5201', '贵阳市', '520112', '乌当区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520113', '5201', '00,52,5201', '白云区', '52', '贵州省', '5201', '贵阳市', '520113', '白云区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52', '贵州省', '5201', '贵阳市', '520115', '观山湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520121', '5201', '00,52,5201', '开阳县', '52', '贵州省', '5201', '贵阳市', '520121', '开阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520122', '5201', '00,52,5201', '息烽县', '52', '贵州省', '5201', '贵阳市', '520122', '息烽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520123', '5201', '00,52,5201', '修文县', '52', '贵州省', '5201', '贵阳市', '520123', '修文县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520181', '5201', '00,52,5201', '清镇市', '52', '贵州省', '5201', '贵阳市', '520181', '清镇市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5202', '52', '00,52', '六盘水市', '52', '贵州省', '5202', '六盘水市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('520201', '5202', '00,52,5202', '钟山区', '52', '贵州省', '5202', '六盘水市', '520201', '钟山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52', '贵州省', '5202', '六盘水市', '520203', '六枝特区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520221', '5202', '00,52,5202', '水城县', '52', '贵州省', '5202', '六盘水市', '520221', '水城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520281', '5202', '00,52,5202', '盘州市', '52', '贵州省', '5202', '六盘水市', '520281', '盘州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5203', '52', '00,52', '遵义市', '52', '贵州省', '5203', '遵义市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52', '贵州省', '5203', '遵义市', '520302', '红花岗区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520303', '5203', '00,52,5203', '汇川区', '52', '贵州省', '5203', '遵义市', '520303', '汇川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520304', '5203', '00,52,5203', '播州区', '52', '贵州省', '5203', '遵义市', '520304', '播州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52', '贵州省', '5203', '遵义市', '520322', '桐梓县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52', '贵州省', '5203', '遵义市', '520323', '绥阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520324', '5203', '00,52,5203', '正安县', '52', '贵州省', '5203', '遵义市', '520324', '正安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52', '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52', '贵州省', '5203', '遵义市', '520327', '凤冈县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52', '贵州省', '5203', '遵义市', '520328', '湄潭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520329', '5203', '00,52,5203', '余庆县', '52', '贵州省', '5203', '遵义市', '520329', '余庆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520330', '5203', '00,52,5203', '习水县', '52', '贵州省', '5203', '遵义市', '520330', '习水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520381', '5203', '00,52,5203', '赤水市', '52', '贵州省', '5203', '遵义市', '520381', '赤水市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52', '贵州省', '5203', '遵义市', '520382', '仁怀市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5204', '52', '00,52', '安顺市', '52', '贵州省', '5204', '安顺市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('520402', '5204', '00,52,5204', '西秀区', '52', '贵州省', '5204', '安顺市', '520402', '西秀区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520403', '5204', '00,52,5204', '平坝区', '52', '贵州省', '5204', '安顺市', '520403', '平坝区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520422', '5204', '00,52,5204', '普定县', '52', '贵州省', '5204', '安顺市', '520422', '普定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52', '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52', '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5205', '52', '00,52', '毕节市', '52', '贵州省', '5205', '毕节市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('520502', '5205', '00,52,5205', '七星关区', '52', '贵州省', '5205', '毕节市', '520502', '七星关区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520521', '5205', '00,52,5205', '大方县', '52', '贵州省', '5205', '毕节市', '520521', '大方县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520522', '5205', '00,52,5205', '黔西县', '52', '贵州省', '5205', '毕节市', '520522', '黔西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520523', '5205', '00,52,5205', '金沙县', '52', '贵州省', '5205', '毕节市', '520523', '金沙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520524', '5205', '00,52,5205', '织金县', '52', '贵州省', '5205', '毕节市', '520524', '织金县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52', '贵州省', '5205', '毕节市', '520525', '纳雍县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52', '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520527', '5205', '00,52,5205', '赫章县', '52', '贵州省', '5205', '毕节市', '520527', '赫章县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5206', '52', '00,52', '铜仁市', '52', '贵州省', '5206', '铜仁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('520602', '5206', '00,52,5206', '碧江区', '52', '贵州省', '5206', '铜仁市', '520602', '碧江区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520603', '5206', '00,52,5206', '万山区', '52', '贵州省', '5206', '铜仁市', '520603', '万山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520621', '5206', '00,52,5206', '江口县', '52', '贵州省', '5206', '铜仁市', '520621', '江口县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52', '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520623', '5206', '00,52,5206', '石阡县', '52', '贵州省', '5206', '铜仁市', '520623', '石阡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520624', '5206', '00,52,5206', '思南县', '52', '贵州省', '5206', '铜仁市', '520624', '思南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52', '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520626', '5206', '00,52,5206', '德江县', '52', '贵州省', '5206', '铜仁市', '520626', '德江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52', '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52', '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('522301', '5223', '00,52,5223', '兴义市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522323', '5223', '00,52,5223', '普安县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522326', '5223', '00,52,5223', '望谟县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522327', '5223', '00,52,5223', '册亨县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522328', '5223', '00,52,5223', '安龙县', '52', '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('522601', '5226', '00,52,5226', '凯里市', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522622', '5226', '00,52,5226', '黄平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522623', '5226', '00,52,5226', '施秉县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522624', '5226', '00,52,5226', '三穗县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522625', '5226', '00,52,5226', '镇远县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522627', '5226', '00,52,5226', '天柱县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522629', '5226', '00,52,5226', '剑河县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522630', '5226', '00,52,5226', '台江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522631', '5226', '00,52,5226', '黎平县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522632', '5226', '00,52,5226', '榕江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522633', '5226', '00,52,5226', '从江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522634', '5226', '00,52,5226', '雷山县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522635', '5226', '00,52,5226', '麻江县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52', '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52', '贵州省', '5227', '黔南布依族苗族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('522701', '5227', '00,52,5227', '都匀市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522702', '5227', '00,52,5227', '福泉市', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522722', '5227', '00,52,5227', '荔波县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522723', '5227', '00,52,5227', '贵定县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522726', '5227', '00,52,5227', '独山县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522727', '5227', '00,52,5227', '平塘县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522729', '5227', '00,52,5227', '长顺县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522730', '5227', '00,52,5227', '龙里县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522731', '5227', '00,52,5227', '惠水县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52', '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('53', '00', '00', '云南省', '53', '云南省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('5301', '53', '00,53', '昆明市', '53', '云南省', '5301', '昆明市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530102', '5301', '00,53,5301', '五华区', '53', '云南省', '5301', '昆明市', '530102', '五华区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53', '云南省', '5301', '昆明市', '530103', '盘龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530111', '5301', '00,53,5301', '官渡区', '53', '云南省', '5301', '昆明市', '530111', '官渡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530112', '5301', '00,53,5301', '西山区', '53', '云南省', '5301', '昆明市', '530112', '西山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530113', '5301', '00,53,5301', '东川区', '53', '云南省', '5301', '昆明市', '530113', '东川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53', '云南省', '5301', '昆明市', '530114', '呈贡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53', '云南省', '5301', '昆明市', '530115', '晋宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530124', '5301', '00,53,5301', '富民县', '53', '云南省', '5301', '昆明市', '530124', '富民县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530125', '5301', '00,53,5301', '宜良县', '53', '云南省', '5301', '昆明市', '530125', '宜良县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53', '云南省', '5301', '昆明市', '530126', '石林彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53', '云南省', '5301', '昆明市', '530127', '嵩明县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53', '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53', '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530181', '5301', '00,53,5301', '安宁市', '53', '云南省', '5301', '昆明市', '530181', '安宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5303', '53', '00,53', '曲靖市', '53', '云南省', '5303', '曲靖市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53', '云南省', '5303', '曲靖市', '530302', '麒麟区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530303', '5303', '00,53,5303', '沾益区', '53', '云南省', '5303', '曲靖市', '530303', '沾益区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530304', '5303', '00,53,5303', '马龙区', '53', '云南省', '5303', '曲靖市', '530304', '马龙区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530322', '5303', '00,53,5303', '陆良县', '53', '云南省', '5303', '曲靖市', '530322', '陆良县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530323', '5303', '00,53,5303', '师宗县', '53', '云南省', '5303', '曲靖市', '530323', '师宗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530324', '5303', '00,53,5303', '罗平县', '53', '云南省', '5303', '曲靖市', '530324', '罗平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530325', '5303', '00,53,5303', '富源县', '53', '云南省', '5303', '曲靖市', '530325', '富源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530326', '5303', '00,53,5303', '会泽县', '53', '云南省', '5303', '曲靖市', '530326', '会泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530381', '5303', '00,53,5303', '宣威市', '53', '云南省', '5303', '曲靖市', '530381', '宣威市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5304', '53', '00,53', '玉溪市', '53', '云南省', '5304', '玉溪市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530402', '5304', '00,53,5304', '红塔区', '53', '云南省', '5304', '玉溪市', '530402', '红塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530403', '5304', '00,53,5304', '江川区', '53', '云南省', '5304', '玉溪市', '530403', '江川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530423', '5304', '00,53,5304', '通海县', '53', '云南省', '5304', '玉溪市', '530423', '通海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530424', '5304', '00,53,5304', '华宁县', '53', '云南省', '5304', '玉溪市', '530424', '华宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530425', '5304', '00,53,5304', '易门县', '53', '云南省', '5304', '玉溪市', '530425', '易门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53', '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53', '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530481', '5304', '00,53,5304', '澄江市', '53', '云南省', '5304', '玉溪市', '530481', '澄江市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5305', '53', '00,53', '保山市', '53', '云南省', '5305', '保山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53', '云南省', '5305', '保山市', '530502', '隆阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530521', '5305', '00,53,5305', '施甸县', '53', '云南省', '5305', '保山市', '530521', '施甸县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53', '云南省', '5305', '保山市', '530523', '龙陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53', '云南省', '5305', '保山市', '530524', '昌宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53', '云南省', '5305', '保山市', '530581', '腾冲市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5306', '53', '00,53', '昭通市', '53', '云南省', '5306', '昭通市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53', '云南省', '5306', '昭通市', '530602', '昭阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53', '云南省', '5306', '昭通市', '530621', '鲁甸县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530622', '5306', '00,53,5306', '巧家县', '53', '云南省', '5306', '昭通市', '530622', '巧家县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530623', '5306', '00,53,5306', '盐津县', '53', '云南省', '5306', '昭通市', '530623', '盐津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530624', '5306', '00,53,5306', '大关县', '53', '云南省', '5306', '昭通市', '530624', '大关县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530625', '5306', '00,53,5306', '永善县', '53', '云南省', '5306', '昭通市', '530625', '永善县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530626', '5306', '00,53,5306', '绥江县', '53', '云南省', '5306', '昭通市', '530626', '绥江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53', '云南省', '5306', '昭通市', '530627', '镇雄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530628', '5306', '00,53,5306', '彝良县', '53', '云南省', '5306', '昭通市', '530628', '彝良县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530629', '5306', '00,53,5306', '威信县', '53', '云南省', '5306', '昭通市', '530629', '威信县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530681', '5306', '00,53,5306', '水富市', '53', '云南省', '5306', '昭通市', '530681', '水富市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5307', '53', '00,53', '丽江市', '53', '云南省', '5307', '丽江市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530702', '5307', '00,53,5307', '古城区', '53', '云南省', '5307', '丽江市', '530702', '古城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53', '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530722', '5307', '00,53,5307', '永胜县', '53', '云南省', '5307', '丽江市', '530722', '永胜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530723', '5307', '00,53,5307', '华坪县', '53', '云南省', '5307', '丽江市', '530723', '华坪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53', '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5308', '53', '00,53', '普洱市', '53', '云南省', '5308', '普洱市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530802', '5308', '00,53,5308', '思茅区', '53', '云南省', '5308', '普洱市', '530802', '思茅区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53', '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53', '云南省', '5308', '普洱市', '530823', '景东彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53', '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53', '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53', '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53', '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53', '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53', '云南省', '5308', '普洱市', '530829', '西盟佤族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5309', '53', '00,53', '临沧市', '53', '云南省', '5309', '临沧市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('530902', '5309', '00,53,5309', '临翔区', '53', '云南省', '5309', '临沧市', '530902', '临翔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53', '云南省', '5309', '临沧市', '530921', '凤庆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530922', '5309', '00,53,5309', '云县', '53', '云南省', '5309', '临沧市', '530922', '云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530923', '5309', '00,53,5309', '永德县', '53', '云南省', '5309', '临沧市', '530923', '永德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530924', '5309', '00,53,5309', '镇康县', '53', '云南省', '5309', '临沧市', '530924', '镇康县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53', '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53', '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53', '云南省', '5309', '临沧市', '530927', '沧源佤族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53', '云南省', '5323', '楚雄彝族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53', '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532322', '5323', '00,53,5323', '双柏县', '53', '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532323', '5323', '00,53,5323', '牟定县', '53', '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532324', '5323', '00,53,5323', '南华县', '53', '云南省', '5323', '楚雄彝族自治州', '532324', '南华县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532325', '5323', '00,53,5323', '姚安县', '53', '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532326', '5323', '00,53,5323', '大姚县', '53', '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532327', '5323', '00,53,5323', '永仁县', '53', '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532328', '5323', '00,53,5323', '元谋县', '53', '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532329', '5323', '00,53,5323', '武定县', '53', '云南省', '5323', '楚雄彝族自治州', '532329', '武定县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53', '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53', '云南省', '5325', '红河哈尼族彝族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('532501', '5325', '00,53,5325', '个旧市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532502', '5325', '00,53,5325', '开远市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532524', '5325', '00,53,5325', '建水县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532525', '5325', '00,53,5325', '石屏县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532527', '5325', '00,53,5325', '泸西县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532528', '5325', '00,53,5325', '元阳县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532529', '5325', '00,53,5325', '红河县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532531', '5325', '00,53,5325', '绿春县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53', '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53', '云南省', '5326', '文山壮族苗族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('532601', '5326', '00,53,5326', '文山市', '53', '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532622', '5326', '00,53,5326', '砚山县', '53', '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532623', '5326', '00,53,5326', '西畴县', '53', '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53', '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532625', '5326', '00,53,5326', '马关县', '53', '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532626', '5326', '00,53,5326', '丘北县', '53', '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532627', '5326', '00,53,5326', '广南县', '53', '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532628', '5326', '00,53,5326', '富宁县', '53', '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53', '云南省', '5328', '西双版纳傣族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('532801', '5328', '00,53,5328', '景洪市', '53', '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532822', '5328', '00,53,5328', '勐海县', '53', '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53', '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5329', '53', '00,53', '大理白族自治州', '53', '云南省', '5329', '大理白族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('532901', '5329', '00,53,5329', '大理市', '53', '云南省', '5329', '大理白族自治州', '532901', '大理市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532923', '5329', '00,53,5329', '祥云县', '53', '云南省', '5329', '大理白族自治州', '532923', '祥云县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532924', '5329', '00,53,5329', '宾川县', '53', '云南省', '5329', '大理白族自治州', '532924', '宾川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53', '云南省', '5329', '大理白族自治州', '532925', '弥渡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53', '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53', '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532928', '5329', '00,53,5329', '永平县', '53', '云南省', '5329', '大理白族自治州', '532928', '永平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532929', '5329', '00,53,5329', '云龙县', '53', '云南省', '5329', '大理白族自治州', '532929', '云龙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532930', '5329', '00,53,5329', '洱源县', '53', '云南省', '5329', '大理白族自治州', '532930', '洱源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532931', '5329', '00,53,5329', '剑川县', '53', '云南省', '5329', '大理白族自治州', '532931', '剑川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53', '云南省', '5329', '大理白族自治州', '532932', '鹤庆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53', '云南省', '5331', '德宏傣族景颇族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533103', '5331', '00,53,5331', '芒市', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533122', '5331', '00,53,5331', '梁河县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533123', '5331', '00,53,5331', '盈江县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533124', '5331', '00,53,5331', '陇川县', '53', '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53', '云南省', '5333', '怒江傈僳族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('533301', '5333', '00,53,5333', '泸水市', '53', '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533323', '5333', '00,53,5333', '福贡县', '53', '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53', '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53', '云南省', '5334', '迪庆藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53', '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533422', '5334', '00,53,5334', '德钦县', '53', '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53', '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('54', '00', '00', '西藏自治区', '54', '西藏自治区', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('5401', '54', '00,54', '拉萨市', '54', '西藏自治区', '5401', '拉萨市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('540102', '5401', '00,54,5401', '城关区', '54', '西藏自治区', '5401', '拉萨市', '540102', '城关区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54', '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540104', '5401', '00,54,5401', '达孜区', '54', '西藏自治区', '5401', '拉萨市', '540104', '达孜区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540121', '5401', '00,54,5401', '林周县', '54', '西藏自治区', '5401', '拉萨市', '540121', '林周县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540122', '5401', '00,54,5401', '当雄县', '54', '西藏自治区', '5401', '拉萨市', '540122', '当雄县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540123', '5401', '00,54,5401', '尼木县', '54', '西藏自治区', '5401', '拉萨市', '540123', '尼木县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540124', '5401', '00,54,5401', '曲水县', '54', '西藏自治区', '5401', '拉萨市', '540124', '曲水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54', '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5402', '54', '00,54', '日喀则市', '54', '西藏自治区', '5402', '日喀则市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54', '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540221', '5402', '00,54,5402', '南木林县', '54', '西藏自治区', '5402', '日喀则市', '540221', '南木林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540222', '5402', '00,54,5402', '江孜县', '54', '西藏自治区', '5402', '日喀则市', '540222', '江孜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540223', '5402', '00,54,5402', '定日县', '54', '西藏自治区', '5402', '日喀则市', '540223', '定日县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54', '西藏自治区', '5402', '日喀则市', '540224', '萨迦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54', '西藏自治区', '5402', '日喀则市', '540225', '拉孜县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54', '西藏自治区', '5402', '日喀则市', '540226', '昂仁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54', '西藏自治区', '5402', '日喀则市', '540227', '谢通门县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540228', '5402', '00,54,5402', '白朗县', '54', '西藏自治区', '5402', '日喀则市', '540228', '白朗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540229', '5402', '00,54,5402', '仁布县', '54', '西藏自治区', '5402', '日喀则市', '540229', '仁布县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540230', '5402', '00,54,5402', '康马县', '54', '西藏自治区', '5402', '日喀则市', '540230', '康马县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540231', '5402', '00,54,5402', '定结县', '54', '西藏自治区', '5402', '日喀则市', '540231', '定结县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54', '西藏自治区', '5402', '日喀则市', '540232', '仲巴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540233', '5402', '00,54,5402', '亚东县', '54', '西藏自治区', '5402', '日喀则市', '540233', '亚东县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54', '西藏自治区', '5402', '日喀则市', '540234', '吉隆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54', '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54', '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54', '西藏自治区', '5402', '日喀则市', '540237', '岗巴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5403', '54', '00,54', '昌都市', '54', '西藏自治区', '5403', '昌都市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('540302', '5403', '00,54,5403', '卡若区', '54', '西藏自治区', '5403', '昌都市', '540302', '卡若区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540321', '5403', '00,54,5403', '江达县', '54', '西藏自治区', '5403', '昌都市', '540321', '江达县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54', '西藏自治区', '5403', '昌都市', '540322', '贡觉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54', '西藏自治区', '5403', '昌都市', '540323', '类乌齐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540324', '5403', '00,54,5403', '丁青县', '54', '西藏自治区', '5403', '昌都市', '540324', '丁青县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540325', '5403', '00,54,5403', '察雅县', '54', '西藏自治区', '5403', '昌都市', '540325', '察雅县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540326', '5403', '00,54,5403', '八宿县', '54', '西藏自治区', '5403', '昌都市', '540326', '八宿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540327', '5403', '00,54,5403', '左贡县', '54', '西藏自治区', '5403', '昌都市', '540327', '左贡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540328', '5403', '00,54,5403', '芒康县', '54', '西藏自治区', '5403', '昌都市', '540328', '芒康县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54', '西藏自治区', '5403', '昌都市', '540329', '洛隆县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540330', '5403', '00,54,5403', '边坝县', '54', '西藏自治区', '5403', '昌都市', '540330', '边坝县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5404', '54', '00,54', '林芝市', '54', '西藏自治区', '5404', '林芝市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54', '西藏自治区', '5404', '林芝市', '540402', '巴宜区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54', '西藏自治区', '5404', '林芝市', '540421', '工布江达县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540422', '5404', '00,54,5404', '米林县', '54', '西藏自治区', '5404', '林芝市', '540422', '米林县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54', '西藏自治区', '5404', '林芝市', '540423', '墨脱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540424', '5404', '00,54,5404', '波密县', '54', '西藏自治区', '5404', '林芝市', '540424', '波密县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540425', '5404', '00,54,5404', '察隅县', '54', '西藏自治区', '5404', '林芝市', '540425', '察隅县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540426', '5404', '00,54,5404', '朗县', '54', '西藏自治区', '5404', '林芝市', '540426', '朗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5405', '54', '00,54', '山南市', '54', '西藏自治区', '5405', '山南市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('540502', '5405', '00,54,5405', '乃东区', '54', '西藏自治区', '5405', '山南市', '540502', '乃东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54', '西藏自治区', '5405', '山南市', '540521', '扎囊县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54', '西藏自治区', '5405', '山南市', '540522', '贡嘎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540523', '5405', '00,54,5405', '桑日县', '54', '西藏自治区', '5405', '山南市', '540523', '桑日县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540524', '5405', '00,54,5405', '琼结县', '54', '西藏自治区', '5405', '山南市', '540524', '琼结县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540525', '5405', '00,54,5405', '曲松县', '54', '西藏自治区', '5405', '山南市', '540525', '曲松县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540526', '5405', '00,54,5405', '措美县', '54', '西藏自治区', '5405', '山南市', '540526', '措美县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54', '西藏自治区', '5405', '山南市', '540527', '洛扎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540528', '5405', '00,54,5405', '加查县', '54', '西藏自治区', '5405', '山南市', '540528', '加查县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540529', '5405', '00,54,5405', '隆子县', '54', '西藏自治区', '5405', '山南市', '540529', '隆子县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540530', '5405', '00,54,5405', '错那县', '54', '西藏自治区', '5405', '山南市', '540530', '错那县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54', '西藏自治区', '5405', '山南市', '540531', '浪卡子县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5406', '54', '00,54', '那曲市', '54', '西藏自治区', '5406', '那曲市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('540602', '5406', '00,54,5406', '色尼区', '54', '西藏自治区', '5406', '那曲市', '540602', '色尼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54', '西藏自治区', '5406', '那曲市', '540621', '嘉黎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540622', '5406', '00,54,5406', '比如县', '54', '西藏自治区', '5406', '那曲市', '540622', '比如县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54', '西藏自治区', '5406', '那曲市', '540623', '聂荣县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540624', '5406', '00,54,5406', '安多县', '54', '西藏自治区', '5406', '那曲市', '540624', '安多县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540625', '5406', '00,54,5406', '申扎县', '54', '西藏自治区', '5406', '那曲市', '540625', '申扎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540626', '5406', '00,54,5406', '索县', '54', '西藏自治区', '5406', '那曲市', '540626', '索县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540627', '5406', '00,54,5406', '班戈县', '54', '西藏自治区', '5406', '那曲市', '540627', '班戈县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540628', '5406', '00,54,5406', '巴青县', '54', '西藏自治区', '5406', '那曲市', '540628', '巴青县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54', '西藏自治区', '5406', '那曲市', '540629', '尼玛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('540630', '5406', '00,54,5406', '双湖县', '54', '西藏自治区', '5406', '那曲市', '540630', '双湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('5425', '54', '00,54', '阿里地区', '54', '西藏自治区', '5425', '阿里地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('542521', '5425', '00,54,5425', '普兰县', '54', '西藏自治区', '5425', '阿里地区', '542521', '普兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('542522', '5425', '00,54,5425', '札达县', '54', '西藏自治区', '5425', '阿里地区', '542522', '札达县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54', '西藏自治区', '5425', '阿里地区', '542523', '噶尔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('542524', '5425', '00,54,5425', '日土县', '54', '西藏自治区', '5425', '阿里地区', '542524', '日土县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('542525', '5425', '00,54,5425', '革吉县', '54', '西藏自治区', '5425', '阿里地区', '542525', '革吉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('542526', '5425', '00,54,5425', '改则县', '54', '西藏自治区', '5425', '阿里地区', '542526', '改则县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('542527', '5425', '00,54,5425', '措勤县', '54', '西藏自治区', '5425', '阿里地区', '542527', '措勤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('61', '00', '00', '陕西省', '61', '陕西省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('6101', '61', '00,61', '西安市', '61', '陕西省', '6101', '西安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610102', '6101', '00,61,6101', '新城区', '61', '陕西省', '6101', '西安市', '610102', '新城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610103', '6101', '00,61,6101', '碑林区', '61', '陕西省', '6101', '西安市', '610103', '碑林区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61', '陕西省', '6101', '西安市', '610104', '莲湖区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61', '陕西省', '6101', '西安市', '610111', '灞桥区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610112', '6101', '00,61,6101', '未央区', '61', '陕西省', '6101', '西安市', '610112', '未央区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61', '陕西省', '6101', '西安市', '610113', '雁塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610114', '6101', '00,61,6101', '阎良区', '61', '陕西省', '6101', '西安市', '610114', '阎良区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610115', '6101', '00,61,6101', '临潼区', '61', '陕西省', '6101', '西安市', '610115', '临潼区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610116', '6101', '00,61,6101', '长安区', '61', '陕西省', '6101', '西安市', '610116', '长安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610117', '6101', '00,61,6101', '高陵区', '61', '陕西省', '6101', '西安市', '610117', '高陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61', '陕西省', '6101', '西安市', '610118', '鄠邑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61', '陕西省', '6101', '西安市', '610122', '蓝田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610124', '6101', '00,61,6101', '周至县', '61', '陕西省', '6101', '西安市', '610124', '周至县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6102', '61', '00,61', '铜川市', '61', '陕西省', '6102', '铜川市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610202', '6102', '00,61,6102', '王益区', '61', '陕西省', '6102', '铜川市', '610202', '王益区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610203', '6102', '00,61,6102', '印台区', '61', '陕西省', '6102', '铜川市', '610203', '印台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610204', '6102', '00,61,6102', '耀州区', '61', '陕西省', '6102', '铜川市', '610204', '耀州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610222', '6102', '00,61,6102', '宜君县', '61', '陕西省', '6102', '铜川市', '610222', '宜君县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6103', '61', '00,61', '宝鸡市', '61', '陕西省', '6103', '宝鸡市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61', '陕西省', '6103', '宝鸡市', '610302', '渭滨区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610303', '6103', '00,61,6103', '金台区', '61', '陕西省', '6103', '宝鸡市', '610303', '金台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61', '陕西省', '6103', '宝鸡市', '610304', '陈仓区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61', '陕西省', '6103', '宝鸡市', '610322', '凤翔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610323', '6103', '00,61,6103', '岐山县', '61', '陕西省', '6103', '宝鸡市', '610323', '岐山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610324', '6103', '00,61,6103', '扶风县', '61', '陕西省', '6103', '宝鸡市', '610324', '扶风县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610326', '6103', '00,61,6103', '眉县', '61', '陕西省', '6103', '宝鸡市', '610326', '眉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610327', '6103', '00,61,6103', '陇县', '61', '陕西省', '6103', '宝鸡市', '610327', '陇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610328', '6103', '00,61,6103', '千阳县', '61', '陕西省', '6103', '宝鸡市', '610328', '千阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610329', '6103', '00,61,6103', '麟游县', '61', '陕西省', '6103', '宝鸡市', '610329', '麟游县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610330', '6103', '00,61,6103', '凤县', '61', '陕西省', '6103', '宝鸡市', '610330', '凤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610331', '6103', '00,61,6103', '太白县', '61', '陕西省', '6103', '宝鸡市', '610331', '太白县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6104', '61', '00,61', '咸阳市', '61', '陕西省', '6104', '咸阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610402', '6104', '00,61,6104', '秦都区', '61', '陕西省', '6104', '咸阳市', '610402', '秦都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61', '陕西省', '6104', '咸阳市', '610403', '杨陵区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610404', '6104', '00,61,6104', '渭城区', '61', '陕西省', '6104', '咸阳市', '610404', '渭城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610422', '6104', '00,61,6104', '三原县', '61', '陕西省', '6104', '咸阳市', '610422', '三原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61', '陕西省', '6104', '咸阳市', '610423', '泾阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610424', '6104', '00,61,6104', '乾县', '61', '陕西省', '6104', '咸阳市', '610424', '乾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61', '陕西省', '6104', '咸阳市', '610425', '礼泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610426', '6104', '00,61,6104', '永寿县', '61', '陕西省', '6104', '咸阳市', '610426', '永寿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610428', '6104', '00,61,6104', '长武县', '61', '陕西省', '6104', '咸阳市', '610428', '长武县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61', '陕西省', '6104', '咸阳市', '610429', '旬邑县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610430', '6104', '00,61,6104', '淳化县', '61', '陕西省', '6104', '咸阳市', '610430', '淳化县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610431', '6104', '00,61,6104', '武功县', '61', '陕西省', '6104', '咸阳市', '610431', '武功县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610481', '6104', '00,61,6104', '兴平市', '61', '陕西省', '6104', '咸阳市', '610481', '兴平市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610482', '6104', '00,61,6104', '彬州市', '61', '陕西省', '6104', '咸阳市', '610482', '彬州市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6105', '61', '00,61', '渭南市', '61', '陕西省', '6105', '渭南市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610502', '6105', '00,61,6105', '临渭区', '61', '陕西省', '6105', '渭南市', '610502', '临渭区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610503', '6105', '00,61,6105', '华州区', '61', '陕西省', '6105', '渭南市', '610503', '华州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610522', '6105', '00,61,6105', '潼关县', '61', '陕西省', '6105', '渭南市', '610522', '潼关县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610523', '6105', '00,61,6105', '大荔县', '61', '陕西省', '6105', '渭南市', '610523', '大荔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610524', '6105', '00,61,6105', '合阳县', '61', '陕西省', '6105', '渭南市', '610524', '合阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610525', '6105', '00,61,6105', '澄城县', '61', '陕西省', '6105', '渭南市', '610525', '澄城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61', '陕西省', '6105', '渭南市', '610526', '蒲城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610527', '6105', '00,61,6105', '白水县', '61', '陕西省', '6105', '渭南市', '610527', '白水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610528', '6105', '00,61,6105', '富平县', '61', '陕西省', '6105', '渭南市', '610528', '富平县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610581', '6105', '00,61,6105', '韩城市', '61', '陕西省', '6105', '渭南市', '610581', '韩城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610582', '6105', '00,61,6105', '华阴市', '61', '陕西省', '6105', '渭南市', '610582', '华阴市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6106', '61', '00,61', '延安市', '61', '陕西省', '6106', '延安市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61', '陕西省', '6106', '延安市', '610602', '宝塔区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610603', '6106', '00,61,6106', '安塞区', '61', '陕西省', '6106', '延安市', '610603', '安塞区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610621', '6106', '00,61,6106', '延长县', '61', '陕西省', '6106', '延安市', '610621', '延长县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610622', '6106', '00,61,6106', '延川县', '61', '陕西省', '6106', '延安市', '610622', '延川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610625', '6106', '00,61,6106', '志丹县', '61', '陕西省', '6106', '延安市', '610625', '志丹县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610626', '6106', '00,61,6106', '吴起县', '61', '陕西省', '6106', '延安市', '610626', '吴起县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61', '陕西省', '6106', '延安市', '610627', '甘泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610628', '6106', '00,61,6106', '富县', '61', '陕西省', '6106', '延安市', '610628', '富县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610629', '6106', '00,61,6106', '洛川县', '61', '陕西省', '6106', '延安市', '610629', '洛川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610630', '6106', '00,61,6106', '宜川县', '61', '陕西省', '6106', '延安市', '610630', '宜川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61', '陕西省', '6106', '延安市', '610631', '黄龙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61', '陕西省', '6106', '延安市', '610632', '黄陵县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610681', '6106', '00,61,6106', '子长市', '61', '陕西省', '6106', '延安市', '610681', '子长市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6107', '61', '00,61', '汉中市', '61', '陕西省', '6107', '汉中市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610702', '6107', '00,61,6107', '汉台区', '61', '陕西省', '6107', '汉中市', '610702', '汉台区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610703', '6107', '00,61,6107', '南郑区', '61', '陕西省', '6107', '汉中市', '610703', '南郑区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610722', '6107', '00,61,6107', '城固县', '61', '陕西省', '6107', '汉中市', '610722', '城固县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610723', '6107', '00,61,6107', '洋县', '61', '陕西省', '6107', '汉中市', '610723', '洋县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610724', '6107', '00,61,6107', '西乡县', '61', '陕西省', '6107', '汉中市', '610724', '西乡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610725', '6107', '00,61,6107', '勉县', '61', '陕西省', '6107', '汉中市', '610725', '勉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610726', '6107', '00,61,6107', '宁强县', '61', '陕西省', '6107', '汉中市', '610726', '宁强县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610727', '6107', '00,61,6107', '略阳县', '61', '陕西省', '6107', '汉中市', '610727', '略阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61', '陕西省', '6107', '汉中市', '610728', '镇巴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610729', '6107', '00,61,6107', '留坝县', '61', '陕西省', '6107', '汉中市', '610729', '留坝县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61', '陕西省', '6107', '汉中市', '610730', '佛坪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6108', '61', '00,61', '榆林市', '61', '陕西省', '6108', '榆林市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61', '陕西省', '6108', '榆林市', '610802', '榆阳区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610803', '6108', '00,61,6108', '横山区', '61', '陕西省', '6108', '榆林市', '610803', '横山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610822', '6108', '00,61,6108', '府谷县', '61', '陕西省', '6108', '榆林市', '610822', '府谷县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610824', '6108', '00,61,6108', '靖边县', '61', '陕西省', '6108', '榆林市', '610824', '靖边县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610825', '6108', '00,61,6108', '定边县', '61', '陕西省', '6108', '榆林市', '610825', '定边县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610826', '6108', '00,61,6108', '绥德县', '61', '陕西省', '6108', '榆林市', '610826', '绥德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610827', '6108', '00,61,6108', '米脂县', '61', '陕西省', '6108', '榆林市', '610827', '米脂县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610828', '6108', '00,61,6108', '佳县', '61', '陕西省', '6108', '榆林市', '610828', '佳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61', '陕西省', '6108', '榆林市', '610829', '吴堡县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610830', '6108', '00,61,6108', '清涧县', '61', '陕西省', '6108', '榆林市', '610830', '清涧县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610831', '6108', '00,61,6108', '子洲县', '61', '陕西省', '6108', '榆林市', '610831', '子洲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610881', '6108', '00,61,6108', '神木市', '61', '陕西省', '6108', '榆林市', '610881', '神木市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6109', '61', '00,61', '安康市', '61', '陕西省', '6109', '安康市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61', '陕西省', '6109', '安康市', '610902', '汉滨区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61', '陕西省', '6109', '安康市', '610921', '汉阴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610922', '6109', '00,61,6109', '石泉县', '61', '陕西省', '6109', '安康市', '610922', '石泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61', '陕西省', '6109', '安康市', '610923', '宁陕县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61', '陕西省', '6109', '安康市', '610924', '紫阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61', '陕西省', '6109', '安康市', '610925', '岚皋县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610926', '6109', '00,61,6109', '平利县', '61', '陕西省', '6109', '安康市', '610926', '平利县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61', '陕西省', '6109', '安康市', '610927', '镇坪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61', '陕西省', '6109', '安康市', '610928', '旬阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('610929', '6109', '00,61,6109', '白河县', '61', '陕西省', '6109', '安康市', '610929', '白河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6110', '61', '00,61', '商洛市', '61', '陕西省', '6110', '商洛市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('611002', '6110', '00,61,6110', '商州区', '61', '陕西省', '6110', '商洛市', '611002', '商州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('611021', '6110', '00,61,6110', '洛南县', '61', '陕西省', '6110', '商洛市', '611021', '洛南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61', '陕西省', '6110', '商洛市', '611022', '丹凤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('611023', '6110', '00,61,6110', '商南县', '61', '陕西省', '6110', '商洛市', '611023', '商南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('611024', '6110', '00,61,6110', '山阳县', '61', '陕西省', '6110', '商洛市', '611024', '山阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('611025', '6110', '00,61,6110', '镇安县', '61', '陕西省', '6110', '商洛市', '611025', '镇安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('611026', '6110', '00,61,6110', '柞水县', '61', '陕西省', '6110', '商洛市', '611026', '柞水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('62', '00', '00', '甘肃省', '62', '甘肃省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('6201', '62', '00,62', '兰州市', '62', '甘肃省', '6201', '兰州市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620102', '6201', '00,62,6201', '城关区', '62', '甘肃省', '6201', '兰州市', '620102', '城关区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620103', '6201', '00,62,6201', '七里河区', '62', '甘肃省', '6201', '兰州市', '620103', '七里河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620104', '6201', '00,62,6201', '西固区', '62', '甘肃省', '6201', '兰州市', '620104', '西固区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620105', '6201', '00,62,6201', '安宁区', '62', '甘肃省', '6201', '兰州市', '620105', '安宁区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620111', '6201', '00,62,6201', '红古区', '62', '甘肃省', '6201', '兰州市', '620111', '红古区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620121', '6201', '00,62,6201', '永登县', '62', '甘肃省', '6201', '兰州市', '620121', '永登县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62', '甘肃省', '6201', '兰州市', '620122', '皋兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620123', '6201', '00,62,6201', '榆中县', '62', '甘肃省', '6201', '兰州市', '620123', '榆中县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6202', '62', '00,62', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62', '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6203', '62', '00,62', '金昌市', '62', '甘肃省', '6203', '金昌市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620302', '6203', '00,62,6203', '金川区', '62', '甘肃省', '6203', '金昌市', '620302', '金川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620321', '6203', '00,62,6203', '永昌县', '62', '甘肃省', '6203', '金昌市', '620321', '永昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6204', '62', '00,62', '白银市', '62', '甘肃省', '6204', '白银市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620402', '6204', '00,62,6204', '白银区', '62', '甘肃省', '6204', '白银市', '620402', '白银区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620403', '6204', '00,62,6204', '平川区', '62', '甘肃省', '6204', '白银市', '620403', '平川区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620421', '6204', '00,62,6204', '靖远县', '62', '甘肃省', '6204', '白银市', '620421', '靖远县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620422', '6204', '00,62,6204', '会宁县', '62', '甘肃省', '6204', '白银市', '620422', '会宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620423', '6204', '00,62,6204', '景泰县', '62', '甘肃省', '6204', '白银市', '620423', '景泰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6205', '62', '00,62', '天水市', '62', '甘肃省', '6205', '天水市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620502', '6205', '00,62,6205', '秦州区', '62', '甘肃省', '6205', '天水市', '620502', '秦州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620503', '6205', '00,62,6205', '麦积区', '62', '甘肃省', '6205', '天水市', '620503', '麦积区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620521', '6205', '00,62,6205', '清水县', '62', '甘肃省', '6205', '天水市', '620521', '清水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620522', '6205', '00,62,6205', '秦安县', '62', '甘肃省', '6205', '天水市', '620522', '秦安县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62', '甘肃省', '6205', '天水市', '620523', '甘谷县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620524', '6205', '00,62,6205', '武山县', '62', '甘肃省', '6205', '天水市', '620524', '武山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62', '甘肃省', '6205', '天水市', '620525', '张家川回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6206', '62', '00,62', '武威市', '62', '甘肃省', '6206', '武威市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620602', '6206', '00,62,6206', '凉州区', '62', '甘肃省', '6206', '武威市', '620602', '凉州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620621', '6206', '00,62,6206', '民勤县', '62', '甘肃省', '6206', '武威市', '620621', '民勤县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620622', '6206', '00,62,6206', '古浪县', '62', '甘肃省', '6206', '武威市', '620622', '古浪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62', '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6207', '62', '00,62', '张掖市', '62', '甘肃省', '6207', '张掖市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620702', '6207', '00,62,6207', '甘州区', '62', '甘肃省', '6207', '张掖市', '620702', '甘州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62', '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620722', '6207', '00,62,6207', '民乐县', '62', '甘肃省', '6207', '张掖市', '620722', '民乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620723', '6207', '00,62,6207', '临泽县', '62', '甘肃省', '6207', '张掖市', '620723', '临泽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620724', '6207', '00,62,6207', '高台县', '62', '甘肃省', '6207', '张掖市', '620724', '高台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620725', '6207', '00,62,6207', '山丹县', '62', '甘肃省', '6207', '张掖市', '620725', '山丹县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6208', '62', '00,62', '平凉市', '62', '甘肃省', '6208', '平凉市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62', '甘肃省', '6208', '平凉市', '620802', '崆峒区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620821', '6208', '00,62,6208', '泾川县', '62', '甘肃省', '6208', '平凉市', '620821', '泾川县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620822', '6208', '00,62,6208', '灵台县', '62', '甘肃省', '6208', '平凉市', '620822', '灵台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620823', '6208', '00,62,6208', '崇信县', '62', '甘肃省', '6208', '平凉市', '620823', '崇信县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62', '甘肃省', '6208', '平凉市', '620825', '庄浪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620826', '6208', '00,62,6208', '静宁县', '62', '甘肃省', '6208', '平凉市', '620826', '静宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620881', '6208', '00,62,6208', '华亭市', '62', '甘肃省', '6208', '平凉市', '620881', '华亭市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6209', '62', '00,62', '酒泉市', '62', '甘肃省', '6209', '酒泉市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('620902', '6209', '00,62,6209', '肃州区', '62', '甘肃省', '6209', '酒泉市', '620902', '肃州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620921', '6209', '00,62,6209', '金塔县', '62', '甘肃省', '6209', '酒泉市', '620921', '金塔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62', '甘肃省', '6209', '酒泉市', '620922', '瓜州县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62', '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62', '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620981', '6209', '00,62,6209', '玉门市', '62', '甘肃省', '6209', '酒泉市', '620981', '玉门市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62', '甘肃省', '6209', '酒泉市', '620982', '敦煌市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6210', '62', '00,62', '庆阳市', '62', '甘肃省', '6210', '庆阳市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('621002', '6210', '00,62,6210', '西峰区', '62', '甘肃省', '6210', '庆阳市', '621002', '西峰区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621021', '6210', '00,62,6210', '庆城县', '62', '甘肃省', '6210', '庆阳市', '621021', '庆城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621022', '6210', '00,62,6210', '环县', '62', '甘肃省', '6210', '庆阳市', '621022', '环县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621023', '6210', '00,62,6210', '华池县', '62', '甘肃省', '6210', '庆阳市', '621023', '华池县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621024', '6210', '00,62,6210', '合水县', '62', '甘肃省', '6210', '庆阳市', '621024', '合水县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621025', '6210', '00,62,6210', '正宁县', '62', '甘肃省', '6210', '庆阳市', '621025', '正宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621026', '6210', '00,62,6210', '宁县', '62', '甘肃省', '6210', '庆阳市', '621026', '宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621027', '6210', '00,62,6210', '镇原县', '62', '甘肃省', '6210', '庆阳市', '621027', '镇原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6211', '62', '00,62', '定西市', '62', '甘肃省', '6211', '定西市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('621102', '6211', '00,62,6211', '安定区', '62', '甘肃省', '6211', '定西市', '621102', '安定区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621121', '6211', '00,62,6211', '通渭县', '62', '甘肃省', '6211', '定西市', '621121', '通渭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621122', '6211', '00,62,6211', '陇西县', '62', '甘肃省', '6211', '定西市', '621122', '陇西县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621123', '6211', '00,62,6211', '渭源县', '62', '甘肃省', '6211', '定西市', '621123', '渭源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621124', '6211', '00,62,6211', '临洮县', '62', '甘肃省', '6211', '定西市', '621124', '临洮县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621125', '6211', '00,62,6211', '漳县', '62', '甘肃省', '6211', '定西市', '621125', '漳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621126', '6211', '00,62,6211', '岷县', '62', '甘肃省', '6211', '定西市', '621126', '岷县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6212', '62', '00,62', '陇南市', '62', '甘肃省', '6212', '陇南市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('621202', '6212', '00,62,6212', '武都区', '62', '甘肃省', '6212', '陇南市', '621202', '武都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621221', '6212', '00,62,6212', '成县', '62', '甘肃省', '6212', '陇南市', '621221', '成县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621222', '6212', '00,62,6212', '文县', '62', '甘肃省', '6212', '陇南市', '621222', '文县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62', '甘肃省', '6212', '陇南市', '621223', '宕昌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621224', '6212', '00,62,6212', '康县', '62', '甘肃省', '6212', '陇南市', '621224', '康县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621225', '6212', '00,62,6212', '西和县', '62', '甘肃省', '6212', '陇南市', '621225', '西和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621226', '6212', '00,62,6212', '礼县', '62', '甘肃省', '6212', '陇南市', '621226', '礼县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621227', '6212', '00,62,6212', '徽县', '62', '甘肃省', '6212', '陇南市', '621227', '徽县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('621228', '6212', '00,62,6212', '两当县', '62', '甘肃省', '6212', '陇南市', '621228', '两当县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6229', '62', '00,62', '临夏回族自治州', '62', '甘肃省', '6229', '临夏回族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('622901', '6229', '00,62,6229', '临夏市', '62', '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622921', '6229', '00,62,6229', '临夏县', '62', '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622922', '6229', '00,62,6229', '康乐县', '62', '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622923', '6229', '00,62,6229', '永靖县', '62', '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622924', '6229', '00,62,6229', '广河县', '62', '甘肃省', '6229', '临夏回族自治州', '622924', '广河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622925', '6229', '00,62,6229', '和政县', '62', '甘肃省', '6229', '临夏回族自治州', '622925', '和政县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62', '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62', '甘肃省', '6230', '甘南藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('623001', '6230', '00,62,6230', '合作市', '62', '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623021', '6230', '00,62,6230', '临潭县', '62', '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62', '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623024', '6230', '00,62,6230', '迭部县', '62', '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62', '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('623027', '6230', '00,62,6230', '夏河县', '62', '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('63', '00', '00', '青海省', '63', '青海省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('6301', '63', '00,63', '西宁市', '63', '青海省', '6301', '西宁市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('630102', '6301', '00,63,6301', '城东区', '63', '青海省', '6301', '西宁市', '630102', '城东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630103', '6301', '00,63,6301', '城中区', '63', '青海省', '6301', '西宁市', '630103', '城中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630104', '6301', '00,63,6301', '城西区', '63', '青海省', '6301', '西宁市', '630104', '城西区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630105', '6301', '00,63,6301', '城北区', '63', '青海省', '6301', '西宁市', '630105', '城北区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630106', '6301', '00,63,6301', '湟中区', '63', '青海省', '6301', '西宁市', '630106', '湟中区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63', '青海省', '6301', '西宁市', '630121', '大通回族土族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630123', '6301', '00,63,6301', '湟源县', '63', '青海省', '6301', '西宁市', '630123', '湟源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6302', '63', '00,63', '海东市', '63', '青海省', '6302', '海东市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('630202', '6302', '00,63,6302', '乐都区', '63', '青海省', '6302', '海东市', '630202', '乐都区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630203', '6302', '00,63,6302', '平安区', '63', '青海省', '6302', '海东市', '630203', '平安区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63', '青海省', '6302', '海东市', '630222', '民和回族土族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63', '青海省', '6302', '海东市', '630223', '互助土族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63', '青海省', '6302', '海东市', '630224', '化隆回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63', '青海省', '6302', '海东市', '630225', '循化撒拉族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6322', '63', '00,63', '海北藏族自治州', '63', '青海省', '6322', '海北藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63', '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632222', '6322', '00,63,6322', '祁连县', '63', '青海省', '6322', '海北藏族自治州', '632222', '祁连县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632223', '6322', '00,63,6322', '海晏县', '63', '青海省', '6322', '海北藏族自治州', '632223', '海晏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632224', '6322', '00,63,6322', '刚察县', '63', '青海省', '6322', '海北藏族自治州', '632224', '刚察县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63', '青海省', '6323', '黄南藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('632321', '6323', '00,63,6323', '同仁县', '63', '青海省', '6323', '黄南藏族自治州', '632321', '同仁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63', '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632323', '6323', '00,63,6323', '泽库县', '63', '青海省', '6323', '黄南藏族自治州', '632323', '泽库县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63', '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6325', '63', '00,63', '海南藏族自治州', '63', '青海省', '6325', '海南藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('632521', '6325', '00,63,6325', '共和县', '63', '青海省', '6325', '海南藏族自治州', '632521', '共和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632522', '6325', '00,63,6325', '同德县', '63', '青海省', '6325', '海南藏族自治州', '632522', '同德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632523', '6325', '00,63,6325', '贵德县', '63', '青海省', '6325', '海南藏族自治州', '632523', '贵德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632524', '6325', '00,63,6325', '兴海县', '63', '青海省', '6325', '海南藏族自治州', '632524', '兴海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632525', '6325', '00,63,6325', '贵南县', '63', '青海省', '6325', '海南藏族自治州', '632525', '贵南县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63', '青海省', '6326', '果洛藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63', '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632622', '6326', '00,63,6326', '班玛县', '63', '青海省', '6326', '果洛藏族自治州', '632622', '班玛县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632623', '6326', '00,63,6326', '甘德县', '63', '青海省', '6326', '果洛藏族自治州', '632623', '甘德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632624', '6326', '00,63,6326', '达日县', '63', '青海省', '6326', '果洛藏族自治州', '632624', '达日县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632625', '6326', '00,63,6326', '久治县', '63', '青海省', '6326', '果洛藏族自治州', '632625', '久治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632626', '6326', '00,63,6326', '玛多县', '63', '青海省', '6326', '果洛藏族自治州', '632626', '玛多县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63', '青海省', '6327', '玉树藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('632701', '6327', '00,63,6327', '玉树市', '63', '青海省', '6327', '玉树藏族自治州', '632701', '玉树市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632722', '6327', '00,63,6327', '杂多县', '63', '青海省', '6327', '玉树藏族自治州', '632722', '杂多县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632723', '6327', '00,63,6327', '称多县', '63', '青海省', '6327', '玉树藏族自治州', '632723', '称多县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632724', '6327', '00,63,6327', '治多县', '63', '青海省', '6327', '玉树藏族自治州', '632724', '治多县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63', '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63', '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63', '青海省', '6328', '海西蒙古族藏族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632822', '6328', '00,63,6328', '都兰县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('632823', '6328', '00,63,6328', '天峻县', '63', '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('64', '00', '00', '宁夏回族自治区', '64', '宁夏回族自治区', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('6401', '64', '00,64', '银川市', '64', '宁夏回族自治区', '6401', '银川市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64', '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640105', '6401', '00,64,6401', '西夏区', '64', '宁夏回族自治区', '6401', '银川市', '640105', '西夏区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640106', '6401', '00,64,6401', '金凤区', '64', '宁夏回族自治区', '6401', '银川市', '640106', '金凤区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640121', '6401', '00,64,6401', '永宁县', '64', '宁夏回族自治区', '6401', '银川市', '640121', '永宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64', '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640181', '6401', '00,64,6401', '灵武市', '64', '宁夏回族自治区', '6401', '银川市', '640181', '灵武市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6402', '64', '00,64', '石嘴山市', '64', '宁夏回族自治区', '6402', '石嘴山市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('640202', '6402', '00,64,6402', '大武口区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640205', '6402', '00,64,6402', '惠农区', '64', '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640221', '6402', '00,64,6402', '平罗县', '64', '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6403', '64', '00,64', '吴忠市', '64', '宁夏回族自治区', '6403', '吴忠市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('640302', '6403', '00,64,6403', '利通区', '64', '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64', '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640323', '6403', '00,64,6403', '盐池县', '64', '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640324', '6403', '00,64,6403', '同心县', '64', '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64', '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6404', '64', '00,64', '固原市', '64', '宁夏回族自治区', '6404', '固原市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('640402', '6404', '00,64,6404', '原州区', '64', '宁夏回族自治区', '6404', '固原市', '640402', '原州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640422', '6404', '00,64,6404', '西吉县', '64', '宁夏回族自治区', '6404', '固原市', '640422', '西吉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640423', '6404', '00,64,6404', '隆德县', '64', '宁夏回族自治区', '6404', '固原市', '640423', '隆德县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640424', '6404', '00,64,6404', '泾源县', '64', '宁夏回族自治区', '6404', '固原市', '640424', '泾源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64', '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6405', '64', '00,64', '中卫市', '64', '宁夏回族自治区', '6405', '中卫市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64', '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640521', '6405', '00,64,6405', '中宁县', '64', '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('640522', '6405', '00,64,6405', '海原县', '64', '宁夏回族自治区', '6405', '中卫市', '640522', '海原县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('65', '00', '00', '新疆维吾尔自治区', '65', '新疆维吾尔自治区', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('650102', '6501', '00,65,6501', '天山区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650104', '6501', '00,65,6501', '新市区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650109', '6501', '00,65,6501', '米东区', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65', '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6502', '65', '00,65', '克拉玛依市', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('650202', '6502', '00,65,6502', '独山子区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65', '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6504', '65', '00,65', '吐鲁番市', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('650402', '6504', '00,65,6504', '高昌区', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65', '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6505', '65', '00,65', '哈密市', '65', '新疆维吾尔自治区', '6505', '哈密市', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('650502', '6505', '00,65,6505', '伊州区', '65', '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65', '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652302', '6523', '00,65,6523', '阜康市', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652325', '6523', '00,65,6523', '奇台县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65', '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('652701', '6527', '00,65,6527', '博乐市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652722', '6527', '00,65,6527', '精河县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652723', '6527', '00,65,6527', '温泉县', '65', '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652822', '6528', '00,65,6528', '轮台县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652824', '6528', '00,65,6528', '若羌县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652825', '6528', '00,65,6528', '且末县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652827', '6528', '00,65,6528', '和静县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652828', '6528', '00,65,6528', '和硕县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652829', '6528', '00,65,6528', '博湖县', '65', '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6529', '65', '00,65', '阿克苏地区', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652902', '6529', '00,65,6529', '库车市', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652922', '6529', '00,65,6529', '温宿县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652925', '6529', '00,65,6529', '新和县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652926', '6529', '00,65,6529', '拜城县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652927', '6529', '00,65,6529', '乌什县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65', '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65', '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6531', '65', '00,65', '喀什地区', '65', '新疆维吾尔自治区', '6531', '喀什地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('653101', '6531', '00,65,6531', '喀什市', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653121', '6531', '00,65,6531', '疏附县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653124', '6531', '00,65,6531', '泽普县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653125', '6531', '00,65,6531', '莎车县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653126', '6531', '00,65,6531', '叶城县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653129', '6531', '00,65,6531', '伽师县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65', '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6532', '65', '00,65', '和田地区', '65', '新疆维吾尔自治区', '6532', '和田地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('653201', '6532', '00,65,6532', '和田市', '65', '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653221', '6532', '00,65,6532', '和田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653223', '6532', '00,65,6532', '皮山县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653225', '6532', '00,65,6532', '策勒县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653226', '6532', '00,65,6532', '于田县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('653227', '6532', '00,65,6532', '民丰县', '65', '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654023', '6540', '00,65,6540', '霍城县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654024', '6540', '00,65,6540', '巩留县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654025', '6540', '00,65,6540', '新源县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65', '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6542', '65', '00,65', '塔城地区', '65', '新疆维吾尔自治区', '6542', '塔城地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('654201', '6542', '00,65,6542', '塔城市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654221', '6542', '00,65,6542', '额敏县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654224', '6542', '00,65,6542', '托里县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654225', '6542', '00,65,6542', '裕民县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65', '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6543', '65', '00,65', '阿勒泰地区', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654323', '6543', '00,65,6543', '福海县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654325', '6543', '00,65,6543', '青河县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65', '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '', '', '', '', '', '', 2, 1, ''); +INSERT INTO "blade_region" VALUES ('659001', '6590', '00,65,6590', '石河子市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659005', '6590', '00,65,6590', '北屯市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659007', '6590', '00,65,6590', '双河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65', '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市', '', '', '', '', 3, 1, ''); +INSERT INTO "blade_region" VALUES ('71', '00', '00', '台湾省', '71', '台湾省', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('81', '00', '00', '香港特别行政区', '81', '香港特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''); +INSERT INTO "blade_region" VALUES ('82', '00', '00', '澳门特别行政区', '82', '澳门特别行政区', '', '', '', '', '', '', '', '', 1, 1, ''); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_report_file +-- ---------------------------- +DROP TABLE IF EXISTS "blade_report_file"; +CREATE TABLE "blade_report_file" ( + "id" int8 NOT NULL, + "name" varchar(100) COLLATE "pg_catalog"."default" NOT NULL, + "content" bytea, + "create_time" timestamp(6) NOT NULL, + "update_time" timestamp(6) NOT NULL, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_report_file"."id" IS '主键'; +COMMENT ON COLUMN "blade_report_file"."name" IS '文件名'; +COMMENT ON COLUMN "blade_report_file"."content" IS '文件内容'; +COMMENT ON COLUMN "blade_report_file"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_report_file"."update_time" IS '更新时间'; +COMMENT ON COLUMN "blade_report_file"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_report_file" IS '报表文件表'; + +-- ---------------------------- +-- Records of blade_report_file +-- ---------------------------- +BEGIN; +INSERT INTO "blade_report_file" VALUES (1291945594587201537, 'notice.ureport.xml', E'', '2020-08-08 11:53:27.595', '2020-08-08 13:02:11.393', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role +-- ---------------------------- +DROP TABLE IF EXISTS "blade_role"; +CREATE TABLE "blade_role" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "parent_id" int8, + "role_name" varchar(255) COLLATE "pg_catalog"."default", + "sort" int4, + "role_alias" varchar(255) COLLATE "pg_catalog"."default", + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_role"."id" IS '主键'; +COMMENT ON COLUMN "blade_role"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_role"."parent_id" IS '父主键'; +COMMENT ON COLUMN "blade_role"."role_name" IS '角色名'; +COMMENT ON COLUMN "blade_role"."sort" IS '排序'; +COMMENT ON COLUMN "blade_role"."role_alias" IS '角色别名'; +COMMENT ON COLUMN "blade_role"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_role" IS '角色表'; + +-- ---------------------------- +-- Records of blade_role +-- ---------------------------- +BEGIN; +INSERT INTO "blade_role" VALUES (1123598816738675201, '000000', 0, '超级管理员', 1, 'administrator', 0); +INSERT INTO "blade_role" VALUES (1123598816738675202, '000000', 0, '用户', 2, 'user', 0); +INSERT INTO "blade_role" VALUES (1123598816738675203, '000000', 1123598816738675202, '人事', 1, 'hr', 0); +INSERT INTO "blade_role" VALUES (1123598816738675204, '000000', 1123598816738675202, '经理', 2, 'manager', 0); +INSERT INTO "blade_role" VALUES (1123598816738675205, '000000', 1123598816738675202, '老板', 3, 'boss', 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role_menu +-- ---------------------------- +DROP TABLE IF EXISTS "blade_role_menu"; +CREATE TABLE "blade_role_menu" ( + "id" int8 NOT NULL, + "menu_id" int8, + "role_id" int8 +) +; +COMMENT ON COLUMN "blade_role_menu"."id" IS '主键'; +COMMENT ON COLUMN "blade_role_menu"."menu_id" IS '菜单id'; +COMMENT ON COLUMN "blade_role_menu"."role_id" IS '角色id'; +COMMENT ON TABLE "blade_role_menu" IS '角色菜单关联表'; + +-- ---------------------------- +-- Records of blade_role_menu +-- ---------------------------- +BEGIN; +INSERT INTO "blade_role_menu" VALUES (1123598817738675363, 1123598815738675201, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675364, 1123598815738675202, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675365, 1123598815738675219, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675366, 1123598815738675220, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675367, 1123598815738675221, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675368, 1123598815738675222, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675369, 1123598815738675280, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675370, 1123598815738675281, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675371, 1123598815738675282, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675372, 1123598815738675283, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675373, 1123598815738675284, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675374, 1123598815738675285, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675375, 1123598815738675286, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675376, 1123598815738675287, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675377, 1123598815738675288, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675378, 1123598815738675289, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675379, 1123598815738675290, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675380, 1123598815738675291, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675381, 1123598815738675292, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675382, 1123598815738675293, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675383, 1123598815738675294, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675384, 1123598815738675295, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675385, 1123598815738675296, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675386, 1123598815738675297, 1123598816738675202); +INSERT INTO "blade_role_menu" VALUES (1123598817738675387, 1123598815738675201, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675388, 1123598815738675202, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675389, 1123598815738675219, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675390, 1123598815738675220, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675391, 1123598815738675221, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675392, 1123598815738675222, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675393, 1123598815738675280, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675394, 1123598815738675281, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675395, 1123598815738675282, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675396, 1123598815738675283, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675397, 1123598815738675284, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675398, 1123598815738675285, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675399, 1123598815738675286, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675400, 1123598815738675287, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675401, 1123598815738675288, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675402, 1123598815738675289, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675403, 1123598815738675290, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675404, 1123598815738675291, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675405, 1123598815738675292, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675406, 1123598815738675293, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675407, 1123598815738675294, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675408, 1123598815738675295, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675409, 1123598815738675296, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675410, 1123598815738675297, 1123598816738675203); +INSERT INTO "blade_role_menu" VALUES (1123598817738675411, 1123598815738675201, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675412, 1123598815738675202, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675413, 1123598815738675219, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675414, 1123598815738675220, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675415, 1123598815738675221, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675416, 1123598815738675222, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675417, 1123598815738675280, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675418, 1123598815738675281, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675419, 1123598815738675282, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675420, 1123598815738675283, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675421, 1123598815738675284, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675422, 1123598815738675285, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675423, 1123598815738675286, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675424, 1123598815738675287, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675425, 1123598815738675288, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675426, 1123598815738675289, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675427, 1123598815738675290, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675428, 1123598815738675291, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675429, 1123598815738675292, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675430, 1123598815738675293, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675431, 1123598815738675294, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675432, 1123598815738675295, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675433, 1123598815738675296, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675434, 1123598815738675297, 1123598816738675204); +INSERT INTO "blade_role_menu" VALUES (1123598817738675435, 1123598815738675201, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675436, 1123598815738675202, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675437, 1123598815738675219, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675438, 1123598815738675220, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675439, 1123598815738675221, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675440, 1123598815738675222, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675441, 1123598815738675280, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675442, 1123598815738675281, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675443, 1123598815738675282, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675444, 1123598815738675283, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675445, 1123598815738675284, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675446, 1123598815738675285, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675447, 1123598815738675286, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675448, 1123598815738675287, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675449, 1123598815738675288, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675450, 1123598815738675289, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675451, 1123598815738675290, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675452, 1123598815738675291, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675453, 1123598815738675292, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675454, 1123598815738675293, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675455, 1123598815738675294, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675456, 1123598815738675295, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675457, 1123598815738675296, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1123598817738675458, 1123598815738675297, 1123598816738675205); +INSERT INTO "blade_role_menu" VALUES (1149888292426575874, 1123598815738675201, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292476907522, 1123598815738675202, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292489490433, 1123598815738675219, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292502073345, 1123598815738675220, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292518850561, 1123598815738675221, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292535627777, 1123598815738675222, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292548210690, 1123598815738675280, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292560793602, 1123598815738675281, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292577570817, 1123598815738675282, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292594348033, 1123598815738675283, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292611125249, 1123598815738675284, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292623708162, 1123598815738675285, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292640485377, 1123598815738675286, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292653068289, 1123598815738675287, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292669845506, 1123598815738675288, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292682428417, 1123598815738675289, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292699205634, 1123598815738675290, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292711788545, 1123598815738675291, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292724371458, 1123598815738675292, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292741148674, 1123598815738675293, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292753731585, 1123598815738675294, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292766314497, 1123598815738675295, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292778897410, 1123598815738675296, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292791480321, 1123598815738675297, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292808257537, 1123598815738675210, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292820840449, 1123598815738675211, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292833423362, 1123598815738675212, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292846006274, 1123598815738675213, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292862783489, 1123598815738675214, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292875366401, 1123598815738675249, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292887949313, 1123598815738675215, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292904726530, 1123598815738675250, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292917309442, 1123598815738675216, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292929892353, 1123598815738675251, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292942475265, 1123598815738675217, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292959252482, 1123598815738675218, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292971835393, 1123598815738675252, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292984418306, 1123598815738675253, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888292997001217, 1123598815738675254, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293009584129, 1123598815738675255, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293026361346, 1123598815738675266, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293043138562, 1123598815738675267, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293055721473, 1123598815738675268, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293072498690, 1123598815738675269, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293089275906, 1123598815738675270, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293101858817, 1123598815738675271, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293114441729, 1123598815738675272, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293127024642, 1123598815738675273, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293139607554, 1123598815738675274, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293152190465, 1123598815738675275, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293164773377, 1123598815738675276, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293177356290, 1123598815738675277, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293189939201, 1123598815738675278, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293202522113, 1123598815738675279, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293215105026, 1123598815738675298, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293227687938, 1123598815738675299, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293240270850, 1123598815738675301, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293252853762, 1123598815738675302, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293265436674, 1123598815738675303, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293278019586, 1123598815738675304, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293290602497, 1123598815738675305, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293303185410, 1123598815738675307, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293315768322, 1123598815738675308, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293328351234, 1123598815738675241, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293336739841, 1123598815738675242, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293349322753, 1123598815738675243, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293361905666, 1123598815738675244, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293374488578, 1123598815738675309, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293387071489, 1123598815738675310, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293399654402, 1123598815738675311, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293412237313, 1123598815738675312, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293424820226, 1123598815738675203, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293454180354, 1123598815738675204, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293483540481, 1123598815738675223, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293512900609, 1123598815738675224, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293529677826, 1123598815738675225, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293554843649, 1123598815738675226, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293571620866, 1123598815738675227, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293588398081, 1123598815738675228, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293605175297, 1123598815738675205, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293617758209, 1123598815738675229, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293630341121, 1123598815738675230, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293642924033, 1123598815738675231, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293659701250, 1123598815738675232, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293672284162, 1123598815738675206, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293684867074, 1123598815738675233, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293697449986, 1123598815738675234, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293710032897, 1123598815738675235, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293722615809, 1123598815738675236, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293735198722, 1123598815738675207, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293747781633, 1123598815738675237, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293760364545, 1123598815738675238, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293772947458, 1123598815738675239, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293785530370, 1123598815738675240, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293798113282, 1123598815738675306, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293810696194, 1123598815738675208, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293819084802, 1123598815738675313, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293831667714, 1123598815738675314, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293844250626, 1123598815738675315, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293856833538, 1123598815738675316, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293856833539, 1123598815738675317, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293869416450, 1123598815738675209, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293881999362, 1123598815738675245, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293894582274, 1123598815738675246, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293907165186, 1123598815738675247, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293919748097, 1123598815738675248, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293932331010, 1123598815738675256, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293940719618, 1123598815738675257, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293953302530, 1123598815738675258, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293965885441, 1123598815738675259, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293978468354, 1123598815738675260, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293986856962, 1123598815738675261, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888293999439874, 1123598815738675262, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888294007828482, 1123598815738675263, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888294020411393, 1123598815738675264, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1149888294028800002, 1123598815738675265, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272593873322991, 1161272593873321991, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272593873322992, 1161272593873321992, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272593873322993, 1161272593873321993, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272593873322994, 1161272593873321994, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272593873322995, 1161272593873321995, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272693873322991, 1164733369658963251, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272693873322992, 1164733369658963252, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272693873322993, 1164733369658963253, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272693873322994, 1164733369658963254, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272693873322995, 1164733369658963255, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272793873322991, 1164733379658963251, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272793873322992, 1164733379658963252, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272793873322993, 1164733379658963253, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272793873322994, 1164733379658963254, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272793873322995, 1164733379658963255, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873322991, 1164733389658963251, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873222991, 1164733389658962251, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873222992, 1164733389658962252, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873222993, 1164733389658962253, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873222994, 1164733389658962254, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873222995, 1164733389658962255, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893873222996, 1164733389658962256, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875225001, 1164733389668962251, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875225002, 1164733389668962252, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875225003, 1164733389668962253, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875225004, 1164733389668962254, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875225005, 1164733389668962255, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875225006, 1164733389668962256, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226001, 1164733399668962201, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226002, 1164733399668962202, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226003, 1164733399668962203, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226004, 1164733399668962204, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226005, 1164733399668962205, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226006, 1164733399668962206, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875226007, 1164733399668962207, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875227001, 1164733399669962201, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875227002, 1164733399669962202, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875227003, 1164733399669962203, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875227004, 1164733399669962204, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875228001, 1164733399669962301, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875228002, 1164733399669962302, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875228003, 1164733399669962303, 1123598816738675201); +INSERT INTO "blade_role_menu" VALUES (1161272893875228004, 1164733399669962304, 1123598816738675201); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_role_scope +-- ---------------------------- +DROP TABLE IF EXISTS "blade_role_scope"; +CREATE TABLE "blade_role_scope" ( + "id" int8 NOT NULL, + "scope_category" int4, + "scope_id" int8, + "role_id" int8 +) +; +COMMENT ON COLUMN "blade_role_scope"."id" IS '主键'; +COMMENT ON COLUMN "blade_role_scope"."scope_category" IS '权限类型(1:数据权限、2:接口权限)'; +COMMENT ON COLUMN "blade_role_scope"."scope_id" IS '权限id'; +COMMENT ON COLUMN "blade_role_scope"."role_id" IS '角色id'; +COMMENT ON TABLE "blade_role_scope" IS '角色数据权限关联表'; + +-- ---------------------------- +-- Table structure for blade_scope_api +-- ---------------------------- +DROP TABLE IF EXISTS "blade_scope_api"; +CREATE TABLE "blade_scope_api" ( + "id" int8 NOT NULL, + "menu_id" int8, + "resource_code" varchar(255) COLLATE "pg_catalog"."default", + "scope_name" varchar(255) COLLATE "pg_catalog"."default", + "scope_path" varchar(255) COLLATE "pg_catalog"."default", + "scope_type" int4, + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_scope_api"."id" IS '主键'; +COMMENT ON COLUMN "blade_scope_api"."menu_id" IS '菜单主键'; +COMMENT ON COLUMN "blade_scope_api"."resource_code" IS '资源编号'; +COMMENT ON COLUMN "blade_scope_api"."scope_name" IS '接口权限名'; +COMMENT ON COLUMN "blade_scope_api"."scope_path" IS '接口权限地址'; +COMMENT ON COLUMN "blade_scope_api"."scope_type" IS '接口权限类型'; +COMMENT ON COLUMN "blade_scope_api"."remark" IS '接口权限备注'; +COMMENT ON COLUMN "blade_scope_api"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_scope_api"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_scope_api"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_scope_api"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_scope_api"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_scope_api"."status" IS '状态'; +COMMENT ON COLUMN "blade_scope_api"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_scope_api" IS '接口权限表'; + +-- ---------------------------- +-- Table structure for blade_scope_data +-- ---------------------------- +DROP TABLE IF EXISTS "blade_scope_data"; +CREATE TABLE "blade_scope_data" ( + "id" int8 NOT NULL, + "menu_id" int8, + "resource_code" varchar(255) COLLATE "pg_catalog"."default", + "scope_name" varchar(255) COLLATE "pg_catalog"."default", + "scope_field" varchar(255) COLLATE "pg_catalog"."default", + "scope_class" varchar(500) COLLATE "pg_catalog"."default", + "scope_column" varchar(255) COLLATE "pg_catalog"."default", + "scope_type" int4, + "scope_value" varchar(2000) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_scope_data"."id" IS '主键'; +COMMENT ON COLUMN "blade_scope_data"."menu_id" IS '菜单主键'; +COMMENT ON COLUMN "blade_scope_data"."resource_code" IS '资源编号'; +COMMENT ON COLUMN "blade_scope_data"."scope_name" IS '数据权限名称'; +COMMENT ON COLUMN "blade_scope_data"."scope_field" IS '数据权限字段'; +COMMENT ON COLUMN "blade_scope_data"."scope_class" IS '数据权限类名'; +COMMENT ON COLUMN "blade_scope_data"."scope_column" IS '数据权限字段'; +COMMENT ON COLUMN "blade_scope_data"."scope_type" IS '数据权限类型'; +COMMENT ON COLUMN "blade_scope_data"."scope_value" IS '数据权限值域'; +COMMENT ON COLUMN "blade_scope_data"."remark" IS '数据权限备注'; +COMMENT ON COLUMN "blade_scope_data"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_scope_data"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_scope_data"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_scope_data"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_scope_data"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_scope_data"."status" IS '状态'; +COMMENT ON COLUMN "blade_scope_data"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_scope_data" IS '数据权限表'; + +-- ---------------------------- +-- Table structure for blade_sms +-- ---------------------------- +DROP TABLE IF EXISTS "blade_sms"; +CREATE TABLE "blade_sms" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "category" int4, + "sms_code" varchar(12) COLLATE "pg_catalog"."default", + "template_id" varchar(64) COLLATE "pg_catalog"."default", + "access_key" varchar(255) COLLATE "pg_catalog"."default", + "secret_key" varchar(255) COLLATE "pg_catalog"."default", + "region_id" varchar(255) COLLATE "pg_catalog"."default", + "sign_name" varchar(64) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_sms"."id" IS '主键'; +COMMENT ON COLUMN "blade_sms"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_sms"."category" IS '分类'; +COMMENT ON COLUMN "blade_sms"."sms_code" IS '资源编号'; +COMMENT ON COLUMN "blade_sms"."template_id" IS '模板ID'; +COMMENT ON COLUMN "blade_sms"."access_key" IS 'accessKey'; +COMMENT ON COLUMN "blade_sms"."secret_key" IS 'secretKey'; +COMMENT ON COLUMN "blade_sms"."region_id" IS 'regionId'; +COMMENT ON COLUMN "blade_sms"."sign_name" IS '短信签名'; +COMMENT ON COLUMN "blade_sms"."remark" IS '备注'; +COMMENT ON COLUMN "blade_sms"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_sms"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_sms"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_sms"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_sms"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_sms"."status" IS '状态'; +COMMENT ON COLUMN "blade_sms"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_sms" IS '短信配置表'; + +-- ---------------------------- +-- Table structure for blade_tenant +-- ---------------------------- +DROP TABLE IF EXISTS "blade_tenant"; +CREATE TABLE "blade_tenant" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "tenant_name" varchar(50) COLLATE "pg_catalog"."default" NOT NULL, + "domain_url" varchar(255) COLLATE "pg_catalog"."default", + "background_url" varchar(1000) COLLATE "pg_catalog"."default", + "linkman" varchar(20) COLLATE "pg_catalog"."default", + "contact_number" varchar(20) COLLATE "pg_catalog"."default", + "address" varchar(255) COLLATE "pg_catalog"."default", + "account_number" int2 DEFAULT '-1'::integer, + "expire_time" timestamp(6), + "package_id" int8, + "datasource_id" int8, + "license_key" varchar(1000) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_tenant"."id" IS '主键'; +COMMENT ON COLUMN "blade_tenant"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_tenant"."tenant_name" IS '租户名称'; +COMMENT ON COLUMN "blade_tenant"."domain_url" IS '域名地址'; +COMMENT ON COLUMN "blade_tenant"."background_url" IS '系统背景'; +COMMENT ON COLUMN "blade_tenant"."linkman" IS '联系人'; +COMMENT ON COLUMN "blade_tenant"."contact_number" IS '联系电话'; +COMMENT ON COLUMN "blade_tenant"."address" IS '联系地址'; +COMMENT ON COLUMN "blade_tenant"."account_number" IS '账号额度'; +COMMENT ON COLUMN "blade_tenant"."expire_time" IS '过期时间'; +COMMENT ON COLUMN "blade_tenant"."package_id" IS '产品包ID'; +COMMENT ON COLUMN "blade_tenant"."datasource_id" IS '数据源ID'; +COMMENT ON COLUMN "blade_tenant"."license_key" IS '授权码'; +COMMENT ON COLUMN "blade_tenant"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_tenant"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_tenant"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_tenant"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_tenant"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_tenant"."status" IS '状态'; +COMMENT ON COLUMN "blade_tenant"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_tenant" IS '租户表'; + +-- ---------------------------- +-- Records of blade_tenant +-- ---------------------------- +BEGIN; +INSERT INTO "blade_tenant" VALUES (1123598820738675201, '000000', '管理组', NULL, NULL, 'admin', '666666', '管理组', -1, NULL, NULL, NULL, NULL, 1123598821738675201, 1123598813738675201, '2019-01-01 00:00:39', 1123598821738675201, '2019-01-01 00:00:39', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_tenant_package +-- ---------------------------- +DROP TABLE IF EXISTS "blade_tenant_package"; +CREATE TABLE "blade_tenant_package" ( + "id" int8 NOT NULL, + "package_name" varchar(50) COLLATE "pg_catalog"."default", + "menu_id" varchar(3000) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_tenant_package"."id" IS '主键'; +COMMENT ON COLUMN "blade_tenant_package"."package_name" IS '产品包名'; +COMMENT ON COLUMN "blade_tenant_package"."menu_id" IS '菜单ID'; +COMMENT ON COLUMN "blade_tenant_package"."remark" IS '备注'; +COMMENT ON COLUMN "blade_tenant_package"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_tenant_package"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_tenant_package"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_tenant_package"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_tenant_package"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_tenant_package"."status" IS '状态'; +COMMENT ON COLUMN "blade_tenant_package"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_tenant_package" IS '租户产品表'; + +-- ---------------------------- +-- Table structure for blade_top_menu +-- ---------------------------- +DROP TABLE IF EXISTS "blade_top_menu"; +CREATE TABLE "blade_top_menu" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "code" varchar(255) COLLATE "pg_catalog"."default", + "name" varchar(255) COLLATE "pg_catalog"."default", + "source" varchar(255) COLLATE "pg_catalog"."default", + "sort" int4, + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_top_menu"."id" IS '主键'; +COMMENT ON COLUMN "blade_top_menu"."tenant_id" IS '租户id'; +COMMENT ON COLUMN "blade_top_menu"."code" IS '顶部菜单编号'; +COMMENT ON COLUMN "blade_top_menu"."name" IS '顶部菜单名'; +COMMENT ON COLUMN "blade_top_menu"."source" IS '顶部菜单资源'; +COMMENT ON COLUMN "blade_top_menu"."sort" IS '顶部菜单排序'; +COMMENT ON COLUMN "blade_top_menu"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_top_menu"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_top_menu"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_top_menu"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_top_menu"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_top_menu"."status" IS '状态'; +COMMENT ON COLUMN "blade_top_menu"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_top_menu" IS '顶部菜单表'; + +-- ---------------------------- +-- Table structure for blade_top_menu_setting +-- ---------------------------- +DROP TABLE IF EXISTS "blade_top_menu_setting"; +CREATE TABLE "blade_top_menu_setting" ( + "id" int8 NOT NULL, + "top_menu_id" int8, + "menu_id" int8 +) +; +COMMENT ON COLUMN "blade_top_menu_setting"."id" IS '主键'; +COMMENT ON COLUMN "blade_top_menu_setting"."top_menu_id" IS '顶部菜单主键'; +COMMENT ON COLUMN "blade_top_menu_setting"."menu_id" IS '菜单主键'; +COMMENT ON TABLE "blade_top_menu_setting" IS '顶部菜单配置表'; + +-- ---------------------------- +-- Table structure for blade_user +-- ---------------------------- +DROP TABLE IF EXISTS "blade_user"; +CREATE TABLE "blade_user" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "code" varchar(12) COLLATE "pg_catalog"."default", + "user_type" int2, + "account" varchar(45) COLLATE "pg_catalog"."default", + "password" varchar(45) COLLATE "pg_catalog"."default", + "name" varchar(20) COLLATE "pg_catalog"."default", + "real_name" varchar(10) COLLATE "pg_catalog"."default", + "avatar" varchar(500) COLLATE "pg_catalog"."default", + "email" varchar(45) COLLATE "pg_catalog"."default", + "phone" varchar(45) COLLATE "pg_catalog"."default", + "birthday" timestamp(6), + "sex" int2, + "role_id" varchar(1000) COLLATE "pg_catalog"."default", + "dept_id" varchar(1000) COLLATE "pg_catalog"."default", + "post_id" varchar(1000) COLLATE "pg_catalog"."default", + "create_user" int8, + "create_dept" int8, + "create_time" timestamp(6), + "update_user" int8, + "update_time" timestamp(6), + "status" int4, + "is_deleted" int4 +) +; +COMMENT ON COLUMN "blade_user"."id" IS '主键'; +COMMENT ON COLUMN "blade_user"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_user"."code" IS '用户编号'; +COMMENT ON COLUMN "blade_user"."user_type" IS '用户平台'; +COMMENT ON COLUMN "blade_user"."account" IS '账号'; +COMMENT ON COLUMN "blade_user"."password" IS '密码'; +COMMENT ON COLUMN "blade_user"."name" IS '昵称'; +COMMENT ON COLUMN "blade_user"."real_name" IS '真名'; +COMMENT ON COLUMN "blade_user"."avatar" IS '头像'; +COMMENT ON COLUMN "blade_user"."email" IS '邮箱'; +COMMENT ON COLUMN "blade_user"."phone" IS '手机'; +COMMENT ON COLUMN "blade_user"."birthday" IS '生日'; +COMMENT ON COLUMN "blade_user"."sex" IS '性别'; +COMMENT ON COLUMN "blade_user"."role_id" IS '角色id'; +COMMENT ON COLUMN "blade_user"."dept_id" IS '部门id'; +COMMENT ON COLUMN "blade_user"."post_id" IS '岗位id'; +COMMENT ON COLUMN "blade_user"."create_user" IS '创建人'; +COMMENT ON COLUMN "blade_user"."create_dept" IS '创建部门'; +COMMENT ON COLUMN "blade_user"."create_time" IS '创建时间'; +COMMENT ON COLUMN "blade_user"."update_user" IS '修改人'; +COMMENT ON COLUMN "blade_user"."update_time" IS '修改时间'; +COMMENT ON COLUMN "blade_user"."status" IS '状态'; +COMMENT ON COLUMN "blade_user"."is_deleted" IS '是否已删除'; +COMMENT ON TABLE "blade_user" IS '用户表'; + +-- ---------------------------- +-- Records of blade_user +-- ---------------------------- +BEGIN; +INSERT INTO "blade_user" VALUES (1123598821738675201, '000000', NULL, 1, 'admin', '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://bladex.cn/images/logo.png', 'admin@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675201', '1123598813738675201', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2018-08-08 00:00:00', 1123598821738675201, '2018-08-08 00:00:00', 1, 0); +INSERT INTO "blade_user" VALUES (1123598821738675202, '000000', NULL, 1, 'hr', '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://bladex.cn/images/logo.png', 'hr@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675203', '1123598813738675202', '1123598817738675207', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:10', 1123598821738675201, '2019-04-27 17:03:10', 1, 0); +INSERT INTO "blade_user" VALUES (1123598821738675203, '000000', NULL, 1, 'manager', 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://bladex.cn/images/logo.png', 'manager@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675204', '1123598813738675202', '1123598817738675206', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:38', 1123598821738675201, '2019-04-27 17:03:38', 1, 0); +INSERT INTO "blade_user" VALUES (1123598821738675204, '000000', NULL, 1, 'boss', 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://bladex.cn/images/logo.png', 'boss@bladex.vip', '123333333333', '2018-08-08 00:00:00', 1, '1123598816738675205', '1123598813738675202', '1123598817738675201', 1123598821738675201, 1123598813738675201, '2019-04-27 17:03:55', 1123598821738675201, '2019-04-27 17:03:55', 1, 0); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_user_app +-- ---------------------------- +DROP TABLE IF EXISTS "blade_user_app"; +CREATE TABLE "blade_user_app" ( + "id" int8 NOT NULL, + "user_id" int8, + "user_ext" varchar(255) COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "blade_user_app"."id" IS '主键'; +COMMENT ON COLUMN "blade_user_app"."user_id" IS '用户ID'; +COMMENT ON COLUMN "blade_user_app"."user_ext" IS '用户拓展信息'; +COMMENT ON TABLE "blade_user_app" IS '用户平台拓展表'; + +-- ---------------------------- +-- Table structure for blade_user_dept +-- ---------------------------- +DROP TABLE IF EXISTS "blade_user_dept"; +CREATE TABLE "blade_user_dept" ( + "id" int8 NOT NULL, + "user_id" int8, + "dept_id" int8 +) +; +COMMENT ON COLUMN "blade_user_dept"."id" IS '主键'; +COMMENT ON COLUMN "blade_user_dept"."user_id" IS '用户ID'; +COMMENT ON COLUMN "blade_user_dept"."dept_id" IS '部门ID'; +COMMENT ON TABLE "blade_user_dept" IS '用户部门表'; + +-- ---------------------------- +-- Records of blade_user_dept +-- ---------------------------- +BEGIN; +INSERT INTO "blade_user_dept" VALUES (1203503640757788674, 1123598821738675201, 1123598813738675201); +INSERT INTO "blade_user_dept" VALUES (1203503653323923458, 1123598821738675202, 1123598813738675202); +INSERT INTO "blade_user_dept" VALUES (1203503663402835969, 1123598821738675203, 1123598813738675202); +INSERT INTO "blade_user_dept" VALUES (1203503672911323137, 1123598821738675204, 1123598813738675202); +COMMIT; + +-- ---------------------------- +-- Table structure for blade_user_oauth +-- ---------------------------- +DROP TABLE IF EXISTS "blade_user_oauth"; +CREATE TABLE "blade_user_oauth" ( + "id" int8 NOT NULL, + "tenant_id" varchar(12) COLLATE "pg_catalog"."default", + "uuid" varchar(64) COLLATE "pg_catalog"."default", + "user_id" int8, + "username" varchar(32) COLLATE "pg_catalog"."default", + "nickname" varchar(64) COLLATE "pg_catalog"."default", + "avatar" varchar(1000) COLLATE "pg_catalog"."default", + "blog" varchar(50) COLLATE "pg_catalog"."default", + "company" varchar(255) COLLATE "pg_catalog"."default", + "location" varchar(255) COLLATE "pg_catalog"."default", + "email" varchar(255) COLLATE "pg_catalog"."default", + "remark" varchar(255) COLLATE "pg_catalog"."default", + "gender" varchar(16) COLLATE "pg_catalog"."default", + "source" varchar(16) COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "blade_user_oauth"."id" IS '主键'; +COMMENT ON COLUMN "blade_user_oauth"."tenant_id" IS '租户ID'; +COMMENT ON COLUMN "blade_user_oauth"."uuid" IS '第三方系统用户ID'; +COMMENT ON COLUMN "blade_user_oauth"."user_id" IS '用户ID'; +COMMENT ON COLUMN "blade_user_oauth"."username" IS '账号'; +COMMENT ON COLUMN "blade_user_oauth"."nickname" IS '用户名'; +COMMENT ON COLUMN "blade_user_oauth"."avatar" IS '头像'; +COMMENT ON COLUMN "blade_user_oauth"."blog" IS '应用主页'; +COMMENT ON COLUMN "blade_user_oauth"."company" IS '公司名'; +COMMENT ON COLUMN "blade_user_oauth"."location" IS '地址'; +COMMENT ON COLUMN "blade_user_oauth"."email" IS '邮件'; +COMMENT ON COLUMN "blade_user_oauth"."remark" IS '备注'; +COMMENT ON COLUMN "blade_user_oauth"."gender" IS '性别'; +COMMENT ON COLUMN "blade_user_oauth"."source" IS '来源'; +COMMENT ON TABLE "blade_user_oauth" IS '用户第三方认证表'; + +-- ---------------------------- +-- Table structure for blade_user_other +-- ---------------------------- +DROP TABLE IF EXISTS "blade_user_other"; +CREATE TABLE "blade_user_other" ( + "id" int8 NOT NULL, + "user_id" int8, + "user_ext" varchar(255) COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "blade_user_other"."id" IS '主键'; +COMMENT ON COLUMN "blade_user_other"."user_id" IS '用户ID'; +COMMENT ON COLUMN "blade_user_other"."user_ext" IS '用户拓展信息'; +COMMENT ON TABLE "blade_user_other" IS '用户平台拓展表'; + +-- ---------------------------- +-- Table structure for blade_user_web +-- ---------------------------- +DROP TABLE IF EXISTS "blade_user_web"; +CREATE TABLE "blade_user_web" ( + "id" int8 NOT NULL, + "user_id" int8, + "user_ext" varchar(255) COLLATE "pg_catalog"."default" +) +; +COMMENT ON COLUMN "blade_user_web"."id" IS '主键'; +COMMENT ON COLUMN "blade_user_web"."user_id" IS '用户ID'; +COMMENT ON COLUMN "blade_user_web"."user_ext" IS '用户拓展信息'; +COMMENT ON TABLE "blade_user_web" IS '用户平台拓展表'; + +-- ---------------------------- +-- Primary Key structure for table blade_attach +-- ---------------------------- +ALTER TABLE "blade_attach" ADD CONSTRAINT "blade_attach_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_client +-- ---------------------------- +ALTER TABLE "blade_client" ADD CONSTRAINT "blade_client_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_code +-- ---------------------------- +ALTER TABLE "blade_code" ADD CONSTRAINT "blade_code_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_datasource +-- ---------------------------- +ALTER TABLE "blade_datasource" ADD CONSTRAINT "blade_datasource_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_dept +-- ---------------------------- +ALTER TABLE "blade_dept" ADD CONSTRAINT "blade_dept_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_dict +-- ---------------------------- +ALTER TABLE "blade_dict" ADD CONSTRAINT "blade_dict_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_dict_biz +-- ---------------------------- +ALTER TABLE "blade_dict_biz" ADD CONSTRAINT "blade_dict_biz_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_job_info +-- ---------------------------- +ALTER TABLE "blade_job_info" ADD CONSTRAINT "blade_job_info_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_job_server +-- ---------------------------- +ALTER TABLE "blade_job_server" ADD CONSTRAINT "blade_job_server_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_log_api +-- ---------------------------- +ALTER TABLE "blade_log_api" ADD CONSTRAINT "blade_log_api_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_log_error +-- ---------------------------- +ALTER TABLE "blade_log_error" ADD CONSTRAINT "blade_log_error_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_log_usual +-- ---------------------------- +ALTER TABLE "blade_log_usual" ADD CONSTRAINT "blade_log_usual_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_menu +-- ---------------------------- +ALTER TABLE "blade_menu" ADD CONSTRAINT "blade_menu_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_model +-- ---------------------------- +ALTER TABLE "blade_model" ADD CONSTRAINT "blade_model_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_model_prototype +-- ---------------------------- +ALTER TABLE "blade_model_prototype" ADD CONSTRAINT "blade_model_prototype_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_notice +-- ---------------------------- +ALTER TABLE "blade_notice" ADD CONSTRAINT "blade_notice_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_oss +-- ---------------------------- +ALTER TABLE "blade_oss" ADD CONSTRAINT "blade_oss_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_param +-- ---------------------------- +ALTER TABLE "blade_param" ADD CONSTRAINT "blade_param_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_post +-- ---------------------------- +ALTER TABLE "blade_post" ADD CONSTRAINT "blade_post_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_process_leave +-- ---------------------------- +ALTER TABLE "blade_process_leave" ADD CONSTRAINT "blade_process_leave_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_region +-- ---------------------------- +ALTER TABLE "blade_region" ADD CONSTRAINT "blade_region_pkey" PRIMARY KEY ("code"); + +-- ---------------------------- +-- Primary Key structure for table blade_report_file +-- ---------------------------- +ALTER TABLE "blade_report_file" ADD CONSTRAINT "blade_report_file_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_role +-- ---------------------------- +ALTER TABLE "blade_role" ADD CONSTRAINT "blade_role_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_role_menu +-- ---------------------------- +ALTER TABLE "blade_role_menu" ADD CONSTRAINT "blade_role_menu_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_role_scope +-- ---------------------------- +ALTER TABLE "blade_role_scope" ADD CONSTRAINT "blade_role_scope_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_scope_api +-- ---------------------------- +ALTER TABLE "blade_scope_api" ADD CONSTRAINT "blade_scope_api_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_scope_data +-- ---------------------------- +ALTER TABLE "blade_scope_data" ADD CONSTRAINT "blade_scope_data_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_sms +-- ---------------------------- +ALTER TABLE "blade_sms" ADD CONSTRAINT "blade_sms_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_tenant +-- ---------------------------- +ALTER TABLE "blade_tenant" ADD CONSTRAINT "blade_tenant_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_tenant_package +-- ---------------------------- +ALTER TABLE "blade_tenant_package" ADD CONSTRAINT "blade_tenant_package_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_top_menu +-- ---------------------------- +ALTER TABLE "blade_top_menu" ADD CONSTRAINT "blade_top_menu_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_top_menu_setting +-- ---------------------------- +ALTER TABLE "blade_top_menu_setting" ADD CONSTRAINT "blade_top_menu_setting_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_user +-- ---------------------------- +ALTER TABLE "blade_user" ADD CONSTRAINT "blade_user_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_user_app +-- ---------------------------- +ALTER TABLE "blade_user_app" ADD CONSTRAINT "blade_user_app_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_user_dept +-- ---------------------------- +ALTER TABLE "blade_user_dept" ADD CONSTRAINT "blade_user_dept_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_user_oauth +-- ---------------------------- +ALTER TABLE "blade_user_oauth" ADD CONSTRAINT "blade_user_oauth_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_user_other +-- ---------------------------- +ALTER TABLE "blade_user_other" ADD CONSTRAINT "blade_user_other_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table blade_user_web +-- ---------------------------- +ALTER TABLE "blade_user_web" ADD CONSTRAINT "blade_user_web_pkey" PRIMARY KEY ("id"); diff --git a/doc/sql/bladex/bladex.sqlserver.all.create.sql b/doc/sql/bladex/bladex.sqlserver.all.create.sql new file mode 100644 index 0000000..246cb40 --- /dev/null +++ b/doc/sql/bladex/bladex.sqlserver.all.create.sql @@ -0,0 +1,5511 @@ +/* + Navicat Premium Data Transfer + + Source Server : sqlserver_remote + Source Server Type : SQL Server + Source Server Version : 14003465 + Source Host : 127.0.0.1:1433 + Source Catalog : bladex + Source Schema : dbo + + Target Server Type : SQL Server + Target Server Version : 14003465 + File Encoding : 65001 + + Date: 01/01/2024 01:58:31 +*/ + + +-- ---------------------------- +-- Table structure for blade_attach +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_attach]') AND type IN ('U')) + DROP TABLE [dbo].[blade_attach] +GO + +CREATE TABLE [dbo].[blade_attach] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [link] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [domain_url] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [name] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [original_name] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [extension] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [attach_size] bigint NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_attach] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'link' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件域名', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'domain_url' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件原名', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'original_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件拓展名', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'extension' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件大小', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'attach_size' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附件表', +'SCHEMA', N'dbo', +'TABLE', N'blade_attach' +GO + + +-- ---------------------------- +-- Table structure for blade_client +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_client]') AND type IN ('U')) + DROP TABLE [dbo].[blade_client] +GO + +CREATE TABLE [dbo].[blade_client] ( + [id] bigint NOT NULL, + [client_id] nvarchar(48) COLLATE Chinese_PRC_CI_AS NOT NULL, + [client_secret] nvarchar(256) COLLATE Chinese_PRC_CI_AS NOT NULL, + [resource_ids] nvarchar(256) COLLATE Chinese_PRC_CI_AS NULL, + [scope] nvarchar(256) COLLATE Chinese_PRC_CI_AS NOT NULL, + [authorized_grant_types] nvarchar(256) COLLATE Chinese_PRC_CI_AS NOT NULL, + [web_server_redirect_uri] nvarchar(256) COLLATE Chinese_PRC_CI_AS NULL, + [authorities] nvarchar(256) COLLATE Chinese_PRC_CI_AS NULL, + [access_token_validity] int NOT NULL, + [refresh_token_validity] int NOT NULL, + [additional_information] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [autoapprove] nvarchar(256) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NOT NULL, + [is_deleted] int NOT NULL +) +GO + +ALTER TABLE [dbo].[blade_client] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'客户端id', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'client_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'客户端密钥', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'client_secret' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'资源集合', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'resource_ids' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'授权范围', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'scope' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'授权类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'authorized_grant_types' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'回调地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'web_server_redirect_uri' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'权限', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'authorities' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'令牌过期秒数', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'access_token_validity' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'刷新令牌过期秒数', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'refresh_token_validity' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'附加说明', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'additional_information' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'自动授权', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'autoapprove' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_client', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'客户端表', +'SCHEMA', N'dbo', +'TABLE', N'blade_client' +GO + + +-- ---------------------------- +-- Records of blade_client +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_client] VALUES (N'1123598811738675201', N'sword', N'sword_secret', NULL, N'all', N'authorization_code,password,refresh_token,captcha,social,register', N'http://localhost:8888', NULL, N'3600', N'604800', NULL, NULL, N'1123598815738675201', N'1123598813738675201', N'2019-03-24 10:40:55', N'1123598815738675201', N'2019-03-24 10:40:59', N'1', N'0'), (N'1123598811738675202', N'saber', N'saber_secret', NULL, N'all', N'authorization_code,password,refresh_token,captcha,social,register', N'http://localhost:1888', NULL, N'3600', N'604800', NULL, NULL, N'1123598815738675201', N'1123598813738675201', N'2019-03-24 10:42:29', N'1123598815738675201', N'2019-03-24 10:42:32', N'1', N'0'), (1123598811738675203, N'saber3', N'saber3_secret', NULL, N'all', N'authorization_code,password,refresh_token,captcha,social,register', N'http://localhost:2888/login', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0), (1123598811738675204, N'rider', N'rider_secret', NULL, N'all', N'authorization_code,password,refresh_token,captcha,social,register', N'http://localhost:88', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_code +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_code]') AND type IN ('U')) + DROP TABLE [dbo].[blade_code] +GO + +CREATE TABLE [dbo].[blade_code] ( + [id] bigint NOT NULL, + [model_id] bigint NULL, + [service_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [code_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [table_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [table_prefix] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [pk_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [package_name] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [template_type] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [author] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [sub_model_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [sub_fk_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [tree_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [tree_pid] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [tree_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [base_mode] int NULL, + [wrap_mode] int NULL, + [feign_mode] int NULL, + [code_style] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [api_path] nvarchar(2000) COLLATE Chinese_PRC_CI_AS NULL, + [web_path] nvarchar(2000) COLLATE Chinese_PRC_CI_AS NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_code] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据模型主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'model_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'service_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模块名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'code_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'表名', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'table_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'表前缀', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'table_prefix' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键名', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'pk_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'后端包名', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'package_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模版类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'template_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'作者信息', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'author' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'子表模型主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'sub_model_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'子表绑定外键', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'sub_fk_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'树主键字段', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'tree_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'树父主键字段', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'tree_pid' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'树名称字段', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'tree_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'基础业务模式', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'base_mode' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'包装器模式', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'wrap_mode' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'远程调用模式', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'feign_mode' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'代码风格', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'code_style' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'后端路径', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'api_path' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'前端路径', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'web_path' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_code', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'代码生成表', +'SCHEMA', N'dbo', +'TABLE', N'blade_code' +GO + + +-- ---------------------------- +-- Table structure for blade_datasource +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_datasource]') AND type IN ('U')) + DROP TABLE [dbo].[blade_datasource] +GO + +CREATE TABLE [dbo].[blade_datasource] ( + [id] bigint NOT NULL, + [category] int DEFAULT ((1)) NULL, + [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL, + [driver_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL, + [url] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [username] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [password] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [sharding_config] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_datasource] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据源类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'驱动类', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'driver_class' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'连接地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'url' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户名', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'username' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'密码', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'password' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'分库分表配置', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'sharding_config' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据源配置表', +'SCHEMA', N'dbo', +'TABLE', N'blade_datasource' +GO + + +-- ---------------------------- +-- Records of blade_datasource +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_datasource] VALUES (N'1161483357481541634', N'1', N'mysql', N'com.mysql.cj.jdbc.Driver', N'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', N'root', N'root', N'', N'mysql', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:06', N'1123598821738675201', N'2020-08-08 12:20:06', N'1', N'0'), (N'1161483504353484802', N'1', N'postgresql', N'org.postgresql.Driver', N'jdbc:postgresql://127.0.0.1:5432/bladex', N'postgres', N'123456', N'', N'postgresql', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:02', N'1123598821738675201', N'2020-08-08 12:20:02', N'1', N'0'), (N'1161483594023510018', N'1', N'oracle', N'oracle.jdbc.OracleDriver', N'jdbc:oracle:thin:@127.0.0.1:1521:orcl', N'BLADEX', N'BLADEX', N'', N'oracle', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:03', N'1123598821738675201', N'2020-08-08 12:20:03', N'1', N'0'), (N'1161483594023510020', N'1', N'sqlserver', N'com.microsoft.sqlserver.jdbc.SQLServerDriver', N'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', N'bladex', N'bladex', N'', N'sqlserver', N'1123598821738675201', N'1123598813738675201', N'2020-08-08 12:20:03', N'1123598821738675201', N'2020-08-08 12:20:03', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_dept +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dept]') AND type IN ('U')) + DROP TABLE [dbo].[blade_dept] +GO + +CREATE TABLE [dbo].[blade_dept] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [parent_id] bigint NULL, + [ancestors] nvarchar(2000) COLLATE Chinese_PRC_CI_AS NULL, + [dept_category] int NULL, + [dept_name] nvarchar(45) COLLATE Chinese_PRC_CI_AS NULL, + [full_name] nvarchar(45) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_dept] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'父主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'parent_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'祖级列表', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'ancestors' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'部门类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'dept_category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'部门名', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'dept_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'部门全称', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'full_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'机构表', +'SCHEMA', N'dbo', +'TABLE', N'blade_dept' +GO + + +-- ---------------------------- +-- Records of blade_dept +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_dept] VALUES (N'1123598813738675201', N'000000', N'0', N'0', N'1', N'布雷德科技', N'上海布雷德科技有限公司', N'1', NULL, N'0'), (N'1123598813738675202', N'000000', N'1123598813738675201', N'0,1123598813738675201', N'1', N'常州布雷德', N'常州布雷德科技有限公司', N'1', NULL, N'0'), (N'1123598813738675203', N'000000', N'1123598813738675201', N'0,1123598813738675201', N'1', N'苏州布雷德', N'苏州布雷德科技有限公司', N'1', NULL, N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_dict +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dict]') AND type IN ('U')) + DROP TABLE [dbo].[blade_dict] +GO + +CREATE TABLE [dbo].[blade_dict] ( + [id] bigint NOT NULL, + [parent_id] bigint NULL, + [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [dict_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [dict_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [is_sealed] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_dict] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'父主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'parent_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典码', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典值', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'dict_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'dict_value' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已封存', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'is_sealed' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典表', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict' +GO + + +-- ---------------------------- +-- Records of blade_dict +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_dict] VALUES (N'1123598814738675201', N'0', N'sex', N'-1', N'性别', N'1', NULL, N'0', N'0'), (N'1123598814738675202', N'1123598814738675201', N'sex', N'1', N'男', N'1', NULL, N'0', N'0'), (N'1123598814738675203', N'1123598814738675201', N'sex', N'2', N'女', N'2', NULL, N'0', N'0'), (N'1123598814738675204', N'0', N'notice', N'-1', N'通知类型', N'2', NULL, N'0', N'0'), (N'1123598814738675205', N'1123598814738675204', N'notice', N'1', N'发布通知', N'1', NULL, N'0', N'0'), (N'1123598814738675206', N'1123598814738675204', N'notice', N'2', N'批转通知', N'2', NULL, N'0', N'0'), (N'1123598814738675207', N'1123598814738675204', N'notice', N'3', N'转发通知', N'3', NULL, N'0', N'0'), (N'1123598814738675208', N'1123598814738675204', N'notice', N'4', N'指示通知', N'4', NULL, N'0', N'0'), (N'1123598814738675209', N'1123598814738675204', N'notice', N'5', N'任免通知', N'5', NULL, N'0', N'0'), (N'1123598814738675210', N'1123598814738675204', N'notice', N'6', N'事务通知', N'6', NULL, N'0', N'0'), (N'1123598814738675211', N'0', N'menu_category', N'-1', N'菜单类型', N'3', NULL, N'0', N'0'), (N'1123598814738675212', N'1123598814738675211', N'menu_category', N'1', N'菜单', N'1', NULL, N'0', N'0'), (N'1123598814738675213', N'1123598814738675211', N'menu_category', N'2', N'按钮', N'2', NULL, N'0', N'0'), (N'1123598814738675214', N'0', N'button_func', N'-1', N'按钮功能', N'4', NULL, N'0', N'0'), (N'1123598814738675215', N'1123598814738675214', N'button_func', N'1', N'工具栏', N'1', NULL, N'0', N'0'), (N'1123598814738675216', N'1123598814738675214', N'button_func', N'2', N'操作栏', N'2', NULL, N'0', N'0'), (N'1123598814738675217', N'1123598814738675214', N'button_func', N'3', N'工具操作栏', N'3', NULL, N'0', N'0'), (N'1123598814738675218', N'0', N'yes_no', N'-1', N'是否', N'5', NULL, N'0', N'0'), (N'1123598814738675219', N'1123598814738675218', N'yes_no', N'1', N'否', N'1', NULL, N'0', N'0'), (N'1123598814738675220', N'1123598814738675218', N'yes_no', N'2', N'是', N'2', NULL, N'0', N'0'), (N'1123598814738675221', N'0', N'flow', N'-1', N'流程类型', N'5', NULL, N'0', N'0'), (N'1123598814738675222', N'1123598814738675221', N'flow', N'1', N'请假流程', N'1', N'leave', N'0', N'0'), (N'1123598814738675223', N'1123598814738675221', N'flow', N'2', N'报销流程', N'2', N'expense', N'0', N'0'), (N'1123598814738675227', N'0', N'org_category', N'-1', N'机构类型', N'7', NULL, N'0', N'0'), (N'1123598814738675228', N'1123598814738675227', N'org_category', N'1', N'公司', N'1', NULL, N'0', N'0'), (N'1123598814738675229', N'1123598814738675227', N'org_category', N'2', N'部门', N'2', NULL, N'0', N'0'), (N'1123598814738675230', N'1123598814738675227', N'org_category', N'3', N'小组', N'3', NULL, N'0', N'0'), (N'1123598814738675231', N'0', N'data_scope_type', N'-1', N'数据权限', N'8', NULL, N'0', N'0'), (N'1123598814738675232', N'1123598814738675231', N'data_scope_type', N'1', N'全部可见', N'1', NULL, N'0', N'0'), (N'1123598814738675233', N'1123598814738675231', N'data_scope_type', N'2', N'本人可见', N'2', NULL, N'0', N'0'), (N'1123598814738675234', N'1123598814738675231', N'data_scope_type', N'3', N'所在机构可见', N'3', NULL, N'0', N'0'), (N'1123598814738675235', N'1123598814738675231', N'data_scope_type', N'4', N'所在机构及子级可见', N'4', NULL, N'0', N'0'), (N'1123598814738675236', N'1123598814738675231', N'data_scope_type', N'5', N'自定义', N'5', NULL, N'0', N'0'), (N'1123598814738675237', N'0', N'api_scope_type', N'-1', N'接口权限', N'10', NULL, N'0', N'0'), (N'1123598814738675238', N'1123598814738675237', N'api_scope_type', N'1', N'系统接口', N'1', NULL, N'0', N'0'), (N'1123598814738675239', N'1123598814738675237', N'api_scope_type', N'2', N'业务接口', N'2', NULL, N'0', N'0'), (N'1123598814738675240', N'0', N'scope_category', N'-1', N'权限类型', N'10', NULL, N'0', N'0'), (N'1123598814738675241', N'1123598814738675240', N'scope_category', N'1', N'数据权限', N'1', NULL, N'0', N'0'), (N'1123598814738675242', N'1123598814738675240', N'scope_category', N'2', N'接口权限', N'2', NULL, N'0', N'0'), (N'1123598814738676224', N'0', N'oss', N'-1', N'对象存储类型', N'6', NULL, N'0', N'0'), (N'1123598814738676225', N'1123598814738676224', N'oss', N'1', N'minio', N'1', NULL, N'0', N'0'), (N'1123598814738676226', N'1123598814738676224', N'oss', N'2', N'七牛云', N'2', NULL, N'0', N'0'), (N'1123598814738676227', N'1123598814738676224', N'oss', N'3', N'阿里云', N'3', NULL, N'0', N'0'), (N'1123598814738676228', N'1123598814738676224', N'oss', N'4', N'腾讯云', N'4', NULL, N'0', N'0'), (N'1123598814738676229', N'1123598814738676224', N'oss', N'5', N'华为云', N'5', NULL, N'0', N'0'), (N'1123598814738676230', N'1123598814738676224', N'oss', N'6', N'amazon s3', N'6', NULL, N'0', N'0'), (N'1123598814738677220', N'0', N'sms', N'-1', N'短信服务类型', N'11', NULL, N'0', N'0'), (N'1123598814738677221', N'1123598814738677220', N'sms', N'1', N'云片', N'1', NULL, N'0', N'0'), (N'1123598814738677222', N'1123598814738677220', N'sms', N'2', N'七牛云', N'2', NULL, N'0', N'0'), (N'1123598814738677223', N'1123598814738677220', N'sms', N'3', N'阿里云', N'3', NULL, N'0', N'0'), (N'1123598814738677224', N'1123598814738677220', N'sms', N'4', N'腾讯云', N'4', NULL, N'0', N'0'), (N'1123598814738777220', N'0', N'post_category', N'-1', N'岗位类型', N'12', NULL, N'0', N'0'), (N'1123598814738777221', N'1123598814738777220', N'post_category', N'1', N'高层', N'1', NULL, N'0', N'0'), (N'1123598814738777222', N'1123598814738777220', N'post_category', N'2', N'中层', N'2', NULL, N'0', N'0'), (N'1123598814738777223', N'1123598814738777220', N'post_category', N'3', N'基层', N'3', NULL, N'0', N'0'), (N'1123598814738777224', N'1123598814738777220', N'post_category', N'4', N'其他', N'4', NULL, N'0', N'0'), (N'1123598814738777230', N'0', N'region', N'-1', N'行政区划', N'13', NULL, N'0', N'0'), (N'1123598814738777231', N'1123598814738777230', N'region', N'0', N'国家', N'0', NULL, N'0', N'0'), (N'1123598814738777232', N'1123598814738777230', N'region', N'1', N'省份/直辖市', N'1', NULL, N'0', N'0'), (N'1123598814738777233', N'1123598814738777230', N'region', N'2', N'地市', N'2', NULL, N'0', N'0'), (N'1123598814738777234', N'1123598814738777230', N'region', N'3', N'区县', N'3', NULL, N'0', N'0'), (N'1123598814738777235', N'1123598814738777230', N'region', N'4', N'乡镇', N'4', NULL, N'0', N'0'), (N'1123598814738777236', N'1123598814738777230', N'region', N'5', N'村委', N'5', NULL, N'0', N'0'), (N'1123598814738778200', N'0', N'user_type', N'-1', N'用户平台', N'14', NULL, N'0', N'0'), (N'1123598814738778201', N'1123598814738778200', N'user_type', N'1', N'WEB', N'1', NULL, N'0', N'0'), (N'1123598814738778202', N'1123598814738778200', N'user_type', N'2', N'APP', N'2', NULL, N'0', N'0'), (N'1123598814738778203', N'1123598814738778200', N'user_type', N'3', N'OTHER', N'3', NULL, N'0', N'0'), (N'1735215689272508418', N'0', N'datasource_category', N'-1', N'数据源类型', N'16', N'', N'0', N'0'), (N'1735215870613241857', N'1735215689272508418', N'datasource_category', N'1', N'jdbc', N'1', N'', N'0', N'0'), (N'1735215901546233858', N'1735215689272508418', N'datasource_category', N'2', N'sharding', N'2', N'', N'0', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_dict_biz +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_dict_biz]') AND type IN ('U')) + DROP TABLE [dbo].[blade_dict_biz] +GO + +CREATE TABLE [dbo].[blade_dict_biz] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [parent_id] bigint NULL, + [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [dict_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [dict_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [is_sealed] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_dict_biz] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'父主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'parent_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典码', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典值', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'dict_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'dict_value' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已封存', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'is_sealed' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'业务字典表', +'SCHEMA', N'dbo', +'TABLE', N'blade_dict_biz' +GO + + +-- ---------------------------- +-- Table structure for blade_job_info +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_job_info]') AND type IN ('U')) + DROP TABLE [dbo].[blade_job_info] +GO + +CREATE TABLE [dbo].[blade_job_info] ( + [id] bigint NOT NULL, + [job_server_id] bigint NULL, + [job_id] bigint NULL, + [job_name] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [job_description] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [job_params] nvarchar(max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [time_expression_type] int NULL, + [time_expression] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [execute_type] int NULL, + [processor_type] int NULL, + [processor_info] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [max_instance_num] int NULL, + [concurrency] int NULL, + [instance_time_limit] bigint NULL, + [instance_retry_num] int NULL, + [task_retry_num] int NULL, + [min_cpu_cores] float(53) NULL, + [min_memory_space] float(53) NULL, + [min_disk_space] float(53) NULL, + [designated_workers] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [max_worker_count] int NULL, + [notify_user_ids] nvarchar(2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [enable] int NULL, + [dispatch_strategy] int NULL, + [lifecycle] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [alert_threshold] int NULL, + [statistic_window_len] int NULL, + [silence_window_len] int NULL, + [log_type] int NULL, + [log_level] int NULL, + [extra] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_job_info] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务服务ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'job_server_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'job_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'job_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务描述', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'job_description' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'job_params' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'时间表达式类型,枚举值', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'time_expression_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'time_expression' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'执行类型,枚举值', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'execute_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'处理器类型,枚举值', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'processor_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'processor_info' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'max_instance_num' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'concurrency' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'instance_time_limit' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'instance_retry_num' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'task_retry_num' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'min_cpu_cores' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'min_memory_space' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'min_disk_space' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'designated_workers' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'最大执行机器数量,限定调动执行的机器数量,0代表无限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'max_worker_count' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接收报警的用户 ID 列表', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'notify_user_ids' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否启用该任务,未启用的任务不会被调度', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'enable' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'dispatch_strategy' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'lifecycle' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'错误阈值,0代表不限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'alert_threshold' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'统计的窗口长度(s),0代表不限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'statistic_window_len' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'沉默时间窗口(s),0代表不限制', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'silence_window_len' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志配置', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'log_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志级别', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'log_level' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'extra' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务信息表', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_info' +GO + + +-- ---------------------------- +-- Table structure for blade_job_server +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_job_server]') AND type IN ('U')) + DROP TABLE [dbo].[blade_job_server] +GO + +CREATE TABLE [dbo].[blade_job_server] ( + [id] bigint NOT NULL, + [job_server_name] nvarchar(50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [job_server_url] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [job_app_name] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [job_app_password] nvarchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [job_remark] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_job_server] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务服务名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'job_server_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务服务器地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'job_server_url' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务应用名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'job_app_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务应用密码', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'job_app_password' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'job_remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'任务服务表', +'SCHEMA', N'dbo', +'TABLE', N'blade_job_server' +GO + + +-- ---------------------------- +-- Records of blade_job_server +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_job_server] VALUES (N'1741512022505590785', N'任务调度服务器', N'127.0.0.1:7700', N'blade-job', N'blade-job', N'基础服务', N'1123598821738675201', N'1123598813738675201', N'2024-01-01 01:29:57', N'1123598821738675201', N'2024-01-01 01:29:57', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_log_api +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_api]') AND type IN ('U')) + DROP TABLE [dbo].[blade_log_api] +GO + +CREATE TABLE [dbo].[blade_log_api] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [type] nchar(1) COLLATE Chinese_PRC_CI_AS NULL, + [title] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS NULL, + [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [time] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [create_time] datetime2(0) NULL +) +GO + +ALTER TABLE [dbo].[blade_log_api] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'service_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'server_host' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器IP地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'server_ip' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器环境', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'env' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志标题', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'title' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作方式', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'method' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'请求URI', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'request_uri' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户代理', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'user_agent' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作IP地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'remote_ip' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'方法类', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'method_class' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'方法名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'method_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作提交的数据', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'params' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'执行时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建者', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'create_by' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接口日志表', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_api' +GO + + +-- ---------------------------- +-- Table structure for blade_log_error +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_error]') AND type IN ('U')) + DROP TABLE [dbo].[blade_log_error] +GO + +CREATE TABLE [dbo].[blade_log_error] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS NULL, + [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [stack_trace] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [exception_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [message] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [line_number] int NULL, + [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [file_name] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [create_time] datetime2(0) NULL +) +GO + +ALTER TABLE [dbo].[blade_log_error] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'service_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'server_host' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器IP地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'server_ip' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'系统环境', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'env' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作方式', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'method' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'请求URI', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'request_uri' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户代理', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'user_agent' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'堆栈', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'stack_trace' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'异常名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'exception_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'异常信息', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'message' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'错误行数', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'line_number' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作IP地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'remote_ip' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'方法类', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'method_class' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'文件名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'file_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'方法名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'method_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作提交的数据', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'params' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建者', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'create_by' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'错误日志表', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_error' +GO + + +-- ---------------------------- +-- Table structure for blade_log_usual +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_log_usual]') AND type IN ('U')) + DROP TABLE [dbo].[blade_log_usual] +GO + +CREATE TABLE [dbo].[blade_log_usual] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [service_id] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [server_host] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [server_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [env] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [log_level] nvarchar(10) COLLATE Chinese_PRC_CI_AS NULL, + [log_id] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL, + [log_data] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [method] nvarchar(10) COLLATE Chinese_PRC_CI_AS NULL, + [request_uri] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [remote_ip] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method_class] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [method_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [user_agent] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [params] nvarchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [create_by] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [create_time] datetime2(0) NULL +) +GO + +ALTER TABLE [dbo].[blade_log_usual] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'service_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'server_host' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'服务器IP地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'server_ip' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'系统环境', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'env' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志级别', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'log_level' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志业务id', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'log_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'日志数据', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'log_data' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作方式', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'method' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'请求URI', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'request_uri' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作IP地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'remote_ip' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'方法类', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'method_class' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'方法名', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'method_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户代理', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'user_agent' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作提交的数据', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'params' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建者', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'create_by' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'通用日志表', +'SCHEMA', N'dbo', +'TABLE', N'blade_log_usual' +GO + + +-- ---------------------------- +-- Table structure for blade_menu +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_menu]') AND type IN ('U')) + DROP TABLE [dbo].[blade_menu] +GO + +CREATE TABLE [dbo].[blade_menu] ( + [id] bigint NOT NULL, + [parent_id] bigint NULL, + [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [alias] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [path] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [source] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [category] int NULL, + [action] int NULL, + [is_open] int NULL, + [component] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_menu] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'父级菜单', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'parent_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单别名', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'alias' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'请求地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'path' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单资源', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'source' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'操作按钮类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'action' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否打开新页面', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'is_open' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'组件地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'component' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单表', +'SCHEMA', N'dbo', +'TABLE', N'blade_menu' +GO + + +-- ---------------------------- +-- Records of blade_menu +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_menu] VALUES (N'1123598815738675201', N'0', N'desk', N'工作台', N'menu', N'/desk', N'iconfont iconicon_airplay', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675202', N'1123598815738675201', N'notice', N'通知公告', N'menu', N'/desk/notice', N'iconfont iconicon_sms', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675203', N'0', N'system', N'系统管理', N'menu', N'/system', N'iconfont iconicon_setting', N'99', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675204', N'1123598815738675203', N'user', N'用户管理', N'menu', N'/system/user', N'iconfont iconicon_principal', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675205', N'1123598815738675203', N'dept', N'机构管理', N'menu', N'/system/dept', N'iconfont iconicon_group', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675206', N'1123598815738675203', N'dict', N'系统字典', N'menu', N'/system/dict', N'iconfont iconicon_addresslist', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675207', N'1123598815738675203', N'menu', N'菜单管理', N'menu', N'/system/menu', N'iconfont iconicon_subordinate', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675208', N'1123598815738675203', N'topmenu', N'顶部菜单', N'menu', N'/system/topmenu', N'iconfont icon-canshu', N'7', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675209', N'1123598815738675203', N'param', N'参数管理', N'menu', N'/system/param', N'iconfont iconicon_community_line', N'8', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675210', N'0', N'monitor', N'系统监控', N'menu', N'/monitor', N'iconfont icon-yanzhengma', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675211', N'1123598815738675210', N'doc', N'接口文档', N'menu', N'http://localhost/doc.html', N'iconfont iconicon_study', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675212', N'1123598815738675210', N'admin', N'服务治理', N'menu', N'http://localhost:7002', N'iconfont icon-canshu', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675213', N'1123598815738675210', N'log', N'日志管理', N'menu', N'/monitor/log', N'iconfont iconicon_doc', N'8', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675214', N'1123598815738675213', N'log_usual', N'通用日志', N'menu', N'/monitor/log/usual', NULL, N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675215', N'1123598815738675213', N'log_api', N'接口日志', N'menu', N'/monitor/log/api', NULL, N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675216', N'1123598815738675213', N'log_error', N'错误日志', N'menu', N'/monitor/log/error', NULL, N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675217', N'0', N'tool', N'研发工具', N'menu', N'/tool', N'iconfont icon-wxbgongju', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675218', N'1123598815738675217', N'code', N'代码生成', N'menu', N'/tool/code', N'iconfont iconicon_savememo', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675219', N'1123598815738675202', N'notice_add', N'新增', N'add', N'/desk/notice/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675220', N'1123598815738675202', N'notice_edit', N'修改', N'edit', N'/desk/notice/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675221', N'1123598815738675202', N'notice_delete', N'删除', N'delete', N'/api/blade-desk/notice/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675222', N'1123598815738675202', N'notice_view', N'查看', N'view', N'/desk/notice/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675223', N'1123598815738675204', N'user_add', N'新增', N'add', N'/system/user/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675224', N'1123598815738675204', N'user_edit', N'修改', N'edit', N'/system/user/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675225', N'1123598815738675204', N'user_delete', N'删除', N'delete', N'/api/blade-system/user/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675226', N'1123598815738675204', N'user_role', N'角色配置', N'role', NULL, N'user-add', N'4', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675227', N'1123598815738675204', N'user_reset', N'密码重置', N'reset-password', N'/api/blade-system/user/reset-password', N'retweet', N'5', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675228', N'1123598815738675204', N'user_view', N'查看', N'view', N'/system/user/view', N'file-text', N'6', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675229', N'1123598815738675205', N'dept_add', N'新增', N'add', N'/system/dept/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675230', N'1123598815738675205', N'dept_edit', N'修改', N'edit', N'/system/dept/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675231', N'1123598815738675205', N'dept_delete', N'删除', N'delete', N'/api/blade-system/dept/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675232', N'1123598815738675205', N'dept_view', N'查看', N'view', N'/system/dept/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675233', N'1123598815738675206', N'dict_add', N'新增', N'add', N'/system/dict/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675234', N'1123598815738675206', N'dict_edit', N'修改', N'edit', N'/system/dict/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675235', N'1123598815738675206', N'dict_delete', N'删除', N'delete', N'/api/blade-system/dict/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675236', N'1123598815738675206', N'dict_view', N'查看', N'view', N'/system/dict/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675237', N'1123598815738675207', N'menu_add', N'新增', N'add', N'/system/menu/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675238', N'1123598815738675207', N'menu_edit', N'修改', N'edit', N'/system/menu/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675239', N'1123598815738675207', N'menu_delete', N'删除', N'delete', N'/api/blade-system/menu/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675240', N'1123598815738675207', N'menu_view', N'查看', N'view', N'/system/menu/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675241', N'1123598815738675308', N'role_add', N'新增', N'add', N'/authority/role/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675242', N'1123598815738675308', N'role_edit', N'修改', N'edit', N'/authority/role/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675243', N'1123598815738675308', N'role_delete', N'删除', N'delete', N'/api/blade-system/role/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675244', N'1123598815738675308', N'role_view', N'查看', N'view', N'/authority/role/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675245', N'1123598815738675209', N'param_add', N'新增', N'add', N'/system/param/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675246', N'1123598815738675209', N'param_edit', N'修改', N'edit', N'/system/param/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675247', N'1123598815738675209', N'param_delete', N'删除', N'delete', N'/api/blade-system/param/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675248', N'1123598815738675209', N'param_view', N'查看', N'view', N'/system/param/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675249', N'1123598815738675214', N'log_usual_view', N'查看', N'view', N'/monitor/log/usual/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675250', N'1123598815738675215', N'log_api_view', N'查看', N'view', N'/monitor/log/api/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675251', N'1123598815738675216', N'log_error_view', N'查看', N'view', N'/monitor/log/error/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675252', N'1123598815738675218', N'code_add', N'新增', N'add', N'/tool/code/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675253', N'1123598815738675218', N'code_edit', N'修改', N'edit', N'/tool/code/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675254', N'1123598815738675218', N'code_delete', N'删除', N'delete', N'/api/blade-system/code/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675255', N'1123598815738675218', N'code_view', N'查看', N'view', N'/tool/code/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675256', N'1123598815738675203', N'tenant', N'租户管理', N'menu', N'/system/tenant', N'iconfont icon-quanxian', N'9', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675257', N'1123598815738675256', N'tenant_add', N'新增', N'add', N'/system/tenant/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675258', N'1123598815738675256', N'tenant_edit', N'修改', N'edit', N'/system/tenant/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675259', N'1123598815738675256', N'tenant_delete', N'删除', N'delete', N'/api/blade-system/tenant/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675260', N'1123598815738675256', N'tenant_view', N'查看', N'view', N'/system/tenant/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675261', N'1123598815738675203', N'client', N'应用管理', N'menu', N'/system/client', N'iconfont iconicon_mobilephone', N'10', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675262', N'1123598815738675261', N'client_add', N'新增', N'add', N'/system/client/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675263', N'1123598815738675261', N'client_edit', N'修改', N'edit', N'/system/client/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675264', N'1123598815738675261', N'client_delete', N'删除', N'delete', N'/api/blade-system/client/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675265', N'1123598815738675261', N'client_view', N'查看', N'view', N'/system/client/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675266', N'0', N'flow', N'流程管理', N'menu', N'/flow', N'iconfont iconicon_send', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675267', N'1123598815738675266', N'flow_model', N'模型管理', N'menu', N'/flow/model', N'iconfont iconicon_discovery', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675268', N'1123598815738675267', N'flow_model_create', N'创建', N'create', N'', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675269', N'1123598815738675267', N'flow_model_update', N'编辑', N'update', N'', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675270', N'1123598815738675267', N'flow_model_deploy', N'部署', N'deploy', N'', N'cloud-upload', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675271', N'1123598815738675267', N'flow_model_download', N'下载', N'download', N'', N'download', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675272', N'1123598815738675267', N'flow_model_delete', N'删除', N'delete', N'/api/blade-flow/model/remove', N'delete', N'5', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675273', N'1123598815738675266', N'flow_deploy', N'流程部署', N'menu', N'/flow/deploy', N'iconfont iconicon_cspace', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675274', N'1123598815738675266', N'flow_manager', N'流程管理', N'menu', N'/flow/manager', N'iconfont iconicon_cloud_history', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675275', N'1123598815738675274', N'flow_manager_state', N'变更状态', N'state', N'', N'plus', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675276', N'1123598815738675274', N'flow_manager_image', N'流程图', N'image', N'', N'image', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675277', N'1123598815738675274', N'flow_manager_remove', N'删除', N'remove', N'', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675278', N'1123598815738675266', N'flow_follow', N'流程跟踪', N'menu', N'/flow/follow', N'iconfont iconicon_GPS', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675279', N'1123598815738675278', N'flow_follow_delete', N'删除', N'remove', N'', N'remove', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675280', N'0', N'work', N'我的事务', N'menu', N'/work', N'iconfont iconicon_notice', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675281', N'1123598815738675280', N'work_start', N'发起事务', N'menu', N'/work/start', N'iconfont iconicon_compile', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675282', N'1123598815738675281', N'work_start_flow', N'发起', N'flow', N'', N'flow', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675283', N'1123598815738675281', N'work_start_image', N'流程图', N'image', N'', N'image', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675284', N'1123598815738675280', N'work_claim', N'待签事务', N'menu', N'/work/claim', N'iconfont iconicon_ding', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675285', N'1123598815738675284', N'work_claim_sign', N'签收', N'sign', N'', N'sign', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675286', N'1123598815738675284', N'work_claim_detail', N'详情', N'detail', N'', N'detail', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675287', N'1123598815738675284', N'work_claim_follow', N'跟踪', N'follow', N'', N'follow', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675288', N'1123598815738675280', N'work_todo', N'待办事务', N'menu', N'/work/todo', N'iconfont iconicon_savememo', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675289', N'1123598815738675288', N'work_todo_handle', N'办理', N'handle', N'', N'handle', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675290', N'1123598815738675288', N'work_todo_detail', N'详情', N'detail', N'', N'detail', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675291', N'1123598815738675288', N'work_todo_follow', N'跟踪', N'follow', N'', N'follow', N'3', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675292', N'1123598815738675280', N'work_send', N'已发事务', N'menu', N'/work/send', N'iconfont iconicon_doc', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675293', N'1123598815738675292', N'work_send_detail', N'详情', N'detail', N'', N'detail', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675294', N'1123598815738675292', N'work_send_follow', N'跟踪', N'follow', N'', N'follow', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675295', N'1123598815738675280', N'work_done', N'办结事务', N'menu', N'/work/done', N'iconfont iconicon_dispose', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675296', N'1123598815738675295', N'work_done_detail', N'详情', N'detail', N'', N'detail', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675297', N'1123598815738675295', N'work_done_follow', N'跟踪', N'follow', N'', N'follow', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675298', N'0', N'resource', N'资源管理', N'menu', N'/resource', N'iconfont iconicon_coinpurse_line', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675299', N'1123598815738675298', N'oss', N'对象存储', N'menu', N'/resource/oss', N'iconfont iconicon_subordinate', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675301', N'1123598815738675299', N'oss_add', N'新增', N'add', N'/resource/oss/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675302', N'1123598815738675299', N'oss_edit', N'修改', N'edit', N'/resource/oss/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675303', N'1123598815738675299', N'oss_delete', N'删除', N'delete', N'/api/blade-resource/oss/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675304', N'1123598815738675299', N'oss_view', N'查看', N'view', N'/resource/oss/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675305', N'1123598815738675299', N'oss_enable', N'启用', N'enable', N'/api/blade-resource/oss/enable', N'key', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675307', N'0', N'authority', N'权限管理', N'menu', N'/authority', N'iconfont icon-bofangqi-suoping', N'98', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675308', N'1123598815738675307', N'role', N'角色管理', N'menu', N'/authority/role', N'iconfont iconicon_boss', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675309', N'1123598815738675307', N'data_scope', N'数据权限', N'menu', N'/authority/datascope', N'iconfont icon-shujuzhanshi2', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675310', N'1123598815738675309', N'data_scope_setting', N'权限配置', N'setting', NULL, N'setting', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675311', N'1123598815738675307', N'api_scope', N'接口权限', N'menu', N'/authority/apiscope', N'iconfont icon-iconset0216', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1123598815738675312', N'1123598815738675311', N'api_scope_setting', N'权限配置', N'setting', NULL, N'setting', N'1', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675313', N'1123598815738675208', N'topmenu_add', N'新增', N'add', N'/system/topmenu/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1123598815738675314', N'1123598815738675208', N'topmenu_edit', N'修改', N'edit', N'/system/topmenu/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675315', N'1123598815738675208', N'topmenu_delete', N'删除', N'delete', N'/api/blade-system/topmenu/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1123598815738675316', N'1123598815738675208', N'topmenu_view', N'查看', N'view', N'/system/topmenu/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1123598815738675317', N'1123598815738675208', N'topmenu_setting', N'菜单配置', N'setting', NULL, N'setting', N'5', N'2', N'1', N'1', N'', NULL, N'0'), (N'1161272593873321991', N'1123598815738675217', N'datasource', N'数据源管理', N'menu', N'/tool/datasource', N'iconfont icon-caidanguanli', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1161272593873321992', N'1161272593873321991', N'datasource_add', N'新增', N'add', N'/tool/datasource/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1161272593873321993', N'1161272593873321991', N'datasource_edit', N'修改', N'edit', N'/tool/datasource/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1161272593873321994', N'1161272593873321991', N'datasource_delete', N'删除', N'delete', N'/api/blade-develop/datasource/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1161272593873321995', N'1161272593873321991', N'datasource_view', N'查看', N'view', N'/tool/datasource/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1161272593873321996', N'1123598815738675217', N'model', N'数据模型设计', N'menu', N'/tool/model', N'iconfont icon-biaodan', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963251', N'1123598815738675210', N'elk', N'ELK监控', N'menu', N'http://localhost:5601/', N'iconfont iconicon_cspace', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963252', N'1123598815738675210', N'zipkin', N'Zipkin监控', N'menu', N'http://localhost:9411/', N'iconfont iconicon_task', N'4', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963253', N'1123598815738675210', N'turbine', N'Turbine监控', N'menu', N'http://localhost:7003/hystrix', N'iconfont iconicon_subordinate', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963254', N'1123598815738675210', N'sentinel', N'Sentinel管理', N'menu', N'http://localhost:8858', N'iconfont iconicon_safety', N'6', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733369658963255', N'1123598815738675210', N'es', N'Elasticsearch管理', N'menu', N'http://localhost:9100/', N'iconfont iconfont iconicon_search', N'7', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733379658963251', N'1123598815738675203', N'dictbiz', N'业务字典', N'menu', N'/system/dictbiz', N'iconfont iconicon_study', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733379658963252', N'1164733379658963251', N'dictbiz_add', N'新增', N'add', N'/system/dictbiz/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733379658963253', N'1164733379658963251', N'dictbiz_edit', N'修改', N'edit', N'/system/dictbiz/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733379658963254', N'1164733379658963251', N'dictbiz_delete', N'删除', N'delete', N'/api/blade-system/dict-biz/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733379658963255', N'1164733379658963251', N'dictbiz_view', N'查看', N'view', N'/system/dictbiz/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962251', N'1123598815738675298', N'sms', N'短信配置', N'menu', N'/resource/sms', N'iconfont iconicon_message', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389658962252', N'1164733389658962251', N'sms_add', N'新增', N'add', N'/resource/sms/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733389658962253', N'1164733389658962251', N'sms_edit', N'修改', N'edit', N'/resource/sms/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962254', N'1164733389658962251', N'sms_delete', N'删除', N'delete', N'/api/blade-resource/sms/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733389658962255', N'1164733389658962251', N'sms_view', N'查看', N'view', N'/resource/sms/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658962256', N'1164733389658962251', N'sms_enable', N'启用', N'enable', N'/api/blade-resource/sms/enable', N'key', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389658963251', N'1123598815738675298', N'xxljob', N'任务调度', N'menu', N'http://localhost:8080/xxl-job-admin', N'iconfont iconicon_cspace', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389668962251', N'1123598815738675203', N'post', N'岗位管理', N'menu', N'/system/post', N'iconfont iconicon_message', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733389668962252', N'1164733389668962251', N'post_add', N'新增', N'add', N'/system/post/add', N'plus', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733389668962253', N'1164733389668962251', N'post_edit', N'修改', N'edit', N'/system/post/edit', N'form', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733389668962254', N'1164733389668962251', N'post_delete', N'删除', N'delete', N'/api/blade-system/post/remove', N'delete', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733389668962255', N'1164733389668962251', N'post_view', N'查看', N'view', N'/system/post/view', N'file-text', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962201', N'0', N'base', N'基础配置', N'menu', N'/base', N'iconfont iconicon_affiliations_li', N'97', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399668962202', N'1164733399668962201', N'region', N'行政区划', N'menu', N'/base/region', N'iconfont icon-iframe', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399668962203', N'1164733399668962202', N'region_add', N'新增下级', N'add', N'', N'', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733399668962204', N'1164733399668962202', N'region_delete', N'删除', N'delete', N'/api/blade-system/region/remove', N'', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962205', N'1164733399668962202', N'region_import', N'导入', N'import', N'', N'', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733399668962206', N'1164733399668962202', N'region_export', N'导出', N'export', N'', N'', N'4', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399668962207', N'1164733399668962202', N'region_debug', N'调试', N'debug', N'', N'', N'5', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399669962201', N'1123598815738675298', N'attach', N'附件管理', N'menu', N'/resource/attach', N'iconfont iconicon_ding', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962202', N'1164733399669962201', N'attach_upload', N'上传', N'upload', N'/resource/attach/upload', N'', N'1', N'2', N'1', N'1', N'', NULL, N'0'), (N'1164733399669962203', N'1164733399669962201', N'attach_download', N'下载', N'download', N'/resource/attach/download', N'', N'2', N'2', N'2', N'1', N'', NULL, N'0'), (N'1164733399669962204', N'1164733399669962201', N'attach_delete', N'删除', N'delete', N'/api/blade-resource/attach/remove', N'', N'3', N'2', N'3', N'1', N'', NULL, N'0'), (N'1164733399669962301', N'0', N'report', N'报表管理', N'menu', N'/report', N'iconfont icon-shujuzhanshi2', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962302', N'1164733399669962301', N'report_setting', N'报表配置', N'menu', N'http://localhost:8108/ureport/designer', N'iconfont icon-rizhi', N'1', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962303', N'1164733399669962301', N'report_list', N'报表列表', N'menu', N'/report/reportlist', N'iconfont icon-biaodan', N'2', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962304', N'1164733399669962301', N'report_notice', N'公告报表', N'menu', N'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', N'iconfont iconicon_sms', N'3', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962401', N'0', N'job', N'任务管理', N'job', N'/job', N'iconfont iconicon_cspace', N'5', N'1', N'0', N'1', N'', NULL, N'0'), (N'1164733399669962501', N'1164733399669962401', N'jobserver', N'任务应用', N'menu', N'/job/jobserver', N'iconfont icon-shouji', N'1', N'1', N'0', N'1', NULL, NULL, N'0'), (N'1164733399669962502', N'1164733399669962501', N'jobserver_add', N'新增', N'add', N'/job/jobserver/add', N'plus', N'1', N'2', N'1', N'1', NULL, NULL, N'0'), (N'1164733399669962503', N'1164733399669962501', N'jobserver_edit', N'修改', N'edit', N'/job/jobserver/edit', N'form', N'2', N'2', N'2', N'1', NULL, NULL, N'0'), (N'1164733399669962504', N'1164733399669962501', N'jobserver_delete', N'删除', N'delete', N'/api/blade-job/jobserver/remove', N'delete', N'3', N'2', N'3', N'1', NULL, NULL, N'0'), (N'1164733399669962505', N'1164733399669962501', N'jobserver_view', N'查看', N'view', N'/job/jobserver/view', N'file-text', N'4', N'2', N'2', N'1', NULL, NULL, N'0'), (N'1164733399669962601', N'1164733399669962401', N'jobinfo', N'任务配置', N'menu', N'/job/jobinfo', N'iconfont icon-dongtai', N'1', N'1', N'0', N'1', NULL, NULL, N'0'), (N'1164733399669962602', N'1164733399669962601', N'jobinfo_add', N'新增', N'add', N'/job/jobinfo/add', N'plus', N'1', N'2', N'1', N'1', NULL, NULL, N'0'), (N'1164733399669962603', N'1164733399669962601', N'jobinfo_edit', N'修改', N'edit', N'/job/jobinfo/edit', N'form', N'2', N'2', N'2', N'1', NULL, NULL, N'0'), (N'1164733399669962604', N'1164733399669962601', N'jobinfo_delete', N'删除', N'delete', N'/api/blade-job/jobinfo/remove', N'delete', N'3', N'2', N'3', N'1', NULL, NULL, N'0'), (N'1164733399669962605', N'1164733399669962601', N'jobinfo_view', N'查看', N'view', N'/job/jobinfo/view', N'file-text', N'4', N'2', N'2', N'1', NULL, NULL, N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_model +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_model]') AND type IN ('U')) + DROP TABLE [dbo].[blade_model] +GO + +CREATE TABLE [dbo].[blade_model] ( + [id] bigint NOT NULL, + [datasource_id] bigint NULL, + [model_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [model_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [model_table] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL, + [model_class] nvarchar(100) COLLATE Chinese_PRC_CI_AS NULL, + [model_remark] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_model] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据源主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'datasource_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模型名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'model_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模型编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'model_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'物理表名', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'model_table' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模型类名', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'model_class' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模型备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'model_remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_model', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据模型表', +'SCHEMA', N'dbo', +'TABLE', N'blade_model' +GO + + +-- ---------------------------- +-- Table structure for blade_model_prototype +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_model_prototype]') AND type IN ('U')) + DROP TABLE [dbo].[blade_model_prototype] +GO + +CREATE TABLE [dbo].[blade_model_prototype] ( + [id] bigint NOT NULL, + [model_id] bigint NULL, + [jdbc_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [jdbc_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [jdbc_comment] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [property_type] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [property_entity] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [property_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [is_list] int NULL, + [is_form] int NULL, + [is_row] int NULL, + [component_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [dict_code] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [is_required] int NULL, + [validate_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [is_query] int NULL, + [query_type] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_model_prototype] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模型主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'model_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'物理列名', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'jdbc_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'物理类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'jdbc_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'注释说明', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'jdbc_comment' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'实体类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'property_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'实体类型引用', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'property_entity' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'实体列名', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'property_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'列表显示', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'is_list' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'表单显示', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'is_form' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'独占一行', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'is_row' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'组件类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'component_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'字典编码', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'dict_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否必填', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'is_required' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'验证类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'validate_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'查询配置', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'is_query' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'查询类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'query_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据原型表', +'SCHEMA', N'dbo', +'TABLE', N'blade_model_prototype' +GO + + +-- ---------------------------- +-- Table structure for blade_notice +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_notice]') AND type IN ('U')) + DROP TABLE [dbo].[blade_notice] +GO + +CREATE TABLE [dbo].[blade_notice] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [title] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [category] int NULL, + [release_time] datetime2(0) NULL, + [content] nvarchar(2000) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_notice] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'标题', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'title' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'发布时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'release_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'内容', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'content' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'通知公告表', +'SCHEMA', N'dbo', +'TABLE', N'blade_notice' +GO + + +-- ---------------------------- +-- Records of blade_notice +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_notice] VALUES (N'1123598818738675223', N'000000', N'测试公告', N'3', N'2018-12-31 20:03:31', N'222', N'1123598821738675201', N'1123598813738675201', N'2018-12-05 20:03:31', N'1123598821738675201', N'2018-12-28 11:10:51', N'1', N'0'), (N'1123598818738675224', N'000000', N'测试公告2', N'1', N'2018-12-05 20:03:31', N'333', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 10:32:26', N'1123598821738675201', N'2018-12-28 11:10:34', N'1', N'0'), (N'1123598818738675225', N'000000', N'测试公告3', N'6', N'2018-12-29 00:00:00', N'11111', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 11:03:44', N'1123598821738675201', N'2018-12-28 11:10:28', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_oss +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_oss]') AND type IN ('U')) + DROP TABLE [dbo].[blade_oss] +GO + +CREATE TABLE [dbo].[blade_oss] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [category] int NULL, + [oss_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [endpoint] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [transform_endpoint] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [access_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [secret_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [bucket_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [app_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [region] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_oss] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'分类', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'资源编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'oss_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'资源地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'endpoint' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'外网资源地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'transform_endpoint' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'accessKey', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'access_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'secretKey', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'secret_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'空间名', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'bucket_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'应用ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'app_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'地域简称', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'region' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'对象存储表', +'SCHEMA', N'dbo', +'TABLE', N'blade_oss' +GO + + +-- ---------------------------- +-- Records of blade_oss +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_oss] VALUES (N'1132486733992468482', N'000000', N'1', N'minio', N'http://127.0.0.1:9000', N'', N'D99KGE6ZTQXSATTJWU24', N'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', N'bladex', N'', N'', N'', N'1123598821738675201', N'1123598813738675201', N'2019-05-26 11:20:52', N'1123598821738675201', N'2019-05-27 08:34:55', N'2', N'0'), (N'1132487155981393922', N'000000', N'2', N'qiniu', N'http://ps458elcs.bkt.clouddn.com', N'', N'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', N'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', N'bladex', N'', N'', N'', N'1123598821738675201', N'1123598813738675201', N'2019-05-26 11:22:33', N'1123598821738675201', N'2019-05-26 23:27:56', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_param +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_param]') AND type IN ('U')) + DROP TABLE [dbo].[blade_param] +GO + +CREATE TABLE [dbo].[blade_param] ( + [id] bigint NOT NULL, + [param_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [param_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [param_value] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_param] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'参数名', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'param_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'参数键', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'param_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'参数值', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'param_value' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_param', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'参数表', +'SCHEMA', N'dbo', +'TABLE', N'blade_param' +GO + + +-- ---------------------------- +-- Records of blade_param +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_param] VALUES (N'1123598819738675201', N'是否开启注册功能', N'account.registerUser', N'true', N'开启注册', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 12:19:01', N'1123598821738675201', N'2018-12-28 12:19:01', N'1', N'0'), (N'1123598819738675202', N'账号初始密码', N'account.initPassword', N'123456', N'初始密码', N'1123598821738675201', N'1123598813738675201', N'2018-12-28 12:19:01', N'1123598821738675201', N'2018-12-28 12:19:01', N'1', N'0'), (N'1123598819738675203', N'账号错误锁定次数', N'account.failCount', N'5', N'锁定次数', N'1123598821738675201', N'1123598813738675201', N'2021-12-01 12:00:00', N'1123598821738675201', N'2021-12-01 12:00:00', N'1', N'0'), (N'1238706101399142402', N'租户默认管理密码', N'tenant.default.password', N'admin', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:58:43', N'1123598821738675201', N'2020-03-14 13:58:43', N'1', N'0'), (N'1238706160295559170', N'租户默认账号额度', N'tenant.default.accountNumber', N'100', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:58:57', N'1123598821738675201', N'2020-03-14 13:58:57', N'1', N'0'), (N'1238706330076790786', N'租户默认菜单集合', N'tenant.default.menuCode', N'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL, N'1123598821738675201', N'1123598813738675201', N'2020-03-14 13:59:38', N'1123598821738675201', N'2020-03-14 13:59:38', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_post +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_post]') AND type IN ('U')) + DROP TABLE [dbo].[blade_post] +GO + +CREATE TABLE [dbo].[blade_post] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [category] int NULL, + [post_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [post_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_post] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'post_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'post_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位描述', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_post', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位表', +'SCHEMA', N'dbo', +'TABLE', N'blade_post' +GO + + +-- ---------------------------- +-- Records of blade_post +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_post] VALUES (N'1123598817738675201', N'000000', N'1', N'ceo', N'首席执行官', N'1', N'总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675202', N'000000', N'1', N'coo', N'首席运营官', N'2', N'常务总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675203', N'000000', N'1', N'cfo', N'首席财务官', N'3', N'财务总经理', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675204', N'000000', N'1', N'cto', N'首席技术官', N'4', N'技术总监', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675205', N'000000', N'1', N'cio', N'首席信息官', N'5', N'信息总监', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675206', N'000000', N'2', N'pm', N'技术经理', N'6', N'研发和产品是永远的朋友', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675207', N'000000', N'2', N'hrm', N'人力经理', N'7', N'人力资源部门工作管理者', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0'), (N'1123598817738675208', N'000000', N'3', N'staff', N'普通员工', N'8', N'普通员工', N'1123598821738675201', N'1123598813738675201', N'2020-04-01 00:00:00', N'1123598821738675201', N'2020-04-01 00:00:00', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_process_leave +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_process_leave]') AND type IN ('U')) + DROP TABLE [dbo].[blade_process_leave] +GO + +CREATE TABLE [dbo].[blade_process_leave] ( + [id] bigint NOT NULL, + [process_definition_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [process_instance_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [start_time] datetime2(0) NULL, + [end_time] datetime2(0) NULL, + [reason] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [task_user] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [apply_time] datetime2(0) NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_process_leave] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'流程定义主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'process_definition_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'流程实例主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'process_instance_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'开始时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'start_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'结束时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'end_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'请假理由', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'reason' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'第一级审批人', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'task_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'申请时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'apply_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'流程请假业务表', +'SCHEMA', N'dbo', +'TABLE', N'blade_process_leave' +GO + + +-- ---------------------------- +-- Table structure for blade_region +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_region]') AND type IN ('U')) + DROP TABLE [dbo].[blade_region] +GO + +CREATE TABLE [dbo].[blade_region] ( + [code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NOT NULL, + [parent_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [ancestors] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [province_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [province_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [city_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [city_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [district_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [district_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [town_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [town_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [village_code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [village_name] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [region_level] int NULL, + [sort] int NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[blade_region] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'父区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'parent_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'祖区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'ancestors' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'区划名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'省级区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'province_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'省级名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'province_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'市级区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'city_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'市级名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'city_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'区级区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'district_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'区级名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'district_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'镇级区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'town_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'镇级名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'town_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'村级区划编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'village_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'村级名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'village_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'层级', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'region_level' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_region', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'行政区划表', +'SCHEMA', N'dbo', +'TABLE', N'blade_region' +GO + + +-- ---------------------------- +-- Records of blade_region +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'00', N'0', N'0', N'中华人民共和国', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'', N'0', N'1', N''), (N'11', N'00', N'00', N'北京市', N'11', N'北京市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1101', N'11', N'00,11', N'北京市', N'11', N'北京市', N'1101', N'北京市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'110101', N'1101', N'00,11,1101', N'东城区', N'11', N'北京市', N'1101', N'北京市', N'110101', N'东城区', N'', N'', N'', N'', N'3', N'1', N''), (N'110102', N'1101', N'00,11,1101', N'西城区', N'11', N'北京市', N'1101', N'北京市', N'110102', N'西城区', N'', N'', N'', N'', N'3', N'1', N''), (N'110105', N'1101', N'00,11,1101', N'朝阳区', N'11', N'北京市', N'1101', N'北京市', N'110105', N'朝阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'110106', N'1101', N'00,11,1101', N'丰台区', N'11', N'北京市', N'1101', N'北京市', N'110106', N'丰台区', N'', N'', N'', N'', N'3', N'1', N''), (N'110107', N'1101', N'00,11,1101', N'石景山区', N'11', N'北京市', N'1101', N'北京市', N'110107', N'石景山区', N'', N'', N'', N'', N'3', N'1', N''), (N'110108', N'1101', N'00,11,1101', N'海淀区', N'11', N'北京市', N'1101', N'北京市', N'110108', N'海淀区', N'', N'', N'', N'', N'3', N'1', N''), (N'110109', N'1101', N'00,11,1101', N'门头沟区', N'11', N'北京市', N'1101', N'北京市', N'110109', N'门头沟区', N'', N'', N'', N'', N'3', N'1', N''), (N'110111', N'1101', N'00,11,1101', N'房山区', N'11', N'北京市', N'1101', N'北京市', N'110111', N'房山区', N'', N'', N'', N'', N'3', N'1', N''), (N'110112', N'1101', N'00,11,1101', N'通州区', N'11', N'北京市', N'1101', N'北京市', N'110112', N'通州区', N'', N'', N'', N'', N'3', N'1', N''), (N'110113', N'1101', N'00,11,1101', N'顺义区', N'11', N'北京市', N'1101', N'北京市', N'110113', N'顺义区', N'', N'', N'', N'', N'3', N'1', N''), (N'110114', N'1101', N'00,11,1101', N'昌平区', N'11', N'北京市', N'1101', N'北京市', N'110114', N'昌平区', N'', N'', N'', N'', N'3', N'1', N''), (N'110115', N'1101', N'00,11,1101', N'大兴区', N'11', N'北京市', N'1101', N'北京市', N'110115', N'大兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'110116', N'1101', N'00,11,1101', N'怀柔区', N'11', N'北京市', N'1101', N'北京市', N'110116', N'怀柔区', N'', N'', N'', N'', N'3', N'1', N''), (N'110117', N'1101', N'00,11,1101', N'平谷区', N'11', N'北京市', N'1101', N'北京市', N'110117', N'平谷区', N'', N'', N'', N'', N'3', N'1', N''), (N'110118', N'1101', N'00,11,1101', N'密云区', N'11', N'北京市', N'1101', N'北京市', N'110118', N'密云区', N'', N'', N'', N'', N'3', N'1', N''), (N'110119', N'1101', N'00,11,1101', N'延庆区', N'11', N'北京市', N'1101', N'北京市', N'110119', N'延庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'12', N'00', N'00', N'天津市', N'12', N'天津市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1201', N'12', N'00,12', N'天津市', N'12', N'天津市', N'1201', N'天津市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'120101', N'1201', N'00,12,1201', N'和平区', N'12', N'天津市', N'1201', N'天津市', N'120101', N'和平区', N'', N'', N'', N'', N'3', N'1', N''), (N'120102', N'1201', N'00,12,1201', N'河东区', N'12', N'天津市', N'1201', N'天津市', N'120102', N'河东区', N'', N'', N'', N'', N'3', N'1', N''), (N'120103', N'1201', N'00,12,1201', N'河西区', N'12', N'天津市', N'1201', N'天津市', N'120103', N'河西区', N'', N'', N'', N'', N'3', N'1', N''), (N'120104', N'1201', N'00,12,1201', N'南开区', N'12', N'天津市', N'1201', N'天津市', N'120104', N'南开区', N'', N'', N'', N'', N'3', N'1', N''), (N'120105', N'1201', N'00,12,1201', N'河北区', N'12', N'天津市', N'1201', N'天津市', N'120105', N'河北区', N'', N'', N'', N'', N'3', N'1', N''), (N'120106', N'1201', N'00,12,1201', N'红桥区', N'12', N'天津市', N'1201', N'天津市', N'120106', N'红桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'120110', N'1201', N'00,12,1201', N'东丽区', N'12', N'天津市', N'1201', N'天津市', N'120110', N'东丽区', N'', N'', N'', N'', N'3', N'1', N''), (N'120111', N'1201', N'00,12,1201', N'西青区', N'12', N'天津市', N'1201', N'天津市', N'120111', N'西青区', N'', N'', N'', N'', N'3', N'1', N''), (N'120112', N'1201', N'00,12,1201', N'津南区', N'12', N'天津市', N'1201', N'天津市', N'120112', N'津南区', N'', N'', N'', N'', N'3', N'1', N''), (N'120113', N'1201', N'00,12,1201', N'北辰区', N'12', N'天津市', N'1201', N'天津市', N'120113', N'北辰区', N'', N'', N'', N'', N'3', N'1', N''), (N'120114', N'1201', N'00,12,1201', N'武清区', N'12', N'天津市', N'1201', N'天津市', N'120114', N'武清区', N'', N'', N'', N'', N'3', N'1', N''), (N'120115', N'1201', N'00,12,1201', N'宝坻区', N'12', N'天津市', N'1201', N'天津市', N'120115', N'宝坻区', N'', N'', N'', N'', N'3', N'1', N''), (N'120116', N'1201', N'00,12,1201', N'滨海新区', N'12', N'天津市', N'1201', N'天津市', N'120116', N'滨海新区', N'', N'', N'', N'', N'3', N'1', N''), (N'120117', N'1201', N'00,12,1201', N'宁河区', N'12', N'天津市', N'1201', N'天津市', N'120117', N'宁河区', N'', N'', N'', N'', N'3', N'1', N''), (N'120118', N'1201', N'00,12,1201', N'静海区', N'12', N'天津市', N'1201', N'天津市', N'120118', N'静海区', N'', N'', N'', N'', N'3', N'1', N''), (N'120119', N'1201', N'00,12,1201', N'蓟州区', N'12', N'天津市', N'1201', N'天津市', N'120119', N'蓟州区', N'', N'', N'', N'', N'3', N'1', N''), (N'13', N'00', N'00', N'河北省', N'13', N'河北省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1301', N'13', N'00,13', N'石家庄市', N'13', N'河北省', N'1301', N'石家庄市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130102', N'1301', N'00,13,1301', N'长安区', N'13', N'河北省', N'1301', N'石家庄市', N'130102', N'长安区', N'', N'', N'', N'', N'3', N'1', N''), (N'130104', N'1301', N'00,13,1301', N'桥西区', N'13', N'河北省', N'1301', N'石家庄市', N'130104', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130105', N'1301', N'00,13,1301', N'新华区', N'13', N'河北省', N'1301', N'石家庄市', N'130105', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130107', N'1301', N'00,13,1301', N'井陉矿区', N'13', N'河北省', N'1301', N'石家庄市', N'130107', N'井陉矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130108', N'1301', N'00,13,1301', N'裕华区', N'13', N'河北省', N'1301', N'石家庄市', N'130108', N'裕华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130109', N'1301', N'00,13,1301', N'藁城区', N'13', N'河北省', N'1301', N'石家庄市', N'130109', N'藁城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130110', N'1301', N'00,13,1301', N'鹿泉区', N'13', N'河北省', N'1301', N'石家庄市', N'130110', N'鹿泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'130111', N'1301', N'00,13,1301', N'栾城区', N'13', N'河北省', N'1301', N'石家庄市', N'130111', N'栾城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130121', N'1301', N'00,13,1301', N'井陉县', N'13', N'河北省', N'1301', N'石家庄市', N'130121', N'井陉县', N'', N'', N'', N'', N'3', N'1', N''), (N'130123', N'1301', N'00,13,1301', N'正定县', N'13', N'河北省', N'1301', N'石家庄市', N'130123', N'正定县', N'', N'', N'', N'', N'3', N'1', N''), (N'130125', N'1301', N'00,13,1301', N'行唐县', N'13', N'河北省', N'1301', N'石家庄市', N'130125', N'行唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'130126', N'1301', N'00,13,1301', N'灵寿县', N'13', N'河北省', N'1301', N'石家庄市', N'130126', N'灵寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130127', N'1301', N'00,13,1301', N'高邑县', N'13', N'河北省', N'1301', N'石家庄市', N'130127', N'高邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'130128', N'1301', N'00,13,1301', N'深泽县', N'13', N'河北省', N'1301', N'石家庄市', N'130128', N'深泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'130129', N'1301', N'00,13,1301', N'赞皇县', N'13', N'河北省', N'1301', N'石家庄市', N'130129', N'赞皇县', N'', N'', N'', N'', N'3', N'1', N''), (N'130130', N'1301', N'00,13,1301', N'无极县', N'13', N'河北省', N'1301', N'石家庄市', N'130130', N'无极县', N'', N'', N'', N'', N'3', N'1', N''), (N'130131', N'1301', N'00,13,1301', N'平山县', N'13', N'河北省', N'1301', N'石家庄市', N'130131', N'平山县', N'', N'', N'', N'', N'3', N'1', N''), (N'130132', N'1301', N'00,13,1301', N'元氏县', N'13', N'河北省', N'1301', N'石家庄市', N'130132', N'元氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'130133', N'1301', N'00,13,1301', N'赵县', N'13', N'河北省', N'1301', N'石家庄市', N'130133', N'赵县', N'', N'', N'', N'', N'3', N'1', N''), (N'130181', N'1301', N'00,13,1301', N'辛集市', N'13', N'河北省', N'1301', N'石家庄市', N'130181', N'辛集市', N'', N'', N'', N'', N'3', N'1', N''), (N'130183', N'1301', N'00,13,1301', N'晋州市', N'13', N'河北省', N'1301', N'石家庄市', N'130183', N'晋州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130184', N'1301', N'00,13,1301', N'新乐市', N'13', N'河北省', N'1301', N'石家庄市', N'130184', N'新乐市', N'', N'', N'', N'', N'3', N'1', N''), (N'1302', N'13', N'00,13', N'唐山市', N'13', N'河北省', N'1302', N'唐山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130202', N'1302', N'00,13,1302', N'路南区', N'13', N'河北省', N'1302', N'唐山市', N'130202', N'路南区', N'', N'', N'', N'', N'3', N'1', N''), (N'130203', N'1302', N'00,13,1302', N'路北区', N'13', N'河北省', N'1302', N'唐山市', N'130203', N'路北区', N'', N'', N'', N'', N'3', N'1', N''), (N'130204', N'1302', N'00,13,1302', N'古冶区', N'13', N'河北省', N'1302', N'唐山市', N'130204', N'古冶区', N'', N'', N'', N'', N'3', N'1', N''), (N'130205', N'1302', N'00,13,1302', N'开平区', N'13', N'河北省', N'1302', N'唐山市', N'130205', N'开平区', N'', N'', N'', N'', N'3', N'1', N''), (N'130207', N'1302', N'00,13,1302', N'丰南区', N'13', N'河北省', N'1302', N'唐山市', N'130207', N'丰南区', N'', N'', N'', N'', N'3', N'1', N''), (N'130208', N'1302', N'00,13,1302', N'丰润区', N'13', N'河北省', N'1302', N'唐山市', N'130208', N'丰润区', N'', N'', N'', N'', N'3', N'1', N''), (N'130209', N'1302', N'00,13,1302', N'曹妃甸区', N'13', N'河北省', N'1302', N'唐山市', N'130209', N'曹妃甸区', N'', N'', N'', N'', N'3', N'1', N''), (N'130224', N'1302', N'00,13,1302', N'滦南县', N'13', N'河北省', N'1302', N'唐山市', N'130224', N'滦南县', N'', N'', N'', N'', N'3', N'1', N''), (N'130225', N'1302', N'00,13,1302', N'乐亭县', N'13', N'河北省', N'1302', N'唐山市', N'130225', N'乐亭县', N'', N'', N'', N'', N'3', N'1', N''), (N'130227', N'1302', N'00,13,1302', N'迁西县', N'13', N'河北省', N'1302', N'唐山市', N'130227', N'迁西县', N'', N'', N'', N'', N'3', N'1', N''), (N'130229', N'1302', N'00,13,1302', N'玉田县', N'13', N'河北省', N'1302', N'唐山市', N'130229', N'玉田县', N'', N'', N'', N'', N'3', N'1', N''), (N'130281', N'1302', N'00,13,1302', N'遵化市', N'13', N'河北省', N'1302', N'唐山市', N'130281', N'遵化市', N'', N'', N'', N'', N'3', N'1', N''), (N'130283', N'1302', N'00,13,1302', N'迁安市', N'13', N'河北省', N'1302', N'唐山市', N'130283', N'迁安市', N'', N'', N'', N'', N'3', N'1', N''), (N'130284', N'1302', N'00,13,1302', N'滦州市', N'13', N'河北省', N'1302', N'唐山市', N'130284', N'滦州市', N'', N'', N'', N'', N'3', N'1', N''), (N'1303', N'13', N'00,13', N'秦皇岛市', N'13', N'河北省', N'1303', N'秦皇岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130302', N'1303', N'00,13,1303', N'海港区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130302', N'海港区', N'', N'', N'', N'', N'3', N'1', N''), (N'130303', N'1303', N'00,13,1303', N'山海关区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130303', N'山海关区', N'', N'', N'', N'', N'3', N'1', N''), (N'130304', N'1303', N'00,13,1303', N'北戴河区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130304', N'北戴河区', N'', N'', N'', N'', N'3', N'1', N''), (N'130306', N'1303', N'00,13,1303', N'抚宁区', N'13', N'河北省', N'1303', N'秦皇岛市', N'130306', N'抚宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'130321', N'1303', N'00,13,1303', N'青龙满族自治县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130321', N'青龙满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130322', N'1303', N'00,13,1303', N'昌黎县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130322', N'昌黎县', N'', N'', N'', N'', N'3', N'1', N''), (N'130324', N'1303', N'00,13,1303', N'卢龙县', N'13', N'河北省', N'1303', N'秦皇岛市', N'130324', N'卢龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'1304', N'13', N'00,13', N'邯郸市', N'13', N'河北省', N'1304', N'邯郸市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130402', N'1304', N'00,13,1304', N'邯山区', N'13', N'河北省', N'1304', N'邯郸市', N'130402', N'邯山区', N'', N'', N'', N'', N'3', N'1', N''), (N'130403', N'1304', N'00,13,1304', N'丛台区', N'13', N'河北省', N'1304', N'邯郸市', N'130403', N'丛台区', N'', N'', N'', N'', N'3', N'1', N''), (N'130404', N'1304', N'00,13,1304', N'复兴区', N'13', N'河北省', N'1304', N'邯郸市', N'130404', N'复兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'130406', N'1304', N'00,13,1304', N'峰峰矿区', N'13', N'河北省', N'1304', N'邯郸市', N'130406', N'峰峰矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130407', N'1304', N'00,13,1304', N'肥乡区', N'13', N'河北省', N'1304', N'邯郸市', N'130407', N'肥乡区', N'', N'', N'', N'', N'3', N'1', N''), (N'130408', N'1304', N'00,13,1304', N'永年区', N'13', N'河北省', N'1304', N'邯郸市', N'130408', N'永年区', N'', N'', N'', N'', N'3', N'1', N''), (N'130423', N'1304', N'00,13,1304', N'临漳县', N'13', N'河北省', N'1304', N'邯郸市', N'130423', N'临漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130424', N'1304', N'00,13,1304', N'成安县', N'13', N'河北省', N'1304', N'邯郸市', N'130424', N'成安县', N'', N'', N'', N'', N'3', N'1', N''), (N'130425', N'1304', N'00,13,1304', N'大名县', N'13', N'河北省', N'1304', N'邯郸市', N'130425', N'大名县', N'', N'', N'', N'', N'3', N'1', N''), (N'130426', N'1304', N'00,13,1304', N'涉县', N'13', N'河北省', N'1304', N'邯郸市', N'130426', N'涉县', N'', N'', N'', N'', N'3', N'1', N''), (N'130427', N'1304', N'00,13,1304', N'磁县', N'13', N'河北省', N'1304', N'邯郸市', N'130427', N'磁县', N'', N'', N'', N'', N'3', N'1', N''), (N'130430', N'1304', N'00,13,1304', N'邱县', N'13', N'河北省', N'1304', N'邯郸市', N'130430', N'邱县', N'', N'', N'', N'', N'3', N'1', N''), (N'130431', N'1304', N'00,13,1304', N'鸡泽县', N'13', N'河北省', N'1304', N'邯郸市', N'130431', N'鸡泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'130432', N'1304', N'00,13,1304', N'广平县', N'13', N'河北省', N'1304', N'邯郸市', N'130432', N'广平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130433', N'1304', N'00,13,1304', N'馆陶县', N'13', N'河北省', N'1304', N'邯郸市', N'130433', N'馆陶县', N'', N'', N'', N'', N'3', N'1', N''), (N'130434', N'1304', N'00,13,1304', N'魏县', N'13', N'河北省', N'1304', N'邯郸市', N'130434', N'魏县', N'', N'', N'', N'', N'3', N'1', N''), (N'130435', N'1304', N'00,13,1304', N'曲周县', N'13', N'河北省', N'1304', N'邯郸市', N'130435', N'曲周县', N'', N'', N'', N'', N'3', N'1', N''), (N'130481', N'1304', N'00,13,1304', N'武安市', N'13', N'河北省', N'1304', N'邯郸市', N'130481', N'武安市', N'', N'', N'', N'', N'3', N'1', N''), (N'1305', N'13', N'00,13', N'邢台市', N'13', N'河北省', N'1305', N'邢台市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130502', N'1305', N'00,13,1305', N'桥东区', N'13', N'河北省', N'1305', N'邢台市', N'130502', N'桥东区', N'', N'', N'', N'', N'3', N'1', N''), (N'130503', N'1305', N'00,13,1305', N'桥西区', N'13', N'河北省', N'1305', N'邢台市', N'130503', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130521', N'1305', N'00,13,1305', N'邢台县', N'13', N'河北省', N'1305', N'邢台市', N'130521', N'邢台县', N'', N'', N'', N'', N'3', N'1', N''), (N'130522', N'1305', N'00,13,1305', N'临城县', N'13', N'河北省', N'1305', N'邢台市', N'130522', N'临城县', N'', N'', N'', N'', N'3', N'1', N''), (N'130523', N'1305', N'00,13,1305', N'内丘县', N'13', N'河北省', N'1305', N'邢台市', N'130523', N'内丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'130524', N'1305', N'00,13,1305', N'柏乡县', N'13', N'河北省', N'1305', N'邢台市', N'130524', N'柏乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130525', N'1305', N'00,13,1305', N'隆尧县', N'13', N'河北省', N'1305', N'邢台市', N'130525', N'隆尧县', N'', N'', N'', N'', N'3', N'1', N''), (N'130526', N'1305', N'00,13,1305', N'任县', N'13', N'河北省', N'1305', N'邢台市', N'130526', N'任县', N'', N'', N'', N'', N'3', N'1', N''), (N'130527', N'1305', N'00,13,1305', N'南和县', N'13', N'河北省', N'1305', N'邢台市', N'130527', N'南和县', N'', N'', N'', N'', N'3', N'1', N''), (N'130528', N'1305', N'00,13,1305', N'宁晋县', N'13', N'河北省', N'1305', N'邢台市', N'130528', N'宁晋县', N'', N'', N'', N'', N'3', N'1', N''), (N'130529', N'1305', N'00,13,1305', N'巨鹿县', N'13', N'河北省', N'1305', N'邢台市', N'130529', N'巨鹿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130530', N'1305', N'00,13,1305', N'新河县', N'13', N'河北省', N'1305', N'邢台市', N'130530', N'新河县', N'', N'', N'', N'', N'3', N'1', N''), (N'130531', N'1305', N'00,13,1305', N'广宗县', N'13', N'河北省', N'1305', N'邢台市', N'130531', N'广宗县', N'', N'', N'', N'', N'3', N'1', N''), (N'130532', N'1305', N'00,13,1305', N'平乡县', N'13', N'河北省', N'1305', N'邢台市', N'130532', N'平乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130533', N'1305', N'00,13,1305', N'威县', N'13', N'河北省', N'1305', N'邢台市', N'130533', N'威县', N'', N'', N'', N'', N'3', N'1', N''), (N'130534', N'1305', N'00,13,1305', N'清河县', N'13', N'河北省', N'1305', N'邢台市', N'130534', N'清河县', N'', N'', N'', N'', N'3', N'1', N''), (N'130535', N'1305', N'00,13,1305', N'临西县', N'13', N'河北省', N'1305', N'邢台市', N'130535', N'临西县', N'', N'', N'', N'', N'3', N'1', N''), (N'130581', N'1305', N'00,13,1305', N'南宫市', N'13', N'河北省', N'1305', N'邢台市', N'130581', N'南宫市', N'', N'', N'', N'', N'3', N'1', N''), (N'130582', N'1305', N'00,13,1305', N'沙河市', N'13', N'河北省', N'1305', N'邢台市', N'130582', N'沙河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1306', N'13', N'00,13', N'保定市', N'13', N'河北省', N'1306', N'保定市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130602', N'1306', N'00,13,1306', N'竞秀区', N'13', N'河北省', N'1306', N'保定市', N'130602', N'竞秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'130606', N'1306', N'00,13,1306', N'莲池区', N'13', N'河北省', N'1306', N'保定市', N'130606', N'莲池区', N'', N'', N'', N'', N'3', N'1', N''), (N'130607', N'1306', N'00,13,1306', N'满城区', N'13', N'河北省', N'1306', N'保定市', N'130607', N'满城区', N'', N'', N'', N'', N'3', N'1', N''), (N'130608', N'1306', N'00,13,1306', N'清苑区', N'13', N'河北省', N'1306', N'保定市', N'130608', N'清苑区', N'', N'', N'', N'', N'3', N'1', N''), (N'130609', N'1306', N'00,13,1306', N'徐水区', N'13', N'河北省', N'1306', N'保定市', N'130609', N'徐水区', N'', N'', N'', N'', N'3', N'1', N''), (N'130623', N'1306', N'00,13,1306', N'涞水县', N'13', N'河北省', N'1306', N'保定市', N'130623', N'涞水县', N'', N'', N'', N'', N'3', N'1', N''), (N'130624', N'1306', N'00,13,1306', N'阜平县', N'13', N'河北省', N'1306', N'保定市', N'130624', N'阜平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130626', N'1306', N'00,13,1306', N'定兴县', N'13', N'河北省', N'1306', N'保定市', N'130626', N'定兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'130627', N'1306', N'00,13,1306', N'唐县', N'13', N'河北省', N'1306', N'保定市', N'130627', N'唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'130628', N'1306', N'00,13,1306', N'高阳县', N'13', N'河北省', N'1306', N'保定市', N'130628', N'高阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130629', N'1306', N'00,13,1306', N'容城县', N'13', N'河北省', N'1306', N'保定市', N'130629', N'容城县', N'', N'', N'', N'', N'3', N'1', N''), (N'130630', N'1306', N'00,13,1306', N'涞源县', N'13', N'河北省', N'1306', N'保定市', N'130630', N'涞源县', N'', N'', N'', N'', N'3', N'1', N''), (N'130631', N'1306', N'00,13,1306', N'望都县', N'13', N'河北省', N'1306', N'保定市', N'130631', N'望都县', N'', N'', N'', N'', N'3', N'1', N''), (N'130632', N'1306', N'00,13,1306', N'安新县', N'13', N'河北省', N'1306', N'保定市', N'130632', N'安新县', N'', N'', N'', N'', N'3', N'1', N''), (N'130633', N'1306', N'00,13,1306', N'易县', N'13', N'河北省', N'1306', N'保定市', N'130633', N'易县', N'', N'', N'', N'', N'3', N'1', N''), (N'130634', N'1306', N'00,13,1306', N'曲阳县', N'13', N'河北省', N'1306', N'保定市', N'130634', N'曲阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'130635', N'1306', N'00,13,1306', N'蠡县', N'13', N'河北省', N'1306', N'保定市', N'130635', N'蠡县', N'', N'', N'', N'', N'3', N'1', N''), (N'130636', N'1306', N'00,13,1306', N'顺平县', N'13', N'河北省', N'1306', N'保定市', N'130636', N'顺平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130637', N'1306', N'00,13,1306', N'博野县', N'13', N'河北省', N'1306', N'保定市', N'130637', N'博野县', N'', N'', N'', N'', N'3', N'1', N''), (N'130638', N'1306', N'00,13,1306', N'雄县', N'13', N'河北省', N'1306', N'保定市', N'130638', N'雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'130681', N'1306', N'00,13,1306', N'涿州市', N'13', N'河北省', N'1306', N'保定市', N'130681', N'涿州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130682', N'1306', N'00,13,1306', N'定州市', N'13', N'河北省', N'1306', N'保定市', N'130682', N'定州市', N'', N'', N'', N'', N'3', N'1', N''), (N'130683', N'1306', N'00,13,1306', N'安国市', N'13', N'河北省', N'1306', N'保定市', N'130683', N'安国市', N'', N'', N'', N'', N'3', N'1', N''), (N'130684', N'1306', N'00,13,1306', N'高碑店市', N'13', N'河北省', N'1306', N'保定市', N'130684', N'高碑店市', N'', N'', N'', N'', N'3', N'1', N''), (N'1307', N'13', N'00,13', N'张家口市', N'13', N'河北省', N'1307', N'张家口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130702', N'1307', N'00,13,1307', N'桥东区', N'13', N'河北省', N'1307', N'张家口市', N'130702', N'桥东区', N'', N'', N'', N'', N'3', N'1', N''), (N'130703', N'1307', N'00,13,1307', N'桥西区', N'13', N'河北省', N'1307', N'张家口市', N'130703', N'桥西区', N'', N'', N'', N'', N'3', N'1', N''), (N'130705', N'1307', N'00,13,1307', N'宣化区', N'13', N'河北省', N'1307', N'张家口市', N'130705', N'宣化区', N'', N'', N'', N'', N'3', N'1', N''), (N'130706', N'1307', N'00,13,1307', N'下花园区', N'13', N'河北省', N'1307', N'张家口市', N'130706', N'下花园区', N'', N'', N'', N'', N'3', N'1', N''), (N'130708', N'1307', N'00,13,1307', N'万全区', N'13', N'河北省', N'1307', N'张家口市', N'130708', N'万全区', N'', N'', N'', N'', N'3', N'1', N''), (N'130709', N'1307', N'00,13,1307', N'崇礼区', N'13', N'河北省', N'1307', N'张家口市', N'130709', N'崇礼区', N'', N'', N'', N'', N'3', N'1', N''), (N'130722', N'1307', N'00,13,1307', N'张北县', N'13', N'河北省', N'1307', N'张家口市', N'130722', N'张北县', N'', N'', N'', N'', N'3', N'1', N''), (N'130723', N'1307', N'00,13,1307', N'康保县', N'13', N'河北省', N'1307', N'张家口市', N'130723', N'康保县', N'', N'', N'', N'', N'3', N'1', N''), (N'130724', N'1307', N'00,13,1307', N'沽源县', N'13', N'河北省', N'1307', N'张家口市', N'130724', N'沽源县', N'', N'', N'', N'', N'3', N'1', N''), (N'130725', N'1307', N'00,13,1307', N'尚义县', N'13', N'河北省', N'1307', N'张家口市', N'130725', N'尚义县', N'', N'', N'', N'', N'3', N'1', N''), (N'130726', N'1307', N'00,13,1307', N'蔚县', N'13', N'河北省', N'1307', N'张家口市', N'130726', N'蔚县', N'', N'', N'', N'', N'3', N'1', N''), (N'130727', N'1307', N'00,13,1307', N'阳原县', N'13', N'河北省', N'1307', N'张家口市', N'130727', N'阳原县', N'', N'', N'', N'', N'3', N'1', N''), (N'130728', N'1307', N'00,13,1307', N'怀安县', N'13', N'河北省', N'1307', N'张家口市', N'130728', N'怀安县', N'', N'', N'', N'', N'3', N'1', N''), (N'130730', N'1307', N'00,13,1307', N'怀来县', N'13', N'河北省', N'1307', N'张家口市', N'130730', N'怀来县', N'', N'', N'', N'', N'3', N'1', N''), (N'130731', N'1307', N'00,13,1307', N'涿鹿县', N'13', N'河北省', N'1307', N'张家口市', N'130731', N'涿鹿县', N'', N'', N'', N'', N'3', N'1', N''), (N'130732', N'1307', N'00,13,1307', N'赤城县', N'13', N'河北省', N'1307', N'张家口市', N'130732', N'赤城县', N'', N'', N'', N'', N'3', N'1', N''), (N'1308', N'13', N'00,13', N'承德市', N'13', N'河北省', N'1308', N'承德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130802', N'1308', N'00,13,1308', N'双桥区', N'13', N'河北省', N'1308', N'承德市', N'130802', N'双桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'130803', N'1308', N'00,13,1308', N'双滦区', N'13', N'河北省', N'1308', N'承德市', N'130803', N'双滦区', N'', N'', N'', N'', N'3', N'1', N''), (N'130804', N'1308', N'00,13,1308', N'鹰手营子矿区', N'13', N'河北省', N'1308', N'承德市', N'130804', N'鹰手营子矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'130821', N'1308', N'00,13,1308', N'承德县', N'13', N'河北省', N'1308', N'承德市', N'130821', N'承德县', N'', N'', N'', N'', N'3', N'1', N''), (N'130822', N'1308', N'00,13,1308', N'兴隆县', N'13', N'河北省', N'1308', N'承德市', N'130822', N'兴隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'130824', N'1308', N'00,13,1308', N'滦平县', N'13', N'河北省', N'1308', N'承德市', N'130824', N'滦平县', N'', N'', N'', N'', N'3', N'1', N''), (N'130825', N'1308', N'00,13,1308', N'隆化县', N'13', N'河北省', N'1308', N'承德市', N'130825', N'隆化县', N'', N'', N'', N'', N'3', N'1', N''), (N'130826', N'1308', N'00,13,1308', N'丰宁满族自治县', N'13', N'河北省', N'1308', N'承德市', N'130826', N'丰宁满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130827', N'1308', N'00,13,1308', N'宽城满族自治县', N'13', N'河北省', N'1308', N'承德市', N'130827', N'宽城满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130828', N'1308', N'00,13,1308', N'围场满族蒙古族自治县', N'13', N'河北省', N'1308', N'承德市', N'130828', N'围场满族蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130881', N'1308', N'00,13,1308', N'平泉市', N'13', N'河北省', N'1308', N'承德市', N'130881', N'平泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'1309', N'13', N'00,13', N'沧州市', N'13', N'河北省', N'1309', N'沧州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'130902', N'1309', N'00,13,1309', N'新华区', N'13', N'河北省', N'1309', N'沧州市', N'130902', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'130903', N'1309', N'00,13,1309', N'运河区', N'13', N'河北省', N'1309', N'沧州市', N'130903', N'运河区', N'', N'', N'', N'', N'3', N'1', N''), (N'130921', N'1309', N'00,13,1309', N'沧县', N'13', N'河北省', N'1309', N'沧州市', N'130921', N'沧县', N'', N'', N'', N'', N'3', N'1', N''), (N'130922', N'1309', N'00,13,1309', N'青县', N'13', N'河北省', N'1309', N'沧州市', N'130922', N'青县', N'', N'', N'', N'', N'3', N'1', N''), (N'130923', N'1309', N'00,13,1309', N'东光县', N'13', N'河北省', N'1309', N'沧州市', N'130923', N'东光县', N'', N'', N'', N'', N'3', N'1', N''), (N'130924', N'1309', N'00,13,1309', N'海兴县', N'13', N'河北省', N'1309', N'沧州市', N'130924', N'海兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'130925', N'1309', N'00,13,1309', N'盐山县', N'13', N'河北省', N'1309', N'沧州市', N'130925', N'盐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'130926', N'1309', N'00,13,1309', N'肃宁县', N'13', N'河北省', N'1309', N'沧州市', N'130926', N'肃宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'130927', N'1309', N'00,13,1309', N'南皮县', N'13', N'河北省', N'1309', N'沧州市', N'130927', N'南皮县', N'', N'', N'', N'', N'3', N'1', N''), (N'130928', N'1309', N'00,13,1309', N'吴桥县', N'13', N'河北省', N'1309', N'沧州市', N'130928', N'吴桥县', N'', N'', N'', N'', N'3', N'1', N''), (N'130929', N'1309', N'00,13,1309', N'献县', N'13', N'河北省', N'1309', N'沧州市', N'130929', N'献县', N'', N'', N'', N'', N'3', N'1', N''), (N'130930', N'1309', N'00,13,1309', N'孟村回族自治县', N'13', N'河北省', N'1309', N'沧州市', N'130930', N'孟村回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'130981', N'1309', N'00,13,1309', N'泊头市', N'13', N'河北省', N'1309', N'沧州市', N'130981', N'泊头市', N'', N'', N'', N'', N'3', N'1', N''), (N'130982', N'1309', N'00,13,1309', N'任丘市', N'13', N'河北省', N'1309', N'沧州市', N'130982', N'任丘市', N'', N'', N'', N'', N'3', N'1', N''), (N'130983', N'1309', N'00,13,1309', N'黄骅市', N'13', N'河北省', N'1309', N'沧州市', N'130983', N'黄骅市', N'', N'', N'', N'', N'3', N'1', N''), (N'130984', N'1309', N'00,13,1309', N'河间市', N'13', N'河北省', N'1309', N'沧州市', N'130984', N'河间市', N'', N'', N'', N'', N'3', N'1', N''), (N'1310', N'13', N'00,13', N'廊坊市', N'13', N'河北省', N'1310', N'廊坊市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'131002', N'1310', N'00,13,1310', N'安次区', N'13', N'河北省', N'1310', N'廊坊市', N'131002', N'安次区', N'', N'', N'', N'', N'3', N'1', N''), (N'131003', N'1310', N'00,13,1310', N'广阳区', N'13', N'河北省', N'1310', N'廊坊市', N'131003', N'广阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'131022', N'1310', N'00,13,1310', N'固安县', N'13', N'河北省', N'1310', N'廊坊市', N'131022', N'固安县', N'', N'', N'', N'', N'3', N'1', N''), (N'131023', N'1310', N'00,13,1310', N'永清县', N'13', N'河北省', N'1310', N'廊坊市', N'131023', N'永清县', N'', N'', N'', N'', N'3', N'1', N''), (N'131024', N'1310', N'00,13,1310', N'香河县', N'13', N'河北省', N'1310', N'廊坊市', N'131024', N'香河县', N'', N'', N'', N'', N'3', N'1', N''), (N'131025', N'1310', N'00,13,1310', N'大城县', N'13', N'河北省', N'1310', N'廊坊市', N'131025', N'大城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131026', N'1310', N'00,13,1310', N'文安县', N'13', N'河北省', N'1310', N'廊坊市', N'131026', N'文安县', N'', N'', N'', N'', N'3', N'1', N''), (N'131028', N'1310', N'00,13,1310', N'大厂回族自治县', N'13', N'河北省', N'1310', N'廊坊市', N'131028', N'大厂回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'131081', N'1310', N'00,13,1310', N'霸州市', N'13', N'河北省', N'1310', N'廊坊市', N'131081', N'霸州市', N'', N'', N'', N'', N'3', N'1', N''), (N'131082', N'1310', N'00,13,1310', N'三河市', N'13', N'河北省', N'1310', N'廊坊市', N'131082', N'三河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1311', N'13', N'00,13', N'衡水市', N'13', N'河北省', N'1311', N'衡水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'131102', N'1311', N'00,13,1311', N'桃城区', N'13', N'河北省', N'1311', N'衡水市', N'131102', N'桃城区', N'', N'', N'', N'', N'3', N'1', N''), (N'131103', N'1311', N'00,13,1311', N'冀州区', N'13', N'河北省', N'1311', N'衡水市', N'131103', N'冀州区', N'', N'', N'', N'', N'3', N'1', N''), (N'131121', N'1311', N'00,13,1311', N'枣强县', N'13', N'河北省', N'1311', N'衡水市', N'131121', N'枣强县', N'', N'', N'', N'', N'3', N'1', N''), (N'131122', N'1311', N'00,13,1311', N'武邑县', N'13', N'河北省', N'1311', N'衡水市', N'131122', N'武邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'131123', N'1311', N'00,13,1311', N'武强县', N'13', N'河北省', N'1311', N'衡水市', N'131123', N'武强县', N'', N'', N'', N'', N'3', N'1', N''), (N'131124', N'1311', N'00,13,1311', N'饶阳县', N'13', N'河北省', N'1311', N'衡水市', N'131124', N'饶阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'131125', N'1311', N'00,13,1311', N'安平县', N'13', N'河北省', N'1311', N'衡水市', N'131125', N'安平县', N'', N'', N'', N'', N'3', N'1', N''), (N'131126', N'1311', N'00,13,1311', N'故城县', N'13', N'河北省', N'1311', N'衡水市', N'131126', N'故城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131127', N'1311', N'00,13,1311', N'景县', N'13', N'河北省', N'1311', N'衡水市', N'131127', N'景县', N'', N'', N'', N'', N'3', N'1', N''), (N'131128', N'1311', N'00,13,1311', N'阜城县', N'13', N'河北省', N'1311', N'衡水市', N'131128', N'阜城县', N'', N'', N'', N'', N'3', N'1', N''), (N'131182', N'1311', N'00,13,1311', N'深州市', N'13', N'河北省', N'1311', N'衡水市', N'131182', N'深州市', N'', N'', N'', N'', N'3', N'1', N''), (N'14', N'00', N'00', N'山西省', N'14', N'山西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1401', N'14', N'00,14', N'太原市', N'14', N'山西省', N'1401', N'太原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140105', N'1401', N'00,14,1401', N'小店区', N'14', N'山西省', N'1401', N'太原市', N'140105', N'小店区', N'', N'', N'', N'', N'3', N'1', N''), (N'140106', N'1401', N'00,14,1401', N'迎泽区', N'14', N'山西省', N'1401', N'太原市', N'140106', N'迎泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'140107', N'1401', N'00,14,1401', N'杏花岭区', N'14', N'山西省', N'1401', N'太原市', N'140107', N'杏花岭区', N'', N'', N'', N'', N'3', N'1', N''), (N'140108', N'1401', N'00,14,1401', N'尖草坪区', N'14', N'山西省', N'1401', N'太原市', N'140108', N'尖草坪区', N'', N'', N'', N'', N'3', N'1', N''), (N'140109', N'1401', N'00,14,1401', N'万柏林区', N'14', N'山西省', N'1401', N'太原市', N'140109', N'万柏林区', N'', N'', N'', N'', N'3', N'1', N''), (N'140110', N'1401', N'00,14,1401', N'晋源区', N'14', N'山西省', N'1401', N'太原市', N'140110', N'晋源区', N'', N'', N'', N'', N'3', N'1', N''), (N'140121', N'1401', N'00,14,1401', N'清徐县', N'14', N'山西省', N'1401', N'太原市', N'140121', N'清徐县', N'', N'', N'', N'', N'3', N'1', N''), (N'140122', N'1401', N'00,14,1401', N'阳曲县', N'14', N'山西省', N'1401', N'太原市', N'140122', N'阳曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140123', N'1401', N'00,14,1401', N'娄烦县', N'14', N'山西省', N'1401', N'太原市', N'140123', N'娄烦县', N'', N'', N'', N'', N'3', N'1', N''), (N'140181', N'1401', N'00,14,1401', N'古交市', N'14', N'山西省', N'1401', N'太原市', N'140181', N'古交市', N'', N'', N'', N'', N'3', N'1', N''), (N'1402', N'14', N'00,14', N'大同市', N'14', N'山西省', N'1402', N'大同市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140212', N'1402', N'00,14,1402', N'新荣区', N'14', N'山西省', N'1402', N'大同市', N'140212', N'新荣区', N'', N'', N'', N'', N'3', N'1', N''), (N'140213', N'1402', N'00,14,1402', N'平城区', N'14', N'山西省', N'1402', N'大同市', N'140213', N'平城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140214', N'1402', N'00,14,1402', N'云冈区', N'14', N'山西省', N'1402', N'大同市', N'140214', N'云冈区', N'', N'', N'', N'', N'3', N'1', N''), (N'140215', N'1402', N'00,14,1402', N'云州区', N'14', N'山西省', N'1402', N'大同市', N'140215', N'云州区', N'', N'', N'', N'', N'3', N'1', N''), (N'140221', N'1402', N'00,14,1402', N'阳高县', N'14', N'山西省', N'1402', N'大同市', N'140221', N'阳高县', N'', N'', N'', N'', N'3', N'1', N''), (N'140222', N'1402', N'00,14,1402', N'天镇县', N'14', N'山西省', N'1402', N'大同市', N'140222', N'天镇县', N'', N'', N'', N'', N'3', N'1', N''), (N'140223', N'1402', N'00,14,1402', N'广灵县', N'14', N'山西省', N'1402', N'大同市', N'140223', N'广灵县', N'', N'', N'', N'', N'3', N'1', N''), (N'140224', N'1402', N'00,14,1402', N'灵丘县', N'14', N'山西省', N'1402', N'大同市', N'140224', N'灵丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'140225', N'1402', N'00,14,1402', N'浑源县', N'14', N'山西省', N'1402', N'大同市', N'140225', N'浑源县', N'', N'', N'', N'', N'3', N'1', N''), (N'140226', N'1402', N'00,14,1402', N'左云县', N'14', N'山西省', N'1402', N'大同市', N'140226', N'左云县', N'', N'', N'', N'', N'3', N'1', N''), (N'1403', N'14', N'00,14', N'阳泉市', N'14', N'山西省', N'1403', N'阳泉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140302', N'1403', N'00,14,1403', N'城区', N'14', N'山西省', N'1403', N'阳泉市', N'140302', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140303', N'1403', N'00,14,1403', N'矿区', N'14', N'山西省', N'1403', N'阳泉市', N'140303', N'矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'140311', N'1403', N'00,14,1403', N'郊区', N'14', N'山西省', N'1403', N'阳泉市', N'140311', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'140321', N'1403', N'00,14,1403', N'平定县', N'14', N'山西省', N'1403', N'阳泉市', N'140321', N'平定县', N'', N'', N'', N'', N'3', N'1', N''), (N'140322', N'1403', N'00,14,1403', N'盂县', N'14', N'山西省', N'1403', N'阳泉市', N'140322', N'盂县', N'', N'', N'', N'', N'3', N'1', N''), (N'1404', N'14', N'00,14', N'长治市', N'14', N'山西省', N'1404', N'长治市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140403', N'1404', N'00,14,1404', N'潞州区', N'14', N'山西省', N'1404', N'长治市', N'140403', N'潞州区', N'', N'', N'', N'', N'3', N'1', N''), (N'140404', N'1404', N'00,14,1404', N'上党区', N'14', N'山西省', N'1404', N'长治市', N'140404', N'上党区', N'', N'', N'', N'', N'3', N'1', N''), (N'140405', N'1404', N'00,14,1404', N'屯留区', N'14', N'山西省', N'1404', N'长治市', N'140405', N'屯留区', N'', N'', N'', N'', N'3', N'1', N''), (N'140406', N'1404', N'00,14,1404', N'潞城区', N'14', N'山西省', N'1404', N'长治市', N'140406', N'潞城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140423', N'1404', N'00,14,1404', N'襄垣县', N'14', N'山西省', N'1404', N'长治市', N'140423', N'襄垣县', N'', N'', N'', N'', N'3', N'1', N''), (N'140425', N'1404', N'00,14,1404', N'平顺县', N'14', N'山西省', N'1404', N'长治市', N'140425', N'平顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'140426', N'1404', N'00,14,1404', N'黎城县', N'14', N'山西省', N'1404', N'长治市', N'140426', N'黎城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140427', N'1404', N'00,14,1404', N'壶关县', N'14', N'山西省', N'1404', N'长治市', N'140427', N'壶关县', N'', N'', N'', N'', N'3', N'1', N''), (N'140428', N'1404', N'00,14,1404', N'长子县', N'14', N'山西省', N'1404', N'长治市', N'140428', N'长子县', N'', N'', N'', N'', N'3', N'1', N''), (N'140429', N'1404', N'00,14,1404', N'武乡县', N'14', N'山西省', N'1404', N'长治市', N'140429', N'武乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'140430', N'1404', N'00,14,1404', N'沁县', N'14', N'山西省', N'1404', N'长治市', N'140430', N'沁县', N'', N'', N'', N'', N'3', N'1', N''), (N'140431', N'1404', N'00,14,1404', N'沁源县', N'14', N'山西省', N'1404', N'长治市', N'140431', N'沁源县', N'', N'', N'', N'', N'3', N'1', N''), (N'1405', N'14', N'00,14', N'晋城市', N'14', N'山西省', N'1405', N'晋城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140502', N'1405', N'00,14,1405', N'城区', N'14', N'山西省', N'1405', N'晋城市', N'140502', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140521', N'1405', N'00,14,1405', N'沁水县', N'14', N'山西省', N'1405', N'晋城市', N'140521', N'沁水县', N'', N'', N'', N'', N'3', N'1', N''), (N'140522', N'1405', N'00,14,1405', N'阳城县', N'14', N'山西省', N'1405', N'晋城市', N'140522', N'阳城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140524', N'1405', N'00,14,1405', N'陵川县', N'14', N'山西省', N'1405', N'晋城市', N'140524', N'陵川县', N'', N'', N'', N'', N'3', N'1', N''), (N'140525', N'1405', N'00,14,1405', N'泽州县', N'14', N'山西省', N'1405', N'晋城市', N'140525', N'泽州县', N'', N'', N'', N'', N'3', N'1', N''), (N'140581', N'1405', N'00,14,1405', N'高平市', N'14', N'山西省', N'1405', N'晋城市', N'140581', N'高平市', N'', N'', N'', N'', N'3', N'1', N''), (N'1406', N'14', N'00,14', N'朔州市', N'14', N'山西省', N'1406', N'朔州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140602', N'1406', N'00,14,1406', N'朔城区', N'14', N'山西省', N'1406', N'朔州市', N'140602', N'朔城区', N'', N'', N'', N'', N'3', N'1', N''), (N'140603', N'1406', N'00,14,1406', N'平鲁区', N'14', N'山西省', N'1406', N'朔州市', N'140603', N'平鲁区', N'', N'', N'', N'', N'3', N'1', N''), (N'140621', N'1406', N'00,14,1406', N'山阴县', N'14', N'山西省', N'1406', N'朔州市', N'140621', N'山阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'140622', N'1406', N'00,14,1406', N'应县', N'14', N'山西省', N'1406', N'朔州市', N'140622', N'应县', N'', N'', N'', N'', N'3', N'1', N''), (N'140623', N'1406', N'00,14,1406', N'右玉县', N'14', N'山西省', N'1406', N'朔州市', N'140623', N'右玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'140681', N'1406', N'00,14,1406', N'怀仁市', N'14', N'山西省', N'1406', N'朔州市', N'140681', N'怀仁市', N'', N'', N'', N'', N'3', N'1', N''), (N'1407', N'14', N'00,14', N'晋中市', N'14', N'山西省', N'1407', N'晋中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140702', N'1407', N'00,14,1407', N'榆次区', N'14', N'山西省', N'1407', N'晋中市', N'140702', N'榆次区', N'', N'', N'', N'', N'3', N'1', N''), (N'140703', N'1407', N'00,14,1407', N'太谷区', N'14', N'山西省', N'1407', N'晋中市', N'140703', N'太谷区', N'', N'', N'', N'', N'3', N'1', N''), (N'140721', N'1407', N'00,14,1407', N'榆社县', N'14', N'山西省', N'1407', N'晋中市', N'140721', N'榆社县', N'', N'', N'', N'', N'3', N'1', N''), (N'140722', N'1407', N'00,14,1407', N'左权县', N'14', N'山西省', N'1407', N'晋中市', N'140722', N'左权县', N'', N'', N'', N'', N'3', N'1', N''), (N'140723', N'1407', N'00,14,1407', N'和顺县', N'14', N'山西省', N'1407', N'晋中市', N'140723', N'和顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'140724', N'1407', N'00,14,1407', N'昔阳县', N'14', N'山西省', N'1407', N'晋中市', N'140724', N'昔阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'140725', N'1407', N'00,14,1407', N'寿阳县', N'14', N'山西省', N'1407', N'晋中市', N'140725', N'寿阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'140727', N'1407', N'00,14,1407', N'祁县', N'14', N'山西省', N'1407', N'晋中市', N'140727', N'祁县', N'', N'', N'', N'', N'3', N'1', N''), (N'140728', N'1407', N'00,14,1407', N'平遥县', N'14', N'山西省', N'1407', N'晋中市', N'140728', N'平遥县', N'', N'', N'', N'', N'3', N'1', N''), (N'140729', N'1407', N'00,14,1407', N'灵石县', N'14', N'山西省', N'1407', N'晋中市', N'140729', N'灵石县', N'', N'', N'', N'', N'3', N'1', N''), (N'140781', N'1407', N'00,14,1407', N'介休市', N'14', N'山西省', N'1407', N'晋中市', N'140781', N'介休市', N'', N'', N'', N'', N'3', N'1', N''), (N'1408', N'14', N'00,14', N'运城市', N'14', N'山西省', N'1408', N'运城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140802', N'1408', N'00,14,1408', N'盐湖区', N'14', N'山西省', N'1408', N'运城市', N'140802', N'盐湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'140821', N'1408', N'00,14,1408', N'临猗县', N'14', N'山西省', N'1408', N'运城市', N'140821', N'临猗县', N'', N'', N'', N'', N'3', N'1', N''), (N'140822', N'1408', N'00,14,1408', N'万荣县', N'14', N'山西省', N'1408', N'运城市', N'140822', N'万荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'140823', N'1408', N'00,14,1408', N'闻喜县', N'14', N'山西省', N'1408', N'运城市', N'140823', N'闻喜县', N'', N'', N'', N'', N'3', N'1', N''), (N'140824', N'1408', N'00,14,1408', N'稷山县', N'14', N'山西省', N'1408', N'运城市', N'140824', N'稷山县', N'', N'', N'', N'', N'3', N'1', N''), (N'140825', N'1408', N'00,14,1408', N'新绛县', N'14', N'山西省', N'1408', N'运城市', N'140825', N'新绛县', N'', N'', N'', N'', N'3', N'1', N''), (N'140826', N'1408', N'00,14,1408', N'绛县', N'14', N'山西省', N'1408', N'运城市', N'140826', N'绛县', N'', N'', N'', N'', N'3', N'1', N''), (N'140827', N'1408', N'00,14,1408', N'垣曲县', N'14', N'山西省', N'1408', N'运城市', N'140827', N'垣曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140828', N'1408', N'00,14,1408', N'夏县', N'14', N'山西省', N'1408', N'运城市', N'140828', N'夏县', N'', N'', N'', N'', N'3', N'1', N''), (N'140829', N'1408', N'00,14,1408', N'平陆县', N'14', N'山西省', N'1408', N'运城市', N'140829', N'平陆县', N'', N'', N'', N'', N'3', N'1', N''), (N'140830', N'1408', N'00,14,1408', N'芮城县', N'14', N'山西省', N'1408', N'运城市', N'140830', N'芮城县', N'', N'', N'', N'', N'3', N'1', N''), (N'140881', N'1408', N'00,14,1408', N'永济市', N'14', N'山西省', N'1408', N'运城市', N'140881', N'永济市', N'', N'', N'', N'', N'3', N'1', N''), (N'140882', N'1408', N'00,14,1408', N'河津市', N'14', N'山西省', N'1408', N'运城市', N'140882', N'河津市', N'', N'', N'', N'', N'3', N'1', N''), (N'1409', N'14', N'00,14', N'忻州市', N'14', N'山西省', N'1409', N'忻州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'140902', N'1409', N'00,14,1409', N'忻府区', N'14', N'山西省', N'1409', N'忻州市', N'140902', N'忻府区', N'', N'', N'', N'', N'3', N'1', N''), (N'140921', N'1409', N'00,14,1409', N'定襄县', N'14', N'山西省', N'1409', N'忻州市', N'140921', N'定襄县', N'', N'', N'', N'', N'3', N'1', N''), (N'140922', N'1409', N'00,14,1409', N'五台县', N'14', N'山西省', N'1409', N'忻州市', N'140922', N'五台县', N'', N'', N'', N'', N'3', N'1', N''), (N'140923', N'1409', N'00,14,1409', N'代县', N'14', N'山西省', N'1409', N'忻州市', N'140923', N'代县', N'', N'', N'', N'', N'3', N'1', N''), (N'140924', N'1409', N'00,14,1409', N'繁峙县', N'14', N'山西省', N'1409', N'忻州市', N'140924', N'繁峙县', N'', N'', N'', N'', N'3', N'1', N''), (N'140925', N'1409', N'00,14,1409', N'宁武县', N'14', N'山西省', N'1409', N'忻州市', N'140925', N'宁武县', N'', N'', N'', N'', N'3', N'1', N''), (N'140926', N'1409', N'00,14,1409', N'静乐县', N'14', N'山西省', N'1409', N'忻州市', N'140926', N'静乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'140927', N'1409', N'00,14,1409', N'神池县', N'14', N'山西省', N'1409', N'忻州市', N'140927', N'神池县', N'', N'', N'', N'', N'3', N'1', N''), (N'140928', N'1409', N'00,14,1409', N'五寨县', N'14', N'山西省', N'1409', N'忻州市', N'140928', N'五寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'140929', N'1409', N'00,14,1409', N'岢岚县', N'14', N'山西省', N'1409', N'忻州市', N'140929', N'岢岚县', N'', N'', N'', N'', N'3', N'1', N''), (N'140930', N'1409', N'00,14,1409', N'河曲县', N'14', N'山西省', N'1409', N'忻州市', N'140930', N'河曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'140931', N'1409', N'00,14,1409', N'保德县', N'14', N'山西省', N'1409', N'忻州市', N'140931', N'保德县', N'', N'', N'', N'', N'3', N'1', N''), (N'140932', N'1409', N'00,14,1409', N'偏关县', N'14', N'山西省', N'1409', N'忻州市', N'140932', N'偏关县', N'', N'', N'', N'', N'3', N'1', N''), (N'140981', N'1409', N'00,14,1409', N'原平市', N'14', N'山西省', N'1409', N'忻州市', N'140981', N'原平市', N'', N'', N'', N'', N'3', N'1', N''), (N'1410', N'14', N'00,14', N'临汾市', N'14', N'山西省', N'1410', N'临汾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'141002', N'1410', N'00,14,1410', N'尧都区', N'14', N'山西省', N'1410', N'临汾市', N'141002', N'尧都区', N'', N'', N'', N'', N'3', N'1', N''), (N'141021', N'1410', N'00,14,1410', N'曲沃县', N'14', N'山西省', N'1410', N'临汾市', N'141021', N'曲沃县', N'', N'', N'', N'', N'3', N'1', N''), (N'141022', N'1410', N'00,14,1410', N'翼城县', N'14', N'山西省', N'1410', N'临汾市', N'141022', N'翼城县', N'', N'', N'', N'', N'3', N'1', N''), (N'141023', N'1410', N'00,14,1410', N'襄汾县', N'14', N'山西省', N'1410', N'临汾市', N'141023', N'襄汾县', N'', N'', N'', N'', N'3', N'1', N''), (N'141024', N'1410', N'00,14,1410', N'洪洞县', N'14', N'山西省', N'1410', N'临汾市', N'141024', N'洪洞县', N'', N'', N'', N'', N'3', N'1', N''), (N'141025', N'1410', N'00,14,1410', N'古县', N'14', N'山西省', N'1410', N'临汾市', N'141025', N'古县', N'', N'', N'', N'', N'3', N'1', N''), (N'141026', N'1410', N'00,14,1410', N'安泽县', N'14', N'山西省', N'1410', N'临汾市', N'141026', N'安泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'141027', N'1410', N'00,14,1410', N'浮山县', N'14', N'山西省', N'1410', N'临汾市', N'141027', N'浮山县', N'', N'', N'', N'', N'3', N'1', N''), (N'141028', N'1410', N'00,14,1410', N'吉县', N'14', N'山西省', N'1410', N'临汾市', N'141028', N'吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'141029', N'1410', N'00,14,1410', N'乡宁县', N'14', N'山西省', N'1410', N'临汾市', N'141029', N'乡宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'141030', N'1410', N'00,14,1410', N'大宁县', N'14', N'山西省', N'1410', N'临汾市', N'141030', N'大宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'141031', N'1410', N'00,14,1410', N'隰县', N'14', N'山西省', N'1410', N'临汾市', N'141031', N'隰县', N'', N'', N'', N'', N'3', N'1', N''), (N'141032', N'1410', N'00,14,1410', N'永和县', N'14', N'山西省', N'1410', N'临汾市', N'141032', N'永和县', N'', N'', N'', N'', N'3', N'1', N''), (N'141033', N'1410', N'00,14,1410', N'蒲县', N'14', N'山西省', N'1410', N'临汾市', N'141033', N'蒲县', N'', N'', N'', N'', N'3', N'1', N''), (N'141034', N'1410', N'00,14,1410', N'汾西县', N'14', N'山西省', N'1410', N'临汾市', N'141034', N'汾西县', N'', N'', N'', N'', N'3', N'1', N''), (N'141081', N'1410', N'00,14,1410', N'侯马市', N'14', N'山西省', N'1410', N'临汾市', N'141081', N'侯马市', N'', N'', N'', N'', N'3', N'1', N''), (N'141082', N'1410', N'00,14,1410', N'霍州市', N'14', N'山西省', N'1410', N'临汾市', N'141082', N'霍州市', N'', N'', N'', N'', N'3', N'1', N''), (N'1411', N'14', N'00,14', N'吕梁市', N'14', N'山西省', N'1411', N'吕梁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'141102', N'1411', N'00,14,1411', N'离石区', N'14', N'山西省', N'1411', N'吕梁市', N'141102', N'离石区', N'', N'', N'', N'', N'3', N'1', N''), (N'141121', N'1411', N'00,14,1411', N'文水县', N'14', N'山西省', N'1411', N'吕梁市', N'141121', N'文水县', N'', N'', N'', N'', N'3', N'1', N''), (N'141122', N'1411', N'00,14,1411', N'交城县', N'14', N'山西省', N'1411', N'吕梁市', N'141122', N'交城县', N'', N'', N'', N'', N'3', N'1', N''), (N'141123', N'1411', N'00,14,1411', N'兴县', N'14', N'山西省', N'1411', N'吕梁市', N'141123', N'兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'141124', N'1411', N'00,14,1411', N'临县', N'14', N'山西省', N'1411', N'吕梁市', N'141124', N'临县', N'', N'', N'', N'', N'3', N'1', N''), (N'141125', N'1411', N'00,14,1411', N'柳林县', N'14', N'山西省', N'1411', N'吕梁市', N'141125', N'柳林县', N'', N'', N'', N'', N'3', N'1', N''), (N'141126', N'1411', N'00,14,1411', N'石楼县', N'14', N'山西省', N'1411', N'吕梁市', N'141126', N'石楼县', N'', N'', N'', N'', N'3', N'1', N''), (N'141127', N'1411', N'00,14,1411', N'岚县', N'14', N'山西省', N'1411', N'吕梁市', N'141127', N'岚县', N'', N'', N'', N'', N'3', N'1', N''), (N'141128', N'1411', N'00,14,1411', N'方山县', N'14', N'山西省', N'1411', N'吕梁市', N'141128', N'方山县', N'', N'', N'', N'', N'3', N'1', N''), (N'141129', N'1411', N'00,14,1411', N'中阳县', N'14', N'山西省', N'1411', N'吕梁市', N'141129', N'中阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'141130', N'1411', N'00,14,1411', N'交口县', N'14', N'山西省', N'1411', N'吕梁市', N'141130', N'交口县', N'', N'', N'', N'', N'3', N'1', N''), (N'141181', N'1411', N'00,14,1411', N'孝义市', N'14', N'山西省', N'1411', N'吕梁市', N'141181', N'孝义市', N'', N'', N'', N'', N'3', N'1', N''), (N'141182', N'1411', N'00,14,1411', N'汾阳市', N'14', N'山西省', N'1411', N'吕梁市', N'141182', N'汾阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'15', N'00', N'00', N'内蒙古自治区', N'15', N'内蒙古自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'1501', N'15', N'00,15', N'呼和浩特市', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150102', N'1501', N'00,15,1501', N'新城区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150102', N'新城区', N'', N'', N'', N'', N'3', N'1', N''), (N'150103', N'1501', N'00,15,1501', N'回民区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150103', N'回民区', N'', N'', N'', N'', N'3', N'1', N''), (N'150104', N'1501', N'00,15,1501', N'玉泉区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150104', N'玉泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'150105', N'1501', N'00,15,1501', N'赛罕区', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150105', N'赛罕区', N'', N'', N'', N'', N'3', N'1', N''), (N'150121', N'1501', N'00,15,1501', N'土默特左旗', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150121', N'土默特左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150122', N'1501', N'00,15,1501', N'托克托县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150122', N'托克托县', N'', N'', N'', N'', N'3', N'1', N''), (N'150123', N'1501', N'00,15,1501', N'和林格尔县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150123', N'和林格尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'150124', N'1501', N'00,15,1501', N'清水河县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150124', N'清水河县', N'', N'', N'', N'', N'3', N'1', N''), (N'150125', N'1501', N'00,15,1501', N'武川县', N'15', N'内蒙古自治区', N'1501', N'呼和浩特市', N'150125', N'武川县', N'', N'', N'', N'', N'3', N'1', N''), (N'1502', N'15', N'00,15', N'包头市', N'15', N'内蒙古自治区', N'1502', N'包头市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150202', N'1502', N'00,15,1502', N'东河区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150202', N'东河区', N'', N'', N'', N'', N'3', N'1', N''), (N'150203', N'1502', N'00,15,1502', N'昆都仑区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150203', N'昆都仑区', N'', N'', N'', N'', N'3', N'1', N''), (N'150204', N'1502', N'00,15,1502', N'青山区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150204', N'青山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150205', N'1502', N'00,15,1502', N'石拐区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150205', N'石拐区', N'', N'', N'', N'', N'3', N'1', N''), (N'150206', N'1502', N'00,15,1502', N'白云鄂博矿区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150206', N'白云鄂博矿区', N'', N'', N'', N'', N'3', N'1', N''), (N'150207', N'1502', N'00,15,1502', N'九原区', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150207', N'九原区', N'', N'', N'', N'', N'3', N'1', N''), (N'150221', N'1502', N'00,15,1502', N'土默特右旗', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150221', N'土默特右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150222', N'1502', N'00,15,1502', N'固阳县', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150222', N'固阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'150223', N'1502', N'00,15,1502', N'达尔罕茂明安联合旗', N'15', N'内蒙古自治区', N'1502', N'包头市', N'150223', N'达尔罕茂明安联合旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1503', N'15', N'00,15', N'乌海市', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150302', N'1503', N'00,15,1503', N'海勃湾区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150302', N'海勃湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'150303', N'1503', N'00,15,1503', N'海南区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150303', N'海南区', N'', N'', N'', N'', N'3', N'1', N''), (N'150304', N'1503', N'00,15,1503', N'乌达区', N'15', N'内蒙古自治区', N'1503', N'乌海市', N'150304', N'乌达区', N'', N'', N'', N'', N'3', N'1', N''), (N'1504', N'15', N'00,15', N'赤峰市', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150402', N'1504', N'00,15,1504', N'红山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150402', N'红山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150403', N'1504', N'00,15,1504', N'元宝山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150403', N'元宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150404', N'1504', N'00,15,1504', N'松山区', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150404', N'松山区', N'', N'', N'', N'', N'3', N'1', N''), (N'150421', N'1504', N'00,15,1504', N'阿鲁科尔沁旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150421', N'阿鲁科尔沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150422', N'1504', N'00,15,1504', N'巴林左旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150422', N'巴林左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150423', N'1504', N'00,15,1504', N'巴林右旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150423', N'巴林右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150424', N'1504', N'00,15,1504', N'林西县', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150424', N'林西县', N'', N'', N'', N'', N'3', N'1', N''), (N'150425', N'1504', N'00,15,1504', N'克什克腾旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150425', N'克什克腾旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150426', N'1504', N'00,15,1504', N'翁牛特旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150426', N'翁牛特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150428', N'1504', N'00,15,1504', N'喀喇沁旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150428', N'喀喇沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150429', N'1504', N'00,15,1504', N'宁城县', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150429', N'宁城县', N'', N'', N'', N'', N'3', N'1', N''), (N'150430', N'1504', N'00,15,1504', N'敖汉旗', N'15', N'内蒙古自治区', N'1504', N'赤峰市', N'150430', N'敖汉旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1505', N'15', N'00,15', N'通辽市', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150502', N'1505', N'00,15,1505', N'科尔沁区', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150502', N'科尔沁区', N'', N'', N'', N'', N'3', N'1', N''), (N'150521', N'1505', N'00,15,1505', N'科尔沁左翼中旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150521', N'科尔沁左翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150522', N'1505', N'00,15,1505', N'科尔沁左翼后旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150522', N'科尔沁左翼后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150523', N'1505', N'00,15,1505', N'开鲁县', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150523', N'开鲁县', N'', N'', N'', N'', N'3', N'1', N''), (N'150524', N'1505', N'00,15,1505', N'库伦旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150524', N'库伦旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150525', N'1505', N'00,15,1505', N'奈曼旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150525', N'奈曼旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150526', N'1505', N'00,15,1505', N'扎鲁特旗', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150526', N'扎鲁特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150581', N'1505', N'00,15,1505', N'霍林郭勒市', N'15', N'内蒙古自治区', N'1505', N'通辽市', N'150581', N'霍林郭勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'1506', N'15', N'00,15', N'鄂尔多斯市', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150602', N'1506', N'00,15,1506', N'东胜区', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150602', N'东胜区', N'', N'', N'', N'', N'3', N'1', N''), (N'150603', N'1506', N'00,15,1506', N'康巴什区', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150603', N'康巴什区', N'', N'', N'', N'', N'3', N'1', N''), (N'150621', N'1506', N'00,15,1506', N'达拉特旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150621', N'达拉特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150622', N'1506', N'00,15,1506', N'准格尔旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150622', N'准格尔旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150623', N'1506', N'00,15,1506', N'鄂托克前旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150623', N'鄂托克前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150624', N'1506', N'00,15,1506', N'鄂托克旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150624', N'鄂托克旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150625', N'1506', N'00,15,1506', N'杭锦旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150625', N'杭锦旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150626', N'1506', N'00,15,1506', N'乌审旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150626', N'乌审旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150627', N'1506', N'00,15,1506', N'伊金霍洛旗', N'15', N'内蒙古自治区', N'1506', N'鄂尔多斯市', N'150627', N'伊金霍洛旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1507', N'15', N'00,15', N'呼伦贝尔市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150702', N'1507', N'00,15,1507', N'海拉尔区', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150702', N'海拉尔区', N'', N'', N'', N'', N'3', N'1', N''), (N'150703', N'1507', N'00,15,1507', N'扎赉诺尔区', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150703', N'扎赉诺尔区', N'', N'', N'', N'', N'3', N'1', N''), (N'150721', N'1507', N'00,15,1507', N'阿荣旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150721', N'阿荣旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150722', N'1507', N'00,15,1507', N'莫力达瓦达斡尔族自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150722', N'莫力达瓦达斡尔族自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150723', N'1507', N'00,15,1507', N'鄂伦春自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150723', N'鄂伦春自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150724', N'1507', N'00,15,1507', N'鄂温克族自治旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150724', N'鄂温克族自治旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150725', N'1507', N'00,15,1507', N'陈巴尔虎旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150725', N'陈巴尔虎旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150726', N'1507', N'00,15,1507', N'新巴尔虎左旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150726', N'新巴尔虎左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150727', N'1507', N'00,15,1507', N'新巴尔虎右旗', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150727', N'新巴尔虎右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150781', N'1507', N'00,15,1507', N'满洲里市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150781', N'满洲里市', N'', N'', N'', N'', N'3', N'1', N''), (N'150782', N'1507', N'00,15,1507', N'牙克石市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150782', N'牙克石市', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'150783', N'1507', N'00,15,1507', N'扎兰屯市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150783', N'扎兰屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'150784', N'1507', N'00,15,1507', N'额尔古纳市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150784', N'额尔古纳市', N'', N'', N'', N'', N'3', N'1', N''), (N'150785', N'1507', N'00,15,1507', N'根河市', N'15', N'内蒙古自治区', N'1507', N'呼伦贝尔市', N'150785', N'根河市', N'', N'', N'', N'', N'3', N'1', N''), (N'1508', N'15', N'00,15', N'巴彦淖尔市', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150802', N'1508', N'00,15,1508', N'临河区', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150802', N'临河区', N'', N'', N'', N'', N'3', N'1', N''), (N'150821', N'1508', N'00,15,1508', N'五原县', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150821', N'五原县', N'', N'', N'', N'', N'3', N'1', N''), (N'150822', N'1508', N'00,15,1508', N'磴口县', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150822', N'磴口县', N'', N'', N'', N'', N'3', N'1', N''), (N'150823', N'1508', N'00,15,1508', N'乌拉特前旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150823', N'乌拉特前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150824', N'1508', N'00,15,1508', N'乌拉特中旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150824', N'乌拉特中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150825', N'1508', N'00,15,1508', N'乌拉特后旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150825', N'乌拉特后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150826', N'1508', N'00,15,1508', N'杭锦后旗', N'15', N'内蒙古自治区', N'1508', N'巴彦淖尔市', N'150826', N'杭锦后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'1509', N'15', N'00,15', N'乌兰察布市', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'150902', N'1509', N'00,15,1509', N'集宁区', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150902', N'集宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'150921', N'1509', N'00,15,1509', N'卓资县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150921', N'卓资县', N'', N'', N'', N'', N'3', N'1', N''), (N'150922', N'1509', N'00,15,1509', N'化德县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150922', N'化德县', N'', N'', N'', N'', N'3', N'1', N''), (N'150923', N'1509', N'00,15,1509', N'商都县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150923', N'商都县', N'', N'', N'', N'', N'3', N'1', N''), (N'150924', N'1509', N'00,15,1509', N'兴和县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150924', N'兴和县', N'', N'', N'', N'', N'3', N'1', N''), (N'150925', N'1509', N'00,15,1509', N'凉城县', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150925', N'凉城县', N'', N'', N'', N'', N'3', N'1', N''), (N'150926', N'1509', N'00,15,1509', N'察哈尔右翼前旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150926', N'察哈尔右翼前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150927', N'1509', N'00,15,1509', N'察哈尔右翼中旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150927', N'察哈尔右翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150928', N'1509', N'00,15,1509', N'察哈尔右翼后旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150928', N'察哈尔右翼后旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150929', N'1509', N'00,15,1509', N'四子王旗', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150929', N'四子王旗', N'', N'', N'', N'', N'3', N'1', N''), (N'150981', N'1509', N'00,15,1509', N'丰镇市', N'15', N'内蒙古自治区', N'1509', N'乌兰察布市', N'150981', N'丰镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'1522', N'15', N'00,15', N'兴安盟', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152201', N'1522', N'00,15,1522', N'乌兰浩特市', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152201', N'乌兰浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152202', N'1522', N'00,15,1522', N'阿尔山市', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152202', N'阿尔山市', N'', N'', N'', N'', N'3', N'1', N''), (N'152221', N'1522', N'00,15,1522', N'科尔沁右翼前旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152221', N'科尔沁右翼前旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152222', N'1522', N'00,15,1522', N'科尔沁右翼中旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152222', N'科尔沁右翼中旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152223', N'1522', N'00,15,1522', N'扎赉特旗', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152223', N'扎赉特旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152224', N'1522', N'00,15,1522', N'突泉县', N'15', N'内蒙古自治区', N'1522', N'兴安盟', N'152224', N'突泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'1525', N'15', N'00,15', N'锡林郭勒盟', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152501', N'1525', N'00,15,1525', N'二连浩特市', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152501', N'二连浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152502', N'1525', N'00,15,1525', N'锡林浩特市', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152502', N'锡林浩特市', N'', N'', N'', N'', N'3', N'1', N''), (N'152522', N'1525', N'00,15,1525', N'阿巴嘎旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152522', N'阿巴嘎旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152523', N'1525', N'00,15,1525', N'苏尼特左旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152523', N'苏尼特左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152524', N'1525', N'00,15,1525', N'苏尼特右旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152524', N'苏尼特右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152525', N'1525', N'00,15,1525', N'东乌珠穆沁旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152525', N'东乌珠穆沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152526', N'1525', N'00,15,1525', N'西乌珠穆沁旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152526', N'西乌珠穆沁旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152527', N'1525', N'00,15,1525', N'太仆寺旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152527', N'太仆寺旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152528', N'1525', N'00,15,1525', N'镶黄旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152528', N'镶黄旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152529', N'1525', N'00,15,1525', N'正镶白旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152529', N'正镶白旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152530', N'1525', N'00,15,1525', N'正蓝旗', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152530', N'正蓝旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152531', N'1525', N'00,15,1525', N'多伦县', N'15', N'内蒙古自治区', N'1525', N'锡林郭勒盟', N'152531', N'多伦县', N'', N'', N'', N'', N'3', N'1', N''), (N'1529', N'15', N'00,15', N'阿拉善盟', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'152921', N'1529', N'00,15,1529', N'阿拉善左旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152921', N'阿拉善左旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152922', N'1529', N'00,15,1529', N'阿拉善右旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152922', N'阿拉善右旗', N'', N'', N'', N'', N'3', N'1', N''), (N'152923', N'1529', N'00,15,1529', N'额济纳旗', N'15', N'内蒙古自治区', N'1529', N'阿拉善盟', N'152923', N'额济纳旗', N'', N'', N'', N'', N'3', N'1', N''), (N'21', N'00', N'00', N'辽宁省', N'21', N'辽宁省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2101', N'21', N'00,21', N'沈阳市', N'21', N'辽宁省', N'2101', N'沈阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210102', N'2101', N'00,21,2101', N'和平区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210102', N'和平区', N'', N'', N'', N'', N'3', N'1', N''), (N'210103', N'2101', N'00,21,2101', N'沈河区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210103', N'沈河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210104', N'2101', N'00,21,2101', N'大东区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210104', N'大东区', N'', N'', N'', N'', N'3', N'1', N''), (N'210105', N'2101', N'00,21,2101', N'皇姑区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210105', N'皇姑区', N'', N'', N'', N'', N'3', N'1', N''), (N'210106', N'2101', N'00,21,2101', N'铁西区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210106', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'210111', N'2101', N'00,21,2101', N'苏家屯区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210111', N'苏家屯区', N'', N'', N'', N'', N'3', N'1', N''), (N'210112', N'2101', N'00,21,2101', N'浑南区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210112', N'浑南区', N'', N'', N'', N'', N'3', N'1', N''), (N'210113', N'2101', N'00,21,2101', N'沈北新区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210113', N'沈北新区', N'', N'', N'', N'', N'3', N'1', N''), (N'210114', N'2101', N'00,21,2101', N'于洪区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210114', N'于洪区', N'', N'', N'', N'', N'3', N'1', N''), (N'210115', N'2101', N'00,21,2101', N'辽中区', N'21', N'辽宁省', N'2101', N'沈阳市', N'210115', N'辽中区', N'', N'', N'', N'', N'3', N'1', N''), (N'210123', N'2101', N'00,21,2101', N'康平县', N'21', N'辽宁省', N'2101', N'沈阳市', N'210123', N'康平县', N'', N'', N'', N'', N'3', N'1', N''), (N'210124', N'2101', N'00,21,2101', N'法库县', N'21', N'辽宁省', N'2101', N'沈阳市', N'210124', N'法库县', N'', N'', N'', N'', N'3', N'1', N''), (N'210181', N'2101', N'00,21,2101', N'新民市', N'21', N'辽宁省', N'2101', N'沈阳市', N'210181', N'新民市', N'', N'', N'', N'', N'3', N'1', N''), (N'2102', N'21', N'00,21', N'大连市', N'21', N'辽宁省', N'2102', N'大连市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210202', N'2102', N'00,21,2102', N'中山区', N'21', N'辽宁省', N'2102', N'大连市', N'210202', N'中山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210203', N'2102', N'00,21,2102', N'西岗区', N'21', N'辽宁省', N'2102', N'大连市', N'210203', N'西岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'210204', N'2102', N'00,21,2102', N'沙河口区', N'21', N'辽宁省', N'2102', N'大连市', N'210204', N'沙河口区', N'', N'', N'', N'', N'3', N'1', N''), (N'210211', N'2102', N'00,21,2102', N'甘井子区', N'21', N'辽宁省', N'2102', N'大连市', N'210211', N'甘井子区', N'', N'', N'', N'', N'3', N'1', N''), (N'210212', N'2102', N'00,21,2102', N'旅顺口区', N'21', N'辽宁省', N'2102', N'大连市', N'210212', N'旅顺口区', N'', N'', N'', N'', N'3', N'1', N''), (N'210213', N'2102', N'00,21,2102', N'金州区', N'21', N'辽宁省', N'2102', N'大连市', N'210213', N'金州区', N'', N'', N'', N'', N'3', N'1', N''), (N'210214', N'2102', N'00,21,2102', N'普兰店区', N'21', N'辽宁省', N'2102', N'大连市', N'210214', N'普兰店区', N'', N'', N'', N'', N'3', N'1', N''), (N'210224', N'2102', N'00,21,2102', N'长海县', N'21', N'辽宁省', N'2102', N'大连市', N'210224', N'长海县', N'', N'', N'', N'', N'3', N'1', N''), (N'210281', N'2102', N'00,21,2102', N'瓦房店市', N'21', N'辽宁省', N'2102', N'大连市', N'210281', N'瓦房店市', N'', N'', N'', N'', N'3', N'1', N''), (N'210283', N'2102', N'00,21,2102', N'庄河市', N'21', N'辽宁省', N'2102', N'大连市', N'210283', N'庄河市', N'', N'', N'', N'', N'3', N'1', N''), (N'2103', N'21', N'00,21', N'鞍山市', N'21', N'辽宁省', N'2103', N'鞍山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210302', N'2103', N'00,21,2103', N'铁东区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210302', N'铁东区', N'', N'', N'', N'', N'3', N'1', N''), (N'210303', N'2103', N'00,21,2103', N'铁西区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210303', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'210304', N'2103', N'00,21,2103', N'立山区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210304', N'立山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210311', N'2103', N'00,21,2103', N'千山区', N'21', N'辽宁省', N'2103', N'鞍山市', N'210311', N'千山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210321', N'2103', N'00,21,2103', N'台安县', N'21', N'辽宁省', N'2103', N'鞍山市', N'210321', N'台安县', N'', N'', N'', N'', N'3', N'1', N''), (N'210323', N'2103', N'00,21,2103', N'岫岩满族自治县', N'21', N'辽宁省', N'2103', N'鞍山市', N'210323', N'岫岩满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210381', N'2103', N'00,21,2103', N'海城市', N'21', N'辽宁省', N'2103', N'鞍山市', N'210381', N'海城市', N'', N'', N'', N'', N'3', N'1', N''), (N'2104', N'21', N'00,21', N'抚顺市', N'21', N'辽宁省', N'2104', N'抚顺市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210402', N'2104', N'00,21,2104', N'新抚区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210402', N'新抚区', N'', N'', N'', N'', N'3', N'1', N''), (N'210403', N'2104', N'00,21,2104', N'东洲区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210403', N'东洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'210404', N'2104', N'00,21,2104', N'望花区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210404', N'望花区', N'', N'', N'', N'', N'3', N'1', N''), (N'210411', N'2104', N'00,21,2104', N'顺城区', N'21', N'辽宁省', N'2104', N'抚顺市', N'210411', N'顺城区', N'', N'', N'', N'', N'3', N'1', N''), (N'210421', N'2104', N'00,21,2104', N'抚顺县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210421', N'抚顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'210422', N'2104', N'00,21,2104', N'新宾满族自治县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210422', N'新宾满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210423', N'2104', N'00,21,2104', N'清原满族自治县', N'21', N'辽宁省', N'2104', N'抚顺市', N'210423', N'清原满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2105', N'21', N'00,21', N'本溪市', N'21', N'辽宁省', N'2105', N'本溪市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210502', N'2105', N'00,21,2105', N'平山区', N'21', N'辽宁省', N'2105', N'本溪市', N'210502', N'平山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210503', N'2105', N'00,21,2105', N'溪湖区', N'21', N'辽宁省', N'2105', N'本溪市', N'210503', N'溪湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'210504', N'2105', N'00,21,2105', N'明山区', N'21', N'辽宁省', N'2105', N'本溪市', N'210504', N'明山区', N'', N'', N'', N'', N'3', N'1', N''), (N'210505', N'2105', N'00,21,2105', N'南芬区', N'21', N'辽宁省', N'2105', N'本溪市', N'210505', N'南芬区', N'', N'', N'', N'', N'3', N'1', N''), (N'210521', N'2105', N'00,21,2105', N'本溪满族自治县', N'21', N'辽宁省', N'2105', N'本溪市', N'210521', N'本溪满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210522', N'2105', N'00,21,2105', N'桓仁满族自治县', N'21', N'辽宁省', N'2105', N'本溪市', N'210522', N'桓仁满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2106', N'21', N'00,21', N'丹东市', N'21', N'辽宁省', N'2106', N'丹东市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210602', N'2106', N'00,21,2106', N'元宝区', N'21', N'辽宁省', N'2106', N'丹东市', N'210602', N'元宝区', N'', N'', N'', N'', N'3', N'1', N''), (N'210603', N'2106', N'00,21,2106', N'振兴区', N'21', N'辽宁省', N'2106', N'丹东市', N'210603', N'振兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'210604', N'2106', N'00,21,2106', N'振安区', N'21', N'辽宁省', N'2106', N'丹东市', N'210604', N'振安区', N'', N'', N'', N'', N'3', N'1', N''), (N'210624', N'2106', N'00,21,2106', N'宽甸满族自治县', N'21', N'辽宁省', N'2106', N'丹东市', N'210624', N'宽甸满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210681', N'2106', N'00,21,2106', N'东港市', N'21', N'辽宁省', N'2106', N'丹东市', N'210681', N'东港市', N'', N'', N'', N'', N'3', N'1', N''), (N'210682', N'2106', N'00,21,2106', N'凤城市', N'21', N'辽宁省', N'2106', N'丹东市', N'210682', N'凤城市', N'', N'', N'', N'', N'3', N'1', N''), (N'2107', N'21', N'00,21', N'锦州市', N'21', N'辽宁省', N'2107', N'锦州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210702', N'2107', N'00,21,2107', N'古塔区', N'21', N'辽宁省', N'2107', N'锦州市', N'210702', N'古塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'210703', N'2107', N'00,21,2107', N'凌河区', N'21', N'辽宁省', N'2107', N'锦州市', N'210703', N'凌河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210711', N'2107', N'00,21,2107', N'太和区', N'21', N'辽宁省', N'2107', N'锦州市', N'210711', N'太和区', N'', N'', N'', N'', N'3', N'1', N''), (N'210726', N'2107', N'00,21,2107', N'黑山县', N'21', N'辽宁省', N'2107', N'锦州市', N'210726', N'黑山县', N'', N'', N'', N'', N'3', N'1', N''), (N'210727', N'2107', N'00,21,2107', N'义县', N'21', N'辽宁省', N'2107', N'锦州市', N'210727', N'义县', N'', N'', N'', N'', N'3', N'1', N''), (N'210781', N'2107', N'00,21,2107', N'凌海市', N'21', N'辽宁省', N'2107', N'锦州市', N'210781', N'凌海市', N'', N'', N'', N'', N'3', N'1', N''), (N'210782', N'2107', N'00,21,2107', N'北镇市', N'21', N'辽宁省', N'2107', N'锦州市', N'210782', N'北镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'2108', N'21', N'00,21', N'营口市', N'21', N'辽宁省', N'2108', N'营口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210802', N'2108', N'00,21,2108', N'站前区', N'21', N'辽宁省', N'2108', N'营口市', N'210802', N'站前区', N'', N'', N'', N'', N'3', N'1', N''), (N'210803', N'2108', N'00,21,2108', N'西市区', N'21', N'辽宁省', N'2108', N'营口市', N'210803', N'西市区', N'', N'', N'', N'', N'3', N'1', N''), (N'210804', N'2108', N'00,21,2108', N'鲅鱼圈区', N'21', N'辽宁省', N'2108', N'营口市', N'210804', N'鲅鱼圈区', N'', N'', N'', N'', N'3', N'1', N''), (N'210811', N'2108', N'00,21,2108', N'老边区', N'21', N'辽宁省', N'2108', N'营口市', N'210811', N'老边区', N'', N'', N'', N'', N'3', N'1', N''), (N'210881', N'2108', N'00,21,2108', N'盖州市', N'21', N'辽宁省', N'2108', N'营口市', N'210881', N'盖州市', N'', N'', N'', N'', N'3', N'1', N''), (N'210882', N'2108', N'00,21,2108', N'大石桥市', N'21', N'辽宁省', N'2108', N'营口市', N'210882', N'大石桥市', N'', N'', N'', N'', N'3', N'1', N''), (N'2109', N'21', N'00,21', N'阜新市', N'21', N'辽宁省', N'2109', N'阜新市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'210902', N'2109', N'00,21,2109', N'海州区', N'21', N'辽宁省', N'2109', N'阜新市', N'210902', N'海州区', N'', N'', N'', N'', N'3', N'1', N''), (N'210903', N'2109', N'00,21,2109', N'新邱区', N'21', N'辽宁省', N'2109', N'阜新市', N'210903', N'新邱区', N'', N'', N'', N'', N'3', N'1', N''), (N'210904', N'2109', N'00,21,2109', N'太平区', N'21', N'辽宁省', N'2109', N'阜新市', N'210904', N'太平区', N'', N'', N'', N'', N'3', N'1', N''), (N'210905', N'2109', N'00,21,2109', N'清河门区', N'21', N'辽宁省', N'2109', N'阜新市', N'210905', N'清河门区', N'', N'', N'', N'', N'3', N'1', N''), (N'210911', N'2109', N'00,21,2109', N'细河区', N'21', N'辽宁省', N'2109', N'阜新市', N'210911', N'细河区', N'', N'', N'', N'', N'3', N'1', N''), (N'210921', N'2109', N'00,21,2109', N'阜新蒙古族自治县', N'21', N'辽宁省', N'2109', N'阜新市', N'210921', N'阜新蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'210922', N'2109', N'00,21,2109', N'彰武县', N'21', N'辽宁省', N'2109', N'阜新市', N'210922', N'彰武县', N'', N'', N'', N'', N'3', N'1', N''), (N'2110', N'21', N'00,21', N'辽阳市', N'21', N'辽宁省', N'2110', N'辽阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211002', N'2110', N'00,21,2110', N'白塔区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211002', N'白塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'211003', N'2110', N'00,21,2110', N'文圣区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211003', N'文圣区', N'', N'', N'', N'', N'3', N'1', N''), (N'211004', N'2110', N'00,21,2110', N'宏伟区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211004', N'宏伟区', N'', N'', N'', N'', N'3', N'1', N''), (N'211005', N'2110', N'00,21,2110', N'弓长岭区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211005', N'弓长岭区', N'', N'', N'', N'', N'3', N'1', N''), (N'211011', N'2110', N'00,21,2110', N'太子河区', N'21', N'辽宁省', N'2110', N'辽阳市', N'211011', N'太子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'211021', N'2110', N'00,21,2110', N'辽阳县', N'21', N'辽宁省', N'2110', N'辽阳市', N'211021', N'辽阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'211081', N'2110', N'00,21,2110', N'灯塔市', N'21', N'辽宁省', N'2110', N'辽阳市', N'211081', N'灯塔市', N'', N'', N'', N'', N'3', N'1', N''), (N'2111', N'21', N'00,21', N'盘锦市', N'21', N'辽宁省', N'2111', N'盘锦市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211102', N'2111', N'00,21,2111', N'双台子区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211102', N'双台子区', N'', N'', N'', N'', N'3', N'1', N''), (N'211103', N'2111', N'00,21,2111', N'兴隆台区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211103', N'兴隆台区', N'', N'', N'', N'', N'3', N'1', N''), (N'211104', N'2111', N'00,21,2111', N'大洼区', N'21', N'辽宁省', N'2111', N'盘锦市', N'211104', N'大洼区', N'', N'', N'', N'', N'3', N'1', N''), (N'211122', N'2111', N'00,21,2111', N'盘山县', N'21', N'辽宁省', N'2111', N'盘锦市', N'211122', N'盘山县', N'', N'', N'', N'', N'3', N'1', N''), (N'2112', N'21', N'00,21', N'铁岭市', N'21', N'辽宁省', N'2112', N'铁岭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211202', N'2112', N'00,21,2112', N'银州区', N'21', N'辽宁省', N'2112', N'铁岭市', N'211202', N'银州区', N'', N'', N'', N'', N'3', N'1', N''), (N'211204', N'2112', N'00,21,2112', N'清河区', N'21', N'辽宁省', N'2112', N'铁岭市', N'211204', N'清河区', N'', N'', N'', N'', N'3', N'1', N''), (N'211221', N'2112', N'00,21,2112', N'铁岭县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211221', N'铁岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'211223', N'2112', N'00,21,2112', N'西丰县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211223', N'西丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'211224', N'2112', N'00,21,2112', N'昌图县', N'21', N'辽宁省', N'2112', N'铁岭市', N'211224', N'昌图县', N'', N'', N'', N'', N'3', N'1', N''), (N'211281', N'2112', N'00,21,2112', N'调兵山市', N'21', N'辽宁省', N'2112', N'铁岭市', N'211281', N'调兵山市', N'', N'', N'', N'', N'3', N'1', N''), (N'211282', N'2112', N'00,21,2112', N'开原市', N'21', N'辽宁省', N'2112', N'铁岭市', N'211282', N'开原市', N'', N'', N'', N'', N'3', N'1', N''), (N'2113', N'21', N'00,21', N'朝阳市', N'21', N'辽宁省', N'2113', N'朝阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211302', N'2113', N'00,21,2113', N'双塔区', N'21', N'辽宁省', N'2113', N'朝阳市', N'211302', N'双塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'211303', N'2113', N'00,21,2113', N'龙城区', N'21', N'辽宁省', N'2113', N'朝阳市', N'211303', N'龙城区', N'', N'', N'', N'', N'3', N'1', N''), (N'211321', N'2113', N'00,21,2113', N'朝阳县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211321', N'朝阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'211322', N'2113', N'00,21,2113', N'建平县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211322', N'建平县', N'', N'', N'', N'', N'3', N'1', N''), (N'211324', N'2113', N'00,21,2113', N'喀喇沁左翼蒙古族自治县', N'21', N'辽宁省', N'2113', N'朝阳市', N'211324', N'喀喇沁左翼蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'211381', N'2113', N'00,21,2113', N'北票市', N'21', N'辽宁省', N'2113', N'朝阳市', N'211381', N'北票市', N'', N'', N'', N'', N'3', N'1', N''), (N'211382', N'2113', N'00,21,2113', N'凌源市', N'21', N'辽宁省', N'2113', N'朝阳市', N'211382', N'凌源市', N'', N'', N'', N'', N'3', N'1', N''), (N'2114', N'21', N'00,21', N'葫芦岛市', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'211402', N'2114', N'00,21,2114', N'连山区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211402', N'连山区', N'', N'', N'', N'', N'3', N'1', N''), (N'211403', N'2114', N'00,21,2114', N'龙港区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211403', N'龙港区', N'', N'', N'', N'', N'3', N'1', N''), (N'211404', N'2114', N'00,21,2114', N'南票区', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211404', N'南票区', N'', N'', N'', N'', N'3', N'1', N''), (N'211421', N'2114', N'00,21,2114', N'绥中县', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211421', N'绥中县', N'', N'', N'', N'', N'3', N'1', N''), (N'211422', N'2114', N'00,21,2114', N'建昌县', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211422', N'建昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'211481', N'2114', N'00,21,2114', N'兴城市', N'21', N'辽宁省', N'2114', N'葫芦岛市', N'211481', N'兴城市', N'', N'', N'', N'', N'3', N'1', N''), (N'22', N'00', N'00', N'吉林省', N'22', N'吉林省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2201', N'22', N'00,22', N'长春市', N'22', N'吉林省', N'2201', N'长春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220102', N'2201', N'00,22,2201', N'南关区', N'22', N'吉林省', N'2201', N'长春市', N'220102', N'南关区', N'', N'', N'', N'', N'3', N'1', N''), (N'220103', N'2201', N'00,22,2201', N'宽城区', N'22', N'吉林省', N'2201', N'长春市', N'220103', N'宽城区', N'', N'', N'', N'', N'3', N'1', N''), (N'220104', N'2201', N'00,22,2201', N'朝阳区', N'22', N'吉林省', N'2201', N'长春市', N'220104', N'朝阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'220105', N'2201', N'00,22,2201', N'二道区', N'22', N'吉林省', N'2201', N'长春市', N'220105', N'二道区', N'', N'', N'', N'', N'3', N'1', N''), (N'220106', N'2201', N'00,22,2201', N'绿园区', N'22', N'吉林省', N'2201', N'长春市', N'220106', N'绿园区', N'', N'', N'', N'', N'3', N'1', N''), (N'220112', N'2201', N'00,22,2201', N'双阳区', N'22', N'吉林省', N'2201', N'长春市', N'220112', N'双阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'220113', N'2201', N'00,22,2201', N'九台区', N'22', N'吉林省', N'2201', N'长春市', N'220113', N'九台区', N'', N'', N'', N'', N'3', N'1', N''), (N'220122', N'2201', N'00,22,2201', N'农安县', N'22', N'吉林省', N'2201', N'长春市', N'220122', N'农安县', N'', N'', N'', N'', N'3', N'1', N''), (N'220182', N'2201', N'00,22,2201', N'榆树市', N'22', N'吉林省', N'2201', N'长春市', N'220182', N'榆树市', N'', N'', N'', N'', N'3', N'1', N''), (N'220183', N'2201', N'00,22,2201', N'德惠市', N'22', N'吉林省', N'2201', N'长春市', N'220183', N'德惠市', N'', N'', N'', N'', N'3', N'1', N''), (N'2202', N'22', N'00,22', N'吉林市', N'22', N'吉林省', N'2202', N'吉林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220202', N'2202', N'00,22,2202', N'昌邑区', N'22', N'吉林省', N'2202', N'吉林市', N'220202', N'昌邑区', N'', N'', N'', N'', N'3', N'1', N''), (N'220203', N'2202', N'00,22,2202', N'龙潭区', N'22', N'吉林省', N'2202', N'吉林市', N'220203', N'龙潭区', N'', N'', N'', N'', N'3', N'1', N''), (N'220204', N'2202', N'00,22,2202', N'船营区', N'22', N'吉林省', N'2202', N'吉林市', N'220204', N'船营区', N'', N'', N'', N'', N'3', N'1', N''), (N'220211', N'2202', N'00,22,2202', N'丰满区', N'22', N'吉林省', N'2202', N'吉林市', N'220211', N'丰满区', N'', N'', N'', N'', N'3', N'1', N''), (N'220221', N'2202', N'00,22,2202', N'永吉县', N'22', N'吉林省', N'2202', N'吉林市', N'220221', N'永吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'220281', N'2202', N'00,22,2202', N'蛟河市', N'22', N'吉林省', N'2202', N'吉林市', N'220281', N'蛟河市', N'', N'', N'', N'', N'3', N'1', N''), (N'220282', N'2202', N'00,22,2202', N'桦甸市', N'22', N'吉林省', N'2202', N'吉林市', N'220282', N'桦甸市', N'', N'', N'', N'', N'3', N'1', N''), (N'220283', N'2202', N'00,22,2202', N'舒兰市', N'22', N'吉林省', N'2202', N'吉林市', N'220283', N'舒兰市', N'', N'', N'', N'', N'3', N'1', N''), (N'220284', N'2202', N'00,22,2202', N'磐石市', N'22', N'吉林省', N'2202', N'吉林市', N'220284', N'磐石市', N'', N'', N'', N'', N'3', N'1', N''), (N'2203', N'22', N'00,22', N'四平市', N'22', N'吉林省', N'2203', N'四平市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220302', N'2203', N'00,22,2203', N'铁西区', N'22', N'吉林省', N'2203', N'四平市', N'220302', N'铁西区', N'', N'', N'', N'', N'3', N'1', N''), (N'220303', N'2203', N'00,22,2203', N'铁东区', N'22', N'吉林省', N'2203', N'四平市', N'220303', N'铁东区', N'', N'', N'', N'', N'3', N'1', N''), (N'220322', N'2203', N'00,22,2203', N'梨树县', N'22', N'吉林省', N'2203', N'四平市', N'220322', N'梨树县', N'', N'', N'', N'', N'3', N'1', N''), (N'220323', N'2203', N'00,22,2203', N'伊通满族自治县', N'22', N'吉林省', N'2203', N'四平市', N'220323', N'伊通满族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220381', N'2203', N'00,22,2203', N'公主岭市', N'22', N'吉林省', N'2203', N'四平市', N'220381', N'公主岭市', N'', N'', N'', N'', N'3', N'1', N''), (N'220382', N'2203', N'00,22,2203', N'双辽市', N'22', N'吉林省', N'2203', N'四平市', N'220382', N'双辽市', N'', N'', N'', N'', N'3', N'1', N''), (N'2204', N'22', N'00,22', N'辽源市', N'22', N'吉林省', N'2204', N'辽源市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220402', N'2204', N'00,22,2204', N'龙山区', N'22', N'吉林省', N'2204', N'辽源市', N'220402', N'龙山区', N'', N'', N'', N'', N'3', N'1', N''), (N'220403', N'2204', N'00,22,2204', N'西安区', N'22', N'吉林省', N'2204', N'辽源市', N'220403', N'西安区', N'', N'', N'', N'', N'3', N'1', N''), (N'220421', N'2204', N'00,22,2204', N'东丰县', N'22', N'吉林省', N'2204', N'辽源市', N'220421', N'东丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'220422', N'2204', N'00,22,2204', N'东辽县', N'22', N'吉林省', N'2204', N'辽源市', N'220422', N'东辽县', N'', N'', N'', N'', N'3', N'1', N''), (N'2205', N'22', N'00,22', N'通化市', N'22', N'吉林省', N'2205', N'通化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220502', N'2205', N'00,22,2205', N'东昌区', N'22', N'吉林省', N'2205', N'通化市', N'220502', N'东昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'220503', N'2205', N'00,22,2205', N'二道江区', N'22', N'吉林省', N'2205', N'通化市', N'220503', N'二道江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220521', N'2205', N'00,22,2205', N'通化县', N'22', N'吉林省', N'2205', N'通化市', N'220521', N'通化县', N'', N'', N'', N'', N'3', N'1', N''), (N'220523', N'2205', N'00,22,2205', N'辉南县', N'22', N'吉林省', N'2205', N'通化市', N'220523', N'辉南县', N'', N'', N'', N'', N'3', N'1', N''), (N'220524', N'2205', N'00,22,2205', N'柳河县', N'22', N'吉林省', N'2205', N'通化市', N'220524', N'柳河县', N'', N'', N'', N'', N'3', N'1', N''), (N'220581', N'2205', N'00,22,2205', N'梅河口市', N'22', N'吉林省', N'2205', N'通化市', N'220581', N'梅河口市', N'', N'', N'', N'', N'3', N'1', N''), (N'220582', N'2205', N'00,22,2205', N'集安市', N'22', N'吉林省', N'2205', N'通化市', N'220582', N'集安市', N'', N'', N'', N'', N'3', N'1', N''), (N'2206', N'22', N'00,22', N'白山市', N'22', N'吉林省', N'2206', N'白山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220602', N'2206', N'00,22,2206', N'浑江区', N'22', N'吉林省', N'2206', N'白山市', N'220602', N'浑江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220605', N'2206', N'00,22,2206', N'江源区', N'22', N'吉林省', N'2206', N'白山市', N'220605', N'江源区', N'', N'', N'', N'', N'3', N'1', N''), (N'220621', N'2206', N'00,22,2206', N'抚松县', N'22', N'吉林省', N'2206', N'白山市', N'220621', N'抚松县', N'', N'', N'', N'', N'3', N'1', N''), (N'220622', N'2206', N'00,22,2206', N'靖宇县', N'22', N'吉林省', N'2206', N'白山市', N'220622', N'靖宇县', N'', N'', N'', N'', N'3', N'1', N''), (N'220623', N'2206', N'00,22,2206', N'长白朝鲜族自治县', N'22', N'吉林省', N'2206', N'白山市', N'220623', N'长白朝鲜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220681', N'2206', N'00,22,2206', N'临江市', N'22', N'吉林省', N'2206', N'白山市', N'220681', N'临江市', N'', N'', N'', N'', N'3', N'1', N''), (N'2207', N'22', N'00,22', N'松原市', N'22', N'吉林省', N'2207', N'松原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220702', N'2207', N'00,22,2207', N'宁江区', N'22', N'吉林省', N'2207', N'松原市', N'220702', N'宁江区', N'', N'', N'', N'', N'3', N'1', N''), (N'220721', N'2207', N'00,22,2207', N'前郭尔罗斯蒙古族自治县', N'22', N'吉林省', N'2207', N'松原市', N'220721', N'前郭尔罗斯蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'220722', N'2207', N'00,22,2207', N'长岭县', N'22', N'吉林省', N'2207', N'松原市', N'220722', N'长岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'220723', N'2207', N'00,22,2207', N'乾安县', N'22', N'吉林省', N'2207', N'松原市', N'220723', N'乾安县', N'', N'', N'', N'', N'3', N'1', N''), (N'220781', N'2207', N'00,22,2207', N'扶余市', N'22', N'吉林省', N'2207', N'松原市', N'220781', N'扶余市', N'', N'', N'', N'', N'3', N'1', N''), (N'2208', N'22', N'00,22', N'白城市', N'22', N'吉林省', N'2208', N'白城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'220802', N'2208', N'00,22,2208', N'洮北区', N'22', N'吉林省', N'2208', N'白城市', N'220802', N'洮北区', N'', N'', N'', N'', N'3', N'1', N''), (N'220821', N'2208', N'00,22,2208', N'镇赉县', N'22', N'吉林省', N'2208', N'白城市', N'220821', N'镇赉县', N'', N'', N'', N'', N'3', N'1', N''), (N'220822', N'2208', N'00,22,2208', N'通榆县', N'22', N'吉林省', N'2208', N'白城市', N'220822', N'通榆县', N'', N'', N'', N'', N'3', N'1', N''), (N'220881', N'2208', N'00,22,2208', N'洮南市', N'22', N'吉林省', N'2208', N'白城市', N'220881', N'洮南市', N'', N'', N'', N'', N'3', N'1', N''), (N'220882', N'2208', N'00,22,2208', N'大安市', N'22', N'吉林省', N'2208', N'白城市', N'220882', N'大安市', N'', N'', N'', N'', N'3', N'1', N''), (N'2224', N'22', N'00,22', N'延边朝鲜族自治州', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'222401', N'2224', N'00,22,2224', N'延吉市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222401', N'延吉市', N'', N'', N'', N'', N'3', N'1', N''), (N'222402', N'2224', N'00,22,2224', N'图们市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222402', N'图们市', N'', N'', N'', N'', N'3', N'1', N''), (N'222403', N'2224', N'00,22,2224', N'敦化市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222403', N'敦化市', N'', N'', N'', N'', N'3', N'1', N''), (N'222404', N'2224', N'00,22,2224', N'珲春市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222404', N'珲春市', N'', N'', N'', N'', N'3', N'1', N''), (N'222405', N'2224', N'00,22,2224', N'龙井市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222405', N'龙井市', N'', N'', N'', N'', N'3', N'1', N''), (N'222406', N'2224', N'00,22,2224', N'和龙市', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222406', N'和龙市', N'', N'', N'', N'', N'3', N'1', N''), (N'222424', N'2224', N'00,22,2224', N'汪清县', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222424', N'汪清县', N'', N'', N'', N'', N'3', N'1', N''), (N'222426', N'2224', N'00,22,2224', N'安图县', N'22', N'吉林省', N'2224', N'延边朝鲜族自治州', N'222426', N'安图县', N'', N'', N'', N'', N'3', N'1', N''), (N'23', N'00', N'00', N'黑龙江省', N'23', N'黑龙江省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'2301', N'23', N'00,23', N'哈尔滨市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230102', N'2301', N'00,23,2301', N'道里区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230102', N'道里区', N'', N'', N'', N'', N'3', N'1', N''), (N'230103', N'2301', N'00,23,2301', N'南岗区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230103', N'南岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'230104', N'2301', N'00,23,2301', N'道外区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230104', N'道外区', N'', N'', N'', N'', N'3', N'1', N''), (N'230108', N'2301', N'00,23,2301', N'平房区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230108', N'平房区', N'', N'', N'', N'', N'3', N'1', N''), (N'230109', N'2301', N'00,23,2301', N'松北区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230109', N'松北区', N'', N'', N'', N'', N'3', N'1', N''), (N'230110', N'2301', N'00,23,2301', N'香坊区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230110', N'香坊区', N'', N'', N'', N'', N'3', N'1', N''), (N'230111', N'2301', N'00,23,2301', N'呼兰区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230111', N'呼兰区', N'', N'', N'', N'', N'3', N'1', N''), (N'230112', N'2301', N'00,23,2301', N'阿城区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230112', N'阿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'230113', N'2301', N'00,23,2301', N'双城区', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230113', N'双城区', N'', N'', N'', N'', N'3', N'1', N''), (N'230123', N'2301', N'00,23,2301', N'依兰县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230123', N'依兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'230124', N'2301', N'00,23,2301', N'方正县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230124', N'方正县', N'', N'', N'', N'', N'3', N'1', N''), (N'230125', N'2301', N'00,23,2301', N'宾县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230125', N'宾县', N'', N'', N'', N'', N'3', N'1', N''), (N'230126', N'2301', N'00,23,2301', N'巴彦县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230126', N'巴彦县', N'', N'', N'', N'', N'3', N'1', N''), (N'230127', N'2301', N'00,23,2301', N'木兰县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230127', N'木兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'230128', N'2301', N'00,23,2301', N'通河县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230128', N'通河县', N'', N'', N'', N'', N'3', N'1', N''), (N'230129', N'2301', N'00,23,2301', N'延寿县', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230129', N'延寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'230183', N'2301', N'00,23,2301', N'尚志市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230183', N'尚志市', N'', N'', N'', N'', N'3', N'1', N''), (N'230184', N'2301', N'00,23,2301', N'五常市', N'23', N'黑龙江省', N'2301', N'哈尔滨市', N'230184', N'五常市', N'', N'', N'', N'', N'3', N'1', N''), (N'2302', N'23', N'00,23', N'齐齐哈尔市', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230202', N'2302', N'00,23,2302', N'龙沙区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230202', N'龙沙区', N'', N'', N'', N'', N'3', N'1', N''), (N'230203', N'2302', N'00,23,2302', N'建华区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230203', N'建华区', N'', N'', N'', N'', N'3', N'1', N''), (N'230204', N'2302', N'00,23,2302', N'铁锋区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230204', N'铁锋区', N'', N'', N'', N'', N'3', N'1', N''), (N'230205', N'2302', N'00,23,2302', N'昂昂溪区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230205', N'昂昂溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'230206', N'2302', N'00,23,2302', N'富拉尔基区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230206', N'富拉尔基区', N'', N'', N'', N'', N'3', N'1', N''), (N'230207', N'2302', N'00,23,2302', N'碾子山区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230207', N'碾子山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230208', N'2302', N'00,23,2302', N'梅里斯达斡尔族区', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230208', N'梅里斯达斡尔族区', N'', N'', N'', N'', N'3', N'1', N''), (N'230221', N'2302', N'00,23,2302', N'龙江县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230221', N'龙江县', N'', N'', N'', N'', N'3', N'1', N''), (N'230223', N'2302', N'00,23,2302', N'依安县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230223', N'依安县', N'', N'', N'', N'', N'3', N'1', N''), (N'230224', N'2302', N'00,23,2302', N'泰来县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230224', N'泰来县', N'', N'', N'', N'', N'3', N'1', N''), (N'230225', N'2302', N'00,23,2302', N'甘南县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230225', N'甘南县', N'', N'', N'', N'', N'3', N'1', N''), (N'230227', N'2302', N'00,23,2302', N'富裕县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230227', N'富裕县', N'', N'', N'', N'', N'3', N'1', N''), (N'230229', N'2302', N'00,23,2302', N'克山县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230229', N'克山县', N'', N'', N'', N'', N'3', N'1', N''), (N'230230', N'2302', N'00,23,2302', N'克东县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230230', N'克东县', N'', N'', N'', N'', N'3', N'1', N''), (N'230231', N'2302', N'00,23,2302', N'拜泉县', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230231', N'拜泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'230281', N'2302', N'00,23,2302', N'讷河市', N'23', N'黑龙江省', N'2302', N'齐齐哈尔市', N'230281', N'讷河市', N'', N'', N'', N'', N'3', N'1', N''), (N'2303', N'23', N'00,23', N'鸡西市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230302', N'2303', N'00,23,2303', N'鸡冠区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230302', N'鸡冠区', N'', N'', N'', N'', N'3', N'1', N''), (N'230303', N'2303', N'00,23,2303', N'恒山区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230303', N'恒山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230304', N'2303', N'00,23,2303', N'滴道区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230304', N'滴道区', N'', N'', N'', N'', N'3', N'1', N''), (N'230305', N'2303', N'00,23,2303', N'梨树区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230305', N'梨树区', N'', N'', N'', N'', N'3', N'1', N''), (N'230306', N'2303', N'00,23,2303', N'城子河区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230306', N'城子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'230307', N'2303', N'00,23,2303', N'麻山区', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230307', N'麻山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230321', N'2303', N'00,23,2303', N'鸡东县', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230321', N'鸡东县', N'', N'', N'', N'', N'3', N'1', N''), (N'230381', N'2303', N'00,23,2303', N'虎林市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230381', N'虎林市', N'', N'', N'', N'', N'3', N'1', N''), (N'230382', N'2303', N'00,23,2303', N'密山市', N'23', N'黑龙江省', N'2303', N'鸡西市', N'230382', N'密山市', N'', N'', N'', N'', N'3', N'1', N''), (N'2304', N'23', N'00,23', N'鹤岗市', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230402', N'2304', N'00,23,2304', N'向阳区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230402', N'向阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'230403', N'2304', N'00,23,2304', N'工农区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230403', N'工农区', N'', N'', N'', N'', N'3', N'1', N''), (N'230404', N'2304', N'00,23,2304', N'南山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230404', N'南山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230405', N'2304', N'00,23,2304', N'兴安区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230405', N'兴安区', N'', N'', N'', N'', N'3', N'1', N''), (N'230406', N'2304', N'00,23,2304', N'东山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230406', N'东山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230407', N'2304', N'00,23,2304', N'兴山区', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230407', N'兴山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230421', N'2304', N'00,23,2304', N'萝北县', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230421', N'萝北县', N'', N'', N'', N'', N'3', N'1', N''), (N'230422', N'2304', N'00,23,2304', N'绥滨县', N'23', N'黑龙江省', N'2304', N'鹤岗市', N'230422', N'绥滨县', N'', N'', N'', N'', N'3', N'1', N''), (N'2305', N'23', N'00,23', N'双鸭山市', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230502', N'2305', N'00,23,2305', N'尖山区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230502', N'尖山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230503', N'2305', N'00,23,2305', N'岭东区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230503', N'岭东区', N'', N'', N'', N'', N'3', N'1', N''), (N'230505', N'2305', N'00,23,2305', N'四方台区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230505', N'四方台区', N'', N'', N'', N'', N'3', N'1', N''), (N'230506', N'2305', N'00,23,2305', N'宝山区', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230506', N'宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230521', N'2305', N'00,23,2305', N'集贤县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230521', N'集贤县', N'', N'', N'', N'', N'3', N'1', N''), (N'230522', N'2305', N'00,23,2305', N'友谊县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230522', N'友谊县', N'', N'', N'', N'', N'3', N'1', N''), (N'230523', N'2305', N'00,23,2305', N'宝清县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230523', N'宝清县', N'', N'', N'', N'', N'3', N'1', N''), (N'230524', N'2305', N'00,23,2305', N'饶河县', N'23', N'黑龙江省', N'2305', N'双鸭山市', N'230524', N'饶河县', N'', N'', N'', N'', N'3', N'1', N''), (N'2306', N'23', N'00,23', N'大庆市', N'23', N'黑龙江省', N'2306', N'大庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230602', N'2306', N'00,23,2306', N'萨尔图区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230602', N'萨尔图区', N'', N'', N'', N'', N'3', N'1', N''), (N'230603', N'2306', N'00,23,2306', N'龙凤区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230603', N'龙凤区', N'', N'', N'', N'', N'3', N'1', N''), (N'230604', N'2306', N'00,23,2306', N'让胡路区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230604', N'让胡路区', N'', N'', N'', N'', N'3', N'1', N''), (N'230605', N'2306', N'00,23,2306', N'红岗区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230605', N'红岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'230606', N'2306', N'00,23,2306', N'大同区', N'23', N'黑龙江省', N'2306', N'大庆市', N'230606', N'大同区', N'', N'', N'', N'', N'3', N'1', N''), (N'230621', N'2306', N'00,23,2306', N'肇州县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230621', N'肇州县', N'', N'', N'', N'', N'3', N'1', N''), (N'230622', N'2306', N'00,23,2306', N'肇源县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230622', N'肇源县', N'', N'', N'', N'', N'3', N'1', N''), (N'230623', N'2306', N'00,23,2306', N'林甸县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230623', N'林甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'230624', N'2306', N'00,23,2306', N'杜尔伯特蒙古族自治县', N'23', N'黑龙江省', N'2306', N'大庆市', N'230624', N'杜尔伯特蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'2307', N'23', N'00,23', N'伊春市', N'23', N'黑龙江省', N'2307', N'伊春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230717', N'2307', N'00,23,2307', N'伊美区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230717', N'伊美区', N'', N'', N'', N'', N'3', N'1', N''), (N'230718', N'2307', N'00,23,2307', N'乌翠区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230718', N'乌翠区', N'', N'', N'', N'', N'3', N'1', N''), (N'230719', N'2307', N'00,23,2307', N'友好区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230719', N'友好区', N'', N'', N'', N'', N'3', N'1', N''), (N'230722', N'2307', N'00,23,2307', N'嘉荫县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230722', N'嘉荫县', N'', N'', N'', N'', N'3', N'1', N''), (N'230723', N'2307', N'00,23,2307', N'汤旺县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230723', N'汤旺县', N'', N'', N'', N'', N'3', N'1', N''), (N'230724', N'2307', N'00,23,2307', N'丰林县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230724', N'丰林县', N'', N'', N'', N'', N'3', N'1', N''), (N'230725', N'2307', N'00,23,2307', N'大箐山县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230725', N'大箐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'230726', N'2307', N'00,23,2307', N'南岔县', N'23', N'黑龙江省', N'2307', N'伊春市', N'230726', N'南岔县', N'', N'', N'', N'', N'3', N'1', N''), (N'230751', N'2307', N'00,23,2307', N'金林区', N'23', N'黑龙江省', N'2307', N'伊春市', N'230751', N'金林区', N'', N'', N'', N'', N'3', N'1', N''), (N'230781', N'2307', N'00,23,2307', N'铁力市', N'23', N'黑龙江省', N'2307', N'伊春市', N'230781', N'铁力市', N'', N'', N'', N'', N'3', N'1', N''), (N'2308', N'23', N'00,23', N'佳木斯市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230803', N'2308', N'00,23,2308', N'向阳区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230803', N'向阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'230804', N'2308', N'00,23,2308', N'前进区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230804', N'前进区', N'', N'', N'', N'', N'3', N'1', N''), (N'230805', N'2308', N'00,23,2308', N'东风区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230805', N'东风区', N'', N'', N'', N'', N'3', N'1', N''), (N'230811', N'2308', N'00,23,2308', N'郊区', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230811', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'230822', N'2308', N'00,23,2308', N'桦南县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230822', N'桦南县', N'', N'', N'', N'', N'3', N'1', N''), (N'230826', N'2308', N'00,23,2308', N'桦川县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230826', N'桦川县', N'', N'', N'', N'', N'3', N'1', N''), (N'230828', N'2308', N'00,23,2308', N'汤原县', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230828', N'汤原县', N'', N'', N'', N'', N'3', N'1', N''), (N'230881', N'2308', N'00,23,2308', N'同江市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230881', N'同江市', N'', N'', N'', N'', N'3', N'1', N''), (N'230882', N'2308', N'00,23,2308', N'富锦市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230882', N'富锦市', N'', N'', N'', N'', N'3', N'1', N''), (N'230883', N'2308', N'00,23,2308', N'抚远市', N'23', N'黑龙江省', N'2308', N'佳木斯市', N'230883', N'抚远市', N'', N'', N'', N'', N'3', N'1', N''), (N'2309', N'23', N'00,23', N'七台河市', N'23', N'黑龙江省', N'2309', N'七台河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'230902', N'2309', N'00,23,2309', N'新兴区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230902', N'新兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'230903', N'2309', N'00,23,2309', N'桃山区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230903', N'桃山区', N'', N'', N'', N'', N'3', N'1', N''), (N'230904', N'2309', N'00,23,2309', N'茄子河区', N'23', N'黑龙江省', N'2309', N'七台河市', N'230904', N'茄子河区', N'', N'', N'', N'', N'3', N'1', N''), (N'230921', N'2309', N'00,23,2309', N'勃利县', N'23', N'黑龙江省', N'2309', N'七台河市', N'230921', N'勃利县', N'', N'', N'', N'', N'3', N'1', N''), (N'2310', N'23', N'00,23', N'牡丹江市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231002', N'2310', N'00,23,2310', N'东安区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231002', N'东安区', N'', N'', N'', N'', N'3', N'1', N''), (N'231003', N'2310', N'00,23,2310', N'阳明区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231003', N'阳明区', N'', N'', N'', N'', N'3', N'1', N''), (N'231004', N'2310', N'00,23,2310', N'爱民区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231004', N'爱民区', N'', N'', N'', N'', N'3', N'1', N''), (N'231005', N'2310', N'00,23,2310', N'西安区', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231005', N'西安区', N'', N'', N'', N'', N'3', N'1', N''), (N'231025', N'2310', N'00,23,2310', N'林口县', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231025', N'林口县', N'', N'', N'', N'', N'3', N'1', N''), (N'231081', N'2310', N'00,23,2310', N'绥芬河市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231081', N'绥芬河市', N'', N'', N'', N'', N'3', N'1', N''), (N'231083', N'2310', N'00,23,2310', N'海林市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231083', N'海林市', N'', N'', N'', N'', N'3', N'1', N''), (N'231084', N'2310', N'00,23,2310', N'宁安市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231084', N'宁安市', N'', N'', N'', N'', N'3', N'1', N''), (N'231085', N'2310', N'00,23,2310', N'穆棱市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231085', N'穆棱市', N'', N'', N'', N'', N'3', N'1', N''), (N'231086', N'2310', N'00,23,2310', N'东宁市', N'23', N'黑龙江省', N'2310', N'牡丹江市', N'231086', N'东宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'2311', N'23', N'00,23', N'黑河市', N'23', N'黑龙江省', N'2311', N'黑河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231102', N'2311', N'00,23,2311', N'爱辉区', N'23', N'黑龙江省', N'2311', N'黑河市', N'231102', N'爱辉区', N'', N'', N'', N'', N'3', N'1', N''), (N'231123', N'2311', N'00,23,2311', N'逊克县', N'23', N'黑龙江省', N'2311', N'黑河市', N'231123', N'逊克县', N'', N'', N'', N'', N'3', N'1', N''), (N'231124', N'2311', N'00,23,2311', N'孙吴县', N'23', N'黑龙江省', N'2311', N'黑河市', N'231124', N'孙吴县', N'', N'', N'', N'', N'3', N'1', N''), (N'231181', N'2311', N'00,23,2311', N'北安市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231181', N'北安市', N'', N'', N'', N'', N'3', N'1', N''), (N'231182', N'2311', N'00,23,2311', N'五大连池市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231182', N'五大连池市', N'', N'', N'', N'', N'3', N'1', N''), (N'231183', N'2311', N'00,23,2311', N'嫩江市', N'23', N'黑龙江省', N'2311', N'黑河市', N'231183', N'嫩江市', N'', N'', N'', N'', N'3', N'1', N''), (N'2312', N'23', N'00,23', N'绥化市', N'23', N'黑龙江省', N'2312', N'绥化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'231202', N'2312', N'00,23,2312', N'北林区', N'23', N'黑龙江省', N'2312', N'绥化市', N'231202', N'北林区', N'', N'', N'', N'', N'3', N'1', N''), (N'231221', N'2312', N'00,23,2312', N'望奎县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231221', N'望奎县', N'', N'', N'', N'', N'3', N'1', N''), (N'231222', N'2312', N'00,23,2312', N'兰西县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231222', N'兰西县', N'', N'', N'', N'', N'3', N'1', N''), (N'231223', N'2312', N'00,23,2312', N'青冈县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231223', N'青冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'231224', N'2312', N'00,23,2312', N'庆安县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231224', N'庆安县', N'', N'', N'', N'', N'3', N'1', N''), (N'231225', N'2312', N'00,23,2312', N'明水县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231225', N'明水县', N'', N'', N'', N'', N'3', N'1', N''), (N'231226', N'2312', N'00,23,2312', N'绥棱县', N'23', N'黑龙江省', N'2312', N'绥化市', N'231226', N'绥棱县', N'', N'', N'', N'', N'3', N'1', N''), (N'231281', N'2312', N'00,23,2312', N'安达市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231281', N'安达市', N'', N'', N'', N'', N'3', N'1', N''), (N'231282', N'2312', N'00,23,2312', N'肇东市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231282', N'肇东市', N'', N'', N'', N'', N'3', N'1', N''), (N'231283', N'2312', N'00,23,2312', N'海伦市', N'23', N'黑龙江省', N'2312', N'绥化市', N'231283', N'海伦市', N'', N'', N'', N'', N'3', N'1', N''), (N'2327', N'23', N'00,23', N'大兴安岭地区', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'232701', N'2327', N'00,23,2327', N'漠河市', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232701', N'漠河市', N'', N'', N'', N'', N'3', N'1', N''), (N'232721', N'2327', N'00,23,2327', N'呼玛县', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232721', N'呼玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'232722', N'2327', N'00,23,2327', N'塔河县', N'23', N'黑龙江省', N'2327', N'大兴安岭地区', N'232722', N'塔河县', N'', N'', N'', N'', N'3', N'1', N''), (N'31', N'00', N'00', N'上海市', N'31', N'上海市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3101', N'31', N'00,31', N'上海市', N'31', N'上海市', N'3101', N'上海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'310101', N'3101', N'00,31,3101', N'黄浦区', N'31', N'上海市', N'3101', N'上海市', N'310101', N'黄浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310104', N'3101', N'00,31,3101', N'徐汇区', N'31', N'上海市', N'3101', N'上海市', N'310104', N'徐汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'310105', N'3101', N'00,31,3101', N'长宁区', N'31', N'上海市', N'3101', N'上海市', N'310105', N'长宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'310106', N'3101', N'00,31,3101', N'静安区', N'31', N'上海市', N'3101', N'上海市', N'310106', N'静安区', N'', N'', N'', N'', N'3', N'1', N''), (N'310107', N'3101', N'00,31,3101', N'普陀区', N'31', N'上海市', N'3101', N'上海市', N'310107', N'普陀区', N'', N'', N'', N'', N'3', N'1', N''), (N'310109', N'3101', N'00,31,3101', N'虹口区', N'31', N'上海市', N'3101', N'上海市', N'310109', N'虹口区', N'', N'', N'', N'', N'3', N'1', N''), (N'310110', N'3101', N'00,31,3101', N'杨浦区', N'31', N'上海市', N'3101', N'上海市', N'310110', N'杨浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310112', N'3101', N'00,31,3101', N'闵行区', N'31', N'上海市', N'3101', N'上海市', N'310112', N'闵行区', N'', N'', N'', N'', N'3', N'1', N''), (N'310113', N'3101', N'00,31,3101', N'宝山区', N'31', N'上海市', N'3101', N'上海市', N'310113', N'宝山区', N'', N'', N'', N'', N'3', N'1', N''), (N'310114', N'3101', N'00,31,3101', N'嘉定区', N'31', N'上海市', N'3101', N'上海市', N'310114', N'嘉定区', N'', N'', N'', N'', N'3', N'1', N''), (N'310115', N'3101', N'00,31,3101', N'浦东新区', N'31', N'上海市', N'3101', N'上海市', N'310115', N'浦东新区', N'', N'', N'', N'', N'3', N'1', N''), (N'310116', N'3101', N'00,31,3101', N'金山区', N'31', N'上海市', N'3101', N'上海市', N'310116', N'金山区', N'', N'', N'', N'', N'3', N'1', N''), (N'310117', N'3101', N'00,31,3101', N'松江区', N'31', N'上海市', N'3101', N'上海市', N'310117', N'松江区', N'', N'', N'', N'', N'3', N'1', N''), (N'310118', N'3101', N'00,31,3101', N'青浦区', N'31', N'上海市', N'3101', N'上海市', N'310118', N'青浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'310120', N'3101', N'00,31,3101', N'奉贤区', N'31', N'上海市', N'3101', N'上海市', N'310120', N'奉贤区', N'', N'', N'', N'', N'3', N'1', N''), (N'310151', N'3101', N'00,31,3101', N'崇明区', N'31', N'上海市', N'3101', N'上海市', N'310151', N'崇明区', N'', N'', N'', N'', N'3', N'1', N''), (N'32', N'00', N'00', N'江苏省', N'32', N'江苏省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3201', N'32', N'00,32', N'南京市', N'32', N'江苏省', N'3201', N'南京市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320102', N'3201', N'00,32,3201', N'玄武区', N'32', N'江苏省', N'3201', N'南京市', N'320102', N'玄武区', N'', N'', N'', N'', N'3', N'1', N''), (N'320104', N'3201', N'00,32,3201', N'秦淮区', N'32', N'江苏省', N'3201', N'南京市', N'320104', N'秦淮区', N'', N'', N'', N'', N'3', N'1', N''), (N'320105', N'3201', N'00,32,3201', N'建邺区', N'32', N'江苏省', N'3201', N'南京市', N'320105', N'建邺区', N'', N'', N'', N'', N'3', N'1', N''), (N'320106', N'3201', N'00,32,3201', N'鼓楼区', N'32', N'江苏省', N'3201', N'南京市', N'320106', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320111', N'3201', N'00,32,3201', N'浦口区', N'32', N'江苏省', N'3201', N'南京市', N'320111', N'浦口区', N'', N'', N'', N'', N'3', N'1', N''), (N'320113', N'3201', N'00,32,3201', N'栖霞区', N'32', N'江苏省', N'3201', N'南京市', N'320113', N'栖霞区', N'', N'', N'', N'', N'3', N'1', N''), (N'320114', N'3201', N'00,32,3201', N'雨花台区', N'32', N'江苏省', N'3201', N'南京市', N'320114', N'雨花台区', N'', N'', N'', N'', N'3', N'1', N''), (N'320115', N'3201', N'00,32,3201', N'江宁区', N'32', N'江苏省', N'3201', N'南京市', N'320115', N'江宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'320116', N'3201', N'00,32,3201', N'六合区', N'32', N'江苏省', N'3201', N'南京市', N'320116', N'六合区', N'', N'', N'', N'', N'3', N'1', N''), (N'320117', N'3201', N'00,32,3201', N'溧水区', N'32', N'江苏省', N'3201', N'南京市', N'320117', N'溧水区', N'', N'', N'', N'', N'3', N'1', N''), (N'320118', N'3201', N'00,32,3201', N'高淳区', N'32', N'江苏省', N'3201', N'南京市', N'320118', N'高淳区', N'', N'', N'', N'', N'3', N'1', N''), (N'3202', N'32', N'00,32', N'无锡市', N'32', N'江苏省', N'3202', N'无锡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320205', N'3202', N'00,32,3202', N'锡山区', N'32', N'江苏省', N'3202', N'无锡市', N'320205', N'锡山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320206', N'3202', N'00,32,3202', N'惠山区', N'32', N'江苏省', N'3202', N'无锡市', N'320206', N'惠山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320211', N'3202', N'00,32,3202', N'滨湖区', N'32', N'江苏省', N'3202', N'无锡市', N'320211', N'滨湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'320213', N'3202', N'00,32,3202', N'梁溪区', N'32', N'江苏省', N'3202', N'无锡市', N'320213', N'梁溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'320214', N'3202', N'00,32,3202', N'新吴区', N'32', N'江苏省', N'3202', N'无锡市', N'320214', N'新吴区', N'', N'', N'', N'', N'3', N'1', N''), (N'320281', N'3202', N'00,32,3202', N'江阴市', N'32', N'江苏省', N'3202', N'无锡市', N'320281', N'江阴市', N'', N'', N'', N'', N'3', N'1', N''), (N'320282', N'3202', N'00,32,3202', N'宜兴市', N'32', N'江苏省', N'3202', N'无锡市', N'320282', N'宜兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'3203', N'32', N'00,32', N'徐州市', N'32', N'江苏省', N'3203', N'徐州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320302', N'3203', N'00,32,3203', N'鼓楼区', N'32', N'江苏省', N'3203', N'徐州市', N'320302', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320303', N'3203', N'00,32,3203', N'云龙区', N'32', N'江苏省', N'3203', N'徐州市', N'320303', N'云龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'320305', N'3203', N'00,32,3203', N'贾汪区', N'32', N'江苏省', N'3203', N'徐州市', N'320305', N'贾汪区', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'320311', N'3203', N'00,32,3203', N'泉山区', N'32', N'江苏省', N'3203', N'徐州市', N'320311', N'泉山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320312', N'3203', N'00,32,3203', N'铜山区', N'32', N'江苏省', N'3203', N'徐州市', N'320312', N'铜山区', N'', N'', N'', N'', N'3', N'1', N''), (N'320321', N'3203', N'00,32,3203', N'丰县', N'32', N'江苏省', N'3203', N'徐州市', N'320321', N'丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'320322', N'3203', N'00,32,3203', N'沛县', N'32', N'江苏省', N'3203', N'徐州市', N'320322', N'沛县', N'', N'', N'', N'', N'3', N'1', N''), (N'320324', N'3203', N'00,32,3203', N'睢宁县', N'32', N'江苏省', N'3203', N'徐州市', N'320324', N'睢宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'320381', N'3203', N'00,32,3203', N'新沂市', N'32', N'江苏省', N'3203', N'徐州市', N'320381', N'新沂市', N'', N'', N'', N'', N'3', N'1', N''), (N'320382', N'3203', N'00,32,3203', N'邳州市', N'32', N'江苏省', N'3203', N'徐州市', N'320382', N'邳州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3204', N'32', N'00,32', N'常州市', N'32', N'江苏省', N'3204', N'常州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320402', N'3204', N'00,32,3204', N'天宁区', N'32', N'江苏省', N'3204', N'常州市', N'320402', N'天宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'320404', N'3204', N'00,32,3204', N'钟楼区', N'32', N'江苏省', N'3204', N'常州市', N'320404', N'钟楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'320411', N'3204', N'00,32,3204', N'新北区', N'32', N'江苏省', N'3204', N'常州市', N'320411', N'新北区', N'', N'', N'', N'', N'3', N'1', N''), (N'320412', N'3204', N'00,32,3204', N'武进区', N'32', N'江苏省', N'3204', N'常州市', N'320412', N'武进区', N'', N'', N'', N'', N'3', N'1', N''), (N'320413', N'3204', N'00,32,3204', N'金坛区', N'32', N'江苏省', N'3204', N'常州市', N'320413', N'金坛区', N'', N'', N'', N'', N'3', N'1', N''), (N'320481', N'3204', N'00,32,3204', N'溧阳市', N'32', N'江苏省', N'3204', N'常州市', N'320481', N'溧阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'3205', N'32', N'00,32', N'苏州市', N'32', N'江苏省', N'3205', N'苏州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320505', N'3205', N'00,32,3205', N'虎丘区', N'32', N'江苏省', N'3205', N'苏州市', N'320505', N'虎丘区', N'', N'', N'', N'', N'3', N'1', N''), (N'320506', N'3205', N'00,32,3205', N'吴中区', N'32', N'江苏省', N'3205', N'苏州市', N'320506', N'吴中区', N'', N'', N'', N'', N'3', N'1', N''), (N'320507', N'3205', N'00,32,3205', N'相城区', N'32', N'江苏省', N'3205', N'苏州市', N'320507', N'相城区', N'', N'', N'', N'', N'3', N'1', N''), (N'320508', N'3205', N'00,32,3205', N'姑苏区', N'32', N'江苏省', N'3205', N'苏州市', N'320508', N'姑苏区', N'', N'', N'', N'', N'3', N'1', N''), (N'320509', N'3205', N'00,32,3205', N'吴江区', N'32', N'江苏省', N'3205', N'苏州市', N'320509', N'吴江区', N'', N'', N'', N'', N'3', N'1', N''), (N'320581', N'3205', N'00,32,3205', N'常熟市', N'32', N'江苏省', N'3205', N'苏州市', N'320581', N'常熟市', N'', N'', N'', N'', N'3', N'1', N''), (N'320582', N'3205', N'00,32,3205', N'张家港市', N'32', N'江苏省', N'3205', N'苏州市', N'320582', N'张家港市', N'', N'', N'', N'', N'3', N'1', N''), (N'320583', N'3205', N'00,32,3205', N'昆山市', N'32', N'江苏省', N'3205', N'苏州市', N'320583', N'昆山市', N'', N'', N'', N'', N'3', N'1', N''), (N'320585', N'3205', N'00,32,3205', N'太仓市', N'32', N'江苏省', N'3205', N'苏州市', N'320585', N'太仓市', N'', N'', N'', N'', N'3', N'1', N''), (N'3206', N'32', N'00,32', N'南通市', N'32', N'江苏省', N'3206', N'南通市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320602', N'3206', N'00,32,3206', N'崇川区', N'32', N'江苏省', N'3206', N'南通市', N'320602', N'崇川区', N'', N'', N'', N'', N'3', N'1', N''), (N'320611', N'3206', N'00,32,3206', N'港闸区', N'32', N'江苏省', N'3206', N'南通市', N'320611', N'港闸区', N'', N'', N'', N'', N'3', N'1', N''), (N'320612', N'3206', N'00,32,3206', N'通州区', N'32', N'江苏省', N'3206', N'南通市', N'320612', N'通州区', N'', N'', N'', N'', N'3', N'1', N''), (N'320623', N'3206', N'00,32,3206', N'如东县', N'32', N'江苏省', N'3206', N'南通市', N'320623', N'如东县', N'', N'', N'', N'', N'3', N'1', N''), (N'320681', N'3206', N'00,32,3206', N'启东市', N'32', N'江苏省', N'3206', N'南通市', N'320681', N'启东市', N'', N'', N'', N'', N'3', N'1', N''), (N'320682', N'3206', N'00,32,3206', N'如皋市', N'32', N'江苏省', N'3206', N'南通市', N'320682', N'如皋市', N'', N'', N'', N'', N'3', N'1', N''), (N'320684', N'3206', N'00,32,3206', N'海门市', N'32', N'江苏省', N'3206', N'南通市', N'320684', N'海门市', N'', N'', N'', N'', N'3', N'1', N''), (N'320685', N'3206', N'00,32,3206', N'海安市', N'32', N'江苏省', N'3206', N'南通市', N'320685', N'海安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3207', N'32', N'00,32', N'连云港市', N'32', N'江苏省', N'3207', N'连云港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320703', N'3207', N'00,32,3207', N'连云区', N'32', N'江苏省', N'3207', N'连云港市', N'320703', N'连云区', N'', N'', N'', N'', N'3', N'1', N''), (N'320706', N'3207', N'00,32,3207', N'海州区', N'32', N'江苏省', N'3207', N'连云港市', N'320706', N'海州区', N'', N'', N'', N'', N'3', N'1', N''), (N'320707', N'3207', N'00,32,3207', N'赣榆区', N'32', N'江苏省', N'3207', N'连云港市', N'320707', N'赣榆区', N'', N'', N'', N'', N'3', N'1', N''), (N'320722', N'3207', N'00,32,3207', N'东海县', N'32', N'江苏省', N'3207', N'连云港市', N'320722', N'东海县', N'', N'', N'', N'', N'3', N'1', N''), (N'320723', N'3207', N'00,32,3207', N'灌云县', N'32', N'江苏省', N'3207', N'连云港市', N'320723', N'灌云县', N'', N'', N'', N'', N'3', N'1', N''), (N'320724', N'3207', N'00,32,3207', N'灌南县', N'32', N'江苏省', N'3207', N'连云港市', N'320724', N'灌南县', N'', N'', N'', N'', N'3', N'1', N''), (N'3208', N'32', N'00,32', N'淮安市', N'32', N'江苏省', N'3208', N'淮安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320803', N'3208', N'00,32,3208', N'淮安区', N'32', N'江苏省', N'3208', N'淮安市', N'320803', N'淮安区', N'', N'', N'', N'', N'3', N'1', N''), (N'320804', N'3208', N'00,32,3208', N'淮阴区', N'32', N'江苏省', N'3208', N'淮安市', N'320804', N'淮阴区', N'', N'', N'', N'', N'3', N'1', N''), (N'320812', N'3208', N'00,32,3208', N'清江浦区', N'32', N'江苏省', N'3208', N'淮安市', N'320812', N'清江浦区', N'', N'', N'', N'', N'3', N'1', N''), (N'320813', N'3208', N'00,32,3208', N'洪泽区', N'32', N'江苏省', N'3208', N'淮安市', N'320813', N'洪泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'320826', N'3208', N'00,32,3208', N'涟水县', N'32', N'江苏省', N'3208', N'淮安市', N'320826', N'涟水县', N'', N'', N'', N'', N'3', N'1', N''), (N'320830', N'3208', N'00,32,3208', N'盱眙县', N'32', N'江苏省', N'3208', N'淮安市', N'320830', N'盱眙县', N'', N'', N'', N'', N'3', N'1', N''), (N'320831', N'3208', N'00,32,3208', N'金湖县', N'32', N'江苏省', N'3208', N'淮安市', N'320831', N'金湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'3209', N'32', N'00,32', N'盐城市', N'32', N'江苏省', N'3209', N'盐城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'320902', N'3209', N'00,32,3209', N'亭湖区', N'32', N'江苏省', N'3209', N'盐城市', N'320902', N'亭湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'320903', N'3209', N'00,32,3209', N'盐都区', N'32', N'江苏省', N'3209', N'盐城市', N'320903', N'盐都区', N'', N'', N'', N'', N'3', N'1', N''), (N'320904', N'3209', N'00,32,3209', N'大丰区', N'32', N'江苏省', N'3209', N'盐城市', N'320904', N'大丰区', N'', N'', N'', N'', N'3', N'1', N''), (N'320921', N'3209', N'00,32,3209', N'响水县', N'32', N'江苏省', N'3209', N'盐城市', N'320921', N'响水县', N'', N'', N'', N'', N'3', N'1', N''), (N'320922', N'3209', N'00,32,3209', N'滨海县', N'32', N'江苏省', N'3209', N'盐城市', N'320922', N'滨海县', N'', N'', N'', N'', N'3', N'1', N''), (N'320923', N'3209', N'00,32,3209', N'阜宁县', N'32', N'江苏省', N'3209', N'盐城市', N'320923', N'阜宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'320924', N'3209', N'00,32,3209', N'射阳县', N'32', N'江苏省', N'3209', N'盐城市', N'320924', N'射阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'320925', N'3209', N'00,32,3209', N'建湖县', N'32', N'江苏省', N'3209', N'盐城市', N'320925', N'建湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'320981', N'3209', N'00,32,3209', N'东台市', N'32', N'江苏省', N'3209', N'盐城市', N'320981', N'东台市', N'', N'', N'', N'', N'3', N'1', N''), (N'3210', N'32', N'00,32', N'扬州市', N'32', N'江苏省', N'3210', N'扬州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321002', N'3210', N'00,32,3210', N'广陵区', N'32', N'江苏省', N'3210', N'扬州市', N'321002', N'广陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'321003', N'3210', N'00,32,3210', N'邗江区', N'32', N'江苏省', N'3210', N'扬州市', N'321003', N'邗江区', N'', N'', N'', N'', N'3', N'1', N''), (N'321012', N'3210', N'00,32,3210', N'江都区', N'32', N'江苏省', N'3210', N'扬州市', N'321012', N'江都区', N'', N'', N'', N'', N'3', N'1', N''), (N'321023', N'3210', N'00,32,3210', N'宝应县', N'32', N'江苏省', N'3210', N'扬州市', N'321023', N'宝应县', N'', N'', N'', N'', N'3', N'1', N''), (N'321081', N'3210', N'00,32,3210', N'仪征市', N'32', N'江苏省', N'3210', N'扬州市', N'321081', N'仪征市', N'', N'', N'', N'', N'3', N'1', N''), (N'321084', N'3210', N'00,32,3210', N'高邮市', N'32', N'江苏省', N'3210', N'扬州市', N'321084', N'高邮市', N'', N'', N'', N'', N'3', N'1', N''), (N'3211', N'32', N'00,32', N'镇江市', N'32', N'江苏省', N'3211', N'镇江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321102', N'3211', N'00,32,3211', N'京口区', N'32', N'江苏省', N'3211', N'镇江市', N'321102', N'京口区', N'', N'', N'', N'', N'3', N'1', N''), (N'321111', N'3211', N'00,32,3211', N'润州区', N'32', N'江苏省', N'3211', N'镇江市', N'321111', N'润州区', N'', N'', N'', N'', N'3', N'1', N''), (N'321112', N'3211', N'00,32,3211', N'丹徒区', N'32', N'江苏省', N'3211', N'镇江市', N'321112', N'丹徒区', N'', N'', N'', N'', N'3', N'1', N''), (N'321181', N'3211', N'00,32,3211', N'丹阳市', N'32', N'江苏省', N'3211', N'镇江市', N'321181', N'丹阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'321182', N'3211', N'00,32,3211', N'扬中市', N'32', N'江苏省', N'3211', N'镇江市', N'321182', N'扬中市', N'', N'', N'', N'', N'3', N'1', N''), (N'321183', N'3211', N'00,32,3211', N'句容市', N'32', N'江苏省', N'3211', N'镇江市', N'321183', N'句容市', N'', N'', N'', N'', N'3', N'1', N''), (N'3212', N'32', N'00,32', N'泰州市', N'32', N'江苏省', N'3212', N'泰州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321202', N'3212', N'00,32,3212', N'海陵区', N'32', N'江苏省', N'3212', N'泰州市', N'321202', N'海陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'321203', N'3212', N'00,32,3212', N'高港区', N'32', N'江苏省', N'3212', N'泰州市', N'321203', N'高港区', N'', N'', N'', N'', N'3', N'1', N''), (N'321204', N'3212', N'00,32,3212', N'姜堰区', N'32', N'江苏省', N'3212', N'泰州市', N'321204', N'姜堰区', N'', N'', N'', N'', N'3', N'1', N''), (N'321281', N'3212', N'00,32,3212', N'兴化市', N'32', N'江苏省', N'3212', N'泰州市', N'321281', N'兴化市', N'', N'', N'', N'', N'3', N'1', N''), (N'321282', N'3212', N'00,32,3212', N'靖江市', N'32', N'江苏省', N'3212', N'泰州市', N'321282', N'靖江市', N'', N'', N'', N'', N'3', N'1', N''), (N'321283', N'3212', N'00,32,3212', N'泰兴市', N'32', N'江苏省', N'3212', N'泰州市', N'321283', N'泰兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'3213', N'32', N'00,32', N'宿迁市', N'32', N'江苏省', N'3213', N'宿迁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'321302', N'3213', N'00,32,3213', N'宿城区', N'32', N'江苏省', N'3213', N'宿迁市', N'321302', N'宿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'321311', N'3213', N'00,32,3213', N'宿豫区', N'32', N'江苏省', N'3213', N'宿迁市', N'321311', N'宿豫区', N'', N'', N'', N'', N'3', N'1', N''), (N'321322', N'3213', N'00,32,3213', N'沭阳县', N'32', N'江苏省', N'3213', N'宿迁市', N'321322', N'沭阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'321323', N'3213', N'00,32,3213', N'泗阳县', N'32', N'江苏省', N'3213', N'宿迁市', N'321323', N'泗阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'321324', N'3213', N'00,32,3213', N'泗洪县', N'32', N'江苏省', N'3213', N'宿迁市', N'321324', N'泗洪县', N'', N'', N'', N'', N'3', N'1', N''), (N'33', N'00', N'00', N'浙江省', N'33', N'浙江省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3301', N'33', N'00,33', N'杭州市', N'33', N'浙江省', N'3301', N'杭州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330102', N'3301', N'00,33,3301', N'上城区', N'33', N'浙江省', N'3301', N'杭州市', N'330102', N'上城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330103', N'3301', N'00,33,3301', N'下城区', N'33', N'浙江省', N'3301', N'杭州市', N'330103', N'下城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330104', N'3301', N'00,33,3301', N'江干区', N'33', N'浙江省', N'3301', N'杭州市', N'330104', N'江干区', N'', N'', N'', N'', N'3', N'1', N''), (N'330105', N'3301', N'00,33,3301', N'拱墅区', N'33', N'浙江省', N'3301', N'杭州市', N'330105', N'拱墅区', N'', N'', N'', N'', N'3', N'1', N''), (N'330106', N'3301', N'00,33,3301', N'西湖区', N'33', N'浙江省', N'3301', N'杭州市', N'330106', N'西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'330108', N'3301', N'00,33,3301', N'滨江区', N'33', N'浙江省', N'3301', N'杭州市', N'330108', N'滨江区', N'', N'', N'', N'', N'3', N'1', N''), (N'330109', N'3301', N'00,33,3301', N'萧山区', N'33', N'浙江省', N'3301', N'杭州市', N'330109', N'萧山区', N'', N'', N'', N'', N'3', N'1', N''), (N'330110', N'3301', N'00,33,3301', N'余杭区', N'33', N'浙江省', N'3301', N'杭州市', N'330110', N'余杭区', N'', N'', N'', N'', N'3', N'1', N''), (N'330111', N'3301', N'00,33,3301', N'富阳区', N'33', N'浙江省', N'3301', N'杭州市', N'330111', N'富阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'330112', N'3301', N'00,33,3301', N'临安区', N'33', N'浙江省', N'3301', N'杭州市', N'330112', N'临安区', N'', N'', N'', N'', N'3', N'1', N''), (N'330122', N'3301', N'00,33,3301', N'桐庐县', N'33', N'浙江省', N'3301', N'杭州市', N'330122', N'桐庐县', N'', N'', N'', N'', N'3', N'1', N''), (N'330127', N'3301', N'00,33,3301', N'淳安县', N'33', N'浙江省', N'3301', N'杭州市', N'330127', N'淳安县', N'', N'', N'', N'', N'3', N'1', N''), (N'330182', N'3301', N'00,33,3301', N'建德市', N'33', N'浙江省', N'3301', N'杭州市', N'330182', N'建德市', N'', N'', N'', N'', N'3', N'1', N''), (N'3302', N'33', N'00,33', N'宁波市', N'33', N'浙江省', N'3302', N'宁波市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330203', N'3302', N'00,33,3302', N'海曙区', N'33', N'浙江省', N'3302', N'宁波市', N'330203', N'海曙区', N'', N'', N'', N'', N'3', N'1', N''), (N'330205', N'3302', N'00,33,3302', N'江北区', N'33', N'浙江省', N'3302', N'宁波市', N'330205', N'江北区', N'', N'', N'', N'', N'3', N'1', N''), (N'330206', N'3302', N'00,33,3302', N'北仑区', N'33', N'浙江省', N'3302', N'宁波市', N'330206', N'北仑区', N'', N'', N'', N'', N'3', N'1', N''), (N'330211', N'3302', N'00,33,3302', N'镇海区', N'33', N'浙江省', N'3302', N'宁波市', N'330211', N'镇海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330212', N'3302', N'00,33,3302', N'鄞州区', N'33', N'浙江省', N'3302', N'宁波市', N'330212', N'鄞州区', N'', N'', N'', N'', N'3', N'1', N''), (N'330213', N'3302', N'00,33,3302', N'奉化区', N'33', N'浙江省', N'3302', N'宁波市', N'330213', N'奉化区', N'', N'', N'', N'', N'3', N'1', N''), (N'330225', N'3302', N'00,33,3302', N'象山县', N'33', N'浙江省', N'3302', N'宁波市', N'330225', N'象山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330226', N'3302', N'00,33,3302', N'宁海县', N'33', N'浙江省', N'3302', N'宁波市', N'330226', N'宁海县', N'', N'', N'', N'', N'3', N'1', N''), (N'330281', N'3302', N'00,33,3302', N'余姚市', N'33', N'浙江省', N'3302', N'宁波市', N'330281', N'余姚市', N'', N'', N'', N'', N'3', N'1', N''), (N'330282', N'3302', N'00,33,3302', N'慈溪市', N'33', N'浙江省', N'3302', N'宁波市', N'330282', N'慈溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'3303', N'33', N'00,33', N'温州市', N'33', N'浙江省', N'3303', N'温州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330302', N'3303', N'00,33,3303', N'鹿城区', N'33', N'浙江省', N'3303', N'温州市', N'330302', N'鹿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330303', N'3303', N'00,33,3303', N'龙湾区', N'33', N'浙江省', N'3303', N'温州市', N'330303', N'龙湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'330304', N'3303', N'00,33,3303', N'瓯海区', N'33', N'浙江省', N'3303', N'温州市', N'330304', N'瓯海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330305', N'3303', N'00,33,3303', N'洞头区', N'33', N'浙江省', N'3303', N'温州市', N'330305', N'洞头区', N'', N'', N'', N'', N'3', N'1', N''), (N'330324', N'3303', N'00,33,3303', N'永嘉县', N'33', N'浙江省', N'3303', N'温州市', N'330324', N'永嘉县', N'', N'', N'', N'', N'3', N'1', N''), (N'330326', N'3303', N'00,33,3303', N'平阳县', N'33', N'浙江省', N'3303', N'温州市', N'330326', N'平阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'330327', N'3303', N'00,33,3303', N'苍南县', N'33', N'浙江省', N'3303', N'温州市', N'330327', N'苍南县', N'', N'', N'', N'', N'3', N'1', N''), (N'330328', N'3303', N'00,33,3303', N'文成县', N'33', N'浙江省', N'3303', N'温州市', N'330328', N'文成县', N'', N'', N'', N'', N'3', N'1', N''), (N'330329', N'3303', N'00,33,3303', N'泰顺县', N'33', N'浙江省', N'3303', N'温州市', N'330329', N'泰顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'330381', N'3303', N'00,33,3303', N'瑞安市', N'33', N'浙江省', N'3303', N'温州市', N'330381', N'瑞安市', N'', N'', N'', N'', N'3', N'1', N''), (N'330382', N'3303', N'00,33,3303', N'乐清市', N'33', N'浙江省', N'3303', N'温州市', N'330382', N'乐清市', N'', N'', N'', N'', N'3', N'1', N''), (N'330383', N'3303', N'00,33,3303', N'龙港市', N'33', N'浙江省', N'3303', N'温州市', N'330383', N'龙港市', N'', N'', N'', N'', N'3', N'1', N''), (N'3304', N'33', N'00,33', N'嘉兴市', N'33', N'浙江省', N'3304', N'嘉兴市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330402', N'3304', N'00,33,3304', N'南湖区', N'33', N'浙江省', N'3304', N'嘉兴市', N'330402', N'南湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'330411', N'3304', N'00,33,3304', N'秀洲区', N'33', N'浙江省', N'3304', N'嘉兴市', N'330411', N'秀洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'330421', N'3304', N'00,33,3304', N'嘉善县', N'33', N'浙江省', N'3304', N'嘉兴市', N'330421', N'嘉善县', N'', N'', N'', N'', N'3', N'1', N''), (N'330424', N'3304', N'00,33,3304', N'海盐县', N'33', N'浙江省', N'3304', N'嘉兴市', N'330424', N'海盐县', N'', N'', N'', N'', N'3', N'1', N''), (N'330481', N'3304', N'00,33,3304', N'海宁市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330481', N'海宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'330482', N'3304', N'00,33,3304', N'平湖市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330482', N'平湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'330483', N'3304', N'00,33,3304', N'桐乡市', N'33', N'浙江省', N'3304', N'嘉兴市', N'330483', N'桐乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'3305', N'33', N'00,33', N'湖州市', N'33', N'浙江省', N'3305', N'湖州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330502', N'3305', N'00,33,3305', N'吴兴区', N'33', N'浙江省', N'3305', N'湖州市', N'330502', N'吴兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'330503', N'3305', N'00,33,3305', N'南浔区', N'33', N'浙江省', N'3305', N'湖州市', N'330503', N'南浔区', N'', N'', N'', N'', N'3', N'1', N''), (N'330521', N'3305', N'00,33,3305', N'德清县', N'33', N'浙江省', N'3305', N'湖州市', N'330521', N'德清县', N'', N'', N'', N'', N'3', N'1', N''), (N'330522', N'3305', N'00,33,3305', N'长兴县', N'33', N'浙江省', N'3305', N'湖州市', N'330522', N'长兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'330523', N'3305', N'00,33,3305', N'安吉县', N'33', N'浙江省', N'3305', N'湖州市', N'330523', N'安吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'3306', N'33', N'00,33', N'绍兴市', N'33', N'浙江省', N'3306', N'绍兴市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330602', N'3306', N'00,33,3306', N'越城区', N'33', N'浙江省', N'3306', N'绍兴市', N'330602', N'越城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330603', N'3306', N'00,33,3306', N'柯桥区', N'33', N'浙江省', N'3306', N'绍兴市', N'330603', N'柯桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'330604', N'3306', N'00,33,3306', N'上虞区', N'33', N'浙江省', N'3306', N'绍兴市', N'330604', N'上虞区', N'', N'', N'', N'', N'3', N'1', N''), (N'330624', N'3306', N'00,33,3306', N'新昌县', N'33', N'浙江省', N'3306', N'绍兴市', N'330624', N'新昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'330681', N'3306', N'00,33,3306', N'诸暨市', N'33', N'浙江省', N'3306', N'绍兴市', N'330681', N'诸暨市', N'', N'', N'', N'', N'3', N'1', N''), (N'330683', N'3306', N'00,33,3306', N'嵊州市', N'33', N'浙江省', N'3306', N'绍兴市', N'330683', N'嵊州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3307', N'33', N'00,33', N'金华市', N'33', N'浙江省', N'3307', N'金华市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330702', N'3307', N'00,33,3307', N'婺城区', N'33', N'浙江省', N'3307', N'金华市', N'330702', N'婺城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330703', N'3307', N'00,33,3307', N'金东区', N'33', N'浙江省', N'3307', N'金华市', N'330703', N'金东区', N'', N'', N'', N'', N'3', N'1', N''), (N'330723', N'3307', N'00,33,3307', N'武义县', N'33', N'浙江省', N'3307', N'金华市', N'330723', N'武义县', N'', N'', N'', N'', N'3', N'1', N''), (N'330726', N'3307', N'00,33,3307', N'浦江县', N'33', N'浙江省', N'3307', N'金华市', N'330726', N'浦江县', N'', N'', N'', N'', N'3', N'1', N''), (N'330727', N'3307', N'00,33,3307', N'磐安县', N'33', N'浙江省', N'3307', N'金华市', N'330727', N'磐安县', N'', N'', N'', N'', N'3', N'1', N''), (N'330781', N'3307', N'00,33,3307', N'兰溪市', N'33', N'浙江省', N'3307', N'金华市', N'330781', N'兰溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'330782', N'3307', N'00,33,3307', N'义乌市', N'33', N'浙江省', N'3307', N'金华市', N'330782', N'义乌市', N'', N'', N'', N'', N'3', N'1', N''), (N'330783', N'3307', N'00,33,3307', N'东阳市', N'33', N'浙江省', N'3307', N'金华市', N'330783', N'东阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'330784', N'3307', N'00,33,3307', N'永康市', N'33', N'浙江省', N'3307', N'金华市', N'330784', N'永康市', N'', N'', N'', N'', N'3', N'1', N''), (N'3308', N'33', N'00,33', N'衢州市', N'33', N'浙江省', N'3308', N'衢州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330802', N'3308', N'00,33,3308', N'柯城区', N'33', N'浙江省', N'3308', N'衢州市', N'330802', N'柯城区', N'', N'', N'', N'', N'3', N'1', N''), (N'330803', N'3308', N'00,33,3308', N'衢江区', N'33', N'浙江省', N'3308', N'衢州市', N'330803', N'衢江区', N'', N'', N'', N'', N'3', N'1', N''), (N'330822', N'3308', N'00,33,3308', N'常山县', N'33', N'浙江省', N'3308', N'衢州市', N'330822', N'常山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330824', N'3308', N'00,33,3308', N'开化县', N'33', N'浙江省', N'3308', N'衢州市', N'330824', N'开化县', N'', N'', N'', N'', N'3', N'1', N''), (N'330825', N'3308', N'00,33,3308', N'龙游县', N'33', N'浙江省', N'3308', N'衢州市', N'330825', N'龙游县', N'', N'', N'', N'', N'3', N'1', N''), (N'330881', N'3308', N'00,33,3308', N'江山市', N'33', N'浙江省', N'3308', N'衢州市', N'330881', N'江山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3309', N'33', N'00,33', N'舟山市', N'33', N'浙江省', N'3309', N'舟山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'330902', N'3309', N'00,33,3309', N'定海区', N'33', N'浙江省', N'3309', N'舟山市', N'330902', N'定海区', N'', N'', N'', N'', N'3', N'1', N''), (N'330903', N'3309', N'00,33,3309', N'普陀区', N'33', N'浙江省', N'3309', N'舟山市', N'330903', N'普陀区', N'', N'', N'', N'', N'3', N'1', N''), (N'330921', N'3309', N'00,33,3309', N'岱山县', N'33', N'浙江省', N'3309', N'舟山市', N'330921', N'岱山县', N'', N'', N'', N'', N'3', N'1', N''), (N'330922', N'3309', N'00,33,3309', N'嵊泗县', N'33', N'浙江省', N'3309', N'舟山市', N'330922', N'嵊泗县', N'', N'', N'', N'', N'3', N'1', N''), (N'3310', N'33', N'00,33', N'台州市', N'33', N'浙江省', N'3310', N'台州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'331002', N'3310', N'00,33,3310', N'椒江区', N'33', N'浙江省', N'3310', N'台州市', N'331002', N'椒江区', N'', N'', N'', N'', N'3', N'1', N''), (N'331003', N'3310', N'00,33,3310', N'黄岩区', N'33', N'浙江省', N'3310', N'台州市', N'331003', N'黄岩区', N'', N'', N'', N'', N'3', N'1', N''), (N'331004', N'3310', N'00,33,3310', N'路桥区', N'33', N'浙江省', N'3310', N'台州市', N'331004', N'路桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'331022', N'3310', N'00,33,3310', N'三门县', N'33', N'浙江省', N'3310', N'台州市', N'331022', N'三门县', N'', N'', N'', N'', N'3', N'1', N''), (N'331023', N'3310', N'00,33,3310', N'天台县', N'33', N'浙江省', N'3310', N'台州市', N'331023', N'天台县', N'', N'', N'', N'', N'3', N'1', N''), (N'331024', N'3310', N'00,33,3310', N'仙居县', N'33', N'浙江省', N'3310', N'台州市', N'331024', N'仙居县', N'', N'', N'', N'', N'3', N'1', N''), (N'331081', N'3310', N'00,33,3310', N'温岭市', N'33', N'浙江省', N'3310', N'台州市', N'331081', N'温岭市', N'', N'', N'', N'', N'3', N'1', N''), (N'331082', N'3310', N'00,33,3310', N'临海市', N'33', N'浙江省', N'3310', N'台州市', N'331082', N'临海市', N'', N'', N'', N'', N'3', N'1', N''), (N'331083', N'3310', N'00,33,3310', N'玉环市', N'33', N'浙江省', N'3310', N'台州市', N'331083', N'玉环市', N'', N'', N'', N'', N'3', N'1', N''), (N'3311', N'33', N'00,33', N'丽水市', N'33', N'浙江省', N'3311', N'丽水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'331102', N'3311', N'00,33,3311', N'莲都区', N'33', N'浙江省', N'3311', N'丽水市', N'331102', N'莲都区', N'', N'', N'', N'', N'3', N'1', N''), (N'331121', N'3311', N'00,33,3311', N'青田县', N'33', N'浙江省', N'3311', N'丽水市', N'331121', N'青田县', N'', N'', N'', N'', N'3', N'1', N''), (N'331122', N'3311', N'00,33,3311', N'缙云县', N'33', N'浙江省', N'3311', N'丽水市', N'331122', N'缙云县', N'', N'', N'', N'', N'3', N'1', N''), (N'331123', N'3311', N'00,33,3311', N'遂昌县', N'33', N'浙江省', N'3311', N'丽水市', N'331123', N'遂昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'331124', N'3311', N'00,33,3311', N'松阳县', N'33', N'浙江省', N'3311', N'丽水市', N'331124', N'松阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'331125', N'3311', N'00,33,3311', N'云和县', N'33', N'浙江省', N'3311', N'丽水市', N'331125', N'云和县', N'', N'', N'', N'', N'3', N'1', N''), (N'331126', N'3311', N'00,33,3311', N'庆元县', N'33', N'浙江省', N'3311', N'丽水市', N'331126', N'庆元县', N'', N'', N'', N'', N'3', N'1', N''), (N'331127', N'3311', N'00,33,3311', N'景宁畲族自治县', N'33', N'浙江省', N'3311', N'丽水市', N'331127', N'景宁畲族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'331181', N'3311', N'00,33,3311', N'龙泉市', N'33', N'浙江省', N'3311', N'丽水市', N'331181', N'龙泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'34', N'00', N'00', N'安徽省', N'34', N'安徽省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3401', N'34', N'00,34', N'合肥市', N'34', N'安徽省', N'3401', N'合肥市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340102', N'3401', N'00,34,3401', N'瑶海区', N'34', N'安徽省', N'3401', N'合肥市', N'340102', N'瑶海区', N'', N'', N'', N'', N'3', N'1', N''), (N'340103', N'3401', N'00,34,3401', N'庐阳区', N'34', N'安徽省', N'3401', N'合肥市', N'340103', N'庐阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'340104', N'3401', N'00,34,3401', N'蜀山区', N'34', N'安徽省', N'3401', N'合肥市', N'340104', N'蜀山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340111', N'3401', N'00,34,3401', N'包河区', N'34', N'安徽省', N'3401', N'合肥市', N'340111', N'包河区', N'', N'', N'', N'', N'3', N'1', N''), (N'340121', N'3401', N'00,34,3401', N'长丰县', N'34', N'安徽省', N'3401', N'合肥市', N'340121', N'长丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'340122', N'3401', N'00,34,3401', N'肥东县', N'34', N'安徽省', N'3401', N'合肥市', N'340122', N'肥东县', N'', N'', N'', N'', N'3', N'1', N''), (N'340123', N'3401', N'00,34,3401', N'肥西县', N'34', N'安徽省', N'3401', N'合肥市', N'340123', N'肥西县', N'', N'', N'', N'', N'3', N'1', N''), (N'340124', N'3401', N'00,34,3401', N'庐江县', N'34', N'安徽省', N'3401', N'合肥市', N'340124', N'庐江县', N'', N'', N'', N'', N'3', N'1', N''), (N'340181', N'3401', N'00,34,3401', N'巢湖市', N'34', N'安徽省', N'3401', N'合肥市', N'340181', N'巢湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'3402', N'34', N'00,34', N'芜湖市', N'34', N'安徽省', N'3402', N'芜湖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340202', N'3402', N'00,34,3402', N'镜湖区', N'34', N'安徽省', N'3402', N'芜湖市', N'340202', N'镜湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'340203', N'3402', N'00,34,3402', N'弋江区', N'34', N'安徽省', N'3402', N'芜湖市', N'340203', N'弋江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340207', N'3402', N'00,34,3402', N'鸠江区', N'34', N'安徽省', N'3402', N'芜湖市', N'340207', N'鸠江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340208', N'3402', N'00,34,3402', N'三山区', N'34', N'安徽省', N'3402', N'芜湖市', N'340208', N'三山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340221', N'3402', N'00,34,3402', N'芜湖县', N'34', N'安徽省', N'3402', N'芜湖市', N'340221', N'芜湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'340222', N'3402', N'00,34,3402', N'繁昌县', N'34', N'安徽省', N'3402', N'芜湖市', N'340222', N'繁昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'340223', N'3402', N'00,34,3402', N'南陵县', N'34', N'安徽省', N'3402', N'芜湖市', N'340223', N'南陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'340281', N'3402', N'00,34,3402', N'无为市', N'34', N'安徽省', N'3402', N'芜湖市', N'340281', N'无为市', N'', N'', N'', N'', N'3', N'1', N''), (N'3403', N'34', N'00,34', N'蚌埠市', N'34', N'安徽省', N'3403', N'蚌埠市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340302', N'3403', N'00,34,3403', N'龙子湖区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340302', N'龙子湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'340303', N'3403', N'00,34,3403', N'蚌山区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340303', N'蚌山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340304', N'3403', N'00,34,3403', N'禹会区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340304', N'禹会区', N'', N'', N'', N'', N'3', N'1', N''), (N'340311', N'3403', N'00,34,3403', N'淮上区', N'34', N'安徽省', N'3403', N'蚌埠市', N'340311', N'淮上区', N'', N'', N'', N'', N'3', N'1', N''), (N'340321', N'3403', N'00,34,3403', N'怀远县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340321', N'怀远县', N'', N'', N'', N'', N'3', N'1', N''), (N'340322', N'3403', N'00,34,3403', N'五河县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340322', N'五河县', N'', N'', N'', N'', N'3', N'1', N''), (N'340323', N'3403', N'00,34,3403', N'固镇县', N'34', N'安徽省', N'3403', N'蚌埠市', N'340323', N'固镇县', N'', N'', N'', N'', N'3', N'1', N''), (N'3404', N'34', N'00,34', N'淮南市', N'34', N'安徽省', N'3404', N'淮南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340402', N'3404', N'00,34,3404', N'大通区', N'34', N'安徽省', N'3404', N'淮南市', N'340402', N'大通区', N'', N'', N'', N'', N'3', N'1', N''), (N'340403', N'3404', N'00,34,3404', N'田家庵区', N'34', N'安徽省', N'3404', N'淮南市', N'340403', N'田家庵区', N'', N'', N'', N'', N'3', N'1', N''), (N'340404', N'3404', N'00,34,3404', N'谢家集区', N'34', N'安徽省', N'3404', N'淮南市', N'340404', N'谢家集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340405', N'3404', N'00,34,3404', N'八公山区', N'34', N'安徽省', N'3404', N'淮南市', N'340405', N'八公山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340406', N'3404', N'00,34,3404', N'潘集区', N'34', N'安徽省', N'3404', N'淮南市', N'340406', N'潘集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340421', N'3404', N'00,34,3404', N'凤台县', N'34', N'安徽省', N'3404', N'淮南市', N'340421', N'凤台县', N'', N'', N'', N'', N'3', N'1', N''), (N'340422', N'3404', N'00,34,3404', N'寿县', N'34', N'安徽省', N'3404', N'淮南市', N'340422', N'寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'3405', N'34', N'00,34', N'马鞍山市', N'34', N'安徽省', N'3405', N'马鞍山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340503', N'3405', N'00,34,3405', N'花山区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340503', N'花山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340504', N'3405', N'00,34,3405', N'雨山区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340504', N'雨山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340506', N'3405', N'00,34,3405', N'博望区', N'34', N'安徽省', N'3405', N'马鞍山市', N'340506', N'博望区', N'', N'', N'', N'', N'3', N'1', N''), (N'340521', N'3405', N'00,34,3405', N'当涂县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340521', N'当涂县', N'', N'', N'', N'', N'3', N'1', N''), (N'340522', N'3405', N'00,34,3405', N'含山县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340522', N'含山县', N'', N'', N'', N'', N'3', N'1', N''), (N'340523', N'3405', N'00,34,3405', N'和县', N'34', N'安徽省', N'3405', N'马鞍山市', N'340523', N'和县', N'', N'', N'', N'', N'3', N'1', N''), (N'3406', N'34', N'00,34', N'淮北市', N'34', N'安徽省', N'3406', N'淮北市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340602', N'3406', N'00,34,3406', N'杜集区', N'34', N'安徽省', N'3406', N'淮北市', N'340602', N'杜集区', N'', N'', N'', N'', N'3', N'1', N''), (N'340603', N'3406', N'00,34,3406', N'相山区', N'34', N'安徽省', N'3406', N'淮北市', N'340603', N'相山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340604', N'3406', N'00,34,3406', N'烈山区', N'34', N'安徽省', N'3406', N'淮北市', N'340604', N'烈山区', N'', N'', N'', N'', N'3', N'1', N''), (N'340621', N'3406', N'00,34,3406', N'濉溪县', N'34', N'安徽省', N'3406', N'淮北市', N'340621', N'濉溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'3407', N'34', N'00,34', N'铜陵市', N'34', N'安徽省', N'3407', N'铜陵市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340705', N'3407', N'00,34,3407', N'铜官区', N'34', N'安徽省', N'3407', N'铜陵市', N'340705', N'铜官区', N'', N'', N'', N'', N'3', N'1', N''), (N'340706', N'3407', N'00,34,3407', N'义安区', N'34', N'安徽省', N'3407', N'铜陵市', N'340706', N'义安区', N'', N'', N'', N'', N'3', N'1', N''), (N'340711', N'3407', N'00,34,3407', N'郊区', N'34', N'安徽省', N'3407', N'铜陵市', N'340711', N'郊区', N'', N'', N'', N'', N'3', N'1', N''), (N'340722', N'3407', N'00,34,3407', N'枞阳县', N'34', N'安徽省', N'3407', N'铜陵市', N'340722', N'枞阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'3408', N'34', N'00,34', N'安庆市', N'34', N'安徽省', N'3408', N'安庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'340802', N'3408', N'00,34,3408', N'迎江区', N'34', N'安徽省', N'3408', N'安庆市', N'340802', N'迎江区', N'', N'', N'', N'', N'3', N'1', N''), (N'340803', N'3408', N'00,34,3408', N'大观区', N'34', N'安徽省', N'3408', N'安庆市', N'340803', N'大观区', N'', N'', N'', N'', N'3', N'1', N''), (N'340811', N'3408', N'00,34,3408', N'宜秀区', N'34', N'安徽省', N'3408', N'安庆市', N'340811', N'宜秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'340822', N'3408', N'00,34,3408', N'怀宁县', N'34', N'安徽省', N'3408', N'安庆市', N'340822', N'怀宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'340825', N'3408', N'00,34,3408', N'太湖县', N'34', N'安徽省', N'3408', N'安庆市', N'340825', N'太湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'340826', N'3408', N'00,34,3408', N'宿松县', N'34', N'安徽省', N'3408', N'安庆市', N'340826', N'宿松县', N'', N'', N'', N'', N'3', N'1', N''), (N'340827', N'3408', N'00,34,3408', N'望江县', N'34', N'安徽省', N'3408', N'安庆市', N'340827', N'望江县', N'', N'', N'', N'', N'3', N'1', N''), (N'340828', N'3408', N'00,34,3408', N'岳西县', N'34', N'安徽省', N'3408', N'安庆市', N'340828', N'岳西县', N'', N'', N'', N'', N'3', N'1', N''), (N'340881', N'3408', N'00,34,3408', N'桐城市', N'34', N'安徽省', N'3408', N'安庆市', N'340881', N'桐城市', N'', N'', N'', N'', N'3', N'1', N''), (N'340882', N'3408', N'00,34,3408', N'潜山市', N'34', N'安徽省', N'3408', N'安庆市', N'340882', N'潜山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3410', N'34', N'00,34', N'黄山市', N'34', N'安徽省', N'3410', N'黄山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341002', N'3410', N'00,34,3410', N'屯溪区', N'34', N'安徽省', N'3410', N'黄山市', N'341002', N'屯溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'341003', N'3410', N'00,34,3410', N'黄山区', N'34', N'安徽省', N'3410', N'黄山市', N'341003', N'黄山区', N'', N'', N'', N'', N'3', N'1', N''), (N'341004', N'3410', N'00,34,3410', N'徽州区', N'34', N'安徽省', N'3410', N'黄山市', N'341004', N'徽州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341021', N'3410', N'00,34,3410', N'歙县', N'34', N'安徽省', N'3410', N'黄山市', N'341021', N'歙县', N'', N'', N'', N'', N'3', N'1', N''), (N'341022', N'3410', N'00,34,3410', N'休宁县', N'34', N'安徽省', N'3410', N'黄山市', N'341022', N'休宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'341023', N'3410', N'00,34,3410', N'黟县', N'34', N'安徽省', N'3410', N'黄山市', N'341023', N'黟县', N'', N'', N'', N'', N'3', N'1', N''), (N'341024', N'3410', N'00,34,3410', N'祁门县', N'34', N'安徽省', N'3410', N'黄山市', N'341024', N'祁门县', N'', N'', N'', N'', N'3', N'1', N''), (N'3411', N'34', N'00,34', N'滁州市', N'34', N'安徽省', N'3411', N'滁州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341102', N'3411', N'00,34,3411', N'琅琊区', N'34', N'安徽省', N'3411', N'滁州市', N'341102', N'琅琊区', N'', N'', N'', N'', N'3', N'1', N''), (N'341103', N'3411', N'00,34,3411', N'南谯区', N'34', N'安徽省', N'3411', N'滁州市', N'341103', N'南谯区', N'', N'', N'', N'', N'3', N'1', N''), (N'341122', N'3411', N'00,34,3411', N'来安县', N'34', N'安徽省', N'3411', N'滁州市', N'341122', N'来安县', N'', N'', N'', N'', N'3', N'1', N''), (N'341124', N'3411', N'00,34,3411', N'全椒县', N'34', N'安徽省', N'3411', N'滁州市', N'341124', N'全椒县', N'', N'', N'', N'', N'3', N'1', N''), (N'341125', N'3411', N'00,34,3411', N'定远县', N'34', N'安徽省', N'3411', N'滁州市', N'341125', N'定远县', N'', N'', N'', N'', N'3', N'1', N''), (N'341126', N'3411', N'00,34,3411', N'凤阳县', N'34', N'安徽省', N'3411', N'滁州市', N'341126', N'凤阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'341181', N'3411', N'00,34,3411', N'天长市', N'34', N'安徽省', N'3411', N'滁州市', N'341181', N'天长市', N'', N'', N'', N'', N'3', N'1', N''), (N'341182', N'3411', N'00,34,3411', N'明光市', N'34', N'安徽省', N'3411', N'滁州市', N'341182', N'明光市', N'', N'', N'', N'', N'3', N'1', N''), (N'3412', N'34', N'00,34', N'阜阳市', N'34', N'安徽省', N'3412', N'阜阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341202', N'3412', N'00,34,3412', N'颍州区', N'34', N'安徽省', N'3412', N'阜阳市', N'341202', N'颍州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341203', N'3412', N'00,34,3412', N'颍东区', N'34', N'安徽省', N'3412', N'阜阳市', N'341203', N'颍东区', N'', N'', N'', N'', N'3', N'1', N''), (N'341204', N'3412', N'00,34,3412', N'颍泉区', N'34', N'安徽省', N'3412', N'阜阳市', N'341204', N'颍泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'341221', N'3412', N'00,34,3412', N'临泉县', N'34', N'安徽省', N'3412', N'阜阳市', N'341221', N'临泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'341222', N'3412', N'00,34,3412', N'太和县', N'34', N'安徽省', N'3412', N'阜阳市', N'341222', N'太和县', N'', N'', N'', N'', N'3', N'1', N''), (N'341225', N'3412', N'00,34,3412', N'阜南县', N'34', N'安徽省', N'3412', N'阜阳市', N'341225', N'阜南县', N'', N'', N'', N'', N'3', N'1', N''), (N'341226', N'3412', N'00,34,3412', N'颍上县', N'34', N'安徽省', N'3412', N'阜阳市', N'341226', N'颍上县', N'', N'', N'', N'', N'3', N'1', N''), (N'341282', N'3412', N'00,34,3412', N'界首市', N'34', N'安徽省', N'3412', N'阜阳市', N'341282', N'界首市', N'', N'', N'', N'', N'3', N'1', N''), (N'3413', N'34', N'00,34', N'宿州市', N'34', N'安徽省', N'3413', N'宿州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341302', N'3413', N'00,34,3413', N'埇桥区', N'34', N'安徽省', N'3413', N'宿州市', N'341302', N'埇桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'341321', N'3413', N'00,34,3413', N'砀山县', N'34', N'安徽省', N'3413', N'宿州市', N'341321', N'砀山县', N'', N'', N'', N'', N'3', N'1', N''), (N'341322', N'3413', N'00,34,3413', N'萧县', N'34', N'安徽省', N'3413', N'宿州市', N'341322', N'萧县', N'', N'', N'', N'', N'3', N'1', N''), (N'341323', N'3413', N'00,34,3413', N'灵璧县', N'34', N'安徽省', N'3413', N'宿州市', N'341323', N'灵璧县', N'', N'', N'', N'', N'3', N'1', N''), (N'341324', N'3413', N'00,34,3413', N'泗县', N'34', N'安徽省', N'3413', N'宿州市', N'341324', N'泗县', N'', N'', N'', N'', N'3', N'1', N''), (N'3415', N'34', N'00,34', N'六安市', N'34', N'安徽省', N'3415', N'六安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341502', N'3415', N'00,34,3415', N'金安区', N'34', N'安徽省', N'3415', N'六安市', N'341502', N'金安区', N'', N'', N'', N'', N'3', N'1', N''), (N'341503', N'3415', N'00,34,3415', N'裕安区', N'34', N'安徽省', N'3415', N'六安市', N'341503', N'裕安区', N'', N'', N'', N'', N'3', N'1', N''), (N'341504', N'3415', N'00,34,3415', N'叶集区', N'34', N'安徽省', N'3415', N'六安市', N'341504', N'叶集区', N'', N'', N'', N'', N'3', N'1', N''), (N'341522', N'3415', N'00,34,3415', N'霍邱县', N'34', N'安徽省', N'3415', N'六安市', N'341522', N'霍邱县', N'', N'', N'', N'', N'3', N'1', N''), (N'341523', N'3415', N'00,34,3415', N'舒城县', N'34', N'安徽省', N'3415', N'六安市', N'341523', N'舒城县', N'', N'', N'', N'', N'3', N'1', N''), (N'341524', N'3415', N'00,34,3415', N'金寨县', N'34', N'安徽省', N'3415', N'六安市', N'341524', N'金寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'341525', N'3415', N'00,34,3415', N'霍山县', N'34', N'安徽省', N'3415', N'六安市', N'341525', N'霍山县', N'', N'', N'', N'', N'3', N'1', N''), (N'3416', N'34', N'00,34', N'亳州市', N'34', N'安徽省', N'3416', N'亳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341602', N'3416', N'00,34,3416', N'谯城区', N'34', N'安徽省', N'3416', N'亳州市', N'341602', N'谯城区', N'', N'', N'', N'', N'3', N'1', N''), (N'341621', N'3416', N'00,34,3416', N'涡阳县', N'34', N'安徽省', N'3416', N'亳州市', N'341621', N'涡阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'341622', N'3416', N'00,34,3416', N'蒙城县', N'34', N'安徽省', N'3416', N'亳州市', N'341622', N'蒙城县', N'', N'', N'', N'', N'3', N'1', N''), (N'341623', N'3416', N'00,34,3416', N'利辛县', N'34', N'安徽省', N'3416', N'亳州市', N'341623', N'利辛县', N'', N'', N'', N'', N'3', N'1', N''), (N'3417', N'34', N'00,34', N'池州市', N'34', N'安徽省', N'3417', N'池州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341702', N'3417', N'00,34,3417', N'贵池区', N'34', N'安徽省', N'3417', N'池州市', N'341702', N'贵池区', N'', N'', N'', N'', N'3', N'1', N''), (N'341721', N'3417', N'00,34,3417', N'东至县', N'34', N'安徽省', N'3417', N'池州市', N'341721', N'东至县', N'', N'', N'', N'', N'3', N'1', N''), (N'341722', N'3417', N'00,34,3417', N'石台县', N'34', N'安徽省', N'3417', N'池州市', N'341722', N'石台县', N'', N'', N'', N'', N'3', N'1', N''), (N'341723', N'3417', N'00,34,3417', N'青阳县', N'34', N'安徽省', N'3417', N'池州市', N'341723', N'青阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'3418', N'34', N'00,34', N'宣城市', N'34', N'安徽省', N'3418', N'宣城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'341802', N'3418', N'00,34,3418', N'宣州区', N'34', N'安徽省', N'3418', N'宣城市', N'341802', N'宣州区', N'', N'', N'', N'', N'3', N'1', N''), (N'341821', N'3418', N'00,34,3418', N'郎溪县', N'34', N'安徽省', N'3418', N'宣城市', N'341821', N'郎溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'341823', N'3418', N'00,34,3418', N'泾县', N'34', N'安徽省', N'3418', N'宣城市', N'341823', N'泾县', N'', N'', N'', N'', N'3', N'1', N''), (N'341824', N'3418', N'00,34,3418', N'绩溪县', N'34', N'安徽省', N'3418', N'宣城市', N'341824', N'绩溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'341825', N'3418', N'00,34,3418', N'旌德县', N'34', N'安徽省', N'3418', N'宣城市', N'341825', N'旌德县', N'', N'', N'', N'', N'3', N'1', N''), (N'341881', N'3418', N'00,34,3418', N'宁国市', N'34', N'安徽省', N'3418', N'宣城市', N'341881', N'宁国市', N'', N'', N'', N'', N'3', N'1', N''), (N'341882', N'3418', N'00,34,3418', N'广德市', N'34', N'安徽省', N'3418', N'宣城市', N'341882', N'广德市', N'', N'', N'', N'', N'3', N'1', N''), (N'35', N'00', N'00', N'福建省', N'35', N'福建省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3501', N'35', N'00,35', N'福州市', N'35', N'福建省', N'3501', N'福州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350102', N'3501', N'00,35,3501', N'鼓楼区', N'35', N'福建省', N'3501', N'福州市', N'350102', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'350103', N'3501', N'00,35,3501', N'台江区', N'35', N'福建省', N'3501', N'福州市', N'350103', N'台江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350104', N'3501', N'00,35,3501', N'仓山区', N'35', N'福建省', N'3501', N'福州市', N'350104', N'仓山区', N'', N'', N'', N'', N'3', N'1', N''), (N'350105', N'3501', N'00,35,3501', N'马尾区', N'35', N'福建省', N'3501', N'福州市', N'350105', N'马尾区', N'', N'', N'', N'', N'3', N'1', N''), (N'350111', N'3501', N'00,35,3501', N'晋安区', N'35', N'福建省', N'3501', N'福州市', N'350111', N'晋安区', N'', N'', N'', N'', N'3', N'1', N''), (N'350112', N'3501', N'00,35,3501', N'长乐区', N'35', N'福建省', N'3501', N'福州市', N'350112', N'长乐区', N'', N'', N'', N'', N'3', N'1', N''), (N'350121', N'3501', N'00,35,3501', N'闽侯县', N'35', N'福建省', N'3501', N'福州市', N'350121', N'闽侯县', N'', N'', N'', N'', N'3', N'1', N''), (N'350122', N'3501', N'00,35,3501', N'连江县', N'35', N'福建省', N'3501', N'福州市', N'350122', N'连江县', N'', N'', N'', N'', N'3', N'1', N''), (N'350123', N'3501', N'00,35,3501', N'罗源县', N'35', N'福建省', N'3501', N'福州市', N'350123', N'罗源县', N'', N'', N'', N'', N'3', N'1', N''), (N'350124', N'3501', N'00,35,3501', N'闽清县', N'35', N'福建省', N'3501', N'福州市', N'350124', N'闽清县', N'', N'', N'', N'', N'3', N'1', N''), (N'350125', N'3501', N'00,35,3501', N'永泰县', N'35', N'福建省', N'3501', N'福州市', N'350125', N'永泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'350128', N'3501', N'00,35,3501', N'平潭县', N'35', N'福建省', N'3501', N'福州市', N'350128', N'平潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'350181', N'3501', N'00,35,3501', N'福清市', N'35', N'福建省', N'3501', N'福州市', N'350181', N'福清市', N'', N'', N'', N'', N'3', N'1', N''), (N'3502', N'35', N'00,35', N'厦门市', N'35', N'福建省', N'3502', N'厦门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350203', N'3502', N'00,35,3502', N'思明区', N'35', N'福建省', N'3502', N'厦门市', N'350203', N'思明区', N'', N'', N'', N'', N'3', N'1', N''), (N'350205', N'3502', N'00,35,3502', N'海沧区', N'35', N'福建省', N'3502', N'厦门市', N'350205', N'海沧区', N'', N'', N'', N'', N'3', N'1', N''), (N'350206', N'3502', N'00,35,3502', N'湖里区', N'35', N'福建省', N'3502', N'厦门市', N'350206', N'湖里区', N'', N'', N'', N'', N'3', N'1', N''), (N'350211', N'3502', N'00,35,3502', N'集美区', N'35', N'福建省', N'3502', N'厦门市', N'350211', N'集美区', N'', N'', N'', N'', N'3', N'1', N''), (N'350212', N'3502', N'00,35,3502', N'同安区', N'35', N'福建省', N'3502', N'厦门市', N'350212', N'同安区', N'', N'', N'', N'', N'3', N'1', N''), (N'350213', N'3502', N'00,35,3502', N'翔安区', N'35', N'福建省', N'3502', N'厦门市', N'350213', N'翔安区', N'', N'', N'', N'', N'3', N'1', N''), (N'3503', N'35', N'00,35', N'莆田市', N'35', N'福建省', N'3503', N'莆田市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350302', N'3503', N'00,35,3503', N'城厢区', N'35', N'福建省', N'3503', N'莆田市', N'350302', N'城厢区', N'', N'', N'', N'', N'3', N'1', N''), (N'350303', N'3503', N'00,35,3503', N'涵江区', N'35', N'福建省', N'3503', N'莆田市', N'350303', N'涵江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350304', N'3503', N'00,35,3503', N'荔城区', N'35', N'福建省', N'3503', N'莆田市', N'350304', N'荔城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350305', N'3503', N'00,35,3503', N'秀屿区', N'35', N'福建省', N'3503', N'莆田市', N'350305', N'秀屿区', N'', N'', N'', N'', N'3', N'1', N''), (N'350322', N'3503', N'00,35,3503', N'仙游县', N'35', N'福建省', N'3503', N'莆田市', N'350322', N'仙游县', N'', N'', N'', N'', N'3', N'1', N''), (N'3504', N'35', N'00,35', N'三明市', N'35', N'福建省', N'3504', N'三明市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350402', N'3504', N'00,35,3504', N'梅列区', N'35', N'福建省', N'3504', N'三明市', N'350402', N'梅列区', N'', N'', N'', N'', N'3', N'1', N''), (N'350403', N'3504', N'00,35,3504', N'三元区', N'35', N'福建省', N'3504', N'三明市', N'350403', N'三元区', N'', N'', N'', N'', N'3', N'1', N''), (N'350421', N'3504', N'00,35,3504', N'明溪县', N'35', N'福建省', N'3504', N'三明市', N'350421', N'明溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350423', N'3504', N'00,35,3504', N'清流县', N'35', N'福建省', N'3504', N'三明市', N'350423', N'清流县', N'', N'', N'', N'', N'3', N'1', N''), (N'350424', N'3504', N'00,35,3504', N'宁化县', N'35', N'福建省', N'3504', N'三明市', N'350424', N'宁化县', N'', N'', N'', N'', N'3', N'1', N''), (N'350425', N'3504', N'00,35,3504', N'大田县', N'35', N'福建省', N'3504', N'三明市', N'350425', N'大田县', N'', N'', N'', N'', N'3', N'1', N''), (N'350426', N'3504', N'00,35,3504', N'尤溪县', N'35', N'福建省', N'3504', N'三明市', N'350426', N'尤溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350427', N'3504', N'00,35,3504', N'沙县', N'35', N'福建省', N'3504', N'三明市', N'350427', N'沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'350428', N'3504', N'00,35,3504', N'将乐县', N'35', N'福建省', N'3504', N'三明市', N'350428', N'将乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'350429', N'3504', N'00,35,3504', N'泰宁县', N'35', N'福建省', N'3504', N'三明市', N'350429', N'泰宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350430', N'3504', N'00,35,3504', N'建宁县', N'35', N'福建省', N'3504', N'三明市', N'350430', N'建宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350481', N'3504', N'00,35,3504', N'永安市', N'35', N'福建省', N'3504', N'三明市', N'350481', N'永安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3505', N'35', N'00,35', N'泉州市', N'35', N'福建省', N'3505', N'泉州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350502', N'3505', N'00,35,3505', N'鲤城区', N'35', N'福建省', N'3505', N'泉州市', N'350502', N'鲤城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350503', N'3505', N'00,35,3505', N'丰泽区', N'35', N'福建省', N'3505', N'泉州市', N'350503', N'丰泽区', N'', N'', N'', N'', N'3', N'1', N''), (N'350504', N'3505', N'00,35,3505', N'洛江区', N'35', N'福建省', N'3505', N'泉州市', N'350504', N'洛江区', N'', N'', N'', N'', N'3', N'1', N''), (N'350505', N'3505', N'00,35,3505', N'泉港区', N'35', N'福建省', N'3505', N'泉州市', N'350505', N'泉港区', N'', N'', N'', N'', N'3', N'1', N''), (N'350521', N'3505', N'00,35,3505', N'惠安县', N'35', N'福建省', N'3505', N'泉州市', N'350521', N'惠安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350524', N'3505', N'00,35,3505', N'安溪县', N'35', N'福建省', N'3505', N'泉州市', N'350524', N'安溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350525', N'3505', N'00,35,3505', N'永春县', N'35', N'福建省', N'3505', N'泉州市', N'350525', N'永春县', N'', N'', N'', N'', N'3', N'1', N''), (N'350526', N'3505', N'00,35,3505', N'德化县', N'35', N'福建省', N'3505', N'泉州市', N'350526', N'德化县', N'', N'', N'', N'', N'3', N'1', N''), (N'350527', N'3505', N'00,35,3505', N'金门县', N'35', N'福建省', N'3505', N'泉州市', N'350527', N'金门县', N'', N'', N'', N'', N'3', N'1', N''), (N'350581', N'3505', N'00,35,3505', N'石狮市', N'35', N'福建省', N'3505', N'泉州市', N'350581', N'石狮市', N'', N'', N'', N'', N'3', N'1', N''), (N'350582', N'3505', N'00,35,3505', N'晋江市', N'35', N'福建省', N'3505', N'泉州市', N'350582', N'晋江市', N'', N'', N'', N'', N'3', N'1', N''), (N'350583', N'3505', N'00,35,3505', N'南安市', N'35', N'福建省', N'3505', N'泉州市', N'350583', N'南安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3506', N'35', N'00,35', N'漳州市', N'35', N'福建省', N'3506', N'漳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350602', N'3506', N'00,35,3506', N'芗城区', N'35', N'福建省', N'3506', N'漳州市', N'350602', N'芗城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350603', N'3506', N'00,35,3506', N'龙文区', N'35', N'福建省', N'3506', N'漳州市', N'350603', N'龙文区', N'', N'', N'', N'', N'3', N'1', N''), (N'350622', N'3506', N'00,35,3506', N'云霄县', N'35', N'福建省', N'3506', N'漳州市', N'350622', N'云霄县', N'', N'', N'', N'', N'3', N'1', N''), (N'350623', N'3506', N'00,35,3506', N'漳浦县', N'35', N'福建省', N'3506', N'漳州市', N'350623', N'漳浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'350624', N'3506', N'00,35,3506', N'诏安县', N'35', N'福建省', N'3506', N'漳州市', N'350624', N'诏安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350625', N'3506', N'00,35,3506', N'长泰县', N'35', N'福建省', N'3506', N'漳州市', N'350625', N'长泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'350626', N'3506', N'00,35,3506', N'东山县', N'35', N'福建省', N'3506', N'漳州市', N'350626', N'东山县', N'', N'', N'', N'', N'3', N'1', N''), (N'350627', N'3506', N'00,35,3506', N'南靖县', N'35', N'福建省', N'3506', N'漳州市', N'350627', N'南靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'350628', N'3506', N'00,35,3506', N'平和县', N'35', N'福建省', N'3506', N'漳州市', N'350628', N'平和县', N'', N'', N'', N'', N'3', N'1', N''), (N'350629', N'3506', N'00,35,3506', N'华安县', N'35', N'福建省', N'3506', N'漳州市', N'350629', N'华安县', N'', N'', N'', N'', N'3', N'1', N''), (N'350681', N'3506', N'00,35,3506', N'龙海市', N'35', N'福建省', N'3506', N'漳州市', N'350681', N'龙海市', N'', N'', N'', N'', N'3', N'1', N''), (N'3507', N'35', N'00,35', N'南平市', N'35', N'福建省', N'3507', N'南平市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350702', N'3507', N'00,35,3507', N'延平区', N'35', N'福建省', N'3507', N'南平市', N'350702', N'延平区', N'', N'', N'', N'', N'3', N'1', N''), (N'350703', N'3507', N'00,35,3507', N'建阳区', N'35', N'福建省', N'3507', N'南平市', N'350703', N'建阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'350721', N'3507', N'00,35,3507', N'顺昌县', N'35', N'福建省', N'3507', N'南平市', N'350721', N'顺昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'350722', N'3507', N'00,35,3507', N'浦城县', N'35', N'福建省', N'3507', N'南平市', N'350722', N'浦城县', N'', N'', N'', N'', N'3', N'1', N''), (N'350723', N'3507', N'00,35,3507', N'光泽县', N'35', N'福建省', N'3507', N'南平市', N'350723', N'光泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'350724', N'3507', N'00,35,3507', N'松溪县', N'35', N'福建省', N'3507', N'南平市', N'350724', N'松溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'350725', N'3507', N'00,35,3507', N'政和县', N'35', N'福建省', N'3507', N'南平市', N'350725', N'政和县', N'', N'', N'', N'', N'3', N'1', N''), (N'350781', N'3507', N'00,35,3507', N'邵武市', N'35', N'福建省', N'3507', N'南平市', N'350781', N'邵武市', N'', N'', N'', N'', N'3', N'1', N''), (N'350782', N'3507', N'00,35,3507', N'武夷山市', N'35', N'福建省', N'3507', N'南平市', N'350782', N'武夷山市', N'', N'', N'', N'', N'3', N'1', N''), (N'350783', N'3507', N'00,35,3507', N'建瓯市', N'35', N'福建省', N'3507', N'南平市', N'350783', N'建瓯市', N'', N'', N'', N'', N'3', N'1', N''), (N'3508', N'35', N'00,35', N'龙岩市', N'35', N'福建省', N'3508', N'龙岩市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350802', N'3508', N'00,35,3508', N'新罗区', N'35', N'福建省', N'3508', N'龙岩市', N'350802', N'新罗区', N'', N'', N'', N'', N'3', N'1', N''), (N'350803', N'3508', N'00,35,3508', N'永定区', N'35', N'福建省', N'3508', N'龙岩市', N'350803', N'永定区', N'', N'', N'', N'', N'3', N'1', N''), (N'350821', N'3508', N'00,35,3508', N'长汀县', N'35', N'福建省', N'3508', N'龙岩市', N'350821', N'长汀县', N'', N'', N'', N'', N'3', N'1', N''), (N'350823', N'3508', N'00,35,3508', N'上杭县', N'35', N'福建省', N'3508', N'龙岩市', N'350823', N'上杭县', N'', N'', N'', N'', N'3', N'1', N''), (N'350824', N'3508', N'00,35,3508', N'武平县', N'35', N'福建省', N'3508', N'龙岩市', N'350824', N'武平县', N'', N'', N'', N'', N'3', N'1', N''), (N'350825', N'3508', N'00,35,3508', N'连城县', N'35', N'福建省', N'3508', N'龙岩市', N'350825', N'连城县', N'', N'', N'', N'', N'3', N'1', N''), (N'350881', N'3508', N'00,35,3508', N'漳平市', N'35', N'福建省', N'3508', N'龙岩市', N'350881', N'漳平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3509', N'35', N'00,35', N'宁德市', N'35', N'福建省', N'3509', N'宁德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'350902', N'3509', N'00,35,3509', N'蕉城区', N'35', N'福建省', N'3509', N'宁德市', N'350902', N'蕉城区', N'', N'', N'', N'', N'3', N'1', N''), (N'350921', N'3509', N'00,35,3509', N'霞浦县', N'35', N'福建省', N'3509', N'宁德市', N'350921', N'霞浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'350922', N'3509', N'00,35,3509', N'古田县', N'35', N'福建省', N'3509', N'宁德市', N'350922', N'古田县', N'', N'', N'', N'', N'3', N'1', N''), (N'350923', N'3509', N'00,35,3509', N'屏南县', N'35', N'福建省', N'3509', N'宁德市', N'350923', N'屏南县', N'', N'', N'', N'', N'3', N'1', N''), (N'350924', N'3509', N'00,35,3509', N'寿宁县', N'35', N'福建省', N'3509', N'宁德市', N'350924', N'寿宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350925', N'3509', N'00,35,3509', N'周宁县', N'35', N'福建省', N'3509', N'宁德市', N'350925', N'周宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'350926', N'3509', N'00,35,3509', N'柘荣县', N'35', N'福建省', N'3509', N'宁德市', N'350926', N'柘荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'350981', N'3509', N'00,35,3509', N'福安市', N'35', N'福建省', N'3509', N'宁德市', N'350981', N'福安市', N'', N'', N'', N'', N'3', N'1', N''), (N'350982', N'3509', N'00,35,3509', N'福鼎市', N'35', N'福建省', N'3509', N'宁德市', N'350982', N'福鼎市', N'', N'', N'', N'', N'3', N'1', N''), (N'36', N'00', N'00', N'江西省', N'36', N'江西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3601', N'36', N'00,36', N'南昌市', N'36', N'江西省', N'3601', N'南昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360102', N'3601', N'00,36,3601', N'东湖区', N'36', N'江西省', N'3601', N'南昌市', N'360102', N'东湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360103', N'3601', N'00,36,3601', N'西湖区', N'36', N'江西省', N'3601', N'南昌市', N'360103', N'西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360104', N'3601', N'00,36,3601', N'青云谱区', N'36', N'江西省', N'3601', N'南昌市', N'360104', N'青云谱区', N'', N'', N'', N'', N'3', N'1', N''), (N'360111', N'3601', N'00,36,3601', N'青山湖区', N'36', N'江西省', N'3601', N'南昌市', N'360111', N'青山湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360112', N'3601', N'00,36,3601', N'新建区', N'36', N'江西省', N'3601', N'南昌市', N'360112', N'新建区', N'', N'', N'', N'', N'3', N'1', N''), (N'360113', N'3601', N'00,36,3601', N'红谷滩区', N'36', N'江西省', N'3601', N'南昌市', N'360113', N'红谷滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'360121', N'3601', N'00,36,3601', N'南昌县', N'36', N'江西省', N'3601', N'南昌市', N'360121', N'南昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360123', N'3601', N'00,36,3601', N'安义县', N'36', N'江西省', N'3601', N'南昌市', N'360123', N'安义县', N'', N'', N'', N'', N'3', N'1', N''), (N'360124', N'3601', N'00,36,3601', N'进贤县', N'36', N'江西省', N'3601', N'南昌市', N'360124', N'进贤县', N'', N'', N'', N'', N'3', N'1', N''), (N'3602', N'36', N'00,36', N'景德镇市', N'36', N'江西省', N'3602', N'景德镇市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360202', N'3602', N'00,36,3602', N'昌江区', N'36', N'江西省', N'3602', N'景德镇市', N'360202', N'昌江区', N'', N'', N'', N'', N'3', N'1', N''), (N'360203', N'3602', N'00,36,3602', N'珠山区', N'36', N'江西省', N'3602', N'景德镇市', N'360203', N'珠山区', N'', N'', N'', N'', N'3', N'1', N''), (N'360222', N'3602', N'00,36,3602', N'浮梁县', N'36', N'江西省', N'3602', N'景德镇市', N'360222', N'浮梁县', N'', N'', N'', N'', N'3', N'1', N''), (N'360281', N'3602', N'00,36,3602', N'乐平市', N'36', N'江西省', N'3602', N'景德镇市', N'360281', N'乐平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3603', N'36', N'00,36', N'萍乡市', N'36', N'江西省', N'3603', N'萍乡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360302', N'3603', N'00,36,3603', N'安源区', N'36', N'江西省', N'3603', N'萍乡市', N'360302', N'安源区', N'', N'', N'', N'', N'3', N'1', N''), (N'360313', N'3603', N'00,36,3603', N'湘东区', N'36', N'江西省', N'3603', N'萍乡市', N'360313', N'湘东区', N'', N'', N'', N'', N'3', N'1', N''), (N'360321', N'3603', N'00,36,3603', N'莲花县', N'36', N'江西省', N'3603', N'萍乡市', N'360321', N'莲花县', N'', N'', N'', N'', N'3', N'1', N''), (N'360322', N'3603', N'00,36,3603', N'上栗县', N'36', N'江西省', N'3603', N'萍乡市', N'360322', N'上栗县', N'', N'', N'', N'', N'3', N'1', N''), (N'360323', N'3603', N'00,36,3603', N'芦溪县', N'36', N'江西省', N'3603', N'萍乡市', N'360323', N'芦溪县', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'3604', N'36', N'00,36', N'九江市', N'36', N'江西省', N'3604', N'九江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360402', N'3604', N'00,36,3604', N'濂溪区', N'36', N'江西省', N'3604', N'九江市', N'360402', N'濂溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'360403', N'3604', N'00,36,3604', N'浔阳区', N'36', N'江西省', N'3604', N'九江市', N'360403', N'浔阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'360404', N'3604', N'00,36,3604', N'柴桑区', N'36', N'江西省', N'3604', N'九江市', N'360404', N'柴桑区', N'', N'', N'', N'', N'3', N'1', N''), (N'360423', N'3604', N'00,36,3604', N'武宁县', N'36', N'江西省', N'3604', N'九江市', N'360423', N'武宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'360424', N'3604', N'00,36,3604', N'修水县', N'36', N'江西省', N'3604', N'九江市', N'360424', N'修水县', N'', N'', N'', N'', N'3', N'1', N''), (N'360425', N'3604', N'00,36,3604', N'永修县', N'36', N'江西省', N'3604', N'九江市', N'360425', N'永修县', N'', N'', N'', N'', N'3', N'1', N''), (N'360426', N'3604', N'00,36,3604', N'德安县', N'36', N'江西省', N'3604', N'九江市', N'360426', N'德安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360428', N'3604', N'00,36,3604', N'都昌县', N'36', N'江西省', N'3604', N'九江市', N'360428', N'都昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360429', N'3604', N'00,36,3604', N'湖口县', N'36', N'江西省', N'3604', N'九江市', N'360429', N'湖口县', N'', N'', N'', N'', N'3', N'1', N''), (N'360430', N'3604', N'00,36,3604', N'彭泽县', N'36', N'江西省', N'3604', N'九江市', N'360430', N'彭泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'360481', N'3604', N'00,36,3604', N'瑞昌市', N'36', N'江西省', N'3604', N'九江市', N'360481', N'瑞昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'360482', N'3604', N'00,36,3604', N'共青城市', N'36', N'江西省', N'3604', N'九江市', N'360482', N'共青城市', N'', N'', N'', N'', N'3', N'1', N''), (N'360483', N'3604', N'00,36,3604', N'庐山市', N'36', N'江西省', N'3604', N'九江市', N'360483', N'庐山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3605', N'36', N'00,36', N'新余市', N'36', N'江西省', N'3605', N'新余市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360502', N'3605', N'00,36,3605', N'渝水区', N'36', N'江西省', N'3605', N'新余市', N'360502', N'渝水区', N'', N'', N'', N'', N'3', N'1', N''), (N'360521', N'3605', N'00,36,3605', N'分宜县', N'36', N'江西省', N'3605', N'新余市', N'360521', N'分宜县', N'', N'', N'', N'', N'3', N'1', N''), (N'3606', N'36', N'00,36', N'鹰潭市', N'36', N'江西省', N'3606', N'鹰潭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360602', N'3606', N'00,36,3606', N'月湖区', N'36', N'江西省', N'3606', N'鹰潭市', N'360602', N'月湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'360603', N'3606', N'00,36,3606', N'余江区', N'36', N'江西省', N'3606', N'鹰潭市', N'360603', N'余江区', N'', N'', N'', N'', N'3', N'1', N''), (N'360681', N'3606', N'00,36,3606', N'贵溪市', N'36', N'江西省', N'3606', N'鹰潭市', N'360681', N'贵溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'3607', N'36', N'00,36', N'赣州市', N'36', N'江西省', N'3607', N'赣州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360702', N'3607', N'00,36,3607', N'章贡区', N'36', N'江西省', N'3607', N'赣州市', N'360702', N'章贡区', N'', N'', N'', N'', N'3', N'1', N''), (N'360703', N'3607', N'00,36,3607', N'南康区', N'36', N'江西省', N'3607', N'赣州市', N'360703', N'南康区', N'', N'', N'', N'', N'3', N'1', N''), (N'360704', N'3607', N'00,36,3607', N'赣县区', N'36', N'江西省', N'3607', N'赣州市', N'360704', N'赣县区', N'', N'', N'', N'', N'3', N'1', N''), (N'360722', N'3607', N'00,36,3607', N'信丰县', N'36', N'江西省', N'3607', N'赣州市', N'360722', N'信丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360723', N'3607', N'00,36,3607', N'大余县', N'36', N'江西省', N'3607', N'赣州市', N'360723', N'大余县', N'', N'', N'', N'', N'3', N'1', N''), (N'360724', N'3607', N'00,36,3607', N'上犹县', N'36', N'江西省', N'3607', N'赣州市', N'360724', N'上犹县', N'', N'', N'', N'', N'3', N'1', N''), (N'360725', N'3607', N'00,36,3607', N'崇义县', N'36', N'江西省', N'3607', N'赣州市', N'360725', N'崇义县', N'', N'', N'', N'', N'3', N'1', N''), (N'360726', N'3607', N'00,36,3607', N'安远县', N'36', N'江西省', N'3607', N'赣州市', N'360726', N'安远县', N'', N'', N'', N'', N'3', N'1', N''), (N'360727', N'3607', N'00,36,3607', N'龙南县', N'36', N'江西省', N'3607', N'赣州市', N'360727', N'龙南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360728', N'3607', N'00,36,3607', N'定南县', N'36', N'江西省', N'3607', N'赣州市', N'360728', N'定南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360729', N'3607', N'00,36,3607', N'全南县', N'36', N'江西省', N'3607', N'赣州市', N'360729', N'全南县', N'', N'', N'', N'', N'3', N'1', N''), (N'360730', N'3607', N'00,36,3607', N'宁都县', N'36', N'江西省', N'3607', N'赣州市', N'360730', N'宁都县', N'', N'', N'', N'', N'3', N'1', N''), (N'360731', N'3607', N'00,36,3607', N'于都县', N'36', N'江西省', N'3607', N'赣州市', N'360731', N'于都县', N'', N'', N'', N'', N'3', N'1', N''), (N'360732', N'3607', N'00,36,3607', N'兴国县', N'36', N'江西省', N'3607', N'赣州市', N'360732', N'兴国县', N'', N'', N'', N'', N'3', N'1', N''), (N'360733', N'3607', N'00,36,3607', N'会昌县', N'36', N'江西省', N'3607', N'赣州市', N'360733', N'会昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360734', N'3607', N'00,36,3607', N'寻乌县', N'36', N'江西省', N'3607', N'赣州市', N'360734', N'寻乌县', N'', N'', N'', N'', N'3', N'1', N''), (N'360735', N'3607', N'00,36,3607', N'石城县', N'36', N'江西省', N'3607', N'赣州市', N'360735', N'石城县', N'', N'', N'', N'', N'3', N'1', N''), (N'360781', N'3607', N'00,36,3607', N'瑞金市', N'36', N'江西省', N'3607', N'赣州市', N'360781', N'瑞金市', N'', N'', N'', N'', N'3', N'1', N''), (N'3608', N'36', N'00,36', N'吉安市', N'36', N'江西省', N'3608', N'吉安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360802', N'3608', N'00,36,3608', N'吉州区', N'36', N'江西省', N'3608', N'吉安市', N'360802', N'吉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'360803', N'3608', N'00,36,3608', N'青原区', N'36', N'江西省', N'3608', N'吉安市', N'360803', N'青原区', N'', N'', N'', N'', N'3', N'1', N''), (N'360821', N'3608', N'00,36,3608', N'吉安县', N'36', N'江西省', N'3608', N'吉安市', N'360821', N'吉安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360822', N'3608', N'00,36,3608', N'吉水县', N'36', N'江西省', N'3608', N'吉安市', N'360822', N'吉水县', N'', N'', N'', N'', N'3', N'1', N''), (N'360823', N'3608', N'00,36,3608', N'峡江县', N'36', N'江西省', N'3608', N'吉安市', N'360823', N'峡江县', N'', N'', N'', N'', N'3', N'1', N''), (N'360824', N'3608', N'00,36,3608', N'新干县', N'36', N'江西省', N'3608', N'吉安市', N'360824', N'新干县', N'', N'', N'', N'', N'3', N'1', N''), (N'360825', N'3608', N'00,36,3608', N'永丰县', N'36', N'江西省', N'3608', N'吉安市', N'360825', N'永丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360826', N'3608', N'00,36,3608', N'泰和县', N'36', N'江西省', N'3608', N'吉安市', N'360826', N'泰和县', N'', N'', N'', N'', N'3', N'1', N''), (N'360827', N'3608', N'00,36,3608', N'遂川县', N'36', N'江西省', N'3608', N'吉安市', N'360827', N'遂川县', N'', N'', N'', N'', N'3', N'1', N''), (N'360828', N'3608', N'00,36,3608', N'万安县', N'36', N'江西省', N'3608', N'吉安市', N'360828', N'万安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360829', N'3608', N'00,36,3608', N'安福县', N'36', N'江西省', N'3608', N'吉安市', N'360829', N'安福县', N'', N'', N'', N'', N'3', N'1', N''), (N'360830', N'3608', N'00,36,3608', N'永新县', N'36', N'江西省', N'3608', N'吉安市', N'360830', N'永新县', N'', N'', N'', N'', N'3', N'1', N''), (N'360881', N'3608', N'00,36,3608', N'井冈山市', N'36', N'江西省', N'3608', N'吉安市', N'360881', N'井冈山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3609', N'36', N'00,36', N'宜春市', N'36', N'江西省', N'3609', N'宜春市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'360902', N'3609', N'00,36,3609', N'袁州区', N'36', N'江西省', N'3609', N'宜春市', N'360902', N'袁州区', N'', N'', N'', N'', N'3', N'1', N''), (N'360921', N'3609', N'00,36,3609', N'奉新县', N'36', N'江西省', N'3609', N'宜春市', N'360921', N'奉新县', N'', N'', N'', N'', N'3', N'1', N''), (N'360922', N'3609', N'00,36,3609', N'万载县', N'36', N'江西省', N'3609', N'宜春市', N'360922', N'万载县', N'', N'', N'', N'', N'3', N'1', N''), (N'360923', N'3609', N'00,36,3609', N'上高县', N'36', N'江西省', N'3609', N'宜春市', N'360923', N'上高县', N'', N'', N'', N'', N'3', N'1', N''), (N'360924', N'3609', N'00,36,3609', N'宜丰县', N'36', N'江西省', N'3609', N'宜春市', N'360924', N'宜丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'360925', N'3609', N'00,36,3609', N'靖安县', N'36', N'江西省', N'3609', N'宜春市', N'360925', N'靖安县', N'', N'', N'', N'', N'3', N'1', N''), (N'360926', N'3609', N'00,36,3609', N'铜鼓县', N'36', N'江西省', N'3609', N'宜春市', N'360926', N'铜鼓县', N'', N'', N'', N'', N'3', N'1', N''), (N'360981', N'3609', N'00,36,3609', N'丰城市', N'36', N'江西省', N'3609', N'宜春市', N'360981', N'丰城市', N'', N'', N'', N'', N'3', N'1', N''), (N'360982', N'3609', N'00,36,3609', N'樟树市', N'36', N'江西省', N'3609', N'宜春市', N'360982', N'樟树市', N'', N'', N'', N'', N'3', N'1', N''), (N'360983', N'3609', N'00,36,3609', N'高安市', N'36', N'江西省', N'3609', N'宜春市', N'360983', N'高安市', N'', N'', N'', N'', N'3', N'1', N''), (N'3610', N'36', N'00,36', N'抚州市', N'36', N'江西省', N'3610', N'抚州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'361002', N'3610', N'00,36,3610', N'临川区', N'36', N'江西省', N'3610', N'抚州市', N'361002', N'临川区', N'', N'', N'', N'', N'3', N'1', N''), (N'361003', N'3610', N'00,36,3610', N'东乡区', N'36', N'江西省', N'3610', N'抚州市', N'361003', N'东乡区', N'', N'', N'', N'', N'3', N'1', N''), (N'361021', N'3610', N'00,36,3610', N'南城县', N'36', N'江西省', N'3610', N'抚州市', N'361021', N'南城县', N'', N'', N'', N'', N'3', N'1', N''), (N'361022', N'3610', N'00,36,3610', N'黎川县', N'36', N'江西省', N'3610', N'抚州市', N'361022', N'黎川县', N'', N'', N'', N'', N'3', N'1', N''), (N'361023', N'3610', N'00,36,3610', N'南丰县', N'36', N'江西省', N'3610', N'抚州市', N'361023', N'南丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'361024', N'3610', N'00,36,3610', N'崇仁县', N'36', N'江西省', N'3610', N'抚州市', N'361024', N'崇仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'361025', N'3610', N'00,36,3610', N'乐安县', N'36', N'江西省', N'3610', N'抚州市', N'361025', N'乐安县', N'', N'', N'', N'', N'3', N'1', N''), (N'361026', N'3610', N'00,36,3610', N'宜黄县', N'36', N'江西省', N'3610', N'抚州市', N'361026', N'宜黄县', N'', N'', N'', N'', N'3', N'1', N''), (N'361027', N'3610', N'00,36,3610', N'金溪县', N'36', N'江西省', N'3610', N'抚州市', N'361027', N'金溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'361028', N'3610', N'00,36,3610', N'资溪县', N'36', N'江西省', N'3610', N'抚州市', N'361028', N'资溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'361030', N'3610', N'00,36,3610', N'广昌县', N'36', N'江西省', N'3610', N'抚州市', N'361030', N'广昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'3611', N'36', N'00,36', N'上饶市', N'36', N'江西省', N'3611', N'上饶市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'361102', N'3611', N'00,36,3611', N'信州区', N'36', N'江西省', N'3611', N'上饶市', N'361102', N'信州区', N'', N'', N'', N'', N'3', N'1', N''), (N'361103', N'3611', N'00,36,3611', N'广丰区', N'36', N'江西省', N'3611', N'上饶市', N'361103', N'广丰区', N'', N'', N'', N'', N'3', N'1', N''), (N'361104', N'3611', N'00,36,3611', N'广信区', N'36', N'江西省', N'3611', N'上饶市', N'361104', N'广信区', N'', N'', N'', N'', N'3', N'1', N''), (N'361123', N'3611', N'00,36,3611', N'玉山县', N'36', N'江西省', N'3611', N'上饶市', N'361123', N'玉山县', N'', N'', N'', N'', N'3', N'1', N''), (N'361124', N'3611', N'00,36,3611', N'铅山县', N'36', N'江西省', N'3611', N'上饶市', N'361124', N'铅山县', N'', N'', N'', N'', N'3', N'1', N''), (N'361125', N'3611', N'00,36,3611', N'横峰县', N'36', N'江西省', N'3611', N'上饶市', N'361125', N'横峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'361126', N'3611', N'00,36,3611', N'弋阳县', N'36', N'江西省', N'3611', N'上饶市', N'361126', N'弋阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'361127', N'3611', N'00,36,3611', N'余干县', N'36', N'江西省', N'3611', N'上饶市', N'361127', N'余干县', N'', N'', N'', N'', N'3', N'1', N''), (N'361128', N'3611', N'00,36,3611', N'鄱阳县', N'36', N'江西省', N'3611', N'上饶市', N'361128', N'鄱阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'361129', N'3611', N'00,36,3611', N'万年县', N'36', N'江西省', N'3611', N'上饶市', N'361129', N'万年县', N'', N'', N'', N'', N'3', N'1', N''), (N'361130', N'3611', N'00,36,3611', N'婺源县', N'36', N'江西省', N'3611', N'上饶市', N'361130', N'婺源县', N'', N'', N'', N'', N'3', N'1', N''), (N'361181', N'3611', N'00,36,3611', N'德兴市', N'36', N'江西省', N'3611', N'上饶市', N'361181', N'德兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'37', N'00', N'00', N'山东省', N'37', N'山东省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'3701', N'37', N'00,37', N'济南市', N'37', N'山东省', N'3701', N'济南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370102', N'3701', N'00,37,3701', N'历下区', N'37', N'山东省', N'3701', N'济南市', N'370102', N'历下区', N'', N'', N'', N'', N'3', N'1', N''), (N'370103', N'3701', N'00,37,3701', N'市中区', N'37', N'山东省', N'3701', N'济南市', N'370103', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'370104', N'3701', N'00,37,3701', N'槐荫区', N'37', N'山东省', N'3701', N'济南市', N'370104', N'槐荫区', N'', N'', N'', N'', N'3', N'1', N''), (N'370105', N'3701', N'00,37,3701', N'天桥区', N'37', N'山东省', N'3701', N'济南市', N'370105', N'天桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'370112', N'3701', N'00,37,3701', N'历城区', N'37', N'山东省', N'3701', N'济南市', N'370112', N'历城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370113', N'3701', N'00,37,3701', N'长清区', N'37', N'山东省', N'3701', N'济南市', N'370113', N'长清区', N'', N'', N'', N'', N'3', N'1', N''), (N'370114', N'3701', N'00,37,3701', N'章丘区', N'37', N'山东省', N'3701', N'济南市', N'370114', N'章丘区', N'', N'', N'', N'', N'3', N'1', N''), (N'370115', N'3701', N'00,37,3701', N'济阳区', N'37', N'山东省', N'3701', N'济南市', N'370115', N'济阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370116', N'3701', N'00,37,3701', N'莱芜区', N'37', N'山东省', N'3701', N'济南市', N'370116', N'莱芜区', N'', N'', N'', N'', N'3', N'1', N''), (N'370117', N'3701', N'00,37,3701', N'钢城区', N'37', N'山东省', N'3701', N'济南市', N'370117', N'钢城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370124', N'3701', N'00,37,3701', N'平阴县', N'37', N'山东省', N'3701', N'济南市', N'370124', N'平阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'370126', N'3701', N'00,37,3701', N'商河县', N'37', N'山东省', N'3701', N'济南市', N'370126', N'商河县', N'', N'', N'', N'', N'3', N'1', N''), (N'3702', N'37', N'00,37', N'青岛市', N'37', N'山东省', N'3702', N'青岛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370202', N'3702', N'00,37,3702', N'市南区', N'37', N'山东省', N'3702', N'青岛市', N'370202', N'市南区', N'', N'', N'', N'', N'3', N'1', N''), (N'370203', N'3702', N'00,37,3702', N'市北区', N'37', N'山东省', N'3702', N'青岛市', N'370203', N'市北区', N'', N'', N'', N'', N'3', N'1', N''), (N'370211', N'3702', N'00,37,3702', N'黄岛区', N'37', N'山东省', N'3702', N'青岛市', N'370211', N'黄岛区', N'', N'', N'', N'', N'3', N'1', N''), (N'370212', N'3702', N'00,37,3702', N'崂山区', N'37', N'山东省', N'3702', N'青岛市', N'370212', N'崂山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370213', N'3702', N'00,37,3702', N'李沧区', N'37', N'山东省', N'3702', N'青岛市', N'370213', N'李沧区', N'', N'', N'', N'', N'3', N'1', N''), (N'370214', N'3702', N'00,37,3702', N'城阳区', N'37', N'山东省', N'3702', N'青岛市', N'370214', N'城阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370215', N'3702', N'00,37,3702', N'即墨区', N'37', N'山东省', N'3702', N'青岛市', N'370215', N'即墨区', N'', N'', N'', N'', N'3', N'1', N''), (N'370281', N'3702', N'00,37,3702', N'胶州市', N'37', N'山东省', N'3702', N'青岛市', N'370281', N'胶州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370283', N'3702', N'00,37,3702', N'平度市', N'37', N'山东省', N'3702', N'青岛市', N'370283', N'平度市', N'', N'', N'', N'', N'3', N'1', N''), (N'370285', N'3702', N'00,37,3702', N'莱西市', N'37', N'山东省', N'3702', N'青岛市', N'370285', N'莱西市', N'', N'', N'', N'', N'3', N'1', N''), (N'3703', N'37', N'00,37', N'淄博市', N'37', N'山东省', N'3703', N'淄博市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370302', N'3703', N'00,37,3703', N'淄川区', N'37', N'山东省', N'3703', N'淄博市', N'370302', N'淄川区', N'', N'', N'', N'', N'3', N'1', N''), (N'370303', N'3703', N'00,37,3703', N'张店区', N'37', N'山东省', N'3703', N'淄博市', N'370303', N'张店区', N'', N'', N'', N'', N'3', N'1', N''), (N'370304', N'3703', N'00,37,3703', N'博山区', N'37', N'山东省', N'3703', N'淄博市', N'370304', N'博山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370305', N'3703', N'00,37,3703', N'临淄区', N'37', N'山东省', N'3703', N'淄博市', N'370305', N'临淄区', N'', N'', N'', N'', N'3', N'1', N''), (N'370306', N'3703', N'00,37,3703', N'周村区', N'37', N'山东省', N'3703', N'淄博市', N'370306', N'周村区', N'', N'', N'', N'', N'3', N'1', N''), (N'370321', N'3703', N'00,37,3703', N'桓台县', N'37', N'山东省', N'3703', N'淄博市', N'370321', N'桓台县', N'', N'', N'', N'', N'3', N'1', N''), (N'370322', N'3703', N'00,37,3703', N'高青县', N'37', N'山东省', N'3703', N'淄博市', N'370322', N'高青县', N'', N'', N'', N'', N'3', N'1', N''), (N'370323', N'3703', N'00,37,3703', N'沂源县', N'37', N'山东省', N'3703', N'淄博市', N'370323', N'沂源县', N'', N'', N'', N'', N'3', N'1', N''), (N'3704', N'37', N'00,37', N'枣庄市', N'37', N'山东省', N'3704', N'枣庄市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370402', N'3704', N'00,37,3704', N'市中区', N'37', N'山东省', N'3704', N'枣庄市', N'370402', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'370403', N'3704', N'00,37,3704', N'薛城区', N'37', N'山东省', N'3704', N'枣庄市', N'370403', N'薛城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370404', N'3704', N'00,37,3704', N'峄城区', N'37', N'山东省', N'3704', N'枣庄市', N'370404', N'峄城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370405', N'3704', N'00,37,3704', N'台儿庄区', N'37', N'山东省', N'3704', N'枣庄市', N'370405', N'台儿庄区', N'', N'', N'', N'', N'3', N'1', N''), (N'370406', N'3704', N'00,37,3704', N'山亭区', N'37', N'山东省', N'3704', N'枣庄市', N'370406', N'山亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'370481', N'3704', N'00,37,3704', N'滕州市', N'37', N'山东省', N'3704', N'枣庄市', N'370481', N'滕州市', N'', N'', N'', N'', N'3', N'1', N''), (N'3705', N'37', N'00,37', N'东营市', N'37', N'山东省', N'3705', N'东营市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370502', N'3705', N'00,37,3705', N'东营区', N'37', N'山东省', N'3705', N'东营市', N'370502', N'东营区', N'', N'', N'', N'', N'3', N'1', N''), (N'370503', N'3705', N'00,37,3705', N'河口区', N'37', N'山东省', N'3705', N'东营市', N'370503', N'河口区', N'', N'', N'', N'', N'3', N'1', N''), (N'370505', N'3705', N'00,37,3705', N'垦利区', N'37', N'山东省', N'3705', N'东营市', N'370505', N'垦利区', N'', N'', N'', N'', N'3', N'1', N''), (N'370522', N'3705', N'00,37,3705', N'利津县', N'37', N'山东省', N'3705', N'东营市', N'370522', N'利津县', N'', N'', N'', N'', N'3', N'1', N''), (N'370523', N'3705', N'00,37,3705', N'广饶县', N'37', N'山东省', N'3705', N'东营市', N'370523', N'广饶县', N'', N'', N'', N'', N'3', N'1', N''), (N'3706', N'37', N'00,37', N'烟台市', N'37', N'山东省', N'3706', N'烟台市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370602', N'3706', N'00,37,3706', N'芝罘区', N'37', N'山东省', N'3706', N'烟台市', N'370602', N'芝罘区', N'', N'', N'', N'', N'3', N'1', N''), (N'370611', N'3706', N'00,37,3706', N'福山区', N'37', N'山东省', N'3706', N'烟台市', N'370611', N'福山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370612', N'3706', N'00,37,3706', N'牟平区', N'37', N'山东省', N'3706', N'烟台市', N'370612', N'牟平区', N'', N'', N'', N'', N'3', N'1', N''), (N'370613', N'3706', N'00,37,3706', N'莱山区', N'37', N'山东省', N'3706', N'烟台市', N'370613', N'莱山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370634', N'3706', N'00,37,3706', N'长岛县', N'37', N'山东省', N'3706', N'烟台市', N'370634', N'长岛县', N'', N'', N'', N'', N'3', N'1', N''), (N'370681', N'3706', N'00,37,3706', N'龙口市', N'37', N'山东省', N'3706', N'烟台市', N'370681', N'龙口市', N'', N'', N'', N'', N'3', N'1', N''), (N'370682', N'3706', N'00,37,3706', N'莱阳市', N'37', N'山东省', N'3706', N'烟台市', N'370682', N'莱阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'370683', N'3706', N'00,37,3706', N'莱州市', N'37', N'山东省', N'3706', N'烟台市', N'370683', N'莱州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370684', N'3706', N'00,37,3706', N'蓬莱市', N'37', N'山东省', N'3706', N'烟台市', N'370684', N'蓬莱市', N'', N'', N'', N'', N'3', N'1', N''), (N'370685', N'3706', N'00,37,3706', N'招远市', N'37', N'山东省', N'3706', N'烟台市', N'370685', N'招远市', N'', N'', N'', N'', N'3', N'1', N''), (N'370686', N'3706', N'00,37,3706', N'栖霞市', N'37', N'山东省', N'3706', N'烟台市', N'370686', N'栖霞市', N'', N'', N'', N'', N'3', N'1', N''), (N'370687', N'3706', N'00,37,3706', N'海阳市', N'37', N'山东省', N'3706', N'烟台市', N'370687', N'海阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'3707', N'37', N'00,37', N'潍坊市', N'37', N'山东省', N'3707', N'潍坊市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370702', N'3707', N'00,37,3707', N'潍城区', N'37', N'山东省', N'3707', N'潍坊市', N'370702', N'潍城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370703', N'3707', N'00,37,3707', N'寒亭区', N'37', N'山东省', N'3707', N'潍坊市', N'370703', N'寒亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'370704', N'3707', N'00,37,3707', N'坊子区', N'37', N'山东省', N'3707', N'潍坊市', N'370704', N'坊子区', N'', N'', N'', N'', N'3', N'1', N''), (N'370705', N'3707', N'00,37,3707', N'奎文区', N'37', N'山东省', N'3707', N'潍坊市', N'370705', N'奎文区', N'', N'', N'', N'', N'3', N'1', N''), (N'370724', N'3707', N'00,37,3707', N'临朐县', N'37', N'山东省', N'3707', N'潍坊市', N'370724', N'临朐县', N'', N'', N'', N'', N'3', N'1', N''), (N'370725', N'3707', N'00,37,3707', N'昌乐县', N'37', N'山东省', N'3707', N'潍坊市', N'370725', N'昌乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'370781', N'3707', N'00,37,3707', N'青州市', N'37', N'山东省', N'3707', N'潍坊市', N'370781', N'青州市', N'', N'', N'', N'', N'3', N'1', N''), (N'370782', N'3707', N'00,37,3707', N'诸城市', N'37', N'山东省', N'3707', N'潍坊市', N'370782', N'诸城市', N'', N'', N'', N'', N'3', N'1', N''), (N'370783', N'3707', N'00,37,3707', N'寿光市', N'37', N'山东省', N'3707', N'潍坊市', N'370783', N'寿光市', N'', N'', N'', N'', N'3', N'1', N''), (N'370784', N'3707', N'00,37,3707', N'安丘市', N'37', N'山东省', N'3707', N'潍坊市', N'370784', N'安丘市', N'', N'', N'', N'', N'3', N'1', N''), (N'370785', N'3707', N'00,37,3707', N'高密市', N'37', N'山东省', N'3707', N'潍坊市', N'370785', N'高密市', N'', N'', N'', N'', N'3', N'1', N''), (N'370786', N'3707', N'00,37,3707', N'昌邑市', N'37', N'山东省', N'3707', N'潍坊市', N'370786', N'昌邑市', N'', N'', N'', N'', N'3', N'1', N''), (N'3708', N'37', N'00,37', N'济宁市', N'37', N'山东省', N'3708', N'济宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370811', N'3708', N'00,37,3708', N'任城区', N'37', N'山东省', N'3708', N'济宁市', N'370811', N'任城区', N'', N'', N'', N'', N'3', N'1', N''), (N'370812', N'3708', N'00,37,3708', N'兖州区', N'37', N'山东省', N'3708', N'济宁市', N'370812', N'兖州区', N'', N'', N'', N'', N'3', N'1', N''), (N'370826', N'3708', N'00,37,3708', N'微山县', N'37', N'山东省', N'3708', N'济宁市', N'370826', N'微山县', N'', N'', N'', N'', N'3', N'1', N''), (N'370827', N'3708', N'00,37,3708', N'鱼台县', N'37', N'山东省', N'3708', N'济宁市', N'370827', N'鱼台县', N'', N'', N'', N'', N'3', N'1', N''), (N'370828', N'3708', N'00,37,3708', N'金乡县', N'37', N'山东省', N'3708', N'济宁市', N'370828', N'金乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'370829', N'3708', N'00,37,3708', N'嘉祥县', N'37', N'山东省', N'3708', N'济宁市', N'370829', N'嘉祥县', N'', N'', N'', N'', N'3', N'1', N''), (N'370830', N'3708', N'00,37,3708', N'汶上县', N'37', N'山东省', N'3708', N'济宁市', N'370830', N'汶上县', N'', N'', N'', N'', N'3', N'1', N''), (N'370831', N'3708', N'00,37,3708', N'泗水县', N'37', N'山东省', N'3708', N'济宁市', N'370831', N'泗水县', N'', N'', N'', N'', N'3', N'1', N''), (N'370832', N'3708', N'00,37,3708', N'梁山县', N'37', N'山东省', N'3708', N'济宁市', N'370832', N'梁山县', N'', N'', N'', N'', N'3', N'1', N''), (N'370881', N'3708', N'00,37,3708', N'曲阜市', N'37', N'山东省', N'3708', N'济宁市', N'370881', N'曲阜市', N'', N'', N'', N'', N'3', N'1', N''), (N'370883', N'3708', N'00,37,3708', N'邹城市', N'37', N'山东省', N'3708', N'济宁市', N'370883', N'邹城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3709', N'37', N'00,37', N'泰安市', N'37', N'山东省', N'3709', N'泰安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'370902', N'3709', N'00,37,3709', N'泰山区', N'37', N'山东省', N'3709', N'泰安市', N'370902', N'泰山区', N'', N'', N'', N'', N'3', N'1', N''), (N'370911', N'3709', N'00,37,3709', N'岱岳区', N'37', N'山东省', N'3709', N'泰安市', N'370911', N'岱岳区', N'', N'', N'', N'', N'3', N'1', N''), (N'370921', N'3709', N'00,37,3709', N'宁阳县', N'37', N'山东省', N'3709', N'泰安市', N'370921', N'宁阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'370923', N'3709', N'00,37,3709', N'东平县', N'37', N'山东省', N'3709', N'泰安市', N'370923', N'东平县', N'', N'', N'', N'', N'3', N'1', N''), (N'370982', N'3709', N'00,37,3709', N'新泰市', N'37', N'山东省', N'3709', N'泰安市', N'370982', N'新泰市', N'', N'', N'', N'', N'3', N'1', N''), (N'370983', N'3709', N'00,37,3709', N'肥城市', N'37', N'山东省', N'3709', N'泰安市', N'370983', N'肥城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3710', N'37', N'00,37', N'威海市', N'37', N'山东省', N'3710', N'威海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371002', N'3710', N'00,37,3710', N'环翠区', N'37', N'山东省', N'3710', N'威海市', N'371002', N'环翠区', N'', N'', N'', N'', N'3', N'1', N''), (N'371003', N'3710', N'00,37,3710', N'文登区', N'37', N'山东省', N'3710', N'威海市', N'371003', N'文登区', N'', N'', N'', N'', N'3', N'1', N''), (N'371082', N'3710', N'00,37,3710', N'荣成市', N'37', N'山东省', N'3710', N'威海市', N'371082', N'荣成市', N'', N'', N'', N'', N'3', N'1', N''), (N'371083', N'3710', N'00,37,3710', N'乳山市', N'37', N'山东省', N'3710', N'威海市', N'371083', N'乳山市', N'', N'', N'', N'', N'3', N'1', N''), (N'3711', N'37', N'00,37', N'日照市', N'37', N'山东省', N'3711', N'日照市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371102', N'3711', N'00,37,3711', N'东港区', N'37', N'山东省', N'3711', N'日照市', N'371102', N'东港区', N'', N'', N'', N'', N'3', N'1', N''), (N'371103', N'3711', N'00,37,3711', N'岚山区', N'37', N'山东省', N'3711', N'日照市', N'371103', N'岚山区', N'', N'', N'', N'', N'3', N'1', N''), (N'371121', N'3711', N'00,37,3711', N'五莲县', N'37', N'山东省', N'3711', N'日照市', N'371121', N'五莲县', N'', N'', N'', N'', N'3', N'1', N''), (N'371122', N'3711', N'00,37,3711', N'莒县', N'37', N'山东省', N'3711', N'日照市', N'371122', N'莒县', N'', N'', N'', N'', N'3', N'1', N''), (N'3713', N'37', N'00,37', N'临沂市', N'37', N'山东省', N'3713', N'临沂市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371302', N'3713', N'00,37,3713', N'兰山区', N'37', N'山东省', N'3713', N'临沂市', N'371302', N'兰山区', N'', N'', N'', N'', N'3', N'1', N''), (N'371311', N'3713', N'00,37,3713', N'罗庄区', N'37', N'山东省', N'3713', N'临沂市', N'371311', N'罗庄区', N'', N'', N'', N'', N'3', N'1', N''), (N'371312', N'3713', N'00,37,3713', N'河东区', N'37', N'山东省', N'3713', N'临沂市', N'371312', N'河东区', N'', N'', N'', N'', N'3', N'1', N''), (N'371321', N'3713', N'00,37,3713', N'沂南县', N'37', N'山东省', N'3713', N'临沂市', N'371321', N'沂南县', N'', N'', N'', N'', N'3', N'1', N''), (N'371322', N'3713', N'00,37,3713', N'郯城县', N'37', N'山东省', N'3713', N'临沂市', N'371322', N'郯城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371323', N'3713', N'00,37,3713', N'沂水县', N'37', N'山东省', N'3713', N'临沂市', N'371323', N'沂水县', N'', N'', N'', N'', N'3', N'1', N''), (N'371324', N'3713', N'00,37,3713', N'兰陵县', N'37', N'山东省', N'3713', N'临沂市', N'371324', N'兰陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'371325', N'3713', N'00,37,3713', N'费县', N'37', N'山东省', N'3713', N'临沂市', N'371325', N'费县', N'', N'', N'', N'', N'3', N'1', N''), (N'371326', N'3713', N'00,37,3713', N'平邑县', N'37', N'山东省', N'3713', N'临沂市', N'371326', N'平邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'371327', N'3713', N'00,37,3713', N'莒南县', N'37', N'山东省', N'3713', N'临沂市', N'371327', N'莒南县', N'', N'', N'', N'', N'3', N'1', N''), (N'371328', N'3713', N'00,37,3713', N'蒙阴县', N'37', N'山东省', N'3713', N'临沂市', N'371328', N'蒙阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'371329', N'3713', N'00,37,3713', N'临沭县', N'37', N'山东省', N'3713', N'临沂市', N'371329', N'临沭县', N'', N'', N'', N'', N'3', N'1', N''), (N'3714', N'37', N'00,37', N'德州市', N'37', N'山东省', N'3714', N'德州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371402', N'3714', N'00,37,3714', N'德城区', N'37', N'山东省', N'3714', N'德州市', N'371402', N'德城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371403', N'3714', N'00,37,3714', N'陵城区', N'37', N'山东省', N'3714', N'德州市', N'371403', N'陵城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371422', N'3714', N'00,37,3714', N'宁津县', N'37', N'山东省', N'3714', N'德州市', N'371422', N'宁津县', N'', N'', N'', N'', N'3', N'1', N''), (N'371423', N'3714', N'00,37,3714', N'庆云县', N'37', N'山东省', N'3714', N'德州市', N'371423', N'庆云县', N'', N'', N'', N'', N'3', N'1', N''), (N'371424', N'3714', N'00,37,3714', N'临邑县', N'37', N'山东省', N'3714', N'德州市', N'371424', N'临邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'371425', N'3714', N'00,37,3714', N'齐河县', N'37', N'山东省', N'3714', N'德州市', N'371425', N'齐河县', N'', N'', N'', N'', N'3', N'1', N''), (N'371426', N'3714', N'00,37,3714', N'平原县', N'37', N'山东省', N'3714', N'德州市', N'371426', N'平原县', N'', N'', N'', N'', N'3', N'1', N''), (N'371427', N'3714', N'00,37,3714', N'夏津县', N'37', N'山东省', N'3714', N'德州市', N'371427', N'夏津县', N'', N'', N'', N'', N'3', N'1', N''), (N'371428', N'3714', N'00,37,3714', N'武城县', N'37', N'山东省', N'3714', N'德州市', N'371428', N'武城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371481', N'3714', N'00,37,3714', N'乐陵市', N'37', N'山东省', N'3714', N'德州市', N'371481', N'乐陵市', N'', N'', N'', N'', N'3', N'1', N''), (N'371482', N'3714', N'00,37,3714', N'禹城市', N'37', N'山东省', N'3714', N'德州市', N'371482', N'禹城市', N'', N'', N'', N'', N'3', N'1', N''), (N'3715', N'37', N'00,37', N'聊城市', N'37', N'山东省', N'3715', N'聊城市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371502', N'3715', N'00,37,3715', N'东昌府区', N'37', N'山东省', N'3715', N'聊城市', N'371502', N'东昌府区', N'', N'', N'', N'', N'3', N'1', N''), (N'371503', N'3715', N'00,37,3715', N'茌平区', N'37', N'山东省', N'3715', N'聊城市', N'371503', N'茌平区', N'', N'', N'', N'', N'3', N'1', N''), (N'371521', N'3715', N'00,37,3715', N'阳谷县', N'37', N'山东省', N'3715', N'聊城市', N'371521', N'阳谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'371522', N'3715', N'00,37,3715', N'莘县', N'37', N'山东省', N'3715', N'聊城市', N'371522', N'莘县', N'', N'', N'', N'', N'3', N'1', N''), (N'371524', N'3715', N'00,37,3715', N'东阿县', N'37', N'山东省', N'3715', N'聊城市', N'371524', N'东阿县', N'', N'', N'', N'', N'3', N'1', N''), (N'371525', N'3715', N'00,37,3715', N'冠县', N'37', N'山东省', N'3715', N'聊城市', N'371525', N'冠县', N'', N'', N'', N'', N'3', N'1', N''), (N'371526', N'3715', N'00,37,3715', N'高唐县', N'37', N'山东省', N'3715', N'聊城市', N'371526', N'高唐县', N'', N'', N'', N'', N'3', N'1', N''), (N'371581', N'3715', N'00,37,3715', N'临清市', N'37', N'山东省', N'3715', N'聊城市', N'371581', N'临清市', N'', N'', N'', N'', N'3', N'1', N''), (N'3716', N'37', N'00,37', N'滨州市', N'37', N'山东省', N'3716', N'滨州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371602', N'3716', N'00,37,3716', N'滨城区', N'37', N'山东省', N'3716', N'滨州市', N'371602', N'滨城区', N'', N'', N'', N'', N'3', N'1', N''), (N'371603', N'3716', N'00,37,3716', N'沾化区', N'37', N'山东省', N'3716', N'滨州市', N'371603', N'沾化区', N'', N'', N'', N'', N'3', N'1', N''), (N'371621', N'3716', N'00,37,3716', N'惠民县', N'37', N'山东省', N'3716', N'滨州市', N'371621', N'惠民县', N'', N'', N'', N'', N'3', N'1', N''), (N'371622', N'3716', N'00,37,3716', N'阳信县', N'37', N'山东省', N'3716', N'滨州市', N'371622', N'阳信县', N'', N'', N'', N'', N'3', N'1', N''), (N'371623', N'3716', N'00,37,3716', N'无棣县', N'37', N'山东省', N'3716', N'滨州市', N'371623', N'无棣县', N'', N'', N'', N'', N'3', N'1', N''), (N'371625', N'3716', N'00,37,3716', N'博兴县', N'37', N'山东省', N'3716', N'滨州市', N'371625', N'博兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'371681', N'3716', N'00,37,3716', N'邹平市', N'37', N'山东省', N'3716', N'滨州市', N'371681', N'邹平市', N'', N'', N'', N'', N'3', N'1', N''), (N'3717', N'37', N'00,37', N'菏泽市', N'37', N'山东省', N'3717', N'菏泽市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'371702', N'3717', N'00,37,3717', N'牡丹区', N'37', N'山东省', N'3717', N'菏泽市', N'371702', N'牡丹区', N'', N'', N'', N'', N'3', N'1', N''), (N'371703', N'3717', N'00,37,3717', N'定陶区', N'37', N'山东省', N'3717', N'菏泽市', N'371703', N'定陶区', N'', N'', N'', N'', N'3', N'1', N''), (N'371721', N'3717', N'00,37,3717', N'曹县', N'37', N'山东省', N'3717', N'菏泽市', N'371721', N'曹县', N'', N'', N'', N'', N'3', N'1', N''), (N'371722', N'3717', N'00,37,3717', N'单县', N'37', N'山东省', N'3717', N'菏泽市', N'371722', N'单县', N'', N'', N'', N'', N'3', N'1', N''), (N'371723', N'3717', N'00,37,3717', N'成武县', N'37', N'山东省', N'3717', N'菏泽市', N'371723', N'成武县', N'', N'', N'', N'', N'3', N'1', N''), (N'371724', N'3717', N'00,37,3717', N'巨野县', N'37', N'山东省', N'3717', N'菏泽市', N'371724', N'巨野县', N'', N'', N'', N'', N'3', N'1', N''), (N'371725', N'3717', N'00,37,3717', N'郓城县', N'37', N'山东省', N'3717', N'菏泽市', N'371725', N'郓城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371726', N'3717', N'00,37,3717', N'鄄城县', N'37', N'山东省', N'3717', N'菏泽市', N'371726', N'鄄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'371728', N'3717', N'00,37,3717', N'东明县', N'37', N'山东省', N'3717', N'菏泽市', N'371728', N'东明县', N'', N'', N'', N'', N'3', N'1', N''), (N'41', N'00', N'00', N'河南省', N'41', N'河南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4101', N'41', N'00,41', N'郑州市', N'41', N'河南省', N'4101', N'郑州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410102', N'4101', N'00,41,4101', N'中原区', N'41', N'河南省', N'4101', N'郑州市', N'410102', N'中原区', N'', N'', N'', N'', N'3', N'1', N''), (N'410103', N'4101', N'00,41,4101', N'二七区', N'41', N'河南省', N'4101', N'郑州市', N'410103', N'二七区', N'', N'', N'', N'', N'3', N'1', N''), (N'410104', N'4101', N'00,41,4101', N'管城回族区', N'41', N'河南省', N'4101', N'郑州市', N'410104', N'管城回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410105', N'4101', N'00,41,4101', N'金水区', N'41', N'河南省', N'4101', N'郑州市', N'410105', N'金水区', N'', N'', N'', N'', N'3', N'1', N''), (N'410106', N'4101', N'00,41,4101', N'上街区', N'41', N'河南省', N'4101', N'郑州市', N'410106', N'上街区', N'', N'', N'', N'', N'3', N'1', N''), (N'410108', N'4101', N'00,41,4101', N'惠济区', N'41', N'河南省', N'4101', N'郑州市', N'410108', N'惠济区', N'', N'', N'', N'', N'3', N'1', N''), (N'410122', N'4101', N'00,41,4101', N'中牟县', N'41', N'河南省', N'4101', N'郑州市', N'410122', N'中牟县', N'', N'', N'', N'', N'3', N'1', N''), (N'410181', N'4101', N'00,41,4101', N'巩义市', N'41', N'河南省', N'4101', N'郑州市', N'410181', N'巩义市', N'', N'', N'', N'', N'3', N'1', N''), (N'410182', N'4101', N'00,41,4101', N'荥阳市', N'41', N'河南省', N'4101', N'郑州市', N'410182', N'荥阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'410183', N'4101', N'00,41,4101', N'新密市', N'41', N'河南省', N'4101', N'郑州市', N'410183', N'新密市', N'', N'', N'', N'', N'3', N'1', N''), (N'410184', N'4101', N'00,41,4101', N'新郑市', N'41', N'河南省', N'4101', N'郑州市', N'410184', N'新郑市', N'', N'', N'', N'', N'3', N'1', N''), (N'410185', N'4101', N'00,41,4101', N'登封市', N'41', N'河南省', N'4101', N'郑州市', N'410185', N'登封市', N'', N'', N'', N'', N'3', N'1', N''), (N'4102', N'41', N'00,41', N'开封市', N'41', N'河南省', N'4102', N'开封市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410202', N'4102', N'00,41,4102', N'龙亭区', N'41', N'河南省', N'4102', N'开封市', N'410202', N'龙亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'410203', N'4102', N'00,41,4102', N'顺河回族区', N'41', N'河南省', N'4102', N'开封市', N'410203', N'顺河回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410204', N'4102', N'00,41,4102', N'鼓楼区', N'41', N'河南省', N'4102', N'开封市', N'410204', N'鼓楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'410205', N'4102', N'00,41,4102', N'禹王台区', N'41', N'河南省', N'4102', N'开封市', N'410205', N'禹王台区', N'', N'', N'', N'', N'3', N'1', N''), (N'410212', N'4102', N'00,41,4102', N'祥符区', N'41', N'河南省', N'4102', N'开封市', N'410212', N'祥符区', N'', N'', N'', N'', N'3', N'1', N''), (N'410221', N'4102', N'00,41,4102', N'杞县', N'41', N'河南省', N'4102', N'开封市', N'410221', N'杞县', N'', N'', N'', N'', N'3', N'1', N''), (N'410222', N'4102', N'00,41,4102', N'通许县', N'41', N'河南省', N'4102', N'开封市', N'410222', N'通许县', N'', N'', N'', N'', N'3', N'1', N''), (N'410223', N'4102', N'00,41,4102', N'尉氏县', N'41', N'河南省', N'4102', N'开封市', N'410223', N'尉氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'410225', N'4102', N'00,41,4102', N'兰考县', N'41', N'河南省', N'4102', N'开封市', N'410225', N'兰考县', N'', N'', N'', N'', N'3', N'1', N''), (N'4103', N'41', N'00,41', N'洛阳市', N'41', N'河南省', N'4103', N'洛阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410302', N'4103', N'00,41,4103', N'老城区', N'41', N'河南省', N'4103', N'洛阳市', N'410302', N'老城区', N'', N'', N'', N'', N'3', N'1', N''), (N'410303', N'4103', N'00,41,4103', N'西工区', N'41', N'河南省', N'4103', N'洛阳市', N'410303', N'西工区', N'', N'', N'', N'', N'3', N'1', N''), (N'410304', N'4103', N'00,41,4103', N'瀍河回族区', N'41', N'河南省', N'4103', N'洛阳市', N'410304', N'瀍河回族区', N'', N'', N'', N'', N'3', N'1', N''), (N'410305', N'4103', N'00,41,4103', N'涧西区', N'41', N'河南省', N'4103', N'洛阳市', N'410305', N'涧西区', N'', N'', N'', N'', N'3', N'1', N''), (N'410306', N'4103', N'00,41,4103', N'吉利区', N'41', N'河南省', N'4103', N'洛阳市', N'410306', N'吉利区', N'', N'', N'', N'', N'3', N'1', N''), (N'410311', N'4103', N'00,41,4103', N'洛龙区', N'41', N'河南省', N'4103', N'洛阳市', N'410311', N'洛龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410322', N'4103', N'00,41,4103', N'孟津县', N'41', N'河南省', N'4103', N'洛阳市', N'410322', N'孟津县', N'', N'', N'', N'', N'3', N'1', N''), (N'410323', N'4103', N'00,41,4103', N'新安县', N'41', N'河南省', N'4103', N'洛阳市', N'410323', N'新安县', N'', N'', N'', N'', N'3', N'1', N''), (N'410324', N'4103', N'00,41,4103', N'栾川县', N'41', N'河南省', N'4103', N'洛阳市', N'410324', N'栾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'410325', N'4103', N'00,41,4103', N'嵩县', N'41', N'河南省', N'4103', N'洛阳市', N'410325', N'嵩县', N'', N'', N'', N'', N'3', N'1', N''), (N'410326', N'4103', N'00,41,4103', N'汝阳县', N'41', N'河南省', N'4103', N'洛阳市', N'410326', N'汝阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410327', N'4103', N'00,41,4103', N'宜阳县', N'41', N'河南省', N'4103', N'洛阳市', N'410327', N'宜阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410328', N'4103', N'00,41,4103', N'洛宁县', N'41', N'河南省', N'4103', N'洛阳市', N'410328', N'洛宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'410329', N'4103', N'00,41,4103', N'伊川县', N'41', N'河南省', N'4103', N'洛阳市', N'410329', N'伊川县', N'', N'', N'', N'', N'3', N'1', N''), (N'410381', N'4103', N'00,41,4103', N'偃师市', N'41', N'河南省', N'4103', N'洛阳市', N'410381', N'偃师市', N'', N'', N'', N'', N'3', N'1', N''), (N'4104', N'41', N'00,41', N'平顶山市', N'41', N'河南省', N'4104', N'平顶山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410402', N'4104', N'00,41,4104', N'新华区', N'41', N'河南省', N'4104', N'平顶山市', N'410402', N'新华区', N'', N'', N'', N'', N'3', N'1', N''), (N'410403', N'4104', N'00,41,4104', N'卫东区', N'41', N'河南省', N'4104', N'平顶山市', N'410403', N'卫东区', N'', N'', N'', N'', N'3', N'1', N''), (N'410404', N'4104', N'00,41,4104', N'石龙区', N'41', N'河南省', N'4104', N'平顶山市', N'410404', N'石龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410411', N'4104', N'00,41,4104', N'湛河区', N'41', N'河南省', N'4104', N'平顶山市', N'410411', N'湛河区', N'', N'', N'', N'', N'3', N'1', N''), (N'410421', N'4104', N'00,41,4104', N'宝丰县', N'41', N'河南省', N'4104', N'平顶山市', N'410421', N'宝丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'410422', N'4104', N'00,41,4104', N'叶县', N'41', N'河南省', N'4104', N'平顶山市', N'410422', N'叶县', N'', N'', N'', N'', N'3', N'1', N''), (N'410423', N'4104', N'00,41,4104', N'鲁山县', N'41', N'河南省', N'4104', N'平顶山市', N'410423', N'鲁山县', N'', N'', N'', N'', N'3', N'1', N''), (N'410425', N'4104', N'00,41,4104', N'郏县', N'41', N'河南省', N'4104', N'平顶山市', N'410425', N'郏县', N'', N'', N'', N'', N'3', N'1', N''), (N'410481', N'4104', N'00,41,4104', N'舞钢市', N'41', N'河南省', N'4104', N'平顶山市', N'410481', N'舞钢市', N'', N'', N'', N'', N'3', N'1', N''), (N'410482', N'4104', N'00,41,4104', N'汝州市', N'41', N'河南省', N'4104', N'平顶山市', N'410482', N'汝州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4105', N'41', N'00,41', N'安阳市', N'41', N'河南省', N'4105', N'安阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410502', N'4105', N'00,41,4105', N'文峰区', N'41', N'河南省', N'4105', N'安阳市', N'410502', N'文峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'410503', N'4105', N'00,41,4105', N'北关区', N'41', N'河南省', N'4105', N'安阳市', N'410503', N'北关区', N'', N'', N'', N'', N'3', N'1', N''), (N'410505', N'4105', N'00,41,4105', N'殷都区', N'41', N'河南省', N'4105', N'安阳市', N'410505', N'殷都区', N'', N'', N'', N'', N'3', N'1', N''), (N'410506', N'4105', N'00,41,4105', N'龙安区', N'41', N'河南省', N'4105', N'安阳市', N'410506', N'龙安区', N'', N'', N'', N'', N'3', N'1', N''), (N'410522', N'4105', N'00,41,4105', N'安阳县', N'41', N'河南省', N'4105', N'安阳市', N'410522', N'安阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410523', N'4105', N'00,41,4105', N'汤阴县', N'41', N'河南省', N'4105', N'安阳市', N'410523', N'汤阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'410526', N'4105', N'00,41,4105', N'滑县', N'41', N'河南省', N'4105', N'安阳市', N'410526', N'滑县', N'', N'', N'', N'', N'3', N'1', N''), (N'410527', N'4105', N'00,41,4105', N'内黄县', N'41', N'河南省', N'4105', N'安阳市', N'410527', N'内黄县', N'', N'', N'', N'', N'3', N'1', N''), (N'410581', N'4105', N'00,41,4105', N'林州市', N'41', N'河南省', N'4105', N'安阳市', N'410581', N'林州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4106', N'41', N'00,41', N'鹤壁市', N'41', N'河南省', N'4106', N'鹤壁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410602', N'4106', N'00,41,4106', N'鹤山区', N'41', N'河南省', N'4106', N'鹤壁市', N'410602', N'鹤山区', N'', N'', N'', N'', N'3', N'1', N''), (N'410603', N'4106', N'00,41,4106', N'山城区', N'41', N'河南省', N'4106', N'鹤壁市', N'410603', N'山城区', N'', N'', N'', N'', N'3', N'1', N''), (N'410611', N'4106', N'00,41,4106', N'淇滨区', N'41', N'河南省', N'4106', N'鹤壁市', N'410611', N'淇滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'410621', N'4106', N'00,41,4106', N'浚县', N'41', N'河南省', N'4106', N'鹤壁市', N'410621', N'浚县', N'', N'', N'', N'', N'3', N'1', N''), (N'410622', N'4106', N'00,41,4106', N'淇县', N'41', N'河南省', N'4106', N'鹤壁市', N'410622', N'淇县', N'', N'', N'', N'', N'3', N'1', N''), (N'4107', N'41', N'00,41', N'新乡市', N'41', N'河南省', N'4107', N'新乡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410702', N'4107', N'00,41,4107', N'红旗区', N'41', N'河南省', N'4107', N'新乡市', N'410702', N'红旗区', N'', N'', N'', N'', N'3', N'1', N''), (N'410703', N'4107', N'00,41,4107', N'卫滨区', N'41', N'河南省', N'4107', N'新乡市', N'410703', N'卫滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'410704', N'4107', N'00,41,4107', N'凤泉区', N'41', N'河南省', N'4107', N'新乡市', N'410704', N'凤泉区', N'', N'', N'', N'', N'3', N'1', N''), (N'410711', N'4107', N'00,41,4107', N'牧野区', N'41', N'河南省', N'4107', N'新乡市', N'410711', N'牧野区', N'', N'', N'', N'', N'3', N'1', N''), (N'410721', N'4107', N'00,41,4107', N'新乡县', N'41', N'河南省', N'4107', N'新乡市', N'410721', N'新乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'410724', N'4107', N'00,41,4107', N'获嘉县', N'41', N'河南省', N'4107', N'新乡市', N'410724', N'获嘉县', N'', N'', N'', N'', N'3', N'1', N''), (N'410725', N'4107', N'00,41,4107', N'原阳县', N'41', N'河南省', N'4107', N'新乡市', N'410725', N'原阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'410726', N'4107', N'00,41,4107', N'延津县', N'41', N'河南省', N'4107', N'新乡市', N'410726', N'延津县', N'', N'', N'', N'', N'3', N'1', N''), (N'410727', N'4107', N'00,41,4107', N'封丘县', N'41', N'河南省', N'4107', N'新乡市', N'410727', N'封丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'410781', N'4107', N'00,41,4107', N'卫辉市', N'41', N'河南省', N'4107', N'新乡市', N'410781', N'卫辉市', N'', N'', N'', N'', N'3', N'1', N''), (N'410782', N'4107', N'00,41,4107', N'辉县市', N'41', N'河南省', N'4107', N'新乡市', N'410782', N'辉县市', N'', N'', N'', N'', N'3', N'1', N''), (N'410783', N'4107', N'00,41,4107', N'长垣市', N'41', N'河南省', N'4107', N'新乡市', N'410783', N'长垣市', N'', N'', N'', N'', N'3', N'1', N''), (N'4108', N'41', N'00,41', N'焦作市', N'41', N'河南省', N'4108', N'焦作市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410802', N'4108', N'00,41,4108', N'解放区', N'41', N'河南省', N'4108', N'焦作市', N'410802', N'解放区', N'', N'', N'', N'', N'3', N'1', N''), (N'410803', N'4108', N'00,41,4108', N'中站区', N'41', N'河南省', N'4108', N'焦作市', N'410803', N'中站区', N'', N'', N'', N'', N'3', N'1', N''), (N'410804', N'4108', N'00,41,4108', N'马村区', N'41', N'河南省', N'4108', N'焦作市', N'410804', N'马村区', N'', N'', N'', N'', N'3', N'1', N''), (N'410811', N'4108', N'00,41,4108', N'山阳区', N'41', N'河南省', N'4108', N'焦作市', N'410811', N'山阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'410821', N'4108', N'00,41,4108', N'修武县', N'41', N'河南省', N'4108', N'焦作市', N'410821', N'修武县', N'', N'', N'', N'', N'3', N'1', N''), (N'410822', N'4108', N'00,41,4108', N'博爱县', N'41', N'河南省', N'4108', N'焦作市', N'410822', N'博爱县', N'', N'', N'', N'', N'3', N'1', N''), (N'410823', N'4108', N'00,41,4108', N'武陟县', N'41', N'河南省', N'4108', N'焦作市', N'410823', N'武陟县', N'', N'', N'', N'', N'3', N'1', N''), (N'410825', N'4108', N'00,41,4108', N'温县', N'41', N'河南省', N'4108', N'焦作市', N'410825', N'温县', N'', N'', N'', N'', N'3', N'1', N''), (N'410882', N'4108', N'00,41,4108', N'沁阳市', N'41', N'河南省', N'4108', N'焦作市', N'410882', N'沁阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'410883', N'4108', N'00,41,4108', N'孟州市', N'41', N'河南省', N'4108', N'焦作市', N'410883', N'孟州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4109', N'41', N'00,41', N'濮阳市', N'41', N'河南省', N'4109', N'濮阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'410902', N'4109', N'00,41,4109', N'华龙区', N'41', N'河南省', N'4109', N'濮阳市', N'410902', N'华龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'410922', N'4109', N'00,41,4109', N'清丰县', N'41', N'河南省', N'4109', N'濮阳市', N'410922', N'清丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'410923', N'4109', N'00,41,4109', N'南乐县', N'41', N'河南省', N'4109', N'濮阳市', N'410923', N'南乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'410926', N'4109', N'00,41,4109', N'范县', N'41', N'河南省', N'4109', N'濮阳市', N'410926', N'范县', N'', N'', N'', N'', N'3', N'1', N''), (N'410927', N'4109', N'00,41,4109', N'台前县', N'41', N'河南省', N'4109', N'濮阳市', N'410927', N'台前县', N'', N'', N'', N'', N'3', N'1', N''), (N'410928', N'4109', N'00,41,4109', N'濮阳县', N'41', N'河南省', N'4109', N'濮阳市', N'410928', N'濮阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'4110', N'41', N'00,41', N'许昌市', N'41', N'河南省', N'4110', N'许昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411002', N'4110', N'00,41,4110', N'魏都区', N'41', N'河南省', N'4110', N'许昌市', N'411002', N'魏都区', N'', N'', N'', N'', N'3', N'1', N''), (N'411003', N'4110', N'00,41,4110', N'建安区', N'41', N'河南省', N'4110', N'许昌市', N'411003', N'建安区', N'', N'', N'', N'', N'3', N'1', N''), (N'411024', N'4110', N'00,41,4110', N'鄢陵县', N'41', N'河南省', N'4110', N'许昌市', N'411024', N'鄢陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'411025', N'4110', N'00,41,4110', N'襄城县', N'41', N'河南省', N'4110', N'许昌市', N'411025', N'襄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411081', N'4110', N'00,41,4110', N'禹州市', N'41', N'河南省', N'4110', N'许昌市', N'411081', N'禹州市', N'', N'', N'', N'', N'3', N'1', N''), (N'411082', N'4110', N'00,41,4110', N'长葛市', N'41', N'河南省', N'4110', N'许昌市', N'411082', N'长葛市', N'', N'', N'', N'', N'3', N'1', N''), (N'4111', N'41', N'00,41', N'漯河市', N'41', N'河南省', N'4111', N'漯河市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411102', N'4111', N'00,41,4111', N'源汇区', N'41', N'河南省', N'4111', N'漯河市', N'411102', N'源汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'411103', N'4111', N'00,41,4111', N'郾城区', N'41', N'河南省', N'4111', N'漯河市', N'411103', N'郾城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411104', N'4111', N'00,41,4111', N'召陵区', N'41', N'河南省', N'4111', N'漯河市', N'411104', N'召陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'411121', N'4111', N'00,41,4111', N'舞阳县', N'41', N'河南省', N'4111', N'漯河市', N'411121', N'舞阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411122', N'4111', N'00,41,4111', N'临颍县', N'41', N'河南省', N'4111', N'漯河市', N'411122', N'临颍县', N'', N'', N'', N'', N'3', N'1', N''), (N'4112', N'41', N'00,41', N'三门峡市', N'41', N'河南省', N'4112', N'三门峡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411202', N'4112', N'00,41,4112', N'湖滨区', N'41', N'河南省', N'4112', N'三门峡市', N'411202', N'湖滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'411203', N'4112', N'00,41,4112', N'陕州区', N'41', N'河南省', N'4112', N'三门峡市', N'411203', N'陕州区', N'', N'', N'', N'', N'3', N'1', N''), (N'411221', N'4112', N'00,41,4112', N'渑池县', N'41', N'河南省', N'4112', N'三门峡市', N'411221', N'渑池县', N'', N'', N'', N'', N'3', N'1', N''), (N'411224', N'4112', N'00,41,4112', N'卢氏县', N'41', N'河南省', N'4112', N'三门峡市', N'411224', N'卢氏县', N'', N'', N'', N'', N'3', N'1', N''), (N'411281', N'4112', N'00,41,4112', N'义马市', N'41', N'河南省', N'4112', N'三门峡市', N'411281', N'义马市', N'', N'', N'', N'', N'3', N'1', N''), (N'411282', N'4112', N'00,41,4112', N'灵宝市', N'41', N'河南省', N'4112', N'三门峡市', N'411282', N'灵宝市', N'', N'', N'', N'', N'3', N'1', N''), (N'4113', N'41', N'00,41', N'南阳市', N'41', N'河南省', N'4113', N'南阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411302', N'4113', N'00,41,4113', N'宛城区', N'41', N'河南省', N'4113', N'南阳市', N'411302', N'宛城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411303', N'4113', N'00,41,4113', N'卧龙区', N'41', N'河南省', N'4113', N'南阳市', N'411303', N'卧龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'411321', N'4113', N'00,41,4113', N'南召县', N'41', N'河南省', N'4113', N'南阳市', N'411321', N'南召县', N'', N'', N'', N'', N'3', N'1', N''), (N'411322', N'4113', N'00,41,4113', N'方城县', N'41', N'河南省', N'4113', N'南阳市', N'411322', N'方城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411323', N'4113', N'00,41,4113', N'西峡县', N'41', N'河南省', N'4113', N'南阳市', N'411323', N'西峡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411324', N'4113', N'00,41,4113', N'镇平县', N'41', N'河南省', N'4113', N'南阳市', N'411324', N'镇平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411325', N'4113', N'00,41,4113', N'内乡县', N'41', N'河南省', N'4113', N'南阳市', N'411325', N'内乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411326', N'4113', N'00,41,4113', N'淅川县', N'41', N'河南省', N'4113', N'南阳市', N'411326', N'淅川县', N'', N'', N'', N'', N'3', N'1', N''), (N'411327', N'4113', N'00,41,4113', N'社旗县', N'41', N'河南省', N'4113', N'南阳市', N'411327', N'社旗县', N'', N'', N'', N'', N'3', N'1', N''), (N'411328', N'4113', N'00,41,4113', N'唐河县', N'41', N'河南省', N'4113', N'南阳市', N'411328', N'唐河县', N'', N'', N'', N'', N'3', N'1', N''), (N'411329', N'4113', N'00,41,4113', N'新野县', N'41', N'河南省', N'4113', N'南阳市', N'411329', N'新野县', N'', N'', N'', N'', N'3', N'1', N''), (N'411330', N'4113', N'00,41,4113', N'桐柏县', N'41', N'河南省', N'4113', N'南阳市', N'411330', N'桐柏县', N'', N'', N'', N'', N'3', N'1', N''), (N'411381', N'4113', N'00,41,4113', N'邓州市', N'41', N'河南省', N'4113', N'南阳市', N'411381', N'邓州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4114', N'41', N'00,41', N'商丘市', N'41', N'河南省', N'4114', N'商丘市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411402', N'4114', N'00,41,4114', N'梁园区', N'41', N'河南省', N'4114', N'商丘市', N'411402', N'梁园区', N'', N'', N'', N'', N'3', N'1', N''), (N'411403', N'4114', N'00,41,4114', N'睢阳区', N'41', N'河南省', N'4114', N'商丘市', N'411403', N'睢阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'411421', N'4114', N'00,41,4114', N'民权县', N'41', N'河南省', N'4114', N'商丘市', N'411421', N'民权县', N'', N'', N'', N'', N'3', N'1', N''), (N'411422', N'4114', N'00,41,4114', N'睢县', N'41', N'河南省', N'4114', N'商丘市', N'411422', N'睢县', N'', N'', N'', N'', N'3', N'1', N''), (N'411423', N'4114', N'00,41,4114', N'宁陵县', N'41', N'河南省', N'4114', N'商丘市', N'411423', N'宁陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'411424', N'4114', N'00,41,4114', N'柘城县', N'41', N'河南省', N'4114', N'商丘市', N'411424', N'柘城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411425', N'4114', N'00,41,4114', N'虞城县', N'41', N'河南省', N'4114', N'商丘市', N'411425', N'虞城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411426', N'4114', N'00,41,4114', N'夏邑县', N'41', N'河南省', N'4114', N'商丘市', N'411426', N'夏邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'411481', N'4114', N'00,41,4114', N'永城市', N'41', N'河南省', N'4114', N'商丘市', N'411481', N'永城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4115', N'41', N'00,41', N'信阳市', N'41', N'河南省', N'4115', N'信阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411502', N'4115', N'00,41,4115', N'浉河区', N'41', N'河南省', N'4115', N'信阳市', N'411502', N'浉河区', N'', N'', N'', N'', N'3', N'1', N''), (N'411503', N'4115', N'00,41,4115', N'平桥区', N'41', N'河南省', N'4115', N'信阳市', N'411503', N'平桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'411521', N'4115', N'00,41,4115', N'罗山县', N'41', N'河南省', N'4115', N'信阳市', N'411521', N'罗山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411522', N'4115', N'00,41,4115', N'光山县', N'41', N'河南省', N'4115', N'信阳市', N'411522', N'光山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411523', N'4115', N'00,41,4115', N'新县', N'41', N'河南省', N'4115', N'信阳市', N'411523', N'新县', N'', N'', N'', N'', N'3', N'1', N''), (N'411524', N'4115', N'00,41,4115', N'商城县', N'41', N'河南省', N'4115', N'信阳市', N'411524', N'商城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411525', N'4115', N'00,41,4115', N'固始县', N'41', N'河南省', N'4115', N'信阳市', N'411525', N'固始县', N'', N'', N'', N'', N'3', N'1', N''), (N'411526', N'4115', N'00,41,4115', N'潢川县', N'41', N'河南省', N'4115', N'信阳市', N'411526', N'潢川县', N'', N'', N'', N'', N'3', N'1', N''), (N'411527', N'4115', N'00,41,4115', N'淮滨县', N'41', N'河南省', N'4115', N'信阳市', N'411527', N'淮滨县', N'', N'', N'', N'', N'3', N'1', N''), (N'411528', N'4115', N'00,41,4115', N'息县', N'41', N'河南省', N'4115', N'信阳市', N'411528', N'息县', N'', N'', N'', N'', N'3', N'1', N''), (N'4116', N'41', N'00,41', N'周口市', N'41', N'河南省', N'4116', N'周口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411602', N'4116', N'00,41,4116', N'川汇区', N'41', N'河南省', N'4116', N'周口市', N'411602', N'川汇区', N'', N'', N'', N'', N'3', N'1', N''), (N'411603', N'4116', N'00,41,4116', N'淮阳区', N'41', N'河南省', N'4116', N'周口市', N'411603', N'淮阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'411621', N'4116', N'00,41,4116', N'扶沟县', N'41', N'河南省', N'4116', N'周口市', N'411621', N'扶沟县', N'', N'', N'', N'', N'3', N'1', N''), (N'411622', N'4116', N'00,41,4116', N'西华县', N'41', N'河南省', N'4116', N'周口市', N'411622', N'西华县', N'', N'', N'', N'', N'3', N'1', N''), (N'411623', N'4116', N'00,41,4116', N'商水县', N'41', N'河南省', N'4116', N'周口市', N'411623', N'商水县', N'', N'', N'', N'', N'3', N'1', N''), (N'411624', N'4116', N'00,41,4116', N'沈丘县', N'41', N'河南省', N'4116', N'周口市', N'411624', N'沈丘县', N'', N'', N'', N'', N'3', N'1', N''), (N'411625', N'4116', N'00,41,4116', N'郸城县', N'41', N'河南省', N'4116', N'周口市', N'411625', N'郸城县', N'', N'', N'', N'', N'3', N'1', N''), (N'411627', N'4116', N'00,41,4116', N'太康县', N'41', N'河南省', N'4116', N'周口市', N'411627', N'太康县', N'', N'', N'', N'', N'3', N'1', N''), (N'411628', N'4116', N'00,41,4116', N'鹿邑县', N'41', N'河南省', N'4116', N'周口市', N'411628', N'鹿邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'411681', N'4116', N'00,41,4116', N'项城市', N'41', N'河南省', N'4116', N'周口市', N'411681', N'项城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4117', N'41', N'00,41', N'驻马店市', N'41', N'河南省', N'4117', N'驻马店市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'411702', N'4117', N'00,41,4117', N'驿城区', N'41', N'河南省', N'4117', N'驻马店市', N'411702', N'驿城区', N'', N'', N'', N'', N'3', N'1', N''), (N'411721', N'4117', N'00,41,4117', N'西平县', N'41', N'河南省', N'4117', N'驻马店市', N'411721', N'西平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411722', N'4117', N'00,41,4117', N'上蔡县', N'41', N'河南省', N'4117', N'驻马店市', N'411722', N'上蔡县', N'', N'', N'', N'', N'3', N'1', N''), (N'411723', N'4117', N'00,41,4117', N'平舆县', N'41', N'河南省', N'4117', N'驻马店市', N'411723', N'平舆县', N'', N'', N'', N'', N'3', N'1', N''), (N'411724', N'4117', N'00,41,4117', N'正阳县', N'41', N'河南省', N'4117', N'驻马店市', N'411724', N'正阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411725', N'4117', N'00,41,4117', N'确山县', N'41', N'河南省', N'4117', N'驻马店市', N'411725', N'确山县', N'', N'', N'', N'', N'3', N'1', N''), (N'411726', N'4117', N'00,41,4117', N'泌阳县', N'41', N'河南省', N'4117', N'驻马店市', N'411726', N'泌阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'411727', N'4117', N'00,41,4117', N'汝南县', N'41', N'河南省', N'4117', N'驻马店市', N'411727', N'汝南县', N'', N'', N'', N'', N'3', N'1', N''), (N'411728', N'4117', N'00,41,4117', N'遂平县', N'41', N'河南省', N'4117', N'驻马店市', N'411728', N'遂平县', N'', N'', N'', N'', N'3', N'1', N''), (N'411729', N'4117', N'00,41,4117', N'新蔡县', N'41', N'河南省', N'4117', N'驻马店市', N'411729', N'新蔡县', N'', N'', N'', N'', N'3', N'1', N''), (N'4190', N'41', N'00,41', N'省直辖县级行政区', N'41', N'河南省', N'4190', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'419001', N'4190', N'00,41,4190', N'济源市', N'41', N'河南省', N'4190', N'省直辖县级行政区', N'419001', N'济源市', N'', N'', N'', N'', N'3', N'1', N''), (N'42', N'00', N'00', N'湖北省', N'42', N'湖北省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4201', N'42', N'00,42', N'武汉市', N'42', N'湖北省', N'4201', N'武汉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420102', N'4201', N'00,42,4201', N'江岸区', N'42', N'湖北省', N'4201', N'武汉市', N'420102', N'江岸区', N'', N'', N'', N'', N'3', N'1', N''), (N'420103', N'4201', N'00,42,4201', N'江汉区', N'42', N'湖北省', N'4201', N'武汉市', N'420103', N'江汉区', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'420104', N'4201', N'00,42,4201', N'硚口区', N'42', N'湖北省', N'4201', N'武汉市', N'420104', N'硚口区', N'', N'', N'', N'', N'3', N'1', N''), (N'420105', N'4201', N'00,42,4201', N'汉阳区', N'42', N'湖北省', N'4201', N'武汉市', N'420105', N'汉阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'420106', N'4201', N'00,42,4201', N'武昌区', N'42', N'湖北省', N'4201', N'武汉市', N'420106', N'武昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'420107', N'4201', N'00,42,4201', N'青山区', N'42', N'湖北省', N'4201', N'武汉市', N'420107', N'青山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420111', N'4201', N'00,42,4201', N'洪山区', N'42', N'湖北省', N'4201', N'武汉市', N'420111', N'洪山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420112', N'4201', N'00,42,4201', N'东西湖区', N'42', N'湖北省', N'4201', N'武汉市', N'420112', N'东西湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'420113', N'4201', N'00,42,4201', N'汉南区', N'42', N'湖北省', N'4201', N'武汉市', N'420113', N'汉南区', N'', N'', N'', N'', N'3', N'1', N''), (N'420114', N'4201', N'00,42,4201', N'蔡甸区', N'42', N'湖北省', N'4201', N'武汉市', N'420114', N'蔡甸区', N'', N'', N'', N'', N'3', N'1', N''), (N'420115', N'4201', N'00,42,4201', N'江夏区', N'42', N'湖北省', N'4201', N'武汉市', N'420115', N'江夏区', N'', N'', N'', N'', N'3', N'1', N''), (N'420116', N'4201', N'00,42,4201', N'黄陂区', N'42', N'湖北省', N'4201', N'武汉市', N'420116', N'黄陂区', N'', N'', N'', N'', N'3', N'1', N''), (N'420117', N'4201', N'00,42,4201', N'新洲区', N'42', N'湖北省', N'4201', N'武汉市', N'420117', N'新洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'4202', N'42', N'00,42', N'黄石市', N'42', N'湖北省', N'4202', N'黄石市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420202', N'4202', N'00,42,4202', N'黄石港区', N'42', N'湖北省', N'4202', N'黄石市', N'420202', N'黄石港区', N'', N'', N'', N'', N'3', N'1', N''), (N'420203', N'4202', N'00,42,4202', N'西塞山区', N'42', N'湖北省', N'4202', N'黄石市', N'420203', N'西塞山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420204', N'4202', N'00,42,4202', N'下陆区', N'42', N'湖北省', N'4202', N'黄石市', N'420204', N'下陆区', N'', N'', N'', N'', N'3', N'1', N''), (N'420205', N'4202', N'00,42,4202', N'铁山区', N'42', N'湖北省', N'4202', N'黄石市', N'420205', N'铁山区', N'', N'', N'', N'', N'3', N'1', N''), (N'420222', N'4202', N'00,42,4202', N'阳新县', N'42', N'湖北省', N'4202', N'黄石市', N'420222', N'阳新县', N'', N'', N'', N'', N'3', N'1', N''), (N'420281', N'4202', N'00,42,4202', N'大冶市', N'42', N'湖北省', N'4202', N'黄石市', N'420281', N'大冶市', N'', N'', N'', N'', N'3', N'1', N''), (N'4203', N'42', N'00,42', N'十堰市', N'42', N'湖北省', N'4203', N'十堰市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420302', N'4203', N'00,42,4203', N'茅箭区', N'42', N'湖北省', N'4203', N'十堰市', N'420302', N'茅箭区', N'', N'', N'', N'', N'3', N'1', N''), (N'420303', N'4203', N'00,42,4203', N'张湾区', N'42', N'湖北省', N'4203', N'十堰市', N'420303', N'张湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'420304', N'4203', N'00,42,4203', N'郧阳区', N'42', N'湖北省', N'4203', N'十堰市', N'420304', N'郧阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'420322', N'4203', N'00,42,4203', N'郧西县', N'42', N'湖北省', N'4203', N'十堰市', N'420322', N'郧西县', N'', N'', N'', N'', N'3', N'1', N''), (N'420323', N'4203', N'00,42,4203', N'竹山县', N'42', N'湖北省', N'4203', N'十堰市', N'420323', N'竹山县', N'', N'', N'', N'', N'3', N'1', N''), (N'420324', N'4203', N'00,42,4203', N'竹溪县', N'42', N'湖北省', N'4203', N'十堰市', N'420324', N'竹溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'420325', N'4203', N'00,42,4203', N'房县', N'42', N'湖北省', N'4203', N'十堰市', N'420325', N'房县', N'', N'', N'', N'', N'3', N'1', N''), (N'420381', N'4203', N'00,42,4203', N'丹江口市', N'42', N'湖北省', N'4203', N'十堰市', N'420381', N'丹江口市', N'', N'', N'', N'', N'3', N'1', N''), (N'4205', N'42', N'00,42', N'宜昌市', N'42', N'湖北省', N'4205', N'宜昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420502', N'4205', N'00,42,4205', N'西陵区', N'42', N'湖北省', N'4205', N'宜昌市', N'420502', N'西陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'420503', N'4205', N'00,42,4205', N'伍家岗区', N'42', N'湖北省', N'4205', N'宜昌市', N'420503', N'伍家岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'420504', N'4205', N'00,42,4205', N'点军区', N'42', N'湖北省', N'4205', N'宜昌市', N'420504', N'点军区', N'', N'', N'', N'', N'3', N'1', N''), (N'420505', N'4205', N'00,42,4205', N'猇亭区', N'42', N'湖北省', N'4205', N'宜昌市', N'420505', N'猇亭区', N'', N'', N'', N'', N'3', N'1', N''), (N'420506', N'4205', N'00,42,4205', N'夷陵区', N'42', N'湖北省', N'4205', N'宜昌市', N'420506', N'夷陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'420525', N'4205', N'00,42,4205', N'远安县', N'42', N'湖北省', N'4205', N'宜昌市', N'420525', N'远安县', N'', N'', N'', N'', N'3', N'1', N''), (N'420526', N'4205', N'00,42,4205', N'兴山县', N'42', N'湖北省', N'4205', N'宜昌市', N'420526', N'兴山县', N'', N'', N'', N'', N'3', N'1', N''), (N'420527', N'4205', N'00,42,4205', N'秭归县', N'42', N'湖北省', N'4205', N'宜昌市', N'420527', N'秭归县', N'', N'', N'', N'', N'3', N'1', N''), (N'420528', N'4205', N'00,42,4205', N'长阳土家族自治县', N'42', N'湖北省', N'4205', N'宜昌市', N'420528', N'长阳土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'420529', N'4205', N'00,42,4205', N'五峰土家族自治县', N'42', N'湖北省', N'4205', N'宜昌市', N'420529', N'五峰土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'420581', N'4205', N'00,42,4205', N'宜都市', N'42', N'湖北省', N'4205', N'宜昌市', N'420581', N'宜都市', N'', N'', N'', N'', N'3', N'1', N''), (N'420582', N'4205', N'00,42,4205', N'当阳市', N'42', N'湖北省', N'4205', N'宜昌市', N'420582', N'当阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'420583', N'4205', N'00,42,4205', N'枝江市', N'42', N'湖北省', N'4205', N'宜昌市', N'420583', N'枝江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4206', N'42', N'00,42', N'襄阳市', N'42', N'湖北省', N'4206', N'襄阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420602', N'4206', N'00,42,4206', N'襄城区', N'42', N'湖北省', N'4206', N'襄阳市', N'420602', N'襄城区', N'', N'', N'', N'', N'3', N'1', N''), (N'420606', N'4206', N'00,42,4206', N'樊城区', N'42', N'湖北省', N'4206', N'襄阳市', N'420606', N'樊城区', N'', N'', N'', N'', N'3', N'1', N''), (N'420607', N'4206', N'00,42,4206', N'襄州区', N'42', N'湖北省', N'4206', N'襄阳市', N'420607', N'襄州区', N'', N'', N'', N'', N'3', N'1', N''), (N'420624', N'4206', N'00,42,4206', N'南漳县', N'42', N'湖北省', N'4206', N'襄阳市', N'420624', N'南漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'420625', N'4206', N'00,42,4206', N'谷城县', N'42', N'湖北省', N'4206', N'襄阳市', N'420625', N'谷城县', N'', N'', N'', N'', N'3', N'1', N''), (N'420626', N'4206', N'00,42,4206', N'保康县', N'42', N'湖北省', N'4206', N'襄阳市', N'420626', N'保康县', N'', N'', N'', N'', N'3', N'1', N''), (N'420682', N'4206', N'00,42,4206', N'老河口市', N'42', N'湖北省', N'4206', N'襄阳市', N'420682', N'老河口市', N'', N'', N'', N'', N'3', N'1', N''), (N'420683', N'4206', N'00,42,4206', N'枣阳市', N'42', N'湖北省', N'4206', N'襄阳市', N'420683', N'枣阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'420684', N'4206', N'00,42,4206', N'宜城市', N'42', N'湖北省', N'4206', N'襄阳市', N'420684', N'宜城市', N'', N'', N'', N'', N'3', N'1', N''), (N'4207', N'42', N'00,42', N'鄂州市', N'42', N'湖北省', N'4207', N'鄂州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420702', N'4207', N'00,42,4207', N'梁子湖区', N'42', N'湖北省', N'4207', N'鄂州市', N'420702', N'梁子湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'420703', N'4207', N'00,42,4207', N'华容区', N'42', N'湖北省', N'4207', N'鄂州市', N'420703', N'华容区', N'', N'', N'', N'', N'3', N'1', N''), (N'420704', N'4207', N'00,42,4207', N'鄂城区', N'42', N'湖北省', N'4207', N'鄂州市', N'420704', N'鄂城区', N'', N'', N'', N'', N'3', N'1', N''), (N'4208', N'42', N'00,42', N'荆门市', N'42', N'湖北省', N'4208', N'荆门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420802', N'4208', N'00,42,4208', N'东宝区', N'42', N'湖北省', N'4208', N'荆门市', N'420802', N'东宝区', N'', N'', N'', N'', N'3', N'1', N''), (N'420804', N'4208', N'00,42,4208', N'掇刀区', N'42', N'湖北省', N'4208', N'荆门市', N'420804', N'掇刀区', N'', N'', N'', N'', N'3', N'1', N''), (N'420822', N'4208', N'00,42,4208', N'沙洋县', N'42', N'湖北省', N'4208', N'荆门市', N'420822', N'沙洋县', N'', N'', N'', N'', N'3', N'1', N''), (N'420881', N'4208', N'00,42,4208', N'钟祥市', N'42', N'湖北省', N'4208', N'荆门市', N'420881', N'钟祥市', N'', N'', N'', N'', N'3', N'1', N''), (N'420882', N'4208', N'00,42,4208', N'京山市', N'42', N'湖北省', N'4208', N'荆门市', N'420882', N'京山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4209', N'42', N'00,42', N'孝感市', N'42', N'湖北省', N'4209', N'孝感市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'420902', N'4209', N'00,42,4209', N'孝南区', N'42', N'湖北省', N'4209', N'孝感市', N'420902', N'孝南区', N'', N'', N'', N'', N'3', N'1', N''), (N'420921', N'4209', N'00,42,4209', N'孝昌县', N'42', N'湖北省', N'4209', N'孝感市', N'420921', N'孝昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'420922', N'4209', N'00,42,4209', N'大悟县', N'42', N'湖北省', N'4209', N'孝感市', N'420922', N'大悟县', N'', N'', N'', N'', N'3', N'1', N''), (N'420923', N'4209', N'00,42,4209', N'云梦县', N'42', N'湖北省', N'4209', N'孝感市', N'420923', N'云梦县', N'', N'', N'', N'', N'3', N'1', N''), (N'420981', N'4209', N'00,42,4209', N'应城市', N'42', N'湖北省', N'4209', N'孝感市', N'420981', N'应城市', N'', N'', N'', N'', N'3', N'1', N''), (N'420982', N'4209', N'00,42,4209', N'安陆市', N'42', N'湖北省', N'4209', N'孝感市', N'420982', N'安陆市', N'', N'', N'', N'', N'3', N'1', N''), (N'420984', N'4209', N'00,42,4209', N'汉川市', N'42', N'湖北省', N'4209', N'孝感市', N'420984', N'汉川市', N'', N'', N'', N'', N'3', N'1', N''), (N'4210', N'42', N'00,42', N'荆州市', N'42', N'湖北省', N'4210', N'荆州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421002', N'4210', N'00,42,4210', N'沙市区', N'42', N'湖北省', N'4210', N'荆州市', N'421002', N'沙市区', N'', N'', N'', N'', N'3', N'1', N''), (N'421003', N'4210', N'00,42,4210', N'荆州区', N'42', N'湖北省', N'4210', N'荆州市', N'421003', N'荆州区', N'', N'', N'', N'', N'3', N'1', N''), (N'421022', N'4210', N'00,42,4210', N'公安县', N'42', N'湖北省', N'4210', N'荆州市', N'421022', N'公安县', N'', N'', N'', N'', N'3', N'1', N''), (N'421023', N'4210', N'00,42,4210', N'监利县', N'42', N'湖北省', N'4210', N'荆州市', N'421023', N'监利县', N'', N'', N'', N'', N'3', N'1', N''), (N'421024', N'4210', N'00,42,4210', N'江陵县', N'42', N'湖北省', N'4210', N'荆州市', N'421024', N'江陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'421081', N'4210', N'00,42,4210', N'石首市', N'42', N'湖北省', N'4210', N'荆州市', N'421081', N'石首市', N'', N'', N'', N'', N'3', N'1', N''), (N'421083', N'4210', N'00,42,4210', N'洪湖市', N'42', N'湖北省', N'4210', N'荆州市', N'421083', N'洪湖市', N'', N'', N'', N'', N'3', N'1', N''), (N'421087', N'4210', N'00,42,4210', N'松滋市', N'42', N'湖北省', N'4210', N'荆州市', N'421087', N'松滋市', N'', N'', N'', N'', N'3', N'1', N''), (N'4211', N'42', N'00,42', N'黄冈市', N'42', N'湖北省', N'4211', N'黄冈市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421102', N'4211', N'00,42,4211', N'黄州区', N'42', N'湖北省', N'4211', N'黄冈市', N'421102', N'黄州区', N'', N'', N'', N'', N'3', N'1', N''), (N'421121', N'4211', N'00,42,4211', N'团风县', N'42', N'湖北省', N'4211', N'黄冈市', N'421121', N'团风县', N'', N'', N'', N'', N'3', N'1', N''), (N'421122', N'4211', N'00,42,4211', N'红安县', N'42', N'湖北省', N'4211', N'黄冈市', N'421122', N'红安县', N'', N'', N'', N'', N'3', N'1', N''), (N'421123', N'4211', N'00,42,4211', N'罗田县', N'42', N'湖北省', N'4211', N'黄冈市', N'421123', N'罗田县', N'', N'', N'', N'', N'3', N'1', N''), (N'421124', N'4211', N'00,42,4211', N'英山县', N'42', N'湖北省', N'4211', N'黄冈市', N'421124', N'英山县', N'', N'', N'', N'', N'3', N'1', N''), (N'421125', N'4211', N'00,42,4211', N'浠水县', N'42', N'湖北省', N'4211', N'黄冈市', N'421125', N'浠水县', N'', N'', N'', N'', N'3', N'1', N''), (N'421126', N'4211', N'00,42,4211', N'蕲春县', N'42', N'湖北省', N'4211', N'黄冈市', N'421126', N'蕲春县', N'', N'', N'', N'', N'3', N'1', N''), (N'421127', N'4211', N'00,42,4211', N'黄梅县', N'42', N'湖北省', N'4211', N'黄冈市', N'421127', N'黄梅县', N'', N'', N'', N'', N'3', N'1', N''), (N'421181', N'4211', N'00,42,4211', N'麻城市', N'42', N'湖北省', N'4211', N'黄冈市', N'421181', N'麻城市', N'', N'', N'', N'', N'3', N'1', N''), (N'421182', N'4211', N'00,42,4211', N'武穴市', N'42', N'湖北省', N'4211', N'黄冈市', N'421182', N'武穴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4212', N'42', N'00,42', N'咸宁市', N'42', N'湖北省', N'4212', N'咸宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421202', N'4212', N'00,42,4212', N'咸安区', N'42', N'湖北省', N'4212', N'咸宁市', N'421202', N'咸安区', N'', N'', N'', N'', N'3', N'1', N''), (N'421221', N'4212', N'00,42,4212', N'嘉鱼县', N'42', N'湖北省', N'4212', N'咸宁市', N'421221', N'嘉鱼县', N'', N'', N'', N'', N'3', N'1', N''), (N'421222', N'4212', N'00,42,4212', N'通城县', N'42', N'湖北省', N'4212', N'咸宁市', N'421222', N'通城县', N'', N'', N'', N'', N'3', N'1', N''), (N'421223', N'4212', N'00,42,4212', N'崇阳县', N'42', N'湖北省', N'4212', N'咸宁市', N'421223', N'崇阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'421224', N'4212', N'00,42,4212', N'通山县', N'42', N'湖北省', N'4212', N'咸宁市', N'421224', N'通山县', N'', N'', N'', N'', N'3', N'1', N''), (N'421281', N'4212', N'00,42,4212', N'赤壁市', N'42', N'湖北省', N'4212', N'咸宁市', N'421281', N'赤壁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4213', N'42', N'00,42', N'随州市', N'42', N'湖北省', N'4213', N'随州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'421303', N'4213', N'00,42,4213', N'曾都区', N'42', N'湖北省', N'4213', N'随州市', N'421303', N'曾都区', N'', N'', N'', N'', N'3', N'1', N''), (N'421321', N'4213', N'00,42,4213', N'随县', N'42', N'湖北省', N'4213', N'随州市', N'421321', N'随县', N'', N'', N'', N'', N'3', N'1', N''), (N'421381', N'4213', N'00,42,4213', N'广水市', N'42', N'湖北省', N'4213', N'随州市', N'421381', N'广水市', N'', N'', N'', N'', N'3', N'1', N''), (N'4228', N'42', N'00,42', N'恩施土家族苗族自治州', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'422801', N'4228', N'00,42,4228', N'恩施市', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422801', N'恩施市', N'', N'', N'', N'', N'3', N'1', N''), (N'422802', N'4228', N'00,42,4228', N'利川市', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422802', N'利川市', N'', N'', N'', N'', N'3', N'1', N''), (N'422822', N'4228', N'00,42,4228', N'建始县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422822', N'建始县', N'', N'', N'', N'', N'3', N'1', N''), (N'422823', N'4228', N'00,42,4228', N'巴东县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422823', N'巴东县', N'', N'', N'', N'', N'3', N'1', N''), (N'422825', N'4228', N'00,42,4228', N'宣恩县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422825', N'宣恩县', N'', N'', N'', N'', N'3', N'1', N''), (N'422826', N'4228', N'00,42,4228', N'咸丰县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422826', N'咸丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'422827', N'4228', N'00,42,4228', N'来凤县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422827', N'来凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'422828', N'4228', N'00,42,4228', N'鹤峰县', N'42', N'湖北省', N'4228', N'恩施土家族苗族自治州', N'422828', N'鹤峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'4290', N'42', N'00,42', N'省直辖县级行政区', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'429004', N'4290', N'00,42,4290', N'仙桃市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429004', N'仙桃市', N'', N'', N'', N'', N'3', N'1', N''), (N'429005', N'4290', N'00,42,4290', N'潜江市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429005', N'潜江市', N'', N'', N'', N'', N'3', N'1', N''), (N'429006', N'4290', N'00,42,4290', N'天门市', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429006', N'天门市', N'', N'', N'', N'', N'3', N'1', N''), (N'429021', N'4290', N'00,42,4290', N'神农架林区', N'42', N'湖北省', N'4290', N'省直辖县级行政区', N'429021', N'神农架林区', N'', N'', N'', N'', N'3', N'1', N''), (N'43', N'00', N'00', N'湖南省', N'43', N'湖南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4301', N'43', N'00,43', N'长沙市', N'43', N'湖南省', N'4301', N'长沙市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430102', N'4301', N'00,43,4301', N'芙蓉区', N'43', N'湖南省', N'4301', N'长沙市', N'430102', N'芙蓉区', N'', N'', N'', N'', N'3', N'1', N''), (N'430103', N'4301', N'00,43,4301', N'天心区', N'43', N'湖南省', N'4301', N'长沙市', N'430103', N'天心区', N'', N'', N'', N'', N'3', N'1', N''), (N'430104', N'4301', N'00,43,4301', N'岳麓区', N'43', N'湖南省', N'4301', N'长沙市', N'430104', N'岳麓区', N'', N'', N'', N'', N'3', N'1', N''), (N'430105', N'4301', N'00,43,4301', N'开福区', N'43', N'湖南省', N'4301', N'长沙市', N'430105', N'开福区', N'', N'', N'', N'', N'3', N'1', N''), (N'430111', N'4301', N'00,43,4301', N'雨花区', N'43', N'湖南省', N'4301', N'长沙市', N'430111', N'雨花区', N'', N'', N'', N'', N'3', N'1', N''), (N'430112', N'4301', N'00,43,4301', N'望城区', N'43', N'湖南省', N'4301', N'长沙市', N'430112', N'望城区', N'', N'', N'', N'', N'3', N'1', N''), (N'430121', N'4301', N'00,43,4301', N'长沙县', N'43', N'湖南省', N'4301', N'长沙市', N'430121', N'长沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'430181', N'4301', N'00,43,4301', N'浏阳市', N'43', N'湖南省', N'4301', N'长沙市', N'430181', N'浏阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'430182', N'4301', N'00,43,4301', N'宁乡市', N'43', N'湖南省', N'4301', N'长沙市', N'430182', N'宁乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'4302', N'43', N'00,43', N'株洲市', N'43', N'湖南省', N'4302', N'株洲市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430202', N'4302', N'00,43,4302', N'荷塘区', N'43', N'湖南省', N'4302', N'株洲市', N'430202', N'荷塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430203', N'4302', N'00,43,4302', N'芦淞区', N'43', N'湖南省', N'4302', N'株洲市', N'430203', N'芦淞区', N'', N'', N'', N'', N'3', N'1', N''), (N'430204', N'4302', N'00,43,4302', N'石峰区', N'43', N'湖南省', N'4302', N'株洲市', N'430204', N'石峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'430211', N'4302', N'00,43,4302', N'天元区', N'43', N'湖南省', N'4302', N'株洲市', N'430211', N'天元区', N'', N'', N'', N'', N'3', N'1', N''), (N'430212', N'4302', N'00,43,4302', N'渌口区', N'43', N'湖南省', N'4302', N'株洲市', N'430212', N'渌口区', N'', N'', N'', N'', N'3', N'1', N''), (N'430223', N'4302', N'00,43,4302', N'攸县', N'43', N'湖南省', N'4302', N'株洲市', N'430223', N'攸县', N'', N'', N'', N'', N'3', N'1', N''), (N'430224', N'4302', N'00,43,4302', N'茶陵县', N'43', N'湖南省', N'4302', N'株洲市', N'430224', N'茶陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430225', N'4302', N'00,43,4302', N'炎陵县', N'43', N'湖南省', N'4302', N'株洲市', N'430225', N'炎陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430281', N'4302', N'00,43,4302', N'醴陵市', N'43', N'湖南省', N'4302', N'株洲市', N'430281', N'醴陵市', N'', N'', N'', N'', N'3', N'1', N''), (N'4303', N'43', N'00,43', N'湘潭市', N'43', N'湖南省', N'4303', N'湘潭市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430302', N'4303', N'00,43,4303', N'雨湖区', N'43', N'湖南省', N'4303', N'湘潭市', N'430302', N'雨湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'430304', N'4303', N'00,43,4303', N'岳塘区', N'43', N'湖南省', N'4303', N'湘潭市', N'430304', N'岳塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430321', N'4303', N'00,43,4303', N'湘潭县', N'43', N'湖南省', N'4303', N'湘潭市', N'430321', N'湘潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'430381', N'4303', N'00,43,4303', N'湘乡市', N'43', N'湖南省', N'4303', N'湘潭市', N'430381', N'湘乡市', N'', N'', N'', N'', N'3', N'1', N''), (N'430382', N'4303', N'00,43,4303', N'韶山市', N'43', N'湖南省', N'4303', N'湘潭市', N'430382', N'韶山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4304', N'43', N'00,43', N'衡阳市', N'43', N'湖南省', N'4304', N'衡阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430405', N'4304', N'00,43,4304', N'珠晖区', N'43', N'湖南省', N'4304', N'衡阳市', N'430405', N'珠晖区', N'', N'', N'', N'', N'3', N'1', N''), (N'430406', N'4304', N'00,43,4304', N'雁峰区', N'43', N'湖南省', N'4304', N'衡阳市', N'430406', N'雁峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'430407', N'4304', N'00,43,4304', N'石鼓区', N'43', N'湖南省', N'4304', N'衡阳市', N'430407', N'石鼓区', N'', N'', N'', N'', N'3', N'1', N''), (N'430408', N'4304', N'00,43,4304', N'蒸湘区', N'43', N'湖南省', N'4304', N'衡阳市', N'430408', N'蒸湘区', N'', N'', N'', N'', N'3', N'1', N''), (N'430412', N'4304', N'00,43,4304', N'南岳区', N'43', N'湖南省', N'4304', N'衡阳市', N'430412', N'南岳区', N'', N'', N'', N'', N'3', N'1', N''), (N'430421', N'4304', N'00,43,4304', N'衡阳县', N'43', N'湖南省', N'4304', N'衡阳市', N'430421', N'衡阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430422', N'4304', N'00,43,4304', N'衡南县', N'43', N'湖南省', N'4304', N'衡阳市', N'430422', N'衡南县', N'', N'', N'', N'', N'3', N'1', N''), (N'430423', N'4304', N'00,43,4304', N'衡山县', N'43', N'湖南省', N'4304', N'衡阳市', N'430423', N'衡山县', N'', N'', N'', N'', N'3', N'1', N''), (N'430424', N'4304', N'00,43,4304', N'衡东县', N'43', N'湖南省', N'4304', N'衡阳市', N'430424', N'衡东县', N'', N'', N'', N'', N'3', N'1', N''), (N'430426', N'4304', N'00,43,4304', N'祁东县', N'43', N'湖南省', N'4304', N'衡阳市', N'430426', N'祁东县', N'', N'', N'', N'', N'3', N'1', N''), (N'430481', N'4304', N'00,43,4304', N'耒阳市', N'43', N'湖南省', N'4304', N'衡阳市', N'430481', N'耒阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'430482', N'4304', N'00,43,4304', N'常宁市', N'43', N'湖南省', N'4304', N'衡阳市', N'430482', N'常宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4305', N'43', N'00,43', N'邵阳市', N'43', N'湖南省', N'4305', N'邵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430502', N'4305', N'00,43,4305', N'双清区', N'43', N'湖南省', N'4305', N'邵阳市', N'430502', N'双清区', N'', N'', N'', N'', N'3', N'1', N''), (N'430503', N'4305', N'00,43,4305', N'大祥区', N'43', N'湖南省', N'4305', N'邵阳市', N'430503', N'大祥区', N'', N'', N'', N'', N'3', N'1', N''), (N'430511', N'4305', N'00,43,4305', N'北塔区', N'43', N'湖南省', N'4305', N'邵阳市', N'430511', N'北塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'430522', N'4305', N'00,43,4305', N'新邵县', N'43', N'湖南省', N'4305', N'邵阳市', N'430522', N'新邵县', N'', N'', N'', N'', N'3', N'1', N''), (N'430523', N'4305', N'00,43,4305', N'邵阳县', N'43', N'湖南省', N'4305', N'邵阳市', N'430523', N'邵阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430524', N'4305', N'00,43,4305', N'隆回县', N'43', N'湖南省', N'4305', N'邵阳市', N'430524', N'隆回县', N'', N'', N'', N'', N'3', N'1', N''), (N'430525', N'4305', N'00,43,4305', N'洞口县', N'43', N'湖南省', N'4305', N'邵阳市', N'430525', N'洞口县', N'', N'', N'', N'', N'3', N'1', N''), (N'430527', N'4305', N'00,43,4305', N'绥宁县', N'43', N'湖南省', N'4305', N'邵阳市', N'430527', N'绥宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'430528', N'4305', N'00,43,4305', N'新宁县', N'43', N'湖南省', N'4305', N'邵阳市', N'430528', N'新宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'430529', N'4305', N'00,43,4305', N'城步苗族自治县', N'43', N'湖南省', N'4305', N'邵阳市', N'430529', N'城步苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'430581', N'4305', N'00,43,4305', N'武冈市', N'43', N'湖南省', N'4305', N'邵阳市', N'430581', N'武冈市', N'', N'', N'', N'', N'3', N'1', N''), (N'430582', N'4305', N'00,43,4305', N'邵东市', N'43', N'湖南省', N'4305', N'邵阳市', N'430582', N'邵东市', N'', N'', N'', N'', N'3', N'1', N''), (N'4306', N'43', N'00,43', N'岳阳市', N'43', N'湖南省', N'4306', N'岳阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430602', N'4306', N'00,43,4306', N'岳阳楼区', N'43', N'湖南省', N'4306', N'岳阳市', N'430602', N'岳阳楼区', N'', N'', N'', N'', N'3', N'1', N''), (N'430603', N'4306', N'00,43,4306', N'云溪区', N'43', N'湖南省', N'4306', N'岳阳市', N'430603', N'云溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'430611', N'4306', N'00,43,4306', N'君山区', N'43', N'湖南省', N'4306', N'岳阳市', N'430611', N'君山区', N'', N'', N'', N'', N'3', N'1', N''), (N'430621', N'4306', N'00,43,4306', N'岳阳县', N'43', N'湖南省', N'4306', N'岳阳市', N'430621', N'岳阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'430623', N'4306', N'00,43,4306', N'华容县', N'43', N'湖南省', N'4306', N'岳阳市', N'430623', N'华容县', N'', N'', N'', N'', N'3', N'1', N''), (N'430624', N'4306', N'00,43,4306', N'湘阴县', N'43', N'湖南省', N'4306', N'岳阳市', N'430624', N'湘阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'430626', N'4306', N'00,43,4306', N'平江县', N'43', N'湖南省', N'4306', N'岳阳市', N'430626', N'平江县', N'', N'', N'', N'', N'3', N'1', N''), (N'430681', N'4306', N'00,43,4306', N'汨罗市', N'43', N'湖南省', N'4306', N'岳阳市', N'430681', N'汨罗市', N'', N'', N'', N'', N'3', N'1', N''), (N'430682', N'4306', N'00,43,4306', N'临湘市', N'43', N'湖南省', N'4306', N'岳阳市', N'430682', N'临湘市', N'', N'', N'', N'', N'3', N'1', N''), (N'4307', N'43', N'00,43', N'常德市', N'43', N'湖南省', N'4307', N'常德市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430702', N'4307', N'00,43,4307', N'武陵区', N'43', N'湖南省', N'4307', N'常德市', N'430702', N'武陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'430703', N'4307', N'00,43,4307', N'鼎城区', N'43', N'湖南省', N'4307', N'常德市', N'430703', N'鼎城区', N'', N'', N'', N'', N'3', N'1', N''), (N'430721', N'4307', N'00,43,4307', N'安乡县', N'43', N'湖南省', N'4307', N'常德市', N'430721', N'安乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'430722', N'4307', N'00,43,4307', N'汉寿县', N'43', N'湖南省', N'4307', N'常德市', N'430722', N'汉寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'430723', N'4307', N'00,43,4307', N'澧县', N'43', N'湖南省', N'4307', N'常德市', N'430723', N'澧县', N'', N'', N'', N'', N'3', N'1', N''), (N'430724', N'4307', N'00,43,4307', N'临澧县', N'43', N'湖南省', N'4307', N'常德市', N'430724', N'临澧县', N'', N'', N'', N'', N'3', N'1', N''), (N'430725', N'4307', N'00,43,4307', N'桃源县', N'43', N'湖南省', N'4307', N'常德市', N'430725', N'桃源县', N'', N'', N'', N'', N'3', N'1', N''), (N'430726', N'4307', N'00,43,4307', N'石门县', N'43', N'湖南省', N'4307', N'常德市', N'430726', N'石门县', N'', N'', N'', N'', N'3', N'1', N''), (N'430781', N'4307', N'00,43,4307', N'津市市', N'43', N'湖南省', N'4307', N'常德市', N'430781', N'津市市', N'', N'', N'', N'', N'3', N'1', N''), (N'4308', N'43', N'00,43', N'张家界市', N'43', N'湖南省', N'4308', N'张家界市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430802', N'4308', N'00,43,4308', N'永定区', N'43', N'湖南省', N'4308', N'张家界市', N'430802', N'永定区', N'', N'', N'', N'', N'3', N'1', N''), (N'430811', N'4308', N'00,43,4308', N'武陵源区', N'43', N'湖南省', N'4308', N'张家界市', N'430811', N'武陵源区', N'', N'', N'', N'', N'3', N'1', N''), (N'430821', N'4308', N'00,43,4308', N'慈利县', N'43', N'湖南省', N'4308', N'张家界市', N'430821', N'慈利县', N'', N'', N'', N'', N'3', N'1', N''), (N'430822', N'4308', N'00,43,4308', N'桑植县', N'43', N'湖南省', N'4308', N'张家界市', N'430822', N'桑植县', N'', N'', N'', N'', N'3', N'1', N''), (N'4309', N'43', N'00,43', N'益阳市', N'43', N'湖南省', N'4309', N'益阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'430902', N'4309', N'00,43,4309', N'资阳区', N'43', N'湖南省', N'4309', N'益阳市', N'430902', N'资阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'430903', N'4309', N'00,43,4309', N'赫山区', N'43', N'湖南省', N'4309', N'益阳市', N'430903', N'赫山区', N'', N'', N'', N'', N'3', N'1', N''), (N'430921', N'4309', N'00,43,4309', N'南县', N'43', N'湖南省', N'4309', N'益阳市', N'430921', N'南县', N'', N'', N'', N'', N'3', N'1', N''), (N'430922', N'4309', N'00,43,4309', N'桃江县', N'43', N'湖南省', N'4309', N'益阳市', N'430922', N'桃江县', N'', N'', N'', N'', N'3', N'1', N''), (N'430923', N'4309', N'00,43,4309', N'安化县', N'43', N'湖南省', N'4309', N'益阳市', N'430923', N'安化县', N'', N'', N'', N'', N'3', N'1', N''), (N'430981', N'4309', N'00,43,4309', N'沅江市', N'43', N'湖南省', N'4309', N'益阳市', N'430981', N'沅江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4310', N'43', N'00,43', N'郴州市', N'43', N'湖南省', N'4310', N'郴州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431002', N'4310', N'00,43,4310', N'北湖区', N'43', N'湖南省', N'4310', N'郴州市', N'431002', N'北湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'431003', N'4310', N'00,43,4310', N'苏仙区', N'43', N'湖南省', N'4310', N'郴州市', N'431003', N'苏仙区', N'', N'', N'', N'', N'3', N'1', N''), (N'431021', N'4310', N'00,43,4310', N'桂阳县', N'43', N'湖南省', N'4310', N'郴州市', N'431021', N'桂阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'431022', N'4310', N'00,43,4310', N'宜章县', N'43', N'湖南省', N'4310', N'郴州市', N'431022', N'宜章县', N'', N'', N'', N'', N'3', N'1', N''), (N'431023', N'4310', N'00,43,4310', N'永兴县', N'43', N'湖南省', N'4310', N'郴州市', N'431023', N'永兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'431024', N'4310', N'00,43,4310', N'嘉禾县', N'43', N'湖南省', N'4310', N'郴州市', N'431024', N'嘉禾县', N'', N'', N'', N'', N'3', N'1', N''), (N'431025', N'4310', N'00,43,4310', N'临武县', N'43', N'湖南省', N'4310', N'郴州市', N'431025', N'临武县', N'', N'', N'', N'', N'3', N'1', N''), (N'431026', N'4310', N'00,43,4310', N'汝城县', N'43', N'湖南省', N'4310', N'郴州市', N'431026', N'汝城县', N'', N'', N'', N'', N'3', N'1', N''), (N'431027', N'4310', N'00,43,4310', N'桂东县', N'43', N'湖南省', N'4310', N'郴州市', N'431027', N'桂东县', N'', N'', N'', N'', N'3', N'1', N''), (N'431028', N'4310', N'00,43,4310', N'安仁县', N'43', N'湖南省', N'4310', N'郴州市', N'431028', N'安仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'431081', N'4310', N'00,43,4310', N'资兴市', N'43', N'湖南省', N'4310', N'郴州市', N'431081', N'资兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4311', N'43', N'00,43', N'永州市', N'43', N'湖南省', N'4311', N'永州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431102', N'4311', N'00,43,4311', N'零陵区', N'43', N'湖南省', N'4311', N'永州市', N'431102', N'零陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'431103', N'4311', N'00,43,4311', N'冷水滩区', N'43', N'湖南省', N'4311', N'永州市', N'431103', N'冷水滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'431121', N'4311', N'00,43,4311', N'祁阳县', N'43', N'湖南省', N'4311', N'永州市', N'431121', N'祁阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'431122', N'4311', N'00,43,4311', N'东安县', N'43', N'湖南省', N'4311', N'永州市', N'431122', N'东安县', N'', N'', N'', N'', N'3', N'1', N''), (N'431123', N'4311', N'00,43,4311', N'双牌县', N'43', N'湖南省', N'4311', N'永州市', N'431123', N'双牌县', N'', N'', N'', N'', N'3', N'1', N''), (N'431124', N'4311', N'00,43,4311', N'道县', N'43', N'湖南省', N'4311', N'永州市', N'431124', N'道县', N'', N'', N'', N'', N'3', N'1', N''), (N'431125', N'4311', N'00,43,4311', N'江永县', N'43', N'湖南省', N'4311', N'永州市', N'431125', N'江永县', N'', N'', N'', N'', N'3', N'1', N''), (N'431126', N'4311', N'00,43,4311', N'宁远县', N'43', N'湖南省', N'4311', N'永州市', N'431126', N'宁远县', N'', N'', N'', N'', N'3', N'1', N''), (N'431127', N'4311', N'00,43,4311', N'蓝山县', N'43', N'湖南省', N'4311', N'永州市', N'431127', N'蓝山县', N'', N'', N'', N'', N'3', N'1', N''), (N'431128', N'4311', N'00,43,4311', N'新田县', N'43', N'湖南省', N'4311', N'永州市', N'431128', N'新田县', N'', N'', N'', N'', N'3', N'1', N''), (N'431129', N'4311', N'00,43,4311', N'江华瑶族自治县', N'43', N'湖南省', N'4311', N'永州市', N'431129', N'江华瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4312', N'43', N'00,43', N'怀化市', N'43', N'湖南省', N'4312', N'怀化市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431202', N'4312', N'00,43,4312', N'鹤城区', N'43', N'湖南省', N'4312', N'怀化市', N'431202', N'鹤城区', N'', N'', N'', N'', N'3', N'1', N''), (N'431221', N'4312', N'00,43,4312', N'中方县', N'43', N'湖南省', N'4312', N'怀化市', N'431221', N'中方县', N'', N'', N'', N'', N'3', N'1', N''), (N'431222', N'4312', N'00,43,4312', N'沅陵县', N'43', N'湖南省', N'4312', N'怀化市', N'431222', N'沅陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'431223', N'4312', N'00,43,4312', N'辰溪县', N'43', N'湖南省', N'4312', N'怀化市', N'431223', N'辰溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'431224', N'4312', N'00,43,4312', N'溆浦县', N'43', N'湖南省', N'4312', N'怀化市', N'431224', N'溆浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'431225', N'4312', N'00,43,4312', N'会同县', N'43', N'湖南省', N'4312', N'怀化市', N'431225', N'会同县', N'', N'', N'', N'', N'3', N'1', N''), (N'431226', N'4312', N'00,43,4312', N'麻阳苗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431226', N'麻阳苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431227', N'4312', N'00,43,4312', N'新晃侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431227', N'新晃侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431228', N'4312', N'00,43,4312', N'芷江侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431228', N'芷江侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431229', N'4312', N'00,43,4312', N'靖州苗族侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431229', N'靖州苗族侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431230', N'4312', N'00,43,4312', N'通道侗族自治县', N'43', N'湖南省', N'4312', N'怀化市', N'431230', N'通道侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'431281', N'4312', N'00,43,4312', N'洪江市', N'43', N'湖南省', N'4312', N'怀化市', N'431281', N'洪江市', N'', N'', N'', N'', N'3', N'1', N''), (N'4313', N'43', N'00,43', N'娄底市', N'43', N'湖南省', N'4313', N'娄底市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'431302', N'4313', N'00,43,4313', N'娄星区', N'43', N'湖南省', N'4313', N'娄底市', N'431302', N'娄星区', N'', N'', N'', N'', N'3', N'1', N''), (N'431321', N'4313', N'00,43,4313', N'双峰县', N'43', N'湖南省', N'4313', N'娄底市', N'431321', N'双峰县', N'', N'', N'', N'', N'3', N'1', N''), (N'431322', N'4313', N'00,43,4313', N'新化县', N'43', N'湖南省', N'4313', N'娄底市', N'431322', N'新化县', N'', N'', N'', N'', N'3', N'1', N''), (N'431381', N'4313', N'00,43,4313', N'冷水江市', N'43', N'湖南省', N'4313', N'娄底市', N'431381', N'冷水江市', N'', N'', N'', N'', N'3', N'1', N''), (N'431382', N'4313', N'00,43,4313', N'涟源市', N'43', N'湖南省', N'4313', N'娄底市', N'431382', N'涟源市', N'', N'', N'', N'', N'3', N'1', N''), (N'4331', N'43', N'00,43', N'湘西土家族苗族自治州', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'433101', N'4331', N'00,43,4331', N'吉首市', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433101', N'吉首市', N'', N'', N'', N'', N'3', N'1', N''), (N'433122', N'4331', N'00,43,4331', N'泸溪县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433122', N'泸溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'433123', N'4331', N'00,43,4331', N'凤凰县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433123', N'凤凰县', N'', N'', N'', N'', N'3', N'1', N''), (N'433124', N'4331', N'00,43,4331', N'花垣县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433124', N'花垣县', N'', N'', N'', N'', N'3', N'1', N''), (N'433125', N'4331', N'00,43,4331', N'保靖县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433125', N'保靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'433126', N'4331', N'00,43,4331', N'古丈县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433126', N'古丈县', N'', N'', N'', N'', N'3', N'1', N''), (N'433127', N'4331', N'00,43,4331', N'永顺县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433127', N'永顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'433130', N'4331', N'00,43,4331', N'龙山县', N'43', N'湖南省', N'4331', N'湘西土家族苗族自治州', N'433130', N'龙山县', N'', N'', N'', N'', N'3', N'1', N''), (N'44', N'00', N'00', N'广东省', N'44', N'广东省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4401', N'44', N'00,44', N'广州市', N'44', N'广东省', N'4401', N'广州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440103', N'4401', N'00,44,4401', N'荔湾区', N'44', N'广东省', N'4401', N'广州市', N'440103', N'荔湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'440104', N'4401', N'00,44,4401', N'越秀区', N'44', N'广东省', N'4401', N'广州市', N'440104', N'越秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'440105', N'4401', N'00,44,4401', N'海珠区', N'44', N'广东省', N'4401', N'广州市', N'440105', N'海珠区', N'', N'', N'', N'', N'3', N'1', N''), (N'440106', N'4401', N'00,44,4401', N'天河区', N'44', N'广东省', N'4401', N'广州市', N'440106', N'天河区', N'', N'', N'', N'', N'3', N'1', N''), (N'440111', N'4401', N'00,44,4401', N'白云区', N'44', N'广东省', N'4401', N'广州市', N'440111', N'白云区', N'', N'', N'', N'', N'3', N'1', N''), (N'440112', N'4401', N'00,44,4401', N'黄埔区', N'44', N'广东省', N'4401', N'广州市', N'440112', N'黄埔区', N'', N'', N'', N'', N'3', N'1', N''), (N'440113', N'4401', N'00,44,4401', N'番禺区', N'44', N'广东省', N'4401', N'广州市', N'440113', N'番禺区', N'', N'', N'', N'', N'3', N'1', N''), (N'440114', N'4401', N'00,44,4401', N'花都区', N'44', N'广东省', N'4401', N'广州市', N'440114', N'花都区', N'', N'', N'', N'', N'3', N'1', N''), (N'440115', N'4401', N'00,44,4401', N'南沙区', N'44', N'广东省', N'4401', N'广州市', N'440115', N'南沙区', N'', N'', N'', N'', N'3', N'1', N''), (N'440117', N'4401', N'00,44,4401', N'从化区', N'44', N'广东省', N'4401', N'广州市', N'440117', N'从化区', N'', N'', N'', N'', N'3', N'1', N''), (N'440118', N'4401', N'00,44,4401', N'增城区', N'44', N'广东省', N'4401', N'广州市', N'440118', N'增城区', N'', N'', N'', N'', N'3', N'1', N''), (N'4402', N'44', N'00,44', N'韶关市', N'44', N'广东省', N'4402', N'韶关市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440203', N'4402', N'00,44,4402', N'武江区', N'44', N'广东省', N'4402', N'韶关市', N'440203', N'武江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440204', N'4402', N'00,44,4402', N'浈江区', N'44', N'广东省', N'4402', N'韶关市', N'440204', N'浈江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440205', N'4402', N'00,44,4402', N'曲江区', N'44', N'广东省', N'4402', N'韶关市', N'440205', N'曲江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440222', N'4402', N'00,44,4402', N'始兴县', N'44', N'广东省', N'4402', N'韶关市', N'440222', N'始兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'440224', N'4402', N'00,44,4402', N'仁化县', N'44', N'广东省', N'4402', N'韶关市', N'440224', N'仁化县', N'', N'', N'', N'', N'3', N'1', N''), (N'440229', N'4402', N'00,44,4402', N'翁源县', N'44', N'广东省', N'4402', N'韶关市', N'440229', N'翁源县', N'', N'', N'', N'', N'3', N'1', N''), (N'440232', N'4402', N'00,44,4402', N'乳源瑶族自治县', N'44', N'广东省', N'4402', N'韶关市', N'440232', N'乳源瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'440233', N'4402', N'00,44,4402', N'新丰县', N'44', N'广东省', N'4402', N'韶关市', N'440233', N'新丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'440281', N'4402', N'00,44,4402', N'乐昌市', N'44', N'广东省', N'4402', N'韶关市', N'440281', N'乐昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'440282', N'4402', N'00,44,4402', N'南雄市', N'44', N'广东省', N'4402', N'韶关市', N'440282', N'南雄市', N'', N'', N'', N'', N'3', N'1', N''), (N'4403', N'44', N'00,44', N'深圳市', N'44', N'广东省', N'4403', N'深圳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440303', N'4403', N'00,44,4403', N'罗湖区', N'44', N'广东省', N'4403', N'深圳市', N'440303', N'罗湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'440304', N'4403', N'00,44,4403', N'福田区', N'44', N'广东省', N'4403', N'深圳市', N'440304', N'福田区', N'', N'', N'', N'', N'3', N'1', N''), (N'440305', N'4403', N'00,44,4403', N'南山区', N'44', N'广东省', N'4403', N'深圳市', N'440305', N'南山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440306', N'4403', N'00,44,4403', N'宝安区', N'44', N'广东省', N'4403', N'深圳市', N'440306', N'宝安区', N'', N'', N'', N'', N'3', N'1', N''), (N'440307', N'4403', N'00,44,4403', N'龙岗区', N'44', N'广东省', N'4403', N'深圳市', N'440307', N'龙岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'440308', N'4403', N'00,44,4403', N'盐田区', N'44', N'广东省', N'4403', N'深圳市', N'440308', N'盐田区', N'', N'', N'', N'', N'3', N'1', N''), (N'440309', N'4403', N'00,44,4403', N'龙华区', N'44', N'广东省', N'4403', N'深圳市', N'440309', N'龙华区', N'', N'', N'', N'', N'3', N'1', N''), (N'440310', N'4403', N'00,44,4403', N'坪山区', N'44', N'广东省', N'4403', N'深圳市', N'440310', N'坪山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440311', N'4403', N'00,44,4403', N'光明区', N'44', N'广东省', N'4403', N'深圳市', N'440311', N'光明区', N'', N'', N'', N'', N'3', N'1', N''), (N'4404', N'44', N'00,44', N'珠海市', N'44', N'广东省', N'4404', N'珠海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440402', N'4404', N'00,44,4404', N'香洲区', N'44', N'广东省', N'4404', N'珠海市', N'440402', N'香洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'440403', N'4404', N'00,44,4404', N'斗门区', N'44', N'广东省', N'4404', N'珠海市', N'440403', N'斗门区', N'', N'', N'', N'', N'3', N'1', N''), (N'440404', N'4404', N'00,44,4404', N'金湾区', N'44', N'广东省', N'4404', N'珠海市', N'440404', N'金湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'4405', N'44', N'00,44', N'汕头市', N'44', N'广东省', N'4405', N'汕头市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440507', N'4405', N'00,44,4405', N'龙湖区', N'44', N'广东省', N'4405', N'汕头市', N'440507', N'龙湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'440511', N'4405', N'00,44,4405', N'金平区', N'44', N'广东省', N'4405', N'汕头市', N'440511', N'金平区', N'', N'', N'', N'', N'3', N'1', N''), (N'440512', N'4405', N'00,44,4405', N'濠江区', N'44', N'广东省', N'4405', N'汕头市', N'440512', N'濠江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440513', N'4405', N'00,44,4405', N'潮阳区', N'44', N'广东省', N'4405', N'汕头市', N'440513', N'潮阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'440514', N'4405', N'00,44,4405', N'潮南区', N'44', N'广东省', N'4405', N'汕头市', N'440514', N'潮南区', N'', N'', N'', N'', N'3', N'1', N''), (N'440515', N'4405', N'00,44,4405', N'澄海区', N'44', N'广东省', N'4405', N'汕头市', N'440515', N'澄海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440523', N'4405', N'00,44,4405', N'南澳县', N'44', N'广东省', N'4405', N'汕头市', N'440523', N'南澳县', N'', N'', N'', N'', N'3', N'1', N''), (N'4406', N'44', N'00,44', N'佛山市', N'44', N'广东省', N'4406', N'佛山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440604', N'4406', N'00,44,4406', N'禅城区', N'44', N'广东省', N'4406', N'佛山市', N'440604', N'禅城区', N'', N'', N'', N'', N'3', N'1', N''), (N'440605', N'4406', N'00,44,4406', N'南海区', N'44', N'广东省', N'4406', N'佛山市', N'440605', N'南海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440606', N'4406', N'00,44,4406', N'顺德区', N'44', N'广东省', N'4406', N'佛山市', N'440606', N'顺德区', N'', N'', N'', N'', N'3', N'1', N''), (N'440607', N'4406', N'00,44,4406', N'三水区', N'44', N'广东省', N'4406', N'佛山市', N'440607', N'三水区', N'', N'', N'', N'', N'3', N'1', N''), (N'440608', N'4406', N'00,44,4406', N'高明区', N'44', N'广东省', N'4406', N'佛山市', N'440608', N'高明区', N'', N'', N'', N'', N'3', N'1', N''), (N'4407', N'44', N'00,44', N'江门市', N'44', N'广东省', N'4407', N'江门市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440703', N'4407', N'00,44,4407', N'蓬江区', N'44', N'广东省', N'4407', N'江门市', N'440703', N'蓬江区', N'', N'', N'', N'', N'3', N'1', N''), (N'440704', N'4407', N'00,44,4407', N'江海区', N'44', N'广东省', N'4407', N'江门市', N'440704', N'江海区', N'', N'', N'', N'', N'3', N'1', N''), (N'440705', N'4407', N'00,44,4407', N'新会区', N'44', N'广东省', N'4407', N'江门市', N'440705', N'新会区', N'', N'', N'', N'', N'3', N'1', N''), (N'440781', N'4407', N'00,44,4407', N'台山市', N'44', N'广东省', N'4407', N'江门市', N'440781', N'台山市', N'', N'', N'', N'', N'3', N'1', N''), (N'440783', N'4407', N'00,44,4407', N'开平市', N'44', N'广东省', N'4407', N'江门市', N'440783', N'开平市', N'', N'', N'', N'', N'3', N'1', N''), (N'440784', N'4407', N'00,44,4407', N'鹤山市', N'44', N'广东省', N'4407', N'江门市', N'440784', N'鹤山市', N'', N'', N'', N'', N'3', N'1', N''), (N'440785', N'4407', N'00,44,4407', N'恩平市', N'44', N'广东省', N'4407', N'江门市', N'440785', N'恩平市', N'', N'', N'', N'', N'3', N'1', N''), (N'4408', N'44', N'00,44', N'湛江市', N'44', N'广东省', N'4408', N'湛江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440802', N'4408', N'00,44,4408', N'赤坎区', N'44', N'广东省', N'4408', N'湛江市', N'440802', N'赤坎区', N'', N'', N'', N'', N'3', N'1', N''), (N'440803', N'4408', N'00,44,4408', N'霞山区', N'44', N'广东省', N'4408', N'湛江市', N'440803', N'霞山区', N'', N'', N'', N'', N'3', N'1', N''), (N'440804', N'4408', N'00,44,4408', N'坡头区', N'44', N'广东省', N'4408', N'湛江市', N'440804', N'坡头区', N'', N'', N'', N'', N'3', N'1', N''), (N'440811', N'4408', N'00,44,4408', N'麻章区', N'44', N'广东省', N'4408', N'湛江市', N'440811', N'麻章区', N'', N'', N'', N'', N'3', N'1', N''), (N'440823', N'4408', N'00,44,4408', N'遂溪县', N'44', N'广东省', N'4408', N'湛江市', N'440823', N'遂溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'440825', N'4408', N'00,44,4408', N'徐闻县', N'44', N'广东省', N'4408', N'湛江市', N'440825', N'徐闻县', N'', N'', N'', N'', N'3', N'1', N''), (N'440881', N'4408', N'00,44,4408', N'廉江市', N'44', N'广东省', N'4408', N'湛江市', N'440881', N'廉江市', N'', N'', N'', N'', N'3', N'1', N''), (N'440882', N'4408', N'00,44,4408', N'雷州市', N'44', N'广东省', N'4408', N'湛江市', N'440882', N'雷州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440883', N'4408', N'00,44,4408', N'吴川市', N'44', N'广东省', N'4408', N'湛江市', N'440883', N'吴川市', N'', N'', N'', N'', N'3', N'1', N''), (N'4409', N'44', N'00,44', N'茂名市', N'44', N'广东省', N'4409', N'茂名市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'440902', N'4409', N'00,44,4409', N'茂南区', N'44', N'广东省', N'4409', N'茂名市', N'440902', N'茂南区', N'', N'', N'', N'', N'3', N'1', N''), (N'440904', N'4409', N'00,44,4409', N'电白区', N'44', N'广东省', N'4409', N'茂名市', N'440904', N'电白区', N'', N'', N'', N'', N'3', N'1', N''), (N'440981', N'4409', N'00,44,4409', N'高州市', N'44', N'广东省', N'4409', N'茂名市', N'440981', N'高州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440982', N'4409', N'00,44,4409', N'化州市', N'44', N'广东省', N'4409', N'茂名市', N'440982', N'化州市', N'', N'', N'', N'', N'3', N'1', N''), (N'440983', N'4409', N'00,44,4409', N'信宜市', N'44', N'广东省', N'4409', N'茂名市', N'440983', N'信宜市', N'', N'', N'', N'', N'3', N'1', N''), (N'4412', N'44', N'00,44', N'肇庆市', N'44', N'广东省', N'4412', N'肇庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441202', N'4412', N'00,44,4412', N'端州区', N'44', N'广东省', N'4412', N'肇庆市', N'441202', N'端州区', N'', N'', N'', N'', N'3', N'1', N''), (N'441203', N'4412', N'00,44,4412', N'鼎湖区', N'44', N'广东省', N'4412', N'肇庆市', N'441203', N'鼎湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'441204', N'4412', N'00,44,4412', N'高要区', N'44', N'广东省', N'4412', N'肇庆市', N'441204', N'高要区', N'', N'', N'', N'', N'3', N'1', N''), (N'441223', N'4412', N'00,44,4412', N'广宁县', N'44', N'广东省', N'4412', N'肇庆市', N'441223', N'广宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'441224', N'4412', N'00,44,4412', N'怀集县', N'44', N'广东省', N'4412', N'肇庆市', N'441224', N'怀集县', N'', N'', N'', N'', N'3', N'1', N''), (N'441225', N'4412', N'00,44,4412', N'封开县', N'44', N'广东省', N'4412', N'肇庆市', N'441225', N'封开县', N'', N'', N'', N'', N'3', N'1', N''), (N'441226', N'4412', N'00,44,4412', N'德庆县', N'44', N'广东省', N'4412', N'肇庆市', N'441226', N'德庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'441284', N'4412', N'00,44,4412', N'四会市', N'44', N'广东省', N'4412', N'肇庆市', N'441284', N'四会市', N'', N'', N'', N'', N'3', N'1', N''), (N'4413', N'44', N'00,44', N'惠州市', N'44', N'广东省', N'4413', N'惠州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441302', N'4413', N'00,44,4413', N'惠城区', N'44', N'广东省', N'4413', N'惠州市', N'441302', N'惠城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441303', N'4413', N'00,44,4413', N'惠阳区', N'44', N'广东省', N'4413', N'惠州市', N'441303', N'惠阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'441322', N'4413', N'00,44,4413', N'博罗县', N'44', N'广东省', N'4413', N'惠州市', N'441322', N'博罗县', N'', N'', N'', N'', N'3', N'1', N''), (N'441323', N'4413', N'00,44,4413', N'惠东县', N'44', N'广东省', N'4413', N'惠州市', N'441323', N'惠东县', N'', N'', N'', N'', N'3', N'1', N''), (N'441324', N'4413', N'00,44,4413', N'龙门县', N'44', N'广东省', N'4413', N'惠州市', N'441324', N'龙门县', N'', N'', N'', N'', N'3', N'1', N''), (N'4414', N'44', N'00,44', N'梅州市', N'44', N'广东省', N'4414', N'梅州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441402', N'4414', N'00,44,4414', N'梅江区', N'44', N'广东省', N'4414', N'梅州市', N'441402', N'梅江区', N'', N'', N'', N'', N'3', N'1', N''), (N'441403', N'4414', N'00,44,4414', N'梅县区', N'44', N'广东省', N'4414', N'梅州市', N'441403', N'梅县区', N'', N'', N'', N'', N'3', N'1', N''), (N'441422', N'4414', N'00,44,4414', N'大埔县', N'44', N'广东省', N'4414', N'梅州市', N'441422', N'大埔县', N'', N'', N'', N'', N'3', N'1', N''), (N'441423', N'4414', N'00,44,4414', N'丰顺县', N'44', N'广东省', N'4414', N'梅州市', N'441423', N'丰顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'441424', N'4414', N'00,44,4414', N'五华县', N'44', N'广东省', N'4414', N'梅州市', N'441424', N'五华县', N'', N'', N'', N'', N'3', N'1', N''), (N'441426', N'4414', N'00,44,4414', N'平远县', N'44', N'广东省', N'4414', N'梅州市', N'441426', N'平远县', N'', N'', N'', N'', N'3', N'1', N''), (N'441427', N'4414', N'00,44,4414', N'蕉岭县', N'44', N'广东省', N'4414', N'梅州市', N'441427', N'蕉岭县', N'', N'', N'', N'', N'3', N'1', N''), (N'441481', N'4414', N'00,44,4414', N'兴宁市', N'44', N'广东省', N'4414', N'梅州市', N'441481', N'兴宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4415', N'44', N'00,44', N'汕尾市', N'44', N'广东省', N'4415', N'汕尾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441502', N'4415', N'00,44,4415', N'城区', N'44', N'广东省', N'4415', N'汕尾市', N'441502', N'城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441521', N'4415', N'00,44,4415', N'海丰县', N'44', N'广东省', N'4415', N'汕尾市', N'441521', N'海丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'441523', N'4415', N'00,44,4415', N'陆河县', N'44', N'广东省', N'4415', N'汕尾市', N'441523', N'陆河县', N'', N'', N'', N'', N'3', N'1', N''), (N'441581', N'4415', N'00,44,4415', N'陆丰市', N'44', N'广东省', N'4415', N'汕尾市', N'441581', N'陆丰市', N'', N'', N'', N'', N'3', N'1', N''), (N'4416', N'44', N'00,44', N'河源市', N'44', N'广东省', N'4416', N'河源市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441602', N'4416', N'00,44,4416', N'源城区', N'44', N'广东省', N'4416', N'河源市', N'441602', N'源城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441621', N'4416', N'00,44,4416', N'紫金县', N'44', N'广东省', N'4416', N'河源市', N'441621', N'紫金县', N'', N'', N'', N'', N'3', N'1', N''), (N'441622', N'4416', N'00,44,4416', N'龙川县', N'44', N'广东省', N'4416', N'河源市', N'441622', N'龙川县', N'', N'', N'', N'', N'3', N'1', N''), (N'441623', N'4416', N'00,44,4416', N'连平县', N'44', N'广东省', N'4416', N'河源市', N'441623', N'连平县', N'', N'', N'', N'', N'3', N'1', N''), (N'441624', N'4416', N'00,44,4416', N'和平县', N'44', N'广东省', N'4416', N'河源市', N'441624', N'和平县', N'', N'', N'', N'', N'3', N'1', N''), (N'441625', N'4416', N'00,44,4416', N'东源县', N'44', N'广东省', N'4416', N'河源市', N'441625', N'东源县', N'', N'', N'', N'', N'3', N'1', N''), (N'4417', N'44', N'00,44', N'阳江市', N'44', N'广东省', N'4417', N'阳江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441702', N'4417', N'00,44,4417', N'江城区', N'44', N'广东省', N'4417', N'阳江市', N'441702', N'江城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441704', N'4417', N'00,44,4417', N'阳东区', N'44', N'广东省', N'4417', N'阳江市', N'441704', N'阳东区', N'', N'', N'', N'', N'3', N'1', N''), (N'441721', N'4417', N'00,44,4417', N'阳西县', N'44', N'广东省', N'4417', N'阳江市', N'441721', N'阳西县', N'', N'', N'', N'', N'3', N'1', N''), (N'441781', N'4417', N'00,44,4417', N'阳春市', N'44', N'广东省', N'4417', N'阳江市', N'441781', N'阳春市', N'', N'', N'', N'', N'3', N'1', N''), (N'4418', N'44', N'00,44', N'清远市', N'44', N'广东省', N'4418', N'清远市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441802', N'4418', N'00,44,4418', N'清城区', N'44', N'广东省', N'4418', N'清远市', N'441802', N'清城区', N'', N'', N'', N'', N'3', N'1', N''), (N'441803', N'4418', N'00,44,4418', N'清新区', N'44', N'广东省', N'4418', N'清远市', N'441803', N'清新区', N'', N'', N'', N'', N'3', N'1', N''), (N'441821', N'4418', N'00,44,4418', N'佛冈县', N'44', N'广东省', N'4418', N'清远市', N'441821', N'佛冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'441823', N'4418', N'00,44,4418', N'阳山县', N'44', N'广东省', N'4418', N'清远市', N'441823', N'阳山县', N'', N'', N'', N'', N'3', N'1', N''), (N'441825', N'4418', N'00,44,4418', N'连山壮族瑶族自治县', N'44', N'广东省', N'4418', N'清远市', N'441825', N'连山壮族瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'441826', N'4418', N'00,44,4418', N'连南瑶族自治县', N'44', N'广东省', N'4418', N'清远市', N'441826', N'连南瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'441881', N'4418', N'00,44,4418', N'英德市', N'44', N'广东省', N'4418', N'清远市', N'441881', N'英德市', N'', N'', N'', N'', N'3', N'1', N''), (N'441882', N'4418', N'00,44,4418', N'连州市', N'44', N'广东省', N'4418', N'清远市', N'441882', N'连州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4419', N'44', N'00,44', N'东莞市', N'44', N'广东省', N'4419', N'东莞市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'441900', N'4419', N'00,44,4419', N'东莞市', N'44', N'广东省', N'4419', N'东莞市', N'441900', N'东莞市', N'', N'', N'', N'', N'3', N'1', N''), (N'4420', N'44', N'00,44', N'中山市', N'44', N'广东省', N'4420', N'中山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'442000', N'4420', N'00,44,4420', N'中山市', N'44', N'广东省', N'4420', N'中山市', N'442000', N'中山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4451', N'44', N'00,44', N'潮州市', N'44', N'广东省', N'4451', N'潮州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445102', N'4451', N'00,44,4451', N'湘桥区', N'44', N'广东省', N'4451', N'潮州市', N'445102', N'湘桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'445103', N'4451', N'00,44,4451', N'潮安区', N'44', N'广东省', N'4451', N'潮州市', N'445103', N'潮安区', N'', N'', N'', N'', N'3', N'1', N''), (N'445122', N'4451', N'00,44,4451', N'饶平县', N'44', N'广东省', N'4451', N'潮州市', N'445122', N'饶平县', N'', N'', N'', N'', N'3', N'1', N''), (N'4452', N'44', N'00,44', N'揭阳市', N'44', N'广东省', N'4452', N'揭阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445202', N'4452', N'00,44,4452', N'榕城区', N'44', N'广东省', N'4452', N'揭阳市', N'445202', N'榕城区', N'', N'', N'', N'', N'3', N'1', N''), (N'445203', N'4452', N'00,44,4452', N'揭东区', N'44', N'广东省', N'4452', N'揭阳市', N'445203', N'揭东区', N'', N'', N'', N'', N'3', N'1', N''), (N'445222', N'4452', N'00,44,4452', N'揭西县', N'44', N'广东省', N'4452', N'揭阳市', N'445222', N'揭西县', N'', N'', N'', N'', N'3', N'1', N''), (N'445224', N'4452', N'00,44,4452', N'惠来县', N'44', N'广东省', N'4452', N'揭阳市', N'445224', N'惠来县', N'', N'', N'', N'', N'3', N'1', N''), (N'445281', N'4452', N'00,44,4452', N'普宁市', N'44', N'广东省', N'4452', N'揭阳市', N'445281', N'普宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'4453', N'44', N'00,44', N'云浮市', N'44', N'广东省', N'4453', N'云浮市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'445302', N'4453', N'00,44,4453', N'云城区', N'44', N'广东省', N'4453', N'云浮市', N'445302', N'云城区', N'', N'', N'', N'', N'3', N'1', N''), (N'445303', N'4453', N'00,44,4453', N'云安区', N'44', N'广东省', N'4453', N'云浮市', N'445303', N'云安区', N'', N'', N'', N'', N'3', N'1', N''), (N'445321', N'4453', N'00,44,4453', N'新兴县', N'44', N'广东省', N'4453', N'云浮市', N'445321', N'新兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'445322', N'4453', N'00,44,4453', N'郁南县', N'44', N'广东省', N'4453', N'云浮市', N'445322', N'郁南县', N'', N'', N'', N'', N'3', N'1', N''), (N'445381', N'4453', N'00,44,4453', N'罗定市', N'44', N'广东省', N'4453', N'云浮市', N'445381', N'罗定市', N'', N'', N'', N'', N'3', N'1', N''), (N'45', N'00', N'00', N'广西壮族自治区', N'45', N'广西壮族自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4501', N'45', N'00,45', N'南宁市', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450102', N'4501', N'00,45,4501', N'兴宁区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450102', N'兴宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'450103', N'4501', N'00,45,4501', N'青秀区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450103', N'青秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'450105', N'4501', N'00,45,4501', N'江南区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450105', N'江南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450107', N'4501', N'00,45,4501', N'西乡塘区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450107', N'西乡塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'450108', N'4501', N'00,45,4501', N'良庆区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450108', N'良庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'450109', N'4501', N'00,45,4501', N'邕宁区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450109', N'邕宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'450110', N'4501', N'00,45,4501', N'武鸣区', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450110', N'武鸣区', N'', N'', N'', N'', N'3', N'1', N''), (N'450123', N'4501', N'00,45,4501', N'隆安县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450123', N'隆安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450124', N'4501', N'00,45,4501', N'马山县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450124', N'马山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450125', N'4501', N'00,45,4501', N'上林县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450125', N'上林县', N'', N'', N'', N'', N'3', N'1', N''), (N'450126', N'4501', N'00,45,4501', N'宾阳县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450126', N'宾阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'450127', N'4501', N'00,45,4501', N'横县', N'45', N'广西壮族自治区', N'4501', N'南宁市', N'450127', N'横县', N'', N'', N'', N'', N'3', N'1', N''), (N'4502', N'45', N'00,45', N'柳州市', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450202', N'4502', N'00,45,4502', N'城中区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450202', N'城中区', N'', N'', N'', N'', N'3', N'1', N''), (N'450203', N'4502', N'00,45,4502', N'鱼峰区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450203', N'鱼峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'450204', N'4502', N'00,45,4502', N'柳南区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450204', N'柳南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450205', N'4502', N'00,45,4502', N'柳北区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450205', N'柳北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450206', N'4502', N'00,45,4502', N'柳江区', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450206', N'柳江区', N'', N'', N'', N'', N'3', N'1', N''), (N'450222', N'4502', N'00,45,4502', N'柳城县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450222', N'柳城县', N'', N'', N'', N'', N'3', N'1', N''), (N'450223', N'4502', N'00,45,4502', N'鹿寨县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450223', N'鹿寨县', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'450224', N'4502', N'00,45,4502', N'融安县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450224', N'融安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450225', N'4502', N'00,45,4502', N'融水苗族自治县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450225', N'融水苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450226', N'4502', N'00,45,4502', N'三江侗族自治县', N'45', N'广西壮族自治区', N'4502', N'柳州市', N'450226', N'三江侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4503', N'45', N'00,45', N'桂林市', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450302', N'4503', N'00,45,4503', N'秀峰区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450302', N'秀峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'450303', N'4503', N'00,45,4503', N'叠彩区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450303', N'叠彩区', N'', N'', N'', N'', N'3', N'1', N''), (N'450304', N'4503', N'00,45,4503', N'象山区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450304', N'象山区', N'', N'', N'', N'', N'3', N'1', N''), (N'450305', N'4503', N'00,45,4503', N'七星区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450305', N'七星区', N'', N'', N'', N'', N'3', N'1', N''), (N'450311', N'4503', N'00,45,4503', N'雁山区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450311', N'雁山区', N'', N'', N'', N'', N'3', N'1', N''), (N'450312', N'4503', N'00,45,4503', N'临桂区', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450312', N'临桂区', N'', N'', N'', N'', N'3', N'1', N''), (N'450321', N'4503', N'00,45,4503', N'阳朔县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450321', N'阳朔县', N'', N'', N'', N'', N'3', N'1', N''), (N'450323', N'4503', N'00,45,4503', N'灵川县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450323', N'灵川县', N'', N'', N'', N'', N'3', N'1', N''), (N'450324', N'4503', N'00,45,4503', N'全州县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450324', N'全州县', N'', N'', N'', N'', N'3', N'1', N''), (N'450325', N'4503', N'00,45,4503', N'兴安县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450325', N'兴安县', N'', N'', N'', N'', N'3', N'1', N''), (N'450326', N'4503', N'00,45,4503', N'永福县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450326', N'永福县', N'', N'', N'', N'', N'3', N'1', N''), (N'450327', N'4503', N'00,45,4503', N'灌阳县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450327', N'灌阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'450328', N'4503', N'00,45,4503', N'龙胜各族自治县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450328', N'龙胜各族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450329', N'4503', N'00,45,4503', N'资源县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450329', N'资源县', N'', N'', N'', N'', N'3', N'1', N''), (N'450330', N'4503', N'00,45,4503', N'平乐县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450330', N'平乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'450332', N'4503', N'00,45,4503', N'恭城瑶族自治县', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450332', N'恭城瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'450381', N'4503', N'00,45,4503', N'荔浦市', N'45', N'广西壮族自治区', N'4503', N'桂林市', N'450381', N'荔浦市', N'', N'', N'', N'', N'3', N'1', N''), (N'4504', N'45', N'00,45', N'梧州市', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450403', N'4504', N'00,45,4504', N'万秀区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450403', N'万秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'450405', N'4504', N'00,45,4504', N'长洲区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450405', N'长洲区', N'', N'', N'', N'', N'3', N'1', N''), (N'450406', N'4504', N'00,45,4504', N'龙圩区', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450406', N'龙圩区', N'', N'', N'', N'', N'3', N'1', N''), (N'450421', N'4504', N'00,45,4504', N'苍梧县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450421', N'苍梧县', N'', N'', N'', N'', N'3', N'1', N''), (N'450422', N'4504', N'00,45,4504', N'藤县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450422', N'藤县', N'', N'', N'', N'', N'3', N'1', N''), (N'450423', N'4504', N'00,45,4504', N'蒙山县', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450423', N'蒙山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450481', N'4504', N'00,45,4504', N'岑溪市', N'45', N'广西壮族自治区', N'4504', N'梧州市', N'450481', N'岑溪市', N'', N'', N'', N'', N'3', N'1', N''), (N'4505', N'45', N'00,45', N'北海市', N'45', N'广西壮族自治区', N'4505', N'北海市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450502', N'4505', N'00,45,4505', N'海城区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450502', N'海城区', N'', N'', N'', N'', N'3', N'1', N''), (N'450503', N'4505', N'00,45,4505', N'银海区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450503', N'银海区', N'', N'', N'', N'', N'3', N'1', N''), (N'450512', N'4505', N'00,45,4505', N'铁山港区', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450512', N'铁山港区', N'', N'', N'', N'', N'3', N'1', N''), (N'450521', N'4505', N'00,45,4505', N'合浦县', N'45', N'广西壮族自治区', N'4505', N'北海市', N'450521', N'合浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'4506', N'45', N'00,45', N'防城港市', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450602', N'4506', N'00,45,4506', N'港口区', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450602', N'港口区', N'', N'', N'', N'', N'3', N'1', N''), (N'450603', N'4506', N'00,45,4506', N'防城区', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450603', N'防城区', N'', N'', N'', N'', N'3', N'1', N''), (N'450621', N'4506', N'00,45,4506', N'上思县', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450621', N'上思县', N'', N'', N'', N'', N'3', N'1', N''), (N'450681', N'4506', N'00,45,4506', N'东兴市', N'45', N'广西壮族自治区', N'4506', N'防城港市', N'450681', N'东兴市', N'', N'', N'', N'', N'3', N'1', N''), (N'4507', N'45', N'00,45', N'钦州市', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450702', N'4507', N'00,45,4507', N'钦南区', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450702', N'钦南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450703', N'4507', N'00,45,4507', N'钦北区', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450703', N'钦北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450721', N'4507', N'00,45,4507', N'灵山县', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450721', N'灵山县', N'', N'', N'', N'', N'3', N'1', N''), (N'450722', N'4507', N'00,45,4507', N'浦北县', N'45', N'广西壮族自治区', N'4507', N'钦州市', N'450722', N'浦北县', N'', N'', N'', N'', N'3', N'1', N''), (N'4508', N'45', N'00,45', N'贵港市', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450802', N'4508', N'00,45,4508', N'港北区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450802', N'港北区', N'', N'', N'', N'', N'3', N'1', N''), (N'450803', N'4508', N'00,45,4508', N'港南区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450803', N'港南区', N'', N'', N'', N'', N'3', N'1', N''), (N'450804', N'4508', N'00,45,4508', N'覃塘区', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450804', N'覃塘区', N'', N'', N'', N'', N'3', N'1', N''), (N'450821', N'4508', N'00,45,4508', N'平南县', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450821', N'平南县', N'', N'', N'', N'', N'3', N'1', N''), (N'450881', N'4508', N'00,45,4508', N'桂平市', N'45', N'广西壮族自治区', N'4508', N'贵港市', N'450881', N'桂平市', N'', N'', N'', N'', N'3', N'1', N''), (N'4509', N'45', N'00,45', N'玉林市', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'450902', N'4509', N'00,45,4509', N'玉州区', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450902', N'玉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'450903', N'4509', N'00,45,4509', N'福绵区', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450903', N'福绵区', N'', N'', N'', N'', N'3', N'1', N''), (N'450921', N'4509', N'00,45,4509', N'容县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450921', N'容县', N'', N'', N'', N'', N'3', N'1', N''), (N'450922', N'4509', N'00,45,4509', N'陆川县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450922', N'陆川县', N'', N'', N'', N'', N'3', N'1', N''), (N'450923', N'4509', N'00,45,4509', N'博白县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450923', N'博白县', N'', N'', N'', N'', N'3', N'1', N''), (N'450924', N'4509', N'00,45,4509', N'兴业县', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450924', N'兴业县', N'', N'', N'', N'', N'3', N'1', N''), (N'450981', N'4509', N'00,45,4509', N'北流市', N'45', N'广西壮族自治区', N'4509', N'玉林市', N'450981', N'北流市', N'', N'', N'', N'', N'3', N'1', N''), (N'4510', N'45', N'00,45', N'百色市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451002', N'4510', N'00,45,4510', N'右江区', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451002', N'右江区', N'', N'', N'', N'', N'3', N'1', N''), (N'451003', N'4510', N'00,45,4510', N'田阳区', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451003', N'田阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'451022', N'4510', N'00,45,4510', N'田东县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451022', N'田东县', N'', N'', N'', N'', N'3', N'1', N''), (N'451024', N'4510', N'00,45,4510', N'德保县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451024', N'德保县', N'', N'', N'', N'', N'3', N'1', N''), (N'451026', N'4510', N'00,45,4510', N'那坡县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451026', N'那坡县', N'', N'', N'', N'', N'3', N'1', N''), (N'451027', N'4510', N'00,45,4510', N'凌云县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451027', N'凌云县', N'', N'', N'', N'', N'3', N'1', N''), (N'451028', N'4510', N'00,45,4510', N'乐业县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451028', N'乐业县', N'', N'', N'', N'', N'3', N'1', N''), (N'451029', N'4510', N'00,45,4510', N'田林县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451029', N'田林县', N'', N'', N'', N'', N'3', N'1', N''), (N'451030', N'4510', N'00,45,4510', N'西林县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451030', N'西林县', N'', N'', N'', N'', N'3', N'1', N''), (N'451031', N'4510', N'00,45,4510', N'隆林各族自治县', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451031', N'隆林各族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451081', N'4510', N'00,45,4510', N'靖西市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451081', N'靖西市', N'', N'', N'', N'', N'3', N'1', N''), (N'451082', N'4510', N'00,45,4510', N'平果市', N'45', N'广西壮族自治区', N'4510', N'百色市', N'451082', N'平果市', N'', N'', N'', N'', N'3', N'1', N''), (N'4511', N'45', N'00,45', N'贺州市', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451102', N'4511', N'00,45,4511', N'八步区', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451102', N'八步区', N'', N'', N'', N'', N'3', N'1', N''), (N'451103', N'4511', N'00,45,4511', N'平桂区', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451103', N'平桂区', N'', N'', N'', N'', N'3', N'1', N''), (N'451121', N'4511', N'00,45,4511', N'昭平县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451121', N'昭平县', N'', N'', N'', N'', N'3', N'1', N''), (N'451122', N'4511', N'00,45,4511', N'钟山县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451122', N'钟山县', N'', N'', N'', N'', N'3', N'1', N''), (N'451123', N'4511', N'00,45,4511', N'富川瑶族自治县', N'45', N'广西壮族自治区', N'4511', N'贺州市', N'451123', N'富川瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4512', N'45', N'00,45', N'河池市', N'45', N'广西壮族自治区', N'4512', N'河池市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451202', N'4512', N'00,45,4512', N'金城江区', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451202', N'金城江区', N'', N'', N'', N'', N'3', N'1', N''), (N'451203', N'4512', N'00,45,4512', N'宜州区', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451203', N'宜州区', N'', N'', N'', N'', N'3', N'1', N''), (N'451221', N'4512', N'00,45,4512', N'南丹县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451221', N'南丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'451222', N'4512', N'00,45,4512', N'天峨县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451222', N'天峨县', N'', N'', N'', N'', N'3', N'1', N''), (N'451223', N'4512', N'00,45,4512', N'凤山县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451223', N'凤山县', N'', N'', N'', N'', N'3', N'1', N''), (N'451224', N'4512', N'00,45,4512', N'东兰县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451224', N'东兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'451225', N'4512', N'00,45,4512', N'罗城仫佬族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451225', N'罗城仫佬族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451226', N'4512', N'00,45,4512', N'环江毛南族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451226', N'环江毛南族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451227', N'4512', N'00,45,4512', N'巴马瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451227', N'巴马瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451228', N'4512', N'00,45,4512', N'都安瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451228', N'都安瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451229', N'4512', N'00,45,4512', N'大化瑶族自治县', N'45', N'广西壮族自治区', N'4512', N'河池市', N'451229', N'大化瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'4513', N'45', N'00,45', N'来宾市', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451302', N'4513', N'00,45,4513', N'兴宾区', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451302', N'兴宾区', N'', N'', N'', N'', N'3', N'1', N''), (N'451321', N'4513', N'00,45,4513', N'忻城县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451321', N'忻城县', N'', N'', N'', N'', N'3', N'1', N''), (N'451322', N'4513', N'00,45,4513', N'象州县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451322', N'象州县', N'', N'', N'', N'', N'3', N'1', N''), (N'451323', N'4513', N'00,45,4513', N'武宣县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451323', N'武宣县', N'', N'', N'', N'', N'3', N'1', N''), (N'451324', N'4513', N'00,45,4513', N'金秀瑶族自治县', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451324', N'金秀瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'451381', N'4513', N'00,45,4513', N'合山市', N'45', N'广西壮族自治区', N'4513', N'来宾市', N'451381', N'合山市', N'', N'', N'', N'', N'3', N'1', N''), (N'4514', N'45', N'00,45', N'崇左市', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'451402', N'4514', N'00,45,4514', N'江州区', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451402', N'江州区', N'', N'', N'', N'', N'3', N'1', N''), (N'451421', N'4514', N'00,45,4514', N'扶绥县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451421', N'扶绥县', N'', N'', N'', N'', N'3', N'1', N''), (N'451422', N'4514', N'00,45,4514', N'宁明县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451422', N'宁明县', N'', N'', N'', N'', N'3', N'1', N''), (N'451423', N'4514', N'00,45,4514', N'龙州县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451423', N'龙州县', N'', N'', N'', N'', N'3', N'1', N''), (N'451424', N'4514', N'00,45,4514', N'大新县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451424', N'大新县', N'', N'', N'', N'', N'3', N'1', N''), (N'451425', N'4514', N'00,45,4514', N'天等县', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451425', N'天等县', N'', N'', N'', N'', N'3', N'1', N''), (N'451481', N'4514', N'00,45,4514', N'凭祥市', N'45', N'广西壮族自治区', N'4514', N'崇左市', N'451481', N'凭祥市', N'', N'', N'', N'', N'3', N'1', N''), (N'46', N'00', N'00', N'海南省', N'46', N'海南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'4601', N'46', N'00,46', N'海口市', N'46', N'海南省', N'4601', N'海口市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460105', N'4601', N'00,46,4601', N'秀英区', N'46', N'海南省', N'4601', N'海口市', N'460105', N'秀英区', N'', N'', N'', N'', N'3', N'1', N''), (N'460106', N'4601', N'00,46,4601', N'龙华区', N'46', N'海南省', N'4601', N'海口市', N'460106', N'龙华区', N'', N'', N'', N'', N'3', N'1', N''), (N'460107', N'4601', N'00,46,4601', N'琼山区', N'46', N'海南省', N'4601', N'海口市', N'460107', N'琼山区', N'', N'', N'', N'', N'3', N'1', N''), (N'460108', N'4601', N'00,46,4601', N'美兰区', N'46', N'海南省', N'4601', N'海口市', N'460108', N'美兰区', N'', N'', N'', N'', N'3', N'1', N''), (N'4602', N'46', N'00,46', N'三亚市', N'46', N'海南省', N'4602', N'三亚市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460202', N'4602', N'00,46,4602', N'海棠区', N'46', N'海南省', N'4602', N'三亚市', N'460202', N'海棠区', N'', N'', N'', N'', N'3', N'1', N''), (N'460203', N'4602', N'00,46,4602', N'吉阳区', N'46', N'海南省', N'4602', N'三亚市', N'460203', N'吉阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'460204', N'4602', N'00,46,4602', N'天涯区', N'46', N'海南省', N'4602', N'三亚市', N'460204', N'天涯区', N'', N'', N'', N'', N'3', N'1', N''), (N'460205', N'4602', N'00,46,4602', N'崖州区', N'46', N'海南省', N'4602', N'三亚市', N'460205', N'崖州区', N'', N'', N'', N'', N'3', N'1', N''), (N'4603', N'46', N'00,46', N'三沙市', N'46', N'海南省', N'4603', N'三沙市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460300', N'4603', N'00,46,4603', N'三沙市', N'46', N'海南省', N'4603', N'三沙市', N'460300', N'三沙市', N'', N'', N'', N'', N'3', N'1', N''), (N'4604', N'46', N'00,46', N'儋州市', N'46', N'海南省', N'4604', N'儋州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'460400', N'4604', N'00,46,4604', N'儋州市', N'46', N'海南省', N'4604', N'儋州市', N'460400', N'儋州市', N'', N'', N'', N'', N'3', N'1', N''), (N'4690', N'46', N'00,46', N'省直辖县级行政区', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'469001', N'4690', N'00,46,4690', N'五指山市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469001', N'五指山市', N'', N'', N'', N'', N'3', N'1', N''), (N'469002', N'4690', N'00,46,4690', N'琼海市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469002', N'琼海市', N'', N'', N'', N'', N'3', N'1', N''), (N'469005', N'4690', N'00,46,4690', N'文昌市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469005', N'文昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'469006', N'4690', N'00,46,4690', N'万宁市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469006', N'万宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'469007', N'4690', N'00,46,4690', N'东方市', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469007', N'东方市', N'', N'', N'', N'', N'3', N'1', N''), (N'469021', N'4690', N'00,46,4690', N'定安县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469021', N'定安县', N'', N'', N'', N'', N'3', N'1', N''), (N'469022', N'4690', N'00,46,4690', N'屯昌县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469022', N'屯昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'469023', N'4690', N'00,46,4690', N'澄迈县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469023', N'澄迈县', N'', N'', N'', N'', N'3', N'1', N''), (N'469024', N'4690', N'00,46,4690', N'临高县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469024', N'临高县', N'', N'', N'', N'', N'3', N'1', N''), (N'469025', N'4690', N'00,46,4690', N'白沙黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469025', N'白沙黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469026', N'4690', N'00,46,4690', N'昌江黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469026', N'昌江黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469027', N'4690', N'00,46,4690', N'乐东黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469027', N'乐东黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469028', N'4690', N'00,46,4690', N'陵水黎族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469028', N'陵水黎族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469029', N'4690', N'00,46,4690', N'保亭黎族苗族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469029', N'保亭黎族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'469030', N'4690', N'00,46,4690', N'琼中黎族苗族自治县', N'46', N'海南省', N'4690', N'省直辖县级行政区', N'469030', N'琼中黎族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'50', N'00', N'00', N'重庆市', N'50', N'重庆市', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5001', N'50', N'00,50', N'重庆市', N'50', N'重庆市', N'5001', N'重庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'500101', N'5001', N'00,50,5001', N'万州区', N'50', N'重庆市', N'5001', N'重庆市', N'500101', N'万州区', N'', N'', N'', N'', N'3', N'1', N''), (N'500102', N'5001', N'00,50,5001', N'涪陵区', N'50', N'重庆市', N'5001', N'重庆市', N'500102', N'涪陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'500103', N'5001', N'00,50,5001', N'渝中区', N'50', N'重庆市', N'5001', N'重庆市', N'500103', N'渝中区', N'', N'', N'', N'', N'3', N'1', N''), (N'500104', N'5001', N'00,50,5001', N'大渡口区', N'50', N'重庆市', N'5001', N'重庆市', N'500104', N'大渡口区', N'', N'', N'', N'', N'3', N'1', N''), (N'500105', N'5001', N'00,50,5001', N'江北区', N'50', N'重庆市', N'5001', N'重庆市', N'500105', N'江北区', N'', N'', N'', N'', N'3', N'1', N''), (N'500106', N'5001', N'00,50,5001', N'沙坪坝区', N'50', N'重庆市', N'5001', N'重庆市', N'500106', N'沙坪坝区', N'', N'', N'', N'', N'3', N'1', N''), (N'500107', N'5001', N'00,50,5001', N'九龙坡区', N'50', N'重庆市', N'5001', N'重庆市', N'500107', N'九龙坡区', N'', N'', N'', N'', N'3', N'1', N''), (N'500108', N'5001', N'00,50,5001', N'南岸区', N'50', N'重庆市', N'5001', N'重庆市', N'500108', N'南岸区', N'', N'', N'', N'', N'3', N'1', N''), (N'500109', N'5001', N'00,50,5001', N'北碚区', N'50', N'重庆市', N'5001', N'重庆市', N'500109', N'北碚区', N'', N'', N'', N'', N'3', N'1', N''), (N'500110', N'5001', N'00,50,5001', N'綦江区', N'50', N'重庆市', N'5001', N'重庆市', N'500110', N'綦江区', N'', N'', N'', N'', N'3', N'1', N''), (N'500111', N'5001', N'00,50,5001', N'大足区', N'50', N'重庆市', N'5001', N'重庆市', N'500111', N'大足区', N'', N'', N'', N'', N'3', N'1', N''), (N'500112', N'5001', N'00,50,5001', N'渝北区', N'50', N'重庆市', N'5001', N'重庆市', N'500112', N'渝北区', N'', N'', N'', N'', N'3', N'1', N''), (N'500113', N'5001', N'00,50,5001', N'巴南区', N'50', N'重庆市', N'5001', N'重庆市', N'500113', N'巴南区', N'', N'', N'', N'', N'3', N'1', N''), (N'500114', N'5001', N'00,50,5001', N'黔江区', N'50', N'重庆市', N'5001', N'重庆市', N'500114', N'黔江区', N'', N'', N'', N'', N'3', N'1', N''), (N'500115', N'5001', N'00,50,5001', N'长寿区', N'50', N'重庆市', N'5001', N'重庆市', N'500115', N'长寿区', N'', N'', N'', N'', N'3', N'1', N''), (N'500116', N'5001', N'00,50,5001', N'江津区', N'50', N'重庆市', N'5001', N'重庆市', N'500116', N'江津区', N'', N'', N'', N'', N'3', N'1', N''), (N'500117', N'5001', N'00,50,5001', N'合川区', N'50', N'重庆市', N'5001', N'重庆市', N'500117', N'合川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500118', N'5001', N'00,50,5001', N'永川区', N'50', N'重庆市', N'5001', N'重庆市', N'500118', N'永川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500119', N'5001', N'00,50,5001', N'南川区', N'50', N'重庆市', N'5001', N'重庆市', N'500119', N'南川区', N'', N'', N'', N'', N'3', N'1', N''), (N'500120', N'5001', N'00,50,5001', N'璧山区', N'50', N'重庆市', N'5001', N'重庆市', N'500120', N'璧山区', N'', N'', N'', N'', N'3', N'1', N''), (N'500151', N'5001', N'00,50,5001', N'铜梁区', N'50', N'重庆市', N'5001', N'重庆市', N'500151', N'铜梁区', N'', N'', N'', N'', N'3', N'1', N''), (N'500152', N'5001', N'00,50,5001', N'潼南区', N'50', N'重庆市', N'5001', N'重庆市', N'500152', N'潼南区', N'', N'', N'', N'', N'3', N'1', N''), (N'500153', N'5001', N'00,50,5001', N'荣昌区', N'50', N'重庆市', N'5001', N'重庆市', N'500153', N'荣昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'500154', N'5001', N'00,50,5001', N'开州区', N'50', N'重庆市', N'5001', N'重庆市', N'500154', N'开州区', N'', N'', N'', N'', N'3', N'1', N''), (N'500155', N'5001', N'00,50,5001', N'梁平区', N'50', N'重庆市', N'5001', N'重庆市', N'500155', N'梁平区', N'', N'', N'', N'', N'3', N'1', N''), (N'500156', N'5001', N'00,50,5001', N'武隆区', N'50', N'重庆市', N'5001', N'重庆市', N'500156', N'武隆区', N'', N'', N'', N'', N'3', N'1', N''), (N'5002', N'50', N'00,50', N'重庆市', N'50', N'重庆市', N'5002', N'重庆市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'500229', N'5002', N'00,50,5002', N'城口县', N'50', N'重庆市', N'5002', N'重庆市', N'500229', N'城口县', N'', N'', N'', N'', N'3', N'1', N''), (N'500230', N'5002', N'00,50,5002', N'丰都县', N'50', N'重庆市', N'5002', N'重庆市', N'500230', N'丰都县', N'', N'', N'', N'', N'3', N'1', N''), (N'500231', N'5002', N'00,50,5002', N'垫江县', N'50', N'重庆市', N'5002', N'重庆市', N'500231', N'垫江县', N'', N'', N'', N'', N'3', N'1', N''), (N'500233', N'5002', N'00,50,5002', N'忠县', N'50', N'重庆市', N'5002', N'重庆市', N'500233', N'忠县', N'', N'', N'', N'', N'3', N'1', N''), (N'500235', N'5002', N'00,50,5002', N'云阳县', N'50', N'重庆市', N'5002', N'重庆市', N'500235', N'云阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'500236', N'5002', N'00,50,5002', N'奉节县', N'50', N'重庆市', N'5002', N'重庆市', N'500236', N'奉节县', N'', N'', N'', N'', N'3', N'1', N''), (N'500237', N'5002', N'00,50,5002', N'巫山县', N'50', N'重庆市', N'5002', N'重庆市', N'500237', N'巫山县', N'', N'', N'', N'', N'3', N'1', N''), (N'500238', N'5002', N'00,50,5002', N'巫溪县', N'50', N'重庆市', N'5002', N'重庆市', N'500238', N'巫溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'500240', N'5002', N'00,50,5002', N'石柱土家族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500240', N'石柱土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500241', N'5002', N'00,50,5002', N'秀山土家族苗族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500241', N'秀山土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500242', N'5002', N'00,50,5002', N'酉阳土家族苗族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500242', N'酉阳土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'500243', N'5002', N'00,50,5002', N'彭水苗族土家族自治县', N'50', N'重庆市', N'5002', N'重庆市', N'500243', N'彭水苗族土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'51', N'00', N'00', N'四川省', N'51', N'四川省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5101', N'51', N'00,51', N'成都市', N'51', N'四川省', N'5101', N'成都市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510104', N'5101', N'00,51,5101', N'锦江区', N'51', N'四川省', N'5101', N'成都市', N'510104', N'锦江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510105', N'5101', N'00,51,5101', N'青羊区', N'51', N'四川省', N'5101', N'成都市', N'510105', N'青羊区', N'', N'', N'', N'', N'3', N'1', N''), (N'510106', N'5101', N'00,51,5101', N'金牛区', N'51', N'四川省', N'5101', N'成都市', N'510106', N'金牛区', N'', N'', N'', N'', N'3', N'1', N''), (N'510107', N'5101', N'00,51,5101', N'武侯区', N'51', N'四川省', N'5101', N'成都市', N'510107', N'武侯区', N'', N'', N'', N'', N'3', N'1', N''), (N'510108', N'5101', N'00,51,5101', N'成华区', N'51', N'四川省', N'5101', N'成都市', N'510108', N'成华区', N'', N'', N'', N'', N'3', N'1', N''), (N'510112', N'5101', N'00,51,5101', N'龙泉驿区', N'51', N'四川省', N'5101', N'成都市', N'510112', N'龙泉驿区', N'', N'', N'', N'', N'3', N'1', N''), (N'510113', N'5101', N'00,51,5101', N'青白江区', N'51', N'四川省', N'5101', N'成都市', N'510113', N'青白江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510114', N'5101', N'00,51,5101', N'新都区', N'51', N'四川省', N'5101', N'成都市', N'510114', N'新都区', N'', N'', N'', N'', N'3', N'1', N''), (N'510115', N'5101', N'00,51,5101', N'温江区', N'51', N'四川省', N'5101', N'成都市', N'510115', N'温江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510116', N'5101', N'00,51,5101', N'双流区', N'51', N'四川省', N'5101', N'成都市', N'510116', N'双流区', N'', N'', N'', N'', N'3', N'1', N''), (N'510117', N'5101', N'00,51,5101', N'郫都区', N'51', N'四川省', N'5101', N'成都市', N'510117', N'郫都区', N'', N'', N'', N'', N'3', N'1', N''), (N'510121', N'5101', N'00,51,5101', N'金堂县', N'51', N'四川省', N'5101', N'成都市', N'510121', N'金堂县', N'', N'', N'', N'', N'3', N'1', N''), (N'510129', N'5101', N'00,51,5101', N'大邑县', N'51', N'四川省', N'5101', N'成都市', N'510129', N'大邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'510131', N'5101', N'00,51,5101', N'蒲江县', N'51', N'四川省', N'5101', N'成都市', N'510131', N'蒲江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510132', N'5101', N'00,51,5101', N'新津县', N'51', N'四川省', N'5101', N'成都市', N'510132', N'新津县', N'', N'', N'', N'', N'3', N'1', N''), (N'510181', N'5101', N'00,51,5101', N'都江堰市', N'51', N'四川省', N'5101', N'成都市', N'510181', N'都江堰市', N'', N'', N'', N'', N'3', N'1', N''), (N'510182', N'5101', N'00,51,5101', N'彭州市', N'51', N'四川省', N'5101', N'成都市', N'510182', N'彭州市', N'', N'', N'', N'', N'3', N'1', N''), (N'510183', N'5101', N'00,51,5101', N'邛崃市', N'51', N'四川省', N'5101', N'成都市', N'510183', N'邛崃市', N'', N'', N'', N'', N'3', N'1', N''), (N'510184', N'5101', N'00,51,5101', N'崇州市', N'51', N'四川省', N'5101', N'成都市', N'510184', N'崇州市', N'', N'', N'', N'', N'3', N'1', N''), (N'510185', N'5101', N'00,51,5101', N'简阳市', N'51', N'四川省', N'5101', N'成都市', N'510185', N'简阳市', N'', N'', N'', N'', N'3', N'1', N''), (N'5103', N'51', N'00,51', N'自贡市', N'51', N'四川省', N'5103', N'自贡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510302', N'5103', N'00,51,5103', N'自流井区', N'51', N'四川省', N'5103', N'自贡市', N'510302', N'自流井区', N'', N'', N'', N'', N'3', N'1', N''), (N'510303', N'5103', N'00,51,5103', N'贡井区', N'51', N'四川省', N'5103', N'自贡市', N'510303', N'贡井区', N'', N'', N'', N'', N'3', N'1', N''), (N'510304', N'5103', N'00,51,5103', N'大安区', N'51', N'四川省', N'5103', N'自贡市', N'510304', N'大安区', N'', N'', N'', N'', N'3', N'1', N''), (N'510311', N'5103', N'00,51,5103', N'沿滩区', N'51', N'四川省', N'5103', N'自贡市', N'510311', N'沿滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'510321', N'5103', N'00,51,5103', N'荣县', N'51', N'四川省', N'5103', N'自贡市', N'510321', N'荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'510322', N'5103', N'00,51,5103', N'富顺县', N'51', N'四川省', N'5103', N'自贡市', N'510322', N'富顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'5104', N'51', N'00,51', N'攀枝花市', N'51', N'四川省', N'5104', N'攀枝花市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510402', N'5104', N'00,51,5104', N'东区', N'51', N'四川省', N'5104', N'攀枝花市', N'510402', N'东区', N'', N'', N'', N'', N'3', N'1', N''), (N'510403', N'5104', N'00,51,5104', N'西区', N'51', N'四川省', N'5104', N'攀枝花市', N'510403', N'西区', N'', N'', N'', N'', N'3', N'1', N''), (N'510411', N'5104', N'00,51,5104', N'仁和区', N'51', N'四川省', N'5104', N'攀枝花市', N'510411', N'仁和区', N'', N'', N'', N'', N'3', N'1', N''), (N'510421', N'5104', N'00,51,5104', N'米易县', N'51', N'四川省', N'5104', N'攀枝花市', N'510421', N'米易县', N'', N'', N'', N'', N'3', N'1', N''), (N'510422', N'5104', N'00,51,5104', N'盐边县', N'51', N'四川省', N'5104', N'攀枝花市', N'510422', N'盐边县', N'', N'', N'', N'', N'3', N'1', N''), (N'5105', N'51', N'00,51', N'泸州市', N'51', N'四川省', N'5105', N'泸州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510502', N'5105', N'00,51,5105', N'江阳区', N'51', N'四川省', N'5105', N'泸州市', N'510502', N'江阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'510503', N'5105', N'00,51,5105', N'纳溪区', N'51', N'四川省', N'5105', N'泸州市', N'510503', N'纳溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'510504', N'5105', N'00,51,5105', N'龙马潭区', N'51', N'四川省', N'5105', N'泸州市', N'510504', N'龙马潭区', N'', N'', N'', N'', N'3', N'1', N''), (N'510521', N'5105', N'00,51,5105', N'泸县', N'51', N'四川省', N'5105', N'泸州市', N'510521', N'泸县', N'', N'', N'', N'', N'3', N'1', N''), (N'510522', N'5105', N'00,51,5105', N'合江县', N'51', N'四川省', N'5105', N'泸州市', N'510522', N'合江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510524', N'5105', N'00,51,5105', N'叙永县', N'51', N'四川省', N'5105', N'泸州市', N'510524', N'叙永县', N'', N'', N'', N'', N'3', N'1', N''), (N'510525', N'5105', N'00,51,5105', N'古蔺县', N'51', N'四川省', N'5105', N'泸州市', N'510525', N'古蔺县', N'', N'', N'', N'', N'3', N'1', N''), (N'5106', N'51', N'00,51', N'德阳市', N'51', N'四川省', N'5106', N'德阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510603', N'5106', N'00,51,5106', N'旌阳区', N'51', N'四川省', N'5106', N'德阳市', N'510603', N'旌阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'510604', N'5106', N'00,51,5106', N'罗江区', N'51', N'四川省', N'5106', N'德阳市', N'510604', N'罗江区', N'', N'', N'', N'', N'3', N'1', N''), (N'510623', N'5106', N'00,51,5106', N'中江县', N'51', N'四川省', N'5106', N'德阳市', N'510623', N'中江县', N'', N'', N'', N'', N'3', N'1', N''), (N'510681', N'5106', N'00,51,5106', N'广汉市', N'51', N'四川省', N'5106', N'德阳市', N'510681', N'广汉市', N'', N'', N'', N'', N'3', N'1', N''), (N'510682', N'5106', N'00,51,5106', N'什邡市', N'51', N'四川省', N'5106', N'德阳市', N'510682', N'什邡市', N'', N'', N'', N'', N'3', N'1', N''), (N'510683', N'5106', N'00,51,5106', N'绵竹市', N'51', N'四川省', N'5106', N'德阳市', N'510683', N'绵竹市', N'', N'', N'', N'', N'3', N'1', N''), (N'5107', N'51', N'00,51', N'绵阳市', N'51', N'四川省', N'5107', N'绵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510703', N'5107', N'00,51,5107', N'涪城区', N'51', N'四川省', N'5107', N'绵阳市', N'510703', N'涪城区', N'', N'', N'', N'', N'3', N'1', N''), (N'510704', N'5107', N'00,51,5107', N'游仙区', N'51', N'四川省', N'5107', N'绵阳市', N'510704', N'游仙区', N'', N'', N'', N'', N'3', N'1', N''), (N'510705', N'5107', N'00,51,5107', N'安州区', N'51', N'四川省', N'5107', N'绵阳市', N'510705', N'安州区', N'', N'', N'', N'', N'3', N'1', N''), (N'510722', N'5107', N'00,51,5107', N'三台县', N'51', N'四川省', N'5107', N'绵阳市', N'510722', N'三台县', N'', N'', N'', N'', N'3', N'1', N''), (N'510723', N'5107', N'00,51,5107', N'盐亭县', N'51', N'四川省', N'5107', N'绵阳市', N'510723', N'盐亭县', N'', N'', N'', N'', N'3', N'1', N''), (N'510725', N'5107', N'00,51,5107', N'梓潼县', N'51', N'四川省', N'5107', N'绵阳市', N'510725', N'梓潼县', N'', N'', N'', N'', N'3', N'1', N''), (N'510726', N'5107', N'00,51,5107', N'北川羌族自治县', N'51', N'四川省', N'5107', N'绵阳市', N'510726', N'北川羌族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'510727', N'5107', N'00,51,5107', N'平武县', N'51', N'四川省', N'5107', N'绵阳市', N'510727', N'平武县', N'', N'', N'', N'', N'3', N'1', N''), (N'510781', N'5107', N'00,51,5107', N'江油市', N'51', N'四川省', N'5107', N'绵阳市', N'510781', N'江油市', N'', N'', N'', N'', N'3', N'1', N''), (N'5108', N'51', N'00,51', N'广元市', N'51', N'四川省', N'5108', N'广元市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510802', N'5108', N'00,51,5108', N'利州区', N'51', N'四川省', N'5108', N'广元市', N'510802', N'利州区', N'', N'', N'', N'', N'3', N'1', N''), (N'510811', N'5108', N'00,51,5108', N'昭化区', N'51', N'四川省', N'5108', N'广元市', N'510811', N'昭化区', N'', N'', N'', N'', N'3', N'1', N''), (N'510812', N'5108', N'00,51,5108', N'朝天区', N'51', N'四川省', N'5108', N'广元市', N'510812', N'朝天区', N'', N'', N'', N'', N'3', N'1', N''), (N'510821', N'5108', N'00,51,5108', N'旺苍县', N'51', N'四川省', N'5108', N'广元市', N'510821', N'旺苍县', N'', N'', N'', N'', N'3', N'1', N''), (N'510822', N'5108', N'00,51,5108', N'青川县', N'51', N'四川省', N'5108', N'广元市', N'510822', N'青川县', N'', N'', N'', N'', N'3', N'1', N''), (N'510823', N'5108', N'00,51,5108', N'剑阁县', N'51', N'四川省', N'5108', N'广元市', N'510823', N'剑阁县', N'', N'', N'', N'', N'3', N'1', N''), (N'510824', N'5108', N'00,51,5108', N'苍溪县', N'51', N'四川省', N'5108', N'广元市', N'510824', N'苍溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'5109', N'51', N'00,51', N'遂宁市', N'51', N'四川省', N'5109', N'遂宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'510903', N'5109', N'00,51,5109', N'船山区', N'51', N'四川省', N'5109', N'遂宁市', N'510903', N'船山区', N'', N'', N'', N'', N'3', N'1', N''), (N'510904', N'5109', N'00,51,5109', N'安居区', N'51', N'四川省', N'5109', N'遂宁市', N'510904', N'安居区', N'', N'', N'', N'', N'3', N'1', N''), (N'510921', N'5109', N'00,51,5109', N'蓬溪县', N'51', N'四川省', N'5109', N'遂宁市', N'510921', N'蓬溪县', N'', N'', N'', N'', N'3', N'1', N''), (N'510923', N'5109', N'00,51,5109', N'大英县', N'51', N'四川省', N'5109', N'遂宁市', N'510923', N'大英县', N'', N'', N'', N'', N'3', N'1', N''), (N'510981', N'5109', N'00,51,5109', N'射洪市', N'51', N'四川省', N'5109', N'遂宁市', N'510981', N'射洪市', N'', N'', N'', N'', N'3', N'1', N''), (N'5110', N'51', N'00,51', N'内江市', N'51', N'四川省', N'5110', N'内江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511002', N'5110', N'00,51,5110', N'市中区', N'51', N'四川省', N'5110', N'内江市', N'511002', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'511011', N'5110', N'00,51,5110', N'东兴区', N'51', N'四川省', N'5110', N'内江市', N'511011', N'东兴区', N'', N'', N'', N'', N'3', N'1', N''), (N'511024', N'5110', N'00,51,5110', N'威远县', N'51', N'四川省', N'5110', N'内江市', N'511024', N'威远县', N'', N'', N'', N'', N'3', N'1', N''), (N'511025', N'5110', N'00,51,5110', N'资中县', N'51', N'四川省', N'5110', N'内江市', N'511025', N'资中县', N'', N'', N'', N'', N'3', N'1', N''), (N'511083', N'5110', N'00,51,5110', N'隆昌市', N'51', N'四川省', N'5110', N'内江市', N'511083', N'隆昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'5111', N'51', N'00,51', N'乐山市', N'51', N'四川省', N'5111', N'乐山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511102', N'5111', N'00,51,5111', N'市中区', N'51', N'四川省', N'5111', N'乐山市', N'511102', N'市中区', N'', N'', N'', N'', N'3', N'1', N''), (N'511111', N'5111', N'00,51,5111', N'沙湾区', N'51', N'四川省', N'5111', N'乐山市', N'511111', N'沙湾区', N'', N'', N'', N'', N'3', N'1', N''), (N'511112', N'5111', N'00,51,5111', N'五通桥区', N'51', N'四川省', N'5111', N'乐山市', N'511112', N'五通桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'511113', N'5111', N'00,51,5111', N'金口河区', N'51', N'四川省', N'5111', N'乐山市', N'511113', N'金口河区', N'', N'', N'', N'', N'3', N'1', N''), (N'511123', N'5111', N'00,51,5111', N'犍为县', N'51', N'四川省', N'5111', N'乐山市', N'511123', N'犍为县', N'', N'', N'', N'', N'3', N'1', N''), (N'511124', N'5111', N'00,51,5111', N'井研县', N'51', N'四川省', N'5111', N'乐山市', N'511124', N'井研县', N'', N'', N'', N'', N'3', N'1', N''), (N'511126', N'5111', N'00,51,5111', N'夹江县', N'51', N'四川省', N'5111', N'乐山市', N'511126', N'夹江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511129', N'5111', N'00,51,5111', N'沐川县', N'51', N'四川省', N'5111', N'乐山市', N'511129', N'沐川县', N'', N'', N'', N'', N'3', N'1', N''), (N'511132', N'5111', N'00,51,5111', N'峨边彝族自治县', N'51', N'四川省', N'5111', N'乐山市', N'511132', N'峨边彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'511133', N'5111', N'00,51,5111', N'马边彝族自治县', N'51', N'四川省', N'5111', N'乐山市', N'511133', N'马边彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'511181', N'5111', N'00,51,5111', N'峨眉山市', N'51', N'四川省', N'5111', N'乐山市', N'511181', N'峨眉山市', N'', N'', N'', N'', N'3', N'1', N''), (N'5113', N'51', N'00,51', N'南充市', N'51', N'四川省', N'5113', N'南充市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511302', N'5113', N'00,51,5113', N'顺庆区', N'51', N'四川省', N'5113', N'南充市', N'511302', N'顺庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'511303', N'5113', N'00,51,5113', N'高坪区', N'51', N'四川省', N'5113', N'南充市', N'511303', N'高坪区', N'', N'', N'', N'', N'3', N'1', N''), (N'511304', N'5113', N'00,51,5113', N'嘉陵区', N'51', N'四川省', N'5113', N'南充市', N'511304', N'嘉陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'511321', N'5113', N'00,51,5113', N'南部县', N'51', N'四川省', N'5113', N'南充市', N'511321', N'南部县', N'', N'', N'', N'', N'3', N'1', N''), (N'511322', N'5113', N'00,51,5113', N'营山县', N'51', N'四川省', N'5113', N'南充市', N'511322', N'营山县', N'', N'', N'', N'', N'3', N'1', N''), (N'511323', N'5113', N'00,51,5113', N'蓬安县', N'51', N'四川省', N'5113', N'南充市', N'511323', N'蓬安县', N'', N'', N'', N'', N'3', N'1', N''), (N'511324', N'5113', N'00,51,5113', N'仪陇县', N'51', N'四川省', N'5113', N'南充市', N'511324', N'仪陇县', N'', N'', N'', N'', N'3', N'1', N''), (N'511325', N'5113', N'00,51,5113', N'西充县', N'51', N'四川省', N'5113', N'南充市', N'511325', N'西充县', N'', N'', N'', N'', N'3', N'1', N''), (N'511381', N'5113', N'00,51,5113', N'阆中市', N'51', N'四川省', N'5113', N'南充市', N'511381', N'阆中市', N'', N'', N'', N'', N'3', N'1', N''), (N'5114', N'51', N'00,51', N'眉山市', N'51', N'四川省', N'5114', N'眉山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511402', N'5114', N'00,51,5114', N'东坡区', N'51', N'四川省', N'5114', N'眉山市', N'511402', N'东坡区', N'', N'', N'', N'', N'3', N'1', N''), (N'511403', N'5114', N'00,51,5114', N'彭山区', N'51', N'四川省', N'5114', N'眉山市', N'511403', N'彭山区', N'', N'', N'', N'', N'3', N'1', N''), (N'511421', N'5114', N'00,51,5114', N'仁寿县', N'51', N'四川省', N'5114', N'眉山市', N'511421', N'仁寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'511423', N'5114', N'00,51,5114', N'洪雅县', N'51', N'四川省', N'5114', N'眉山市', N'511423', N'洪雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'511424', N'5114', N'00,51,5114', N'丹棱县', N'51', N'四川省', N'5114', N'眉山市', N'511424', N'丹棱县', N'', N'', N'', N'', N'3', N'1', N''), (N'511425', N'5114', N'00,51,5114', N'青神县', N'51', N'四川省', N'5114', N'眉山市', N'511425', N'青神县', N'', N'', N'', N'', N'3', N'1', N''), (N'5115', N'51', N'00,51', N'宜宾市', N'51', N'四川省', N'5115', N'宜宾市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511502', N'5115', N'00,51,5115', N'翠屏区', N'51', N'四川省', N'5115', N'宜宾市', N'511502', N'翠屏区', N'', N'', N'', N'', N'3', N'1', N''), (N'511503', N'5115', N'00,51,5115', N'南溪区', N'51', N'四川省', N'5115', N'宜宾市', N'511503', N'南溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'511504', N'5115', N'00,51,5115', N'叙州区', N'51', N'四川省', N'5115', N'宜宾市', N'511504', N'叙州区', N'', N'', N'', N'', N'3', N'1', N''), (N'511523', N'5115', N'00,51,5115', N'江安县', N'51', N'四川省', N'5115', N'宜宾市', N'511523', N'江安县', N'', N'', N'', N'', N'3', N'1', N''), (N'511524', N'5115', N'00,51,5115', N'长宁县', N'51', N'四川省', N'5115', N'宜宾市', N'511524', N'长宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'511525', N'5115', N'00,51,5115', N'高县', N'51', N'四川省', N'5115', N'宜宾市', N'511525', N'高县', N'', N'', N'', N'', N'3', N'1', N''), (N'511526', N'5115', N'00,51,5115', N'珙县', N'51', N'四川省', N'5115', N'宜宾市', N'511526', N'珙县', N'', N'', N'', N'', N'3', N'1', N''), (N'511527', N'5115', N'00,51,5115', N'筠连县', N'51', N'四川省', N'5115', N'宜宾市', N'511527', N'筠连县', N'', N'', N'', N'', N'3', N'1', N''), (N'511528', N'5115', N'00,51,5115', N'兴文县', N'51', N'四川省', N'5115', N'宜宾市', N'511528', N'兴文县', N'', N'', N'', N'', N'3', N'1', N''), (N'511529', N'5115', N'00,51,5115', N'屏山县', N'51', N'四川省', N'5115', N'宜宾市', N'511529', N'屏山县', N'', N'', N'', N'', N'3', N'1', N''), (N'5116', N'51', N'00,51', N'广安市', N'51', N'四川省', N'5116', N'广安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511602', N'5116', N'00,51,5116', N'广安区', N'51', N'四川省', N'5116', N'广安市', N'511602', N'广安区', N'', N'', N'', N'', N'3', N'1', N''), (N'511603', N'5116', N'00,51,5116', N'前锋区', N'51', N'四川省', N'5116', N'广安市', N'511603', N'前锋区', N'', N'', N'', N'', N'3', N'1', N''), (N'511621', N'5116', N'00,51,5116', N'岳池县', N'51', N'四川省', N'5116', N'广安市', N'511621', N'岳池县', N'', N'', N'', N'', N'3', N'1', N''), (N'511622', N'5116', N'00,51,5116', N'武胜县', N'51', N'四川省', N'5116', N'广安市', N'511622', N'武胜县', N'', N'', N'', N'', N'3', N'1', N''), (N'511623', N'5116', N'00,51,5116', N'邻水县', N'51', N'四川省', N'5116', N'广安市', N'511623', N'邻水县', N'', N'', N'', N'', N'3', N'1', N''), (N'511681', N'5116', N'00,51,5116', N'华蓥市', N'51', N'四川省', N'5116', N'广安市', N'511681', N'华蓥市', N'', N'', N'', N'', N'3', N'1', N''), (N'5117', N'51', N'00,51', N'达州市', N'51', N'四川省', N'5117', N'达州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511702', N'5117', N'00,51,5117', N'通川区', N'51', N'四川省', N'5117', N'达州市', N'511702', N'通川区', N'', N'', N'', N'', N'3', N'1', N''), (N'511703', N'5117', N'00,51,5117', N'达川区', N'51', N'四川省', N'5117', N'达州市', N'511703', N'达川区', N'', N'', N'', N'', N'3', N'1', N''), (N'511722', N'5117', N'00,51,5117', N'宣汉县', N'51', N'四川省', N'5117', N'达州市', N'511722', N'宣汉县', N'', N'', N'', N'', N'3', N'1', N''), (N'511723', N'5117', N'00,51,5117', N'开江县', N'51', N'四川省', N'5117', N'达州市', N'511723', N'开江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511724', N'5117', N'00,51,5117', N'大竹县', N'51', N'四川省', N'5117', N'达州市', N'511724', N'大竹县', N'', N'', N'', N'', N'3', N'1', N''), (N'511725', N'5117', N'00,51,5117', N'渠县', N'51', N'四川省', N'5117', N'达州市', N'511725', N'渠县', N'', N'', N'', N'', N'3', N'1', N''), (N'511781', N'5117', N'00,51,5117', N'万源市', N'51', N'四川省', N'5117', N'达州市', N'511781', N'万源市', N'', N'', N'', N'', N'3', N'1', N''), (N'5118', N'51', N'00,51', N'雅安市', N'51', N'四川省', N'5118', N'雅安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511802', N'5118', N'00,51,5118', N'雨城区', N'51', N'四川省', N'5118', N'雅安市', N'511802', N'雨城区', N'', N'', N'', N'', N'3', N'1', N''), (N'511803', N'5118', N'00,51,5118', N'名山区', N'51', N'四川省', N'5118', N'雅安市', N'511803', N'名山区', N'', N'', N'', N'', N'3', N'1', N''), (N'511822', N'5118', N'00,51,5118', N'荥经县', N'51', N'四川省', N'5118', N'雅安市', N'511822', N'荥经县', N'', N'', N'', N'', N'3', N'1', N''), (N'511823', N'5118', N'00,51,5118', N'汉源县', N'51', N'四川省', N'5118', N'雅安市', N'511823', N'汉源县', N'', N'', N'', N'', N'3', N'1', N''), (N'511824', N'5118', N'00,51,5118', N'石棉县', N'51', N'四川省', N'5118', N'雅安市', N'511824', N'石棉县', N'', N'', N'', N'', N'3', N'1', N''), (N'511825', N'5118', N'00,51,5118', N'天全县', N'51', N'四川省', N'5118', N'雅安市', N'511825', N'天全县', N'', N'', N'', N'', N'3', N'1', N''), (N'511826', N'5118', N'00,51,5118', N'芦山县', N'51', N'四川省', N'5118', N'雅安市', N'511826', N'芦山县', N'', N'', N'', N'', N'3', N'1', N''), (N'511827', N'5118', N'00,51,5118', N'宝兴县', N'51', N'四川省', N'5118', N'雅安市', N'511827', N'宝兴县', N'', N'', N'', N'', N'3', N'1', N''), (N'5119', N'51', N'00,51', N'巴中市', N'51', N'四川省', N'5119', N'巴中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'511902', N'5119', N'00,51,5119', N'巴州区', N'51', N'四川省', N'5119', N'巴中市', N'511902', N'巴州区', N'', N'', N'', N'', N'3', N'1', N''), (N'511903', N'5119', N'00,51,5119', N'恩阳区', N'51', N'四川省', N'5119', N'巴中市', N'511903', N'恩阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'511921', N'5119', N'00,51,5119', N'通江县', N'51', N'四川省', N'5119', N'巴中市', N'511921', N'通江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511922', N'5119', N'00,51,5119', N'南江县', N'51', N'四川省', N'5119', N'巴中市', N'511922', N'南江县', N'', N'', N'', N'', N'3', N'1', N''), (N'511923', N'5119', N'00,51,5119', N'平昌县', N'51', N'四川省', N'5119', N'巴中市', N'511923', N'平昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'5120', N'51', N'00,51', N'资阳市', N'51', N'四川省', N'5120', N'资阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'512002', N'5120', N'00,51,5120', N'雁江区', N'51', N'四川省', N'5120', N'资阳市', N'512002', N'雁江区', N'', N'', N'', N'', N'3', N'1', N''), (N'512021', N'5120', N'00,51,5120', N'安岳县', N'51', N'四川省', N'5120', N'资阳市', N'512021', N'安岳县', N'', N'', N'', N'', N'3', N'1', N''), (N'512022', N'5120', N'00,51,5120', N'乐至县', N'51', N'四川省', N'5120', N'资阳市', N'512022', N'乐至县', N'', N'', N'', N'', N'3', N'1', N''), (N'5132', N'51', N'00,51', N'阿坝藏族羌族自治州', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513201', N'5132', N'00,51,5132', N'马尔康市', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513201', N'马尔康市', N'', N'', N'', N'', N'3', N'1', N''), (N'513221', N'5132', N'00,51,5132', N'汶川县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513221', N'汶川县', N'', N'', N'', N'', N'3', N'1', N''), (N'513222', N'5132', N'00,51,5132', N'理县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513222', N'理县', N'', N'', N'', N'', N'3', N'1', N''), (N'513223', N'5132', N'00,51,5132', N'茂县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513223', N'茂县', N'', N'', N'', N'', N'3', N'1', N''), (N'513224', N'5132', N'00,51,5132', N'松潘县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513224', N'松潘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513225', N'5132', N'00,51,5132', N'九寨沟县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513225', N'九寨沟县', N'', N'', N'', N'', N'3', N'1', N''), (N'513226', N'5132', N'00,51,5132', N'金川县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513226', N'金川县', N'', N'', N'', N'', N'3', N'1', N''), (N'513227', N'5132', N'00,51,5132', N'小金县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513227', N'小金县', N'', N'', N'', N'', N'3', N'1', N''), (N'513228', N'5132', N'00,51,5132', N'黑水县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513228', N'黑水县', N'', N'', N'', N'', N'3', N'1', N''), (N'513230', N'5132', N'00,51,5132', N'壤塘县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513230', N'壤塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513231', N'5132', N'00,51,5132', N'阿坝县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513231', N'阿坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'513232', N'5132', N'00,51,5132', N'若尔盖县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513232', N'若尔盖县', N'', N'', N'', N'', N'3', N'1', N''), (N'513233', N'5132', N'00,51,5132', N'红原县', N'51', N'四川省', N'5132', N'阿坝藏族羌族自治州', N'513233', N'红原县', N'', N'', N'', N'', N'3', N'1', N''), (N'5133', N'51', N'00,51', N'甘孜藏族自治州', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513301', N'5133', N'00,51,5133', N'康定市', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513301', N'康定市', N'', N'', N'', N'', N'3', N'1', N''), (N'513322', N'5133', N'00,51,5133', N'泸定县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513322', N'泸定县', N'', N'', N'', N'', N'3', N'1', N''), (N'513323', N'5133', N'00,51,5133', N'丹巴县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513323', N'丹巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'513324', N'5133', N'00,51,5133', N'九龙县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513324', N'九龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'513325', N'5133', N'00,51,5133', N'雅江县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513325', N'雅江县', N'', N'', N'', N'', N'3', N'1', N''), (N'513326', N'5133', N'00,51,5133', N'道孚县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513326', N'道孚县', N'', N'', N'', N'', N'3', N'1', N''), (N'513327', N'5133', N'00,51,5133', N'炉霍县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513327', N'炉霍县', N'', N'', N'', N'', N'3', N'1', N''), (N'513328', N'5133', N'00,51,5133', N'甘孜县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513328', N'甘孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'513329', N'5133', N'00,51,5133', N'新龙县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513329', N'新龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'513330', N'5133', N'00,51,5133', N'德格县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513330', N'德格县', N'', N'', N'', N'', N'3', N'1', N''), (N'513331', N'5133', N'00,51,5133', N'白玉县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513331', N'白玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'513332', N'5133', N'00,51,5133', N'石渠县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513332', N'石渠县', N'', N'', N'', N'', N'3', N'1', N''), (N'513333', N'5133', N'00,51,5133', N'色达县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513333', N'色达县', N'', N'', N'', N'', N'3', N'1', N''), (N'513334', N'5133', N'00,51,5133', N'理塘县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513334', N'理塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513335', N'5133', N'00,51,5133', N'巴塘县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513335', N'巴塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'513336', N'5133', N'00,51,5133', N'乡城县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513336', N'乡城县', N'', N'', N'', N'', N'3', N'1', N''), (N'513337', N'5133', N'00,51,5133', N'稻城县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513337', N'稻城县', N'', N'', N'', N'', N'3', N'1', N''), (N'513338', N'5133', N'00,51,5133', N'得荣县', N'51', N'四川省', N'5133', N'甘孜藏族自治州', N'513338', N'得荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'5134', N'51', N'00,51', N'凉山彝族自治州', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'513401', N'5134', N'00,51,5134', N'西昌市', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513401', N'西昌市', N'', N'', N'', N'', N'3', N'1', N''), (N'513422', N'5134', N'00,51,5134', N'木里藏族自治县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513422', N'木里藏族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'513423', N'5134', N'00,51,5134', N'盐源县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513423', N'盐源县', N'', N'', N'', N'', N'3', N'1', N''), (N'513424', N'5134', N'00,51,5134', N'德昌县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513424', N'德昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'513425', N'5134', N'00,51,5134', N'会理县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513425', N'会理县', N'', N'', N'', N'', N'3', N'1', N''), (N'513426', N'5134', N'00,51,5134', N'会东县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513426', N'会东县', N'', N'', N'', N'', N'3', N'1', N''), (N'513427', N'5134', N'00,51,5134', N'宁南县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513427', N'宁南县', N'', N'', N'', N'', N'3', N'1', N''), (N'513428', N'5134', N'00,51,5134', N'普格县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513428', N'普格县', N'', N'', N'', N'', N'3', N'1', N''), (N'513429', N'5134', N'00,51,5134', N'布拖县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513429', N'布拖县', N'', N'', N'', N'', N'3', N'1', N''), (N'513430', N'5134', N'00,51,5134', N'金阳县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513430', N'金阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'513431', N'5134', N'00,51,5134', N'昭觉县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513431', N'昭觉县', N'', N'', N'', N'', N'3', N'1', N''), (N'513432', N'5134', N'00,51,5134', N'喜德县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513432', N'喜德县', N'', N'', N'', N'', N'3', N'1', N''), (N'513433', N'5134', N'00,51,5134', N'冕宁县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513433', N'冕宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'513434', N'5134', N'00,51,5134', N'越西县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513434', N'越西县', N'', N'', N'', N'', N'3', N'1', N''), (N'513435', N'5134', N'00,51,5134', N'甘洛县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513435', N'甘洛县', N'', N'', N'', N'', N'3', N'1', N''), (N'513436', N'5134', N'00,51,5134', N'美姑县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513436', N'美姑县', N'', N'', N'', N'', N'3', N'1', N''), (N'513437', N'5134', N'00,51,5134', N'雷波县', N'51', N'四川省', N'5134', N'凉山彝族自治州', N'513437', N'雷波县', N'', N'', N'', N'', N'3', N'1', N''), (N'52', N'00', N'00', N'贵州省', N'52', N'贵州省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5201', N'52', N'00,52', N'贵阳市', N'52', N'贵州省', N'5201', N'贵阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520102', N'5201', N'00,52,5201', N'南明区', N'52', N'贵州省', N'5201', N'贵阳市', N'520102', N'南明区', N'', N'', N'', N'', N'3', N'1', N''), (N'520103', N'5201', N'00,52,5201', N'云岩区', N'52', N'贵州省', N'5201', N'贵阳市', N'520103', N'云岩区', N'', N'', N'', N'', N'3', N'1', N''), (N'520111', N'5201', N'00,52,5201', N'花溪区', N'52', N'贵州省', N'5201', N'贵阳市', N'520111', N'花溪区', N'', N'', N'', N'', N'3', N'1', N''), (N'520112', N'5201', N'00,52,5201', N'乌当区', N'52', N'贵州省', N'5201', N'贵阳市', N'520112', N'乌当区', N'', N'', N'', N'', N'3', N'1', N''), (N'520113', N'5201', N'00,52,5201', N'白云区', N'52', N'贵州省', N'5201', N'贵阳市', N'520113', N'白云区', N'', N'', N'', N'', N'3', N'1', N''), (N'520115', N'5201', N'00,52,5201', N'观山湖区', N'52', N'贵州省', N'5201', N'贵阳市', N'520115', N'观山湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'520121', N'5201', N'00,52,5201', N'开阳县', N'52', N'贵州省', N'5201', N'贵阳市', N'520121', N'开阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'520122', N'5201', N'00,52,5201', N'息烽县', N'52', N'贵州省', N'5201', N'贵阳市', N'520122', N'息烽县', N'', N'', N'', N'', N'3', N'1', N''), (N'520123', N'5201', N'00,52,5201', N'修文县', N'52', N'贵州省', N'5201', N'贵阳市', N'520123', N'修文县', N'', N'', N'', N'', N'3', N'1', N''), (N'520181', N'5201', N'00,52,5201', N'清镇市', N'52', N'贵州省', N'5201', N'贵阳市', N'520181', N'清镇市', N'', N'', N'', N'', N'3', N'1', N''), (N'5202', N'52', N'00,52', N'六盘水市', N'52', N'贵州省', N'5202', N'六盘水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520201', N'5202', N'00,52,5202', N'钟山区', N'52', N'贵州省', N'5202', N'六盘水市', N'520201', N'钟山区', N'', N'', N'', N'', N'3', N'1', N''), (N'520203', N'5202', N'00,52,5202', N'六枝特区', N'52', N'贵州省', N'5202', N'六盘水市', N'520203', N'六枝特区', N'', N'', N'', N'', N'3', N'1', N''), (N'520221', N'5202', N'00,52,5202', N'水城县', N'52', N'贵州省', N'5202', N'六盘水市', N'520221', N'水城县', N'', N'', N'', N'', N'3', N'1', N''), (N'520281', N'5202', N'00,52,5202', N'盘州市', N'52', N'贵州省', N'5202', N'六盘水市', N'520281', N'盘州市', N'', N'', N'', N'', N'3', N'1', N''), (N'5203', N'52', N'00,52', N'遵义市', N'52', N'贵州省', N'5203', N'遵义市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520302', N'5203', N'00,52,5203', N'红花岗区', N'52', N'贵州省', N'5203', N'遵义市', N'520302', N'红花岗区', N'', N'', N'', N'', N'3', N'1', N''), (N'520303', N'5203', N'00,52,5203', N'汇川区', N'52', N'贵州省', N'5203', N'遵义市', N'520303', N'汇川区', N'', N'', N'', N'', N'3', N'1', N''), (N'520304', N'5203', N'00,52,5203', N'播州区', N'52', N'贵州省', N'5203', N'遵义市', N'520304', N'播州区', N'', N'', N'', N'', N'3', N'1', N''), (N'520322', N'5203', N'00,52,5203', N'桐梓县', N'52', N'贵州省', N'5203', N'遵义市', N'520322', N'桐梓县', N'', N'', N'', N'', N'3', N'1', N''), (N'520323', N'5203', N'00,52,5203', N'绥阳县', N'52', N'贵州省', N'5203', N'遵义市', N'520323', N'绥阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'520324', N'5203', N'00,52,5203', N'正安县', N'52', N'贵州省', N'5203', N'遵义市', N'520324', N'正安县', N'', N'', N'', N'', N'3', N'1', N''), (N'520325', N'5203', N'00,52,5203', N'道真仡佬族苗族自治县', N'52', N'贵州省', N'5203', N'遵义市', N'520325', N'道真仡佬族苗族自治县', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'520326', N'5203', N'00,52,5203', N'务川仡佬族苗族自治县', N'52', N'贵州省', N'5203', N'遵义市', N'520326', N'务川仡佬族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520327', N'5203', N'00,52,5203', N'凤冈县', N'52', N'贵州省', N'5203', N'遵义市', N'520327', N'凤冈县', N'', N'', N'', N'', N'3', N'1', N''), (N'520328', N'5203', N'00,52,5203', N'湄潭县', N'52', N'贵州省', N'5203', N'遵义市', N'520328', N'湄潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'520329', N'5203', N'00,52,5203', N'余庆县', N'52', N'贵州省', N'5203', N'遵义市', N'520329', N'余庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'520330', N'5203', N'00,52,5203', N'习水县', N'52', N'贵州省', N'5203', N'遵义市', N'520330', N'习水县', N'', N'', N'', N'', N'3', N'1', N''), (N'520381', N'5203', N'00,52,5203', N'赤水市', N'52', N'贵州省', N'5203', N'遵义市', N'520381', N'赤水市', N'', N'', N'', N'', N'3', N'1', N''), (N'520382', N'5203', N'00,52,5203', N'仁怀市', N'52', N'贵州省', N'5203', N'遵义市', N'520382', N'仁怀市', N'', N'', N'', N'', N'3', N'1', N''), (N'5204', N'52', N'00,52', N'安顺市', N'52', N'贵州省', N'5204', N'安顺市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520402', N'5204', N'00,52,5204', N'西秀区', N'52', N'贵州省', N'5204', N'安顺市', N'520402', N'西秀区', N'', N'', N'', N'', N'3', N'1', N''), (N'520403', N'5204', N'00,52,5204', N'平坝区', N'52', N'贵州省', N'5204', N'安顺市', N'520403', N'平坝区', N'', N'', N'', N'', N'3', N'1', N''), (N'520422', N'5204', N'00,52,5204', N'普定县', N'52', N'贵州省', N'5204', N'安顺市', N'520422', N'普定县', N'', N'', N'', N'', N'3', N'1', N''), (N'520423', N'5204', N'00,52,5204', N'镇宁布依族苗族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520423', N'镇宁布依族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520424', N'5204', N'00,52,5204', N'关岭布依族苗族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520424', N'关岭布依族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520425', N'5204', N'00,52,5204', N'紫云苗族布依族自治县', N'52', N'贵州省', N'5204', N'安顺市', N'520425', N'紫云苗族布依族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5205', N'52', N'00,52', N'毕节市', N'52', N'贵州省', N'5205', N'毕节市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520502', N'5205', N'00,52,5205', N'七星关区', N'52', N'贵州省', N'5205', N'毕节市', N'520502', N'七星关区', N'', N'', N'', N'', N'3', N'1', N''), (N'520521', N'5205', N'00,52,5205', N'大方县', N'52', N'贵州省', N'5205', N'毕节市', N'520521', N'大方县', N'', N'', N'', N'', N'3', N'1', N''), (N'520522', N'5205', N'00,52,5205', N'黔西县', N'52', N'贵州省', N'5205', N'毕节市', N'520522', N'黔西县', N'', N'', N'', N'', N'3', N'1', N''), (N'520523', N'5205', N'00,52,5205', N'金沙县', N'52', N'贵州省', N'5205', N'毕节市', N'520523', N'金沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'520524', N'5205', N'00,52,5205', N'织金县', N'52', N'贵州省', N'5205', N'毕节市', N'520524', N'织金县', N'', N'', N'', N'', N'3', N'1', N''), (N'520525', N'5205', N'00,52,5205', N'纳雍县', N'52', N'贵州省', N'5205', N'毕节市', N'520525', N'纳雍县', N'', N'', N'', N'', N'3', N'1', N''), (N'520526', N'5205', N'00,52,5205', N'威宁彝族回族苗族自治县', N'52', N'贵州省', N'5205', N'毕节市', N'520526', N'威宁彝族回族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520527', N'5205', N'00,52,5205', N'赫章县', N'52', N'贵州省', N'5205', N'毕节市', N'520527', N'赫章县', N'', N'', N'', N'', N'3', N'1', N''), (N'5206', N'52', N'00,52', N'铜仁市', N'52', N'贵州省', N'5206', N'铜仁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'520602', N'5206', N'00,52,5206', N'碧江区', N'52', N'贵州省', N'5206', N'铜仁市', N'520602', N'碧江区', N'', N'', N'', N'', N'3', N'1', N''), (N'520603', N'5206', N'00,52,5206', N'万山区', N'52', N'贵州省', N'5206', N'铜仁市', N'520603', N'万山区', N'', N'', N'', N'', N'3', N'1', N''), (N'520621', N'5206', N'00,52,5206', N'江口县', N'52', N'贵州省', N'5206', N'铜仁市', N'520621', N'江口县', N'', N'', N'', N'', N'3', N'1', N''), (N'520622', N'5206', N'00,52,5206', N'玉屏侗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520622', N'玉屏侗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520623', N'5206', N'00,52,5206', N'石阡县', N'52', N'贵州省', N'5206', N'铜仁市', N'520623', N'石阡县', N'', N'', N'', N'', N'3', N'1', N''), (N'520624', N'5206', N'00,52,5206', N'思南县', N'52', N'贵州省', N'5206', N'铜仁市', N'520624', N'思南县', N'', N'', N'', N'', N'3', N'1', N''), (N'520625', N'5206', N'00,52,5206', N'印江土家族苗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520625', N'印江土家族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520626', N'5206', N'00,52,5206', N'德江县', N'52', N'贵州省', N'5206', N'铜仁市', N'520626', N'德江县', N'', N'', N'', N'', N'3', N'1', N''), (N'520627', N'5206', N'00,52,5206', N'沿河土家族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520627', N'沿河土家族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'520628', N'5206', N'00,52,5206', N'松桃苗族自治县', N'52', N'贵州省', N'5206', N'铜仁市', N'520628', N'松桃苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5223', N'52', N'00,52', N'黔西南布依族苗族自治州', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522301', N'5223', N'00,52,5223', N'兴义市', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522301', N'兴义市', N'', N'', N'', N'', N'3', N'1', N''), (N'522302', N'5223', N'00,52,5223', N'兴仁市', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522302', N'兴仁市', N'', N'', N'', N'', N'3', N'1', N''), (N'522323', N'5223', N'00,52,5223', N'普安县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522323', N'普安县', N'', N'', N'', N'', N'3', N'1', N''), (N'522324', N'5223', N'00,52,5223', N'晴隆县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522324', N'晴隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'522325', N'5223', N'00,52,5223', N'贞丰县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522325', N'贞丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'522326', N'5223', N'00,52,5223', N'望谟县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522326', N'望谟县', N'', N'', N'', N'', N'3', N'1', N''), (N'522327', N'5223', N'00,52,5223', N'册亨县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522327', N'册亨县', N'', N'', N'', N'', N'3', N'1', N''), (N'522328', N'5223', N'00,52,5223', N'安龙县', N'52', N'贵州省', N'5223', N'黔西南布依族苗族自治州', N'522328', N'安龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'5226', N'52', N'00,52', N'黔东南苗族侗族自治州', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522601', N'5226', N'00,52,5226', N'凯里市', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522601', N'凯里市', N'', N'', N'', N'', N'3', N'1', N''), (N'522622', N'5226', N'00,52,5226', N'黄平县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522622', N'黄平县', N'', N'', N'', N'', N'3', N'1', N''), (N'522623', N'5226', N'00,52,5226', N'施秉县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522623', N'施秉县', N'', N'', N'', N'', N'3', N'1', N''), (N'522624', N'5226', N'00,52,5226', N'三穗县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522624', N'三穗县', N'', N'', N'', N'', N'3', N'1', N''), (N'522625', N'5226', N'00,52,5226', N'镇远县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522625', N'镇远县', N'', N'', N'', N'', N'3', N'1', N''), (N'522626', N'5226', N'00,52,5226', N'岑巩县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522626', N'岑巩县', N'', N'', N'', N'', N'3', N'1', N''), (N'522627', N'5226', N'00,52,5226', N'天柱县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522627', N'天柱县', N'', N'', N'', N'', N'3', N'1', N''), (N'522628', N'5226', N'00,52,5226', N'锦屏县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522628', N'锦屏县', N'', N'', N'', N'', N'3', N'1', N''), (N'522629', N'5226', N'00,52,5226', N'剑河县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522629', N'剑河县', N'', N'', N'', N'', N'3', N'1', N''), (N'522630', N'5226', N'00,52,5226', N'台江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522630', N'台江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522631', N'5226', N'00,52,5226', N'黎平县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522631', N'黎平县', N'', N'', N'', N'', N'3', N'1', N''), (N'522632', N'5226', N'00,52,5226', N'榕江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522632', N'榕江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522633', N'5226', N'00,52,5226', N'从江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522633', N'从江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522634', N'5226', N'00,52,5226', N'雷山县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522634', N'雷山县', N'', N'', N'', N'', N'3', N'1', N''), (N'522635', N'5226', N'00,52,5226', N'麻江县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522635', N'麻江县', N'', N'', N'', N'', N'3', N'1', N''), (N'522636', N'5226', N'00,52,5226', N'丹寨县', N'52', N'贵州省', N'5226', N'黔东南苗族侗族自治州', N'522636', N'丹寨县', N'', N'', N'', N'', N'3', N'1', N''), (N'5227', N'52', N'00,52', N'黔南布依族苗族自治州', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'522701', N'5227', N'00,52,5227', N'都匀市', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522701', N'都匀市', N'', N'', N'', N'', N'3', N'1', N''), (N'522702', N'5227', N'00,52,5227', N'福泉市', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522702', N'福泉市', N'', N'', N'', N'', N'3', N'1', N''), (N'522722', N'5227', N'00,52,5227', N'荔波县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522722', N'荔波县', N'', N'', N'', N'', N'3', N'1', N''), (N'522723', N'5227', N'00,52,5227', N'贵定县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522723', N'贵定县', N'', N'', N'', N'', N'3', N'1', N''), (N'522725', N'5227', N'00,52,5227', N'瓮安县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522725', N'瓮安县', N'', N'', N'', N'', N'3', N'1', N''), (N'522726', N'5227', N'00,52,5227', N'独山县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522726', N'独山县', N'', N'', N'', N'', N'3', N'1', N''), (N'522727', N'5227', N'00,52,5227', N'平塘县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522727', N'平塘县', N'', N'', N'', N'', N'3', N'1', N''), (N'522728', N'5227', N'00,52,5227', N'罗甸县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522728', N'罗甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'522729', N'5227', N'00,52,5227', N'长顺县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522729', N'长顺县', N'', N'', N'', N'', N'3', N'1', N''), (N'522730', N'5227', N'00,52,5227', N'龙里县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522730', N'龙里县', N'', N'', N'', N'', N'3', N'1', N''), (N'522731', N'5227', N'00,52,5227', N'惠水县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522731', N'惠水县', N'', N'', N'', N'', N'3', N'1', N''), (N'522732', N'5227', N'00,52,5227', N'三都水族自治县', N'52', N'贵州省', N'5227', N'黔南布依族苗族自治州', N'522732', N'三都水族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'53', N'00', N'00', N'云南省', N'53', N'云南省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5301', N'53', N'00,53', N'昆明市', N'53', N'云南省', N'5301', N'昆明市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530102', N'5301', N'00,53,5301', N'五华区', N'53', N'云南省', N'5301', N'昆明市', N'530102', N'五华区', N'', N'', N'', N'', N'3', N'1', N''), (N'530103', N'5301', N'00,53,5301', N'盘龙区', N'53', N'云南省', N'5301', N'昆明市', N'530103', N'盘龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'530111', N'5301', N'00,53,5301', N'官渡区', N'53', N'云南省', N'5301', N'昆明市', N'530111', N'官渡区', N'', N'', N'', N'', N'3', N'1', N''), (N'530112', N'5301', N'00,53,5301', N'西山区', N'53', N'云南省', N'5301', N'昆明市', N'530112', N'西山区', N'', N'', N'', N'', N'3', N'1', N''), (N'530113', N'5301', N'00,53,5301', N'东川区', N'53', N'云南省', N'5301', N'昆明市', N'530113', N'东川区', N'', N'', N'', N'', N'3', N'1', N''), (N'530114', N'5301', N'00,53,5301', N'呈贡区', N'53', N'云南省', N'5301', N'昆明市', N'530114', N'呈贡区', N'', N'', N'', N'', N'3', N'1', N''), (N'530115', N'5301', N'00,53,5301', N'晋宁区', N'53', N'云南省', N'5301', N'昆明市', N'530115', N'晋宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'530124', N'5301', N'00,53,5301', N'富民县', N'53', N'云南省', N'5301', N'昆明市', N'530124', N'富民县', N'', N'', N'', N'', N'3', N'1', N''), (N'530125', N'5301', N'00,53,5301', N'宜良县', N'53', N'云南省', N'5301', N'昆明市', N'530125', N'宜良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530126', N'5301', N'00,53,5301', N'石林彝族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530126', N'石林彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530127', N'5301', N'00,53,5301', N'嵩明县', N'53', N'云南省', N'5301', N'昆明市', N'530127', N'嵩明县', N'', N'', N'', N'', N'3', N'1', N''), (N'530128', N'5301', N'00,53,5301', N'禄劝彝族苗族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530128', N'禄劝彝族苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530129', N'5301', N'00,53,5301', N'寻甸回族彝族自治县', N'53', N'云南省', N'5301', N'昆明市', N'530129', N'寻甸回族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530181', N'5301', N'00,53,5301', N'安宁市', N'53', N'云南省', N'5301', N'昆明市', N'530181', N'安宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'5303', N'53', N'00,53', N'曲靖市', N'53', N'云南省', N'5303', N'曲靖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530302', N'5303', N'00,53,5303', N'麒麟区', N'53', N'云南省', N'5303', N'曲靖市', N'530302', N'麒麟区', N'', N'', N'', N'', N'3', N'1', N''), (N'530303', N'5303', N'00,53,5303', N'沾益区', N'53', N'云南省', N'5303', N'曲靖市', N'530303', N'沾益区', N'', N'', N'', N'', N'3', N'1', N''), (N'530304', N'5303', N'00,53,5303', N'马龙区', N'53', N'云南省', N'5303', N'曲靖市', N'530304', N'马龙区', N'', N'', N'', N'', N'3', N'1', N''), (N'530322', N'5303', N'00,53,5303', N'陆良县', N'53', N'云南省', N'5303', N'曲靖市', N'530322', N'陆良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530323', N'5303', N'00,53,5303', N'师宗县', N'53', N'云南省', N'5303', N'曲靖市', N'530323', N'师宗县', N'', N'', N'', N'', N'3', N'1', N''), (N'530324', N'5303', N'00,53,5303', N'罗平县', N'53', N'云南省', N'5303', N'曲靖市', N'530324', N'罗平县', N'', N'', N'', N'', N'3', N'1', N''), (N'530325', N'5303', N'00,53,5303', N'富源县', N'53', N'云南省', N'5303', N'曲靖市', N'530325', N'富源县', N'', N'', N'', N'', N'3', N'1', N''), (N'530326', N'5303', N'00,53,5303', N'会泽县', N'53', N'云南省', N'5303', N'曲靖市', N'530326', N'会泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'530381', N'5303', N'00,53,5303', N'宣威市', N'53', N'云南省', N'5303', N'曲靖市', N'530381', N'宣威市', N'', N'', N'', N'', N'3', N'1', N''), (N'5304', N'53', N'00,53', N'玉溪市', N'53', N'云南省', N'5304', N'玉溪市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530402', N'5304', N'00,53,5304', N'红塔区', N'53', N'云南省', N'5304', N'玉溪市', N'530402', N'红塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'530403', N'5304', N'00,53,5304', N'江川区', N'53', N'云南省', N'5304', N'玉溪市', N'530403', N'江川区', N'', N'', N'', N'', N'3', N'1', N''), (N'530423', N'5304', N'00,53,5304', N'通海县', N'53', N'云南省', N'5304', N'玉溪市', N'530423', N'通海县', N'', N'', N'', N'', N'3', N'1', N''), (N'530424', N'5304', N'00,53,5304', N'华宁县', N'53', N'云南省', N'5304', N'玉溪市', N'530424', N'华宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'530425', N'5304', N'00,53,5304', N'易门县', N'53', N'云南省', N'5304', N'玉溪市', N'530425', N'易门县', N'', N'', N'', N'', N'3', N'1', N''), (N'530426', N'5304', N'00,53,5304', N'峨山彝族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530426', N'峨山彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530427', N'5304', N'00,53,5304', N'新平彝族傣族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530427', N'新平彝族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530428', N'5304', N'00,53,5304', N'元江哈尼族彝族傣族自治县', N'53', N'云南省', N'5304', N'玉溪市', N'530428', N'元江哈尼族彝族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530481', N'5304', N'00,53,5304', N'澄江市', N'53', N'云南省', N'5304', N'玉溪市', N'530481', N'澄江市', N'', N'', N'', N'', N'3', N'1', N''), (N'5305', N'53', N'00,53', N'保山市', N'53', N'云南省', N'5305', N'保山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530502', N'5305', N'00,53,5305', N'隆阳区', N'53', N'云南省', N'5305', N'保山市', N'530502', N'隆阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'530521', N'5305', N'00,53,5305', N'施甸县', N'53', N'云南省', N'5305', N'保山市', N'530521', N'施甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'530523', N'5305', N'00,53,5305', N'龙陵县', N'53', N'云南省', N'5305', N'保山市', N'530523', N'龙陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'530524', N'5305', N'00,53,5305', N'昌宁县', N'53', N'云南省', N'5305', N'保山市', N'530524', N'昌宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'530581', N'5305', N'00,53,5305', N'腾冲市', N'53', N'云南省', N'5305', N'保山市', N'530581', N'腾冲市', N'', N'', N'', N'', N'3', N'1', N''), (N'5306', N'53', N'00,53', N'昭通市', N'53', N'云南省', N'5306', N'昭通市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530602', N'5306', N'00,53,5306', N'昭阳区', N'53', N'云南省', N'5306', N'昭通市', N'530602', N'昭阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'530621', N'5306', N'00,53,5306', N'鲁甸县', N'53', N'云南省', N'5306', N'昭通市', N'530621', N'鲁甸县', N'', N'', N'', N'', N'3', N'1', N''), (N'530622', N'5306', N'00,53,5306', N'巧家县', N'53', N'云南省', N'5306', N'昭通市', N'530622', N'巧家县', N'', N'', N'', N'', N'3', N'1', N''), (N'530623', N'5306', N'00,53,5306', N'盐津县', N'53', N'云南省', N'5306', N'昭通市', N'530623', N'盐津县', N'', N'', N'', N'', N'3', N'1', N''), (N'530624', N'5306', N'00,53,5306', N'大关县', N'53', N'云南省', N'5306', N'昭通市', N'530624', N'大关县', N'', N'', N'', N'', N'3', N'1', N''), (N'530625', N'5306', N'00,53,5306', N'永善县', N'53', N'云南省', N'5306', N'昭通市', N'530625', N'永善县', N'', N'', N'', N'', N'3', N'1', N''), (N'530626', N'5306', N'00,53,5306', N'绥江县', N'53', N'云南省', N'5306', N'昭通市', N'530626', N'绥江县', N'', N'', N'', N'', N'3', N'1', N''), (N'530627', N'5306', N'00,53,5306', N'镇雄县', N'53', N'云南省', N'5306', N'昭通市', N'530627', N'镇雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'530628', N'5306', N'00,53,5306', N'彝良县', N'53', N'云南省', N'5306', N'昭通市', N'530628', N'彝良县', N'', N'', N'', N'', N'3', N'1', N''), (N'530629', N'5306', N'00,53,5306', N'威信县', N'53', N'云南省', N'5306', N'昭通市', N'530629', N'威信县', N'', N'', N'', N'', N'3', N'1', N''), (N'530681', N'5306', N'00,53,5306', N'水富市', N'53', N'云南省', N'5306', N'昭通市', N'530681', N'水富市', N'', N'', N'', N'', N'3', N'1', N''), (N'5307', N'53', N'00,53', N'丽江市', N'53', N'云南省', N'5307', N'丽江市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530702', N'5307', N'00,53,5307', N'古城区', N'53', N'云南省', N'5307', N'丽江市', N'530702', N'古城区', N'', N'', N'', N'', N'3', N'1', N''), (N'530721', N'5307', N'00,53,5307', N'玉龙纳西族自治县', N'53', N'云南省', N'5307', N'丽江市', N'530721', N'玉龙纳西族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530722', N'5307', N'00,53,5307', N'永胜县', N'53', N'云南省', N'5307', N'丽江市', N'530722', N'永胜县', N'', N'', N'', N'', N'3', N'1', N''), (N'530723', N'5307', N'00,53,5307', N'华坪县', N'53', N'云南省', N'5307', N'丽江市', N'530723', N'华坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'530724', N'5307', N'00,53,5307', N'宁蒗彝族自治县', N'53', N'云南省', N'5307', N'丽江市', N'530724', N'宁蒗彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5308', N'53', N'00,53', N'普洱市', N'53', N'云南省', N'5308', N'普洱市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530802', N'5308', N'00,53,5308', N'思茅区', N'53', N'云南省', N'5308', N'普洱市', N'530802', N'思茅区', N'', N'', N'', N'', N'3', N'1', N''), (N'530821', N'5308', N'00,53,5308', N'宁洱哈尼族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530821', N'宁洱哈尼族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530822', N'5308', N'00,53,5308', N'墨江哈尼族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530822', N'墨江哈尼族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530823', N'5308', N'00,53,5308', N'景东彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530823', N'景东彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530824', N'5308', N'00,53,5308', N'景谷傣族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530824', N'景谷傣族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530825', N'5308', N'00,53,5308', N'镇沅彝族哈尼族拉祜族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530825', N'镇沅彝族哈尼族拉祜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530826', N'5308', N'00,53,5308', N'江城哈尼族彝族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530826', N'江城哈尼族彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530827', N'5308', N'00,53,5308', N'孟连傣族拉祜族佤族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530827', N'孟连傣族拉祜族佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530828', N'5308', N'00,53,5308', N'澜沧拉祜族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530828', N'澜沧拉祜族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530829', N'5308', N'00,53,5308', N'西盟佤族自治县', N'53', N'云南省', N'5308', N'普洱市', N'530829', N'西盟佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5309', N'53', N'00,53', N'临沧市', N'53', N'云南省', N'5309', N'临沧市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'530902', N'5309', N'00,53,5309', N'临翔区', N'53', N'云南省', N'5309', N'临沧市', N'530902', N'临翔区', N'', N'', N'', N'', N'3', N'1', N''), (N'530921', N'5309', N'00,53,5309', N'凤庆县', N'53', N'云南省', N'5309', N'临沧市', N'530921', N'凤庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'530922', N'5309', N'00,53,5309', N'云县', N'53', N'云南省', N'5309', N'临沧市', N'530922', N'云县', N'', N'', N'', N'', N'3', N'1', N''), (N'530923', N'5309', N'00,53,5309', N'永德县', N'53', N'云南省', N'5309', N'临沧市', N'530923', N'永德县', N'', N'', N'', N'', N'3', N'1', N''), (N'530924', N'5309', N'00,53,5309', N'镇康县', N'53', N'云南省', N'5309', N'临沧市', N'530924', N'镇康县', N'', N'', N'', N'', N'3', N'1', N''), (N'530925', N'5309', N'00,53,5309', N'双江拉祜族佤族布朗族傣族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530925', N'双江拉祜族佤族布朗族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530926', N'5309', N'00,53,5309', N'耿马傣族佤族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530926', N'耿马傣族佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'530927', N'5309', N'00,53,5309', N'沧源佤族自治县', N'53', N'云南省', N'5309', N'临沧市', N'530927', N'沧源佤族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5323', N'53', N'00,53', N'楚雄彝族自治州', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532301', N'5323', N'00,53,5323', N'楚雄市', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532301', N'楚雄市', N'', N'', N'', N'', N'3', N'1', N''), (N'532322', N'5323', N'00,53,5323', N'双柏县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532322', N'双柏县', N'', N'', N'', N'', N'3', N'1', N''), (N'532323', N'5323', N'00,53,5323', N'牟定县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532323', N'牟定县', N'', N'', N'', N'', N'3', N'1', N''), (N'532324', N'5323', N'00,53,5323', N'南华县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532324', N'南华县', N'', N'', N'', N'', N'3', N'1', N''), (N'532325', N'5323', N'00,53,5323', N'姚安县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532325', N'姚安县', N'', N'', N'', N'', N'3', N'1', N''), (N'532326', N'5323', N'00,53,5323', N'大姚县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532326', N'大姚县', N'', N'', N'', N'', N'3', N'1', N''), (N'532327', N'5323', N'00,53,5323', N'永仁县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532327', N'永仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'532328', N'5323', N'00,53,5323', N'元谋县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532328', N'元谋县', N'', N'', N'', N'', N'3', N'1', N''), (N'532329', N'5323', N'00,53,5323', N'武定县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532329', N'武定县', N'', N'', N'', N'', N'3', N'1', N''), (N'532331', N'5323', N'00,53,5323', N'禄丰县', N'53', N'云南省', N'5323', N'楚雄彝族自治州', N'532331', N'禄丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'5325', N'53', N'00,53', N'红河哈尼族彝族自治州', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532501', N'5325', N'00,53,5325', N'个旧市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532501', N'个旧市', N'', N'', N'', N'', N'3', N'1', N''), (N'532502', N'5325', N'00,53,5325', N'开远市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532502', N'开远市', N'', N'', N'', N'', N'3', N'1', N''), (N'532503', N'5325', N'00,53,5325', N'蒙自市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532503', N'蒙自市', N'', N'', N'', N'', N'3', N'1', N''), (N'532504', N'5325', N'00,53,5325', N'弥勒市', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532504', N'弥勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'532523', N'5325', N'00,53,5325', N'屏边苗族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532523', N'屏边苗族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532524', N'5325', N'00,53,5325', N'建水县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532524', N'建水县', N'', N'', N'', N'', N'3', N'1', N''), (N'532525', N'5325', N'00,53,5325', N'石屏县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532525', N'石屏县', N'', N'', N'', N'', N'3', N'1', N''), (N'532527', N'5325', N'00,53,5325', N'泸西县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532527', N'泸西县', N'', N'', N'', N'', N'3', N'1', N''), (N'532528', N'5325', N'00,53,5325', N'元阳县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532528', N'元阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'532529', N'5325', N'00,53,5325', N'红河县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532529', N'红河县', N'', N'', N'', N'', N'3', N'1', N''), (N'532530', N'5325', N'00,53,5325', N'金平苗族瑶族傣族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532530', N'金平苗族瑶族傣族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532531', N'5325', N'00,53,5325', N'绿春县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532531', N'绿春县', N'', N'', N'', N'', N'3', N'1', N''), (N'532532', N'5325', N'00,53,5325', N'河口瑶族自治县', N'53', N'云南省', N'5325', N'红河哈尼族彝族自治州', N'532532', N'河口瑶族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5326', N'53', N'00,53', N'文山壮族苗族自治州', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532601', N'5326', N'00,53,5326', N'文山市', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532601', N'文山市', N'', N'', N'', N'', N'3', N'1', N''), (N'532622', N'5326', N'00,53,5326', N'砚山县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532622', N'砚山县', N'', N'', N'', N'', N'3', N'1', N''), (N'532623', N'5326', N'00,53,5326', N'西畴县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532623', N'西畴县', N'', N'', N'', N'', N'3', N'1', N''), (N'532624', N'5326', N'00,53,5326', N'麻栗坡县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532624', N'麻栗坡县', N'', N'', N'', N'', N'3', N'1', N''), (N'532625', N'5326', N'00,53,5326', N'马关县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532625', N'马关县', N'', N'', N'', N'', N'3', N'1', N''), (N'532626', N'5326', N'00,53,5326', N'丘北县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532626', N'丘北县', N'', N'', N'', N'', N'3', N'1', N''), (N'532627', N'5326', N'00,53,5326', N'广南县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532627', N'广南县', N'', N'', N'', N'', N'3', N'1', N''), (N'532628', N'5326', N'00,53,5326', N'富宁县', N'53', N'云南省', N'5326', N'文山壮族苗族自治州', N'532628', N'富宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'5328', N'53', N'00,53', N'西双版纳傣族自治州', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532801', N'5328', N'00,53,5328', N'景洪市', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532801', N'景洪市', N'', N'', N'', N'', N'3', N'1', N''), (N'532822', N'5328', N'00,53,5328', N'勐海县', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532822', N'勐海县', N'', N'', N'', N'', N'3', N'1', N''), (N'532823', N'5328', N'00,53,5328', N'勐腊县', N'53', N'云南省', N'5328', N'西双版纳傣族自治州', N'532823', N'勐腊县', N'', N'', N'', N'', N'3', N'1', N''), (N'5329', N'53', N'00,53', N'大理白族自治州', N'53', N'云南省', N'5329', N'大理白族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'532901', N'5329', N'00,53,5329', N'大理市', N'53', N'云南省', N'5329', N'大理白族自治州', N'532901', N'大理市', N'', N'', N'', N'', N'3', N'1', N''), (N'532922', N'5329', N'00,53,5329', N'漾濞彝族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532922', N'漾濞彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532923', N'5329', N'00,53,5329', N'祥云县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532923', N'祥云县', N'', N'', N'', N'', N'3', N'1', N''), (N'532924', N'5329', N'00,53,5329', N'宾川县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532924', N'宾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'532925', N'5329', N'00,53,5329', N'弥渡县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532925', N'弥渡县', N'', N'', N'', N'', N'3', N'1', N''), (N'532926', N'5329', N'00,53,5329', N'南涧彝族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532926', N'南涧彝族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532927', N'5329', N'00,53,5329', N'巍山彝族回族自治县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532927', N'巍山彝族回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'532928', N'5329', N'00,53,5329', N'永平县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532928', N'永平县', N'', N'', N'', N'', N'3', N'1', N''), (N'532929', N'5329', N'00,53,5329', N'云龙县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532929', N'云龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'532930', N'5329', N'00,53,5329', N'洱源县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532930', N'洱源县', N'', N'', N'', N'', N'3', N'1', N''), (N'532931', N'5329', N'00,53,5329', N'剑川县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532931', N'剑川县', N'', N'', N'', N'', N'3', N'1', N''), (N'532932', N'5329', N'00,53,5329', N'鹤庆县', N'53', N'云南省', N'5329', N'大理白族自治州', N'532932', N'鹤庆县', N'', N'', N'', N'', N'3', N'1', N''), (N'5331', N'53', N'00,53', N'德宏傣族景颇族自治州', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533102', N'5331', N'00,53,5331', N'瑞丽市', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533102', N'瑞丽市', N'', N'', N'', N'', N'3', N'1', N''), (N'533103', N'5331', N'00,53,5331', N'芒市', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533103', N'芒市', N'', N'', N'', N'', N'3', N'1', N''), (N'533122', N'5331', N'00,53,5331', N'梁河县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533122', N'梁河县', N'', N'', N'', N'', N'3', N'1', N''), (N'533123', N'5331', N'00,53,5331', N'盈江县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533123', N'盈江县', N'', N'', N'', N'', N'3', N'1', N''), (N'533124', N'5331', N'00,53,5331', N'陇川县', N'53', N'云南省', N'5331', N'德宏傣族景颇族自治州', N'533124', N'陇川县', N'', N'', N'', N'', N'3', N'1', N''), (N'5333', N'53', N'00,53', N'怒江傈僳族自治州', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533301', N'5333', N'00,53,5333', N'泸水市', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533301', N'泸水市', N'', N'', N'', N'', N'3', N'1', N''), (N'533323', N'5333', N'00,53,5333', N'福贡县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533323', N'福贡县', N'', N'', N'', N'', N'3', N'1', N''), (N'533324', N'5333', N'00,53,5333', N'贡山独龙族怒族自治县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533324', N'贡山独龙族怒族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'533325', N'5333', N'00,53,5333', N'兰坪白族普米族自治县', N'53', N'云南省', N'5333', N'怒江傈僳族自治州', N'533325', N'兰坪白族普米族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'5334', N'53', N'00,53', N'迪庆藏族自治州', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'533401', N'5334', N'00,53,5334', N'香格里拉市', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533401', N'香格里拉市', N'', N'', N'', N'', N'3', N'1', N''), (N'533422', N'5334', N'00,53,5334', N'德钦县', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533422', N'德钦县', N'', N'', N'', N'', N'3', N'1', N''), (N'533423', N'5334', N'00,53,5334', N'维西傈僳族自治县', N'53', N'云南省', N'5334', N'迪庆藏族自治州', N'533423', N'维西傈僳族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'54', N'00', N'00', N'西藏自治区', N'54', N'西藏自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'5401', N'54', N'00,54', N'拉萨市', N'54', N'西藏自治区', N'5401', N'拉萨市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540102', N'5401', N'00,54,5401', N'城关区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540102', N'城关区', N'', N'', N'', N'', N'3', N'1', N''), (N'540103', N'5401', N'00,54,5401', N'堆龙德庆区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540103', N'堆龙德庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'540104', N'5401', N'00,54,5401', N'达孜区', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540104', N'达孜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540121', N'5401', N'00,54,5401', N'林周县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540121', N'林周县', N'', N'', N'', N'', N'3', N'1', N''), (N'540122', N'5401', N'00,54,5401', N'当雄县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540122', N'当雄县', N'', N'', N'', N'', N'3', N'1', N''), (N'540123', N'5401', N'00,54,5401', N'尼木县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540123', N'尼木县', N'', N'', N'', N'', N'3', N'1', N''), (N'540124', N'5401', N'00,54,5401', N'曲水县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540124', N'曲水县', N'', N'', N'', N'', N'3', N'1', N''), (N'540127', N'5401', N'00,54,5401', N'墨竹工卡县', N'54', N'西藏自治区', N'5401', N'拉萨市', N'540127', N'墨竹工卡县', N'', N'', N'', N'', N'3', N'1', N''), (N'5402', N'54', N'00,54', N'日喀则市', N'54', N'西藏自治区', N'5402', N'日喀则市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540202', N'5402', N'00,54,5402', N'桑珠孜区', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540202', N'桑珠孜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540221', N'5402', N'00,54,5402', N'南木林县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540221', N'南木林县', N'', N'', N'', N'', N'3', N'1', N''), (N'540222', N'5402', N'00,54,5402', N'江孜县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540222', N'江孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'540223', N'5402', N'00,54,5402', N'定日县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540223', N'定日县', N'', N'', N'', N'', N'3', N'1', N''), (N'540224', N'5402', N'00,54,5402', N'萨迦县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540224', N'萨迦县', N'', N'', N'', N'', N'3', N'1', N''), (N'540225', N'5402', N'00,54,5402', N'拉孜县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540225', N'拉孜县', N'', N'', N'', N'', N'3', N'1', N''), (N'540226', N'5402', N'00,54,5402', N'昂仁县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540226', N'昂仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'540227', N'5402', N'00,54,5402', N'谢通门县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540227', N'谢通门县', N'', N'', N'', N'', N'3', N'1', N''), (N'540228', N'5402', N'00,54,5402', N'白朗县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540228', N'白朗县', N'', N'', N'', N'', N'3', N'1', N''), (N'540229', N'5402', N'00,54,5402', N'仁布县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540229', N'仁布县', N'', N'', N'', N'', N'3', N'1', N''), (N'540230', N'5402', N'00,54,5402', N'康马县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540230', N'康马县', N'', N'', N'', N'', N'3', N'1', N''), (N'540231', N'5402', N'00,54,5402', N'定结县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540231', N'定结县', N'', N'', N'', N'', N'3', N'1', N''), (N'540232', N'5402', N'00,54,5402', N'仲巴县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540232', N'仲巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'540233', N'5402', N'00,54,5402', N'亚东县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540233', N'亚东县', N'', N'', N'', N'', N'3', N'1', N''), (N'540234', N'5402', N'00,54,5402', N'吉隆县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540234', N'吉隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'540235', N'5402', N'00,54,5402', N'聂拉木县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540235', N'聂拉木县', N'', N'', N'', N'', N'3', N'1', N''), (N'540236', N'5402', N'00,54,5402', N'萨嘎县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540236', N'萨嘎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540237', N'5402', N'00,54,5402', N'岗巴县', N'54', N'西藏自治区', N'5402', N'日喀则市', N'540237', N'岗巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'5403', N'54', N'00,54', N'昌都市', N'54', N'西藏自治区', N'5403', N'昌都市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540302', N'5403', N'00,54,5403', N'卡若区', N'54', N'西藏自治区', N'5403', N'昌都市', N'540302', N'卡若区', N'', N'', N'', N'', N'3', N'1', N''), (N'540321', N'5403', N'00,54,5403', N'江达县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540321', N'江达县', N'', N'', N'', N'', N'3', N'1', N''), (N'540322', N'5403', N'00,54,5403', N'贡觉县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540322', N'贡觉县', N'', N'', N'', N'', N'3', N'1', N''), (N'540323', N'5403', N'00,54,5403', N'类乌齐县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540323', N'类乌齐县', N'', N'', N'', N'', N'3', N'1', N''), (N'540324', N'5403', N'00,54,5403', N'丁青县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540324', N'丁青县', N'', N'', N'', N'', N'3', N'1', N''), (N'540325', N'5403', N'00,54,5403', N'察雅县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540325', N'察雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'540326', N'5403', N'00,54,5403', N'八宿县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540326', N'八宿县', N'', N'', N'', N'', N'3', N'1', N''), (N'540327', N'5403', N'00,54,5403', N'左贡县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540327', N'左贡县', N'', N'', N'', N'', N'3', N'1', N''), (N'540328', N'5403', N'00,54,5403', N'芒康县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540328', N'芒康县', N'', N'', N'', N'', N'3', N'1', N''), (N'540329', N'5403', N'00,54,5403', N'洛隆县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540329', N'洛隆县', N'', N'', N'', N'', N'3', N'1', N''), (N'540330', N'5403', N'00,54,5403', N'边坝县', N'54', N'西藏自治区', N'5403', N'昌都市', N'540330', N'边坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'5404', N'54', N'00,54', N'林芝市', N'54', N'西藏自治区', N'5404', N'林芝市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540402', N'5404', N'00,54,5404', N'巴宜区', N'54', N'西藏自治区', N'5404', N'林芝市', N'540402', N'巴宜区', N'', N'', N'', N'', N'3', N'1', N''), (N'540421', N'5404', N'00,54,5404', N'工布江达县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540421', N'工布江达县', N'', N'', N'', N'', N'3', N'1', N''), (N'540422', N'5404', N'00,54,5404', N'米林县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540422', N'米林县', N'', N'', N'', N'', N'3', N'1', N''), (N'540423', N'5404', N'00,54,5404', N'墨脱县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540423', N'墨脱县', N'', N'', N'', N'', N'3', N'1', N''), (N'540424', N'5404', N'00,54,5404', N'波密县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540424', N'波密县', N'', N'', N'', N'', N'3', N'1', N''), (N'540425', N'5404', N'00,54,5404', N'察隅县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540425', N'察隅县', N'', N'', N'', N'', N'3', N'1', N''), (N'540426', N'5404', N'00,54,5404', N'朗县', N'54', N'西藏自治区', N'5404', N'林芝市', N'540426', N'朗县', N'', N'', N'', N'', N'3', N'1', N''), (N'5405', N'54', N'00,54', N'山南市', N'54', N'西藏自治区', N'5405', N'山南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540502', N'5405', N'00,54,5405', N'乃东区', N'54', N'西藏自治区', N'5405', N'山南市', N'540502', N'乃东区', N'', N'', N'', N'', N'3', N'1', N''), (N'540521', N'5405', N'00,54,5405', N'扎囊县', N'54', N'西藏自治区', N'5405', N'山南市', N'540521', N'扎囊县', N'', N'', N'', N'', N'3', N'1', N''), (N'540522', N'5405', N'00,54,5405', N'贡嘎县', N'54', N'西藏自治区', N'5405', N'山南市', N'540522', N'贡嘎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540523', N'5405', N'00,54,5405', N'桑日县', N'54', N'西藏自治区', N'5405', N'山南市', N'540523', N'桑日县', N'', N'', N'', N'', N'3', N'1', N''), (N'540524', N'5405', N'00,54,5405', N'琼结县', N'54', N'西藏自治区', N'5405', N'山南市', N'540524', N'琼结县', N'', N'', N'', N'', N'3', N'1', N''), (N'540525', N'5405', N'00,54,5405', N'曲松县', N'54', N'西藏自治区', N'5405', N'山南市', N'540525', N'曲松县', N'', N'', N'', N'', N'3', N'1', N''), (N'540526', N'5405', N'00,54,5405', N'措美县', N'54', N'西藏自治区', N'5405', N'山南市', N'540526', N'措美县', N'', N'', N'', N'', N'3', N'1', N''), (N'540527', N'5405', N'00,54,5405', N'洛扎县', N'54', N'西藏自治区', N'5405', N'山南市', N'540527', N'洛扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540528', N'5405', N'00,54,5405', N'加查县', N'54', N'西藏自治区', N'5405', N'山南市', N'540528', N'加查县', N'', N'', N'', N'', N'3', N'1', N''), (N'540529', N'5405', N'00,54,5405', N'隆子县', N'54', N'西藏自治区', N'5405', N'山南市', N'540529', N'隆子县', N'', N'', N'', N'', N'3', N'1', N''), (N'540530', N'5405', N'00,54,5405', N'错那县', N'54', N'西藏自治区', N'5405', N'山南市', N'540530', N'错那县', N'', N'', N'', N'', N'3', N'1', N''), (N'540531', N'5405', N'00,54,5405', N'浪卡子县', N'54', N'西藏自治区', N'5405', N'山南市', N'540531', N'浪卡子县', N'', N'', N'', N'', N'3', N'1', N''), (N'5406', N'54', N'00,54', N'那曲市', N'54', N'西藏自治区', N'5406', N'那曲市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'540602', N'5406', N'00,54,5406', N'色尼区', N'54', N'西藏自治区', N'5406', N'那曲市', N'540602', N'色尼区', N'', N'', N'', N'', N'3', N'1', N''), (N'540621', N'5406', N'00,54,5406', N'嘉黎县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540621', N'嘉黎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540622', N'5406', N'00,54,5406', N'比如县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540622', N'比如县', N'', N'', N'', N'', N'3', N'1', N''), (N'540623', N'5406', N'00,54,5406', N'聂荣县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540623', N'聂荣县', N'', N'', N'', N'', N'3', N'1', N''), (N'540624', N'5406', N'00,54,5406', N'安多县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540624', N'安多县', N'', N'', N'', N'', N'3', N'1', N''), (N'540625', N'5406', N'00,54,5406', N'申扎县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540625', N'申扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'540626', N'5406', N'00,54,5406', N'索县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540626', N'索县', N'', N'', N'', N'', N'3', N'1', N''), (N'540627', N'5406', N'00,54,5406', N'班戈县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540627', N'班戈县', N'', N'', N'', N'', N'3', N'1', N''), (N'540628', N'5406', N'00,54,5406', N'巴青县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540628', N'巴青县', N'', N'', N'', N'', N'3', N'1', N''), (N'540629', N'5406', N'00,54,5406', N'尼玛县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540629', N'尼玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'540630', N'5406', N'00,54,5406', N'双湖县', N'54', N'西藏自治区', N'5406', N'那曲市', N'540630', N'双湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'5425', N'54', N'00,54', N'阿里地区', N'54', N'西藏自治区', N'5425', N'阿里地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'542521', N'5425', N'00,54,5425', N'普兰县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542521', N'普兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'542522', N'5425', N'00,54,5425', N'札达县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542522', N'札达县', N'', N'', N'', N'', N'3', N'1', N''), (N'542523', N'5425', N'00,54,5425', N'噶尔县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542523', N'噶尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'542524', N'5425', N'00,54,5425', N'日土县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542524', N'日土县', N'', N'', N'', N'', N'3', N'1', N''), (N'542525', N'5425', N'00,54,5425', N'革吉县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542525', N'革吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'542526', N'5425', N'00,54,5425', N'改则县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542526', N'改则县', N'', N'', N'', N'', N'3', N'1', N''), (N'542527', N'5425', N'00,54,5425', N'措勤县', N'54', N'西藏自治区', N'5425', N'阿里地区', N'542527', N'措勤县', N'', N'', N'', N'', N'3', N'1', N''), (N'61', N'00', N'00', N'陕西省', N'61', N'陕西省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6101', N'61', N'00,61', N'西安市', N'61', N'陕西省', N'6101', N'西安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610102', N'6101', N'00,61,6101', N'新城区', N'61', N'陕西省', N'6101', N'西安市', N'610102', N'新城区', N'', N'', N'', N'', N'3', N'1', N''), (N'610103', N'6101', N'00,61,6101', N'碑林区', N'61', N'陕西省', N'6101', N'西安市', N'610103', N'碑林区', N'', N'', N'', N'', N'3', N'1', N''), (N'610104', N'6101', N'00,61,6101', N'莲湖区', N'61', N'陕西省', N'6101', N'西安市', N'610104', N'莲湖区', N'', N'', N'', N'', N'3', N'1', N''), (N'610111', N'6101', N'00,61,6101', N'灞桥区', N'61', N'陕西省', N'6101', N'西安市', N'610111', N'灞桥区', N'', N'', N'', N'', N'3', N'1', N''), (N'610112', N'6101', N'00,61,6101', N'未央区', N'61', N'陕西省', N'6101', N'西安市', N'610112', N'未央区', N'', N'', N'', N'', N'3', N'1', N''), (N'610113', N'6101', N'00,61,6101', N'雁塔区', N'61', N'陕西省', N'6101', N'西安市', N'610113', N'雁塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'610114', N'6101', N'00,61,6101', N'阎良区', N'61', N'陕西省', N'6101', N'西安市', N'610114', N'阎良区', N'', N'', N'', N'', N'3', N'1', N''), (N'610115', N'6101', N'00,61,6101', N'临潼区', N'61', N'陕西省', N'6101', N'西安市', N'610115', N'临潼区', N'', N'', N'', N'', N'3', N'1', N''), (N'610116', N'6101', N'00,61,6101', N'长安区', N'61', N'陕西省', N'6101', N'西安市', N'610116', N'长安区', N'', N'', N'', N'', N'3', N'1', N''), (N'610117', N'6101', N'00,61,6101', N'高陵区', N'61', N'陕西省', N'6101', N'西安市', N'610117', N'高陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'610118', N'6101', N'00,61,6101', N'鄠邑区', N'61', N'陕西省', N'6101', N'西安市', N'610118', N'鄠邑区', N'', N'', N'', N'', N'3', N'1', N''), (N'610122', N'6101', N'00,61,6101', N'蓝田县', N'61', N'陕西省', N'6101', N'西安市', N'610122', N'蓝田县', N'', N'', N'', N'', N'3', N'1', N''), (N'610124', N'6101', N'00,61,6101', N'周至县', N'61', N'陕西省', N'6101', N'西安市', N'610124', N'周至县', N'', N'', N'', N'', N'3', N'1', N''), (N'6102', N'61', N'00,61', N'铜川市', N'61', N'陕西省', N'6102', N'铜川市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610202', N'6102', N'00,61,6102', N'王益区', N'61', N'陕西省', N'6102', N'铜川市', N'610202', N'王益区', N'', N'', N'', N'', N'3', N'1', N''), (N'610203', N'6102', N'00,61,6102', N'印台区', N'61', N'陕西省', N'6102', N'铜川市', N'610203', N'印台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610204', N'6102', N'00,61,6102', N'耀州区', N'61', N'陕西省', N'6102', N'铜川市', N'610204', N'耀州区', N'', N'', N'', N'', N'3', N'1', N''), (N'610222', N'6102', N'00,61,6102', N'宜君县', N'61', N'陕西省', N'6102', N'铜川市', N'610222', N'宜君县', N'', N'', N'', N'', N'3', N'1', N''), (N'6103', N'61', N'00,61', N'宝鸡市', N'61', N'陕西省', N'6103', N'宝鸡市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610302', N'6103', N'00,61,6103', N'渭滨区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610302', N'渭滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'610303', N'6103', N'00,61,6103', N'金台区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610303', N'金台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610304', N'6103', N'00,61,6103', N'陈仓区', N'61', N'陕西省', N'6103', N'宝鸡市', N'610304', N'陈仓区', N'', N'', N'', N'', N'3', N'1', N''), (N'610322', N'6103', N'00,61,6103', N'凤翔县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610322', N'凤翔县', N'', N'', N'', N'', N'3', N'1', N''), (N'610323', N'6103', N'00,61,6103', N'岐山县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610323', N'岐山县', N'', N'', N'', N'', N'3', N'1', N''), (N'610324', N'6103', N'00,61,6103', N'扶风县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610324', N'扶风县', N'', N'', N'', N'', N'3', N'1', N''), (N'610326', N'6103', N'00,61,6103', N'眉县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610326', N'眉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610327', N'6103', N'00,61,6103', N'陇县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610327', N'陇县', N'', N'', N'', N'', N'3', N'1', N''), (N'610328', N'6103', N'00,61,6103', N'千阳县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610328', N'千阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610329', N'6103', N'00,61,6103', N'麟游县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610329', N'麟游县', N'', N'', N'', N'', N'3', N'1', N''), (N'610330', N'6103', N'00,61,6103', N'凤县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610330', N'凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'610331', N'6103', N'00,61,6103', N'太白县', N'61', N'陕西省', N'6103', N'宝鸡市', N'610331', N'太白县', N'', N'', N'', N'', N'3', N'1', N''), (N'6104', N'61', N'00,61', N'咸阳市', N'61', N'陕西省', N'6104', N'咸阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610402', N'6104', N'00,61,6104', N'秦都区', N'61', N'陕西省', N'6104', N'咸阳市', N'610402', N'秦都区', N'', N'', N'', N'', N'3', N'1', N''), (N'610403', N'6104', N'00,61,6104', N'杨陵区', N'61', N'陕西省', N'6104', N'咸阳市', N'610403', N'杨陵区', N'', N'', N'', N'', N'3', N'1', N''), (N'610404', N'6104', N'00,61,6104', N'渭城区', N'61', N'陕西省', N'6104', N'咸阳市', N'610404', N'渭城区', N'', N'', N'', N'', N'3', N'1', N''), (N'610422', N'6104', N'00,61,6104', N'三原县', N'61', N'陕西省', N'6104', N'咸阳市', N'610422', N'三原县', N'', N'', N'', N'', N'3', N'1', N''), (N'610423', N'6104', N'00,61,6104', N'泾阳县', N'61', N'陕西省', N'6104', N'咸阳市', N'610423', N'泾阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610424', N'6104', N'00,61,6104', N'乾县', N'61', N'陕西省', N'6104', N'咸阳市', N'610424', N'乾县', N'', N'', N'', N'', N'3', N'1', N''), (N'610425', N'6104', N'00,61,6104', N'礼泉县', N'61', N'陕西省', N'6104', N'咸阳市', N'610425', N'礼泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610426', N'6104', N'00,61,6104', N'永寿县', N'61', N'陕西省', N'6104', N'咸阳市', N'610426', N'永寿县', N'', N'', N'', N'', N'3', N'1', N''), (N'610428', N'6104', N'00,61,6104', N'长武县', N'61', N'陕西省', N'6104', N'咸阳市', N'610428', N'长武县', N'', N'', N'', N'', N'3', N'1', N''), (N'610429', N'6104', N'00,61,6104', N'旬邑县', N'61', N'陕西省', N'6104', N'咸阳市', N'610429', N'旬邑县', N'', N'', N'', N'', N'3', N'1', N''), (N'610430', N'6104', N'00,61,6104', N'淳化县', N'61', N'陕西省', N'6104', N'咸阳市', N'610430', N'淳化县', N'', N'', N'', N'', N'3', N'1', N''), (N'610431', N'6104', N'00,61,6104', N'武功县', N'61', N'陕西省', N'6104', N'咸阳市', N'610431', N'武功县', N'', N'', N'', N'', N'3', N'1', N''), (N'610481', N'6104', N'00,61,6104', N'兴平市', N'61', N'陕西省', N'6104', N'咸阳市', N'610481', N'兴平市', N'', N'', N'', N'', N'3', N'1', N''), (N'610482', N'6104', N'00,61,6104', N'彬州市', N'61', N'陕西省', N'6104', N'咸阳市', N'610482', N'彬州市', N'', N'', N'', N'', N'3', N'1', N''), (N'6105', N'61', N'00,61', N'渭南市', N'61', N'陕西省', N'6105', N'渭南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610502', N'6105', N'00,61,6105', N'临渭区', N'61', N'陕西省', N'6105', N'渭南市', N'610502', N'临渭区', N'', N'', N'', N'', N'3', N'1', N''), (N'610503', N'6105', N'00,61,6105', N'华州区', N'61', N'陕西省', N'6105', N'渭南市', N'610503', N'华州区', N'', N'', N'', N'', N'3', N'1', N''), (N'610522', N'6105', N'00,61,6105', N'潼关县', N'61', N'陕西省', N'6105', N'渭南市', N'610522', N'潼关县', N'', N'', N'', N'', N'3', N'1', N''), (N'610523', N'6105', N'00,61,6105', N'大荔县', N'61', N'陕西省', N'6105', N'渭南市', N'610523', N'大荔县', N'', N'', N'', N'', N'3', N'1', N''), (N'610524', N'6105', N'00,61,6105', N'合阳县', N'61', N'陕西省', N'6105', N'渭南市', N'610524', N'合阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610525', N'6105', N'00,61,6105', N'澄城县', N'61', N'陕西省', N'6105', N'渭南市', N'610525', N'澄城县', N'', N'', N'', N'', N'3', N'1', N''), (N'610526', N'6105', N'00,61,6105', N'蒲城县', N'61', N'陕西省', N'6105', N'渭南市', N'610526', N'蒲城县', N'', N'', N'', N'', N'3', N'1', N''), (N'610527', N'6105', N'00,61,6105', N'白水县', N'61', N'陕西省', N'6105', N'渭南市', N'610527', N'白水县', N'', N'', N'', N'', N'3', N'1', N''), (N'610528', N'6105', N'00,61,6105', N'富平县', N'61', N'陕西省', N'6105', N'渭南市', N'610528', N'富平县', N'', N'', N'', N'', N'3', N'1', N''), (N'610581', N'6105', N'00,61,6105', N'韩城市', N'61', N'陕西省', N'6105', N'渭南市', N'610581', N'韩城市', N'', N'', N'', N'', N'3', N'1', N''), (N'610582', N'6105', N'00,61,6105', N'华阴市', N'61', N'陕西省', N'6105', N'渭南市', N'610582', N'华阴市', N'', N'', N'', N'', N'3', N'1', N''), (N'6106', N'61', N'00,61', N'延安市', N'61', N'陕西省', N'6106', N'延安市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610602', N'6106', N'00,61,6106', N'宝塔区', N'61', N'陕西省', N'6106', N'延安市', N'610602', N'宝塔区', N'', N'', N'', N'', N'3', N'1', N''), (N'610603', N'6106', N'00,61,6106', N'安塞区', N'61', N'陕西省', N'6106', N'延安市', N'610603', N'安塞区', N'', N'', N'', N'', N'3', N'1', N''), (N'610621', N'6106', N'00,61,6106', N'延长县', N'61', N'陕西省', N'6106', N'延安市', N'610621', N'延长县', N'', N'', N'', N'', N'3', N'1', N''), (N'610622', N'6106', N'00,61,6106', N'延川县', N'61', N'陕西省', N'6106', N'延安市', N'610622', N'延川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610625', N'6106', N'00,61,6106', N'志丹县', N'61', N'陕西省', N'6106', N'延安市', N'610625', N'志丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'610626', N'6106', N'00,61,6106', N'吴起县', N'61', N'陕西省', N'6106', N'延安市', N'610626', N'吴起县', N'', N'', N'', N'', N'3', N'1', N''), (N'610627', N'6106', N'00,61,6106', N'甘泉县', N'61', N'陕西省', N'6106', N'延安市', N'610627', N'甘泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610628', N'6106', N'00,61,6106', N'富县', N'61', N'陕西省', N'6106', N'延安市', N'610628', N'富县', N'', N'', N'', N'', N'3', N'1', N''), (N'610629', N'6106', N'00,61,6106', N'洛川县', N'61', N'陕西省', N'6106', N'延安市', N'610629', N'洛川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610630', N'6106', N'00,61,6106', N'宜川县', N'61', N'陕西省', N'6106', N'延安市', N'610630', N'宜川县', N'', N'', N'', N'', N'3', N'1', N''), (N'610631', N'6106', N'00,61,6106', N'黄龙县', N'61', N'陕西省', N'6106', N'延安市', N'610631', N'黄龙县', N'', N'', N'', N'', N'3', N'1', N''), (N'610632', N'6106', N'00,61,6106', N'黄陵县', N'61', N'陕西省', N'6106', N'延安市', N'610632', N'黄陵县', N'', N'', N'', N'', N'3', N'1', N''), (N'610681', N'6106', N'00,61,6106', N'子长市', N'61', N'陕西省', N'6106', N'延安市', N'610681', N'子长市', N'', N'', N'', N'', N'3', N'1', N''), (N'6107', N'61', N'00,61', N'汉中市', N'61', N'陕西省', N'6107', N'汉中市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610702', N'6107', N'00,61,6107', N'汉台区', N'61', N'陕西省', N'6107', N'汉中市', N'610702', N'汉台区', N'', N'', N'', N'', N'3', N'1', N''), (N'610703', N'6107', N'00,61,6107', N'南郑区', N'61', N'陕西省', N'6107', N'汉中市', N'610703', N'南郑区', N'', N'', N'', N'', N'3', N'1', N''), (N'610722', N'6107', N'00,61,6107', N'城固县', N'61', N'陕西省', N'6107', N'汉中市', N'610722', N'城固县', N'', N'', N'', N'', N'3', N'1', N''), (N'610723', N'6107', N'00,61,6107', N'洋县', N'61', N'陕西省', N'6107', N'汉中市', N'610723', N'洋县', N'', N'', N'', N'', N'3', N'1', N''), (N'610724', N'6107', N'00,61,6107', N'西乡县', N'61', N'陕西省', N'6107', N'汉中市', N'610724', N'西乡县', N'', N'', N'', N'', N'3', N'1', N''), (N'610725', N'6107', N'00,61,6107', N'勉县', N'61', N'陕西省', N'6107', N'汉中市', N'610725', N'勉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610726', N'6107', N'00,61,6107', N'宁强县', N'61', N'陕西省', N'6107', N'汉中市', N'610726', N'宁强县', N'', N'', N'', N'', N'3', N'1', N''), (N'610727', N'6107', N'00,61,6107', N'略阳县', N'61', N'陕西省', N'6107', N'汉中市', N'610727', N'略阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610728', N'6107', N'00,61,6107', N'镇巴县', N'61', N'陕西省', N'6107', N'汉中市', N'610728', N'镇巴县', N'', N'', N'', N'', N'3', N'1', N''), (N'610729', N'6107', N'00,61,6107', N'留坝县', N'61', N'陕西省', N'6107', N'汉中市', N'610729', N'留坝县', N'', N'', N'', N'', N'3', N'1', N''), (N'610730', N'6107', N'00,61,6107', N'佛坪县', N'61', N'陕西省', N'6107', N'汉中市', N'610730', N'佛坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'6108', N'61', N'00,61', N'榆林市', N'61', N'陕西省', N'6108', N'榆林市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610802', N'6108', N'00,61,6108', N'榆阳区', N'61', N'陕西省', N'6108', N'榆林市', N'610802', N'榆阳区', N'', N'', N'', N'', N'3', N'1', N''), (N'610803', N'6108', N'00,61,6108', N'横山区', N'61', N'陕西省', N'6108', N'榆林市', N'610803', N'横山区', N'', N'', N'', N'', N'3', N'1', N''), (N'610822', N'6108', N'00,61,6108', N'府谷县', N'61', N'陕西省', N'6108', N'榆林市', N'610822', N'府谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'610824', N'6108', N'00,61,6108', N'靖边县', N'61', N'陕西省', N'6108', N'榆林市', N'610824', N'靖边县', N'', N'', N'', N'', N'3', N'1', N''), (N'610825', N'6108', N'00,61,6108', N'定边县', N'61', N'陕西省', N'6108', N'榆林市', N'610825', N'定边县', N'', N'', N'', N'', N'3', N'1', N''), (N'610826', N'6108', N'00,61,6108', N'绥德县', N'61', N'陕西省', N'6108', N'榆林市', N'610826', N'绥德县', N'', N'', N'', N'', N'3', N'1', N''), (N'610827', N'6108', N'00,61,6108', N'米脂县', N'61', N'陕西省', N'6108', N'榆林市', N'610827', N'米脂县', N'', N'', N'', N'', N'3', N'1', N''), (N'610828', N'6108', N'00,61,6108', N'佳县', N'61', N'陕西省', N'6108', N'榆林市', N'610828', N'佳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610829', N'6108', N'00,61,6108', N'吴堡县', N'61', N'陕西省', N'6108', N'榆林市', N'610829', N'吴堡县', N'', N'', N'', N'', N'3', N'1', N''), (N'610830', N'6108', N'00,61,6108', N'清涧县', N'61', N'陕西省', N'6108', N'榆林市', N'610830', N'清涧县', N'', N'', N'', N'', N'3', N'1', N'') +GO + +INSERT INTO [dbo].[blade_region] VALUES (N'610831', N'6108', N'00,61,6108', N'子洲县', N'61', N'陕西省', N'6108', N'榆林市', N'610831', N'子洲县', N'', N'', N'', N'', N'3', N'1', N''), (N'610881', N'6108', N'00,61,6108', N'神木市', N'61', N'陕西省', N'6108', N'榆林市', N'610881', N'神木市', N'', N'', N'', N'', N'3', N'1', N''), (N'6109', N'61', N'00,61', N'安康市', N'61', N'陕西省', N'6109', N'安康市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'610902', N'6109', N'00,61,6109', N'汉滨区', N'61', N'陕西省', N'6109', N'安康市', N'610902', N'汉滨区', N'', N'', N'', N'', N'3', N'1', N''), (N'610921', N'6109', N'00,61,6109', N'汉阴县', N'61', N'陕西省', N'6109', N'安康市', N'610921', N'汉阴县', N'', N'', N'', N'', N'3', N'1', N''), (N'610922', N'6109', N'00,61,6109', N'石泉县', N'61', N'陕西省', N'6109', N'安康市', N'610922', N'石泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'610923', N'6109', N'00,61,6109', N'宁陕县', N'61', N'陕西省', N'6109', N'安康市', N'610923', N'宁陕县', N'', N'', N'', N'', N'3', N'1', N''), (N'610924', N'6109', N'00,61,6109', N'紫阳县', N'61', N'陕西省', N'6109', N'安康市', N'610924', N'紫阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610925', N'6109', N'00,61,6109', N'岚皋县', N'61', N'陕西省', N'6109', N'安康市', N'610925', N'岚皋县', N'', N'', N'', N'', N'3', N'1', N''), (N'610926', N'6109', N'00,61,6109', N'平利县', N'61', N'陕西省', N'6109', N'安康市', N'610926', N'平利县', N'', N'', N'', N'', N'3', N'1', N''), (N'610927', N'6109', N'00,61,6109', N'镇坪县', N'61', N'陕西省', N'6109', N'安康市', N'610927', N'镇坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'610928', N'6109', N'00,61,6109', N'旬阳县', N'61', N'陕西省', N'6109', N'安康市', N'610928', N'旬阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'610929', N'6109', N'00,61,6109', N'白河县', N'61', N'陕西省', N'6109', N'安康市', N'610929', N'白河县', N'', N'', N'', N'', N'3', N'1', N''), (N'6110', N'61', N'00,61', N'商洛市', N'61', N'陕西省', N'6110', N'商洛市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'611002', N'6110', N'00,61,6110', N'商州区', N'61', N'陕西省', N'6110', N'商洛市', N'611002', N'商州区', N'', N'', N'', N'', N'3', N'1', N''), (N'611021', N'6110', N'00,61,6110', N'洛南县', N'61', N'陕西省', N'6110', N'商洛市', N'611021', N'洛南县', N'', N'', N'', N'', N'3', N'1', N''), (N'611022', N'6110', N'00,61,6110', N'丹凤县', N'61', N'陕西省', N'6110', N'商洛市', N'611022', N'丹凤县', N'', N'', N'', N'', N'3', N'1', N''), (N'611023', N'6110', N'00,61,6110', N'商南县', N'61', N'陕西省', N'6110', N'商洛市', N'611023', N'商南县', N'', N'', N'', N'', N'3', N'1', N''), (N'611024', N'6110', N'00,61,6110', N'山阳县', N'61', N'陕西省', N'6110', N'商洛市', N'611024', N'山阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'611025', N'6110', N'00,61,6110', N'镇安县', N'61', N'陕西省', N'6110', N'商洛市', N'611025', N'镇安县', N'', N'', N'', N'', N'3', N'1', N''), (N'611026', N'6110', N'00,61,6110', N'柞水县', N'61', N'陕西省', N'6110', N'商洛市', N'611026', N'柞水县', N'', N'', N'', N'', N'3', N'1', N''), (N'62', N'00', N'00', N'甘肃省', N'62', N'甘肃省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6201', N'62', N'00,62', N'兰州市', N'62', N'甘肃省', N'6201', N'兰州市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620102', N'6201', N'00,62,6201', N'城关区', N'62', N'甘肃省', N'6201', N'兰州市', N'620102', N'城关区', N'', N'', N'', N'', N'3', N'1', N''), (N'620103', N'6201', N'00,62,6201', N'七里河区', N'62', N'甘肃省', N'6201', N'兰州市', N'620103', N'七里河区', N'', N'', N'', N'', N'3', N'1', N''), (N'620104', N'6201', N'00,62,6201', N'西固区', N'62', N'甘肃省', N'6201', N'兰州市', N'620104', N'西固区', N'', N'', N'', N'', N'3', N'1', N''), (N'620105', N'6201', N'00,62,6201', N'安宁区', N'62', N'甘肃省', N'6201', N'兰州市', N'620105', N'安宁区', N'', N'', N'', N'', N'3', N'1', N''), (N'620111', N'6201', N'00,62,6201', N'红古区', N'62', N'甘肃省', N'6201', N'兰州市', N'620111', N'红古区', N'', N'', N'', N'', N'3', N'1', N''), (N'620121', N'6201', N'00,62,6201', N'永登县', N'62', N'甘肃省', N'6201', N'兰州市', N'620121', N'永登县', N'', N'', N'', N'', N'3', N'1', N''), (N'620122', N'6201', N'00,62,6201', N'皋兰县', N'62', N'甘肃省', N'6201', N'兰州市', N'620122', N'皋兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'620123', N'6201', N'00,62,6201', N'榆中县', N'62', N'甘肃省', N'6201', N'兰州市', N'620123', N'榆中县', N'', N'', N'', N'', N'3', N'1', N''), (N'6202', N'62', N'00,62', N'嘉峪关市', N'62', N'甘肃省', N'6202', N'嘉峪关市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620200', N'6202', N'00,62,6202', N'嘉峪关市', N'62', N'甘肃省', N'6202', N'嘉峪关市', N'620200', N'嘉峪关市', N'', N'', N'', N'', N'3', N'1', N''), (N'6203', N'62', N'00,62', N'金昌市', N'62', N'甘肃省', N'6203', N'金昌市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620302', N'6203', N'00,62,6203', N'金川区', N'62', N'甘肃省', N'6203', N'金昌市', N'620302', N'金川区', N'', N'', N'', N'', N'3', N'1', N''), (N'620321', N'6203', N'00,62,6203', N'永昌县', N'62', N'甘肃省', N'6203', N'金昌市', N'620321', N'永昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'6204', N'62', N'00,62', N'白银市', N'62', N'甘肃省', N'6204', N'白银市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620402', N'6204', N'00,62,6204', N'白银区', N'62', N'甘肃省', N'6204', N'白银市', N'620402', N'白银区', N'', N'', N'', N'', N'3', N'1', N''), (N'620403', N'6204', N'00,62,6204', N'平川区', N'62', N'甘肃省', N'6204', N'白银市', N'620403', N'平川区', N'', N'', N'', N'', N'3', N'1', N''), (N'620421', N'6204', N'00,62,6204', N'靖远县', N'62', N'甘肃省', N'6204', N'白银市', N'620421', N'靖远县', N'', N'', N'', N'', N'3', N'1', N''), (N'620422', N'6204', N'00,62,6204', N'会宁县', N'62', N'甘肃省', N'6204', N'白银市', N'620422', N'会宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'620423', N'6204', N'00,62,6204', N'景泰县', N'62', N'甘肃省', N'6204', N'白银市', N'620423', N'景泰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6205', N'62', N'00,62', N'天水市', N'62', N'甘肃省', N'6205', N'天水市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620502', N'6205', N'00,62,6205', N'秦州区', N'62', N'甘肃省', N'6205', N'天水市', N'620502', N'秦州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620503', N'6205', N'00,62,6205', N'麦积区', N'62', N'甘肃省', N'6205', N'天水市', N'620503', N'麦积区', N'', N'', N'', N'', N'3', N'1', N''), (N'620521', N'6205', N'00,62,6205', N'清水县', N'62', N'甘肃省', N'6205', N'天水市', N'620521', N'清水县', N'', N'', N'', N'', N'3', N'1', N''), (N'620522', N'6205', N'00,62,6205', N'秦安县', N'62', N'甘肃省', N'6205', N'天水市', N'620522', N'秦安县', N'', N'', N'', N'', N'3', N'1', N''), (N'620523', N'6205', N'00,62,6205', N'甘谷县', N'62', N'甘肃省', N'6205', N'天水市', N'620523', N'甘谷县', N'', N'', N'', N'', N'3', N'1', N''), (N'620524', N'6205', N'00,62,6205', N'武山县', N'62', N'甘肃省', N'6205', N'天水市', N'620524', N'武山县', N'', N'', N'', N'', N'3', N'1', N''), (N'620525', N'6205', N'00,62,6205', N'张家川回族自治县', N'62', N'甘肃省', N'6205', N'天水市', N'620525', N'张家川回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6206', N'62', N'00,62', N'武威市', N'62', N'甘肃省', N'6206', N'武威市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620602', N'6206', N'00,62,6206', N'凉州区', N'62', N'甘肃省', N'6206', N'武威市', N'620602', N'凉州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620621', N'6206', N'00,62,6206', N'民勤县', N'62', N'甘肃省', N'6206', N'武威市', N'620621', N'民勤县', N'', N'', N'', N'', N'3', N'1', N''), (N'620622', N'6206', N'00,62,6206', N'古浪县', N'62', N'甘肃省', N'6206', N'武威市', N'620622', N'古浪县', N'', N'', N'', N'', N'3', N'1', N''), (N'620623', N'6206', N'00,62,6206', N'天祝藏族自治县', N'62', N'甘肃省', N'6206', N'武威市', N'620623', N'天祝藏族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6207', N'62', N'00,62', N'张掖市', N'62', N'甘肃省', N'6207', N'张掖市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620702', N'6207', N'00,62,6207', N'甘州区', N'62', N'甘肃省', N'6207', N'张掖市', N'620702', N'甘州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620721', N'6207', N'00,62,6207', N'肃南裕固族自治县', N'62', N'甘肃省', N'6207', N'张掖市', N'620721', N'肃南裕固族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620722', N'6207', N'00,62,6207', N'民乐县', N'62', N'甘肃省', N'6207', N'张掖市', N'620722', N'民乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'620723', N'6207', N'00,62,6207', N'临泽县', N'62', N'甘肃省', N'6207', N'张掖市', N'620723', N'临泽县', N'', N'', N'', N'', N'3', N'1', N''), (N'620724', N'6207', N'00,62,6207', N'高台县', N'62', N'甘肃省', N'6207', N'张掖市', N'620724', N'高台县', N'', N'', N'', N'', N'3', N'1', N''), (N'620725', N'6207', N'00,62,6207', N'山丹县', N'62', N'甘肃省', N'6207', N'张掖市', N'620725', N'山丹县', N'', N'', N'', N'', N'3', N'1', N''), (N'6208', N'62', N'00,62', N'平凉市', N'62', N'甘肃省', N'6208', N'平凉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620802', N'6208', N'00,62,6208', N'崆峒区', N'62', N'甘肃省', N'6208', N'平凉市', N'620802', N'崆峒区', N'', N'', N'', N'', N'3', N'1', N''), (N'620821', N'6208', N'00,62,6208', N'泾川县', N'62', N'甘肃省', N'6208', N'平凉市', N'620821', N'泾川县', N'', N'', N'', N'', N'3', N'1', N''), (N'620822', N'6208', N'00,62,6208', N'灵台县', N'62', N'甘肃省', N'6208', N'平凉市', N'620822', N'灵台县', N'', N'', N'', N'', N'3', N'1', N''), (N'620823', N'6208', N'00,62,6208', N'崇信县', N'62', N'甘肃省', N'6208', N'平凉市', N'620823', N'崇信县', N'', N'', N'', N'', N'3', N'1', N''), (N'620825', N'6208', N'00,62,6208', N'庄浪县', N'62', N'甘肃省', N'6208', N'平凉市', N'620825', N'庄浪县', N'', N'', N'', N'', N'3', N'1', N''), (N'620826', N'6208', N'00,62,6208', N'静宁县', N'62', N'甘肃省', N'6208', N'平凉市', N'620826', N'静宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'620881', N'6208', N'00,62,6208', N'华亭市', N'62', N'甘肃省', N'6208', N'平凉市', N'620881', N'华亭市', N'', N'', N'', N'', N'3', N'1', N''), (N'6209', N'62', N'00,62', N'酒泉市', N'62', N'甘肃省', N'6209', N'酒泉市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'620902', N'6209', N'00,62,6209', N'肃州区', N'62', N'甘肃省', N'6209', N'酒泉市', N'620902', N'肃州区', N'', N'', N'', N'', N'3', N'1', N''), (N'620921', N'6209', N'00,62,6209', N'金塔县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620921', N'金塔县', N'', N'', N'', N'', N'3', N'1', N''), (N'620922', N'6209', N'00,62,6209', N'瓜州县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620922', N'瓜州县', N'', N'', N'', N'', N'3', N'1', N''), (N'620923', N'6209', N'00,62,6209', N'肃北蒙古族自治县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620923', N'肃北蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620924', N'6209', N'00,62,6209', N'阿克塞哈萨克族自治县', N'62', N'甘肃省', N'6209', N'酒泉市', N'620924', N'阿克塞哈萨克族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'620981', N'6209', N'00,62,6209', N'玉门市', N'62', N'甘肃省', N'6209', N'酒泉市', N'620981', N'玉门市', N'', N'', N'', N'', N'3', N'1', N''), (N'620982', N'6209', N'00,62,6209', N'敦煌市', N'62', N'甘肃省', N'6209', N'酒泉市', N'620982', N'敦煌市', N'', N'', N'', N'', N'3', N'1', N''), (N'6210', N'62', N'00,62', N'庆阳市', N'62', N'甘肃省', N'6210', N'庆阳市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621002', N'6210', N'00,62,6210', N'西峰区', N'62', N'甘肃省', N'6210', N'庆阳市', N'621002', N'西峰区', N'', N'', N'', N'', N'3', N'1', N''), (N'621021', N'6210', N'00,62,6210', N'庆城县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621021', N'庆城县', N'', N'', N'', N'', N'3', N'1', N''), (N'621022', N'6210', N'00,62,6210', N'环县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621022', N'环县', N'', N'', N'', N'', N'3', N'1', N''), (N'621023', N'6210', N'00,62,6210', N'华池县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621023', N'华池县', N'', N'', N'', N'', N'3', N'1', N''), (N'621024', N'6210', N'00,62,6210', N'合水县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621024', N'合水县', N'', N'', N'', N'', N'3', N'1', N''), (N'621025', N'6210', N'00,62,6210', N'正宁县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621025', N'正宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'621026', N'6210', N'00,62,6210', N'宁县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621026', N'宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'621027', N'6210', N'00,62,6210', N'镇原县', N'62', N'甘肃省', N'6210', N'庆阳市', N'621027', N'镇原县', N'', N'', N'', N'', N'3', N'1', N''), (N'6211', N'62', N'00,62', N'定西市', N'62', N'甘肃省', N'6211', N'定西市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621102', N'6211', N'00,62,6211', N'安定区', N'62', N'甘肃省', N'6211', N'定西市', N'621102', N'安定区', N'', N'', N'', N'', N'3', N'1', N''), (N'621121', N'6211', N'00,62,6211', N'通渭县', N'62', N'甘肃省', N'6211', N'定西市', N'621121', N'通渭县', N'', N'', N'', N'', N'3', N'1', N''), (N'621122', N'6211', N'00,62,6211', N'陇西县', N'62', N'甘肃省', N'6211', N'定西市', N'621122', N'陇西县', N'', N'', N'', N'', N'3', N'1', N''), (N'621123', N'6211', N'00,62,6211', N'渭源县', N'62', N'甘肃省', N'6211', N'定西市', N'621123', N'渭源县', N'', N'', N'', N'', N'3', N'1', N''), (N'621124', N'6211', N'00,62,6211', N'临洮县', N'62', N'甘肃省', N'6211', N'定西市', N'621124', N'临洮县', N'', N'', N'', N'', N'3', N'1', N''), (N'621125', N'6211', N'00,62,6211', N'漳县', N'62', N'甘肃省', N'6211', N'定西市', N'621125', N'漳县', N'', N'', N'', N'', N'3', N'1', N''), (N'621126', N'6211', N'00,62,6211', N'岷县', N'62', N'甘肃省', N'6211', N'定西市', N'621126', N'岷县', N'', N'', N'', N'', N'3', N'1', N''), (N'6212', N'62', N'00,62', N'陇南市', N'62', N'甘肃省', N'6212', N'陇南市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'621202', N'6212', N'00,62,6212', N'武都区', N'62', N'甘肃省', N'6212', N'陇南市', N'621202', N'武都区', N'', N'', N'', N'', N'3', N'1', N''), (N'621221', N'6212', N'00,62,6212', N'成县', N'62', N'甘肃省', N'6212', N'陇南市', N'621221', N'成县', N'', N'', N'', N'', N'3', N'1', N''), (N'621222', N'6212', N'00,62,6212', N'文县', N'62', N'甘肃省', N'6212', N'陇南市', N'621222', N'文县', N'', N'', N'', N'', N'3', N'1', N''), (N'621223', N'6212', N'00,62,6212', N'宕昌县', N'62', N'甘肃省', N'6212', N'陇南市', N'621223', N'宕昌县', N'', N'', N'', N'', N'3', N'1', N''), (N'621224', N'6212', N'00,62,6212', N'康县', N'62', N'甘肃省', N'6212', N'陇南市', N'621224', N'康县', N'', N'', N'', N'', N'3', N'1', N''), (N'621225', N'6212', N'00,62,6212', N'西和县', N'62', N'甘肃省', N'6212', N'陇南市', N'621225', N'西和县', N'', N'', N'', N'', N'3', N'1', N''), (N'621226', N'6212', N'00,62,6212', N'礼县', N'62', N'甘肃省', N'6212', N'陇南市', N'621226', N'礼县', N'', N'', N'', N'', N'3', N'1', N''), (N'621227', N'6212', N'00,62,6212', N'徽县', N'62', N'甘肃省', N'6212', N'陇南市', N'621227', N'徽县', N'', N'', N'', N'', N'3', N'1', N''), (N'621228', N'6212', N'00,62,6212', N'两当县', N'62', N'甘肃省', N'6212', N'陇南市', N'621228', N'两当县', N'', N'', N'', N'', N'3', N'1', N''), (N'6229', N'62', N'00,62', N'临夏回族自治州', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'622901', N'6229', N'00,62,6229', N'临夏市', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622901', N'临夏市', N'', N'', N'', N'', N'3', N'1', N''), (N'622921', N'6229', N'00,62,6229', N'临夏县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622921', N'临夏县', N'', N'', N'', N'', N'3', N'1', N''), (N'622922', N'6229', N'00,62,6229', N'康乐县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622922', N'康乐县', N'', N'', N'', N'', N'3', N'1', N''), (N'622923', N'6229', N'00,62,6229', N'永靖县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622923', N'永靖县', N'', N'', N'', N'', N'3', N'1', N''), (N'622924', N'6229', N'00,62,6229', N'广河县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622924', N'广河县', N'', N'', N'', N'', N'3', N'1', N''), (N'622925', N'6229', N'00,62,6229', N'和政县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622925', N'和政县', N'', N'', N'', N'', N'3', N'1', N''), (N'622926', N'6229', N'00,62,6229', N'东乡族自治县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622926', N'东乡族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'622927', N'6229', N'00,62,6229', N'积石山保安族东乡族撒拉族自治县', N'62', N'甘肃省', N'6229', N'临夏回族自治州', N'622927', N'积石山保安族东乡族撒拉族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6230', N'62', N'00,62', N'甘南藏族自治州', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'623001', N'6230', N'00,62,6230', N'合作市', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623001', N'合作市', N'', N'', N'', N'', N'3', N'1', N''), (N'623021', N'6230', N'00,62,6230', N'临潭县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623021', N'临潭县', N'', N'', N'', N'', N'3', N'1', N''), (N'623022', N'6230', N'00,62,6230', N'卓尼县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623022', N'卓尼县', N'', N'', N'', N'', N'3', N'1', N''), (N'623023', N'6230', N'00,62,6230', N'舟曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623023', N'舟曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623024', N'6230', N'00,62,6230', N'迭部县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623024', N'迭部县', N'', N'', N'', N'', N'3', N'1', N''), (N'623025', N'6230', N'00,62,6230', N'玛曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623025', N'玛曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623026', N'6230', N'00,62,6230', N'碌曲县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623026', N'碌曲县', N'', N'', N'', N'', N'3', N'1', N''), (N'623027', N'6230', N'00,62,6230', N'夏河县', N'62', N'甘肃省', N'6230', N'甘南藏族自治州', N'623027', N'夏河县', N'', N'', N'', N'', N'3', N'1', N''), (N'63', N'00', N'00', N'青海省', N'63', N'青海省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6301', N'63', N'00,63', N'西宁市', N'63', N'青海省', N'6301', N'西宁市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'630102', N'6301', N'00,63,6301', N'城东区', N'63', N'青海省', N'6301', N'西宁市', N'630102', N'城东区', N'', N'', N'', N'', N'3', N'1', N''), (N'630103', N'6301', N'00,63,6301', N'城中区', N'63', N'青海省', N'6301', N'西宁市', N'630103', N'城中区', N'', N'', N'', N'', N'3', N'1', N''), (N'630104', N'6301', N'00,63,6301', N'城西区', N'63', N'青海省', N'6301', N'西宁市', N'630104', N'城西区', N'', N'', N'', N'', N'3', N'1', N''), (N'630105', N'6301', N'00,63,6301', N'城北区', N'63', N'青海省', N'6301', N'西宁市', N'630105', N'城北区', N'', N'', N'', N'', N'3', N'1', N''), (N'630106', N'6301', N'00,63,6301', N'湟中区', N'63', N'青海省', N'6301', N'西宁市', N'630106', N'湟中区', N'', N'', N'', N'', N'3', N'1', N''), (N'630121', N'6301', N'00,63,6301', N'大通回族土族自治县', N'63', N'青海省', N'6301', N'西宁市', N'630121', N'大通回族土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630123', N'6301', N'00,63,6301', N'湟源县', N'63', N'青海省', N'6301', N'西宁市', N'630123', N'湟源县', N'', N'', N'', N'', N'3', N'1', N''), (N'6302', N'63', N'00,63', N'海东市', N'63', N'青海省', N'6302', N'海东市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'630202', N'6302', N'00,63,6302', N'乐都区', N'63', N'青海省', N'6302', N'海东市', N'630202', N'乐都区', N'', N'', N'', N'', N'3', N'1', N''), (N'630203', N'6302', N'00,63,6302', N'平安区', N'63', N'青海省', N'6302', N'海东市', N'630203', N'平安区', N'', N'', N'', N'', N'3', N'1', N''), (N'630222', N'6302', N'00,63,6302', N'民和回族土族自治县', N'63', N'青海省', N'6302', N'海东市', N'630222', N'民和回族土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630223', N'6302', N'00,63,6302', N'互助土族自治县', N'63', N'青海省', N'6302', N'海东市', N'630223', N'互助土族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630224', N'6302', N'00,63,6302', N'化隆回族自治县', N'63', N'青海省', N'6302', N'海东市', N'630224', N'化隆回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'630225', N'6302', N'00,63,6302', N'循化撒拉族自治县', N'63', N'青海省', N'6302', N'海东市', N'630225', N'循化撒拉族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6322', N'63', N'00,63', N'海北藏族自治州', N'63', N'青海省', N'6322', N'海北藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632221', N'6322', N'00,63,6322', N'门源回族自治县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632221', N'门源回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'632222', N'6322', N'00,63,6322', N'祁连县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632222', N'祁连县', N'', N'', N'', N'', N'3', N'1', N''), (N'632223', N'6322', N'00,63,6322', N'海晏县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632223', N'海晏县', N'', N'', N'', N'', N'3', N'1', N''), (N'632224', N'6322', N'00,63,6322', N'刚察县', N'63', N'青海省', N'6322', N'海北藏族自治州', N'632224', N'刚察县', N'', N'', N'', N'', N'3', N'1', N''), (N'6323', N'63', N'00,63', N'黄南藏族自治州', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632321', N'6323', N'00,63,6323', N'同仁县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632321', N'同仁县', N'', N'', N'', N'', N'3', N'1', N''), (N'632322', N'6323', N'00,63,6323', N'尖扎县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632322', N'尖扎县', N'', N'', N'', N'', N'3', N'1', N''), (N'632323', N'6323', N'00,63,6323', N'泽库县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632323', N'泽库县', N'', N'', N'', N'', N'3', N'1', N''), (N'632324', N'6323', N'00,63,6323', N'河南蒙古族自治县', N'63', N'青海省', N'6323', N'黄南藏族自治州', N'632324', N'河南蒙古族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6325', N'63', N'00,63', N'海南藏族自治州', N'63', N'青海省', N'6325', N'海南藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632521', N'6325', N'00,63,6325', N'共和县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632521', N'共和县', N'', N'', N'', N'', N'3', N'1', N''), (N'632522', N'6325', N'00,63,6325', N'同德县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632522', N'同德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632523', N'6325', N'00,63,6325', N'贵德县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632523', N'贵德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632524', N'6325', N'00,63,6325', N'兴海县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632524', N'兴海县', N'', N'', N'', N'', N'3', N'1', N''), (N'632525', N'6325', N'00,63,6325', N'贵南县', N'63', N'青海省', N'6325', N'海南藏族自治州', N'632525', N'贵南县', N'', N'', N'', N'', N'3', N'1', N''), (N'6326', N'63', N'00,63', N'果洛藏族自治州', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632621', N'6326', N'00,63,6326', N'玛沁县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632621', N'玛沁县', N'', N'', N'', N'', N'3', N'1', N''), (N'632622', N'6326', N'00,63,6326', N'班玛县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632622', N'班玛县', N'', N'', N'', N'', N'3', N'1', N''), (N'632623', N'6326', N'00,63,6326', N'甘德县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632623', N'甘德县', N'', N'', N'', N'', N'3', N'1', N''), (N'632624', N'6326', N'00,63,6326', N'达日县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632624', N'达日县', N'', N'', N'', N'', N'3', N'1', N''), (N'632625', N'6326', N'00,63,6326', N'久治县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632625', N'久治县', N'', N'', N'', N'', N'3', N'1', N''), (N'632626', N'6326', N'00,63,6326', N'玛多县', N'63', N'青海省', N'6326', N'果洛藏族自治州', N'632626', N'玛多县', N'', N'', N'', N'', N'3', N'1', N''), (N'6327', N'63', N'00,63', N'玉树藏族自治州', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632701', N'6327', N'00,63,6327', N'玉树市', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632701', N'玉树市', N'', N'', N'', N'', N'3', N'1', N''), (N'632722', N'6327', N'00,63,6327', N'杂多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632722', N'杂多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632723', N'6327', N'00,63,6327', N'称多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632723', N'称多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632724', N'6327', N'00,63,6327', N'治多县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632724', N'治多县', N'', N'', N'', N'', N'3', N'1', N''), (N'632725', N'6327', N'00,63,6327', N'囊谦县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632725', N'囊谦县', N'', N'', N'', N'', N'3', N'1', N''), (N'632726', N'6327', N'00,63,6327', N'曲麻莱县', N'63', N'青海省', N'6327', N'玉树藏族自治州', N'632726', N'曲麻莱县', N'', N'', N'', N'', N'3', N'1', N''), (N'6328', N'63', N'00,63', N'海西蒙古族藏族自治州', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'632801', N'6328', N'00,63,6328', N'格尔木市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632801', N'格尔木市', N'', N'', N'', N'', N'3', N'1', N''), (N'632802', N'6328', N'00,63,6328', N'德令哈市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632802', N'德令哈市', N'', N'', N'', N'', N'3', N'1', N''), (N'632803', N'6328', N'00,63,6328', N'茫崖市', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632803', N'茫崖市', N'', N'', N'', N'', N'3', N'1', N''), (N'632821', N'6328', N'00,63,6328', N'乌兰县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632821', N'乌兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'632822', N'6328', N'00,63,6328', N'都兰县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632822', N'都兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'632823', N'6328', N'00,63,6328', N'天峻县', N'63', N'青海省', N'6328', N'海西蒙古族藏族自治州', N'632823', N'天峻县', N'', N'', N'', N'', N'3', N'1', N''), (N'64', N'00', N'00', N'宁夏回族自治区', N'64', N'宁夏回族自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6401', N'64', N'00,64', N'银川市', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640104', N'6401', N'00,64,6401', N'兴庆区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640104', N'兴庆区', N'', N'', N'', N'', N'3', N'1', N''), (N'640105', N'6401', N'00,64,6401', N'西夏区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640105', N'西夏区', N'', N'', N'', N'', N'3', N'1', N''), (N'640106', N'6401', N'00,64,6401', N'金凤区', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640106', N'金凤区', N'', N'', N'', N'', N'3', N'1', N''), (N'640121', N'6401', N'00,64,6401', N'永宁县', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640121', N'永宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'640122', N'6401', N'00,64,6401', N'贺兰县', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640122', N'贺兰县', N'', N'', N'', N'', N'3', N'1', N''), (N'640181', N'6401', N'00,64,6401', N'灵武市', N'64', N'宁夏回族自治区', N'6401', N'银川市', N'640181', N'灵武市', N'', N'', N'', N'', N'3', N'1', N''), (N'6402', N'64', N'00,64', N'石嘴山市', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640202', N'6402', N'00,64,6402', N'大武口区', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640202', N'大武口区', N'', N'', N'', N'', N'3', N'1', N''), (N'640205', N'6402', N'00,64,6402', N'惠农区', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640205', N'惠农区', N'', N'', N'', N'', N'3', N'1', N''), (N'640221', N'6402', N'00,64,6402', N'平罗县', N'64', N'宁夏回族自治区', N'6402', N'石嘴山市', N'640221', N'平罗县', N'', N'', N'', N'', N'3', N'1', N''), (N'6403', N'64', N'00,64', N'吴忠市', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640302', N'6403', N'00,64,6403', N'利通区', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640302', N'利通区', N'', N'', N'', N'', N'3', N'1', N''), (N'640303', N'6403', N'00,64,6403', N'红寺堡区', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640303', N'红寺堡区', N'', N'', N'', N'', N'3', N'1', N''), (N'640323', N'6403', N'00,64,6403', N'盐池县', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640323', N'盐池县', N'', N'', N'', N'', N'3', N'1', N''), (N'640324', N'6403', N'00,64,6403', N'同心县', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640324', N'同心县', N'', N'', N'', N'', N'3', N'1', N''), (N'640381', N'6403', N'00,64,6403', N'青铜峡市', N'64', N'宁夏回族自治区', N'6403', N'吴忠市', N'640381', N'青铜峡市', N'', N'', N'', N'', N'3', N'1', N''), (N'6404', N'64', N'00,64', N'固原市', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640402', N'6404', N'00,64,6404', N'原州区', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640402', N'原州区', N'', N'', N'', N'', N'3', N'1', N''), (N'640422', N'6404', N'00,64,6404', N'西吉县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640422', N'西吉县', N'', N'', N'', N'', N'3', N'1', N''), (N'640423', N'6404', N'00,64,6404', N'隆德县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640423', N'隆德县', N'', N'', N'', N'', N'3', N'1', N''), (N'640424', N'6404', N'00,64,6404', N'泾源县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640424', N'泾源县', N'', N'', N'', N'', N'3', N'1', N''), (N'640425', N'6404', N'00,64,6404', N'彭阳县', N'64', N'宁夏回族自治区', N'6404', N'固原市', N'640425', N'彭阳县', N'', N'', N'', N'', N'3', N'1', N''), (N'6405', N'64', N'00,64', N'中卫市', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'640502', N'6405', N'00,64,6405', N'沙坡头区', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640502', N'沙坡头区', N'', N'', N'', N'', N'3', N'1', N''), (N'640521', N'6405', N'00,64,6405', N'中宁县', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640521', N'中宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'640522', N'6405', N'00,64,6405', N'海原县', N'64', N'宁夏回族自治区', N'6405', N'中卫市', N'640522', N'海原县', N'', N'', N'', N'', N'3', N'1', N''), (N'65', N'00', N'00', N'新疆维吾尔自治区', N'65', N'新疆维吾尔自治区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'6501', N'65', N'00,65', N'乌鲁木齐市', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650102', N'6501', N'00,65,6501', N'天山区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650102', N'天山区', N'', N'', N'', N'', N'3', N'1', N''), (N'650103', N'6501', N'00,65,6501', N'沙依巴克区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650103', N'沙依巴克区', N'', N'', N'', N'', N'3', N'1', N''), (N'650104', N'6501', N'00,65,6501', N'新市区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650104', N'新市区', N'', N'', N'', N'', N'3', N'1', N''), (N'650105', N'6501', N'00,65,6501', N'水磨沟区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650105', N'水磨沟区', N'', N'', N'', N'', N'3', N'1', N''), (N'650106', N'6501', N'00,65,6501', N'头屯河区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650106', N'头屯河区', N'', N'', N'', N'', N'3', N'1', N''), (N'650107', N'6501', N'00,65,6501', N'达坂城区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650107', N'达坂城区', N'', N'', N'', N'', N'3', N'1', N''), (N'650109', N'6501', N'00,65,6501', N'米东区', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650109', N'米东区', N'', N'', N'', N'', N'3', N'1', N''), (N'650121', N'6501', N'00,65,6501', N'乌鲁木齐县', N'65', N'新疆维吾尔自治区', N'6501', N'乌鲁木齐市', N'650121', N'乌鲁木齐县', N'', N'', N'', N'', N'3', N'1', N''), (N'6502', N'65', N'00,65', N'克拉玛依市', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650202', N'6502', N'00,65,6502', N'独山子区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650202', N'独山子区', N'', N'', N'', N'', N'3', N'1', N''), (N'650203', N'6502', N'00,65,6502', N'克拉玛依区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650203', N'克拉玛依区', N'', N'', N'', N'', N'3', N'1', N''), (N'650204', N'6502', N'00,65,6502', N'白碱滩区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650204', N'白碱滩区', N'', N'', N'', N'', N'3', N'1', N''), (N'650205', N'6502', N'00,65,6502', N'乌尔禾区', N'65', N'新疆维吾尔自治区', N'6502', N'克拉玛依市', N'650205', N'乌尔禾区', N'', N'', N'', N'', N'3', N'1', N''), (N'6504', N'65', N'00,65', N'吐鲁番市', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650402', N'6504', N'00,65,6504', N'高昌区', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650402', N'高昌区', N'', N'', N'', N'', N'3', N'1', N''), (N'650421', N'6504', N'00,65,6504', N'鄯善县', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650421', N'鄯善县', N'', N'', N'', N'', N'3', N'1', N''), (N'650422', N'6504', N'00,65,6504', N'托克逊县', N'65', N'新疆维吾尔自治区', N'6504', N'吐鲁番市', N'650422', N'托克逊县', N'', N'', N'', N'', N'3', N'1', N''), (N'6505', N'65', N'00,65', N'哈密市', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'650502', N'6505', N'00,65,6505', N'伊州区', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650502', N'伊州区', N'', N'', N'', N'', N'3', N'1', N''), (N'650521', N'6505', N'00,65,6505', N'巴里坤哈萨克自治县', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650521', N'巴里坤哈萨克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'650522', N'6505', N'00,65,6505', N'伊吾县', N'65', N'新疆维吾尔自治区', N'6505', N'哈密市', N'650522', N'伊吾县', N'', N'', N'', N'', N'3', N'1', N''), (N'6523', N'65', N'00,65', N'昌吉回族自治州', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652301', N'6523', N'00,65,6523', N'昌吉市', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652301', N'昌吉市', N'', N'', N'', N'', N'3', N'1', N''), (N'652302', N'6523', N'00,65,6523', N'阜康市', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652302', N'阜康市', N'', N'', N'', N'', N'3', N'1', N''), (N'652323', N'6523', N'00,65,6523', N'呼图壁县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652323', N'呼图壁县', N'', N'', N'', N'', N'3', N'1', N''), (N'652324', N'6523', N'00,65,6523', N'玛纳斯县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652324', N'玛纳斯县', N'', N'', N'', N'', N'3', N'1', N''), (N'652325', N'6523', N'00,65,6523', N'奇台县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652325', N'奇台县', N'', N'', N'', N'', N'3', N'1', N''), (N'652327', N'6523', N'00,65,6523', N'吉木萨尔县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652327', N'吉木萨尔县', N'', N'', N'', N'', N'3', N'1', N''), (N'652328', N'6523', N'00,65,6523', N'木垒哈萨克自治县', N'65', N'新疆维吾尔自治区', N'6523', N'昌吉回族自治州', N'652328', N'木垒哈萨克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6527', N'65', N'00,65', N'博尔塔拉蒙古自治州', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652701', N'6527', N'00,65,6527', N'博乐市', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652701', N'博乐市', N'', N'', N'', N'', N'3', N'1', N''), (N'652702', N'6527', N'00,65,6527', N'阿拉山口市', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652702', N'阿拉山口市', N'', N'', N'', N'', N'3', N'1', N''), (N'652722', N'6527', N'00,65,6527', N'精河县', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652722', N'精河县', N'', N'', N'', N'', N'3', N'1', N''), (N'652723', N'6527', N'00,65,6527', N'温泉县', N'65', N'新疆维吾尔自治区', N'6527', N'博尔塔拉蒙古自治州', N'652723', N'温泉县', N'', N'', N'', N'', N'3', N'1', N''), (N'6528', N'65', N'00,65', N'巴音郭楞蒙古自治州', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652801', N'6528', N'00,65,6528', N'库尔勒市', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652801', N'库尔勒市', N'', N'', N'', N'', N'3', N'1', N''), (N'652822', N'6528', N'00,65,6528', N'轮台县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652822', N'轮台县', N'', N'', N'', N'', N'3', N'1', N''), (N'652823', N'6528', N'00,65,6528', N'尉犁县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652823', N'尉犁县', N'', N'', N'', N'', N'3', N'1', N''), (N'652824', N'6528', N'00,65,6528', N'若羌县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652824', N'若羌县', N'', N'', N'', N'', N'3', N'1', N''), (N'652825', N'6528', N'00,65,6528', N'且末县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652825', N'且末县', N'', N'', N'', N'', N'3', N'1', N''), (N'652826', N'6528', N'00,65,6528', N'焉耆回族自治县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652826', N'焉耆回族自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'652827', N'6528', N'00,65,6528', N'和静县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652827', N'和静县', N'', N'', N'', N'', N'3', N'1', N''), (N'652828', N'6528', N'00,65,6528', N'和硕县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652828', N'和硕县', N'', N'', N'', N'', N'3', N'1', N''), (N'652829', N'6528', N'00,65,6528', N'博湖县', N'65', N'新疆维吾尔自治区', N'6528', N'巴音郭楞蒙古自治州', N'652829', N'博湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'6529', N'65', N'00,65', N'阿克苏地区', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'652901', N'6529', N'00,65,6529', N'阿克苏市', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652901', N'阿克苏市', N'', N'', N'', N'', N'3', N'1', N''), (N'652902', N'6529', N'00,65,6529', N'库车市', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652902', N'库车市', N'', N'', N'', N'', N'3', N'1', N''), (N'652922', N'6529', N'00,65,6529', N'温宿县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652922', N'温宿县', N'', N'', N'', N'', N'3', N'1', N''), (N'652924', N'6529', N'00,65,6529', N'沙雅县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652924', N'沙雅县', N'', N'', N'', N'', N'3', N'1', N''), (N'652925', N'6529', N'00,65,6529', N'新和县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652925', N'新和县', N'', N'', N'', N'', N'3', N'1', N''), (N'652926', N'6529', N'00,65,6529', N'拜城县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652926', N'拜城县', N'', N'', N'', N'', N'3', N'1', N''), (N'652927', N'6529', N'00,65,6529', N'乌什县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652927', N'乌什县', N'', N'', N'', N'', N'3', N'1', N''), (N'652928', N'6529', N'00,65,6529', N'阿瓦提县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652928', N'阿瓦提县', N'', N'', N'', N'', N'3', N'1', N''), (N'652929', N'6529', N'00,65,6529', N'柯坪县', N'65', N'新疆维吾尔自治区', N'6529', N'阿克苏地区', N'652929', N'柯坪县', N'', N'', N'', N'', N'3', N'1', N''), (N'6530', N'65', N'00,65', N'克孜勒苏柯尔克孜自治州', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653001', N'6530', N'00,65,6530', N'阿图什市', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653001', N'阿图什市', N'', N'', N'', N'', N'3', N'1', N''), (N'653022', N'6530', N'00,65,6530', N'阿克陶县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653022', N'阿克陶县', N'', N'', N'', N'', N'3', N'1', N''), (N'653023', N'6530', N'00,65,6530', N'阿合奇县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653023', N'阿合奇县', N'', N'', N'', N'', N'3', N'1', N''), (N'653024', N'6530', N'00,65,6530', N'乌恰县', N'65', N'新疆维吾尔自治区', N'6530', N'克孜勒苏柯尔克孜自治州', N'653024', N'乌恰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6531', N'65', N'00,65', N'喀什地区', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653101', N'6531', N'00,65,6531', N'喀什市', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653101', N'喀什市', N'', N'', N'', N'', N'3', N'1', N''), (N'653121', N'6531', N'00,65,6531', N'疏附县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653121', N'疏附县', N'', N'', N'', N'', N'3', N'1', N''), (N'653122', N'6531', N'00,65,6531', N'疏勒县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653122', N'疏勒县', N'', N'', N'', N'', N'3', N'1', N''), (N'653123', N'6531', N'00,65,6531', N'英吉沙县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653123', N'英吉沙县', N'', N'', N'', N'', N'3', N'1', N''), (N'653124', N'6531', N'00,65,6531', N'泽普县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653124', N'泽普县', N'', N'', N'', N'', N'3', N'1', N''), (N'653125', N'6531', N'00,65,6531', N'莎车县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653125', N'莎车县', N'', N'', N'', N'', N'3', N'1', N''), (N'653126', N'6531', N'00,65,6531', N'叶城县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653126', N'叶城县', N'', N'', N'', N'', N'3', N'1', N''), (N'653127', N'6531', N'00,65,6531', N'麦盖提县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653127', N'麦盖提县', N'', N'', N'', N'', N'3', N'1', N''), (N'653128', N'6531', N'00,65,6531', N'岳普湖县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653128', N'岳普湖县', N'', N'', N'', N'', N'3', N'1', N''), (N'653129', N'6531', N'00,65,6531', N'伽师县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653129', N'伽师县', N'', N'', N'', N'', N'3', N'1', N''), (N'653130', N'6531', N'00,65,6531', N'巴楚县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653130', N'巴楚县', N'', N'', N'', N'', N'3', N'1', N''), (N'653131', N'6531', N'00,65,6531', N'塔什库尔干塔吉克自治县', N'65', N'新疆维吾尔自治区', N'6531', N'喀什地区', N'653131', N'塔什库尔干塔吉克自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6532', N'65', N'00,65', N'和田地区', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'653201', N'6532', N'00,65,6532', N'和田市', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653201', N'和田市', N'', N'', N'', N'', N'3', N'1', N''), (N'653221', N'6532', N'00,65,6532', N'和田县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653221', N'和田县', N'', N'', N'', N'', N'3', N'1', N''), (N'653222', N'6532', N'00,65,6532', N'墨玉县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653222', N'墨玉县', N'', N'', N'', N'', N'3', N'1', N''), (N'653223', N'6532', N'00,65,6532', N'皮山县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653223', N'皮山县', N'', N'', N'', N'', N'3', N'1', N''), (N'653224', N'6532', N'00,65,6532', N'洛浦县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653224', N'洛浦县', N'', N'', N'', N'', N'3', N'1', N''), (N'653225', N'6532', N'00,65,6532', N'策勒县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653225', N'策勒县', N'', N'', N'', N'', N'3', N'1', N''), (N'653226', N'6532', N'00,65,6532', N'于田县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653226', N'于田县', N'', N'', N'', N'', N'3', N'1', N''), (N'653227', N'6532', N'00,65,6532', N'民丰县', N'65', N'新疆维吾尔自治区', N'6532', N'和田地区', N'653227', N'民丰县', N'', N'', N'', N'', N'3', N'1', N''), (N'6540', N'65', N'00,65', N'伊犁哈萨克自治州', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654002', N'6540', N'00,65,6540', N'伊宁市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654002', N'伊宁市', N'', N'', N'', N'', N'3', N'1', N''), (N'654003', N'6540', N'00,65,6540', N'奎屯市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654003', N'奎屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'654004', N'6540', N'00,65,6540', N'霍尔果斯市', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654004', N'霍尔果斯市', N'', N'', N'', N'', N'3', N'1', N''), (N'654021', N'6540', N'00,65,6540', N'伊宁县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654021', N'伊宁县', N'', N'', N'', N'', N'3', N'1', N''), (N'654022', N'6540', N'00,65,6540', N'察布查尔锡伯自治县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654022', N'察布查尔锡伯自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'654023', N'6540', N'00,65,6540', N'霍城县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654023', N'霍城县', N'', N'', N'', N'', N'3', N'1', N''), (N'654024', N'6540', N'00,65,6540', N'巩留县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654024', N'巩留县', N'', N'', N'', N'', N'3', N'1', N''), (N'654025', N'6540', N'00,65,6540', N'新源县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654025', N'新源县', N'', N'', N'', N'', N'3', N'1', N''), (N'654026', N'6540', N'00,65,6540', N'昭苏县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654026', N'昭苏县', N'', N'', N'', N'', N'3', N'1', N''), (N'654027', N'6540', N'00,65,6540', N'特克斯县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654027', N'特克斯县', N'', N'', N'', N'', N'3', N'1', N''), (N'654028', N'6540', N'00,65,6540', N'尼勒克县', N'65', N'新疆维吾尔自治区', N'6540', N'伊犁哈萨克自治州', N'654028', N'尼勒克县', N'', N'', N'', N'', N'3', N'1', N''), (N'6542', N'65', N'00,65', N'塔城地区', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654201', N'6542', N'00,65,6542', N'塔城市', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654201', N'塔城市', N'', N'', N'', N'', N'3', N'1', N''), (N'654202', N'6542', N'00,65,6542', N'乌苏市', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654202', N'乌苏市', N'', N'', N'', N'', N'3', N'1', N''), (N'654221', N'6542', N'00,65,6542', N'额敏县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654221', N'额敏县', N'', N'', N'', N'', N'3', N'1', N''), (N'654223', N'6542', N'00,65,6542', N'沙湾县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654223', N'沙湾县', N'', N'', N'', N'', N'3', N'1', N''), (N'654224', N'6542', N'00,65,6542', N'托里县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654224', N'托里县', N'', N'', N'', N'', N'3', N'1', N''), (N'654225', N'6542', N'00,65,6542', N'裕民县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654225', N'裕民县', N'', N'', N'', N'', N'3', N'1', N''), (N'654226', N'6542', N'00,65,6542', N'和布克赛尔蒙古自治县', N'65', N'新疆维吾尔自治区', N'6542', N'塔城地区', N'654226', N'和布克赛尔蒙古自治县', N'', N'', N'', N'', N'3', N'1', N''), (N'6543', N'65', N'00,65', N'阿勒泰地区', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'654301', N'6543', N'00,65,6543', N'阿勒泰市', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654301', N'阿勒泰市', N'', N'', N'', N'', N'3', N'1', N''), (N'654321', N'6543', N'00,65,6543', N'布尔津县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654321', N'布尔津县', N'', N'', N'', N'', N'3', N'1', N''), (N'654322', N'6543', N'00,65,6543', N'富蕴县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654322', N'富蕴县', N'', N'', N'', N'', N'3', N'1', N''), (N'654323', N'6543', N'00,65,6543', N'福海县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654323', N'福海县', N'', N'', N'', N'', N'3', N'1', N''), (N'654324', N'6543', N'00,65,6543', N'哈巴河县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654324', N'哈巴河县', N'', N'', N'', N'', N'3', N'1', N''), (N'654325', N'6543', N'00,65,6543', N'青河县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654325', N'青河县', N'', N'', N'', N'', N'3', N'1', N''), (N'654326', N'6543', N'00,65,6543', N'吉木乃县', N'65', N'新疆维吾尔自治区', N'6543', N'阿勒泰地区', N'654326', N'吉木乃县', N'', N'', N'', N'', N'3', N'1', N''), (N'6590', N'65', N'00,65', N'自治区直辖县级行政区', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'', N'', N'', N'', N'', N'', N'2', N'1', N''), (N'659001', N'6590', N'00,65,6590', N'石河子市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659001', N'石河子市', N'', N'', N'', N'', N'3', N'1', N''), (N'659002', N'6590', N'00,65,6590', N'阿拉尔市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659002', N'阿拉尔市', N'', N'', N'', N'', N'3', N'1', N''), (N'659003', N'6590', N'00,65,6590', N'图木舒克市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659003', N'图木舒克市', N'', N'', N'', N'', N'3', N'1', N''), (N'659004', N'6590', N'00,65,6590', N'五家渠市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659004', N'五家渠市', N'', N'', N'', N'', N'3', N'1', N''), (N'659005', N'6590', N'00,65,6590', N'北屯市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659005', N'北屯市', N'', N'', N'', N'', N'3', N'1', N''), (N'659006', N'6590', N'00,65,6590', N'铁门关市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659006', N'铁门关市', N'', N'', N'', N'', N'3', N'1', N''), (N'659007', N'6590', N'00,65,6590', N'双河市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659007', N'双河市', N'', N'', N'', N'', N'3', N'1', N''), (N'659008', N'6590', N'00,65,6590', N'可克达拉市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659008', N'可克达拉市', N'', N'', N'', N'', N'3', N'1', N''), (N'659009', N'6590', N'00,65,6590', N'昆玉市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659009', N'昆玉市', N'', N'', N'', N'', N'3', N'1', N''), (N'659010', N'6590', N'00,65,6590', N'胡杨河市', N'65', N'新疆维吾尔自治区', N'6590', N'自治区直辖县级行政区', N'659010', N'胡杨河市', N'', N'', N'', N'', N'3', N'1', N''), (N'71', N'00', N'00', N'台湾省', N'71', N'台湾省', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'81', N'00', N'00', N'香港特别行政区', N'81', N'香港特别行政区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N''), (N'82', N'00', N'00', N'澳门特别行政区', N'82', N'澳门特别行政区', N'', N'', N'', N'', N'', N'', N'', N'', N'1', N'1', N'') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_report_file +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_report_file]') AND type IN ('U')) + DROP TABLE [dbo].[blade_report_file] +GO + +CREATE TABLE [dbo].[blade_report_file] ( + [id] bigint NOT NULL, + [name] nvarchar(100) COLLATE Chinese_PRC_CI_AS NOT NULL, + [content] varbinary(max) NULL, + [create_time] datetime2(0) NOT NULL, + [update_time] datetime2(0) NOT NULL, + [is_deleted] int DEFAULT ((0)) NULL +) +GO + +ALTER TABLE [dbo].[blade_report_file] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'文件名', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'文件内容', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file', +'COLUMN', N'content' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'更新时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'报表文件表', +'SCHEMA', N'dbo', +'TABLE', N'blade_report_file' +GO + + +-- ---------------------------- +-- Records of blade_report_file +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_report_file] VALUES (N'1291962038049910785', N'notice.ureport.xml', 0x3C3F786D6C2076657273696F6E3D22312E302220656E636F64696E673D225554462D38223F3E3C757265706F72743E3C63656C6C20657870616E643D22446F776E22206E616D653D2241312220726F773D22312220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2274656E616E745F696422206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2242312220726F773D22312220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D227469746C6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D22446F776E22206E616D653D2243312220726F773D22312220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C6C6566742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C72696768742D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C746F702D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C626F74746F6D2D626F726465722077696474683D223122207374796C653D22736F6C69642220636F6C6F723D22302C302C30222F3E3C2F63656C6C2D7374796C653E3C646174617365742D76616C756520646174617365742D6E616D653D226E6F7469636522206167677265676174653D2267726F7570222070726F70657274793D2272656C656173655F74696D6522206F726465723D226E6F6E6522206D617070696E672D747970653D2273696D706C65223E3C2F646174617365742D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244312220726F773D22312220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241322220726F773D22322220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242322220726F773D22322220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243322220726F773D22322220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244322220726F773D22322220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2241332220726F773D22332220636F6C3D2231223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2242332220726F773D22332220636F6C3D2232223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2243332220726F773D22332220636F6C3D2233223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C63656C6C20657870616E643D224E6F6E6522206E616D653D2244332220726F773D22332220636F6C3D2234223E3C63656C6C2D7374796C6520666F6E742D73697A653D2231302220616C69676E3D2263656E746572222076616C69676E3D226D6964646C65223E3C2F63656C6C2D7374796C653E3C73696D706C652D76616C75653E3C215B43444154415B5D5D3E3C2F73696D706C652D76616C75653E3C2F63656C6C3E3C726F7720726F772D6E756D6265723D223122206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223222206865696768743D223138222F3E3C726F7720726F772D6E756D6265723D223322206865696768743D223138222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2231222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2232222077696474683D223830222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2233222077696474683D22313333222F3E3C636F6C756D6E20636F6C2D6E756D6265723D2234222077696474683D223830222F3E3C64617461736F75726365206E616D653D225265706F727444617461536F757263652220747970653D226275696C64696E223E3C64617461736574206E616D653D226E6F746963652220747970653D2273716C223E3C73716C3E3C215B43444154415B73656C656374202A2066726F6D20626C6164655F6E6F746963655D5D3E3C2F73716C3E3C6669656C64206E616D653D226964222F3E3C6669656C64206E616D653D2274656E616E745F6964222F3E3C6669656C64206E616D653D227469746C65222F3E3C6669656C64206E616D653D2263617465676F7279222F3E3C6669656C64206E616D653D2272656C656173655F74696D65222F3E3C6669656C64206E616D653D22636F6E74656E74222F3E3C6669656C64206E616D653D226372656174655F75736572222F3E3C6669656C64206E616D653D226372656174655F64657074222F3E3C6669656C64206E616D653D226372656174655F74696D65222F3E3C6669656C64206E616D653D227570646174655F75736572222F3E3C6669656C64206E616D653D227570646174655F74696D65222F3E3C6669656C64206E616D653D22737461747573222F3E3C6669656C64206E616D653D2269735F64656C65746564222F3E3C2F646174617365743E3C2F64617461736F757263653E3C706170657220747970653D22413422206C6566742D6D617267696E3D223930222072696768742D6D617267696E3D223930220A20202020746F702D6D617267696E3D2237322220626F74746F6D2D6D617267696E3D2237322220706167696E672D6D6F64653D22666974706167652220666978726F77733D2230220A2020202077696474683D2235393522206865696768743D2238343222206F7269656E746174696F6E3D22706F727472616974222068746D6C2D7265706F72742D616C69676E3D226C656674222062672D696D6167653D22222068746D6C2D696E74657276616C2D726566726573682D76616C75653D22302220636F6C756D6E2D656E61626C65643D2266616C7365223E3C2F70617065723E3C2F757265706F72743E, N'2020-08-08 12:58:48', N'2020-08-08 12:58:48', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_role +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role]') AND type IN ('U')) + DROP TABLE [dbo].[blade_role] +GO + +CREATE TABLE [dbo].[blade_role] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [parent_id] bigint NULL, + [role_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [role_alias] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_role] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'父主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'parent_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色名', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'role_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色别名', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'role_alias' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_role', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色表', +'SCHEMA', N'dbo', +'TABLE', N'blade_role' +GO + + +-- ---------------------------- +-- Records of blade_role +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_role] VALUES (N'1123598816738675201', N'000000', N'0', N'超级管理员', N'1', N'administrator', N'0'), (N'1123598816738675202', N'000000', N'0', N'用户', N'2', N'user', N'0'), (N'1123598816738675203', N'000000', N'1123598816738675202', N'人事', N'1', N'hr', N'0'), (N'1123598816738675204', N'000000', N'1123598816738675202', N'经理', N'2', N'manager', N'0'), (N'1123598816738675205', N'000000', N'1123598816738675202', N'老板', N'3', N'boss', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_role_menu +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role_menu]') AND type IN ('U')) + DROP TABLE [dbo].[blade_role_menu] +GO + +CREATE TABLE [dbo].[blade_role_menu] ( + [id] bigint NOT NULL, + [menu_id] bigint NULL, + [role_id] bigint NULL +) +GO + +ALTER TABLE [dbo].[blade_role_menu] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_menu', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单id', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_menu', +'COLUMN', N'menu_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色id', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_menu', +'COLUMN', N'role_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色菜单关联表', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_menu' +GO + + +-- ---------------------------- +-- Records of blade_role_menu +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_role_menu] VALUES (N'1123598817738675363', N'1123598815738675201', N'1123598816738675202'), (N'1123598817738675364', N'1123598815738675202', N'1123598816738675202'), (N'1123598817738675365', N'1123598815738675219', N'1123598816738675202'), (N'1123598817738675366', N'1123598815738675220', N'1123598816738675202'), (N'1123598817738675367', N'1123598815738675221', N'1123598816738675202'), (N'1123598817738675368', N'1123598815738675222', N'1123598816738675202'), (N'1123598817738675369', N'1123598815738675280', N'1123598816738675202'), (N'1123598817738675370', N'1123598815738675281', N'1123598816738675202'), (N'1123598817738675371', N'1123598815738675282', N'1123598816738675202'), (N'1123598817738675372', N'1123598815738675283', N'1123598816738675202'), (N'1123598817738675373', N'1123598815738675284', N'1123598816738675202'), (N'1123598817738675374', N'1123598815738675285', N'1123598816738675202'), (N'1123598817738675375', N'1123598815738675286', N'1123598816738675202'), (N'1123598817738675376', N'1123598815738675287', N'1123598816738675202'), (N'1123598817738675377', N'1123598815738675288', N'1123598816738675202'), (N'1123598817738675378', N'1123598815738675289', N'1123598816738675202'), (N'1123598817738675379', N'1123598815738675290', N'1123598816738675202'), (N'1123598817738675380', N'1123598815738675291', N'1123598816738675202'), (N'1123598817738675381', N'1123598815738675292', N'1123598816738675202'), (N'1123598817738675382', N'1123598815738675293', N'1123598816738675202'), (N'1123598817738675383', N'1123598815738675294', N'1123598816738675202'), (N'1123598817738675384', N'1123598815738675295', N'1123598816738675202'), (N'1123598817738675385', N'1123598815738675296', N'1123598816738675202'), (N'1123598817738675386', N'1123598815738675297', N'1123598816738675202'), (N'1123598817738675387', N'1123598815738675201', N'1123598816738675203'), (N'1123598817738675388', N'1123598815738675202', N'1123598816738675203'), (N'1123598817738675389', N'1123598815738675219', N'1123598816738675203'), (N'1123598817738675390', N'1123598815738675220', N'1123598816738675203'), (N'1123598817738675391', N'1123598815738675221', N'1123598816738675203'), (N'1123598817738675392', N'1123598815738675222', N'1123598816738675203'), (N'1123598817738675393', N'1123598815738675280', N'1123598816738675203'), (N'1123598817738675394', N'1123598815738675281', N'1123598816738675203'), (N'1123598817738675395', N'1123598815738675282', N'1123598816738675203'), (N'1123598817738675396', N'1123598815738675283', N'1123598816738675203'), (N'1123598817738675397', N'1123598815738675284', N'1123598816738675203'), (N'1123598817738675398', N'1123598815738675285', N'1123598816738675203'), (N'1123598817738675399', N'1123598815738675286', N'1123598816738675203'), (N'1123598817738675400', N'1123598815738675287', N'1123598816738675203'), (N'1123598817738675401', N'1123598815738675288', N'1123598816738675203'), (N'1123598817738675402', N'1123598815738675289', N'1123598816738675203'), (N'1123598817738675403', N'1123598815738675290', N'1123598816738675203'), (N'1123598817738675404', N'1123598815738675291', N'1123598816738675203'), (N'1123598817738675405', N'1123598815738675292', N'1123598816738675203'), (N'1123598817738675406', N'1123598815738675293', N'1123598816738675203'), (N'1123598817738675407', N'1123598815738675294', N'1123598816738675203'), (N'1123598817738675408', N'1123598815738675295', N'1123598816738675203'), (N'1123598817738675409', N'1123598815738675296', N'1123598816738675203'), (N'1123598817738675410', N'1123598815738675297', N'1123598816738675203'), (N'1123598817738675411', N'1123598815738675201', N'1123598816738675204'), (N'1123598817738675412', N'1123598815738675202', N'1123598816738675204'), (N'1123598817738675413', N'1123598815738675219', N'1123598816738675204'), (N'1123598817738675414', N'1123598815738675220', N'1123598816738675204'), (N'1123598817738675415', N'1123598815738675221', N'1123598816738675204'), (N'1123598817738675416', N'1123598815738675222', N'1123598816738675204'), (N'1123598817738675417', N'1123598815738675280', N'1123598816738675204'), (N'1123598817738675418', N'1123598815738675281', N'1123598816738675204'), (N'1123598817738675419', N'1123598815738675282', N'1123598816738675204'), (N'1123598817738675420', N'1123598815738675283', N'1123598816738675204'), (N'1123598817738675421', N'1123598815738675284', N'1123598816738675204'), (N'1123598817738675422', N'1123598815738675285', N'1123598816738675204'), (N'1123598817738675423', N'1123598815738675286', N'1123598816738675204'), (N'1123598817738675424', N'1123598815738675287', N'1123598816738675204'), (N'1123598817738675425', N'1123598815738675288', N'1123598816738675204'), (N'1123598817738675426', N'1123598815738675289', N'1123598816738675204'), (N'1123598817738675427', N'1123598815738675290', N'1123598816738675204'), (N'1123598817738675428', N'1123598815738675291', N'1123598816738675204'), (N'1123598817738675429', N'1123598815738675292', N'1123598816738675204'), (N'1123598817738675430', N'1123598815738675293', N'1123598816738675204'), (N'1123598817738675431', N'1123598815738675294', N'1123598816738675204'), (N'1123598817738675432', N'1123598815738675295', N'1123598816738675204'), (N'1123598817738675433', N'1123598815738675296', N'1123598816738675204'), (N'1123598817738675434', N'1123598815738675297', N'1123598816738675204'), (N'1123598817738675435', N'1123598815738675201', N'1123598816738675205'), (N'1123598817738675436', N'1123598815738675202', N'1123598816738675205'), (N'1123598817738675437', N'1123598815738675219', N'1123598816738675205'), (N'1123598817738675438', N'1123598815738675220', N'1123598816738675205'), (N'1123598817738675439', N'1123598815738675221', N'1123598816738675205'), (N'1123598817738675440', N'1123598815738675222', N'1123598816738675205'), (N'1123598817738675441', N'1123598815738675280', N'1123598816738675205'), (N'1123598817738675442', N'1123598815738675281', N'1123598816738675205'), (N'1123598817738675443', N'1123598815738675282', N'1123598816738675205'), (N'1123598817738675444', N'1123598815738675283', N'1123598816738675205'), (N'1123598817738675445', N'1123598815738675284', N'1123598816738675205'), (N'1123598817738675446', N'1123598815738675285', N'1123598816738675205'), (N'1123598817738675447', N'1123598815738675286', N'1123598816738675205'), (N'1123598817738675448', N'1123598815738675287', N'1123598816738675205'), (N'1123598817738675449', N'1123598815738675288', N'1123598816738675205'), (N'1123598817738675450', N'1123598815738675289', N'1123598816738675205'), (N'1123598817738675451', N'1123598815738675290', N'1123598816738675205'), (N'1123598817738675452', N'1123598815738675291', N'1123598816738675205'), (N'1123598817738675453', N'1123598815738675292', N'1123598816738675205'), (N'1123598817738675454', N'1123598815738675293', N'1123598816738675205'), (N'1123598817738675455', N'1123598815738675294', N'1123598816738675205'), (N'1123598817738675456', N'1123598815738675295', N'1123598816738675205'), (N'1123598817738675457', N'1123598815738675296', N'1123598816738675205'), (N'1123598817738675458', N'1123598815738675297', N'1123598816738675205'), (N'1149888292426575874', N'1123598815738675201', N'1123598816738675201'), (N'1149888292476907522', N'1123598815738675202', N'1123598816738675201'), (N'1149888292489490433', N'1123598815738675219', N'1123598816738675201'), (N'1149888292502073345', N'1123598815738675220', N'1123598816738675201'), (N'1149888292518850561', N'1123598815738675221', N'1123598816738675201'), (N'1149888292535627777', N'1123598815738675222', N'1123598816738675201'), (N'1149888292548210690', N'1123598815738675280', N'1123598816738675201'), (N'1149888292560793602', N'1123598815738675281', N'1123598816738675201'), (N'1149888292577570817', N'1123598815738675282', N'1123598816738675201'), (N'1149888292594348033', N'1123598815738675283', N'1123598816738675201'), (N'1149888292611125249', N'1123598815738675284', N'1123598816738675201'), (N'1149888292623708162', N'1123598815738675285', N'1123598816738675201'), (N'1149888292640485377', N'1123598815738675286', N'1123598816738675201'), (N'1149888292653068289', N'1123598815738675287', N'1123598816738675201'), (N'1149888292669845506', N'1123598815738675288', N'1123598816738675201'), (N'1149888292682428417', N'1123598815738675289', N'1123598816738675201'), (N'1149888292699205634', N'1123598815738675290', N'1123598816738675201'), (N'1149888292711788545', N'1123598815738675291', N'1123598816738675201'), (N'1149888292724371458', N'1123598815738675292', N'1123598816738675201'), (N'1149888292741148674', N'1123598815738675293', N'1123598816738675201'), (N'1149888292753731585', N'1123598815738675294', N'1123598816738675201'), (N'1149888292766314497', N'1123598815738675295', N'1123598816738675201'), (N'1149888292778897410', N'1123598815738675296', N'1123598816738675201'), (N'1149888292791480321', N'1123598815738675297', N'1123598816738675201'), (N'1149888292808257537', N'1123598815738675210', N'1123598816738675201'), (N'1149888292820840449', N'1123598815738675211', N'1123598816738675201'), (N'1149888292833423362', N'1123598815738675212', N'1123598816738675201'), (N'1149888292846006274', N'1123598815738675213', N'1123598816738675201'), (N'1149888292862783489', N'1123598815738675214', N'1123598816738675201'), (N'1149888292875366401', N'1123598815738675249', N'1123598816738675201'), (N'1149888292887949313', N'1123598815738675215', N'1123598816738675201'), (N'1149888292904726530', N'1123598815738675250', N'1123598816738675201'), (N'1149888292917309442', N'1123598815738675216', N'1123598816738675201'), (N'1149888292929892353', N'1123598815738675251', N'1123598816738675201'), (N'1149888292942475265', N'1123598815738675217', N'1123598816738675201'), (N'1149888292959252482', N'1123598815738675218', N'1123598816738675201'), (N'1149888292971835393', N'1123598815738675252', N'1123598816738675201'), (N'1149888292984418306', N'1123598815738675253', N'1123598816738675201'), (N'1149888292997001217', N'1123598815738675254', N'1123598816738675201'), (N'1149888293009584129', N'1123598815738675255', N'1123598816738675201'), (N'1149888293026361346', N'1123598815738675266', N'1123598816738675201'), (N'1149888293043138562', N'1123598815738675267', N'1123598816738675201'), (N'1149888293055721473', N'1123598815738675268', N'1123598816738675201'), (N'1149888293072498690', N'1123598815738675269', N'1123598816738675201'), (N'1149888293089275906', N'1123598815738675270', N'1123598816738675201'), (N'1149888293101858817', N'1123598815738675271', N'1123598816738675201'), (N'1149888293114441729', N'1123598815738675272', N'1123598816738675201'), (N'1149888293127024642', N'1123598815738675273', N'1123598816738675201'), (N'1149888293139607554', N'1123598815738675274', N'1123598816738675201'), (N'1149888293152190465', N'1123598815738675275', N'1123598816738675201'), (N'1149888293164773377', N'1123598815738675276', N'1123598816738675201'), (N'1149888293177356290', N'1123598815738675277', N'1123598816738675201'), (N'1149888293189939201', N'1123598815738675278', N'1123598816738675201'), (N'1149888293202522113', N'1123598815738675279', N'1123598816738675201'), (N'1149888293215105026', N'1123598815738675298', N'1123598816738675201'), (N'1149888293227687938', N'1123598815738675299', N'1123598816738675201'), (N'1149888293240270850', N'1123598815738675301', N'1123598816738675201'), (N'1149888293252853762', N'1123598815738675302', N'1123598816738675201'), (N'1149888293265436674', N'1123598815738675303', N'1123598816738675201'), (N'1149888293278019586', N'1123598815738675304', N'1123598816738675201'), (N'1149888293290602497', N'1123598815738675305', N'1123598816738675201'), (N'1149888293303185410', N'1123598815738675307', N'1123598816738675201'), (N'1149888293315768322', N'1123598815738675308', N'1123598816738675201'), (N'1149888293328351234', N'1123598815738675241', N'1123598816738675201'), (N'1149888293336739841', N'1123598815738675242', N'1123598816738675201'), (N'1149888293349322753', N'1123598815738675243', N'1123598816738675201'), (N'1149888293361905666', N'1123598815738675244', N'1123598816738675201'), (N'1149888293374488578', N'1123598815738675309', N'1123598816738675201'), (N'1149888293387071489', N'1123598815738675310', N'1123598816738675201'), (N'1149888293399654402', N'1123598815738675311', N'1123598816738675201'), (N'1149888293412237313', N'1123598815738675312', N'1123598816738675201'), (N'1149888293424820226', N'1123598815738675203', N'1123598816738675201'), (N'1149888293454180354', N'1123598815738675204', N'1123598816738675201'), (N'1149888293483540481', N'1123598815738675223', N'1123598816738675201'), (N'1149888293512900609', N'1123598815738675224', N'1123598816738675201'), (N'1149888293529677826', N'1123598815738675225', N'1123598816738675201'), (N'1149888293554843649', N'1123598815738675226', N'1123598816738675201'), (N'1149888293571620866', N'1123598815738675227', N'1123598816738675201'), (N'1149888293588398081', N'1123598815738675228', N'1123598816738675201'), (N'1149888293605175297', N'1123598815738675205', N'1123598816738675201'), (N'1149888293617758209', N'1123598815738675229', N'1123598816738675201'), (N'1149888293630341121', N'1123598815738675230', N'1123598816738675201'), (N'1149888293642924033', N'1123598815738675231', N'1123598816738675201'), (N'1149888293659701250', N'1123598815738675232', N'1123598816738675201'), (N'1149888293672284162', N'1123598815738675206', N'1123598816738675201'), (N'1149888293684867074', N'1123598815738675233', N'1123598816738675201'), (N'1149888293697449986', N'1123598815738675234', N'1123598816738675201'), (N'1149888293710032897', N'1123598815738675235', N'1123598816738675201'), (N'1149888293722615809', N'1123598815738675236', N'1123598816738675201'), (N'1149888293735198722', N'1123598815738675207', N'1123598816738675201'), (N'1149888293747781633', N'1123598815738675237', N'1123598816738675201'), (N'1149888293760364545', N'1123598815738675238', N'1123598816738675201'), (N'1149888293772947458', N'1123598815738675239', N'1123598816738675201'), (N'1149888293785530370', N'1123598815738675240', N'1123598816738675201'), (N'1149888293798113282', N'1123598815738675306', N'1123598816738675201'), (N'1149888293810696194', N'1123598815738675208', N'1123598816738675201'), (N'1149888293819084802', N'1123598815738675313', N'1123598816738675201'), (N'1149888293831667714', N'1123598815738675314', N'1123598816738675201'), (N'1149888293844250626', N'1123598815738675315', N'1123598816738675201'), (N'1149888293856833538', N'1123598815738675316', N'1123598816738675201'), (N'1149888293856833539', N'1123598815738675317', N'1123598816738675201'), (N'1149888293869416450', N'1123598815738675209', N'1123598816738675201'), (N'1149888293881999362', N'1123598815738675245', N'1123598816738675201'), (N'1149888293894582274', N'1123598815738675246', N'1123598816738675201'), (N'1149888293907165186', N'1123598815738675247', N'1123598816738675201'), (N'1149888293919748097', N'1123598815738675248', N'1123598816738675201'), (N'1149888293932331010', N'1123598815738675256', N'1123598816738675201'), (N'1149888293940719618', N'1123598815738675257', N'1123598816738675201'), (N'1149888293953302530', N'1123598815738675258', N'1123598816738675201'), (N'1149888293965885441', N'1123598815738675259', N'1123598816738675201'), (N'1149888293978468354', N'1123598815738675260', N'1123598816738675201'), (N'1149888293986856962', N'1123598815738675261', N'1123598816738675201'), (N'1149888293999439874', N'1123598815738675262', N'1123598816738675201'), (N'1149888294007828482', N'1123598815738675263', N'1123598816738675201'), (N'1149888294020411393', N'1123598815738675264', N'1123598816738675201'), (N'1149888294028800002', N'1123598815738675265', N'1123598816738675201'), (N'1161272593873322991', N'1161272593873321991', N'1123598816738675201'), (N'1161272593873322992', N'1161272593873321992', N'1123598816738675201'), (N'1161272593873322993', N'1161272593873321993', N'1123598816738675201'), (N'1161272593873322994', N'1161272593873321994', N'1123598816738675201'), (N'1161272593873322995', N'1161272593873321995', N'1123598816738675201'), (N'1161272693873322991', N'1164733369658963251', N'1123598816738675201'), (N'1161272693873322992', N'1164733369658963252', N'1123598816738675201'), (N'1161272693873322993', N'1164733369658963253', N'1123598816738675201'), (N'1161272693873322994', N'1164733369658963254', N'1123598816738675201'), (N'1161272693873322995', N'1164733369658963255', N'1123598816738675201'), (N'1161272793873322991', N'1164733379658963251', N'1123598816738675201'), (N'1161272793873322992', N'1164733379658963252', N'1123598816738675201'), (N'1161272793873322993', N'1164733379658963253', N'1123598816738675201'), (N'1161272793873322994', N'1164733379658963254', N'1123598816738675201'), (N'1161272793873322995', N'1164733379658963255', N'1123598816738675201'), (N'1161272893873222991', N'1164733389658962251', N'1123598816738675201'), (N'1161272893873222992', N'1164733389658962252', N'1123598816738675201'), (N'1161272893873222993', N'1164733389658962253', N'1123598816738675201'), (N'1161272893873222994', N'1164733389658962254', N'1123598816738675201'), (N'1161272893873222995', N'1164733389658962255', N'1123598816738675201'), (N'1161272893873222996', N'1164733389658962256', N'1123598816738675201'), (N'1161272893873322991', N'1164733389658963251', N'1123598816738675201'), (N'1161272893875225001', N'1164733389668962251', N'1123598816738675201'), (N'1161272893875225002', N'1164733389668962252', N'1123598816738675201'), (N'1161272893875225003', N'1164733389668962253', N'1123598816738675201'), (N'1161272893875225004', N'1164733389668962254', N'1123598816738675201'), (N'1161272893875225005', N'1164733389668962255', N'1123598816738675201'), (N'1161272893875225006', N'1164733389668962256', N'1123598816738675201'), (N'1161272893875226001', N'1164733399668962201', N'1123598816738675201'), (N'1161272893875226002', N'1164733399668962202', N'1123598816738675201'), (N'1161272893875226003', N'1164733399668962203', N'1123598816738675201'), (N'1161272893875226004', N'1164733399668962204', N'1123598816738675201'), (N'1161272893875226005', N'1164733399668962205', N'1123598816738675201'), (N'1161272893875226006', N'1164733399668962206', N'1123598816738675201'), (N'1161272893875226007', N'1164733399668962207', N'1123598816738675201'), (N'1161272893875227001', N'1164733399669962201', N'1123598816738675201'), (N'1161272893875227002', N'1164733399669962202', N'1123598816738675201'), (N'1161272893875227003', N'1164733399669962203', N'1123598816738675201'), (N'1161272893875227004', N'1164733399669962204', N'1123598816738675201'), (N'1161272893875228001', N'1164733399669962301', N'1123598816738675201'), (N'1161272893875228002', N'1164733399669962302', N'1123598816738675201'), (N'1161272893875228003', N'1164733399669962303', N'1123598816738675201'), (N'1161272893875228004', N'1164733399669962304', N'1123598816738675201') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_role_scope +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_role_scope]') AND type IN ('U')) + DROP TABLE [dbo].[blade_role_scope] +GO + +CREATE TABLE [dbo].[blade_role_scope] ( + [id] bigint NOT NULL, + [scope_category] int NULL, + [scope_id] bigint NULL, + [role_id] bigint NULL +) +GO + +ALTER TABLE [dbo].[blade_role_scope] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_scope', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'权限类型(1:数据权限、2:接口权限)', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_scope', +'COLUMN', N'scope_category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'权限id', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_scope', +'COLUMN', N'scope_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色id', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_scope', +'COLUMN', N'role_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色数据权限关联表', +'SCHEMA', N'dbo', +'TABLE', N'blade_role_scope' +GO + + +-- ---------------------------- +-- Table structure for blade_scope_api +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_scope_api]') AND type IN ('U')) + DROP TABLE [dbo].[blade_scope_api] +GO + +CREATE TABLE [dbo].[blade_scope_api] ( + [id] bigint NOT NULL, + [menu_id] bigint NULL, + [resource_code] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_path] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_type] int NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_scope_api] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'menu_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'资源编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'resource_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接口权限名', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'scope_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接口权限地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'scope_path' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接口权限类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'scope_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接口权限备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'接口权限表', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_api' +GO + + +-- ---------------------------- +-- Table structure for blade_scope_data +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_scope_data]') AND type IN ('U')) + DROP TABLE [dbo].[blade_scope_data] +GO + +CREATE TABLE [dbo].[blade_scope_data] ( + [id] bigint NOT NULL, + [menu_id] bigint NULL, + [resource_code] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_field] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_class] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [scope_column] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [scope_type] int NULL, + [scope_value] nvarchar(2000) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_scope_data] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'menu_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'资源编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'resource_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'scope_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限字段', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'scope_field' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限类名', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'scope_class' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限字段', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'scope_column' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限类型', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'scope_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限值域', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'scope_value' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据权限表', +'SCHEMA', N'dbo', +'TABLE', N'blade_scope_data' +GO + + +-- ---------------------------- +-- Table structure for blade_sms +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_sms]') AND type IN ('U')) + DROP TABLE [dbo].[blade_sms] +GO + +CREATE TABLE [dbo].[blade_sms] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [category] int NULL, + [sms_code] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [template_id] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [access_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [secret_key] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [region_id] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [sign_name] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_sms] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'分类', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'category' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'资源编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'sms_code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'模板ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'template_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'accessKey', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'access_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'secretKey', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'secret_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'regionId', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'region_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'短信签名', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'sign_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'短信配置表', +'SCHEMA', N'dbo', +'TABLE', N'blade_sms' +GO + + +-- ---------------------------- +-- Table structure for blade_tenant +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_tenant]') AND type IN ('U')) + DROP TABLE [dbo].[blade_tenant] +GO + +CREATE TABLE [dbo].[blade_tenant] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [tenant_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL, + [domain_url] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [background_url] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [linkman] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [contact_number] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [address] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [account_number] int NULL, + [expire_time] datetime2(0) NULL, + [package_id] int NULL, + [datasource_id] bigint NULL, + [license_key] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_tenant] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户名称', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'tenant_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'域名地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'domain_url' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'系统背景', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'background_url' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'联系人', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'linkman' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'联系电话', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'contact_number' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'联系地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'address' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'账号额度', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'account_number' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'过期时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'expire_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户产品ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'package_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'数据源ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'datasource_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'授权码', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'license_key' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户表', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant' +GO + + +-- ---------------------------- +-- Records of blade_tenant +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_tenant] VALUES (N'1123598820738675201', N'000000', N'管理组', NULL, NULL, N'admin', N'666666', N'管理组', N'-1', NULL, NULL, NULL, NULL, N'1123598821738675201', N'1123598813738675201', N'2019-01-01 00:00:39', N'1123598821738675201', N'2019-01-01 00:00:39', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_tenant_package +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_tenant_package]') AND type IN ('U')) + DROP TABLE [dbo].[blade_tenant_package] +GO + +CREATE TABLE [dbo].[blade_tenant_package] ( + [id] bigint NOT NULL, + [package_name] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [menu_id] nvarchar(3000) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_tenant_package] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'产品包名', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'package_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'menu_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户产品表', +'SCHEMA', N'dbo', +'TABLE', N'blade_tenant_package' +GO + + +-- ---------------------------- +-- Table structure for blade_top_menu +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_top_menu]') AND type IN ('U')) + DROP TABLE [dbo].[blade_top_menu] +GO + +CREATE TABLE [dbo].[blade_top_menu] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [code] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [name] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [source] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [sort] int NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_top_menu] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户id', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单名', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单资源', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'source' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单排序', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'sort' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单表', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu' +GO + + +-- ---------------------------- +-- Table structure for blade_top_menu_setting +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_top_menu_setting]') AND type IN ('U')) + DROP TABLE [dbo].[blade_top_menu_setting] +GO + +CREATE TABLE [dbo].[blade_top_menu_setting] ( + [id] bigint NOT NULL, + [top_menu_id] bigint NULL, + [menu_id] bigint NULL +) +GO + +ALTER TABLE [dbo].[blade_top_menu_setting] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu_setting', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu_setting', +'COLUMN', N'top_menu_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'菜单主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu_setting', +'COLUMN', N'menu_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'顶部菜单配置表', +'SCHEMA', N'dbo', +'TABLE', N'blade_top_menu_setting' +GO + + +-- ---------------------------- +-- Table structure for blade_user +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user]') AND type IN ('U')) + DROP TABLE [dbo].[blade_user] +GO + +CREATE TABLE [dbo].[blade_user] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [code] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [user_type] int NULL, + [account] nvarchar(45) COLLATE Chinese_PRC_CI_AS NULL, + [password] nvarchar(45) COLLATE Chinese_PRC_CI_AS NULL, + [name] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [real_name] nvarchar(10) COLLATE Chinese_PRC_CI_AS NULL, + [avatar] nvarchar(500) COLLATE Chinese_PRC_CI_AS NULL, + [email] nvarchar(45) COLLATE Chinese_PRC_CI_AS NULL, + [phone] nvarchar(45) COLLATE Chinese_PRC_CI_AS NULL, + [birthday] datetime2(0) NULL, + [sex] int NULL, + [role_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [dept_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [post_id] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [create_user] bigint NULL, + [create_dept] bigint NULL, + [create_time] datetime2(0) NULL, + [update_user] bigint NULL, + [update_time] datetime2(0) NULL, + [status] int NULL, + [is_deleted] int NULL +) +GO + +ALTER TABLE [dbo].[blade_user] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户编号', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'code' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户平台', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'user_type' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'账号', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'account' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'密码', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'password' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'昵称', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'真名', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'real_name' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'头像', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'avatar' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'邮箱', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'email' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'手机', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'phone' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'生日', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'birthday' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'性别', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'sex' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'角色id', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'role_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'部门id', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'dept_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'岗位id', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'post_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建人', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'create_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建部门', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'create_dept' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'创建时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'create_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改人', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'update_user' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'修改时间', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'update_time' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'状态', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'status' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'是否已删除', +'SCHEMA', N'dbo', +'TABLE', N'blade_user', +'COLUMN', N'is_deleted' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户表', +'SCHEMA', N'dbo', +'TABLE', N'blade_user' +GO + + +-- ---------------------------- +-- Records of blade_user +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_user] VALUES (N'1123598821738675201', N'000000', NULL, N'1', N'admin', N'90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', N'管理员', N'管理员', N'https://bladex.cn/images/logo.png', N'admin@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675201', N'1123598813738675201', N'1123598817738675201', N'1123598821738675201', N'1123598813738675201', N'2018-08-08 00:00:00', N'1123598821738675201', N'2018-08-08 00:00:00', N'1', N'0'), (N'1123598821738675202', N'000000', NULL, N'1', N'hr', N'5e79b90f7bba52d54115f086e48f539016a27ec6', N'人事', N'人事', N'', N'hr@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675203', N'1123598813738675202', N'1123598817738675207', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:10', N'1123598821738675201', N'2019-04-27 17:03:10', N'1', N'0'), (N'1123598821738675203', N'000000', NULL, N'1', N'manager', N'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', N'经理', N'经理', N'', N'manager@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675204', N'1123598813738675202', N'1123598817738675206', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:38', N'1123598821738675201', N'2019-04-27 17:03:38', N'1', N'0'), (N'1123598821738675204', N'000000', NULL, N'1', N'boss', N'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', N'老板', N'老板', N'', N'boss@bladex.vip', N'123333333333', N'2018-08-08 00:00:00', N'1', N'1123598816738675205', N'1123598813738675202', N'1123598817738675201', N'1123598821738675201', N'1123598813738675201', N'2019-04-27 17:03:55', N'1123598821738675201', N'2019-04-27 17:03:55', N'1', N'0') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_user_app +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_app]') AND type IN ('U')) + DROP TABLE [dbo].[blade_user_app] +GO + +CREATE TABLE [dbo].[blade_user_app] ( + [id] bigint NOT NULL, + [user_id] bigint NULL, + [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[blade_user_app] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_app', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_app', +'COLUMN', N'user_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户拓展信息', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_app', +'COLUMN', N'user_ext' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户平台拓展表', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_app' +GO + + +-- ---------------------------- +-- Table structure for blade_user_dept +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_dept]') AND type IN ('U')) + DROP TABLE [dbo].[blade_user_dept] +GO + +CREATE TABLE [dbo].[blade_user_dept] ( + [id] bigint NOT NULL, + [user_id] bigint NULL, + [dept_id] bigint NULL +) +GO + +ALTER TABLE [dbo].[blade_user_dept] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_dept', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_dept', +'COLUMN', N'user_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'部门ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_dept', +'COLUMN', N'dept_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户部门表', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_dept' +GO + + +-- ---------------------------- +-- Records of blade_user_dept +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[blade_user_dept] VALUES (N'1203503640757788674', N'1123598821738675201', N'1123598813738675201'), (N'1203503653323923458', N'1123598821738675202', N'1123598813738675202'), (N'1203503663402835969', N'1123598821738675203', N'1123598813738675202'), (N'1203503672911323137', N'1123598821738675204', N'1123598813738675202') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for blade_user_oauth +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_oauth]') AND type IN ('U')) + DROP TABLE [dbo].[blade_user_oauth] +GO + +CREATE TABLE [dbo].[blade_user_oauth] ( + [id] bigint NOT NULL, + [tenant_id] nvarchar(12) COLLATE Chinese_PRC_CI_AS NULL, + [uuid] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [user_id] bigint NULL, + [username] nvarchar(32) COLLATE Chinese_PRC_CI_AS NULL, + [nickname] nvarchar(64) COLLATE Chinese_PRC_CI_AS NULL, + [avatar] nvarchar(1000) COLLATE Chinese_PRC_CI_AS NULL, + [blog] nvarchar(50) COLLATE Chinese_PRC_CI_AS NULL, + [company] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [location] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [email] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [remark] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [gender] nvarchar(16) COLLATE Chinese_PRC_CI_AS NULL, + [source] nvarchar(16) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[blade_user_oauth] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'租户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'tenant_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'第三方系统用户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'uuid' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'user_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'账号', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'username' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户名', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'nickname' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'头像', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'avatar' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'应用主页', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'blog' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'公司名', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'company' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'地址', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'location' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'邮件', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'email' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'备注', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'remark' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'性别', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'gender' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'来源', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth', +'COLUMN', N'source' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户第三方认证表', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_oauth' +GO + + +-- ---------------------------- +-- Table structure for blade_user_other +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_other]') AND type IN ('U')) + DROP TABLE [dbo].[blade_user_other] +GO + +CREATE TABLE [dbo].[blade_user_other] ( + [id] bigint NOT NULL, + [user_id] bigint NULL, + [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[blade_user_other] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_other', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_other', +'COLUMN', N'user_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户拓展信息', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_other', +'COLUMN', N'user_ext' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户平台拓展表', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_other' +GO + + +-- ---------------------------- +-- Table structure for blade_user_web +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[blade_user_web]') AND type IN ('U')) + DROP TABLE [dbo].[blade_user_web] +GO + +CREATE TABLE [dbo].[blade_user_web] ( + [id] bigint NOT NULL, + [user_id] bigint NULL, + [user_ext] varchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[blade_user_web] SET (LOCK_ESCALATION = TABLE) +GO + +EXEC sp_addextendedproperty +'MS_Description', N'主键', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_web', +'COLUMN', N'id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户ID', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_web', +'COLUMN', N'user_id' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户拓展信息', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_web', +'COLUMN', N'user_ext' +GO + +EXEC sp_addextendedproperty +'MS_Description', N'用户平台拓展表', +'SCHEMA', N'dbo', +'TABLE', N'blade_user_web' +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_attach +-- ---------------------------- +ALTER TABLE [dbo].[blade_attach] ADD CONSTRAINT [PK__blade_at__3213E83F1A14E395] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_client +-- ---------------------------- +ALTER TABLE [dbo].[blade_client] ADD CONSTRAINT [PK__blade_cl__3213E83F1CF15040] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_code +-- ---------------------------- +ALTER TABLE [dbo].[blade_code] ADD CONSTRAINT [PK__blade_co__3213E83F1FCDBCEB] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_datasource +-- ---------------------------- +ALTER TABLE [dbo].[blade_datasource] ADD CONSTRAINT [PK__blade_da__3213E83F22AA2996] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_dept +-- ---------------------------- +ALTER TABLE [dbo].[blade_dept] ADD CONSTRAINT [PK__blade_de__3213E83F25869641] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_dict +-- ---------------------------- +ALTER TABLE [dbo].[blade_dict] ADD CONSTRAINT [PK__blade_di__3213E83F286302EC] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_dict_biz +-- ---------------------------- +ALTER TABLE [dbo].[blade_dict_biz] ADD CONSTRAINT [PK__blade_di__3213E83F2B3F6F97] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_job_info +-- ---------------------------- +ALTER TABLE [dbo].[blade_job_info] ADD CONSTRAINT [PK__blade_jo__3213E83F035993DD] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_job_server +-- ---------------------------- +ALTER TABLE [dbo].[blade_job_server] ADD CONSTRAINT [PK__blade_jo__3213E83FD05FD0EB] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_log_api +-- ---------------------------- +ALTER TABLE [dbo].[blade_log_api] ADD CONSTRAINT [PK__blade_lo__3213E83F2E1BDC42] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_log_error +-- ---------------------------- +ALTER TABLE [dbo].[blade_log_error] ADD CONSTRAINT [PK__blade_lo__3213E83F30F848ED] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_log_usual +-- ---------------------------- +ALTER TABLE [dbo].[blade_log_usual] ADD CONSTRAINT [PK__blade_lo__3213E83F33D4B598] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_menu +-- ---------------------------- +ALTER TABLE [dbo].[blade_menu] ADD CONSTRAINT [PK__blade_me__3213E83F36B12243] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_model +-- ---------------------------- +ALTER TABLE [dbo].[blade_model] ADD CONSTRAINT [PK__blade_mo__3213E83F5792F321] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_model_prototype +-- ---------------------------- +ALTER TABLE [dbo].[blade_model_prototype] ADD CONSTRAINT [PK__blade_mo__3213E83F5B638405] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_notice +-- ---------------------------- +ALTER TABLE [dbo].[blade_notice] ADD CONSTRAINT [PK__blade_no__3213E83F398D8EEE] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_oss +-- ---------------------------- +ALTER TABLE [dbo].[blade_oss] ADD CONSTRAINT [PK__blade_os__3213E83F3C69FB99] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_param +-- ---------------------------- +ALTER TABLE [dbo].[blade_param] ADD CONSTRAINT [PK__blade_pa__3213E83F3F466844] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_post +-- ---------------------------- +ALTER TABLE [dbo].[blade_post] ADD CONSTRAINT [PK__blade_po__3213E83F4222D4EF] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_process_leave +-- ---------------------------- +ALTER TABLE [dbo].[blade_process_leave] ADD CONSTRAINT [PK__blade_pr__3213E83F44FF419A] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_region +-- ---------------------------- +ALTER TABLE [dbo].[blade_region] ADD CONSTRAINT [PK__blade_re__357D4CF847DBAE45] PRIMARY KEY CLUSTERED ([code]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_report_file +-- ---------------------------- +ALTER TABLE [dbo].[blade_report_file] ADD CONSTRAINT [PK__blade_re__3213E83F1C722D53] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_role +-- ---------------------------- +ALTER TABLE [dbo].[blade_role] ADD CONSTRAINT [PK__blade_ro__3213E83F4AB81AF0] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_role_menu +-- ---------------------------- +ALTER TABLE [dbo].[blade_role_menu] ADD CONSTRAINT [PK__blade_ro__3213E83F4D94879B] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_role_scope +-- ---------------------------- +ALTER TABLE [dbo].[blade_role_scope] ADD CONSTRAINT [PK__blade_ro__3213E83F5070F446] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_scope_api +-- ---------------------------- +ALTER TABLE [dbo].[blade_scope_api] ADD CONSTRAINT [PK__blade_sc__3213E83F534D60F1] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_scope_data +-- ---------------------------- +ALTER TABLE [dbo].[blade_scope_data] ADD CONSTRAINT [PK__blade_sc__3213E83F5629CD9C] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_sms +-- ---------------------------- +ALTER TABLE [dbo].[blade_sms] ADD CONSTRAINT [PK__blade_sm__3213E83F59063A47] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_tenant +-- ---------------------------- +ALTER TABLE [dbo].[blade_tenant] ADD CONSTRAINT [PK__blade_te__3213E83F5BE2A6F2] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_tenant_package +-- ---------------------------- +ALTER TABLE [dbo].[blade_tenant_package] ADD CONSTRAINT [PK__blade_te__3213E83F09C96D33] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_top_menu +-- ---------------------------- +ALTER TABLE [dbo].[blade_top_menu] ADD CONSTRAINT [PK__blade_to__3213E83F5EBF139D] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_top_menu_setting +-- ---------------------------- +ALTER TABLE [dbo].[blade_top_menu_setting] ADD CONSTRAINT [PK__blade_to__3213E83F619B8048] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_user +-- ---------------------------- +ALTER TABLE [dbo].[blade_user] ADD CONSTRAINT [PK__blade_us__3213E83F6477ECF3] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_user_app +-- ---------------------------- +ALTER TABLE [dbo].[blade_user_app] ADD CONSTRAINT [PK__blade_us__3213E83F6BE40491] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_user_dept +-- ---------------------------- +ALTER TABLE [dbo].[blade_user_dept] ADD CONSTRAINT [PK__blade_us__3213E83F6754599E] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_user_oauth +-- ---------------------------- +ALTER TABLE [dbo].[blade_user_oauth] ADD CONSTRAINT [PK__blade_us__3213E83F6A30C649] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_user_other +-- ---------------------------- +ALTER TABLE [dbo].[blade_user_other] ADD CONSTRAINT [PK__blade_us__3213E83F6FB49575] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table blade_user_web +-- ---------------------------- +ALTER TABLE [dbo].[blade_user_web] ADD CONSTRAINT [PK__blade_us__3213E83F681373AD] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + diff --git a/doc/sql/bladex/bladex.yashan.all.create.sql b/doc/sql/bladex/bladex.yashan.all.create.sql new file mode 100644 index 0000000..ab3e0c6 --- /dev/null +++ b/doc/sql/bladex/bladex.yashan.all.create.sql @@ -0,0 +1,27710 @@ +/*The 1 SQL statement*/ +CREATE TABLE "BLADE_ATTACH" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "LINK" VARCHAR(1000), + "DOMAIN_URL" VARCHAR(500), + "NAME" VARCHAR(500), + "ORIGINAL_NAME" VARCHAR(500), + "EXTENSION" VARCHAR(12), + "ATTACH_SIZE" NUMBER(20), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 2 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."ID" IS '主键'; + +/*The 3 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."TENANT_ID" IS '租户ID'; + +/*The 4 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."LINK" IS '附件地址'; + +/*The 5 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."DOMAIN_URL" IS '附件域名'; + +/*The 6 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."NAME" IS '附件名称'; + +/*The 7 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."ORIGINAL_NAME" IS '附件原名'; + +/*The 8 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."EXTENSION" IS '附件拓展名'; + +/*The 9 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."ATTACH_SIZE" IS '附件大小'; + +/*The 10 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_USER" IS '创建人'; + +/*The 11 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_DEPT" IS '创建部门'; + +/*The 12 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."CREATE_TIME" IS '创建时间'; + +/*The 13 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_USER" IS '修改人'; + +/*The 14 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."UPDATE_TIME" IS '修改时间'; + +/*The 15 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."STATUS" IS '状态'; + +/*The 16 SQL statement*/ +COMMENT ON COLUMN "BLADE_ATTACH"."IS_DELETED" IS '是否已删除'; + +/*The 17 SQL statement*/ +COMMENT ON TABLE "BLADE_ATTACH" IS '附件表'; + +/*The 18 SQL statement*/ +CREATE TABLE "BLADE_CLIENT" ( + "ID" NUMBER(20) NOT NULL, + "CLIENT_ID" VARCHAR(48) NOT NULL, + "CLIENT_SECRET" VARCHAR(256) NOT NULL, + "RESOURCE_IDS" VARCHAR(256), + "SCOPE" VARCHAR(256) NOT NULL, + "AUTHORIZED_GRANT_TYPES" VARCHAR(256) NOT NULL, + "WEB_SERVER_REDIRECT_URI" VARCHAR(256), + "AUTHORITIES" VARCHAR(256), + "ACCESS_TOKEN_VALIDITY" NUMBER(11) NOT NULL, + "REFRESH_TOKEN_VALIDITY" NUMBER(11) NOT NULL, + "ADDITIONAL_INFORMATION" CLOB, + "AUTOAPPROVE" VARCHAR(256), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11) NOT NULL, + "IS_DELETED" NUMBER(11) NOT NULL +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 19 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."ID" IS '主键'; + +/*The 20 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_ID" IS '客户端ID'; + +/*The 21 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."CLIENT_SECRET" IS '客户端密钥'; + +/*The 22 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."RESOURCE_IDS" IS '资源集合'; + +/*The 23 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."SCOPE" IS '授权范围'; + +/*The 24 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORIZED_GRANT_TYPES" IS '授权类型'; + +/*The 25 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."WEB_SERVER_REDIRECT_URI" IS '回调地址'; + +/*The 26 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."AUTHORITIES" IS '权限'; + +/*The 27 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."ACCESS_TOKEN_VALIDITY" IS '令牌过期秒数'; + +/*The 28 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."REFRESH_TOKEN_VALIDITY" IS '刷新令牌过期秒数'; + +/*The 29 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."ADDITIONAL_INFORMATION" IS '附加说明'; + +/*The 30 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."AUTOAPPROVE" IS '自动授权'; + +/*The 31 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_USER" IS '创建人'; + +/*The 32 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_DEPT" IS '创建部门'; + +/*The 33 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."CREATE_TIME" IS '创建时间'; + +/*The 34 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_USER" IS '修改人'; + +/*The 35 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."UPDATE_TIME" IS '修改时间'; + +/*The 36 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."STATUS" IS '状态'; + +/*The 37 SQL statement*/ +COMMENT ON COLUMN "BLADE_CLIENT"."IS_DELETED" IS '是否已删除'; + +/*The 38 SQL statement*/ +COMMENT ON TABLE "BLADE_CLIENT" IS '客户端表'; + +/*The 39 SQL statement*/ +INSERT INTO "BLADE_CLIENT" +VALUES ('1123598811738675201', 'sword', 'sword_secret', NULL, 'all' + , 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:8888', NULL, '3600', '604800' + , NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:40:55', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598815738675201', TO_DATE('2019-03-24 10:40:59', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 40 SQL statement*/ +INSERT INTO "BLADE_CLIENT" +VALUES ('1123598811738675202', 'saber', 'saber_secret', NULL, 'all' + , 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:1888', NULL, '3600', '604800' + , NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2019-03-24 10:42:29', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598815738675201', TO_DATE('2019-03-24 10:42:32', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +INSERT INTO "BLADE_CLIENT" +VALUES ('1123598811738675203', 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +INSERT INTO "BLADE_CLIENT" +VALUES ('1123598811738675204', 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 41 SQL statement*/ +COMMIT; + +/*The 42 SQL statement*/ +CREATE TABLE "BLADE_CODE" ( + "ID" NUMBER(20) NOT NULL, + "MODEL_ID" NUMBER(20), + "SERVICE_NAME" VARCHAR(64), + "CODE_NAME" VARCHAR(64), + "TABLE_NAME" VARCHAR(64), + "TABLE_PREFIX" VARCHAR(64), + "PK_NAME" VARCHAR(32), + "PACKAGE_NAME" VARCHAR(500), + "TEMPLATE_TYPE" VARCHAR(32), + "AUTHOR" VARCHAR(32), + "SUB_MODEL_ID" VARCHAR(32), + "SUB_FK_ID" VARCHAR(32), + "TREE_ID" VARCHAR(32), + "TREE_PID" VARCHAR(32), + "TREE_NAME" VARCHAR(64), + "BASE_MODE" NUMBER(11), + "WRAP_MODE" NUMBER(11), + "FEIGN_MODE" NUMBER(11), + "CODE_STYLE" VARCHAR(32), + "API_PATH" CLOB, + "WEB_PATH" CLOB, + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 43 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."ID" IS '主键'; + +/*The 44 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."MODEL_ID" IS '数据模型主键'; + +/*The 45 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."SERVICE_NAME" IS '服务名称'; + +/*The 46 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."CODE_NAME" IS '模块名称'; + +/*The 47 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."TABLE_NAME" IS '表名'; + +/*The 48 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."TABLE_PREFIX" IS '表前缀'; + +/*The 49 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."PK_NAME" IS '主键名'; + +/*The 50 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."PACKAGE_NAME" IS '后端包名'; + +/*The 51 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."TEMPLATE_TYPE" IS '模版类型'; + +/*The 52 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."AUTHOR" IS '作者信息'; + +/*The 53 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."SUB_MODEL_ID" IS '子表模型主键'; + +/*The 54 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."SUB_FK_ID" IS '子表绑定外键'; + +/*The 55 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."TREE_ID" IS '树主键字段'; + +/*The 56 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."TREE_PID" IS '树父主键字段'; + +/*The 57 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."TREE_NAME" IS '树名称字段'; + +/*The 58 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."BASE_MODE" IS '基础业务模式'; + +/*The 59 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."WRAP_MODE" IS '包装器模式'; + +/*The 60 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."FEIGN_MODE" IS '远程调用模式'; + +/*The 61 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."CODE_STYLE" IS '代码风格'; + +/*The 62 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."API_PATH" IS '后端路径'; + +/*The 63 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."WEB_PATH" IS '前端路径'; + +/*The 64 SQL statement*/ +COMMENT ON COLUMN "BLADE_CODE"."IS_DELETED" IS '是否已删除'; + +/*The 65 SQL statement*/ +COMMENT ON TABLE "BLADE_CODE" IS '代码生成表'; + +/*The 66 SQL statement*/ +CREATE TABLE "BLADE_DATASOURCE" ( + "ID" NUMBER(20) NOT NULL, + "CATEGORY" NUMBER(11) DEFAULT 1, + "NAME" VARCHAR(100), + "DRIVER_CLASS" VARCHAR(100), + "URL" VARCHAR(500), + "USERNAME" VARCHAR(45), + "PASSWORD" VARCHAR(45), + "SHARDING_CONFIG" CLOB, + "REMARK" VARCHAR(500), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 67 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."ID" IS '主键'; + +/*The 67.1 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."CATEGORY" IS '数据源类型'; + +/*The 68 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."NAME" IS '名称'; + +/*The 69 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."DRIVER_CLASS" IS '驱动类'; + +/*The 70 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."URL" IS '链接地址'; + +/*The 71 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."USERNAME" IS '用户名'; + +/*The 72 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."PASSWORD" IS '密码'; + +/*The 72.1 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."SHARDING_CONFIG" IS '分库分表配置'; + +/*The 73 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."REMARK" IS '备注'; + +/*The 74 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_USER" IS '创建人'; + +/*The 75 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_DEPT" IS '创建部门'; + +/*The 76 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."CREATE_TIME" IS '创建时间'; + +/*The 77 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_USER" IS '修改人'; + +/*The 78 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."UPDATE_TIME" IS '修改时间'; + +/*The 79 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."STATUS" IS '状态'; + +/*The 80 SQL statement*/ +COMMENT ON COLUMN "BLADE_DATASOURCE"."IS_DELETED" IS '是否已删除'; + +/*The 81 SQL statement*/ +COMMENT ON TABLE "BLADE_DATASOURCE" IS '数据源配置表'; + +/*The 82 SQL statement*/ +INSERT INTO "BLADE_DATASOURCE" +VALUES ('1161483357481541634', '1','mysql', 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://localhost:3306/bladex?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true', 'root' + , 'root', '', 'mysql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-08-08 12:20:06', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 83 SQL statement*/ +INSERT INTO "BLADE_DATASOURCE" +VALUES ('1161483504353484802', '1','postgresql', 'org.postgresql.Driver', 'jdbc:postgresql://127.0.0.1:5432/bladex', 'postgres' + , '123456', '', 'postgresql', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-08-08 12:20:02', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 84 SQL statement*/ +INSERT INTO "BLADE_DATASOURCE" +VALUES ('1161483594023510018', '1','oracle', 'oracle.jdbc.OracleDriver', 'jdbc:oracle:thin:@127.0.0.1:1521:orcl', 'BLADEX' + , 'BLADEX', '', 'oracle', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 85 SQL statement*/ +INSERT INTO "BLADE_DATASOURCE" +VALUES ('1161483594023510020', '1','sqlserver', 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex', 'bladex' + , 'bladex', '', 'sqlserver', '1123598821738675201', '1123598813738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-08-08 12:20:03', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 86 SQL statement*/ +COMMIT; + +/*The 87 SQL statement*/ +CREATE TABLE "BLADE_DEPT" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "PARENT_ID" NUMBER(20), + "ANCESTORS" CLOB, + "DEPT_CATEGORY" NUMBER(11), + "DEPT_NAME" VARCHAR(45), + "FULL_NAME" VARCHAR(45), + "SORT" NUMBER(11), + "REMARK" VARCHAR(255), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 88 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."ID" IS '主键'; + +/*The 89 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."TENANT_ID" IS '租户ID'; + +/*The 90 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."PARENT_ID" IS '父主键'; + +/*The 91 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."ANCESTORS" IS '祖级列表'; + +/*The 92 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."DEPT_CATEGORY" IS '部门类型'; + +/*The 93 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."DEPT_NAME" IS '部门名'; + +/*The 94 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."FULL_NAME" IS '部门全称'; + +/*The 95 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."SORT" IS '排序'; + +/*The 96 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."REMARK" IS '备注'; + +/*The 97 SQL statement*/ +COMMENT ON COLUMN "BLADE_DEPT"."IS_DELETED" IS '是否已删除'; + +/*The 98 SQL statement*/ +COMMENT ON TABLE "BLADE_DEPT" IS '机构表'; + +/*The 99 SQL statement*/ +INSERT INTO "BLADE_DEPT" +VALUES ('1123598813738675201', '000000', '0', '0', '1' + , '布雷德科技', '上海布雷德科技有限公司', '1', NULL, '0'); + +/*The 100 SQL statement*/ +INSERT INTO "BLADE_DEPT" +VALUES ('1123598813738675202', '000000', '1123598813738675201', '0,1123598813738675201', '1' + , '常州布雷德', '常州布雷德科技有限公司', '1', NULL, '0'); + +/*The 101 SQL statement*/ +INSERT INTO "BLADE_DEPT" +VALUES ('1123598813738675203', '000000', '1123598813738675201', '0,1123598813738675201', '1' + , '苏州布雷德', '苏州布雷德科技有限公司', '1', NULL, '0'); + +/*The 102 SQL statement*/ +COMMIT; + +/*The 103 SQL statement*/ +CREATE TABLE "BLADE_DICT" ( + "ID" NUMBER(20) NOT NULL, + "PARENT_ID" NUMBER(20), + "CODE" VARCHAR(255), + "DICT_KEY" VARCHAR(255), + "DICT_VALUE" VARCHAR(255), + "SORT" NUMBER(11), + "REMARK" VARCHAR(255), + "IS_SEALED" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 104 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."ID" IS '主键'; + +/*The 105 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."PARENT_ID" IS '父主键'; + +/*The 106 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."CODE" IS '字典码'; + +/*The 107 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."DICT_KEY" IS '字典值'; + +/*The 108 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."DICT_VALUE" IS '字典名称'; + +/*The 109 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."SORT" IS '排序'; + +/*The 110 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."REMARK" IS '字典备注'; + +/*The 111 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."IS_SEALED" IS '是否已封存'; + +/*The 112 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT"."IS_DELETED" IS '是否已删除'; + +/*The 113 SQL statement*/ +COMMENT ON TABLE "BLADE_DICT" IS '字典表'; + +/*The 114 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675201', '0', 'sex', '-1', '性别' + , '1', NULL, '0', '0'); + +/*The 115 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675202', '1123598814738675201', 'sex', '1', '男' + , '1', NULL, '0', '0'); + +/*The 116 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675203', '1123598814738675201', 'sex', '2', '女' + , '2', NULL, '0', '0'); + +/*The 117 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675204', '0', 'notice', '-1', '通知类型' + , '2', NULL, '0', '0'); + +/*The 118 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675205', '1123598814738675204', 'notice', '1', '发布通知' + , '1', NULL, '0', '0'); + +/*The 119 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675206', '1123598814738675204', 'notice', '2', '批转通知' + , '2', NULL, '0', '0'); + +/*The 120 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675207', '1123598814738675204', 'notice', '3', '转发通知' + , '3', NULL, '0', '0'); + +/*The 121 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675208', '1123598814738675204', 'notice', '4', '指示通知' + , '4', NULL, '0', '0'); + +/*The 122 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675209', '1123598814738675204', 'notice', '5', '任免通知' + , '5', NULL, '0', '0'); + +/*The 123 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675210', '1123598814738675204', 'notice', '6', '事务通知' + , '6', NULL, '0', '0'); + +/*The 124 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675211', '0', 'menu_category', '-1', '菜单类型' + , '3', NULL, '0', '0'); + +/*The 125 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675212', '1123598814738675211', 'menu_category', '1', '菜单' + , '1', NULL, '0', '0'); + +/*The 126 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675213', '1123598814738675211', 'menu_category', '2', '按钮' + , '2', NULL, '0', '0'); + +/*The 127 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675214', '0', 'button_func', '-1', '按钮功能' + , '4', NULL, '0', '0'); + +/*The 128 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675215', '1123598814738675214', 'button_func', '1', '工具栏' + , '1', NULL, '0', '0'); + +/*The 129 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675216', '1123598814738675214', 'button_func', '2', '操作栏' + , '2', NULL, '0', '0'); + +/*The 130 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675217', '1123598814738675214', 'button_func', '3', '工具操作栏' + , '3', NULL, '0', '0'); + +/*The 131 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675218', '0', 'yes_no', '-1', '是否' + , '5', NULL, '0', '0'); + +/*The 132 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675219', '1123598814738675218', 'yes_no', '1', '否' + , '1', NULL, '0', '0'); + +/*The 133 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675220', '1123598814738675218', 'yes_no', '2', '是' + , '2', NULL, '0', '0'); + +/*The 134 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675221', '0', 'flow', '-1', '流程类型' + , '5', NULL, '0', '0'); + +/*The 135 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675222', '1123598814738675221', 'flow', '1', '请假流程' + , '1', 'leave', '0', '0'); + +/*The 136 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675223', '1123598814738675221', 'flow', '2', '报销流程' + , '2', 'expense', '0', '0'); + +/*The 137 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675227', '0', 'org_category', '-1', '机构类型' + , '7', NULL, '0', '0'); + +/*The 138 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675228', '1123598814738675227', 'org_category', '1', '公司' + , '1', NULL, '0', '0'); + +/*The 139 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675229', '1123598814738675227', 'org_category', '2', '部门' + , '2', NULL, '0', '0'); + +/*The 140 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675230', '1123598814738675227', 'org_category', '3', '小组' + , '3', NULL, '0', '0'); + +/*The 141 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675231', '0', 'data_scope_type', '-1', '数据权限' + , '8', NULL, '0', '0'); + +/*The 142 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675232', '1123598814738675231', 'data_scope_type', '1', '全部可见' + , '1', NULL, '0', '0'); + +/*The 143 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675233', '1123598814738675231', 'data_scope_type', '2', '本人可见' + , '2', NULL, '0', '0'); + +/*The 144 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675234', '1123598814738675231', 'data_scope_type', '3', '所在机构可见' + , '3', NULL, '0', '0'); + +/*The 145 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675235', '1123598814738675231', 'data_scope_type', '4', '所在机构及子级可见' + , '4', NULL, '0', '0'); + +/*The 146 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675236', '1123598814738675231', 'data_scope_type', '5', '自定义' + , '5', NULL, '0', '0'); + +/*The 147 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675237', '0', 'api_scope_type', '-1', '接口权限' + , '10', NULL, '0', '0'); + +/*The 148 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675238', '1123598814738675237', 'api_scope_type', '1', '系统接口' + , '1', NULL, '0', '0'); + +/*The 149 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675239', '1123598814738675237', 'api_scope_type', '2', '业务接口' + , '2', NULL, '0', '0'); + +/*The 150 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675240', '0', 'scope_category', '-1', '权限类型' + , '10', NULL, '0', '0'); + +/*The 151 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675241', '1123598814738675240', 'scope_category', '1', '数据权限' + , '1', NULL, '0', '0'); + +/*The 152 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738675242', '1123598814738675240', 'scope_category', '2', '接口权限' + , '2', NULL, '0', '0'); + +/*The 153 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676224', '0', 'oss', '-1', '对象存储类型' + , '6', NULL, '0', '0'); + +/*The 154 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676225', '1123598814738676224', 'oss', '1', 'minio' + , '1', NULL, '0', '0'); + +/*The 155 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676226', '1123598814738676224', 'oss', '2', 'qiniu' + , '2', NULL, '0', '0'); + +/*The 156 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676227', '1123598814738676224', 'oss', '3', 'ali' + , '3', NULL, '0', '0'); + +/*The 157 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676228', '1123598814738676224', 'oss', '4', 'tencent' + , '4', NULL, '0', '0'); + +/*The 153-1 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676229', '1123598814738676224', 'oss', '5', '华为云' + , '5', NULL, '0', '0'); + +/*The 153-2 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738676230', '1123598814738676224', 'oss', '6', 'amazon s3' + , '6', NULL, '0', '0'); + +/*The 158 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738677220', '0', 'sms', '-1', '短信服务类型' + , '11', NULL, '0', '0'); + +/*The 159 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738677221', '1123598814738677220', 'sms', '1', 'yunpian' + , '1', NULL, '0', '0'); + +/*The 160 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738677222', '1123598814738677220', 'sms', '2', 'qiniu' + , '2', NULL, '0', '0'); + +/*The 161 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738677223', '1123598814738677220', 'sms', '3', 'ali' + , '3', NULL, '0', '0'); + +/*The 162 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738677224', '1123598814738677220', 'sms', '4', 'tencent' + , '4', NULL, '0', '0'); + +/*The 163 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777220', '0', 'post_category', '-1', '岗位类型' + , '12', NULL, '0', '0'); + +/*The 164 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777221', '1123598814738777220', 'post_category', '1', '高层' + , '1', NULL, '0', '0'); + +/*The 165 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777222', '1123598814738777220', 'post_category', '2', '中层' + , '2', NULL, '0', '0'); + +/*The 166 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777223', '1123598814738777220', 'post_category', '3', '基层' + , '3', NULL, '0', '0'); + +/*The 167 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777224', '1123598814738777220', 'post_category', '4', '其他' + , '4', NULL, '0', '0'); + +/*The 168 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777230', '0', 'region', '-1', '行政区划' + , '13', NULL, '0', '0'); + +/*The 169 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777231', '1123598814738777230', 'region', '0', '国家' + , '0', NULL, '0', '0'); + +/*The 170 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777232', '1123598814738777230', 'region', '1', '省份/直辖市' + , '1', NULL, '0', '0'); + +/*The 171 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777233', '1123598814738777230', 'region', '2', '地市' + , '2', NULL, '0', '0'); + +/*The 172 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777234', '1123598814738777230', 'region', '3', '区县' + , '3', NULL, '0', '0'); + +/*The 173 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777235', '1123598814738777230', 'region', '4', '乡镇' + , '4', NULL, '0', '0'); + +/*The 174 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738777236', '1123598814738777230', 'region', '5', '村委' + , '5', NULL, '0', '0'); + +/*The 175 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738778200', '0', 'user_type', '-1', '用户平台' + , '14', NULL, '0', '0'); + +/*The 176 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738778201', '1123598814738778200', 'user_type', '1', 'WEB' + , '1', NULL, '0', '0'); + +/*The 177 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738778202', '1123598814738778200', 'user_type', '2', 'APP' + , '2', NULL, '0', '0'); + +/*The 178 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1123598814738778203', '1123598814738778200', 'user_type', '3', 'OTHER' + , '3', NULL, '0', '0'); + +/*The 178.1 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1735215689272508418', '0', 'datasource_category', '-1', '数据源类型', '16', '', '0', '0'); + +/*The 178.2 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1735215870613241857', '1735215689272508418', 'datasource_category', '1', 'jdbc', '1', '', '0', '0'); + +/*The 178.3 SQL statement*/ +INSERT INTO "BLADE_DICT" +VALUES ('1735215901546233858', '1735215689272508418', 'datasource_category', '2', 'sharding', '2', '', '0', '0'); + +/*The 179 SQL statement*/ +COMMIT; + +/*The 180 SQL statement*/ +CREATE TABLE "BLADE_DICT_BIZ" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "PARENT_ID" NUMBER(20), + "CODE" VARCHAR(255), + "DICT_KEY" VARCHAR(255), + "DICT_VALUE" VARCHAR(255), + "SORT" NUMBER(11), + "REMARK" VARCHAR(255), + "IS_SEALED" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 181 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."ID" IS '主键'; + +/*The 182 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."TENANT_ID" IS '租户ID'; + +/*The 183 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."PARENT_ID" IS '父主键'; + +/*The 184 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."CODE" IS '字典码'; + +/*The 185 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_KEY" IS '字典值'; + +/*The 186 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."DICT_VALUE" IS '字典名称'; + +/*The 187 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."SORT" IS '排序'; + +/*The 188 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."REMARK" IS '字典备注'; + +/*The 189 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_SEALED" IS '是否已封存'; + +/*The 190 SQL statement*/ +COMMENT ON COLUMN "BLADE_DICT_BIZ"."IS_DELETED" IS '是否已删除'; + +/*The 191 SQL statement*/ +COMMENT ON TABLE "BLADE_DICT_BIZ" IS '数据源配置表'; + +/*The 192 SQL statement*/ +CREATE TABLE "BLADE_LOG_API" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "SERVICE_ID" VARCHAR(32), + "SERVER_HOST" VARCHAR(255), + "SERVER_IP" VARCHAR(255), + "ENV" VARCHAR(255), + "TYPE" CHAR(1), + "TITLE" VARCHAR(255), + "METHOD" VARCHAR(10), + "REQUEST_URI" VARCHAR(255), + "USER_AGENT" VARCHAR(1000), + "REMOTE_IP" VARCHAR(255), + "METHOD_CLASS" VARCHAR(255), + "METHOD_NAME" VARCHAR(255), + "PARAMS" CLOB, + "TIME" VARCHAR(64), + "CREATE_BY" VARCHAR(64), + "CREATE_TIME" DATE +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 193 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."ID" IS '编号'; + +/*The 194 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."TENANT_ID" IS '租户ID'; + +/*The 195 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."SERVICE_ID" IS '服务ID'; + +/*The 196 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_HOST" IS '服务器名'; + +/*The 197 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."SERVER_IP" IS '服务器IP地址'; + +/*The 198 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."ENV" IS '服务器环境'; + +/*The 199 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."TYPE" IS '日志类型'; + +/*The 200 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."TITLE" IS '日志标题'; + +/*The 201 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."METHOD" IS '操作方式'; + +/*The 202 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."REQUEST_URI" IS '请求URI'; + +/*The 203 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."USER_AGENT" IS '用户代理'; + +/*The 204 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."REMOTE_IP" IS '操作IP地址'; + +/*The 205 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_CLASS" IS '方法类'; + +/*The 206 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."METHOD_NAME" IS '方法名'; + +/*The 207 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."PARAMS" IS '操作提交的数据'; + +/*The 208 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."TIME" IS '执行时间'; + +/*The 209 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_BY" IS '创建者'; + +/*The 210 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_API"."CREATE_TIME" IS '创建时间'; + +/*The 211 SQL statement*/ +COMMENT ON TABLE "BLADE_LOG_API" IS '接口日志表'; + +/*The 212 SQL statement*/ +CREATE TABLE "BLADE_LOG_ERROR" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "SERVICE_ID" VARCHAR(32), + "SERVER_HOST" VARCHAR(255), + "SERVER_IP" VARCHAR(255), + "ENV" VARCHAR(255), + "METHOD" VARCHAR(10), + "REQUEST_URI" VARCHAR(255), + "USER_AGENT" VARCHAR(1000), + "STACK_TRACE" CLOB, + "EXCEPTION_NAME" VARCHAR(255), + "MESSAGE" CLOB, + "LINE_NUMBER" NUMBER(11), + "REMOTE_IP" VARCHAR(255), + "METHOD_CLASS" VARCHAR(255), + "FILE_NAME" VARCHAR(1000), + "METHOD_NAME" VARCHAR(255), + "PARAMS" CLOB, + "CREATE_BY" VARCHAR(64), + "CREATE_TIME" DATE +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 213 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."ID" IS '编号'; + +/*The 214 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."TENANT_ID" IS '租户ID'; + +/*The 215 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVICE_ID" IS '服务ID'; + +/*The 216 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_HOST" IS '服务器名'; + +/*The 217 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."SERVER_IP" IS '服务器IP地址'; + +/*The 218 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."ENV" IS '系统环境'; + +/*The 219 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD" IS '操作方式'; + +/*The 220 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."REQUEST_URI" IS '请求URI'; + +/*The 221 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."USER_AGENT" IS '用户代理'; + +/*The 222 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."STACK_TRACE" IS '堆栈'; + +/*The 223 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."EXCEPTION_NAME" IS '异常名'; + +/*The 224 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."MESSAGE" IS '异常信息'; + +/*The 225 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."LINE_NUMBER" IS '错误行数'; + +/*The 226 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."REMOTE_IP" IS '操作IP地址'; + +/*The 227 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_CLASS" IS '方法类'; + +/*The 228 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."FILE_NAME" IS '文件名'; + +/*The 229 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."METHOD_NAME" IS '方法名'; + +/*The 230 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."PARAMS" IS '操作提交的数据'; + +/*The 231 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_BY" IS '创建者'; + +/*The 232 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_ERROR"."CREATE_TIME" IS '创建时间'; + +/*The 233 SQL statement*/ +COMMENT ON TABLE "BLADE_LOG_ERROR" IS '错误日志表'; + +/*The 234 SQL statement*/ +CREATE TABLE "BLADE_LOG_USUAL" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "SERVICE_ID" VARCHAR(32), + "SERVER_HOST" VARCHAR(255), + "SERVER_IP" VARCHAR(255), + "ENV" VARCHAR(255), + "LOG_LEVEL" VARCHAR(10), + "LOG_ID" VARCHAR(100), + "LOG_DATA" CLOB, + "METHOD" VARCHAR(10), + "REQUEST_URI" VARCHAR(255), + "REMOTE_IP" VARCHAR(255), + "METHOD_CLASS" VARCHAR(255), + "METHOD_NAME" VARCHAR(255), + "USER_AGENT" VARCHAR(1000), + "PARAMS" CLOB, + "CREATE_BY" VARCHAR(64), + "CREATE_TIME" DATE +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 235 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."ID" IS '编号'; + +/*The 236 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."TENANT_ID" IS '租户ID'; + +/*The 237 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVICE_ID" IS '服务ID'; + +/*The 238 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_HOST" IS '服务器名'; + +/*The 239 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."SERVER_IP" IS '服务器IP地址'; + +/*The 240 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."ENV" IS '系统环境'; + +/*The 241 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_LEVEL" IS '日志级别'; + +/*The 242 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_ID" IS '日志业务ID'; + +/*The 243 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."LOG_DATA" IS '日志数据'; + +/*The 244 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD" IS '操作方式'; + +/*The 245 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."REQUEST_URI" IS '请求URI'; + +/*The 246 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."REMOTE_IP" IS '操作IP地址'; + +/*The 247 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_CLASS" IS '方法类'; + +/*The 248 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."METHOD_NAME" IS '方法名'; + +/*The 249 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."USER_AGENT" IS '用户代理'; + +/*The 250 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."PARAMS" IS '操作提交的数据'; + +/*The 251 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_BY" IS '创建者'; + +/*The 252 SQL statement*/ +COMMENT ON COLUMN "BLADE_LOG_USUAL"."CREATE_TIME" IS '创建时间'; + +/*The 253 SQL statement*/ +COMMENT ON TABLE "BLADE_LOG_USUAL" IS '通用日志表'; + +/*The 254 SQL statement*/ +CREATE TABLE "BLADE_MENU" ( + "ID" NUMBER(20) NOT NULL, + "PARENT_ID" NUMBER(20), + "CODE" VARCHAR(255), + "NAME" VARCHAR(255), + "ALIAS" VARCHAR(255), + "PATH" VARCHAR(255), + "SOURCE" VARCHAR(255), + "SORT" NUMBER(11), + "CATEGORY" NUMBER(11), + "ACTION" NUMBER(11), + "IS_OPEN" NUMBER(11), + "COMPONENT" VARCHAR(255), + "REMARK" VARCHAR(255), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 255 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."ID" IS '主键'; + +/*The 256 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."PARENT_ID" IS '父级菜单'; + +/*The 257 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."CODE" IS '菜单编号'; + +/*The 258 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."NAME" IS '菜单名称'; + +/*The 259 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."ALIAS" IS '菜单别名'; + +/*The 260 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."PATH" IS '请求地址'; + +/*The 261 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."SOURCE" IS '菜单资源'; + +/*The 262 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."SORT" IS '排序'; + +/*The 263 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."CATEGORY" IS '菜单类型'; + +/*The 264 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."ACTION" IS '操作按钮类型'; + +/*The 265 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."IS_OPEN" IS '是否打开新页面'; + +/*The 266 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."COMPONENT" IS '组件地址'; + +/*The 267 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."REMARK" IS '备注'; + +/*The 268 SQL statement*/ +COMMENT ON COLUMN "BLADE_MENU"."IS_DELETED" IS '是否已删除'; + +/*The 269 SQL statement*/ +COMMENT ON TABLE "BLADE_MENU" IS '菜单表'; + +/*The 270 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1161272593873321995', '1161272593873321991', 'datasource_view', '查看', 'view' + , '/tool/datasource/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 271 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1161272593873321996', '1123598815738675217', 'model', '数据模型设计', 'menu' + , '/tool/model', 'iconfont icon-biaodan', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 272 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733369658963251', '1123598815738675210', 'elk', 'ELK监控', 'menu' + , 'http://localhost:5601/', 'iconfont iconicon_cspace', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 273 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962201', '1123598815738675298', 'attach', '附件管理', 'menu' + , '/resource/attach', 'iconfont iconicon_ding', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 274 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962202', '1164733399669962201', 'attach_upload', '上传', 'upload' + , '/resource/attach/upload', NULL, '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 275 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962203', '1164733399669962201', 'attach_download', '下载', 'download' + , '/resource/attach/download', NULL, '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 276 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962204', '1164733399669962201', 'attach_delete', '删除', 'delete' + , '/api/blade-resource/attach/remove', NULL, '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 277 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733369658963252', '1123598815738675210', 'zipkin', 'Zipkin监控', 'menu' + , 'http://localhost:9411/', 'iconfont iconicon_task', '4', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 278 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733369658963253', '1123598815738675210', 'turbine', 'Turbine监控', 'menu' + , 'http://localhost:7003/hystrix', 'iconfont iconicon_subordinate', '5', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 279 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733369658963254', '1123598815738675210', 'sentinel', 'Sentinel管理', 'menu' + , 'http://localhost:8858', 'iconfont iconicon_safety', '6', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 280 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733369658963255', '1123598815738675210', 'es', 'Elasticsearch管理', 'menu' + , 'http://localhost:9100/', 'iconfont iconfont iconicon_search', '7', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 281 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733379658963251', '1123598815738675203', 'dictbiz', '业务字典', 'menu' + , '/system/dictbiz', 'iconfont iconicon_study', '5', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 282 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733379658963252', '1164733379658963251', 'dictbiz_add', '新增', 'add' + , '/system/dictbiz/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 283 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733379658963253', '1164733379658963251', 'dictbiz_edit', '修改', 'edit' + , '/system/dictbiz/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 284 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733379658963254', '1164733379658963251', 'dictbiz_delete', '删除', 'delete' + , '/api/blade-system/dict-biz/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 285 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733379658963255', '1164733379658963251', 'dictbiz_view', '查看', 'view' + , '/system/dictbiz/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 286 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658963251', '1123598815738675298', 'xxljob', '任务调度', 'menu' + , 'http://localhost:8080/xxl-job-admin', 'iconfont iconicon_cspace', '5', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 287 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675201', '0', 'desk', '工作台', 'menu' + , '/desk', 'iconfont iconicon_airplay', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 288 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675202', '1123598815738675201', 'notice', '通知公告', 'menu' + , '/desk/notice', 'iconfont iconicon_sms', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 289 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675203', '0', 'system', '系统管理', 'menu' + , '/system', 'iconfont iconicon_setting', '99', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 290 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675204', '1123598815738675203', 'user', '用户管理', 'menu' + , '/system/user', 'iconfont iconicon_principal', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 291 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675205', '1123598815738675203', 'dept', '机构管理', 'menu' + , '/system/dept', 'iconfont iconicon_group', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 292 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675206', '1123598815738675203', 'dict', '系统字典', 'menu' + , '/system/dict', 'iconfont iconicon_addresslist', '4', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 293 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675207', '1123598815738675203', 'menu', '菜单管理', 'menu' + , '/system/menu', 'iconfont iconicon_subordinate', '6', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 294 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675208', '1123598815738675203', 'topmenu', '顶部菜单', 'menu' + , '/system/topmenu', 'iconfont icon-canshu', '7', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 295 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675209', '1123598815738675203', 'param', '参数管理', 'menu' + , '/system/param', 'iconfont iconicon_community_line', '8', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 296 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675210', '0', 'monitor', '系统监控', 'menu' + , '/monitor', 'iconfont icon-yanzhengma', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 297 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675211', '1123598815738675210', 'doc', '接口文档', 'menu' + , 'http://localhost/doc.html', 'iconfont iconicon_study', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 298 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675212', '1123598815738675210', 'admin', '服务治理', 'menu' + , 'http://localhost:7002', 'iconfont icon-canshu', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 299 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675213', '1123598815738675210', 'log', '日志管理', 'menu' + , '/monitor/log', 'iconfont iconicon_doc', '8', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 300 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675214', '1123598815738675213', 'log_usual', '通用日志', 'menu' + , '/monitor/log/usual', NULL, '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 301 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675215', '1123598815738675213', 'log_api', '接口日志', 'menu' + , '/monitor/log/api', NULL, '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 302 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675216', '1123598815738675213', 'log_error', '错误日志', 'menu' + , '/monitor/log/error', NULL, '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 303 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675217', '0', 'tool', '研发工具', 'menu' + , '/tool', 'iconfont icon-wxbgongju', '4', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 304 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675218', '1123598815738675217', 'code', '代码生成', 'menu' + , '/tool/code', 'iconfont iconicon_savememo', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 305 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675219', '1123598815738675202', 'notice_add', '新增', 'add' + , '/desk/notice/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 306 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675220', '1123598815738675202', 'notice_edit', '修改', 'edit' + , '/desk/notice/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 307 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675221', '1123598815738675202', 'notice_delete', '删除', 'delete' + , '/api/blade-desk/notice/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 308 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675222', '1123598815738675202', 'notice_view', '查看', 'view' + , '/desk/notice/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 309 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675223', '1123598815738675204', 'user_add', '新增', 'add' + , '/system/user/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 310 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389668962251', '1123598815738675203', 'post', '岗位管理', 'menu' + , '/system/post', 'iconfont iconicon_message', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 311 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389668962252', '1164733389668962251', 'post_add', '新增', 'add' + , '/system/post/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 312 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389668962253', '1164733389668962251', 'post_edit', '修改', 'edit' + , '/system/post/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 313 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389668962254', '1164733389668962251', 'post_delete', '删除', 'delete' + , '/api/blade-system/post/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 314 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389668962255', '1164733389668962251', 'post_view', '查看', 'view' + , '/system/post/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 315 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962201', '0', 'base', '基础配置', 'menu' + , '/base', 'iconfont iconicon_affiliations_li', '97', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 316 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962202', '1164733399668962201', 'region', '行政区划', 'menu' + , '/base/region', 'iconfont icon-iframe', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 317 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962203', '1164733399668962202', 'region_add', '新增下级', 'add' + , NULL, NULL, '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 318 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962204', '1164733399668962202', 'region_delete', '删除', 'delete' + , '/api/blade-system/region/remove', NULL, '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 319 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962205', '1164733399668962202', 'region_import', '导入', 'import' + , NULL, NULL, '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 320 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962206', '1164733399668962202', 'region_export', '导出', 'export' + , NULL, NULL, '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 321 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399668962207', '1164733399668962202', 'region_debug', '调试', 'debug' + , NULL, NULL, '5', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 322 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675224', '1123598815738675204', 'user_edit', '修改', 'edit' + , '/system/user/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 323 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675225', '1123598815738675204', 'user_delete', '删除', 'delete' + , '/api/blade-system/user/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 324 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675226', '1123598815738675204', 'user_role', '角色配置', 'role' + , NULL, 'user-add', '4', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 325 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675227', '1123598815738675204', 'user_reset', '密码重置', 'reset-password' + , '/api/blade-system/user/reset-password', 'retweet', '5', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 326 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675228', '1123598815738675204', 'user_view', '查看', 'view' + , '/system/user/view', 'file-text', '6', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 327 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675229', '1123598815738675205', 'dept_add', '新增', 'add' + , '/system/dept/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 328 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675230', '1123598815738675205', 'dept_edit', '修改', 'edit' + , '/system/dept/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 329 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675231', '1123598815738675205', 'dept_delete', '删除', 'delete' + , '/api/blade-system/dept/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 330 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675232', '1123598815738675205', 'dept_view', '查看', 'view' + , '/system/dept/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 331 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675233', '1123598815738675206', 'dict_add', '新增', 'add' + , '/system/dict/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 332 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675234', '1123598815738675206', 'dict_edit', '修改', 'edit' + , '/system/dict/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 333 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675235', '1123598815738675206', 'dict_delete', '删除', 'delete' + , '/api/blade-system/dict/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 334 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675236', '1123598815738675206', 'dict_view', '查看', 'view' + , '/system/dict/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 335 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675237', '1123598815738675207', 'menu_add', '新增', 'add' + , '/system/menu/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 336 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675238', '1123598815738675207', 'menu_edit', '修改', 'edit' + , '/system/menu/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 337 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675239', '1123598815738675207', 'menu_delete', '删除', 'delete' + , '/api/blade-system/menu/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 338 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675240', '1123598815738675207', 'menu_view', '查看', 'view' + , '/system/menu/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 339 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675241', '1123598815738675308', 'role_add', '新增', 'add' + , '/authority/role/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 340 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675242', '1123598815738675308', 'role_edit', '修改', 'edit' + , '/authority/role/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 341 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675243', '1123598815738675308', 'role_delete', '删除', 'delete' + , '/api/blade-system/role/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 342 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675244', '1123598815738675308', 'role_view', '查看', 'view' + , '/authority/role/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 343 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675245', '1123598815738675209', 'param_add', '新增', 'add' + , '/system/param/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 344 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675246', '1123598815738675209', 'param_edit', '修改', 'edit' + , '/system/param/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 345 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675247', '1123598815738675209', 'param_delete', '删除', 'delete' + , '/api/blade-system/param/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 346 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675248', '1123598815738675209', 'param_view', '查看', 'view' + , '/system/param/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 347 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675249', '1123598815738675214', 'log_usual_view', '查看', 'view' + , '/monitor/log/usual/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 348 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675250', '1123598815738675215', 'log_api_view', '查看', 'view' + , '/monitor/log/api/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 349 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675251', '1123598815738675216', 'log_error_view', '查看', 'view' + , '/monitor/log/error/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 350 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675252', '1123598815738675218', 'code_add', '新增', 'add' + , '/tool/code/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 351 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675253', '1123598815738675218', 'code_edit', '修改', 'edit' + , '/tool/code/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 352 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675254', '1123598815738675218', 'code_delete', '删除', 'delete' + , '/api/blade-system/code/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 353 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675255', '1123598815738675218', 'code_view', '查看', 'view' + , '/tool/code/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 354 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675256', '1123598815738675203', 'tenant', '租户管理', 'menu' + , '/system/tenant', 'iconfont icon-quanxian', '9', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 355 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675257', '1123598815738675256', 'tenant_add', '新增', 'add' + , '/system/tenant/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 356 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675258', '1123598815738675256', 'tenant_edit', '修改', 'edit' + , '/system/tenant/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 357 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675259', '1123598815738675256', 'tenant_delete', '删除', 'delete' + , '/api/blade-system/tenant/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 358 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675260', '1123598815738675256', 'tenant_view', '查看', 'view' + , '/system/tenant/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 359 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675261', '1123598815738675203', 'client', '应用管理', 'menu' + , '/system/client', 'iconfont iconicon_mobilephone', '10', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 360 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675262', '1123598815738675261', 'client_add', '新增', 'add' + , '/system/client/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 361 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675263', '1123598815738675261', 'client_edit', '修改', 'edit' + , '/system/client/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 362 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675264', '1123598815738675261', 'client_delete', '删除', 'delete' + , '/api/blade-system/client/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 363 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675265', '1123598815738675261', 'client_view', '查看', 'view' + , '/system/client/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 364 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675266', '0', 'flow', '流程管理', 'menu' + , '/flow', 'iconfont iconicon_send', '5', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 365 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675267', '1123598815738675266', 'flow_model', '模型管理', 'menu' + , '/flow/model', 'iconfont iconicon_discovery', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 366 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675268', '1123598815738675267', 'flow_model_create', '创建', 'create' + , NULL, 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 367 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675269', '1123598815738675267', 'flow_model_update', '编辑', 'update' + , NULL, 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 368 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675270', '1123598815738675267', 'flow_model_deploy', '部署', 'deploy' + , NULL, 'cloud-upload', '3', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 369 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675271', '1123598815738675267', 'flow_model_download', '下载', 'download' + , NULL, 'download', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 370 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675272', '1123598815738675267', 'flow_model_delete', '删除', 'delete' + , '/api/blade-flow/model/remove', 'delete', '5', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 371 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675273', '1123598815738675266', 'flow_deploy', '流程部署', 'menu' + , '/flow/deploy', 'iconfont iconicon_cspace', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 372 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675274', '1123598815738675266', 'flow_manager', '流程管理', 'menu' + , '/flow/manager', 'iconfont iconicon_cloud_history', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 373 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675275', '1123598815738675274', 'flow_manager_state', '变更状态', 'state' + , NULL, 'plus', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 374 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675276', '1123598815738675274', 'flow_manager_image', '流程图', 'image' + , NULL, 'image', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 375 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675277', '1123598815738675274', 'flow_manager_remove', '删除', 'remove' + , NULL, 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 376 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675278', '1123598815738675266', 'flow_follow', '流程跟踪', 'menu' + , '/flow/follow', 'iconfont iconicon_GPS', '4', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 377 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675279', '1123598815738675278', 'flow_follow_delete', '删除', 'remove' + , NULL, 'remove', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 378 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675280', '0', 'work', '我的事务', 'menu' + , '/work', 'iconfont iconicon_notice', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 379 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675281', '1123598815738675280', 'work_start', '发起事务', 'menu' + , '/work/start', 'iconfont iconicon_compile', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 380 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675282', '1123598815738675281', 'work_start_flow', '发起', 'flow' + , NULL, 'flow', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 381 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675283', '1123598815738675281', 'work_start_image', '流程图', 'image' + , NULL, 'image', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 382 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962301', '0', 'report', '报表管理', 'menu' + , '/report', 'iconfont icon-shujuzhanshi2', '5', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 383 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962302', '1164733399669962301', 'report_setting', '报表配置', 'menu' + , 'http://localhost:8108/ureport/designer', 'iconfont icon-rizhi', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 384 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962303', '1164733399669962301', 'report_list', '报表列表', 'menu' + , '/report/reportlist', 'iconfont icon-biaodan', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 385 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733399669962304', '1164733399669962301', 'report_notice', '公告报表', 'menu' + , 'http://localhost:8108/ureport/preview?_u=blade-notice.ureport.xml', 'iconfont iconicon_sms', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 386 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675284', '1123598815738675280', 'work_claim', '待签事务', 'menu' + , '/work/claim', 'iconfont iconicon_ding', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 387 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675285', '1123598815738675284', 'work_claim_sign', '签收', 'sign' + , NULL, 'sign', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 388 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675286', '1123598815738675284', 'work_claim_detail', '详情', 'detail' + , NULL, 'detail', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 389 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675287', '1123598815738675284', 'work_claim_follow', '跟踪', 'follow' + , NULL, 'follow', '3', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 390 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675288', '1123598815738675280', 'work_todo', '待办事务', 'menu' + , '/work/todo', 'iconfont iconicon_savememo', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 391 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675289', '1123598815738675288', 'work_todo_handle', '办理', 'handle' + , NULL, 'handle', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 392 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675290', '1123598815738675288', 'work_todo_detail', '详情', 'detail' + , NULL, 'detail', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 393 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675291', '1123598815738675288', 'work_todo_follow', '跟踪', 'follow' + , NULL, 'follow', '3', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 394 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675292', '1123598815738675280', 'work_send', '已发事务', 'menu' + , '/work/send', 'iconfont iconicon_doc', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 395 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675293', '1123598815738675292', 'work_send_detail', '详情', 'detail' + , NULL, 'detail', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 396 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675294', '1123598815738675292', 'work_send_follow', '跟踪', 'follow' + , NULL, 'follow', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 397 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675295', '1123598815738675280', 'work_done', '办结事务', 'menu' + , '/work/done', 'iconfont iconicon_dispose', '4', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 398 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675296', '1123598815738675295', 'work_done_detail', '详情', 'detail' + , NULL, 'detail', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 399 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675297', '1123598815738675295', 'work_done_follow', '跟踪', 'follow' + , NULL, 'follow', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 400 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675298', '0', 'resource', '资源管理', 'menu' + , '/resource', 'iconfont iconicon_coinpurse_line', '6', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 401 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675299', '1123598815738675298', 'oss', '对象存储', 'menu' + , '/resource/oss', 'iconfont iconicon_subordinate', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 402 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675301', '1123598815738675299', 'oss_add', '新增', 'add' + , '/resource/oss/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 403 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675302', '1123598815738675299', 'oss_edit', '修改', 'edit' + , '/resource/oss/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 404 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675303', '1123598815738675299', 'oss_delete', '删除', 'delete' + , '/api/blade-resource/oss/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 405 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675304', '1123598815738675299', 'oss_view', '查看', 'view' + , '/resource/oss/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 406 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675305', '1123598815738675299', 'oss_enable', '启用', 'enable' + , '/api/blade-resource/oss/enable', 'key', '5', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 407 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675307', '0', 'authority', '权限管理', 'menu' + , '/authority', 'iconfont icon-bofangqi-suoping', '98', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 408 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675308', '1123598815738675307', 'role', '角色管理', 'menu' + , '/authority/role', 'iconfont iconicon_boss', '1', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 409 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675309', '1123598815738675307', 'data_scope', '数据权限', 'menu' + , '/authority/datascope', 'iconfont icon-shujuzhanshi2', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 410 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658962251', '1123598815738675298', 'sms', '短信配置', 'menu' + , '/resource/sms', 'iconfont iconicon_message', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 411 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658962252', '1164733389658962251', 'sms_add', '新增', 'add' + , '/resource/sms/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 412 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658962253', '1164733389658962251', 'sms_edit', '修改', 'edit' + , '/resource/sms/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 413 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658962254', '1164733389658962251', 'sms_delete', '删除', 'delete' + , '/api/blade-resource/sms/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 414 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658962255', '1164733389658962251', 'sms_view', '查看', 'view' + , '/resource/sms/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 415 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1164733389658962256', '1164733389658962251', 'sms_enable', '启用', 'enable' + , '/api/blade-resource/sms/enable', 'key', '5', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 416 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675310', '1123598815738675309', 'data_scope_setting', '权限配置', 'setting' + , NULL, 'setting', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 417 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675311', '1123598815738675307', 'api_scope', '接口权限', 'menu' + , '/authority/apiscope', 'iconfont icon-iconset0216', '3', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 418 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675312', '1123598815738675311', 'api_scope_setting', '权限配置', 'setting' + , NULL, 'setting', '1', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 419 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675313', '1123598815738675208', 'topmenu_add', '新增', 'add' + , '/system/topmenu/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 420 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675314', '1123598815738675208', 'topmenu_edit', '修改', 'edit' + , '/system/topmenu/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 421 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675315', '1123598815738675208', 'topmenu_delete', '删除', 'delete' + , '/api/blade-system/topmenu/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 422 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675316', '1123598815738675208', 'topmenu_view', '查看', 'view' + , '/system/topmenu/view', 'file-text', '4', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 423 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1123598815738675317', '1123598815738675208', 'topmenu_setting', '菜单配置', 'setting' + , NULL, 'setting', '5', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 424 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1161272593873321991', '1123598815738675217', 'datasource', '数据源管理', 'menu' + , '/tool/datasource', 'iconfont icon-caidanguanli', '2', '1', '0' + , '1', NULL, NULL, '0'); + +/*The 425 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1161272593873321992', '1161272593873321991', 'datasource_add', '新增', 'add' + , '/tool/datasource/add', 'plus', '1', '2', '1' + , '1', NULL, NULL, '0'); + +/*The 426 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1161272593873321993', '1161272593873321991', 'datasource_edit', '修改', 'edit' + , '/tool/datasource/edit', 'form', '2', '2', '2' + , '1', NULL, NULL, '0'); + +/*The 427 SQL statement*/ +INSERT INTO "BLADE_MENU" +VALUES ('1161272593873321994', '1161272593873321991', 'datasource_delete', '删除', 'delete' + , '/api/blade-develop/datasource/remove', 'delete', '3', '2', '3' + , '1', NULL, NULL, '0'); + +/*The 428 SQL statement*/ +COMMIT; + +/*The 429 SQL statement*/ +CREATE TABLE "BLADE_MODEL" ( + "ID" NUMBER(20) NOT NULL, + "DATASOURCE_ID" NUMBER(20), + "MODEL_NAME" VARCHAR(50), + "MODEL_CODE" VARCHAR(50), + "MODEL_TABLE" VARCHAR(100), + "MODEL_CLASS" VARCHAR(100), + "MODEL_REMARK" VARCHAR(500), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 430 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."ID" IS '主键'; + +/*The 431 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."DATASOURCE_ID" IS '数据源主键'; + +/*The 432 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_NAME" IS '模型名称'; + +/*The 433 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CODE" IS '模型编号'; + +/*The 434 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_TABLE" IS '物理表名'; + +/*The 435 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_CLASS" IS '模型类名'; + +/*The 436 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."MODEL_REMARK" IS '模型备注'; + +/*The 437 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."CREATE_USER" IS '创建人'; + +/*The 438 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."CREATE_DEPT" IS '创建部门'; + +/*The 439 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."CREATE_TIME" IS '创建时间'; + +/*The 440 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_USER" IS '修改人'; + +/*The 441 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."UPDATE_TIME" IS '修改时间'; + +/*The 442 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."STATUS" IS '状态'; + +/*The 443 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL"."IS_DELETED" IS '是否已删除'; + +/*The 444 SQL statement*/ +COMMENT ON TABLE "BLADE_MODEL" IS '数据模型表'; + +/*The 445 SQL statement*/ +CREATE TABLE "BLADE_MODEL_PROTOTYPE" ( + "ID" NUMBER(20) NOT NULL, + "MODEL_ID" NUMBER(20), + "JDBC_NAME" VARCHAR(50), + "JDBC_TYPE" VARCHAR(20), + "JDBC_COMMENT" VARCHAR(500), + "PROPERTY_TYPE" VARCHAR(20), + "PROPERTY_ENTITY" VARCHAR(500), + "PROPERTY_NAME" VARCHAR(50), + "IS_LIST" NUMBER(11), + "IS_FORM" NUMBER(11), + "IS_ROW" NUMBER(11), + "COMPONENT_TYPE" VARCHAR(50), + "DICT_CODE" VARCHAR(50), + "IS_REQUIRED" NUMBER(11), + "IS_QUERY" NUMBER(11), + "QUERY_TYPE" VARCHAR(50), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 446 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."ID" IS '主键'; + +/*The 447 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."MODEL_ID" IS '模型主键'; + +/*The 448 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_NAME" IS '物理列名'; + +/*The 449 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_TYPE" IS '物理类型'; + +/*The 450 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."JDBC_COMMENT" IS '注释说明'; + +/*The 451 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_TYPE" IS '实体类型'; + +/*The 452 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_ENTITY" IS '实体类型引用'; + +/*The 453 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."PROPERTY_NAME" IS '实体列名'; + +/*The 454 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_LIST" IS '列表显示'; + +/*The 455 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_FORM" IS '表单显示'; + +/*The 456 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_ROW" IS '独占一行'; + +/*The 457 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."COMPONENT_TYPE" IS '组件类型'; + +/*The 458 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."DICT_CODE" IS '字典编码'; + +/*The 459 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_REQUIRED" IS '是否必填'; + +/*The 460 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_QUERY" IS '查询配置'; + +/*The 461 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."QUERY_TYPE" IS '查询类型'; + +/*The 462 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_USER" IS '创建人'; + +/*The 463 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_DEPT" IS '创建部门'; + +/*The 464 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."CREATE_TIME" IS '创建时间'; + +/*The 465 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_USER" IS '修改人'; + +/*The 466 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."UPDATE_TIME" IS '修改时间'; + +/*The 467 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."STATUS" IS '状态'; + +/*The 468 SQL statement*/ +COMMENT ON COLUMN "BLADE_MODEL_PROTOTYPE"."IS_DELETED" IS '是否已删除'; + +/*The 469 SQL statement*/ +COMMENT ON TABLE "BLADE_MODEL_PROTOTYPE" IS '数据原型表'; + +/*The 470 SQL statement*/ +CREATE TABLE "BLADE_NOTICE" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "TITLE" VARCHAR(255), + "CATEGORY" NUMBER(11), + "RELEASE_TIME" DATE, + "CONTENT" VARCHAR(2000), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 471 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."ID" IS '主键'; + +/*The 472 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."TENANT_ID" IS '租户ID'; + +/*The 473 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."TITLE" IS '标题'; + +/*The 474 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."CATEGORY" IS '类型'; + +/*The 475 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."RELEASE_TIME" IS '发布时间'; + +/*The 476 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."CONTENT" IS '内容'; + +/*The 477 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_USER" IS '创建人'; + +/*The 478 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_DEPT" IS '创建部门'; + +/*The 479 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."CREATE_TIME" IS '创建时间'; + +/*The 480 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_USER" IS '修改人'; + +/*The 481 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."UPDATE_TIME" IS '修改时间'; + +/*The 482 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."STATUS" IS '状态'; + +/*The 483 SQL statement*/ +COMMENT ON COLUMN "BLADE_NOTICE"."IS_DELETED" IS '是否已删除'; + +/*The 484 SQL statement*/ +COMMENT ON TABLE "BLADE_NOTICE" IS '通知公告表'; + +/*The 485 SQL statement*/ +INSERT INTO "BLADE_NOTICE" +VALUES ('1123598818738675223', '000000', '测试公告', '3', TO_DATE('2018-12-31 20:03:31', 'SYYYY-MM-DD HH24:MI:SS') + , '222', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2018-12-28 11:10:51', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 486 SQL statement*/ +INSERT INTO "BLADE_NOTICE" +VALUES ('1123598818738675224', '000000', '测试公告2', '1', TO_DATE('2018-12-05 20:03:31', 'SYYYY-MM-DD HH24:MI:SS') + , '333', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 10:32:26', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2018-12-28 11:10:34', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 487 SQL statement*/ +INSERT INTO "BLADE_NOTICE" +VALUES ('1123598818738675225', '000000', '测试公告3', '6', TO_DATE('2018-12-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '11111', '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 11:03:44', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2018-12-28 11:10:28', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 488 SQL statement*/ +COMMIT; + +/*The 489 SQL statement*/ +CREATE TABLE "BLADE_OSS" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "CATEGORY" NUMBER(11), + "OSS_CODE" VARCHAR(32), + "ENDPOINT" VARCHAR(255), + "TRANSFORM_ENDPOINT" VARCHAR(255), + "ACCESS_KEY" VARCHAR(255), + "SECRET_KEY" VARCHAR(255), + "BUCKET_NAME" VARCHAR(255), + "APP_ID" VARCHAR(255), + "REGION" VARCHAR(255), + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 490 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."ID" IS '主键'; + +/*The 491 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."TENANT_ID" IS '租户ID'; + +/*The 492 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."CATEGORY" IS '分类'; + +/*The 493 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."OSS_CODE" IS '资源编号'; + +/*The 494 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."ENDPOINT" IS '资源地址'; + +/*The 494.1 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."TRANSFORM_ENDPOINT" IS '外网资源地址'; + +/*The 495 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."ACCESS_KEY" IS 'accessKey'; + +/*The 496 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."SECRET_KEY" IS 'secretKey'; + +/*The 497 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."BUCKET_NAME" IS '空间名'; + +/*The 498 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."APP_ID" IS '应用ID'; + +/*The 499 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."REGION" IS '地域简称'; + +/*The 500 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."REMARK" IS '备注'; + +/*The 501 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."CREATE_USER" IS '创建人'; + +/*The 502 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."CREATE_DEPT" IS '创建部门'; + +/*The 503 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."CREATE_TIME" IS '创建时间'; + +/*The 504 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."UPDATE_USER" IS '修改人'; + +/*The 505 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."UPDATE_TIME" IS '修改时间'; + +/*The 506 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."STATUS" IS '状态'; + +/*The 507 SQL statement*/ +COMMENT ON COLUMN "BLADE_OSS"."IS_DELETED" IS '是否已删除'; + +/*The 508 SQL statement*/ +COMMENT ON TABLE "BLADE_OSS" IS '对象存储表'; + +/*The 509 SQL statement*/ +INSERT INTO "BLADE_OSS" +VALUES ('1132486733992468482', '000000', '1', 'minio', 'http://127.0.0.1:9000', '' + , 'D99KGE6ZTQXSATTJWU24', 'QyVqGnhIQQE734UYSUFlGOZViE6+ZlDEfUG3NjhJ', 'bladex', NULL, NULL + , NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:20:52', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2019-05-27 08:34:55', 'SYYYY-MM-DD HH24:MI:SS'), '2', '0'); + +/*The 510 SQL statement*/ +INSERT INTO "BLADE_OSS" +VALUES ('1132487155981393922', '000000', '2', 'qiniu', 'http://ps458elcs.bkt.clouddn.com', '' + , 'N_Loh1ngBqcJovwiAJqR91Ifj2vgOWHOf8AwBA_h', 'AuzuA1KHAbkIndCU0dB3Zfii2O3crHNODDmpxHRS', 'bladex', NULL, NULL + , NULL, '1123598821738675201', '1123598813738675201', TO_DATE('2019-05-26 11:22:33', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2019-05-26 23:27:56', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 511 SQL statement*/ +COMMIT; + +/*The 512 SQL statement*/ +CREATE TABLE "BLADE_PARAM" ( + "ID" NUMBER(20) NOT NULL, + "PARAM_NAME" VARCHAR(255), + "PARAM_KEY" VARCHAR(255), + "PARAM_VALUE" VARCHAR(255), + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 513 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."ID" IS '主键'; + +/*The 514 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."PARAM_NAME" IS '参数名'; + +/*The 515 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."PARAM_KEY" IS '参数键'; + +/*The 516 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."PARAM_VALUE" IS '参数值'; + +/*The 517 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."REMARK" IS '备注'; + +/*The 518 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."CREATE_USER" IS '创建人'; + +/*The 519 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."CREATE_DEPT" IS '创建部门'; + +/*The 520 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."CREATE_TIME" IS '创建时间'; + +/*The 521 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_USER" IS '修改人'; + +/*The 522 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."UPDATE_TIME" IS '修改时间'; + +/*The 523 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."STATUS" IS '状态'; + +/*The 524 SQL statement*/ +COMMENT ON COLUMN "BLADE_PARAM"."IS_DELETED" IS '是否已删除'; + +/*The 525 SQL statement*/ +COMMENT ON TABLE "BLADE_PARAM" IS '参数表'; + +/*The 526 SQL statement*/ +INSERT INTO "BLADE_PARAM" +VALUES ('1123598819738675201', '是否开启注册功能', 'account.registerUser', 'true', '开启注册' + , '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS') + , '1', '0'); + +/*The 527 SQL statement*/ +INSERT INTO "BLADE_PARAM" +VALUES ('1123598819738675202', '账号初始密码', 'account.initPassword', '123456', '初始密码' + , '1123598821738675201', '1123598813738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2018-12-28 12:19:01', 'SYYYY-MM-DD HH24:MI:SS') + , '1', '0'); + +/*The 528 SQL statement*/ +INSERT INTO "BLADE_PARAM" +VALUES ('1123598819738675203', '账号错误锁定次数', 'account.failCount', '5', '锁定次数' + , '1123598821738675201', '1123598813738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2021-12-01 12:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1', '0'); + +/*The 529 SQL statement*/ +INSERT INTO "BLADE_PARAM" +VALUES ('1238706101399142402', '租户默认管理密码', 'tenant.default.password', 'admin', NULL + , '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:43', 'SYYYY-MM-DD HH24:MI:SS') + , '1', '0'); + +/*The 530 SQL statement*/ +INSERT INTO "BLADE_PARAM" +VALUES ('1238706160295559170', '租户默认账号额度', 'tenant.default.accountNumber', '100', NULL + , '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:58:57', 'SYYYY-MM-DD HH24:MI:SS') + , '1', '0'); + +/*The 531 SQL statement*/ +INSERT INTO "BLADE_PARAM" +VALUES ('1238706330076790786', '租户默认菜单集合', 'tenant.default.menuCode', 'desk,flow,work,monitor,resource,role,user,dept,post,dictbiz,topmenu', NULL + , '1123598821738675201', '1123598813738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2020-03-14 13:59:38', 'SYYYY-MM-DD HH24:MI:SS') + , '1', '0'); + +/*The 532 SQL statement*/ +COMMIT; + +/*The 533 SQL statement*/ +CREATE TABLE "BLADE_POST" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "CATEGORY" NUMBER(11), + "POST_CODE" VARCHAR(12), + "POST_NAME" VARCHAR(64), + "SORT" NUMBER(11), + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 534 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."ID" IS '主键'; + +/*The 535 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."TENANT_ID" IS '租户ID'; + +/*The 536 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."CATEGORY" IS '岗位类型'; + +/*The 537 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."POST_CODE" IS '岗位编号'; + +/*The 538 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."POST_NAME" IS '岗位名称'; + +/*The 539 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."SORT" IS '岗位排序'; + +/*The 540 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."REMARK" IS '岗位描述'; + +/*The 541 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."CREATE_USER" IS '创建人'; + +/*The 542 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."CREATE_DEPT" IS '创建部门'; + +/*The 543 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."CREATE_TIME" IS '创建时间'; + +/*The 544 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."UPDATE_USER" IS '修改人'; + +/*The 545 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."UPDATE_TIME" IS '修改时间'; + +/*The 546 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."STATUS" IS '状态'; + +/*The 547 SQL statement*/ +COMMENT ON COLUMN "BLADE_POST"."IS_DELETED" IS '是否已删除'; + +/*The 548 SQL statement*/ +COMMENT ON TABLE "BLADE_POST" IS '岗位表'; + +/*The 549 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675201', '000000', '1', 'ceo', '首席执行官' + , '1', '总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 550 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675202', '000000', '1', 'coo', '首席运营官' + , '2', '常务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 551 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675203', '000000', '1', 'cfo', '首席财务官' + , '3', '财务总经理', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 552 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675204', '000000', '1', 'cto', '首席技术官' + , '4', '技术总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 553 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675205', '000000', '1', 'cio', '首席信息官' + , '5', '信息总监', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 554 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675206', '000000', '2', 'pm', '技术经理' + , '6', '研发和产品是永远的朋友', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 555 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675207', '000000', '2', 'hrm', '人力经理' + , '7', '人力资源部门工作管理者', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 556 SQL statement*/ +INSERT INTO "BLADE_POST" +VALUES ('1123598817738675208', '000000', '3', 'staff', '普通员工' + , '8', '普通员工', '1123598821738675201', '1123598813738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS') + , '1123598821738675201', TO_DATE('2020-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 557 SQL statement*/ +COMMIT; + +/*The 558 SQL statement*/ +CREATE TABLE "BLADE_PROCESS_LEAVE" ( + "ID" NUMBER(20) NOT NULL, + "PROCESS_DEFINITION_ID" VARCHAR(64), + "PROCESS_INSTANCE_ID" VARCHAR(64), + "START_TIME" DATE, + "END_TIME" DATE, + "REASON" VARCHAR(255), + "TASK_USER" VARCHAR(255), + "APPLY_TIME" DATE, + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 559 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."ID" IS '编号'; + +/*The 560 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_DEFINITION_ID" IS '流程定义主键'; + +/*The 561 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."PROCESS_INSTANCE_ID" IS '流程实例主键'; + +/*The 562 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."START_TIME" IS '开始时间'; + +/*The 563 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."END_TIME" IS '结束时间'; + +/*The 564 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."REASON" IS '请假理由'; + +/*The 565 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."TASK_USER" IS '第一级审批人'; + +/*The 566 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."APPLY_TIME" IS '申请时间'; + +/*The 567 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_USER" IS '创建人'; + +/*The 568 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_DEPT" IS '创建部门'; + +/*The 569 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."CREATE_TIME" IS '创建时间'; + +/*The 570 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_USER" IS '修改人'; + +/*The 571 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."UPDATE_TIME" IS '修改时间'; + +/*The 572 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."STATUS" IS '状态'; + +/*The 573 SQL statement*/ +COMMENT ON COLUMN "BLADE_PROCESS_LEAVE"."IS_DELETED" IS '是否已删除'; + +/*The 574 SQL statement*/ +COMMENT ON TABLE "BLADE_PROCESS_LEAVE" IS '流程请假业务表'; + +/*The 575 SQL statement*/ +CREATE TABLE "BLADE_REGION" ( + "CODE" VARCHAR(12) NOT NULL, + "PARENT_CODE" VARCHAR(12), + "ANCESTORS" VARCHAR(255), + "NAME" VARCHAR(64), + "PROVINCE_CODE" VARCHAR(12), + "PROVINCE_NAME" VARCHAR(64), + "CITY_CODE" VARCHAR(12), + "CITY_NAME" VARCHAR(64), + "DISTRICT_CODE" VARCHAR(12), + "DISTRICT_NAME" VARCHAR(64), + "TOWN_CODE" VARCHAR(12), + "TOWN_NAME" VARCHAR(64), + "VILLAGE_CODE" VARCHAR(12), + "VILLAGE_NAME" VARCHAR(64), + "REGION_LEVEL" NUMBER(11) NOT NULL, + "SORT" NUMBER(11) NOT NULL, + "REMARK" VARCHAR(255) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 576 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."CODE" IS '区划编号'; + +/*The 577 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."PARENT_CODE" IS '父区划编号'; + +/*The 578 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."ANCESTORS" IS '祖区划编号'; + +/*The 579 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."NAME" IS '区划名称'; + +/*The 580 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_CODE" IS '省级区划编号'; + +/*The 581 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."PROVINCE_NAME" IS '省级名称'; + +/*The 582 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."CITY_CODE" IS '市级区划编号'; + +/*The 583 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."CITY_NAME" IS '市级名称'; + +/*The 584 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_CODE" IS '区级区划编号'; + +/*The 585 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."DISTRICT_NAME" IS '区级名称'; + +/*The 586 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."TOWN_CODE" IS '镇级区划编号'; + +/*The 587 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."TOWN_NAME" IS '镇级名称'; + +/*The 588 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_CODE" IS '村级区划编号'; + +/*The 589 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."VILLAGE_NAME" IS '村级名称'; + +/*The 590 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."REGION_LEVEL" IS '层级'; + +/*The 591 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."SORT" IS '排序'; + +/*The 592 SQL statement*/ +COMMENT ON COLUMN "BLADE_REGION"."REMARK" IS '备注'; + +/*The 593 SQL statement*/ +COMMENT ON TABLE "BLADE_REGION" IS '行政区划表'; + +/*The 594 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140221', '1402', '00,14,1402', '阳高县', '14' + , '山西省', '1402', '大同市', '140221', '阳高县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 595 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140222', '1402', '00,14,1402', '天镇县', '14' + , '山西省', '1402', '大同市', '140222', '天镇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 596 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140223', '1402', '00,14,1402', '广灵县', '14' + , '山西省', '1402', '大同市', '140223', '广灵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 597 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140224', '1402', '00,14,1402', '灵丘县', '14' + , '山西省', '1402', '大同市', '140224', '灵丘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 598 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140225', '1402', '00,14,1402', '浑源县', '14' + , '山西省', '1402', '大同市', '140225', '浑源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 599 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140226', '1402', '00,14,1402', '左云县', '14' + , '山西省', '1402', '大同市', '140226', '左云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 600 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1403', '14', '00,14', '阳泉市', '14' + , '山西省', '1403', '阳泉市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 601 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140302', '1403', '00,14,1403', '城区', '14' + , '山西省', '1403', '阳泉市', '140302', '城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 602 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140303', '1403', '00,14,1403', '矿区', '14' + , '山西省', '1403', '阳泉市', '140303', '矿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 603 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140311', '1403', '00,14,1403', '郊区', '14' + , '山西省', '1403', '阳泉市', '140311', '郊区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 604 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140321', '1403', '00,14,1403', '平定县', '14' + , '山西省', '1403', '阳泉市', '140321', '平定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 605 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140322', '1403', '00,14,1403', '盂县', '14' + , '山西省', '1403', '阳泉市', '140322', '盂县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 606 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1404', '14', '00,14', '长治市', '14' + , '山西省', '1404', '长治市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 607 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140403', '1404', '00,14,1404', '潞州区', '14' + , '山西省', '1404', '长治市', '140403', '潞州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 608 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140404', '1404', '00,14,1404', '上党区', '14' + , '山西省', '1404', '长治市', '140404', '上党区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 609 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140405', '1404', '00,14,1404', '屯留区', '14' + , '山西省', '1404', '长治市', '140405', '屯留区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 610 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140406', '1404', '00,14,1404', '潞城区', '14' + , '山西省', '1404', '长治市', '140406', '潞城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 611 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140423', '1404', '00,14,1404', '襄垣县', '14' + , '山西省', '1404', '长治市', '140423', '襄垣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 612 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140425', '1404', '00,14,1404', '平顺县', '14' + , '山西省', '1404', '长治市', '140425', '平顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 613 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140426', '1404', '00,14,1404', '黎城县', '14' + , '山西省', '1404', '长治市', '140426', '黎城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 614 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140427', '1404', '00,14,1404', '壶关县', '14' + , '山西省', '1404', '长治市', '140427', '壶关县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 615 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140428', '1404', '00,14,1404', '长子县', '14' + , '山西省', '1404', '长治市', '140428', '长子县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 616 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140429', '1404', '00,14,1404', '武乡县', '14' + , '山西省', '1404', '长治市', '140429', '武乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 617 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140430', '1404', '00,14,1404', '沁县', '14' + , '山西省', '1404', '长治市', '140430', '沁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 618 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140431', '1404', '00,14,1404', '沁源县', '14' + , '山西省', '1404', '长治市', '140431', '沁源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 619 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1405', '14', '00,14', '晋城市', '14' + , '山西省', '1405', '晋城市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 620 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140502', '1405', '00,14,1405', '城区', '14' + , '山西省', '1405', '晋城市', '140502', '城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 621 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140521', '1405', '00,14,1405', '沁水县', '14' + , '山西省', '1405', '晋城市', '140521', '沁水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 622 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140522', '1405', '00,14,1405', '阳城县', '14' + , '山西省', '1405', '晋城市', '140522', '阳城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 623 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140524', '1405', '00,14,1405', '陵川县', '14' + , '山西省', '1405', '晋城市', '140524', '陵川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 624 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140525', '1405', '00,14,1405', '泽州县', '14' + , '山西省', '1405', '晋城市', '140525', '泽州县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 625 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140581', '1405', '00,14,1405', '高平市', '14' + , '山西省', '1405', '晋城市', '140581', '高平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 626 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1406', '14', '00,14', '朔州市', '14' + , '山西省', '1406', '朔州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 627 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140602', '1406', '00,14,1406', '朔城区', '14' + , '山西省', '1406', '朔州市', '140602', '朔城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 628 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140603', '1406', '00,14,1406', '平鲁区', '14' + , '山西省', '1406', '朔州市', '140603', '平鲁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 629 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140621', '1406', '00,14,1406', '山阴县', '14' + , '山西省', '1406', '朔州市', '140621', '山阴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 630 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140622', '1406', '00,14,1406', '应县', '14' + , '山西省', '1406', '朔州市', '140622', '应县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 631 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140623', '1406', '00,14,1406', '右玉县', '14' + , '山西省', '1406', '朔州市', '140623', '右玉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 632 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140681', '1406', '00,14,1406', '怀仁市', '14' + , '山西省', '1406', '朔州市', '140681', '怀仁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 633 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1407', '14', '00,14', '晋中市', '14' + , '山西省', '1407', '晋中市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 634 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140702', '1407', '00,14,1407', '榆次区', '14' + , '山西省', '1407', '晋中市', '140702', '榆次区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 635 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140703', '1407', '00,14,1407', '太谷区', '14' + , '山西省', '1407', '晋中市', '140703', '太谷区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 636 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140721', '1407', '00,14,1407', '榆社县', '14' + , '山西省', '1407', '晋中市', '140721', '榆社县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 637 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140722', '1407', '00,14,1407', '左权县', '14' + , '山西省', '1407', '晋中市', '140722', '左权县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 638 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140723', '1407', '00,14,1407', '和顺县', '14' + , '山西省', '1407', '晋中市', '140723', '和顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 639 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140724', '1407', '00,14,1407', '昔阳县', '14' + , '山西省', '1407', '晋中市', '140724', '昔阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 640 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140725', '1407', '00,14,1407', '寿阳县', '14' + , '山西省', '1407', '晋中市', '140725', '寿阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 641 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140727', '1407', '00,14,1407', '祁县', '14' + , '山西省', '1407', '晋中市', '140727', '祁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 642 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140728', '1407', '00,14,1407', '平遥县', '14' + , '山西省', '1407', '晋中市', '140728', '平遥县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 643 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140729', '1407', '00,14,1407', '灵石县', '14' + , '山西省', '1407', '晋中市', '140729', '灵石县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 644 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140781', '1407', '00,14,1407', '介休市', '14' + , '山西省', '1407', '晋中市', '140781', '介休市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 645 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1408', '14', '00,14', '运城市', '14' + , '山西省', '1408', '运城市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 646 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140802', '1408', '00,14,1408', '盐湖区', '14' + , '山西省', '1408', '运城市', '140802', '盐湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 647 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140821', '1408', '00,14,1408', '临猗县', '14' + , '山西省', '1408', '运城市', '140821', '临猗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 648 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140822', '1408', '00,14,1408', '万荣县', '14' + , '山西省', '1408', '运城市', '140822', '万荣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 649 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140823', '1408', '00,14,1408', '闻喜县', '14' + , '山西省', '1408', '运城市', '140823', '闻喜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 650 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140824', '1408', '00,14,1408', '稷山县', '14' + , '山西省', '1408', '运城市', '140824', '稷山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 651 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140825', '1408', '00,14,1408', '新绛县', '14' + , '山西省', '1408', '运城市', '140825', '新绛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 652 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140826', '1408', '00,14,1408', '绛县', '14' + , '山西省', '1408', '运城市', '140826', '绛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 653 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140827', '1408', '00,14,1408', '垣曲县', '14' + , '山西省', '1408', '运城市', '140827', '垣曲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 654 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140828', '1408', '00,14,1408', '夏县', '14' + , '山西省', '1408', '运城市', '140828', '夏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 655 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140829', '1408', '00,14,1408', '平陆县', '14' + , '山西省', '1408', '运城市', '140829', '平陆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 656 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140830', '1408', '00,14,1408', '芮城县', '14' + , '山西省', '1408', '运城市', '140830', '芮城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 657 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140881', '1408', '00,14,1408', '永济市', '14' + , '山西省', '1408', '运城市', '140881', '永济市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 658 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140882', '1408', '00,14,1408', '河津市', '14' + , '山西省', '1408', '运城市', '140882', '河津市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 659 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1409', '14', '00,14', '忻州市', '14' + , '山西省', '1409', '忻州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 660 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140902', '1409', '00,14,1409', '忻府区', '14' + , '山西省', '1409', '忻州市', '140902', '忻府区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 661 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140921', '1409', '00,14,1409', '定襄县', '14' + , '山西省', '1409', '忻州市', '140921', '定襄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 662 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140922', '1409', '00,14,1409', '五台县', '14' + , '山西省', '1409', '忻州市', '140922', '五台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 663 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140923', '1409', '00,14,1409', '代县', '14' + , '山西省', '1409', '忻州市', '140923', '代县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 664 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140924', '1409', '00,14,1409', '繁峙县', '14' + , '山西省', '1409', '忻州市', '140924', '繁峙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 665 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140925', '1409', '00,14,1409', '宁武县', '14' + , '山西省', '1409', '忻州市', '140925', '宁武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 666 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140926', '1409', '00,14,1409', '静乐县', '14' + , '山西省', '1409', '忻州市', '140926', '静乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 667 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140927', '1409', '00,14,1409', '神池县', '14' + , '山西省', '1409', '忻州市', '140927', '神池县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 668 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140928', '1409', '00,14,1409', '五寨县', '14' + , '山西省', '1409', '忻州市', '140928', '五寨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 669 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140929', '1409', '00,14,1409', '岢岚县', '14' + , '山西省', '1409', '忻州市', '140929', '岢岚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 670 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140930', '1409', '00,14,1409', '河曲县', '14' + , '山西省', '1409', '忻州市', '140930', '河曲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 671 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140931', '1409', '00,14,1409', '保德县', '14' + , '山西省', '1409', '忻州市', '140931', '保德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 672 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140932', '1409', '00,14,1409', '偏关县', '14' + , '山西省', '1409', '忻州市', '140932', '偏关县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 673 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140981', '1409', '00,14,1409', '原平市', '14' + , '山西省', '1409', '忻州市', '140981', '原平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 674 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1410', '14', '00,14', '临汾市', '14' + , '山西省', '1410', '临汾市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 675 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141002', '1410', '00,14,1410', '尧都区', '14' + , '山西省', '1410', '临汾市', '141002', '尧都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 676 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141021', '1410', '00,14,1410', '曲沃县', '14' + , '山西省', '1410', '临汾市', '141021', '曲沃县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 677 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141022', '1410', '00,14,1410', '翼城县', '14' + , '山西省', '1410', '临汾市', '141022', '翼城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 678 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141023', '1410', '00,14,1410', '襄汾县', '14' + , '山西省', '1410', '临汾市', '141023', '襄汾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 679 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141024', '1410', '00,14,1410', '洪洞县', '14' + , '山西省', '1410', '临汾市', '141024', '洪洞县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 680 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141025', '1410', '00,14,1410', '古县', '14' + , '山西省', '1410', '临汾市', '141025', '古县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 681 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141026', '1410', '00,14,1410', '安泽县', '14' + , '山西省', '1410', '临汾市', '141026', '安泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 682 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141027', '1410', '00,14,1410', '浮山县', '14' + , '山西省', '1410', '临汾市', '141027', '浮山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 683 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141028', '1410', '00,14,1410', '吉县', '14' + , '山西省', '1410', '临汾市', '141028', '吉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 684 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141029', '1410', '00,14,1410', '乡宁县', '14' + , '山西省', '1410', '临汾市', '141029', '乡宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 685 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141030', '1410', '00,14,1410', '大宁县', '14' + , '山西省', '1410', '临汾市', '141030', '大宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 686 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141031', '1410', '00,14,1410', '隰县', '14' + , '山西省', '1410', '临汾市', '141031', '隰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 687 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141032', '1410', '00,14,1410', '永和县', '14' + , '山西省', '1410', '临汾市', '141032', '永和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 688 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141033', '1410', '00,14,1410', '蒲县', '14' + , '山西省', '1410', '临汾市', '141033', '蒲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 689 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141034', '1410', '00,14,1410', '汾西县', '14' + , '山西省', '1410', '临汾市', '141034', '汾西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 690 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141081', '1410', '00,14,1410', '侯马市', '14' + , '山西省', '1410', '临汾市', '141081', '侯马市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 691 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141082', '1410', '00,14,1410', '霍州市', '14' + , '山西省', '1410', '临汾市', '141082', '霍州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 692 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1411', '14', '00,14', '吕梁市', '14' + , '山西省', '1411', '吕梁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 693 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141102', '1411', '00,14,1411', '离石区', '14' + , '山西省', '1411', '吕梁市', '141102', '离石区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 694 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141121', '1411', '00,14,1411', '文水县', '14' + , '山西省', '1411', '吕梁市', '141121', '文水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 695 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141122', '1411', '00,14,1411', '交城县', '14' + , '山西省', '1411', '吕梁市', '141122', '交城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 696 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141123', '1411', '00,14,1411', '兴县', '14' + , '山西省', '1411', '吕梁市', '141123', '兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 697 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141124', '1411', '00,14,1411', '临县', '14' + , '山西省', '1411', '吕梁市', '141124', '临县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 698 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141125', '1411', '00,14,1411', '柳林县', '14' + , '山西省', '1411', '吕梁市', '141125', '柳林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 699 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141126', '1411', '00,14,1411', '石楼县', '14' + , '山西省', '1411', '吕梁市', '141126', '石楼县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 700 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141127', '1411', '00,14,1411', '岚县', '14' + , '山西省', '1411', '吕梁市', '141127', '岚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 701 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141128', '1411', '00,14,1411', '方山县', '14' + , '山西省', '1411', '吕梁市', '141128', '方山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 702 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141129', '1411', '00,14,1411', '中阳县', '14' + , '山西省', '1411', '吕梁市', '141129', '中阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 703 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141130', '1411', '00,14,1411', '交口县', '14' + , '山西省', '1411', '吕梁市', '141130', '交口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 704 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141181', '1411', '00,14,1411', '孝义市', '14' + , '山西省', '1411', '吕梁市', '141181', '孝义市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 705 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('141182', '1411', '00,14,1411', '汾阳市', '14' + , '山西省', '1411', '吕梁市', '141182', '汾阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 706 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('15', '00', '00', '内蒙古自治区', '15' + , '内蒙古自治区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 707 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1501', '15', '00,15', '呼和浩特市', '15' + , '内蒙古自治区', '1501', '呼和浩特市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 708 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150102', '1501', '00,15,1501', '新城区', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150102', '新城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 709 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150103', '1501', '00,15,1501', '回民区', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150103', '回民区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 710 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150104', '1501', '00,15,1501', '玉泉区', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150104', '玉泉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 711 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150105', '1501', '00,15,1501', '赛罕区', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150105', '赛罕区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 712 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150121', '1501', '00,15,1501', '土默特左旗', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150121', '土默特左旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 713 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150122', '1501', '00,15,1501', '托克托县', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150122', '托克托县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 714 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150123', '1501', '00,15,1501', '和林格尔县', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150123', '和林格尔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 715 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150124', '1501', '00,15,1501', '清水河县', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150124', '清水河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 716 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150125', '1501', '00,15,1501', '武川县', '15' + , '内蒙古自治区', '1501', '呼和浩特市', '150125', '武川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 717 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1502', '15', '00,15', '包头市', '15' + , '内蒙古自治区', '1502', '包头市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 718 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150202', '1502', '00,15,1502', '东河区', '15' + , '内蒙古自治区', '1502', '包头市', '150202', '东河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 719 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150203', '1502', '00,15,1502', '昆都仑区', '15' + , '内蒙古自治区', '1502', '包头市', '150203', '昆都仑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 720 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150204', '1502', '00,15,1502', '青山区', '15' + , '内蒙古自治区', '1502', '包头市', '150204', '青山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 721 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150205', '1502', '00,15,1502', '石拐区', '15' + , '内蒙古自治区', '1502', '包头市', '150205', '石拐区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 722 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150206', '1502', '00,15,1502', '白云鄂博矿区', '15' + , '内蒙古自治区', '1502', '包头市', '150206', '白云鄂博矿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 723 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150207', '1502', '00,15,1502', '九原区', '15' + , '内蒙古自治区', '1502', '包头市', '150207', '九原区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 724 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150221', '1502', '00,15,1502', '土默特右旗', '15' + , '内蒙古自治区', '1502', '包头市', '150221', '土默特右旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 725 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150222', '1502', '00,15,1502', '固阳县', '15' + , '内蒙古自治区', '1502', '包头市', '150222', '固阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 726 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150223', '1502', '00,15,1502', '达尔罕茂明安联合旗', '15' + , '内蒙古自治区', '1502', '包头市', '150223', '达尔罕茂明安联合旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 727 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1503', '15', '00,15', '乌海市', '15' + , '内蒙古自治区', '1503', '乌海市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 728 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150302', '1503', '00,15,1503', '海勃湾区', '15' + , '内蒙古自治区', '1503', '乌海市', '150302', '海勃湾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 729 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150303', '1503', '00,15,1503', '海南区', '15' + , '内蒙古自治区', '1503', '乌海市', '150303', '海南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 730 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150304', '1503', '00,15,1503', '乌达区', '15' + , '内蒙古自治区', '1503', '乌海市', '150304', '乌达区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 731 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1504', '15', '00,15', '赤峰市', '15' + , '内蒙古自治区', '1504', '赤峰市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 732 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150402', '1504', '00,15,1504', '红山区', '15' + , '内蒙古自治区', '1504', '赤峰市', '150402', '红山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 733 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150403', '1504', '00,15,1504', '元宝山区', '15' + , '内蒙古自治区', '1504', '赤峰市', '150403', '元宝山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 734 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150404', '1504', '00,15,1504', '松山区', '15' + , '内蒙古自治区', '1504', '赤峰市', '150404', '松山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 735 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150421', '1504', '00,15,1504', '阿鲁科尔沁旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150421', '阿鲁科尔沁旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 736 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150422', '1504', '00,15,1504', '巴林左旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150422', '巴林左旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 737 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150423', '1504', '00,15,1504', '巴林右旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150423', '巴林右旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 738 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150424', '1504', '00,15,1504', '林西县', '15' + , '内蒙古自治区', '1504', '赤峰市', '150424', '林西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 739 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150425', '1504', '00,15,1504', '克什克腾旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150425', '克什克腾旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 740 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150426', '1504', '00,15,1504', '翁牛特旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150426', '翁牛特旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 741 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150428', '1504', '00,15,1504', '喀喇沁旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150428', '喀喇沁旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 742 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150429', '1504', '00,15,1504', '宁城县', '15' + , '内蒙古自治区', '1504', '赤峰市', '150429', '宁城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 743 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150430', '1504', '00,15,1504', '敖汉旗', '15' + , '内蒙古自治区', '1504', '赤峰市', '150430', '敖汉旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 744 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1505', '15', '00,15', '通辽市', '15' + , '内蒙古自治区', '1505', '通辽市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 745 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150502', '1505', '00,15,1505', '科尔沁区', '15' + , '内蒙古自治区', '1505', '通辽市', '150502', '科尔沁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 746 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150521', '1505', '00,15,1505', '科尔沁左翼中旗', '15' + , '内蒙古自治区', '1505', '通辽市', '150521', '科尔沁左翼中旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 747 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('00', '0', '0', '中华人民共和国', NULL + , NULL, NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '0' + , '1', NULL); + +/*The 748 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('11', '00', '00', '北京市', '11' + , '北京市', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 749 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1101', '11', '00,11', '北京市', '11' + , '北京市', '1101', '北京市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 750 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110101', '1101', '00,11,1101', '东城区', '11' + , '北京市', '1101', '北京市', '110101', '东城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 751 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110102', '1101', '00,11,1101', '西城区', '11' + , '北京市', '1101', '北京市', '110102', '西城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 752 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110105', '1101', '00,11,1101', '朝阳区', '11' + , '北京市', '1101', '北京市', '110105', '朝阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 753 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110106', '1101', '00,11,1101', '丰台区', '11' + , '北京市', '1101', '北京市', '110106', '丰台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 754 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110107', '1101', '00,11,1101', '石景山区', '11' + , '北京市', '1101', '北京市', '110107', '石景山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 755 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110108', '1101', '00,11,1101', '海淀区', '11' + , '北京市', '1101', '北京市', '110108', '海淀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 756 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110109', '1101', '00,11,1101', '门头沟区', '11' + , '北京市', '1101', '北京市', '110109', '门头沟区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 757 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110111', '1101', '00,11,1101', '房山区', '11' + , '北京市', '1101', '北京市', '110111', '房山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 758 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110112', '1101', '00,11,1101', '通州区', '11' + , '北京市', '1101', '北京市', '110112', '通州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 759 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110113', '1101', '00,11,1101', '顺义区', '11' + , '北京市', '1101', '北京市', '110113', '顺义区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 760 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110114', '1101', '00,11,1101', '昌平区', '11' + , '北京市', '1101', '北京市', '110114', '昌平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 761 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110115', '1101', '00,11,1101', '大兴区', '11' + , '北京市', '1101', '北京市', '110115', '大兴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 762 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110116', '1101', '00,11,1101', '怀柔区', '11' + , '北京市', '1101', '北京市', '110116', '怀柔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 763 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110117', '1101', '00,11,1101', '平谷区', '11' + , '北京市', '1101', '北京市', '110117', '平谷区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 764 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110118', '1101', '00,11,1101', '密云区', '11' + , '北京市', '1101', '北京市', '110118', '密云区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 765 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('110119', '1101', '00,11,1101', '延庆区', '11' + , '北京市', '1101', '北京市', '110119', '延庆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 766 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('12', '00', '00', '天津市', '12' + , '天津市', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 767 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1201', '12', '00,12', '天津市', '12' + , '天津市', '1201', '天津市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 768 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120101', '1201', '00,12,1201', '和平区', '12' + , '天津市', '1201', '天津市', '120101', '和平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 769 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120102', '1201', '00,12,1201', '河东区', '12' + , '天津市', '1201', '天津市', '120102', '河东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 770 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120103', '1201', '00,12,1201', '河西区', '12' + , '天津市', '1201', '天津市', '120103', '河西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 771 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120104', '1201', '00,12,1201', '南开区', '12' + , '天津市', '1201', '天津市', '120104', '南开区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 772 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120105', '1201', '00,12,1201', '河北区', '12' + , '天津市', '1201', '天津市', '120105', '河北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 773 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120106', '1201', '00,12,1201', '红桥区', '12' + , '天津市', '1201', '天津市', '120106', '红桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 774 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120110', '1201', '00,12,1201', '东丽区', '12' + , '天津市', '1201', '天津市', '120110', '东丽区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 775 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120111', '1201', '00,12,1201', '西青区', '12' + , '天津市', '1201', '天津市', '120111', '西青区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 776 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120112', '1201', '00,12,1201', '津南区', '12' + , '天津市', '1201', '天津市', '120112', '津南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 777 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120113', '1201', '00,12,1201', '北辰区', '12' + , '天津市', '1201', '天津市', '120113', '北辰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 778 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120114', '1201', '00,12,1201', '武清区', '12' + , '天津市', '1201', '天津市', '120114', '武清区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 779 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120115', '1201', '00,12,1201', '宝坻区', '12' + , '天津市', '1201', '天津市', '120115', '宝坻区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 780 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120116', '1201', '00,12,1201', '滨海新区', '12' + , '天津市', '1201', '天津市', '120116', '滨海新区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 781 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120117', '1201', '00,12,1201', '宁河区', '12' + , '天津市', '1201', '天津市', '120117', '宁河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 782 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120118', '1201', '00,12,1201', '静海区', '12' + , '天津市', '1201', '天津市', '120118', '静海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 783 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('120119', '1201', '00,12,1201', '蓟州区', '12' + , '天津市', '1201', '天津市', '120119', '蓟州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 784 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('13', '00', '00', '河北省', '13' + , '河北省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 785 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1301', '13', '00,13', '石家庄市', '13' + , '河北省', '1301', '石家庄市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 786 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130102', '1301', '00,13,1301', '长安区', '13' + , '河北省', '1301', '石家庄市', '130102', '长安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 787 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130104', '1301', '00,13,1301', '桥西区', '13' + , '河北省', '1301', '石家庄市', '130104', '桥西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 788 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130105', '1301', '00,13,1301', '新华区', '13' + , '河北省', '1301', '石家庄市', '130105', '新华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 789 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130107', '1301', '00,13,1301', '井陉矿区', '13' + , '河北省', '1301', '石家庄市', '130107', '井陉矿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 790 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130108', '1301', '00,13,1301', '裕华区', '13' + , '河北省', '1301', '石家庄市', '130108', '裕华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 791 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130109', '1301', '00,13,1301', '藁城区', '13' + , '河北省', '1301', '石家庄市', '130109', '藁城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 792 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130110', '1301', '00,13,1301', '鹿泉区', '13' + , '河北省', '1301', '石家庄市', '130110', '鹿泉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 793 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130111', '1301', '00,13,1301', '栾城区', '13' + , '河北省', '1301', '石家庄市', '130111', '栾城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 794 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130121', '1301', '00,13,1301', '井陉县', '13' + , '河北省', '1301', '石家庄市', '130121', '井陉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 795 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130123', '1301', '00,13,1301', '正定县', '13' + , '河北省', '1301', '石家庄市', '130123', '正定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 796 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130125', '1301', '00,13,1301', '行唐县', '13' + , '河北省', '1301', '石家庄市', '130125', '行唐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 797 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130126', '1301', '00,13,1301', '灵寿县', '13' + , '河北省', '1301', '石家庄市', '130126', '灵寿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 798 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130127', '1301', '00,13,1301', '高邑县', '13' + , '河北省', '1301', '石家庄市', '130127', '高邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 799 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130128', '1301', '00,13,1301', '深泽县', '13' + , '河北省', '1301', '石家庄市', '130128', '深泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 800 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130129', '1301', '00,13,1301', '赞皇县', '13' + , '河北省', '1301', '石家庄市', '130129', '赞皇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 801 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130130', '1301', '00,13,1301', '无极县', '13' + , '河北省', '1301', '石家庄市', '130130', '无极县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 802 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130131', '1301', '00,13,1301', '平山县', '13' + , '河北省', '1301', '石家庄市', '130131', '平山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 803 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130132', '1301', '00,13,1301', '元氏县', '13' + , '河北省', '1301', '石家庄市', '130132', '元氏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 804 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130133', '1301', '00,13,1301', '赵县', '13' + , '河北省', '1301', '石家庄市', '130133', '赵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 805 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130181', '1301', '00,13,1301', '辛集市', '13' + , '河北省', '1301', '石家庄市', '130181', '辛集市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 806 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130183', '1301', '00,13,1301', '晋州市', '13' + , '河北省', '1301', '石家庄市', '130183', '晋州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 807 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130184', '1301', '00,13,1301', '新乐市', '13' + , '河北省', '1301', '石家庄市', '130184', '新乐市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 808 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1302', '13', '00,13', '唐山市', '13' + , '河北省', '1302', '唐山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 809 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130202', '1302', '00,13,1302', '路南区', '13' + , '河北省', '1302', '唐山市', '130202', '路南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 810 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130203', '1302', '00,13,1302', '路北区', '13' + , '河北省', '1302', '唐山市', '130203', '路北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 811 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130204', '1302', '00,13,1302', '古冶区', '13' + , '河北省', '1302', '唐山市', '130204', '古冶区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 812 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130205', '1302', '00,13,1302', '开平区', '13' + , '河北省', '1302', '唐山市', '130205', '开平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 813 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130207', '1302', '00,13,1302', '丰南区', '13' + , '河北省', '1302', '唐山市', '130207', '丰南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 814 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130208', '1302', '00,13,1302', '丰润区', '13' + , '河北省', '1302', '唐山市', '130208', '丰润区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 815 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130209', '1302', '00,13,1302', '曹妃甸区', '13' + , '河北省', '1302', '唐山市', '130209', '曹妃甸区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 816 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130224', '1302', '00,13,1302', '滦南县', '13' + , '河北省', '1302', '唐山市', '130224', '滦南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 817 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130225', '1302', '00,13,1302', '乐亭县', '13' + , '河北省', '1302', '唐山市', '130225', '乐亭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 818 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130227', '1302', '00,13,1302', '迁西县', '13' + , '河北省', '1302', '唐山市', '130227', '迁西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 819 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130229', '1302', '00,13,1302', '玉田县', '13' + , '河北省', '1302', '唐山市', '130229', '玉田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 820 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130281', '1302', '00,13,1302', '遵化市', '13' + , '河北省', '1302', '唐山市', '130281', '遵化市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 821 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130283', '1302', '00,13,1302', '迁安市', '13' + , '河北省', '1302', '唐山市', '130283', '迁安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 822 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130284', '1302', '00,13,1302', '滦州市', '13' + , '河北省', '1302', '唐山市', '130284', '滦州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 823 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1303', '13', '00,13', '秦皇岛市', '13' + , '河北省', '1303', '秦皇岛市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 824 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130302', '1303', '00,13,1303', '海港区', '13' + , '河北省', '1303', '秦皇岛市', '130302', '海港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 825 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130303', '1303', '00,13,1303', '山海关区', '13' + , '河北省', '1303', '秦皇岛市', '130303', '山海关区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 826 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130304', '1303', '00,13,1303', '北戴河区', '13' + , '河北省', '1303', '秦皇岛市', '130304', '北戴河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 827 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130306', '1303', '00,13,1303', '抚宁区', '13' + , '河北省', '1303', '秦皇岛市', '130306', '抚宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 828 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130321', '1303', '00,13,1303', '青龙满族自治县', '13' + , '河北省', '1303', '秦皇岛市', '130321', '青龙满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 829 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130322', '1303', '00,13,1303', '昌黎县', '13' + , '河北省', '1303', '秦皇岛市', '130322', '昌黎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 830 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130324', '1303', '00,13,1303', '卢龙县', '13' + , '河北省', '1303', '秦皇岛市', '130324', '卢龙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 831 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1304', '13', '00,13', '邯郸市', '13' + , '河北省', '1304', '邯郸市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 832 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130402', '1304', '00,13,1304', '邯山区', '13' + , '河北省', '1304', '邯郸市', '130402', '邯山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 833 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130403', '1304', '00,13,1304', '丛台区', '13' + , '河北省', '1304', '邯郸市', '130403', '丛台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 834 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130404', '1304', '00,13,1304', '复兴区', '13' + , '河北省', '1304', '邯郸市', '130404', '复兴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 835 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130406', '1304', '00,13,1304', '峰峰矿区', '13' + , '河北省', '1304', '邯郸市', '130406', '峰峰矿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 836 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130407', '1304', '00,13,1304', '肥乡区', '13' + , '河北省', '1304', '邯郸市', '130407', '肥乡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 837 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130408', '1304', '00,13,1304', '永年区', '13' + , '河北省', '1304', '邯郸市', '130408', '永年区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 838 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130423', '1304', '00,13,1304', '临漳县', '13' + , '河北省', '1304', '邯郸市', '130423', '临漳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 839 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130424', '1304', '00,13,1304', '成安县', '13' + , '河北省', '1304', '邯郸市', '130424', '成安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 840 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130425', '1304', '00,13,1304', '大名县', '13' + , '河北省', '1304', '邯郸市', '130425', '大名县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 841 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130426', '1304', '00,13,1304', '涉县', '13' + , '河北省', '1304', '邯郸市', '130426', '涉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 842 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130427', '1304', '00,13,1304', '磁县', '13' + , '河北省', '1304', '邯郸市', '130427', '磁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 843 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130430', '1304', '00,13,1304', '邱县', '13' + , '河北省', '1304', '邯郸市', '130430', '邱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 844 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130431', '1304', '00,13,1304', '鸡泽县', '13' + , '河北省', '1304', '邯郸市', '130431', '鸡泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 845 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130432', '1304', '00,13,1304', '广平县', '13' + , '河北省', '1304', '邯郸市', '130432', '广平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 846 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130433', '1304', '00,13,1304', '馆陶县', '13' + , '河北省', '1304', '邯郸市', '130433', '馆陶县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 847 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130434', '1304', '00,13,1304', '魏县', '13' + , '河北省', '1304', '邯郸市', '130434', '魏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 848 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130435', '1304', '00,13,1304', '曲周县', '13' + , '河北省', '1304', '邯郸市', '130435', '曲周县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 849 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130481', '1304', '00,13,1304', '武安市', '13' + , '河北省', '1304', '邯郸市', '130481', '武安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 850 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1305', '13', '00,13', '邢台市', '13' + , '河北省', '1305', '邢台市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 851 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130502', '1305', '00,13,1305', '桥东区', '13' + , '河北省', '1305', '邢台市', '130502', '桥东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 852 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130503', '1305', '00,13,1305', '桥西区', '13' + , '河北省', '1305', '邢台市', '130503', '桥西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 853 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130521', '1305', '00,13,1305', '邢台县', '13' + , '河北省', '1305', '邢台市', '130521', '邢台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 854 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130522', '1305', '00,13,1305', '临城县', '13' + , '河北省', '1305', '邢台市', '130522', '临城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 855 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130523', '1305', '00,13,1305', '内丘县', '13' + , '河北省', '1305', '邢台市', '130523', '内丘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 856 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130524', '1305', '00,13,1305', '柏乡县', '13' + , '河北省', '1305', '邢台市', '130524', '柏乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 857 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130525', '1305', '00,13,1305', '隆尧县', '13' + , '河北省', '1305', '邢台市', '130525', '隆尧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 858 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130526', '1305', '00,13,1305', '任县', '13' + , '河北省', '1305', '邢台市', '130526', '任县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 859 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130527', '1305', '00,13,1305', '南和县', '13' + , '河北省', '1305', '邢台市', '130527', '南和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 860 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130528', '1305', '00,13,1305', '宁晋县', '13' + , '河北省', '1305', '邢台市', '130528', '宁晋县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 861 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130529', '1305', '00,13,1305', '巨鹿县', '13' + , '河北省', '1305', '邢台市', '130529', '巨鹿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 862 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130530', '1305', '00,13,1305', '新河县', '13' + , '河北省', '1305', '邢台市', '130530', '新河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 863 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130531', '1305', '00,13,1305', '广宗县', '13' + , '河北省', '1305', '邢台市', '130531', '广宗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 864 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130532', '1305', '00,13,1305', '平乡县', '13' + , '河北省', '1305', '邢台市', '130532', '平乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 865 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130533', '1305', '00,13,1305', '威县', '13' + , '河北省', '1305', '邢台市', '130533', '威县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 866 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130534', '1305', '00,13,1305', '清河县', '13' + , '河北省', '1305', '邢台市', '130534', '清河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 867 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130535', '1305', '00,13,1305', '临西县', '13' + , '河北省', '1305', '邢台市', '130535', '临西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 868 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130581', '1305', '00,13,1305', '南宫市', '13' + , '河北省', '1305', '邢台市', '130581', '南宫市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 869 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130582', '1305', '00,13,1305', '沙河市', '13' + , '河北省', '1305', '邢台市', '130582', '沙河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 870 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1306', '13', '00,13', '保定市', '13' + , '河北省', '1306', '保定市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 871 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130602', '1306', '00,13,1306', '竞秀区', '13' + , '河北省', '1306', '保定市', '130602', '竞秀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 872 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130606', '1306', '00,13,1306', '莲池区', '13' + , '河北省', '1306', '保定市', '130606', '莲池区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 873 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130607', '1306', '00,13,1306', '满城区', '13' + , '河北省', '1306', '保定市', '130607', '满城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 874 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130608', '1306', '00,13,1306', '清苑区', '13' + , '河北省', '1306', '保定市', '130608', '清苑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 875 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130609', '1306', '00,13,1306', '徐水区', '13' + , '河北省', '1306', '保定市', '130609', '徐水区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 876 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130623', '1306', '00,13,1306', '涞水县', '13' + , '河北省', '1306', '保定市', '130623', '涞水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 877 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130624', '1306', '00,13,1306', '阜平县', '13' + , '河北省', '1306', '保定市', '130624', '阜平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 878 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130626', '1306', '00,13,1306', '定兴县', '13' + , '河北省', '1306', '保定市', '130626', '定兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 879 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130627', '1306', '00,13,1306', '唐县', '13' + , '河北省', '1306', '保定市', '130627', '唐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 880 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130628', '1306', '00,13,1306', '高阳县', '13' + , '河北省', '1306', '保定市', '130628', '高阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 881 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130629', '1306', '00,13,1306', '容城县', '13' + , '河北省', '1306', '保定市', '130629', '容城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 882 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130630', '1306', '00,13,1306', '涞源县', '13' + , '河北省', '1306', '保定市', '130630', '涞源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 883 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130631', '1306', '00,13,1306', '望都县', '13' + , '河北省', '1306', '保定市', '130631', '望都县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 884 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130632', '1306', '00,13,1306', '安新县', '13' + , '河北省', '1306', '保定市', '130632', '安新县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 885 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130633', '1306', '00,13,1306', '易县', '13' + , '河北省', '1306', '保定市', '130633', '易县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 886 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130634', '1306', '00,13,1306', '曲阳县', '13' + , '河北省', '1306', '保定市', '130634', '曲阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 887 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130635', '1306', '00,13,1306', '蠡县', '13' + , '河北省', '1306', '保定市', '130635', '蠡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 888 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130636', '1306', '00,13,1306', '顺平县', '13' + , '河北省', '1306', '保定市', '130636', '顺平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 889 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130637', '1306', '00,13,1306', '博野县', '13' + , '河北省', '1306', '保定市', '130637', '博野县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 890 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130638', '1306', '00,13,1306', '雄县', '13' + , '河北省', '1306', '保定市', '130638', '雄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 891 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130681', '1306', '00,13,1306', '涿州市', '13' + , '河北省', '1306', '保定市', '130681', '涿州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 892 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130682', '1306', '00,13,1306', '定州市', '13' + , '河北省', '1306', '保定市', '130682', '定州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 893 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130683', '1306', '00,13,1306', '安国市', '13' + , '河北省', '1306', '保定市', '130683', '安国市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 894 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130684', '1306', '00,13,1306', '高碑店市', '13' + , '河北省', '1306', '保定市', '130684', '高碑店市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 895 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1307', '13', '00,13', '张家口市', '13' + , '河北省', '1307', '张家口市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 896 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130702', '1307', '00,13,1307', '桥东区', '13' + , '河北省', '1307', '张家口市', '130702', '桥东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 897 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130703', '1307', '00,13,1307', '桥西区', '13' + , '河北省', '1307', '张家口市', '130703', '桥西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 898 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130705', '1307', '00,13,1307', '宣化区', '13' + , '河北省', '1307', '张家口市', '130705', '宣化区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 899 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130706', '1307', '00,13,1307', '下花园区', '13' + , '河北省', '1307', '张家口市', '130706', '下花园区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 900 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130708', '1307', '00,13,1307', '万全区', '13' + , '河北省', '1307', '张家口市', '130708', '万全区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 901 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130709', '1307', '00,13,1307', '崇礼区', '13' + , '河北省', '1307', '张家口市', '130709', '崇礼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 902 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130722', '1307', '00,13,1307', '张北县', '13' + , '河北省', '1307', '张家口市', '130722', '张北县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 903 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130723', '1307', '00,13,1307', '康保县', '13' + , '河北省', '1307', '张家口市', '130723', '康保县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 904 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152524', '1525', '00,15,1525', '苏尼特右旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152524', '苏尼特右旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 905 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130724', '1307', '00,13,1307', '沽源县', '13' + , '河北省', '1307', '张家口市', '130724', '沽源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 906 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130725', '1307', '00,13,1307', '尚义县', '13' + , '河北省', '1307', '张家口市', '130725', '尚义县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 907 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130726', '1307', '00,13,1307', '蔚县', '13' + , '河北省', '1307', '张家口市', '130726', '蔚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 908 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130727', '1307', '00,13,1307', '阳原县', '13' + , '河北省', '1307', '张家口市', '130727', '阳原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 909 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130728', '1307', '00,13,1307', '怀安县', '13' + , '河北省', '1307', '张家口市', '130728', '怀安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 910 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130730', '1307', '00,13,1307', '怀来县', '13' + , '河北省', '1307', '张家口市', '130730', '怀来县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 911 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130731', '1307', '00,13,1307', '涿鹿县', '13' + , '河北省', '1307', '张家口市', '130731', '涿鹿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 912 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130732', '1307', '00,13,1307', '赤城县', '13' + , '河北省', '1307', '张家口市', '130732', '赤城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 913 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1308', '13', '00,13', '承德市', '13' + , '河北省', '1308', '承德市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 914 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130802', '1308', '00,13,1308', '双桥区', '13' + , '河北省', '1308', '承德市', '130802', '双桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 915 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130803', '1308', '00,13,1308', '双滦区', '13' + , '河北省', '1308', '承德市', '130803', '双滦区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 916 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130804', '1308', '00,13,1308', '鹰手营子矿区', '13' + , '河北省', '1308', '承德市', '130804', '鹰手营子矿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 917 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130821', '1308', '00,13,1308', '承德县', '13' + , '河北省', '1308', '承德市', '130821', '承德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 918 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130822', '1308', '00,13,1308', '兴隆县', '13' + , '河北省', '1308', '承德市', '130822', '兴隆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 919 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130824', '1308', '00,13,1308', '滦平县', '13' + , '河北省', '1308', '承德市', '130824', '滦平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 920 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130825', '1308', '00,13,1308', '隆化县', '13' + , '河北省', '1308', '承德市', '130825', '隆化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 921 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130826', '1308', '00,13,1308', '丰宁满族自治县', '13' + , '河北省', '1308', '承德市', '130826', '丰宁满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 922 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130827', '1308', '00,13,1308', '宽城满族自治县', '13' + , '河北省', '1308', '承德市', '130827', '宽城满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 923 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130828', '1308', '00,13,1308', '围场满族蒙古族自治县', '13' + , '河北省', '1308', '承德市', '130828', '围场满族蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 924 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130881', '1308', '00,13,1308', '平泉市', '13' + , '河北省', '1308', '承德市', '130881', '平泉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 925 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1309', '13', '00,13', '沧州市', '13' + , '河北省', '1309', '沧州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 926 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130902', '1309', '00,13,1309', '新华区', '13' + , '河北省', '1309', '沧州市', '130902', '新华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 927 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130903', '1309', '00,13,1309', '运河区', '13' + , '河北省', '1309', '沧州市', '130903', '运河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 928 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130921', '1309', '00,13,1309', '沧县', '13' + , '河北省', '1309', '沧州市', '130921', '沧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 929 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130922', '1309', '00,13,1309', '青县', '13' + , '河北省', '1309', '沧州市', '130922', '青县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 930 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130923', '1309', '00,13,1309', '东光县', '13' + , '河北省', '1309', '沧州市', '130923', '东光县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 931 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130924', '1309', '00,13,1309', '海兴县', '13' + , '河北省', '1309', '沧州市', '130924', '海兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 932 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130925', '1309', '00,13,1309', '盐山县', '13' + , '河北省', '1309', '沧州市', '130925', '盐山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 933 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130926', '1309', '00,13,1309', '肃宁县', '13' + , '河北省', '1309', '沧州市', '130926', '肃宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 934 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130927', '1309', '00,13,1309', '南皮县', '13' + , '河北省', '1309', '沧州市', '130927', '南皮县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 935 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130928', '1309', '00,13,1309', '吴桥县', '13' + , '河北省', '1309', '沧州市', '130928', '吴桥县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 936 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130929', '1309', '00,13,1309', '献县', '13' + , '河北省', '1309', '沧州市', '130929', '献县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 937 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130930', '1309', '00,13,1309', '孟村回族自治县', '13' + , '河北省', '1309', '沧州市', '130930', '孟村回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 938 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130981', '1309', '00,13,1309', '泊头市', '13' + , '河北省', '1309', '沧州市', '130981', '泊头市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 939 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130982', '1309', '00,13,1309', '任丘市', '13' + , '河北省', '1309', '沧州市', '130982', '任丘市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 940 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130983', '1309', '00,13,1309', '黄骅市', '13' + , '河北省', '1309', '沧州市', '130983', '黄骅市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 941 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('130984', '1309', '00,13,1309', '河间市', '13' + , '河北省', '1309', '沧州市', '130984', '河间市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 942 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1310', '13', '00,13', '廊坊市', '13' + , '河北省', '1310', '廊坊市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 943 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131002', '1310', '00,13,1310', '安次区', '13' + , '河北省', '1310', '廊坊市', '131002', '安次区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 944 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3403', '34', '00,34', '蚌埠市', '34' + , '安徽省', '3403', '蚌埠市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 945 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131003', '1310', '00,13,1310', '广阳区', '13' + , '河北省', '1310', '廊坊市', '131003', '广阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 946 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131022', '1310', '00,13,1310', '固安县', '13' + , '河北省', '1310', '廊坊市', '131022', '固安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 947 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131023', '1310', '00,13,1310', '永清县', '13' + , '河北省', '1310', '廊坊市', '131023', '永清县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 948 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131024', '1310', '00,13,1310', '香河县', '13' + , '河北省', '1310', '廊坊市', '131024', '香河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 949 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131025', '1310', '00,13,1310', '大城县', '13' + , '河北省', '1310', '廊坊市', '131025', '大城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 950 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131026', '1310', '00,13,1310', '文安县', '13' + , '河北省', '1310', '廊坊市', '131026', '文安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 951 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131028', '1310', '00,13,1310', '大厂回族自治县', '13' + , '河北省', '1310', '廊坊市', '131028', '大厂回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 952 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131081', '1310', '00,13,1310', '霸州市', '13' + , '河北省', '1310', '廊坊市', '131081', '霸州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 953 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131082', '1310', '00,13,1310', '三河市', '13' + , '河北省', '1310', '廊坊市', '131082', '三河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 954 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1311', '13', '00,13', '衡水市', '13' + , '河北省', '1311', '衡水市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 955 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131102', '1311', '00,13,1311', '桃城区', '13' + , '河北省', '1311', '衡水市', '131102', '桃城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 956 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131103', '1311', '00,13,1311', '冀州区', '13' + , '河北省', '1311', '衡水市', '131103', '冀州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 957 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131121', '1311', '00,13,1311', '枣强县', '13' + , '河北省', '1311', '衡水市', '131121', '枣强县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 958 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131122', '1311', '00,13,1311', '武邑县', '13' + , '河北省', '1311', '衡水市', '131122', '武邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 959 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131123', '1311', '00,13,1311', '武强县', '13' + , '河北省', '1311', '衡水市', '131123', '武强县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 960 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131124', '1311', '00,13,1311', '饶阳县', '13' + , '河北省', '1311', '衡水市', '131124', '饶阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 961 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131125', '1311', '00,13,1311', '安平县', '13' + , '河北省', '1311', '衡水市', '131125', '安平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 962 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131126', '1311', '00,13,1311', '故城县', '13' + , '河北省', '1311', '衡水市', '131126', '故城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 963 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131127', '1311', '00,13,1311', '景县', '13' + , '河北省', '1311', '衡水市', '131127', '景县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 964 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131128', '1311', '00,13,1311', '阜城县', '13' + , '河北省', '1311', '衡水市', '131128', '阜城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 965 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('131182', '1311', '00,13,1311', '深州市', '13' + , '河北省', '1311', '衡水市', '131182', '深州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 966 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('14', '00', '00', '山西省', '14' + , '山西省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 967 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1401', '14', '00,14', '太原市', '14' + , '山西省', '1401', '太原市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 968 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140105', '1401', '00,14,1401', '小店区', '14' + , '山西省', '1401', '太原市', '140105', '小店区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 969 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140106', '1401', '00,14,1401', '迎泽区', '14' + , '山西省', '1401', '太原市', '140106', '迎泽区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 970 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140107', '1401', '00,14,1401', '杏花岭区', '14' + , '山西省', '1401', '太原市', '140107', '杏花岭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 971 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140108', '1401', '00,14,1401', '尖草坪区', '14' + , '山西省', '1401', '太原市', '140108', '尖草坪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 972 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140109', '1401', '00,14,1401', '万柏林区', '14' + , '山西省', '1401', '太原市', '140109', '万柏林区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 973 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140110', '1401', '00,14,1401', '晋源区', '14' + , '山西省', '1401', '太原市', '140110', '晋源区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 974 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140121', '1401', '00,14,1401', '清徐县', '14' + , '山西省', '1401', '太原市', '140121', '清徐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 975 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140122', '1401', '00,14,1401', '阳曲县', '14' + , '山西省', '1401', '太原市', '140122', '阳曲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 976 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140123', '1401', '00,14,1401', '娄烦县', '14' + , '山西省', '1401', '太原市', '140123', '娄烦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 977 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140181', '1401', '00,14,1401', '古交市', '14' + , '山西省', '1401', '太原市', '140181', '古交市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 978 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1402', '14', '00,14', '大同市', '14' + , '山西省', '1402', '大同市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 979 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140212', '1402', '00,14,1402', '新荣区', '14' + , '山西省', '1402', '大同市', '140212', '新荣区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 980 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140213', '1402', '00,14,1402', '平城区', '14' + , '山西省', '1402', '大同市', '140213', '平城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 981 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140214', '1402', '00,14,1402', '云冈区', '14' + , '山西省', '1402', '大同市', '140214', '云冈区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 982 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('140215', '1402', '00,14,1402', '云州区', '14' + , '山西省', '1402', '大同市', '140215', '云州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 983 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320481', '3204', '00,32,3204', '溧阳市', '32' + , '江苏省', '3204', '常州市', '320481', '溧阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 984 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3205', '32', '00,32', '苏州市', '32' + , '江苏省', '3205', '苏州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 985 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320505', '3205', '00,32,3205', '虎丘区', '32' + , '江苏省', '3205', '苏州市', '320505', '虎丘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 986 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320506', '3205', '00,32,3205', '吴中区', '32' + , '江苏省', '3205', '苏州市', '320506', '吴中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 987 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320507', '3205', '00,32,3205', '相城区', '32' + , '江苏省', '3205', '苏州市', '320507', '相城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 988 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320508', '3205', '00,32,3205', '姑苏区', '32' + , '江苏省', '3205', '苏州市', '320508', '姑苏区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 989 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320509', '3205', '00,32,3205', '吴江区', '32' + , '江苏省', '3205', '苏州市', '320509', '吴江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 990 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320581', '3205', '00,32,3205', '常熟市', '32' + , '江苏省', '3205', '苏州市', '320581', '常熟市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 991 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320582', '3205', '00,32,3205', '张家港市', '32' + , '江苏省', '3205', '苏州市', '320582', '张家港市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 992 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320583', '3205', '00,32,3205', '昆山市', '32' + , '江苏省', '3205', '苏州市', '320583', '昆山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 993 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320585', '3205', '00,32,3205', '太仓市', '32' + , '江苏省', '3205', '苏州市', '320585', '太仓市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 994 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3206', '32', '00,32', '南通市', '32' + , '江苏省', '3206', '南通市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 995 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320602', '3206', '00,32,3206', '崇川区', '32' + , '江苏省', '3206', '南通市', '320602', '崇川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 996 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320611', '3206', '00,32,3206', '港闸区', '32' + , '江苏省', '3206', '南通市', '320611', '港闸区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 997 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320612', '3206', '00,32,3206', '通州区', '32' + , '江苏省', '3206', '南通市', '320612', '通州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 998 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320623', '3206', '00,32,3206', '如东县', '32' + , '江苏省', '3206', '南通市', '320623', '如东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 999 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320681', '3206', '00,32,3206', '启东市', '32' + , '江苏省', '3206', '南通市', '320681', '启东市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1000 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320682', '3206', '00,32,3206', '如皋市', '32' + , '江苏省', '3206', '南通市', '320682', '如皋市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1001 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320684', '3206', '00,32,3206', '海门市', '32' + , '江苏省', '3206', '南通市', '320684', '海门市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1002 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320685', '3206', '00,32,3206', '海安市', '32' + , '江苏省', '3206', '南通市', '320685', '海安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1003 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3207', '32', '00,32', '连云港市', '32' + , '江苏省', '3207', '连云港市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1004 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320703', '3207', '00,32,3207', '连云区', '32' + , '江苏省', '3207', '连云港市', '320703', '连云区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1005 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320706', '3207', '00,32,3207', '海州区', '32' + , '江苏省', '3207', '连云港市', '320706', '海州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1006 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320707', '3207', '00,32,3207', '赣榆区', '32' + , '江苏省', '3207', '连云港市', '320707', '赣榆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1007 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320722', '3207', '00,32,3207', '东海县', '32' + , '江苏省', '3207', '连云港市', '320722', '东海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1008 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320723', '3207', '00,32,3207', '灌云县', '32' + , '江苏省', '3207', '连云港市', '320723', '灌云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1009 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320724', '3207', '00,32,3207', '灌南县', '32' + , '江苏省', '3207', '连云港市', '320724', '灌南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1010 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3208', '32', '00,32', '淮安市', '32' + , '江苏省', '3208', '淮安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1011 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320803', '3208', '00,32,3208', '淮安区', '32' + , '江苏省', '3208', '淮安市', '320803', '淮安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1012 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320804', '3208', '00,32,3208', '淮阴区', '32' + , '江苏省', '3208', '淮安市', '320804', '淮阴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1013 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320812', '3208', '00,32,3208', '清江浦区', '32' + , '江苏省', '3208', '淮安市', '320812', '清江浦区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1014 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320813', '3208', '00,32,3208', '洪泽区', '32' + , '江苏省', '3208', '淮安市', '320813', '洪泽区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1015 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320826', '3208', '00,32,3208', '涟水县', '32' + , '江苏省', '3208', '淮安市', '320826', '涟水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1016 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320830', '3208', '00,32,3208', '盱眙县', '32' + , '江苏省', '3208', '淮安市', '320830', '盱眙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1017 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320831', '3208', '00,32,3208', '金湖县', '32' + , '江苏省', '3208', '淮安市', '320831', '金湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1018 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3209', '32', '00,32', '盐城市', '32' + , '江苏省', '3209', '盐城市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1019 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320902', '3209', '00,32,3209', '亭湖区', '32' + , '江苏省', '3209', '盐城市', '320902', '亭湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1020 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320903', '3209', '00,32,3209', '盐都区', '32' + , '江苏省', '3209', '盐城市', '320903', '盐都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1021 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320904', '3209', '00,32,3209', '大丰区', '32' + , '江苏省', '3209', '盐城市', '320904', '大丰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1022 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320921', '3209', '00,32,3209', '响水县', '32' + , '江苏省', '3209', '盐城市', '320921', '响水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1023 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320922', '3209', '00,32,3209', '滨海县', '32' + , '江苏省', '3209', '盐城市', '320922', '滨海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1024 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320923', '3209', '00,32,3209', '阜宁县', '32' + , '江苏省', '3209', '盐城市', '320923', '阜宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1025 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320924', '3209', '00,32,3209', '射阳县', '32' + , '江苏省', '3209', '盐城市', '320924', '射阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1026 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320925', '3209', '00,32,3209', '建湖县', '32' + , '江苏省', '3209', '盐城市', '320925', '建湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1027 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320981', '3209', '00,32,3209', '东台市', '32' + , '江苏省', '3209', '盐城市', '320981', '东台市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1028 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3210', '32', '00,32', '扬州市', '32' + , '江苏省', '3210', '扬州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1029 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321002', '3210', '00,32,3210', '广陵区', '32' + , '江苏省', '3210', '扬州市', '321002', '广陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1030 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321003', '3210', '00,32,3210', '邗江区', '32' + , '江苏省', '3210', '扬州市', '321003', '邗江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1031 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321012', '3210', '00,32,3210', '江都区', '32' + , '江苏省', '3210', '扬州市', '321012', '江都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1032 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321023', '3210', '00,32,3210', '宝应县', '32' + , '江苏省', '3210', '扬州市', '321023', '宝应县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1033 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321081', '3210', '00,32,3210', '仪征市', '32' + , '江苏省', '3210', '扬州市', '321081', '仪征市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1034 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321084', '3210', '00,32,3210', '高邮市', '32' + , '江苏省', '3210', '扬州市', '321084', '高邮市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1035 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3211', '32', '00,32', '镇江市', '32' + , '江苏省', '3211', '镇江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1036 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321102', '3211', '00,32,3211', '京口区', '32' + , '江苏省', '3211', '镇江市', '321102', '京口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1037 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321111', '3211', '00,32,3211', '润州区', '32' + , '江苏省', '3211', '镇江市', '321111', '润州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1038 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321112', '3211', '00,32,3211', '丹徒区', '32' + , '江苏省', '3211', '镇江市', '321112', '丹徒区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1039 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321181', '3211', '00,32,3211', '丹阳市', '32' + , '江苏省', '3211', '镇江市', '321181', '丹阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1040 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321182', '3211', '00,32,3211', '扬中市', '32' + , '江苏省', '3211', '镇江市', '321182', '扬中市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1041 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321183', '3211', '00,32,3211', '句容市', '32' + , '江苏省', '3211', '镇江市', '321183', '句容市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1042 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3212', '32', '00,32', '泰州市', '32' + , '江苏省', '3212', '泰州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1043 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321202', '3212', '00,32,3212', '海陵区', '32' + , '江苏省', '3212', '泰州市', '321202', '海陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1044 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321203', '3212', '00,32,3212', '高港区', '32' + , '江苏省', '3212', '泰州市', '321203', '高港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1045 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321204', '3212', '00,32,3212', '姜堰区', '32' + , '江苏省', '3212', '泰州市', '321204', '姜堰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1046 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321281', '3212', '00,32,3212', '兴化市', '32' + , '江苏省', '3212', '泰州市', '321281', '兴化市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1047 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321282', '3212', '00,32,3212', '靖江市', '32' + , '江苏省', '3212', '泰州市', '321282', '靖江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1048 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321283', '3212', '00,32,3212', '泰兴市', '32' + , '江苏省', '3212', '泰州市', '321283', '泰兴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1049 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3213', '32', '00,32', '宿迁市', '32' + , '江苏省', '3213', '宿迁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1050 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321302', '3213', '00,32,3213', '宿城区', '32' + , '江苏省', '3213', '宿迁市', '321302', '宿城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1051 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321311', '3213', '00,32,3213', '宿豫区', '32' + , '江苏省', '3213', '宿迁市', '321311', '宿豫区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1052 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321322', '3213', '00,32,3213', '沭阳县', '32' + , '江苏省', '3213', '宿迁市', '321322', '沭阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1053 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321323', '3213', '00,32,3213', '泗阳县', '32' + , '江苏省', '3213', '宿迁市', '321323', '泗阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1054 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('321324', '3213', '00,32,3213', '泗洪县', '32' + , '江苏省', '3213', '宿迁市', '321324', '泗洪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1055 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('33', '00', '00', '浙江省', '33' + , '浙江省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1056 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3301', '33', '00,33', '杭州市', '33' + , '浙江省', '3301', '杭州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1057 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330102', '3301', '00,33,3301', '上城区', '33' + , '浙江省', '3301', '杭州市', '330102', '上城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1058 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330103', '3301', '00,33,3301', '下城区', '33' + , '浙江省', '3301', '杭州市', '330103', '下城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1059 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330104', '3301', '00,33,3301', '江干区', '33' + , '浙江省', '3301', '杭州市', '330104', '江干区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1060 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330105', '3301', '00,33,3301', '拱墅区', '33' + , '浙江省', '3301', '杭州市', '330105', '拱墅区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1061 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2205', '22', '00,22', '通化市', '22' + , '吉林省', '2205', '通化市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1062 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220502', '2205', '00,22,2205', '东昌区', '22' + , '吉林省', '2205', '通化市', '220502', '东昌区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1063 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330109', '3301', '00,33,3301', '萧山区', '33' + , '浙江省', '3301', '杭州市', '330109', '萧山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1064 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330110', '3301', '00,33,3301', '余杭区', '33' + , '浙江省', '3301', '杭州市', '330110', '余杭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1065 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152530', '1525', '00,15,1525', '正蓝旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152530', '正蓝旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1066 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152531', '1525', '00,15,1525', '多伦县', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152531', '多伦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1067 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1529', '15', '00,15', '阿拉善盟', '15' + , '内蒙古自治区', '1529', '阿拉善盟', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1068 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152921', '1529', '00,15,1529', '阿拉善左旗', '15' + , '内蒙古自治区', '1529', '阿拉善盟', '152921', '阿拉善左旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1069 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152922', '1529', '00,15,1529', '阿拉善右旗', '15' + , '内蒙古自治区', '1529', '阿拉善盟', '152922', '阿拉善右旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1070 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152923', '1529', '00,15,1529', '额济纳旗', '15' + , '内蒙古自治区', '1529', '阿拉善盟', '152923', '额济纳旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1071 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('21', '00', '00', '辽宁省', '21' + , '辽宁省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1072 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2101', '21', '00,21', '沈阳市', '21' + , '辽宁省', '2101', '沈阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1073 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210102', '2101', '00,21,2101', '和平区', '21' + , '辽宁省', '2101', '沈阳市', '210102', '和平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1074 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210103', '2101', '00,21,2101', '沈河区', '21' + , '辽宁省', '2101', '沈阳市', '210103', '沈河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1075 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210104', '2101', '00,21,2101', '大东区', '21' + , '辽宁省', '2101', '沈阳市', '210104', '大东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1076 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210105', '2101', '00,21,2101', '皇姑区', '21' + , '辽宁省', '2101', '沈阳市', '210105', '皇姑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1077 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210106', '2101', '00,21,2101', '铁西区', '21' + , '辽宁省', '2101', '沈阳市', '210106', '铁西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1078 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210111', '2101', '00,21,2101', '苏家屯区', '21' + , '辽宁省', '2101', '沈阳市', '210111', '苏家屯区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1079 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210112', '2101', '00,21,2101', '浑南区', '21' + , '辽宁省', '2101', '沈阳市', '210112', '浑南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1080 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210113', '2101', '00,21,2101', '沈北新区', '21' + , '辽宁省', '2101', '沈阳市', '210113', '沈北新区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1081 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210114', '2101', '00,21,2101', '于洪区', '21' + , '辽宁省', '2101', '沈阳市', '210114', '于洪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1082 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210115', '2101', '00,21,2101', '辽中区', '21' + , '辽宁省', '2101', '沈阳市', '210115', '辽中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1083 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210123', '2101', '00,21,2101', '康平县', '21' + , '辽宁省', '2101', '沈阳市', '210123', '康平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1084 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210124', '2101', '00,21,2101', '法库县', '21' + , '辽宁省', '2101', '沈阳市', '210124', '法库县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1085 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210181', '2101', '00,21,2101', '新民市', '21' + , '辽宁省', '2101', '沈阳市', '210181', '新民市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1086 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2102', '21', '00,21', '大连市', '21' + , '辽宁省', '2102', '大连市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1087 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210202', '2102', '00,21,2102', '中山区', '21' + , '辽宁省', '2102', '大连市', '210202', '中山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1088 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210203', '2102', '00,21,2102', '西岗区', '21' + , '辽宁省', '2102', '大连市', '210203', '西岗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1089 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210204', '2102', '00,21,2102', '沙河口区', '21' + , '辽宁省', '2102', '大连市', '210204', '沙河口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1090 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210211', '2102', '00,21,2102', '甘井子区', '21' + , '辽宁省', '2102', '大连市', '210211', '甘井子区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1091 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210212', '2102', '00,21,2102', '旅顺口区', '21' + , '辽宁省', '2102', '大连市', '210212', '旅顺口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1092 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210213', '2102', '00,21,2102', '金州区', '21' + , '辽宁省', '2102', '大连市', '210213', '金州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1093 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210214', '2102', '00,21,2102', '普兰店区', '21' + , '辽宁省', '2102', '大连市', '210214', '普兰店区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1094 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210224', '2102', '00,21,2102', '长海县', '21' + , '辽宁省', '2102', '大连市', '210224', '长海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1095 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210281', '2102', '00,21,2102', '瓦房店市', '21' + , '辽宁省', '2102', '大连市', '210281', '瓦房店市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1096 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210283', '2102', '00,21,2102', '庄河市', '21' + , '辽宁省', '2102', '大连市', '210283', '庄河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1097 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2103', '21', '00,21', '鞍山市', '21' + , '辽宁省', '2103', '鞍山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1098 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210302', '2103', '00,21,2103', '铁东区', '21' + , '辽宁省', '2103', '鞍山市', '210302', '铁东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1099 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210303', '2103', '00,21,2103', '铁西区', '21' + , '辽宁省', '2103', '鞍山市', '210303', '铁西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1100 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210304', '2103', '00,21,2103', '立山区', '21' + , '辽宁省', '2103', '鞍山市', '210304', '立山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1101 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210311', '2103', '00,21,2103', '千山区', '21' + , '辽宁省', '2103', '鞍山市', '210311', '千山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1102 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210321', '2103', '00,21,2103', '台安县', '21' + , '辽宁省', '2103', '鞍山市', '210321', '台安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1103 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210323', '2103', '00,21,2103', '岫岩满族自治县', '21' + , '辽宁省', '2103', '鞍山市', '210323', '岫岩满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1104 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210381', '2103', '00,21,2103', '海城市', '21' + , '辽宁省', '2103', '鞍山市', '210381', '海城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1105 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2104', '21', '00,21', '抚顺市', '21' + , '辽宁省', '2104', '抚顺市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1106 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210402', '2104', '00,21,2104', '新抚区', '21' + , '辽宁省', '2104', '抚顺市', '210402', '新抚区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1107 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210403', '2104', '00,21,2104', '东洲区', '21' + , '辽宁省', '2104', '抚顺市', '210403', '东洲区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1108 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210404', '2104', '00,21,2104', '望花区', '21' + , '辽宁省', '2104', '抚顺市', '210404', '望花区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1109 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210411', '2104', '00,21,2104', '顺城区', '21' + , '辽宁省', '2104', '抚顺市', '210411', '顺城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1110 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210421', '2104', '00,21,2104', '抚顺县', '21' + , '辽宁省', '2104', '抚顺市', '210421', '抚顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1111 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210422', '2104', '00,21,2104', '新宾满族自治县', '21' + , '辽宁省', '2104', '抚顺市', '210422', '新宾满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1112 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210423', '2104', '00,21,2104', '清原满族自治县', '21' + , '辽宁省', '2104', '抚顺市', '210423', '清原满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1113 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2105', '21', '00,21', '本溪市', '21' + , '辽宁省', '2105', '本溪市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1114 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210502', '2105', '00,21,2105', '平山区', '21' + , '辽宁省', '2105', '本溪市', '210502', '平山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1115 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210503', '2105', '00,21,2105', '溪湖区', '21' + , '辽宁省', '2105', '本溪市', '210503', '溪湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1116 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210504', '2105', '00,21,2105', '明山区', '21' + , '辽宁省', '2105', '本溪市', '210504', '明山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1117 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210505', '2105', '00,21,2105', '南芬区', '21' + , '辽宁省', '2105', '本溪市', '210505', '南芬区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1118 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210521', '2105', '00,21,2105', '本溪满族自治县', '21' + , '辽宁省', '2105', '本溪市', '210521', '本溪满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1119 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210522', '2105', '00,21,2105', '桓仁满族自治县', '21' + , '辽宁省', '2105', '本溪市', '210522', '桓仁满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1120 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2106', '21', '00,21', '丹东市', '21' + , '辽宁省', '2106', '丹东市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1121 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210602', '2106', '00,21,2106', '元宝区', '21' + , '辽宁省', '2106', '丹东市', '210602', '元宝区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1122 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210603', '2106', '00,21,2106', '振兴区', '21' + , '辽宁省', '2106', '丹东市', '210603', '振兴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1123 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210604', '2106', '00,21,2106', '振安区', '21' + , '辽宁省', '2106', '丹东市', '210604', '振安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1124 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210624', '2106', '00,21,2106', '宽甸满族自治县', '21' + , '辽宁省', '2106', '丹东市', '210624', '宽甸满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1125 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210681', '2106', '00,21,2106', '东港市', '21' + , '辽宁省', '2106', '丹东市', '210681', '东港市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1126 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210682', '2106', '00,21,2106', '凤城市', '21' + , '辽宁省', '2106', '丹东市', '210682', '凤城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1127 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2107', '21', '00,21', '锦州市', '21' + , '辽宁省', '2107', '锦州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1128 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210702', '2107', '00,21,2107', '古塔区', '21' + , '辽宁省', '2107', '锦州市', '210702', '古塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1129 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210703', '2107', '00,21,2107', '凌河区', '21' + , '辽宁省', '2107', '锦州市', '210703', '凌河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1130 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210711', '2107', '00,21,2107', '太和区', '21' + , '辽宁省', '2107', '锦州市', '210711', '太和区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1131 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210726', '2107', '00,21,2107', '黑山县', '21' + , '辽宁省', '2107', '锦州市', '210726', '黑山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1132 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210727', '2107', '00,21,2107', '义县', '21' + , '辽宁省', '2107', '锦州市', '210727', '义县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1133 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210781', '2107', '00,21,2107', '凌海市', '21' + , '辽宁省', '2107', '锦州市', '210781', '凌海市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1134 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210782', '2107', '00,21,2107', '北镇市', '21' + , '辽宁省', '2107', '锦州市', '210782', '北镇市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1135 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320404', '3204', '00,32,3204', '钟楼区', '32' + , '江苏省', '3204', '常州市', '320404', '钟楼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1136 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360113', '3601', '00,36,3601', '红谷滩区', '36' + , '江西省', '3601', '南昌市', '360113', '红谷滩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1137 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231085', '2310', '00,23,2310', '穆棱市', '23' + , '黑龙江省', '2310', '牡丹江市', '231085', '穆棱市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1138 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210882', '2108', '00,21,2108', '大石桥市', '21' + , '辽宁省', '2108', '营口市', '210882', '大石桥市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1139 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2109', '21', '00,21', '阜新市', '21' + , '辽宁省', '2109', '阜新市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1140 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210902', '2109', '00,21,2109', '海州区', '21' + , '辽宁省', '2109', '阜新市', '210902', '海州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1141 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330111', '3301', '00,33,3301', '富阳区', '33' + , '浙江省', '3301', '杭州市', '330111', '富阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1142 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330112', '3301', '00,33,3301', '临安区', '33' + , '浙江省', '3301', '杭州市', '330112', '临安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1143 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330122', '3301', '00,33,3301', '桐庐县', '33' + , '浙江省', '3301', '杭州市', '330122', '桐庐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1144 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330127', '3301', '00,33,3301', '淳安县', '33' + , '浙江省', '3301', '杭州市', '330127', '淳安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1145 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330182', '3301', '00,33,3301', '建德市', '33' + , '浙江省', '3301', '杭州市', '330182', '建德市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1146 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3302', '33', '00,33', '宁波市', '33' + , '浙江省', '3302', '宁波市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1147 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330203', '3302', '00,33,3302', '海曙区', '33' + , '浙江省', '3302', '宁波市', '330203', '海曙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1148 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330205', '3302', '00,33,3302', '江北区', '33' + , '浙江省', '3302', '宁波市', '330205', '江北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1149 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330206', '3302', '00,33,3302', '北仑区', '33' + , '浙江省', '3302', '宁波市', '330206', '北仑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1150 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330211', '3302', '00,33,3302', '镇海区', '33' + , '浙江省', '3302', '宁波市', '330211', '镇海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1151 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330212', '3302', '00,33,3302', '鄞州区', '33' + , '浙江省', '3302', '宁波市', '330212', '鄞州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1152 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330213', '3302', '00,33,3302', '奉化区', '33' + , '浙江省', '3302', '宁波市', '330213', '奉化区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1153 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330225', '3302', '00,33,3302', '象山县', '33' + , '浙江省', '3302', '宁波市', '330225', '象山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1154 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330226', '3302', '00,33,3302', '宁海县', '33' + , '浙江省', '3302', '宁波市', '330226', '宁海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1155 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330281', '3302', '00,33,3302', '余姚市', '33' + , '浙江省', '3302', '宁波市', '330281', '余姚市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1156 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330282', '3302', '00,33,3302', '慈溪市', '33' + , '浙江省', '3302', '宁波市', '330282', '慈溪市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1157 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3303', '33', '00,33', '温州市', '33' + , '浙江省', '3303', '温州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1158 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330302', '3303', '00,33,3303', '鹿城区', '33' + , '浙江省', '3303', '温州市', '330302', '鹿城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1159 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330303', '3303', '00,33,3303', '龙湾区', '33' + , '浙江省', '3303', '温州市', '330303', '龙湾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1160 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330304', '3303', '00,33,3303', '瓯海区', '33' + , '浙江省', '3303', '温州市', '330304', '瓯海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1161 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330305', '3303', '00,33,3303', '洞头区', '33' + , '浙江省', '3303', '温州市', '330305', '洞头区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1162 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330324', '3303', '00,33,3303', '永嘉县', '33' + , '浙江省', '3303', '温州市', '330324', '永嘉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1163 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330326', '3303', '00,33,3303', '平阳县', '33' + , '浙江省', '3303', '温州市', '330326', '平阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1164 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330327', '3303', '00,33,3303', '苍南县', '33' + , '浙江省', '3303', '温州市', '330327', '苍南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1165 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330328', '3303', '00,33,3303', '文成县', '33' + , '浙江省', '3303', '温州市', '330328', '文成县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1166 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330329', '3303', '00,33,3303', '泰顺县', '33' + , '浙江省', '3303', '温州市', '330329', '泰顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1167 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330381', '3303', '00,33,3303', '瑞安市', '33' + , '浙江省', '3303', '温州市', '330381', '瑞安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1168 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330382', '3303', '00,33,3303', '乐清市', '33' + , '浙江省', '3303', '温州市', '330382', '乐清市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1169 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330383', '3303', '00,33,3303', '龙港市', '33' + , '浙江省', '3303', '温州市', '330383', '龙港市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1170 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3304', '33', '00,33', '嘉兴市', '33' + , '浙江省', '3304', '嘉兴市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1171 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330402', '3304', '00,33,3304', '南湖区', '33' + , '浙江省', '3304', '嘉兴市', '330402', '南湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1172 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330411', '3304', '00,33,3304', '秀洲区', '33' + , '浙江省', '3304', '嘉兴市', '330411', '秀洲区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1173 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330421', '3304', '00,33,3304', '嘉善县', '33' + , '浙江省', '3304', '嘉兴市', '330421', '嘉善县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1174 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330424', '3304', '00,33,3304', '海盐县', '33' + , '浙江省', '3304', '嘉兴市', '330424', '海盐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1175 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330481', '3304', '00,33,3304', '海宁市', '33' + , '浙江省', '3304', '嘉兴市', '330481', '海宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1176 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330482', '3304', '00,33,3304', '平湖市', '33' + , '浙江省', '3304', '嘉兴市', '330482', '平湖市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1177 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330483', '3304', '00,33,3304', '桐乡市', '33' + , '浙江省', '3304', '嘉兴市', '330483', '桐乡市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1178 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3305', '33', '00,33', '湖州市', '33' + , '浙江省', '3305', '湖州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1179 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330502', '3305', '00,33,3305', '吴兴区', '33' + , '浙江省', '3305', '湖州市', '330502', '吴兴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1180 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330503', '3305', '00,33,3305', '南浔区', '33' + , '浙江省', '3305', '湖州市', '330503', '南浔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1181 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330521', '3305', '00,33,3305', '德清县', '33' + , '浙江省', '3305', '湖州市', '330521', '德清县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1182 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330522', '3305', '00,33,3305', '长兴县', '33' + , '浙江省', '3305', '湖州市', '330522', '长兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1183 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330523', '3305', '00,33,3305', '安吉县', '33' + , '浙江省', '3305', '湖州市', '330523', '安吉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1184 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3306', '33', '00,33', '绍兴市', '33' + , '浙江省', '3306', '绍兴市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1185 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330602', '3306', '00,33,3306', '越城区', '33' + , '浙江省', '3306', '绍兴市', '330602', '越城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1186 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330603', '3306', '00,33,3306', '柯桥区', '33' + , '浙江省', '3306', '绍兴市', '330603', '柯桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1187 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330604', '3306', '00,33,3306', '上虞区', '33' + , '浙江省', '3306', '绍兴市', '330604', '上虞区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1188 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330624', '3306', '00,33,3306', '新昌县', '33' + , '浙江省', '3306', '绍兴市', '330624', '新昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1189 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330681', '3306', '00,33,3306', '诸暨市', '33' + , '浙江省', '3306', '绍兴市', '330681', '诸暨市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1190 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330683', '3306', '00,33,3306', '嵊州市', '33' + , '浙江省', '3306', '绍兴市', '330683', '嵊州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1191 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3307', '33', '00,33', '金华市', '33' + , '浙江省', '3307', '金华市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1192 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330702', '3307', '00,33,3307', '婺城区', '33' + , '浙江省', '3307', '金华市', '330702', '婺城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1193 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330703', '3307', '00,33,3307', '金东区', '33' + , '浙江省', '3307', '金华市', '330703', '金东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1194 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330723', '3307', '00,33,3307', '武义县', '33' + , '浙江省', '3307', '金华市', '330723', '武义县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1195 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330726', '3307', '00,33,3307', '浦江县', '33' + , '浙江省', '3307', '金华市', '330726', '浦江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1196 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330727', '3307', '00,33,3307', '磐安县', '33' + , '浙江省', '3307', '金华市', '330727', '磐安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1197 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330781', '3307', '00,33,3307', '兰溪市', '33' + , '浙江省', '3307', '金华市', '330781', '兰溪市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1198 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330782', '3307', '00,33,3307', '义乌市', '33' + , '浙江省', '3307', '金华市', '330782', '义乌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1199 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330783', '3307', '00,33,3307', '东阳市', '33' + , '浙江省', '3307', '金华市', '330783', '东阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1200 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330784', '3307', '00,33,3307', '永康市', '33' + , '浙江省', '3307', '金华市', '330784', '永康市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1201 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3308', '33', '00,33', '衢州市', '33' + , '浙江省', '3308', '衢州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1202 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330802', '3308', '00,33,3308', '柯城区', '33' + , '浙江省', '3308', '衢州市', '330802', '柯城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1203 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330803', '3308', '00,33,3308', '衢江区', '33' + , '浙江省', '3308', '衢州市', '330803', '衢江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1204 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330822', '3308', '00,33,3308', '常山县', '33' + , '浙江省', '3308', '衢州市', '330822', '常山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1205 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330824', '3308', '00,33,3308', '开化县', '33' + , '浙江省', '3308', '衢州市', '330824', '开化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1206 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330825', '3308', '00,33,3308', '龙游县', '33' + , '浙江省', '3308', '衢州市', '330825', '龙游县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1207 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330881', '3308', '00,33,3308', '江山市', '33' + , '浙江省', '3308', '衢州市', '330881', '江山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1208 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3309', '33', '00,33', '舟山市', '33' + , '浙江省', '3309', '舟山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1209 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330902', '3309', '00,33,3309', '定海区', '33' + , '浙江省', '3309', '舟山市', '330902', '定海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1210 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330903', '3309', '00,33,3309', '普陀区', '33' + , '浙江省', '3309', '舟山市', '330903', '普陀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1211 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330921', '3309', '00,33,3309', '岱山县', '33' + , '浙江省', '3309', '舟山市', '330921', '岱山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1212 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330922', '3309', '00,33,3309', '嵊泗县', '33' + , '浙江省', '3309', '舟山市', '330922', '嵊泗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1213 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3310', '33', '00,33', '台州市', '33' + , '浙江省', '3310', '台州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1214 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2108', '21', '00,21', '营口市', '21' + , '辽宁省', '2108', '营口市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1215 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210802', '2108', '00,21,2108', '站前区', '21' + , '辽宁省', '2108', '营口市', '210802', '站前区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1216 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210803', '2108', '00,21,2108', '西市区', '21' + , '辽宁省', '2108', '营口市', '210803', '西市区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1217 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210804', '2108', '00,21,2108', '鲅鱼圈区', '21' + , '辽宁省', '2108', '营口市', '210804', '鲅鱼圈区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1218 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210811', '2108', '00,21,2108', '老边区', '21' + , '辽宁省', '2108', '营口市', '210811', '老边区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1219 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370683', '3706', '00,37,3706', '莱州市', '37' + , '山东省', '3706', '烟台市', '370683', '莱州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1220 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220503', '2205', '00,22,2205', '二道江区', '22' + , '吉林省', '2205', '通化市', '220503', '二道江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1221 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220521', '2205', '00,22,2205', '通化县', '22' + , '吉林省', '2205', '通化市', '220521', '通化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1222 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220523', '2205', '00,22,2205', '辉南县', '22' + , '吉林省', '2205', '通化市', '220523', '辉南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1223 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220524', '2205', '00,22,2205', '柳河县', '22' + , '吉林省', '2205', '通化市', '220524', '柳河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1224 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220581', '2205', '00,22,2205', '梅河口市', '22' + , '吉林省', '2205', '通化市', '220581', '梅河口市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1225 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220582', '2205', '00,22,2205', '集安市', '22' + , '吉林省', '2205', '通化市', '220582', '集安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1226 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2206', '22', '00,22', '白山市', '22' + , '吉林省', '2206', '白山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1227 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220602', '2206', '00,22,2206', '浑江区', '22' + , '吉林省', '2206', '白山市', '220602', '浑江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1228 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220605', '2206', '00,22,2206', '江源区', '22' + , '吉林省', '2206', '白山市', '220605', '江源区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1229 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220621', '2206', '00,22,2206', '抚松县', '22' + , '吉林省', '2206', '白山市', '220621', '抚松县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1230 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220622', '2206', '00,22,2206', '靖宇县', '22' + , '吉林省', '2206', '白山市', '220622', '靖宇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1231 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220623', '2206', '00,22,2206', '长白朝鲜族自治县', '22' + , '吉林省', '2206', '白山市', '220623', '长白朝鲜族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1232 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220681', '2206', '00,22,2206', '临江市', '22' + , '吉林省', '2206', '白山市', '220681', '临江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1233 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2207', '22', '00,22', '松原市', '22' + , '吉林省', '2207', '松原市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1234 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220702', '2207', '00,22,2207', '宁江区', '22' + , '吉林省', '2207', '松原市', '220702', '宁江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1235 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220721', '2207', '00,22,2207', '前郭尔罗斯蒙古族自治县', '22' + , '吉林省', '2207', '松原市', '220721', '前郭尔罗斯蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1236 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220722', '2207', '00,22,2207', '长岭县', '22' + , '吉林省', '2207', '松原市', '220722', '长岭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1237 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220723', '2207', '00,22,2207', '乾安县', '22' + , '吉林省', '2207', '松原市', '220723', '乾安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1238 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220781', '2207', '00,22,2207', '扶余市', '22' + , '吉林省', '2207', '松原市', '220781', '扶余市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1239 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2208', '22', '00,22', '白城市', '22' + , '吉林省', '2208', '白城市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1240 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220802', '2208', '00,22,2208', '洮北区', '22' + , '吉林省', '2208', '白城市', '220802', '洮北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1241 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220821', '2208', '00,22,2208', '镇赉县', '22' + , '吉林省', '2208', '白城市', '220821', '镇赉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1242 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220822', '2208', '00,22,2208', '通榆县', '22' + , '吉林省', '2208', '白城市', '220822', '通榆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1243 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220881', '2208', '00,22,2208', '洮南市', '22' + , '吉林省', '2208', '白城市', '220881', '洮南市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1244 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220882', '2208', '00,22,2208', '大安市', '22' + , '吉林省', '2208', '白城市', '220882', '大安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1245 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2224', '22', '00,22', '延边朝鲜族自治州', '22' + , '吉林省', '2224', '延边朝鲜族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1246 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222401', '2224', '00,22,2224', '延吉市', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222401', '延吉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1247 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222402', '2224', '00,22,2224', '图们市', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222402', '图们市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1248 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222403', '2224', '00,22,2224', '敦化市', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222403', '敦化市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1249 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222404', '2224', '00,22,2224', '珲春市', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222404', '珲春市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1250 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222405', '2224', '00,22,2224', '龙井市', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222405', '龙井市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1251 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222406', '2224', '00,22,2224', '和龙市', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222406', '和龙市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1252 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222424', '2224', '00,22,2224', '汪清县', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222424', '汪清县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1253 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('222426', '2224', '00,22,2224', '安图县', '22' + , '吉林省', '2224', '延边朝鲜族自治州', '222426', '安图县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1254 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('23', '00', '00', '黑龙江省', '23' + , '黑龙江省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1255 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2301', '23', '00,23', '哈尔滨市', '23' + , '黑龙江省', '2301', '哈尔滨市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1256 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230102', '2301', '00,23,2301', '道里区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230102', '道里区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1257 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230103', '2301', '00,23,2301', '南岗区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230103', '南岗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1258 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230104', '2301', '00,23,2301', '道外区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230104', '道外区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1259 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230108', '2301', '00,23,2301', '平房区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230108', '平房区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1260 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230109', '2301', '00,23,2301', '松北区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230109', '松北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1261 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230110', '2301', '00,23,2301', '香坊区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230110', '香坊区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1262 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230111', '2301', '00,23,2301', '呼兰区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230111', '呼兰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1263 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230112', '2301', '00,23,2301', '阿城区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230112', '阿城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1264 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230113', '2301', '00,23,2301', '双城区', '23' + , '黑龙江省', '2301', '哈尔滨市', '230113', '双城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1265 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230123', '2301', '00,23,2301', '依兰县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230123', '依兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1266 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230124', '2301', '00,23,2301', '方正县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230124', '方正县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1267 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230125', '2301', '00,23,2301', '宾县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230125', '宾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1268 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230126', '2301', '00,23,2301', '巴彦县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230126', '巴彦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1269 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230127', '2301', '00,23,2301', '木兰县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230127', '木兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1270 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230128', '2301', '00,23,2301', '通河县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230128', '通河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1271 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230129', '2301', '00,23,2301', '延寿县', '23' + , '黑龙江省', '2301', '哈尔滨市', '230129', '延寿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1272 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230183', '2301', '00,23,2301', '尚志市', '23' + , '黑龙江省', '2301', '哈尔滨市', '230183', '尚志市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1273 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230184', '2301', '00,23,2301', '五常市', '23' + , '黑龙江省', '2301', '哈尔滨市', '230184', '五常市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1274 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2302', '23', '00,23', '齐齐哈尔市', '23' + , '黑龙江省', '2302', '齐齐哈尔市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1275 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230202', '2302', '00,23,2302', '龙沙区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230202', '龙沙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1276 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230203', '2302', '00,23,2302', '建华区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230203', '建华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1277 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230204', '2302', '00,23,2302', '铁锋区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230204', '铁锋区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1278 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230205', '2302', '00,23,2302', '昂昂溪区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230205', '昂昂溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1279 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230206', '2302', '00,23,2302', '富拉尔基区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230206', '富拉尔基区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1280 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230207', '2302', '00,23,2302', '碾子山区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230207', '碾子山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1281 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230208', '2302', '00,23,2302', '梅里斯达斡尔族区', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230208', '梅里斯达斡尔族区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1282 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230221', '2302', '00,23,2302', '龙江县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230221', '龙江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1283 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230223', '2302', '00,23,2302', '依安县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230223', '依安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1284 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230224', '2302', '00,23,2302', '泰来县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230224', '泰来县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1285 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230225', '2302', '00,23,2302', '甘南县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230225', '甘南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1286 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230227', '2302', '00,23,2302', '富裕县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230227', '富裕县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1287 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230229', '2302', '00,23,2302', '克山县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230229', '克山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1288 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230230', '2302', '00,23,2302', '克东县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230230', '克东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1289 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230231', '2302', '00,23,2302', '拜泉县', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230231', '拜泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1290 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230281', '2302', '00,23,2302', '讷河市', '23' + , '黑龙江省', '2302', '齐齐哈尔市', '230281', '讷河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1291 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2303', '23', '00,23', '鸡西市', '23' + , '黑龙江省', '2303', '鸡西市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1292 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230302', '2303', '00,23,2303', '鸡冠区', '23' + , '黑龙江省', '2303', '鸡西市', '230302', '鸡冠区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1293 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150525', '1505', '00,15,1505', '奈曼旗', '15' + , '内蒙古自治区', '1505', '通辽市', '150525', '奈曼旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1294 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150526', '1505', '00,15,1505', '扎鲁特旗', '15' + , '内蒙古自治区', '1505', '通辽市', '150526', '扎鲁特旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1295 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150581', '1505', '00,15,1505', '霍林郭勒市', '15' + , '内蒙古自治区', '1505', '通辽市', '150581', '霍林郭勒市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1296 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1506', '15', '00,15', '鄂尔多斯市', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1297 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150602', '1506', '00,15,1506', '东胜区', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150602', '东胜区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1298 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150603', '1506', '00,15,1506', '康巴什区', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150603', '康巴什区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1299 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150621', '1506', '00,15,1506', '达拉特旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150621', '达拉特旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1300 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150622', '1506', '00,15,1506', '准格尔旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150622', '准格尔旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1301 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150623', '1506', '00,15,1506', '鄂托克前旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150623', '鄂托克前旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1302 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150624', '1506', '00,15,1506', '鄂托克旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150624', '鄂托克旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1303 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150625', '1506', '00,15,1506', '杭锦旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150625', '杭锦旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1304 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150626', '1506', '00,15,1506', '乌审旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150626', '乌审旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1305 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150627', '1506', '00,15,1506', '伊金霍洛旗', '15' + , '内蒙古自治区', '1506', '鄂尔多斯市', '150627', '伊金霍洛旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1306 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1507', '15', '00,15', '呼伦贝尔市', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1307 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150702', '1507', '00,15,1507', '海拉尔区', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150702', '海拉尔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1308 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150703', '1507', '00,15,1507', '扎赉诺尔区', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150703', '扎赉诺尔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1309 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150721', '1507', '00,15,1507', '阿荣旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150721', '阿荣旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1310 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150722', '1507', '00,15,1507', '莫力达瓦达斡尔族自治旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150722', '莫力达瓦达斡尔族自治旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1311 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150723', '1507', '00,15,1507', '鄂伦春自治旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150723', '鄂伦春自治旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1312 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150724', '1507', '00,15,1507', '鄂温克族自治旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150724', '鄂温克族自治旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1313 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150725', '1507', '00,15,1507', '陈巴尔虎旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150725', '陈巴尔虎旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1314 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150726', '1507', '00,15,1507', '新巴尔虎左旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150726', '新巴尔虎左旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1315 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150727', '1507', '00,15,1507', '新巴尔虎右旗', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150727', '新巴尔虎右旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1316 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150781', '1507', '00,15,1507', '满洲里市', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150781', '满洲里市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1317 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150782', '1507', '00,15,1507', '牙克石市', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150782', '牙克石市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1318 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150783', '1507', '00,15,1507', '扎兰屯市', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150783', '扎兰屯市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1319 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150784', '1507', '00,15,1507', '额尔古纳市', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150784', '额尔古纳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1320 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150785', '1507', '00,15,1507', '根河市', '15' + , '内蒙古自治区', '1507', '呼伦贝尔市', '150785', '根河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1321 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1508', '15', '00,15', '巴彦淖尔市', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1322 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150802', '1508', '00,15,1508', '临河区', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150802', '临河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1323 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150821', '1508', '00,15,1508', '五原县', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150821', '五原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1324 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150822', '1508', '00,15,1508', '磴口县', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150822', '磴口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1325 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150823', '1508', '00,15,1508', '乌拉特前旗', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150823', '乌拉特前旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1326 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150824', '1508', '00,15,1508', '乌拉特中旗', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150824', '乌拉特中旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1327 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150825', '1508', '00,15,1508', '乌拉特后旗', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150825', '乌拉特后旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1328 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150826', '1508', '00,15,1508', '杭锦后旗', '15' + , '内蒙古自治区', '1508', '巴彦淖尔市', '150826', '杭锦后旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1329 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1509', '15', '00,15', '乌兰察布市', '15' + , '内蒙古自治区', '1509', '乌兰察布市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1330 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150902', '1509', '00,15,1509', '集宁区', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150902', '集宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1331 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150921', '1509', '00,15,1509', '卓资县', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150921', '卓资县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1332 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150922', '1509', '00,15,1509', '化德县', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150922', '化德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1333 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150923', '1509', '00,15,1509', '商都县', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150923', '商都县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1334 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150924', '1509', '00,15,1509', '兴和县', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150924', '兴和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1335 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150925', '1509', '00,15,1509', '凉城县', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150925', '凉城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1336 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150926', '1509', '00,15,1509', '察哈尔右翼前旗', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150926', '察哈尔右翼前旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1337 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150927', '1509', '00,15,1509', '察哈尔右翼中旗', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150927', '察哈尔右翼中旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1338 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150928', '1509', '00,15,1509', '察哈尔右翼后旗', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150928', '察哈尔右翼后旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1339 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150929', '1509', '00,15,1509', '四子王旗', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150929', '四子王旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1340 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150981', '1509', '00,15,1509', '丰镇市', '15' + , '内蒙古自治区', '1509', '乌兰察布市', '150981', '丰镇市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1341 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1522', '15', '00,15', '兴安盟', '15' + , '内蒙古自治区', '1522', '兴安盟', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1342 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152201', '1522', '00,15,1522', '乌兰浩特市', '15' + , '内蒙古自治区', '1522', '兴安盟', '152201', '乌兰浩特市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1343 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152202', '1522', '00,15,1522', '阿尔山市', '15' + , '内蒙古自治区', '1522', '兴安盟', '152202', '阿尔山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1344 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152221', '1522', '00,15,1522', '科尔沁右翼前旗', '15' + , '内蒙古自治区', '1522', '兴安盟', '152221', '科尔沁右翼前旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1345 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152222', '1522', '00,15,1522', '科尔沁右翼中旗', '15' + , '内蒙古自治区', '1522', '兴安盟', '152222', '科尔沁右翼中旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1346 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152223', '1522', '00,15,1522', '扎赉特旗', '15' + , '内蒙古自治区', '1522', '兴安盟', '152223', '扎赉特旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1347 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152224', '1522', '00,15,1522', '突泉县', '15' + , '内蒙古自治区', '1522', '兴安盟', '152224', '突泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1348 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('1525', '15', '00,15', '锡林郭勒盟', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1349 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211421', '2114', '00,21,2114', '绥中县', '21' + , '辽宁省', '2114', '葫芦岛市', '211421', '绥中县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1350 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152501', '1525', '00,15,1525', '二连浩特市', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152501', '二连浩特市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1351 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152502', '1525', '00,15,1525', '锡林浩特市', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152502', '锡林浩特市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1352 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152522', '1525', '00,15,1525', '阿巴嘎旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152522', '阿巴嘎旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1353 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152523', '1525', '00,15,1525', '苏尼特左旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152523', '苏尼特左旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1354 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370681', '3706', '00,37,3706', '龙口市', '37' + , '山东省', '3706', '烟台市', '370681', '龙口市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1355 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370682', '3706', '00,37,3706', '莱阳市', '37' + , '山东省', '3706', '烟台市', '370682', '莱阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1356 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330106', '3301', '00,33,3301', '西湖区', '33' + , '浙江省', '3301', '杭州市', '330106', '西湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1357 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231086', '2310', '00,23,2310', '东宁市', '23' + , '黑龙江省', '2310', '牡丹江市', '231086', '东宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1358 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2311', '23', '00,23', '黑河市', '23' + , '黑龙江省', '2311', '黑河市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1359 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231102', '2311', '00,23,2311', '爱辉区', '23' + , '黑龙江省', '2311', '黑河市', '231102', '爱辉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1360 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231123', '2311', '00,23,2311', '逊克县', '23' + , '黑龙江省', '2311', '黑河市', '231123', '逊克县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1361 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231124', '2311', '00,23,2311', '孙吴县', '23' + , '黑龙江省', '2311', '黑河市', '231124', '孙吴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1362 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231181', '2311', '00,23,2311', '北安市', '23' + , '黑龙江省', '2311', '黑河市', '231181', '北安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1363 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231182', '2311', '00,23,2311', '五大连池市', '23' + , '黑龙江省', '2311', '黑河市', '231182', '五大连池市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1364 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231183', '2311', '00,23,2311', '嫩江市', '23' + , '黑龙江省', '2311', '黑河市', '231183', '嫩江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1365 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2312', '23', '00,23', '绥化市', '23' + , '黑龙江省', '2312', '绥化市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1366 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231202', '2312', '00,23,2312', '北林区', '23' + , '黑龙江省', '2312', '绥化市', '231202', '北林区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1367 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231221', '2312', '00,23,2312', '望奎县', '23' + , '黑龙江省', '2312', '绥化市', '231221', '望奎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1368 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231222', '2312', '00,23,2312', '兰西县', '23' + , '黑龙江省', '2312', '绥化市', '231222', '兰西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1369 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231223', '2312', '00,23,2312', '青冈县', '23' + , '黑龙江省', '2312', '绥化市', '231223', '青冈县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1370 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231224', '2312', '00,23,2312', '庆安县', '23' + , '黑龙江省', '2312', '绥化市', '231224', '庆安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1371 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231225', '2312', '00,23,2312', '明水县', '23' + , '黑龙江省', '2312', '绥化市', '231225', '明水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1372 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231226', '2312', '00,23,2312', '绥棱县', '23' + , '黑龙江省', '2312', '绥化市', '231226', '绥棱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1373 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231281', '2312', '00,23,2312', '安达市', '23' + , '黑龙江省', '2312', '绥化市', '231281', '安达市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1374 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231282', '2312', '00,23,2312', '肇东市', '23' + , '黑龙江省', '2312', '绥化市', '231282', '肇东市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1375 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231283', '2312', '00,23,2312', '海伦市', '23' + , '黑龙江省', '2312', '绥化市', '231283', '海伦市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1376 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2327', '23', '00,23', '大兴安岭地区', '23' + , '黑龙江省', '2327', '大兴安岭地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1377 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('232701', '2327', '00,23,2327', '漠河市', '23' + , '黑龙江省', '2327', '大兴安岭地区', '232701', '漠河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1378 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('232721', '2327', '00,23,2327', '呼玛县', '23' + , '黑龙江省', '2327', '大兴安岭地区', '232721', '呼玛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1379 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('232722', '2327', '00,23,2327', '塔河县', '23' + , '黑龙江省', '2327', '大兴安岭地区', '232722', '塔河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1380 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('31', '00', '00', '上海市', '31' + , '上海市', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1381 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3101', '31', '00,31', '上海市', '31' + , '上海市', '3101', '上海市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1382 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310101', '3101', '00,31,3101', '黄浦区', '31' + , '上海市', '3101', '上海市', '310101', '黄浦区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1383 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310104', '3101', '00,31,3101', '徐汇区', '31' + , '上海市', '3101', '上海市', '310104', '徐汇区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1384 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310105', '3101', '00,31,3101', '长宁区', '31' + , '上海市', '3101', '上海市', '310105', '长宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1385 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310106', '3101', '00,31,3101', '静安区', '31' + , '上海市', '3101', '上海市', '310106', '静安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1386 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310107', '3101', '00,31,3101', '普陀区', '31' + , '上海市', '3101', '上海市', '310107', '普陀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1387 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310109', '3101', '00,31,3101', '虹口区', '31' + , '上海市', '3101', '上海市', '310109', '虹口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1388 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310110', '3101', '00,31,3101', '杨浦区', '31' + , '上海市', '3101', '上海市', '310110', '杨浦区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1389 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310112', '3101', '00,31,3101', '闵行区', '31' + , '上海市', '3101', '上海市', '310112', '闵行区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1390 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310113', '3101', '00,31,3101', '宝山区', '31' + , '上海市', '3101', '上海市', '310113', '宝山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1391 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310114', '3101', '00,31,3101', '嘉定区', '31' + , '上海市', '3101', '上海市', '310114', '嘉定区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1392 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310115', '3101', '00,31,3101', '浦东新区', '31' + , '上海市', '3101', '上海市', '310115', '浦东新区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1393 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310116', '3101', '00,31,3101', '金山区', '31' + , '上海市', '3101', '上海市', '310116', '金山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1394 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310117', '3101', '00,31,3101', '松江区', '31' + , '上海市', '3101', '上海市', '310117', '松江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1395 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310118', '3101', '00,31,3101', '青浦区', '31' + , '上海市', '3101', '上海市', '310118', '青浦区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1396 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310120', '3101', '00,31,3101', '奉贤区', '31' + , '上海市', '3101', '上海市', '310120', '奉贤区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1397 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('310151', '3101', '00,31,3101', '崇明区', '31' + , '上海市', '3101', '上海市', '310151', '崇明区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1398 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('32', '00', '00', '江苏省', '32' + , '江苏省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1399 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3201', '32', '00,32', '南京市', '32' + , '江苏省', '3201', '南京市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1400 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320102', '3201', '00,32,3201', '玄武区', '32' + , '江苏省', '3201', '南京市', '320102', '玄武区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1401 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320104', '3201', '00,32,3201', '秦淮区', '32' + , '江苏省', '3201', '南京市', '320104', '秦淮区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1402 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320105', '3201', '00,32,3201', '建邺区', '32' + , '江苏省', '3201', '南京市', '320105', '建邺区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1403 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320106', '3201', '00,32,3201', '鼓楼区', '32' + , '江苏省', '3201', '南京市', '320106', '鼓楼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1404 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320111', '3201', '00,32,3201', '浦口区', '32' + , '江苏省', '3201', '南京市', '320111', '浦口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1405 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320113', '3201', '00,32,3201', '栖霞区', '32' + , '江苏省', '3201', '南京市', '320113', '栖霞区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1406 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320114', '3201', '00,32,3201', '雨花台区', '32' + , '江苏省', '3201', '南京市', '320114', '雨花台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1407 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320115', '3201', '00,32,3201', '江宁区', '32' + , '江苏省', '3201', '南京市', '320115', '江宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1408 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320116', '3201', '00,32,3201', '六合区', '32' + , '江苏省', '3201', '南京市', '320116', '六合区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1409 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320117', '3201', '00,32,3201', '溧水区', '32' + , '江苏省', '3201', '南京市', '320117', '溧水区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1410 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320118', '3201', '00,32,3201', '高淳区', '32' + , '江苏省', '3201', '南京市', '320118', '高淳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1411 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3202', '32', '00,32', '无锡市', '32' + , '江苏省', '3202', '无锡市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1412 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320205', '3202', '00,32,3202', '锡山区', '32' + , '江苏省', '3202', '无锡市', '320205', '锡山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1413 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320206', '3202', '00,32,3202', '惠山区', '32' + , '江苏省', '3202', '无锡市', '320206', '惠山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1414 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320211', '3202', '00,32,3202', '滨湖区', '32' + , '江苏省', '3202', '无锡市', '320211', '滨湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1415 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320213', '3202', '00,32,3202', '梁溪区', '32' + , '江苏省', '3202', '无锡市', '320213', '梁溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1416 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320214', '3202', '00,32,3202', '新吴区', '32' + , '江苏省', '3202', '无锡市', '320214', '新吴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1417 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320281', '3202', '00,32,3202', '江阴市', '32' + , '江苏省', '3202', '无锡市', '320281', '江阴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1418 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320282', '3202', '00,32,3202', '宜兴市', '32' + , '江苏省', '3202', '无锡市', '320282', '宜兴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1419 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3203', '32', '00,32', '徐州市', '32' + , '江苏省', '3203', '徐州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1420 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320302', '3203', '00,32,3203', '鼓楼区', '32' + , '江苏省', '3203', '徐州市', '320302', '鼓楼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1421 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320303', '3203', '00,32,3203', '云龙区', '32' + , '江苏省', '3203', '徐州市', '320303', '云龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1422 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320305', '3203', '00,32,3203', '贾汪区', '32' + , '江苏省', '3203', '徐州市', '320305', '贾汪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1423 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320311', '3203', '00,32,3203', '泉山区', '32' + , '江苏省', '3203', '徐州市', '320311', '泉山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1424 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320312', '3203', '00,32,3203', '铜山区', '32' + , '江苏省', '3203', '徐州市', '320312', '铜山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1425 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320321', '3203', '00,32,3203', '丰县', '32' + , '江苏省', '3203', '徐州市', '320321', '丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1426 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320322', '3203', '00,32,3203', '沛县', '32' + , '江苏省', '3203', '徐州市', '320322', '沛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1427 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320324', '3203', '00,32,3203', '睢宁县', '32' + , '江苏省', '3203', '徐州市', '320324', '睢宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1428 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320381', '3203', '00,32,3203', '新沂市', '32' + , '江苏省', '3203', '徐州市', '320381', '新沂市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1429 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320382', '3203', '00,32,3203', '邳州市', '32' + , '江苏省', '3203', '徐州市', '320382', '邳州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1430 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3204', '32', '00,32', '常州市', '32' + , '江苏省', '3204', '常州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1431 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320402', '3204', '00,32,3204', '天宁区', '32' + , '江苏省', '3204', '常州市', '320402', '天宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1432 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150522', '1505', '00,15,1505', '科尔沁左翼后旗', '15' + , '内蒙古自治区', '1505', '通辽市', '150522', '科尔沁左翼后旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1433 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150523', '1505', '00,15,1505', '开鲁县', '15' + , '内蒙古自治区', '1505', '通辽市', '150523', '开鲁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1434 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152527', '1525', '00,15,1525', '太仆寺旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152527', '太仆寺旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1435 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152528', '1525', '00,15,1525', '镶黄旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152528', '镶黄旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1436 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152529', '1525', '00,15,1525', '正镶白旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152529', '正镶白旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1437 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210881', '2108', '00,21,2108', '盖州市', '21' + , '辽宁省', '2108', '营口市', '210881', '盖州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1438 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230303', '2303', '00,23,2303', '恒山区', '23' + , '黑龙江省', '2303', '鸡西市', '230303', '恒山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1439 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230304', '2303', '00,23,2303', '滴道区', '23' + , '黑龙江省', '2303', '鸡西市', '230304', '滴道区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1440 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230305', '2303', '00,23,2303', '梨树区', '23' + , '黑龙江省', '2303', '鸡西市', '230305', '梨树区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1441 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230306', '2303', '00,23,2303', '城子河区', '23' + , '黑龙江省', '2303', '鸡西市', '230306', '城子河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1442 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230307', '2303', '00,23,2303', '麻山区', '23' + , '黑龙江省', '2303', '鸡西市', '230307', '麻山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1443 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230321', '2303', '00,23,2303', '鸡东县', '23' + , '黑龙江省', '2303', '鸡西市', '230321', '鸡东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1444 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230381', '2303', '00,23,2303', '虎林市', '23' + , '黑龙江省', '2303', '鸡西市', '230381', '虎林市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1445 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230382', '2303', '00,23,2303', '密山市', '23' + , '黑龙江省', '2303', '鸡西市', '230382', '密山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1446 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2304', '23', '00,23', '鹤岗市', '23' + , '黑龙江省', '2304', '鹤岗市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1447 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230402', '2304', '00,23,2304', '向阳区', '23' + , '黑龙江省', '2304', '鹤岗市', '230402', '向阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1448 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230403', '2304', '00,23,2304', '工农区', '23' + , '黑龙江省', '2304', '鹤岗市', '230403', '工农区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1449 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230404', '2304', '00,23,2304', '南山区', '23' + , '黑龙江省', '2304', '鹤岗市', '230404', '南山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1450 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230405', '2304', '00,23,2304', '兴安区', '23' + , '黑龙江省', '2304', '鹤岗市', '230405', '兴安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1451 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230406', '2304', '00,23,2304', '东山区', '23' + , '黑龙江省', '2304', '鹤岗市', '230406', '东山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1452 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230407', '2304', '00,23,2304', '兴山区', '23' + , '黑龙江省', '2304', '鹤岗市', '230407', '兴山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1453 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230421', '2304', '00,23,2304', '萝北县', '23' + , '黑龙江省', '2304', '鹤岗市', '230421', '萝北县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1454 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230422', '2304', '00,23,2304', '绥滨县', '23' + , '黑龙江省', '2304', '鹤岗市', '230422', '绥滨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1455 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2305', '23', '00,23', '双鸭山市', '23' + , '黑龙江省', '2305', '双鸭山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1456 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230502', '2305', '00,23,2305', '尖山区', '23' + , '黑龙江省', '2305', '双鸭山市', '230502', '尖山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1457 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230503', '2305', '00,23,2305', '岭东区', '23' + , '黑龙江省', '2305', '双鸭山市', '230503', '岭东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1458 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230505', '2305', '00,23,2305', '四方台区', '23' + , '黑龙江省', '2305', '双鸭山市', '230505', '四方台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1459 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230506', '2305', '00,23,2305', '宝山区', '23' + , '黑龙江省', '2305', '双鸭山市', '230506', '宝山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1460 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230521', '2305', '00,23,2305', '集贤县', '23' + , '黑龙江省', '2305', '双鸭山市', '230521', '集贤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1461 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230522', '2305', '00,23,2305', '友谊县', '23' + , '黑龙江省', '2305', '双鸭山市', '230522', '友谊县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1462 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230523', '2305', '00,23,2305', '宝清县', '23' + , '黑龙江省', '2305', '双鸭山市', '230523', '宝清县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1463 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230524', '2305', '00,23,2305', '饶河县', '23' + , '黑龙江省', '2305', '双鸭山市', '230524', '饶河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1464 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2306', '23', '00,23', '大庆市', '23' + , '黑龙江省', '2306', '大庆市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1465 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230602', '2306', '00,23,2306', '萨尔图区', '23' + , '黑龙江省', '2306', '大庆市', '230602', '萨尔图区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1466 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230603', '2306', '00,23,2306', '龙凤区', '23' + , '黑龙江省', '2306', '大庆市', '230603', '龙凤区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1467 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230604', '2306', '00,23,2306', '让胡路区', '23' + , '黑龙江省', '2306', '大庆市', '230604', '让胡路区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1468 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230605', '2306', '00,23,2306', '红岗区', '23' + , '黑龙江省', '2306', '大庆市', '230605', '红岗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1469 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230606', '2306', '00,23,2306', '大同区', '23' + , '黑龙江省', '2306', '大庆市', '230606', '大同区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1470 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230621', '2306', '00,23,2306', '肇州县', '23' + , '黑龙江省', '2306', '大庆市', '230621', '肇州县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1471 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230622', '2306', '00,23,2306', '肇源县', '23' + , '黑龙江省', '2306', '大庆市', '230622', '肇源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1472 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230623', '2306', '00,23,2306', '林甸县', '23' + , '黑龙江省', '2306', '大庆市', '230623', '林甸县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1473 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230624', '2306', '00,23,2306', '杜尔伯特蒙古族自治县', '23' + , '黑龙江省', '2306', '大庆市', '230624', '杜尔伯特蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1474 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2307', '23', '00,23', '伊春市', '23' + , '黑龙江省', '2307', '伊春市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1475 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230717', '2307', '00,23,2307', '伊美区', '23' + , '黑龙江省', '2307', '伊春市', '230717', '伊美区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1476 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230718', '2307', '00,23,2307', '乌翠区', '23' + , '黑龙江省', '2307', '伊春市', '230718', '乌翠区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1477 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230719', '2307', '00,23,2307', '友好区', '23' + , '黑龙江省', '2307', '伊春市', '230719', '友好区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1478 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230722', '2307', '00,23,2307', '嘉荫县', '23' + , '黑龙江省', '2307', '伊春市', '230722', '嘉荫县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1479 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230723', '2307', '00,23,2307', '汤旺县', '23' + , '黑龙江省', '2307', '伊春市', '230723', '汤旺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1480 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230724', '2307', '00,23,2307', '丰林县', '23' + , '黑龙江省', '2307', '伊春市', '230724', '丰林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1481 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230725', '2307', '00,23,2307', '大箐山县', '23' + , '黑龙江省', '2307', '伊春市', '230725', '大箐山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1482 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230726', '2307', '00,23,2307', '南岔县', '23' + , '黑龙江省', '2307', '伊春市', '230726', '南岔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1483 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230751', '2307', '00,23,2307', '金林区', '23' + , '黑龙江省', '2307', '伊春市', '230751', '金林区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1484 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230781', '2307', '00,23,2307', '铁力市', '23' + , '黑龙江省', '2307', '伊春市', '230781', '铁力市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1485 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2308', '23', '00,23', '佳木斯市', '23' + , '黑龙江省', '2308', '佳木斯市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1486 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230803', '2308', '00,23,2308', '向阳区', '23' + , '黑龙江省', '2308', '佳木斯市', '230803', '向阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1487 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230804', '2308', '00,23,2308', '前进区', '23' + , '黑龙江省', '2308', '佳木斯市', '230804', '前进区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1488 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230805', '2308', '00,23,2308', '东风区', '23' + , '黑龙江省', '2308', '佳木斯市', '230805', '东风区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1489 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230811', '2308', '00,23,2308', '郊区', '23' + , '黑龙江省', '2308', '佳木斯市', '230811', '郊区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1490 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230822', '2308', '00,23,2308', '桦南县', '23' + , '黑龙江省', '2308', '佳木斯市', '230822', '桦南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1491 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230826', '2308', '00,23,2308', '桦川县', '23' + , '黑龙江省', '2308', '佳木斯市', '230826', '桦川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1492 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230828', '2308', '00,23,2308', '汤原县', '23' + , '黑龙江省', '2308', '佳木斯市', '230828', '汤原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1493 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230881', '2308', '00,23,2308', '同江市', '23' + , '黑龙江省', '2308', '佳木斯市', '230881', '同江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1494 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230882', '2308', '00,23,2308', '富锦市', '23' + , '黑龙江省', '2308', '佳木斯市', '230882', '富锦市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1495 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230883', '2308', '00,23,2308', '抚远市', '23' + , '黑龙江省', '2308', '佳木斯市', '230883', '抚远市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1496 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2309', '23', '00,23', '七台河市', '23' + , '黑龙江省', '2309', '七台河市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1497 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230902', '2309', '00,23,2309', '新兴区', '23' + , '黑龙江省', '2309', '七台河市', '230902', '新兴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1498 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230903', '2309', '00,23,2309', '桃山区', '23' + , '黑龙江省', '2309', '七台河市', '230903', '桃山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1499 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230904', '2309', '00,23,2309', '茄子河区', '23' + , '黑龙江省', '2309', '七台河市', '230904', '茄子河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1500 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('230921', '2309', '00,23,2309', '勃利县', '23' + , '黑龙江省', '2309', '七台河市', '230921', '勃利县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1501 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2310', '23', '00,23', '牡丹江市', '23' + , '黑龙江省', '2310', '牡丹江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1502 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231002', '2310', '00,23,2310', '东安区', '23' + , '黑龙江省', '2310', '牡丹江市', '231002', '东安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1503 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231003', '2310', '00,23,2310', '阳明区', '23' + , '黑龙江省', '2310', '牡丹江市', '231003', '阳明区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1504 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231004', '2310', '00,23,2310', '爱民区', '23' + , '黑龙江省', '2310', '牡丹江市', '231004', '爱民区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1505 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231005', '2310', '00,23,2310', '西安区', '23' + , '黑龙江省', '2310', '牡丹江市', '231005', '西安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1506 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231025', '2310', '00,23,2310', '林口县', '23' + , '黑龙江省', '2310', '牡丹江市', '231025', '林口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1507 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231081', '2310', '00,23,2310', '绥芬河市', '23' + , '黑龙江省', '2310', '牡丹江市', '231081', '绥芬河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1508 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231083', '2310', '00,23,2310', '海林市', '23' + , '黑龙江省', '2310', '牡丹江市', '231083', '海林市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1509 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('231084', '2310', '00,23,2310', '宁安市', '23' + , '黑龙江省', '2310', '牡丹江市', '231084', '宁安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1510 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152525', '1525', '00,15,1525', '东乌珠穆沁旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152525', '东乌珠穆沁旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1511 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('152526', '1525', '00,15,1525', '西乌珠穆沁旗', '15' + , '内蒙古自治区', '1525', '锡林郭勒盟', '152526', '西乌珠穆沁旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1512 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210904', '2109', '00,21,2109', '太平区', '21' + , '辽宁省', '2109', '阜新市', '210904', '太平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1513 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210905', '2109', '00,21,2109', '清河门区', '21' + , '辽宁省', '2109', '阜新市', '210905', '清河门区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1514 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210911', '2109', '00,21,2109', '细河区', '21' + , '辽宁省', '2109', '阜新市', '210911', '细河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1515 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210921', '2109', '00,21,2109', '阜新蒙古族自治县', '21' + , '辽宁省', '2109', '阜新市', '210921', '阜新蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1516 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210922', '2109', '00,21,2109', '彰武县', '21' + , '辽宁省', '2109', '阜新市', '210922', '彰武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1517 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2110', '21', '00,21', '辽阳市', '21' + , '辽宁省', '2110', '辽阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1518 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211002', '2110', '00,21,2110', '白塔区', '21' + , '辽宁省', '2110', '辽阳市', '211002', '白塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1519 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211003', '2110', '00,21,2110', '文圣区', '21' + , '辽宁省', '2110', '辽阳市', '211003', '文圣区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1520 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211004', '2110', '00,21,2110', '宏伟区', '21' + , '辽宁省', '2110', '辽阳市', '211004', '宏伟区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1521 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211005', '2110', '00,21,2110', '弓长岭区', '21' + , '辽宁省', '2110', '辽阳市', '211005', '弓长岭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1522 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211011', '2110', '00,21,2110', '太子河区', '21' + , '辽宁省', '2110', '辽阳市', '211011', '太子河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1523 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211021', '2110', '00,21,2110', '辽阳县', '21' + , '辽宁省', '2110', '辽阳市', '211021', '辽阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1524 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211081', '2110', '00,21,2110', '灯塔市', '21' + , '辽宁省', '2110', '辽阳市', '211081', '灯塔市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1525 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2111', '21', '00,21', '盘锦市', '21' + , '辽宁省', '2111', '盘锦市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1526 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211102', '2111', '00,21,2111', '双台子区', '21' + , '辽宁省', '2111', '盘锦市', '211102', '双台子区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1527 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211103', '2111', '00,21,2111', '兴隆台区', '21' + , '辽宁省', '2111', '盘锦市', '211103', '兴隆台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1528 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211104', '2111', '00,21,2111', '大洼区', '21' + , '辽宁省', '2111', '盘锦市', '211104', '大洼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1529 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211122', '2111', '00,21,2111', '盘山县', '21' + , '辽宁省', '2111', '盘锦市', '211122', '盘山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1530 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2112', '21', '00,21', '铁岭市', '21' + , '辽宁省', '2112', '铁岭市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1531 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211202', '2112', '00,21,2112', '银州区', '21' + , '辽宁省', '2112', '铁岭市', '211202', '银州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1532 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211204', '2112', '00,21,2112', '清河区', '21' + , '辽宁省', '2112', '铁岭市', '211204', '清河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1533 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211221', '2112', '00,21,2112', '铁岭县', '21' + , '辽宁省', '2112', '铁岭市', '211221', '铁岭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1534 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211223', '2112', '00,21,2112', '西丰县', '21' + , '辽宁省', '2112', '铁岭市', '211223', '西丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1535 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211224', '2112', '00,21,2112', '昌图县', '21' + , '辽宁省', '2112', '铁岭市', '211224', '昌图县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1536 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211281', '2112', '00,21,2112', '调兵山市', '21' + , '辽宁省', '2112', '铁岭市', '211281', '调兵山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1537 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211282', '2112', '00,21,2112', '开原市', '21' + , '辽宁省', '2112', '铁岭市', '211282', '开原市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1538 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2113', '21', '00,21', '朝阳市', '21' + , '辽宁省', '2113', '朝阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1539 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211302', '2113', '00,21,2113', '双塔区', '21' + , '辽宁省', '2113', '朝阳市', '211302', '双塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1540 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211303', '2113', '00,21,2113', '龙城区', '21' + , '辽宁省', '2113', '朝阳市', '211303', '龙城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1541 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211321', '2113', '00,21,2113', '朝阳县', '21' + , '辽宁省', '2113', '朝阳市', '211321', '朝阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1542 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211322', '2113', '00,21,2113', '建平县', '21' + , '辽宁省', '2113', '朝阳市', '211322', '建平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1543 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211324', '2113', '00,21,2113', '喀喇沁左翼蒙古族自治县', '21' + , '辽宁省', '2113', '朝阳市', '211324', '喀喇沁左翼蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1544 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211381', '2113', '00,21,2113', '北票市', '21' + , '辽宁省', '2113', '朝阳市', '211381', '北票市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1545 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211382', '2113', '00,21,2113', '凌源市', '21' + , '辽宁省', '2113', '朝阳市', '211382', '凌源市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1546 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2114', '21', '00,21', '葫芦岛市', '21' + , '辽宁省', '2114', '葫芦岛市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1547 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211402', '2114', '00,21,2114', '连山区', '21' + , '辽宁省', '2114', '葫芦岛市', '211402', '连山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1548 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211403', '2114', '00,21,2114', '龙港区', '21' + , '辽宁省', '2114', '葫芦岛市', '211403', '龙港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1549 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211404', '2114', '00,21,2114', '南票区', '21' + , '辽宁省', '2114', '葫芦岛市', '211404', '南票区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1550 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211422', '2114', '00,21,2114', '建昌县', '21' + , '辽宁省', '2114', '葫芦岛市', '211422', '建昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1551 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('211481', '2114', '00,21,2114', '兴城市', '21' + , '辽宁省', '2114', '葫芦岛市', '211481', '兴城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1552 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('22', '00', '00', '吉林省', '22' + , '吉林省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1553 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2201', '22', '00,22', '长春市', '22' + , '吉林省', '2201', '长春市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1554 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220102', '2201', '00,22,2201', '南关区', '22' + , '吉林省', '2201', '长春市', '220102', '南关区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1555 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220103', '2201', '00,22,2201', '宽城区', '22' + , '吉林省', '2201', '长春市', '220103', '宽城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1556 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220104', '2201', '00,22,2201', '朝阳区', '22' + , '吉林省', '2201', '长春市', '220104', '朝阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1557 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220105', '2201', '00,22,2201', '二道区', '22' + , '吉林省', '2201', '长春市', '220105', '二道区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1558 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220106', '2201', '00,22,2201', '绿园区', '22' + , '吉林省', '2201', '长春市', '220106', '绿园区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1559 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220112', '2201', '00,22,2201', '双阳区', '22' + , '吉林省', '2201', '长春市', '220112', '双阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1560 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220113', '2201', '00,22,2201', '九台区', '22' + , '吉林省', '2201', '长春市', '220113', '九台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1561 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220122', '2201', '00,22,2201', '农安县', '22' + , '吉林省', '2201', '长春市', '220122', '农安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1562 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220182', '2201', '00,22,2201', '榆树市', '22' + , '吉林省', '2201', '长春市', '220182', '榆树市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1563 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220183', '2201', '00,22,2201', '德惠市', '22' + , '吉林省', '2201', '长春市', '220183', '德惠市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1564 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2202', '22', '00,22', '吉林市', '22' + , '吉林省', '2202', '吉林市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1565 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220202', '2202', '00,22,2202', '昌邑区', '22' + , '吉林省', '2202', '吉林市', '220202', '昌邑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1566 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220203', '2202', '00,22,2202', '龙潭区', '22' + , '吉林省', '2202', '吉林市', '220203', '龙潭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1567 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220204', '2202', '00,22,2202', '船营区', '22' + , '吉林省', '2202', '吉林市', '220204', '船营区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1568 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220211', '2202', '00,22,2202', '丰满区', '22' + , '吉林省', '2202', '吉林市', '220211', '丰满区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1569 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220221', '2202', '00,22,2202', '永吉县', '22' + , '吉林省', '2202', '吉林市', '220221', '永吉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1570 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220281', '2202', '00,22,2202', '蛟河市', '22' + , '吉林省', '2202', '吉林市', '220281', '蛟河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1571 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220282', '2202', '00,22,2202', '桦甸市', '22' + , '吉林省', '2202', '吉林市', '220282', '桦甸市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1572 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220283', '2202', '00,22,2202', '舒兰市', '22' + , '吉林省', '2202', '吉林市', '220283', '舒兰市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1573 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220284', '2202', '00,22,2202', '磐石市', '22' + , '吉林省', '2202', '吉林市', '220284', '磐石市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1574 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2203', '22', '00,22', '四平市', '22' + , '吉林省', '2203', '四平市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1575 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220302', '2203', '00,22,2203', '铁西区', '22' + , '吉林省', '2203', '四平市', '220302', '铁西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1576 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220303', '2203', '00,22,2203', '铁东区', '22' + , '吉林省', '2203', '四平市', '220303', '铁东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1577 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220322', '2203', '00,22,2203', '梨树县', '22' + , '吉林省', '2203', '四平市', '220322', '梨树县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1578 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220323', '2203', '00,22,2203', '伊通满族自治县', '22' + , '吉林省', '2203', '四平市', '220323', '伊通满族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1579 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220381', '2203', '00,22,2203', '公主岭市', '22' + , '吉林省', '2203', '四平市', '220381', '公主岭市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1580 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220382', '2203', '00,22,2203', '双辽市', '22' + , '吉林省', '2203', '四平市', '220382', '双辽市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1581 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('2204', '22', '00,22', '辽源市', '22' + , '吉林省', '2204', '辽源市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1582 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220402', '2204', '00,22,2204', '龙山区', '22' + , '吉林省', '2204', '辽源市', '220402', '龙山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1583 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220403', '2204', '00,22,2204', '西安区', '22' + , '吉林省', '2204', '辽源市', '220403', '西安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1584 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220421', '2204', '00,22,2204', '东丰县', '22' + , '吉林省', '2204', '辽源市', '220421', '东丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1585 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('220422', '2204', '00,22,2204', '东辽县', '22' + , '吉林省', '2204', '辽源市', '220422', '东辽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1586 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320411', '3204', '00,32,3204', '新北区', '32' + , '江苏省', '3204', '常州市', '320411', '新北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1587 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320412', '3204', '00,32,3204', '武进区', '32' + , '江苏省', '3204', '常州市', '320412', '武进区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1588 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('320413', '3204', '00,32,3204', '金坛区', '32' + , '江苏省', '3204', '常州市', '320413', '金坛区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1589 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441427', '4414', '00,44,4414', '蕉岭县', '44' + , '广东省', '4414', '梅州市', '441427', '蕉岭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1590 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360121', '3601', '00,36,3601', '南昌县', '36' + , '江西省', '3601', '南昌市', '360121', '南昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1591 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331022', '3310', '00,33,3310', '三门县', '33' + , '浙江省', '3310', '台州市', '331022', '三门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1592 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331023', '3310', '00,33,3310', '天台县', '33' + , '浙江省', '3310', '台州市', '331023', '天台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1593 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331024', '3310', '00,33,3310', '仙居县', '33' + , '浙江省', '3310', '台州市', '331024', '仙居县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1594 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331081', '3310', '00,33,3310', '温岭市', '33' + , '浙江省', '3310', '台州市', '331081', '温岭市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1595 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331082', '3310', '00,33,3310', '临海市', '33' + , '浙江省', '3310', '台州市', '331082', '临海市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1596 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331083', '3310', '00,33,3310', '玉环市', '33' + , '浙江省', '3310', '台州市', '331083', '玉环市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1597 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3311', '33', '00,33', '丽水市', '33' + , '浙江省', '3311', '丽水市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1598 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331102', '3311', '00,33,3311', '莲都区', '33' + , '浙江省', '3311', '丽水市', '331102', '莲都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1599 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331121', '3311', '00,33,3311', '青田县', '33' + , '浙江省', '3311', '丽水市', '331121', '青田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1600 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331122', '3311', '00,33,3311', '缙云县', '33' + , '浙江省', '3311', '丽水市', '331122', '缙云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1601 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331123', '3311', '00,33,3311', '遂昌县', '33' + , '浙江省', '3311', '丽水市', '331123', '遂昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1602 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331124', '3311', '00,33,3311', '松阳县', '33' + , '浙江省', '3311', '丽水市', '331124', '松阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1603 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331125', '3311', '00,33,3311', '云和县', '33' + , '浙江省', '3311', '丽水市', '331125', '云和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1604 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331126', '3311', '00,33,3311', '庆元县', '33' + , '浙江省', '3311', '丽水市', '331126', '庆元县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1605 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331127', '3311', '00,33,3311', '景宁畲族自治县', '33' + , '浙江省', '3311', '丽水市', '331127', '景宁畲族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1606 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331181', '3311', '00,33,3311', '龙泉市', '33' + , '浙江省', '3311', '丽水市', '331181', '龙泉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1607 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('34', '00', '00', '安徽省', '34' + , '安徽省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1608 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3401', '34', '00,34', '合肥市', '34' + , '安徽省', '3401', '合肥市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1609 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340102', '3401', '00,34,3401', '瑶海区', '34' + , '安徽省', '3401', '合肥市', '340102', '瑶海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1610 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340103', '3401', '00,34,3401', '庐阳区', '34' + , '安徽省', '3401', '合肥市', '340103', '庐阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1611 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340104', '3401', '00,34,3401', '蜀山区', '34' + , '安徽省', '3401', '合肥市', '340104', '蜀山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1612 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340111', '3401', '00,34,3401', '包河区', '34' + , '安徽省', '3401', '合肥市', '340111', '包河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1613 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340121', '3401', '00,34,3401', '长丰县', '34' + , '安徽省', '3401', '合肥市', '340121', '长丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1614 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340122', '3401', '00,34,3401', '肥东县', '34' + , '安徽省', '3401', '合肥市', '340122', '肥东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1615 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340123', '3401', '00,34,3401', '肥西县', '34' + , '安徽省', '3401', '合肥市', '340123', '肥西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1616 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340124', '3401', '00,34,3401', '庐江县', '34' + , '安徽省', '3401', '合肥市', '340124', '庐江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1617 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340181', '3401', '00,34,3401', '巢湖市', '34' + , '安徽省', '3401', '合肥市', '340181', '巢湖市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1618 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3402', '34', '00,34', '芜湖市', '34' + , '安徽省', '3402', '芜湖市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1619 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340202', '3402', '00,34,3402', '镜湖区', '34' + , '安徽省', '3402', '芜湖市', '340202', '镜湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1620 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340203', '3402', '00,34,3402', '弋江区', '34' + , '安徽省', '3402', '芜湖市', '340203', '弋江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1621 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340207', '3402', '00,34,3402', '鸠江区', '34' + , '安徽省', '3402', '芜湖市', '340207', '鸠江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1622 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340208', '3402', '00,34,3402', '三山区', '34' + , '安徽省', '3402', '芜湖市', '340208', '三山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1623 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340221', '3402', '00,34,3402', '芜湖县', '34' + , '安徽省', '3402', '芜湖市', '340221', '芜湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1624 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340222', '3402', '00,34,3402', '繁昌县', '34' + , '安徽省', '3402', '芜湖市', '340222', '繁昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1625 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340223', '3402', '00,34,3402', '南陵县', '34' + , '安徽省', '3402', '芜湖市', '340223', '南陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1626 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340281', '3402', '00,34,3402', '无为市', '34' + , '安徽省', '3402', '芜湖市', '340281', '无为市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1627 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340302', '3403', '00,34,3403', '龙子湖区', '34' + , '安徽省', '3403', '蚌埠市', '340302', '龙子湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1628 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340303', '3403', '00,34,3403', '蚌山区', '34' + , '安徽省', '3403', '蚌埠市', '340303', '蚌山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1629 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340304', '3403', '00,34,3403', '禹会区', '34' + , '安徽省', '3403', '蚌埠市', '340304', '禹会区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1630 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340311', '3403', '00,34,3403', '淮上区', '34' + , '安徽省', '3403', '蚌埠市', '340311', '淮上区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1631 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340321', '3403', '00,34,3403', '怀远县', '34' + , '安徽省', '3403', '蚌埠市', '340321', '怀远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1632 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340322', '3403', '00,34,3403', '五河县', '34' + , '安徽省', '3403', '蚌埠市', '340322', '五河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1633 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340323', '3403', '00,34,3403', '固镇县', '34' + , '安徽省', '3403', '蚌埠市', '340323', '固镇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1634 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3404', '34', '00,34', '淮南市', '34' + , '安徽省', '3404', '淮南市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1635 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340402', '3404', '00,34,3404', '大通区', '34' + , '安徽省', '3404', '淮南市', '340402', '大通区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1636 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340403', '3404', '00,34,3404', '田家庵区', '34' + , '安徽省', '3404', '淮南市', '340403', '田家庵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1637 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340404', '3404', '00,34,3404', '谢家集区', '34' + , '安徽省', '3404', '淮南市', '340404', '谢家集区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1638 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340405', '3404', '00,34,3404', '八公山区', '34' + , '安徽省', '3404', '淮南市', '340405', '八公山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1639 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340406', '3404', '00,34,3404', '潘集区', '34' + , '安徽省', '3404', '淮南市', '340406', '潘集区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1640 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340421', '3404', '00,34,3404', '凤台县', '34' + , '安徽省', '3404', '淮南市', '340421', '凤台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1641 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340422', '3404', '00,34,3404', '寿县', '34' + , '安徽省', '3404', '淮南市', '340422', '寿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1642 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3405', '34', '00,34', '马鞍山市', '34' + , '安徽省', '3405', '马鞍山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1643 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340503', '3405', '00,34,3405', '花山区', '34' + , '安徽省', '3405', '马鞍山市', '340503', '花山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1644 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340504', '3405', '00,34,3405', '雨山区', '34' + , '安徽省', '3405', '马鞍山市', '340504', '雨山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1645 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340506', '3405', '00,34,3405', '博望区', '34' + , '安徽省', '3405', '马鞍山市', '340506', '博望区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1646 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340521', '3405', '00,34,3405', '当涂县', '34' + , '安徽省', '3405', '马鞍山市', '340521', '当涂县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1647 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340522', '3405', '00,34,3405', '含山县', '34' + , '安徽省', '3405', '马鞍山市', '340522', '含山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1648 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340523', '3405', '00,34,3405', '和县', '34' + , '安徽省', '3405', '马鞍山市', '340523', '和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1649 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3406', '34', '00,34', '淮北市', '34' + , '安徽省', '3406', '淮北市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1650 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340602', '3406', '00,34,3406', '杜集区', '34' + , '安徽省', '3406', '淮北市', '340602', '杜集区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1651 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340603', '3406', '00,34,3406', '相山区', '34' + , '安徽省', '3406', '淮北市', '340603', '相山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1652 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340604', '3406', '00,34,3406', '烈山区', '34' + , '安徽省', '3406', '淮北市', '340604', '烈山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1653 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340621', '3406', '00,34,3406', '濉溪县', '34' + , '安徽省', '3406', '淮北市', '340621', '濉溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1654 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3407', '34', '00,34', '铜陵市', '34' + , '安徽省', '3407', '铜陵市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1655 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340705', '3407', '00,34,3407', '铜官区', '34' + , '安徽省', '3407', '铜陵市', '340705', '铜官区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1656 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340706', '3407', '00,34,3407', '义安区', '34' + , '安徽省', '3407', '铜陵市', '340706', '义安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1657 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340711', '3407', '00,34,3407', '郊区', '34' + , '安徽省', '3407', '铜陵市', '340711', '郊区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1658 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340722', '3407', '00,34,3407', '枞阳县', '34' + , '安徽省', '3407', '铜陵市', '340722', '枞阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1659 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3408', '34', '00,34', '安庆市', '34' + , '安徽省', '3408', '安庆市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1660 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340802', '3408', '00,34,3408', '迎江区', '34' + , '安徽省', '3408', '安庆市', '340802', '迎江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1661 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340803', '3408', '00,34,3408', '大观区', '34' + , '安徽省', '3408', '安庆市', '340803', '大观区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1662 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340811', '3408', '00,34,3408', '宜秀区', '34' + , '安徽省', '3408', '安庆市', '340811', '宜秀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1663 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340822', '3408', '00,34,3408', '怀宁县', '34' + , '安徽省', '3408', '安庆市', '340822', '怀宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1664 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340825', '3408', '00,34,3408', '太湖县', '34' + , '安徽省', '3408', '安庆市', '340825', '太湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1665 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340826', '3408', '00,34,3408', '宿松县', '34' + , '安徽省', '3408', '安庆市', '340826', '宿松县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1666 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340827', '3408', '00,34,3408', '望江县', '34' + , '安徽省', '3408', '安庆市', '340827', '望江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1667 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340828', '3408', '00,34,3408', '岳西县', '34' + , '安徽省', '3408', '安庆市', '340828', '岳西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1668 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340881', '3408', '00,34,3408', '桐城市', '34' + , '安徽省', '3408', '安庆市', '340881', '桐城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1669 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('210903', '2109', '00,21,2109', '新邱区', '21' + , '辽宁省', '2109', '阜新市', '210903', '新邱区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1670 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360123', '3601', '00,36,3601', '安义县', '36' + , '江西省', '3601', '南昌市', '360123', '安义县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1671 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360124', '3601', '00,36,3601', '进贤县', '36' + , '江西省', '3601', '南昌市', '360124', '进贤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1672 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3602', '36', '00,36', '景德镇市', '36' + , '江西省', '3602', '景德镇市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1673 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360202', '3602', '00,36,3602', '昌江区', '36' + , '江西省', '3602', '景德镇市', '360202', '昌江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1674 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360203', '3602', '00,36,3602', '珠山区', '36' + , '江西省', '3602', '景德镇市', '360203', '珠山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1675 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360222', '3602', '00,36,3602', '浮梁县', '36' + , '江西省', '3602', '景德镇市', '360222', '浮梁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1676 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360281', '3602', '00,36,3602', '乐平市', '36' + , '江西省', '3602', '景德镇市', '360281', '乐平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1677 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3603', '36', '00,36', '萍乡市', '36' + , '江西省', '3603', '萍乡市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1678 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360302', '3603', '00,36,3603', '安源区', '36' + , '江西省', '3603', '萍乡市', '360302', '安源区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1679 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360313', '3603', '00,36,3603', '湘东区', '36' + , '江西省', '3603', '萍乡市', '360313', '湘东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1680 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360321', '3603', '00,36,3603', '莲花县', '36' + , '江西省', '3603', '萍乡市', '360321', '莲花县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1681 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360322', '3603', '00,36,3603', '上栗县', '36' + , '江西省', '3603', '萍乡市', '360322', '上栗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1682 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360323', '3603', '00,36,3603', '芦溪县', '36' + , '江西省', '3603', '萍乡市', '360323', '芦溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1683 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3604', '36', '00,36', '九江市', '36' + , '江西省', '3604', '九江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1684 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360402', '3604', '00,36,3604', '濂溪区', '36' + , '江西省', '3604', '九江市', '360402', '濂溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1685 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360403', '3604', '00,36,3604', '浔阳区', '36' + , '江西省', '3604', '九江市', '360403', '浔阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1686 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360404', '3604', '00,36,3604', '柴桑区', '36' + , '江西省', '3604', '九江市', '360404', '柴桑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1687 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360423', '3604', '00,36,3604', '武宁县', '36' + , '江西省', '3604', '九江市', '360423', '武宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1688 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360424', '3604', '00,36,3604', '修水县', '36' + , '江西省', '3604', '九江市', '360424', '修水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1689 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360425', '3604', '00,36,3604', '永修县', '36' + , '江西省', '3604', '九江市', '360425', '永修县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1690 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360426', '3604', '00,36,3604', '德安县', '36' + , '江西省', '3604', '九江市', '360426', '德安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1691 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360428', '3604', '00,36,3604', '都昌县', '36' + , '江西省', '3604', '九江市', '360428', '都昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1692 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360429', '3604', '00,36,3604', '湖口县', '36' + , '江西省', '3604', '九江市', '360429', '湖口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1693 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360430', '3604', '00,36,3604', '彭泽县', '36' + , '江西省', '3604', '九江市', '360430', '彭泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1694 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360481', '3604', '00,36,3604', '瑞昌市', '36' + , '江西省', '3604', '九江市', '360481', '瑞昌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1695 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360482', '3604', '00,36,3604', '共青城市', '36' + , '江西省', '3604', '九江市', '360482', '共青城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1696 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360483', '3604', '00,36,3604', '庐山市', '36' + , '江西省', '3604', '九江市', '360483', '庐山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1697 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3605', '36', '00,36', '新余市', '36' + , '江西省', '3605', '新余市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1698 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360502', '3605', '00,36,3605', '渝水区', '36' + , '江西省', '3605', '新余市', '360502', '渝水区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1699 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360521', '3605', '00,36,3605', '分宜县', '36' + , '江西省', '3605', '新余市', '360521', '分宜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1700 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3606', '36', '00,36', '鹰潭市', '36' + , '江西省', '3606', '鹰潭市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1701 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360602', '3606', '00,36,3606', '月湖区', '36' + , '江西省', '3606', '鹰潭市', '360602', '月湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1702 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360603', '3606', '00,36,3606', '余江区', '36' + , '江西省', '3606', '鹰潭市', '360603', '余江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1703 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360681', '3606', '00,36,3606', '贵溪市', '36' + , '江西省', '3606', '鹰潭市', '360681', '贵溪市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1704 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3607', '36', '00,36', '赣州市', '36' + , '江西省', '3607', '赣州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1705 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360702', '3607', '00,36,3607', '章贡区', '36' + , '江西省', '3607', '赣州市', '360702', '章贡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1706 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360703', '3607', '00,36,3607', '南康区', '36' + , '江西省', '3607', '赣州市', '360703', '南康区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1707 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360704', '3607', '00,36,3607', '赣县区', '36' + , '江西省', '3607', '赣州市', '360704', '赣县区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1708 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360722', '3607', '00,36,3607', '信丰县', '36' + , '江西省', '3607', '赣州市', '360722', '信丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1709 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360723', '3607', '00,36,3607', '大余县', '36' + , '江西省', '3607', '赣州市', '360723', '大余县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1710 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360724', '3607', '00,36,3607', '上犹县', '36' + , '江西省', '3607', '赣州市', '360724', '上犹县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1711 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360725', '3607', '00,36,3607', '崇义县', '36' + , '江西省', '3607', '赣州市', '360725', '崇义县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1712 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360726', '3607', '00,36,3607', '安远县', '36' + , '江西省', '3607', '赣州市', '360726', '安远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1713 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360727', '3607', '00,36,3607', '龙南县', '36' + , '江西省', '3607', '赣州市', '360727', '龙南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1714 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360728', '3607', '00,36,3607', '定南县', '36' + , '江西省', '3607', '赣州市', '360728', '定南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1715 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360729', '3607', '00,36,3607', '全南县', '36' + , '江西省', '3607', '赣州市', '360729', '全南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1716 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360730', '3607', '00,36,3607', '宁都县', '36' + , '江西省', '3607', '赣州市', '360730', '宁都县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1717 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360731', '3607', '00,36,3607', '于都县', '36' + , '江西省', '3607', '赣州市', '360731', '于都县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1718 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360732', '3607', '00,36,3607', '兴国县', '36' + , '江西省', '3607', '赣州市', '360732', '兴国县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1719 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360733', '3607', '00,36,3607', '会昌县', '36' + , '江西省', '3607', '赣州市', '360733', '会昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1720 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360734', '3607', '00,36,3607', '寻乌县', '36' + , '江西省', '3607', '赣州市', '360734', '寻乌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1721 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360735', '3607', '00,36,3607', '石城县', '36' + , '江西省', '3607', '赣州市', '360735', '石城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1722 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360781', '3607', '00,36,3607', '瑞金市', '36' + , '江西省', '3607', '赣州市', '360781', '瑞金市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1723 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3608', '36', '00,36', '吉安市', '36' + , '江西省', '3608', '吉安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1724 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360802', '3608', '00,36,3608', '吉州区', '36' + , '江西省', '3608', '吉安市', '360802', '吉州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1725 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360803', '3608', '00,36,3608', '青原区', '36' + , '江西省', '3608', '吉安市', '360803', '青原区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1726 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360821', '3608', '00,36,3608', '吉安县', '36' + , '江西省', '3608', '吉安市', '360821', '吉安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1727 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360822', '3608', '00,36,3608', '吉水县', '36' + , '江西省', '3608', '吉安市', '360822', '吉水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1728 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360823', '3608', '00,36,3608', '峡江县', '36' + , '江西省', '3608', '吉安市', '360823', '峡江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1729 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360824', '3608', '00,36,3608', '新干县', '36' + , '江西省', '3608', '吉安市', '360824', '新干县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1730 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360825', '3608', '00,36,3608', '永丰县', '36' + , '江西省', '3608', '吉安市', '360825', '永丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1731 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360826', '3608', '00,36,3608', '泰和县', '36' + , '江西省', '3608', '吉安市', '360826', '泰和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1732 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360827', '3608', '00,36,3608', '遂川县', '36' + , '江西省', '3608', '吉安市', '360827', '遂川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1733 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360828', '3608', '00,36,3608', '万安县', '36' + , '江西省', '3608', '吉安市', '360828', '万安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1734 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360829', '3608', '00,36,3608', '安福县', '36' + , '江西省', '3608', '吉安市', '360829', '安福县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1735 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360830', '3608', '00,36,3608', '永新县', '36' + , '江西省', '3608', '吉安市', '360830', '永新县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1736 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360881', '3608', '00,36,3608', '井冈山市', '36' + , '江西省', '3608', '吉安市', '360881', '井冈山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1737 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3609', '36', '00,36', '宜春市', '36' + , '江西省', '3609', '宜春市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1738 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360902', '3609', '00,36,3609', '袁州区', '36' + , '江西省', '3609', '宜春市', '360902', '袁州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1739 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360921', '3609', '00,36,3609', '奉新县', '36' + , '江西省', '3609', '宜春市', '360921', '奉新县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1740 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360922', '3609', '00,36,3609', '万载县', '36' + , '江西省', '3609', '宜春市', '360922', '万载县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1741 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360923', '3609', '00,36,3609', '上高县', '36' + , '江西省', '3609', '宜春市', '360923', '上高县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1742 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360924', '3609', '00,36,3609', '宜丰县', '36' + , '江西省', '3609', '宜春市', '360924', '宜丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1743 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360925', '3609', '00,36,3609', '靖安县', '36' + , '江西省', '3609', '宜春市', '360925', '靖安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1744 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360926', '3609', '00,36,3609', '铜鼓县', '36' + , '江西省', '3609', '宜春市', '360926', '铜鼓县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1745 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360981', '3609', '00,36,3609', '丰城市', '36' + , '江西省', '3609', '宜春市', '360981', '丰城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1746 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360982', '3609', '00,36,3609', '樟树市', '36' + , '江西省', '3609', '宜春市', '360982', '樟树市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1747 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360983', '3609', '00,36,3609', '高安市', '36' + , '江西省', '3609', '宜春市', '360983', '高安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1748 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3610', '36', '00,36', '抚州市', '36' + , '江西省', '3610', '抚州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1749 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361002', '3610', '00,36,3610', '临川区', '36' + , '江西省', '3610', '抚州市', '361002', '临川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1750 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('150524', '1505', '00,15,1505', '库伦旗', '15' + , '内蒙古自治区', '1505', '通辽市', '150524', '库伦旗' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1751 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341002', '3410', '00,34,3410', '屯溪区', '34' + , '安徽省', '3410', '黄山市', '341002', '屯溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1752 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341003', '3410', '00,34,3410', '黄山区', '34' + , '安徽省', '3410', '黄山市', '341003', '黄山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1753 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341004', '3410', '00,34,3410', '徽州区', '34' + , '安徽省', '3410', '黄山市', '341004', '徽州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1754 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341021', '3410', '00,34,3410', '歙县', '34' + , '安徽省', '3410', '黄山市', '341021', '歙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1755 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341022', '3410', '00,34,3410', '休宁县', '34' + , '安徽省', '3410', '黄山市', '341022', '休宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1756 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341023', '3410', '00,34,3410', '黟县', '34' + , '安徽省', '3410', '黄山市', '341023', '黟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1757 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341024', '3410', '00,34,3410', '祁门县', '34' + , '安徽省', '3410', '黄山市', '341024', '祁门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1758 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3411', '34', '00,34', '滁州市', '34' + , '安徽省', '3411', '滁州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1759 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341102', '3411', '00,34,3411', '琅琊区', '34' + , '安徽省', '3411', '滁州市', '341102', '琅琊区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1760 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341103', '3411', '00,34,3411', '南谯区', '34' + , '安徽省', '3411', '滁州市', '341103', '南谯区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1761 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341122', '3411', '00,34,3411', '来安县', '34' + , '安徽省', '3411', '滁州市', '341122', '来安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1762 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341124', '3411', '00,34,3411', '全椒县', '34' + , '安徽省', '3411', '滁州市', '341124', '全椒县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1763 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341125', '3411', '00,34,3411', '定远县', '34' + , '安徽省', '3411', '滁州市', '341125', '定远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1764 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341126', '3411', '00,34,3411', '凤阳县', '34' + , '安徽省', '3411', '滁州市', '341126', '凤阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1765 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341181', '3411', '00,34,3411', '天长市', '34' + , '安徽省', '3411', '滁州市', '341181', '天长市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1766 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341182', '3411', '00,34,3411', '明光市', '34' + , '安徽省', '3411', '滁州市', '341182', '明光市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1767 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3412', '34', '00,34', '阜阳市', '34' + , '安徽省', '3412', '阜阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1768 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341202', '3412', '00,34,3412', '颍州区', '34' + , '安徽省', '3412', '阜阳市', '341202', '颍州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1769 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341203', '3412', '00,34,3412', '颍东区', '34' + , '安徽省', '3412', '阜阳市', '341203', '颍东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1770 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341204', '3412', '00,34,3412', '颍泉区', '34' + , '安徽省', '3412', '阜阳市', '341204', '颍泉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1771 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341221', '3412', '00,34,3412', '临泉县', '34' + , '安徽省', '3412', '阜阳市', '341221', '临泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1772 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341222', '3412', '00,34,3412', '太和县', '34' + , '安徽省', '3412', '阜阳市', '341222', '太和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1773 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341225', '3412', '00,34,3412', '阜南县', '34' + , '安徽省', '3412', '阜阳市', '341225', '阜南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1774 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341226', '3412', '00,34,3412', '颍上县', '34' + , '安徽省', '3412', '阜阳市', '341226', '颍上县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1775 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341282', '3412', '00,34,3412', '界首市', '34' + , '安徽省', '3412', '阜阳市', '341282', '界首市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1776 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3413', '34', '00,34', '宿州市', '34' + , '安徽省', '3413', '宿州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1777 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341302', '3413', '00,34,3413', '埇桥区', '34' + , '安徽省', '3413', '宿州市', '341302', '埇桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1778 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341321', '3413', '00,34,3413', '砀山县', '34' + , '安徽省', '3413', '宿州市', '341321', '砀山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1779 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341322', '3413', '00,34,3413', '萧县', '34' + , '安徽省', '3413', '宿州市', '341322', '萧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1780 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341323', '3413', '00,34,3413', '灵璧县', '34' + , '安徽省', '3413', '宿州市', '341323', '灵璧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1781 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341324', '3413', '00,34,3413', '泗县', '34' + , '安徽省', '3413', '宿州市', '341324', '泗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1782 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3415', '34', '00,34', '六安市', '34' + , '安徽省', '3415', '六安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1783 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341502', '3415', '00,34,3415', '金安区', '34' + , '安徽省', '3415', '六安市', '341502', '金安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1784 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341503', '3415', '00,34,3415', '裕安区', '34' + , '安徽省', '3415', '六安市', '341503', '裕安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1785 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341504', '3415', '00,34,3415', '叶集区', '34' + , '安徽省', '3415', '六安市', '341504', '叶集区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1786 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341522', '3415', '00,34,3415', '霍邱县', '34' + , '安徽省', '3415', '六安市', '341522', '霍邱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1787 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341523', '3415', '00,34,3415', '舒城县', '34' + , '安徽省', '3415', '六安市', '341523', '舒城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1788 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341524', '3415', '00,34,3415', '金寨县', '34' + , '安徽省', '3415', '六安市', '341524', '金寨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1789 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341525', '3415', '00,34,3415', '霍山县', '34' + , '安徽省', '3415', '六安市', '341525', '霍山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1790 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3416', '34', '00,34', '亳州市', '34' + , '安徽省', '3416', '亳州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1791 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341602', '3416', '00,34,3416', '谯城区', '34' + , '安徽省', '3416', '亳州市', '341602', '谯城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1792 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341621', '3416', '00,34,3416', '涡阳县', '34' + , '安徽省', '3416', '亳州市', '341621', '涡阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1793 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341622', '3416', '00,34,3416', '蒙城县', '34' + , '安徽省', '3416', '亳州市', '341622', '蒙城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1794 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341623', '3416', '00,34,3416', '利辛县', '34' + , '安徽省', '3416', '亳州市', '341623', '利辛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1795 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3417', '34', '00,34', '池州市', '34' + , '安徽省', '3417', '池州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1796 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341702', '3417', '00,34,3417', '贵池区', '34' + , '安徽省', '3417', '池州市', '341702', '贵池区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1797 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341721', '3417', '00,34,3417', '东至县', '34' + , '安徽省', '3417', '池州市', '341721', '东至县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1798 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341722', '3417', '00,34,3417', '石台县', '34' + , '安徽省', '3417', '池州市', '341722', '石台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1799 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341723', '3417', '00,34,3417', '青阳县', '34' + , '安徽省', '3417', '池州市', '341723', '青阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1800 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3418', '34', '00,34', '宣城市', '34' + , '安徽省', '3418', '宣城市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1801 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341802', '3418', '00,34,3418', '宣州区', '34' + , '安徽省', '3418', '宣城市', '341802', '宣州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1802 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341821', '3418', '00,34,3418', '郎溪县', '34' + , '安徽省', '3418', '宣城市', '341821', '郎溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1803 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341823', '3418', '00,34,3418', '泾县', '34' + , '安徽省', '3418', '宣城市', '341823', '泾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1804 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341824', '3418', '00,34,3418', '绩溪县', '34' + , '安徽省', '3418', '宣城市', '341824', '绩溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1805 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341825', '3418', '00,34,3418', '旌德县', '34' + , '安徽省', '3418', '宣城市', '341825', '旌德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1806 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341881', '3418', '00,34,3418', '宁国市', '34' + , '安徽省', '3418', '宣城市', '341881', '宁国市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1807 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('341882', '3418', '00,34,3418', '广德市', '34' + , '安徽省', '3418', '宣城市', '341882', '广德市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1808 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('35', '00', '00', '福建省', '35' + , '福建省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1809 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3501', '35', '00,35', '福州市', '35' + , '福建省', '3501', '福州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1810 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350102', '3501', '00,35,3501', '鼓楼区', '35' + , '福建省', '3501', '福州市', '350102', '鼓楼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1811 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350103', '3501', '00,35,3501', '台江区', '35' + , '福建省', '3501', '福州市', '350103', '台江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1812 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350104', '3501', '00,35,3501', '仓山区', '35' + , '福建省', '3501', '福州市', '350104', '仓山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1813 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350105', '3501', '00,35,3501', '马尾区', '35' + , '福建省', '3501', '福州市', '350105', '马尾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1814 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350111', '3501', '00,35,3501', '晋安区', '35' + , '福建省', '3501', '福州市', '350111', '晋安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1815 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350112', '3501', '00,35,3501', '长乐区', '35' + , '福建省', '3501', '福州市', '350112', '长乐区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1816 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350121', '3501', '00,35,3501', '闽侯县', '35' + , '福建省', '3501', '福州市', '350121', '闽侯县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1817 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350122', '3501', '00,35,3501', '连江县', '35' + , '福建省', '3501', '福州市', '350122', '连江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1818 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350123', '3501', '00,35,3501', '罗源县', '35' + , '福建省', '3501', '福州市', '350123', '罗源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1819 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350124', '3501', '00,35,3501', '闽清县', '35' + , '福建省', '3501', '福州市', '350124', '闽清县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1820 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350125', '3501', '00,35,3501', '永泰县', '35' + , '福建省', '3501', '福州市', '350125', '永泰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1821 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350128', '3501', '00,35,3501', '平潭县', '35' + , '福建省', '3501', '福州市', '350128', '平潭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1822 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350181', '3501', '00,35,3501', '福清市', '35' + , '福建省', '3501', '福州市', '350181', '福清市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1823 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3502', '35', '00,35', '厦门市', '35' + , '福建省', '3502', '厦门市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1824 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350203', '3502', '00,35,3502', '思明区', '35' + , '福建省', '3502', '厦门市', '350203', '思明区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1825 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350205', '3502', '00,35,3502', '海沧区', '35' + , '福建省', '3502', '厦门市', '350205', '海沧区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1826 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350206', '3502', '00,35,3502', '湖里区', '35' + , '福建省', '3502', '厦门市', '350206', '湖里区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1827 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350211', '3502', '00,35,3502', '集美区', '35' + , '福建省', '3502', '厦门市', '350211', '集美区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1828 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350212', '3502', '00,35,3502', '同安区', '35' + , '福建省', '3502', '厦门市', '350212', '同安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1829 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350213', '3502', '00,35,3502', '翔安区', '35' + , '福建省', '3502', '厦门市', '350213', '翔安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1830 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3503', '35', '00,35', '莆田市', '35' + , '福建省', '3503', '莆田市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1831 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350302', '3503', '00,35,3503', '城厢区', '35' + , '福建省', '3503', '莆田市', '350302', '城厢区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1832 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350303', '3503', '00,35,3503', '涵江区', '35' + , '福建省', '3503', '莆田市', '350303', '涵江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1833 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361003', '3610', '00,36,3610', '东乡区', '36' + , '江西省', '3610', '抚州市', '361003', '东乡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1834 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361021', '3610', '00,36,3610', '南城县', '36' + , '江西省', '3610', '抚州市', '361021', '南城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1835 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361022', '3610', '00,36,3610', '黎川县', '36' + , '江西省', '3610', '抚州市', '361022', '黎川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1836 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361023', '3610', '00,36,3610', '南丰县', '36' + , '江西省', '3610', '抚州市', '361023', '南丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1837 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361024', '3610', '00,36,3610', '崇仁县', '36' + , '江西省', '3610', '抚州市', '361024', '崇仁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1838 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361025', '3610', '00,36,3610', '乐安县', '36' + , '江西省', '3610', '抚州市', '361025', '乐安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1839 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361026', '3610', '00,36,3610', '宜黄县', '36' + , '江西省', '3610', '抚州市', '361026', '宜黄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1840 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361027', '3610', '00,36,3610', '金溪县', '36' + , '江西省', '3610', '抚州市', '361027', '金溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1841 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361028', '3610', '00,36,3610', '资溪县', '36' + , '江西省', '3610', '抚州市', '361028', '资溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1842 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361030', '3610', '00,36,3610', '广昌县', '36' + , '江西省', '3610', '抚州市', '361030', '广昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1843 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3611', '36', '00,36', '上饶市', '36' + , '江西省', '3611', '上饶市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1844 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361102', '3611', '00,36,3611', '信州区', '36' + , '江西省', '3611', '上饶市', '361102', '信州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1845 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361103', '3611', '00,36,3611', '广丰区', '36' + , '江西省', '3611', '上饶市', '361103', '广丰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1846 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361104', '3611', '00,36,3611', '广信区', '36' + , '江西省', '3611', '上饶市', '361104', '广信区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1847 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361123', '3611', '00,36,3611', '玉山县', '36' + , '江西省', '3611', '上饶市', '361123', '玉山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1848 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361124', '3611', '00,36,3611', '铅山县', '36' + , '江西省', '3611', '上饶市', '361124', '铅山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1849 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361125', '3611', '00,36,3611', '横峰县', '36' + , '江西省', '3611', '上饶市', '361125', '横峰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1850 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361126', '3611', '00,36,3611', '弋阳县', '36' + , '江西省', '3611', '上饶市', '361126', '弋阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1851 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361127', '3611', '00,36,3611', '余干县', '36' + , '江西省', '3611', '上饶市', '361127', '余干县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1852 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361128', '3611', '00,36,3611', '鄱阳县', '36' + , '江西省', '3611', '上饶市', '361128', '鄱阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1853 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361129', '3611', '00,36,3611', '万年县', '36' + , '江西省', '3611', '上饶市', '361129', '万年县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1854 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361130', '3611', '00,36,3611', '婺源县', '36' + , '江西省', '3611', '上饶市', '361130', '婺源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1855 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('361181', '3611', '00,36,3611', '德兴市', '36' + , '江西省', '3611', '上饶市', '361181', '德兴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1856 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('37', '00', '00', '山东省', '37' + , '山东省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 1857 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3701', '37', '00,37', '济南市', '37' + , '山东省', '3701', '济南市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1858 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370102', '3701', '00,37,3701', '历下区', '37' + , '山东省', '3701', '济南市', '370102', '历下区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1859 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370103', '3701', '00,37,3701', '市中区', '37' + , '山东省', '3701', '济南市', '370103', '市中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1860 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370104', '3701', '00,37,3701', '槐荫区', '37' + , '山东省', '3701', '济南市', '370104', '槐荫区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1861 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370105', '3701', '00,37,3701', '天桥区', '37' + , '山东省', '3701', '济南市', '370105', '天桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1862 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370112', '3701', '00,37,3701', '历城区', '37' + , '山东省', '3701', '济南市', '370112', '历城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1863 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370113', '3701', '00,37,3701', '长清区', '37' + , '山东省', '3701', '济南市', '370113', '长清区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1864 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370114', '3701', '00,37,3701', '章丘区', '37' + , '山东省', '3701', '济南市', '370114', '章丘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1865 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370115', '3701', '00,37,3701', '济阳区', '37' + , '山东省', '3701', '济南市', '370115', '济阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1866 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370116', '3701', '00,37,3701', '莱芜区', '37' + , '山东省', '3701', '济南市', '370116', '莱芜区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1867 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370117', '3701', '00,37,3701', '钢城区', '37' + , '山东省', '3701', '济南市', '370117', '钢城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1868 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370124', '3701', '00,37,3701', '平阴县', '37' + , '山东省', '3701', '济南市', '370124', '平阴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1869 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370126', '3701', '00,37,3701', '商河县', '37' + , '山东省', '3701', '济南市', '370126', '商河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1870 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3702', '37', '00,37', '青岛市', '37' + , '山东省', '3702', '青岛市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1871 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370202', '3702', '00,37,3702', '市南区', '37' + , '山东省', '3702', '青岛市', '370202', '市南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1872 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370203', '3702', '00,37,3702', '市北区', '37' + , '山东省', '3702', '青岛市', '370203', '市北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1873 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370211', '3702', '00,37,3702', '黄岛区', '37' + , '山东省', '3702', '青岛市', '370211', '黄岛区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1874 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370212', '3702', '00,37,3702', '崂山区', '37' + , '山东省', '3702', '青岛市', '370212', '崂山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1875 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370213', '3702', '00,37,3702', '李沧区', '37' + , '山东省', '3702', '青岛市', '370213', '李沧区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1876 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370214', '3702', '00,37,3702', '城阳区', '37' + , '山东省', '3702', '青岛市', '370214', '城阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1877 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370215', '3702', '00,37,3702', '即墨区', '37' + , '山东省', '3702', '青岛市', '370215', '即墨区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1878 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370281', '3702', '00,37,3702', '胶州市', '37' + , '山东省', '3702', '青岛市', '370281', '胶州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1879 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370283', '3702', '00,37,3702', '平度市', '37' + , '山东省', '3702', '青岛市', '370283', '平度市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1880 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370285', '3702', '00,37,3702', '莱西市', '37' + , '山东省', '3702', '青岛市', '370285', '莱西市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1881 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3703', '37', '00,37', '淄博市', '37' + , '山东省', '3703', '淄博市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1882 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370302', '3703', '00,37,3703', '淄川区', '37' + , '山东省', '3703', '淄博市', '370302', '淄川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1883 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370303', '3703', '00,37,3703', '张店区', '37' + , '山东省', '3703', '淄博市', '370303', '张店区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1884 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370304', '3703', '00,37,3703', '博山区', '37' + , '山东省', '3703', '淄博市', '370304', '博山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1885 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370305', '3703', '00,37,3703', '临淄区', '37' + , '山东省', '3703', '淄博市', '370305', '临淄区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1886 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370306', '3703', '00,37,3703', '周村区', '37' + , '山东省', '3703', '淄博市', '370306', '周村区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1887 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370321', '3703', '00,37,3703', '桓台县', '37' + , '山东省', '3703', '淄博市', '370321', '桓台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1888 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370322', '3703', '00,37,3703', '高青县', '37' + , '山东省', '3703', '淄博市', '370322', '高青县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1889 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370323', '3703', '00,37,3703', '沂源县', '37' + , '山东省', '3703', '淄博市', '370323', '沂源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1890 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3704', '37', '00,37', '枣庄市', '37' + , '山东省', '3704', '枣庄市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1891 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370402', '3704', '00,37,3704', '市中区', '37' + , '山东省', '3704', '枣庄市', '370402', '市中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1892 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370403', '3704', '00,37,3704', '薛城区', '37' + , '山东省', '3704', '枣庄市', '370403', '薛城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1893 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370404', '3704', '00,37,3704', '峄城区', '37' + , '山东省', '3704', '枣庄市', '370404', '峄城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1894 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370405', '3704', '00,37,3704', '台儿庄区', '37' + , '山东省', '3704', '枣庄市', '370405', '台儿庄区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1895 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370406', '3704', '00,37,3704', '山亭区', '37' + , '山东省', '3704', '枣庄市', '370406', '山亭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1896 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370481', '3704', '00,37,3704', '滕州市', '37' + , '山东省', '3704', '枣庄市', '370481', '滕州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1897 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3705', '37', '00,37', '东营市', '37' + , '山东省', '3705', '东营市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1898 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370502', '3705', '00,37,3705', '东营区', '37' + , '山东省', '3705', '东营市', '370502', '东营区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1899 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370503', '3705', '00,37,3705', '河口区', '37' + , '山东省', '3705', '东营市', '370503', '河口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1900 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370505', '3705', '00,37,3705', '垦利区', '37' + , '山东省', '3705', '东营市', '370505', '垦利区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1901 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370522', '3705', '00,37,3705', '利津县', '37' + , '山东省', '3705', '东营市', '370522', '利津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1902 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370523', '3705', '00,37,3705', '广饶县', '37' + , '山东省', '3705', '东营市', '370523', '广饶县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1903 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3706', '37', '00,37', '烟台市', '37' + , '山东省', '3706', '烟台市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1904 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370602', '3706', '00,37,3706', '芝罘区', '37' + , '山东省', '3706', '烟台市', '370602', '芝罘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1905 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370611', '3706', '00,37,3706', '福山区', '37' + , '山东省', '3706', '烟台市', '370611', '福山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1906 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370612', '3706', '00,37,3706', '牟平区', '37' + , '山东省', '3706', '烟台市', '370612', '牟平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1907 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370613', '3706', '00,37,3706', '莱山区', '37' + , '山东省', '3706', '烟台市', '370613', '莱山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1908 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370634', '3706', '00,37,3706', '长岛县', '37' + , '山东省', '3706', '烟台市', '370634', '长岛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1909 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4415', '44', '00,44', '汕尾市', '44' + , '广东省', '4415', '汕尾市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1910 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420583', '4205', '00,42,4205', '枝江市', '42' + , '湖北省', '4205', '宜昌市', '420583', '枝江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1911 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370684', '3706', '00,37,3706', '蓬莱市', '37' + , '山东省', '3706', '烟台市', '370684', '蓬莱市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1912 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370685', '3706', '00,37,3706', '招远市', '37' + , '山东省', '3706', '烟台市', '370685', '招远市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1913 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370686', '3706', '00,37,3706', '栖霞市', '37' + , '山东省', '3706', '烟台市', '370686', '栖霞市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1914 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370687', '3706', '00,37,3706', '海阳市', '37' + , '山东省', '3706', '烟台市', '370687', '海阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1915 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3707', '37', '00,37', '潍坊市', '37' + , '山东省', '3707', '潍坊市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1916 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370702', '3707', '00,37,3707', '潍城区', '37' + , '山东省', '3707', '潍坊市', '370702', '潍城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1917 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370703', '3707', '00,37,3707', '寒亭区', '37' + , '山东省', '3707', '潍坊市', '370703', '寒亭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1918 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370704', '3707', '00,37,3707', '坊子区', '37' + , '山东省', '3707', '潍坊市', '370704', '坊子区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1919 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370705', '3707', '00,37,3707', '奎文区', '37' + , '山东省', '3707', '潍坊市', '370705', '奎文区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1920 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370724', '3707', '00,37,3707', '临朐县', '37' + , '山东省', '3707', '潍坊市', '370724', '临朐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1921 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370725', '3707', '00,37,3707', '昌乐县', '37' + , '山东省', '3707', '潍坊市', '370725', '昌乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1922 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370781', '3707', '00,37,3707', '青州市', '37' + , '山东省', '3707', '潍坊市', '370781', '青州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1923 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370782', '3707', '00,37,3707', '诸城市', '37' + , '山东省', '3707', '潍坊市', '370782', '诸城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1924 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370783', '3707', '00,37,3707', '寿光市', '37' + , '山东省', '3707', '潍坊市', '370783', '寿光市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1925 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370784', '3707', '00,37,3707', '安丘市', '37' + , '山东省', '3707', '潍坊市', '370784', '安丘市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1926 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370785', '3707', '00,37,3707', '高密市', '37' + , '山东省', '3707', '潍坊市', '370785', '高密市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1927 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370786', '3707', '00,37,3707', '昌邑市', '37' + , '山东省', '3707', '潍坊市', '370786', '昌邑市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1928 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3708', '37', '00,37', '济宁市', '37' + , '山东省', '3708', '济宁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1929 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370811', '3708', '00,37,3708', '任城区', '37' + , '山东省', '3708', '济宁市', '370811', '任城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1930 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370812', '3708', '00,37,3708', '兖州区', '37' + , '山东省', '3708', '济宁市', '370812', '兖州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1931 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370826', '3708', '00,37,3708', '微山县', '37' + , '山东省', '3708', '济宁市', '370826', '微山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1932 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370827', '3708', '00,37,3708', '鱼台县', '37' + , '山东省', '3708', '济宁市', '370827', '鱼台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1933 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370828', '3708', '00,37,3708', '金乡县', '37' + , '山东省', '3708', '济宁市', '370828', '金乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1934 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370829', '3708', '00,37,3708', '嘉祥县', '37' + , '山东省', '3708', '济宁市', '370829', '嘉祥县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1935 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370830', '3708', '00,37,3708', '汶上县', '37' + , '山东省', '3708', '济宁市', '370830', '汶上县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1936 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370831', '3708', '00,37,3708', '泗水县', '37' + , '山东省', '3708', '济宁市', '370831', '泗水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1937 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370832', '3708', '00,37,3708', '梁山县', '37' + , '山东省', '3708', '济宁市', '370832', '梁山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1938 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370881', '3708', '00,37,3708', '曲阜市', '37' + , '山东省', '3708', '济宁市', '370881', '曲阜市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1939 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370883', '3708', '00,37,3708', '邹城市', '37' + , '山东省', '3708', '济宁市', '370883', '邹城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1940 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3709', '37', '00,37', '泰安市', '37' + , '山东省', '3709', '泰安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1941 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370902', '3709', '00,37,3709', '泰山区', '37' + , '山东省', '3709', '泰安市', '370902', '泰山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1942 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370911', '3709', '00,37,3709', '岱岳区', '37' + , '山东省', '3709', '泰安市', '370911', '岱岳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1943 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370921', '3709', '00,37,3709', '宁阳县', '37' + , '山东省', '3709', '泰安市', '370921', '宁阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1944 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370923', '3709', '00,37,3709', '东平县', '37' + , '山东省', '3709', '泰安市', '370923', '东平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1945 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370982', '3709', '00,37,3709', '新泰市', '37' + , '山东省', '3709', '泰安市', '370982', '新泰市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1946 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('370983', '3709', '00,37,3709', '肥城市', '37' + , '山东省', '3709', '泰安市', '370983', '肥城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1947 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3710', '37', '00,37', '威海市', '37' + , '山东省', '3710', '威海市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1948 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371002', '3710', '00,37,3710', '环翠区', '37' + , '山东省', '3710', '威海市', '371002', '环翠区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1949 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371003', '3710', '00,37,3710', '文登区', '37' + , '山东省', '3710', '威海市', '371003', '文登区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1950 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371082', '3710', '00,37,3710', '荣成市', '37' + , '山东省', '3710', '威海市', '371082', '荣成市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1951 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371083', '3710', '00,37,3710', '乳山市', '37' + , '山东省', '3710', '威海市', '371083', '乳山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1952 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3711', '37', '00,37', '日照市', '37' + , '山东省', '3711', '日照市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1953 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371102', '3711', '00,37,3711', '东港区', '37' + , '山东省', '3711', '日照市', '371102', '东港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1954 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371103', '3711', '00,37,3711', '岚山区', '37' + , '山东省', '3711', '日照市', '371103', '岚山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1955 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371121', '3711', '00,37,3711', '五莲县', '37' + , '山东省', '3711', '日照市', '371121', '五莲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1956 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371122', '3711', '00,37,3711', '莒县', '37' + , '山东省', '3711', '日照市', '371122', '莒县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1957 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3713', '37', '00,37', '临沂市', '37' + , '山东省', '3713', '临沂市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1958 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371302', '3713', '00,37,3713', '兰山区', '37' + , '山东省', '3713', '临沂市', '371302', '兰山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1959 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371311', '3713', '00,37,3713', '罗庄区', '37' + , '山东省', '3713', '临沂市', '371311', '罗庄区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1960 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371312', '3713', '00,37,3713', '河东区', '37' + , '山东省', '3713', '临沂市', '371312', '河东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1961 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371321', '3713', '00,37,3713', '沂南县', '37' + , '山东省', '3713', '临沂市', '371321', '沂南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1962 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371322', '3713', '00,37,3713', '郯城县', '37' + , '山东省', '3713', '临沂市', '371322', '郯城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1963 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371323', '3713', '00,37,3713', '沂水县', '37' + , '山东省', '3713', '临沂市', '371323', '沂水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1964 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371324', '3713', '00,37,3713', '兰陵县', '37' + , '山东省', '3713', '临沂市', '371324', '兰陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1965 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371325', '3713', '00,37,3713', '费县', '37' + , '山东省', '3713', '临沂市', '371325', '费县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1966 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371326', '3713', '00,37,3713', '平邑县', '37' + , '山东省', '3713', '临沂市', '371326', '平邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1967 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371327', '3713', '00,37,3713', '莒南县', '37' + , '山东省', '3713', '临沂市', '371327', '莒南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1968 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371328', '3713', '00,37,3713', '蒙阴县', '37' + , '山东省', '3713', '临沂市', '371328', '蒙阴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1969 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371329', '3713', '00,37,3713', '临沭县', '37' + , '山东省', '3713', '临沂市', '371329', '临沭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1970 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3714', '37', '00,37', '德州市', '37' + , '山东省', '3714', '德州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1971 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371402', '3714', '00,37,3714', '德城区', '37' + , '山东省', '3714', '德州市', '371402', '德城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1972 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371403', '3714', '00,37,3714', '陵城区', '37' + , '山东省', '3714', '德州市', '371403', '陵城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1973 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371422', '3714', '00,37,3714', '宁津县', '37' + , '山东省', '3714', '德州市', '371422', '宁津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1974 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371423', '3714', '00,37,3714', '庆云县', '37' + , '山东省', '3714', '德州市', '371423', '庆云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1975 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371424', '3714', '00,37,3714', '临邑县', '37' + , '山东省', '3714', '德州市', '371424', '临邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1976 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371425', '3714', '00,37,3714', '齐河县', '37' + , '山东省', '3714', '德州市', '371425', '齐河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1977 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371426', '3714', '00,37,3714', '平原县', '37' + , '山东省', '3714', '德州市', '371426', '平原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1978 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371427', '3714', '00,37,3714', '夏津县', '37' + , '山东省', '3714', '德州市', '371427', '夏津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1979 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371428', '3714', '00,37,3714', '武城县', '37' + , '山东省', '3714', '德州市', '371428', '武城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1980 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371481', '3714', '00,37,3714', '乐陵市', '37' + , '山东省', '3714', '德州市', '371481', '乐陵市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1981 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371482', '3714', '00,37,3714', '禹城市', '37' + , '山东省', '3714', '德州市', '371482', '禹城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1982 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3715', '37', '00,37', '聊城市', '37' + , '山东省', '3715', '聊城市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1983 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371502', '3715', '00,37,3715', '东昌府区', '37' + , '山东省', '3715', '聊城市', '371502', '东昌府区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1984 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371503', '3715', '00,37,3715', '茌平区', '37' + , '山东省', '3715', '聊城市', '371503', '茌平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1985 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371521', '3715', '00,37,3715', '阳谷县', '37' + , '山东省', '3715', '聊城市', '371521', '阳谷县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1986 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371522', '3715', '00,37,3715', '莘县', '37' + , '山东省', '3715', '聊城市', '371522', '莘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1987 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371524', '3715', '00,37,3715', '东阿县', '37' + , '山东省', '3715', '聊城市', '371524', '东阿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1988 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371525', '3715', '00,37,3715', '冠县', '37' + , '山东省', '3715', '聊城市', '371525', '冠县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1989 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371526', '3715', '00,37,3715', '高唐县', '37' + , '山东省', '3715', '聊城市', '371526', '高唐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1990 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371581', '3715', '00,37,3715', '临清市', '37' + , '山东省', '3715', '聊城市', '371581', '临清市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1991 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3716', '37', '00,37', '滨州市', '37' + , '山东省', '3716', '滨州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 1992 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371602', '3716', '00,37,3716', '滨城区', '37' + , '山东省', '3716', '滨州市', '371602', '滨城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1993 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371603', '3716', '00,37,3716', '沾化区', '37' + , '山东省', '3716', '滨州市', '371603', '沾化区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1994 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371621', '3716', '00,37,3716', '惠民县', '37' + , '山东省', '3716', '滨州市', '371621', '惠民县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1995 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371622', '3716', '00,37,3716', '阳信县', '37' + , '山东省', '3716', '滨州市', '371622', '阳信县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1996 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371623', '3716', '00,37,3716', '无棣县', '37' + , '山东省', '3716', '滨州市', '371623', '无棣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1997 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371625', '3716', '00,37,3716', '博兴县', '37' + , '山东省', '3716', '滨州市', '371625', '博兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1998 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371681', '3716', '00,37,3716', '邹平市', '37' + , '山东省', '3716', '滨州市', '371681', '邹平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 1999 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3717', '37', '00,37', '菏泽市', '37' + , '山东省', '3717', '菏泽市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2000 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371702', '3717', '00,37,3717', '牡丹区', '37' + , '山东省', '3717', '菏泽市', '371702', '牡丹区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2001 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371703', '3717', '00,37,3717', '定陶区', '37' + , '山东省', '3717', '菏泽市', '371703', '定陶区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2002 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371721', '3717', '00,37,3717', '曹县', '37' + , '山东省', '3717', '菏泽市', '371721', '曹县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2003 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371722', '3717', '00,37,3717', '单县', '37' + , '山东省', '3717', '菏泽市', '371722', '单县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2004 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371723', '3717', '00,37,3717', '成武县', '37' + , '山东省', '3717', '菏泽市', '371723', '成武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2005 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371724', '3717', '00,37,3717', '巨野县', '37' + , '山东省', '3717', '菏泽市', '371724', '巨野县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2006 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371725', '3717', '00,37,3717', '郓城县', '37' + , '山东省', '3717', '菏泽市', '371725', '郓城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2007 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371726', '3717', '00,37,3717', '鄄城县', '37' + , '山东省', '3717', '菏泽市', '371726', '鄄城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2008 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('371728', '3717', '00,37,3717', '东明县', '37' + , '山东省', '3717', '菏泽市', '371728', '东明县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2009 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('41', '00', '00', '河南省', '41' + , '河南省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2010 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4101', '41', '00,41', '郑州市', '41' + , '河南省', '4101', '郑州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2011 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410102', '4101', '00,41,4101', '中原区', '41' + , '河南省', '4101', '郑州市', '410102', '中原区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2012 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410103', '4101', '00,41,4101', '二七区', '41' + , '河南省', '4101', '郑州市', '410103', '二七区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2013 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410104', '4101', '00,41,4101', '管城回族区', '41' + , '河南省', '4101', '郑州市', '410104', '管城回族区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2014 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410105', '4101', '00,41,4101', '金水区', '41' + , '河南省', '4101', '郑州市', '410105', '金水区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2015 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410106', '4101', '00,41,4101', '上街区', '41' + , '河南省', '4101', '郑州市', '410106', '上街区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2016 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410108', '4101', '00,41,4101', '惠济区', '41' + , '河南省', '4101', '郑州市', '410108', '惠济区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2017 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410122', '4101', '00,41,4101', '中牟县', '41' + , '河南省', '4101', '郑州市', '410122', '中牟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2018 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410181', '4101', '00,41,4101', '巩义市', '41' + , '河南省', '4101', '郑州市', '410181', '巩义市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2019 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410182', '4101', '00,41,4101', '荥阳市', '41' + , '河南省', '4101', '郑州市', '410182', '荥阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2020 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410183', '4101', '00,41,4101', '新密市', '41' + , '河南省', '4101', '郑州市', '410183', '新密市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2021 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410184', '4101', '00,41,4101', '新郑市', '41' + , '河南省', '4101', '郑州市', '410184', '新郑市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2022 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410185', '4101', '00,41,4101', '登封市', '41' + , '河南省', '4101', '郑州市', '410185', '登封市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2023 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4102', '41', '00,41', '开封市', '41' + , '河南省', '4102', '开封市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2024 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410202', '4102', '00,41,4102', '龙亭区', '41' + , '河南省', '4102', '开封市', '410202', '龙亭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2025 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410203', '4102', '00,41,4102', '顺河回族区', '41' + , '河南省', '4102', '开封市', '410203', '顺河回族区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2026 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410204', '4102', '00,41,4102', '鼓楼区', '41' + , '河南省', '4102', '开封市', '410204', '鼓楼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2027 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410205', '4102', '00,41,4102', '禹王台区', '41' + , '河南省', '4102', '开封市', '410205', '禹王台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2028 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410212', '4102', '00,41,4102', '祥符区', '41' + , '河南省', '4102', '开封市', '410212', '祥符区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2029 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410221', '4102', '00,41,4102', '杞县', '41' + , '河南省', '4102', '开封市', '410221', '杞县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2030 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410222', '4102', '00,41,4102', '通许县', '41' + , '河南省', '4102', '开封市', '410222', '通许县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2031 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410223', '4102', '00,41,4102', '尉氏县', '41' + , '河南省', '4102', '开封市', '410223', '尉氏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2032 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410225', '4102', '00,41,4102', '兰考县', '41' + , '河南省', '4102', '开封市', '410225', '兰考县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2033 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4103', '41', '00,41', '洛阳市', '41' + , '河南省', '4103', '洛阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2034 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410302', '4103', '00,41,4103', '老城区', '41' + , '河南省', '4103', '洛阳市', '410302', '老城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2035 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410303', '4103', '00,41,4103', '西工区', '41' + , '河南省', '4103', '洛阳市', '410303', '西工区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2036 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410304', '4103', '00,41,4103', '瀍河回族区', '41' + , '河南省', '4103', '洛阳市', '410304', '瀍河回族区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2037 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410305', '4103', '00,41,4103', '涧西区', '41' + , '河南省', '4103', '洛阳市', '410305', '涧西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2038 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410306', '4103', '00,41,4103', '吉利区', '41' + , '河南省', '4103', '洛阳市', '410306', '吉利区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2039 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410311', '4103', '00,41,4103', '洛龙区', '41' + , '河南省', '4103', '洛阳市', '410311', '洛龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2040 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410322', '4103', '00,41,4103', '孟津县', '41' + , '河南省', '4103', '洛阳市', '410322', '孟津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2041 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410323', '4103', '00,41,4103', '新安县', '41' + , '河南省', '4103', '洛阳市', '410323', '新安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2042 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410324', '4103', '00,41,4103', '栾川县', '41' + , '河南省', '4103', '洛阳市', '410324', '栾川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2043 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410325', '4103', '00,41,4103', '嵩县', '41' + , '河南省', '4103', '洛阳市', '410325', '嵩县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2044 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410326', '4103', '00,41,4103', '汝阳县', '41' + , '河南省', '4103', '洛阳市', '410326', '汝阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2045 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410327', '4103', '00,41,4103', '宜阳县', '41' + , '河南省', '4103', '洛阳市', '410327', '宜阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2046 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410328', '4103', '00,41,4103', '洛宁县', '41' + , '河南省', '4103', '洛阳市', '410328', '洛宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2047 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410329', '4103', '00,41,4103', '伊川县', '41' + , '河南省', '4103', '洛阳市', '410329', '伊川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2048 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410381', '4103', '00,41,4103', '偃师市', '41' + , '河南省', '4103', '洛阳市', '410381', '偃师市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2049 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4104', '41', '00,41', '平顶山市', '41' + , '河南省', '4104', '平顶山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2050 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410402', '4104', '00,41,4104', '新华区', '41' + , '河南省', '4104', '平顶山市', '410402', '新华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2051 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410403', '4104', '00,41,4104', '卫东区', '41' + , '河南省', '4104', '平顶山市', '410403', '卫东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2052 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410404', '4104', '00,41,4104', '石龙区', '41' + , '河南省', '4104', '平顶山市', '410404', '石龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2053 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410411', '4104', '00,41,4104', '湛河区', '41' + , '河南省', '4104', '平顶山市', '410411', '湛河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2054 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410421', '4104', '00,41,4104', '宝丰县', '41' + , '河南省', '4104', '平顶山市', '410421', '宝丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2055 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410422', '4104', '00,41,4104', '叶县', '41' + , '河南省', '4104', '平顶山市', '410422', '叶县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2056 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410423', '4104', '00,41,4104', '鲁山县', '41' + , '河南省', '4104', '平顶山市', '410423', '鲁山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2057 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410425', '4104', '00,41,4104', '郏县', '41' + , '河南省', '4104', '平顶山市', '410425', '郏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2058 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410481', '4104', '00,41,4104', '舞钢市', '41' + , '河南省', '4104', '平顶山市', '410481', '舞钢市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2059 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410482', '4104', '00,41,4104', '汝州市', '41' + , '河南省', '4104', '平顶山市', '410482', '汝州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2060 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4105', '41', '00,41', '安阳市', '41' + , '河南省', '4105', '安阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2061 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410502', '4105', '00,41,4105', '文峰区', '41' + , '河南省', '4105', '安阳市', '410502', '文峰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2062 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410503', '4105', '00,41,4105', '北关区', '41' + , '河南省', '4105', '安阳市', '410503', '北关区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2063 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410505', '4105', '00,41,4105', '殷都区', '41' + , '河南省', '4105', '安阳市', '410505', '殷都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2064 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410506', '4105', '00,41,4105', '龙安区', '41' + , '河南省', '4105', '安阳市', '410506', '龙安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2065 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410522', '4105', '00,41,4105', '安阳县', '41' + , '河南省', '4105', '安阳市', '410522', '安阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2066 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410523', '4105', '00,41,4105', '汤阴县', '41' + , '河南省', '4105', '安阳市', '410523', '汤阴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2067 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410526', '4105', '00,41,4105', '滑县', '41' + , '河南省', '4105', '安阳市', '410526', '滑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2068 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331002', '3310', '00,33,3310', '椒江区', '33' + , '浙江省', '3310', '台州市', '331002', '椒江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2069 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('330108', '3301', '00,33,3301', '滨江区', '33' + , '浙江省', '3301', '杭州市', '330108', '滨江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2070 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331004', '3310', '00,33,3310', '路桥区', '33' + , '浙江省', '3310', '台州市', '331004', '路桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2071 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350304', '3503', '00,35,3503', '荔城区', '35' + , '福建省', '3503', '莆田市', '350304', '荔城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2072 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350305', '3503', '00,35,3503', '秀屿区', '35' + , '福建省', '3503', '莆田市', '350305', '秀屿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2073 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350322', '3503', '00,35,3503', '仙游县', '35' + , '福建省', '3503', '莆田市', '350322', '仙游县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2074 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3504', '35', '00,35', '三明市', '35' + , '福建省', '3504', '三明市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2075 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350402', '3504', '00,35,3504', '梅列区', '35' + , '福建省', '3504', '三明市', '350402', '梅列区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2076 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350403', '3504', '00,35,3504', '三元区', '35' + , '福建省', '3504', '三明市', '350403', '三元区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2077 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350421', '3504', '00,35,3504', '明溪县', '35' + , '福建省', '3504', '三明市', '350421', '明溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2078 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350423', '3504', '00,35,3504', '清流县', '35' + , '福建省', '3504', '三明市', '350423', '清流县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2079 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350424', '3504', '00,35,3504', '宁化县', '35' + , '福建省', '3504', '三明市', '350424', '宁化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2080 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350425', '3504', '00,35,3504', '大田县', '35' + , '福建省', '3504', '三明市', '350425', '大田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2081 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350426', '3504', '00,35,3504', '尤溪县', '35' + , '福建省', '3504', '三明市', '350426', '尤溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2082 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350427', '3504', '00,35,3504', '沙县', '35' + , '福建省', '3504', '三明市', '350427', '沙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2083 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350428', '3504', '00,35,3504', '将乐县', '35' + , '福建省', '3504', '三明市', '350428', '将乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2084 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350429', '3504', '00,35,3504', '泰宁县', '35' + , '福建省', '3504', '三明市', '350429', '泰宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2085 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350430', '3504', '00,35,3504', '建宁县', '35' + , '福建省', '3504', '三明市', '350430', '建宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2086 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350481', '3504', '00,35,3504', '永安市', '35' + , '福建省', '3504', '三明市', '350481', '永安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2087 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3505', '35', '00,35', '泉州市', '35' + , '福建省', '3505', '泉州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2088 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350502', '3505', '00,35,3505', '鲤城区', '35' + , '福建省', '3505', '泉州市', '350502', '鲤城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2089 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350503', '3505', '00,35,3505', '丰泽区', '35' + , '福建省', '3505', '泉州市', '350503', '丰泽区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2090 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350504', '3505', '00,35,3505', '洛江区', '35' + , '福建省', '3505', '泉州市', '350504', '洛江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2091 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350505', '3505', '00,35,3505', '泉港区', '35' + , '福建省', '3505', '泉州市', '350505', '泉港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2092 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350521', '3505', '00,35,3505', '惠安县', '35' + , '福建省', '3505', '泉州市', '350521', '惠安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2093 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350524', '3505', '00,35,3505', '安溪县', '35' + , '福建省', '3505', '泉州市', '350524', '安溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2094 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350525', '3505', '00,35,3505', '永春县', '35' + , '福建省', '3505', '泉州市', '350525', '永春县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2095 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350526', '3505', '00,35,3505', '德化县', '35' + , '福建省', '3505', '泉州市', '350526', '德化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2096 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350527', '3505', '00,35,3505', '金门县', '35' + , '福建省', '3505', '泉州市', '350527', '金门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2097 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350581', '3505', '00,35,3505', '石狮市', '35' + , '福建省', '3505', '泉州市', '350581', '石狮市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2098 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350582', '3505', '00,35,3505', '晋江市', '35' + , '福建省', '3505', '泉州市', '350582', '晋江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2099 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350583', '3505', '00,35,3505', '南安市', '35' + , '福建省', '3505', '泉州市', '350583', '南安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2100 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3506', '35', '00,35', '漳州市', '35' + , '福建省', '3506', '漳州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2101 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350602', '3506', '00,35,3506', '芗城区', '35' + , '福建省', '3506', '漳州市', '350602', '芗城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2102 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350603', '3506', '00,35,3506', '龙文区', '35' + , '福建省', '3506', '漳州市', '350603', '龙文区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2103 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350622', '3506', '00,35,3506', '云霄县', '35' + , '福建省', '3506', '漳州市', '350622', '云霄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2104 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350623', '3506', '00,35,3506', '漳浦县', '35' + , '福建省', '3506', '漳州市', '350623', '漳浦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2105 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350624', '3506', '00,35,3506', '诏安县', '35' + , '福建省', '3506', '漳州市', '350624', '诏安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2106 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350625', '3506', '00,35,3506', '长泰县', '35' + , '福建省', '3506', '漳州市', '350625', '长泰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2107 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350626', '3506', '00,35,3506', '东山县', '35' + , '福建省', '3506', '漳州市', '350626', '东山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2108 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350627', '3506', '00,35,3506', '南靖县', '35' + , '福建省', '3506', '漳州市', '350627', '南靖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2109 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350628', '3506', '00,35,3506', '平和县', '35' + , '福建省', '3506', '漳州市', '350628', '平和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2110 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350629', '3506', '00,35,3506', '华安县', '35' + , '福建省', '3506', '漳州市', '350629', '华安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2111 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350681', '3506', '00,35,3506', '龙海市', '35' + , '福建省', '3506', '漳州市', '350681', '龙海市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2112 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3507', '35', '00,35', '南平市', '35' + , '福建省', '3507', '南平市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2113 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350702', '3507', '00,35,3507', '延平区', '35' + , '福建省', '3507', '南平市', '350702', '延平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2114 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350703', '3507', '00,35,3507', '建阳区', '35' + , '福建省', '3507', '南平市', '350703', '建阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2115 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350721', '3507', '00,35,3507', '顺昌县', '35' + , '福建省', '3507', '南平市', '350721', '顺昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2116 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350722', '3507', '00,35,3507', '浦城县', '35' + , '福建省', '3507', '南平市', '350722', '浦城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2117 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350723', '3507', '00,35,3507', '光泽县', '35' + , '福建省', '3507', '南平市', '350723', '光泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2118 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350724', '3507', '00,35,3507', '松溪县', '35' + , '福建省', '3507', '南平市', '350724', '松溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2119 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350725', '3507', '00,35,3507', '政和县', '35' + , '福建省', '3507', '南平市', '350725', '政和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2120 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350781', '3507', '00,35,3507', '邵武市', '35' + , '福建省', '3507', '南平市', '350781', '邵武市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2121 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350782', '3507', '00,35,3507', '武夷山市', '35' + , '福建省', '3507', '南平市', '350782', '武夷山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2122 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350783', '3507', '00,35,3507', '建瓯市', '35' + , '福建省', '3507', '南平市', '350783', '建瓯市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2123 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3508', '35', '00,35', '龙岩市', '35' + , '福建省', '3508', '龙岩市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2124 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350802', '3508', '00,35,3508', '新罗区', '35' + , '福建省', '3508', '龙岩市', '350802', '新罗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2125 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350803', '3508', '00,35,3508', '永定区', '35' + , '福建省', '3508', '龙岩市', '350803', '永定区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2126 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350821', '3508', '00,35,3508', '长汀县', '35' + , '福建省', '3508', '龙岩市', '350821', '长汀县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2127 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350823', '3508', '00,35,3508', '上杭县', '35' + , '福建省', '3508', '龙岩市', '350823', '上杭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2128 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350824', '3508', '00,35,3508', '武平县', '35' + , '福建省', '3508', '龙岩市', '350824', '武平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2129 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350825', '3508', '00,35,3508', '连城县', '35' + , '福建省', '3508', '龙岩市', '350825', '连城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2130 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350881', '3508', '00,35,3508', '漳平市', '35' + , '福建省', '3508', '龙岩市', '350881', '漳平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2131 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3509', '35', '00,35', '宁德市', '35' + , '福建省', '3509', '宁德市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2132 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350902', '3509', '00,35,3509', '蕉城区', '35' + , '福建省', '3509', '宁德市', '350902', '蕉城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2133 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350921', '3509', '00,35,3509', '霞浦县', '35' + , '福建省', '3509', '宁德市', '350921', '霞浦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2134 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350922', '3509', '00,35,3509', '古田县', '35' + , '福建省', '3509', '宁德市', '350922', '古田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2135 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350923', '3509', '00,35,3509', '屏南县', '35' + , '福建省', '3509', '宁德市', '350923', '屏南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2136 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350924', '3509', '00,35,3509', '寿宁县', '35' + , '福建省', '3509', '宁德市', '350924', '寿宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2137 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350925', '3509', '00,35,3509', '周宁县', '35' + , '福建省', '3509', '宁德市', '350925', '周宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2138 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350926', '3509', '00,35,3509', '柘荣县', '35' + , '福建省', '3509', '宁德市', '350926', '柘荣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2139 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350981', '3509', '00,35,3509', '福安市', '35' + , '福建省', '3509', '宁德市', '350981', '福安市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2140 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('350982', '3509', '00,35,3509', '福鼎市', '35' + , '福建省', '3509', '宁德市', '350982', '福鼎市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2141 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('36', '00', '00', '江西省', '36' + , '江西省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2142 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3601', '36', '00,36', '南昌市', '36' + , '江西省', '3601', '南昌市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2143 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360102', '3601', '00,36,3601', '东湖区', '36' + , '江西省', '3601', '南昌市', '360102', '东湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2144 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360103', '3601', '00,36,3601', '西湖区', '36' + , '江西省', '3601', '南昌市', '360103', '西湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2145 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360104', '3601', '00,36,3601', '青云谱区', '36' + , '江西省', '3601', '南昌市', '360104', '青云谱区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2146 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360111', '3601', '00,36,3601', '青山湖区', '36' + , '江西省', '3601', '南昌市', '360111', '青山湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2147 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('360112', '3601', '00,36,3601', '新建区', '36' + , '江西省', '3601', '南昌市', '360112', '新建区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2148 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441426', '4414', '00,44,4414', '平远县', '44' + , '广东省', '4414', '梅州市', '441426', '平远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2149 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441521', '4415', '00,44,4415', '海丰县', '44' + , '广东省', '4415', '汕尾市', '441521', '海丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2150 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441523', '4415', '00,44,4415', '陆河县', '44' + , '广东省', '4415', '汕尾市', '441523', '陆河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2151 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441581', '4415', '00,44,4415', '陆丰市', '44' + , '广东省', '4415', '汕尾市', '441581', '陆丰市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2152 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4416', '44', '00,44', '河源市', '44' + , '广东省', '4416', '河源市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2153 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441602', '4416', '00,44,4416', '源城区', '44' + , '广东省', '4416', '河源市', '441602', '源城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2154 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441621', '4416', '00,44,4416', '紫金县', '44' + , '广东省', '4416', '河源市', '441621', '紫金县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2155 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441622', '4416', '00,44,4416', '龙川县', '44' + , '广东省', '4416', '河源市', '441622', '龙川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2156 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441623', '4416', '00,44,4416', '连平县', '44' + , '广东省', '4416', '河源市', '441623', '连平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2157 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441624', '4416', '00,44,4416', '和平县', '44' + , '广东省', '4416', '河源市', '441624', '和平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2158 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441625', '4416', '00,44,4416', '东源县', '44' + , '广东省', '4416', '河源市', '441625', '东源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2159 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4417', '44', '00,44', '阳江市', '44' + , '广东省', '4417', '阳江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2160 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441702', '4417', '00,44,4417', '江城区', '44' + , '广东省', '4417', '阳江市', '441702', '江城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2161 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441704', '4417', '00,44,4417', '阳东区', '44' + , '广东省', '4417', '阳江市', '441704', '阳东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2162 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441721', '4417', '00,44,4417', '阳西县', '44' + , '广东省', '4417', '阳江市', '441721', '阳西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2163 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441781', '4417', '00,44,4417', '阳春市', '44' + , '广东省', '4417', '阳江市', '441781', '阳春市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2164 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4418', '44', '00,44', '清远市', '44' + , '广东省', '4418', '清远市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2165 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441802', '4418', '00,44,4418', '清城区', '44' + , '广东省', '4418', '清远市', '441802', '清城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2166 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441803', '4418', '00,44,4418', '清新区', '44' + , '广东省', '4418', '清远市', '441803', '清新区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2167 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441821', '4418', '00,44,4418', '佛冈县', '44' + , '广东省', '4418', '清远市', '441821', '佛冈县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2168 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441823', '4418', '00,44,4418', '阳山县', '44' + , '广东省', '4418', '清远市', '441823', '阳山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2169 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441825', '4418', '00,44,4418', '连山壮族瑶族自治县', '44' + , '广东省', '4418', '清远市', '441825', '连山壮族瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2170 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441826', '4418', '00,44,4418', '连南瑶族自治县', '44' + , '广东省', '4418', '清远市', '441826', '连南瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2171 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441881', '4418', '00,44,4418', '英德市', '44' + , '广东省', '4418', '清远市', '441881', '英德市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2172 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441882', '4418', '00,44,4418', '连州市', '44' + , '广东省', '4418', '清远市', '441882', '连州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2173 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4419', '44', '00,44', '东莞市', '44' + , '广东省', '4419', '东莞市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2174 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441900', '4419', '00,44,4419', '东莞市', '44' + , '广东省', '4419', '东莞市', '441900', '东莞市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2175 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4420', '44', '00,44', '中山市', '44' + , '广东省', '4420', '中山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2176 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('442000', '4420', '00,44,4420', '中山市', '44' + , '广东省', '4420', '中山市', '442000', '中山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2177 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4451', '44', '00,44', '潮州市', '44' + , '广东省', '4451', '潮州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2178 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445102', '4451', '00,44,4451', '湘桥区', '44' + , '广东省', '4451', '潮州市', '445102', '湘桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2179 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445103', '4451', '00,44,4451', '潮安区', '44' + , '广东省', '4451', '潮州市', '445103', '潮安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2180 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445122', '4451', '00,44,4451', '饶平县', '44' + , '广东省', '4451', '潮州市', '445122', '饶平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2181 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4452', '44', '00,44', '揭阳市', '44' + , '广东省', '4452', '揭阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2182 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445202', '4452', '00,44,4452', '榕城区', '44' + , '广东省', '4452', '揭阳市', '445202', '榕城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2183 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445203', '4452', '00,44,4452', '揭东区', '44' + , '广东省', '4452', '揭阳市', '445203', '揭东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2184 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445222', '4452', '00,44,4452', '揭西县', '44' + , '广东省', '4452', '揭阳市', '445222', '揭西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2185 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445224', '4452', '00,44,4452', '惠来县', '44' + , '广东省', '4452', '揭阳市', '445224', '惠来县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2186 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445281', '4452', '00,44,4452', '普宁市', '44' + , '广东省', '4452', '揭阳市', '445281', '普宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2187 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4453', '44', '00,44', '云浮市', '44' + , '广东省', '4453', '云浮市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2188 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445302', '4453', '00,44,4453', '云城区', '44' + , '广东省', '4453', '云浮市', '445302', '云城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2189 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445303', '4453', '00,44,4453', '云安区', '44' + , '广东省', '4453', '云浮市', '445303', '云安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2190 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445321', '4453', '00,44,4453', '新兴县', '44' + , '广东省', '4453', '云浮市', '445321', '新兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2191 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445322', '4453', '00,44,4453', '郁南县', '44' + , '广东省', '4453', '云浮市', '445322', '郁南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2192 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('445381', '4453', '00,44,4453', '罗定市', '44' + , '广东省', '4453', '云浮市', '445381', '罗定市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2193 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('45', '00', '00', '广西壮族自治区', '45' + , '广西壮族自治区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2194 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4501', '45', '00,45', '南宁市', '45' + , '广西壮族自治区', '4501', '南宁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2195 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450102', '4501', '00,45,4501', '兴宁区', '45' + , '广西壮族自治区', '4501', '南宁市', '450102', '兴宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2196 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450103', '4501', '00,45,4501', '青秀区', '45' + , '广西壮族自治区', '4501', '南宁市', '450103', '青秀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2197 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450105', '4501', '00,45,4501', '江南区', '45' + , '广西壮族自治区', '4501', '南宁市', '450105', '江南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2198 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450107', '4501', '00,45,4501', '西乡塘区', '45' + , '广西壮族自治区', '4501', '南宁市', '450107', '西乡塘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2199 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450108', '4501', '00,45,4501', '良庆区', '45' + , '广西壮族自治区', '4501', '南宁市', '450108', '良庆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2200 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450109', '4501', '00,45,4501', '邕宁区', '45' + , '广西壮族自治区', '4501', '南宁市', '450109', '邕宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2201 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450110', '4501', '00,45,4501', '武鸣区', '45' + , '广西壮族自治区', '4501', '南宁市', '450110', '武鸣区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2202 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450123', '4501', '00,45,4501', '隆安县', '45' + , '广西壮族自治区', '4501', '南宁市', '450123', '隆安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2203 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450124', '4501', '00,45,4501', '马山县', '45' + , '广西壮族自治区', '4501', '南宁市', '450124', '马山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2204 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450125', '4501', '00,45,4501', '上林县', '45' + , '广西壮族自治区', '4501', '南宁市', '450125', '上林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2205 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450126', '4501', '00,45,4501', '宾阳县', '45' + , '广西壮族自治区', '4501', '南宁市', '450126', '宾阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2206 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450127', '4501', '00,45,4501', '横县', '45' + , '广西壮族自治区', '4501', '南宁市', '450127', '横县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2207 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4502', '45', '00,45', '柳州市', '45' + , '广西壮族自治区', '4502', '柳州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2208 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450202', '4502', '00,45,4502', '城中区', '45' + , '广西壮族自治区', '4502', '柳州市', '450202', '城中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2209 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450203', '4502', '00,45,4502', '鱼峰区', '45' + , '广西壮族自治区', '4502', '柳州市', '450203', '鱼峰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2210 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450204', '4502', '00,45,4502', '柳南区', '45' + , '广西壮族自治区', '4502', '柳州市', '450204', '柳南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2211 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450205', '4502', '00,45,4502', '柳北区', '45' + , '广西壮族自治区', '4502', '柳州市', '450205', '柳北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2212 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450206', '4502', '00,45,4502', '柳江区', '45' + , '广西壮族自治区', '4502', '柳州市', '450206', '柳江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2213 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450222', '4502', '00,45,4502', '柳城县', '45' + , '广西壮族自治区', '4502', '柳州市', '450222', '柳城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2214 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450223', '4502', '00,45,4502', '鹿寨县', '45' + , '广西壮族自治区', '4502', '柳州市', '450223', '鹿寨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2215 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450224', '4502', '00,45,4502', '融安县', '45' + , '广西壮族自治区', '4502', '柳州市', '450224', '融安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2216 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450225', '4502', '00,45,4502', '融水苗族自治县', '45' + , '广西壮族自治区', '4502', '柳州市', '450225', '融水苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2217 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450226', '4502', '00,45,4502', '三江侗族自治县', '45' + , '广西壮族自治区', '4502', '柳州市', '450226', '三江侗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2218 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4503', '45', '00,45', '桂林市', '45' + , '广西壮族自治区', '4503', '桂林市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2219 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450302', '4503', '00,45,4503', '秀峰区', '45' + , '广西壮族自治区', '4503', '桂林市', '450302', '秀峰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2220 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450303', '4503', '00,45,4503', '叠彩区', '45' + , '广西壮族自治区', '4503', '桂林市', '450303', '叠彩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2221 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450304', '4503', '00,45,4503', '象山区', '45' + , '广西壮族自治区', '4503', '桂林市', '450304', '象山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2222 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440232', '4402', '00,44,4402', '乳源瑶族自治县', '44' + , '广东省', '4402', '韶关市', '440232', '乳源瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2223 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('331003', '3310', '00,33,3310', '黄岩区', '33' + , '浙江省', '3310', '台州市', '331003', '黄岩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2224 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450312', '4503', '00,45,4503', '临桂区', '45' + , '广西壮族自治区', '4503', '桂林市', '450312', '临桂区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2225 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411521', '4115', '00,41,4115', '罗山县', '41' + , '河南省', '4115', '信阳市', '411521', '罗山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2226 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411522', '4115', '00,41,4115', '光山县', '41' + , '河南省', '4115', '信阳市', '411522', '光山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2227 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411523', '4115', '00,41,4115', '新县', '41' + , '河南省', '4115', '信阳市', '411523', '新县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2228 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411524', '4115', '00,41,4115', '商城县', '41' + , '河南省', '4115', '信阳市', '411524', '商城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2229 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411525', '4115', '00,41,4115', '固始县', '41' + , '河南省', '4115', '信阳市', '411525', '固始县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2230 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411526', '4115', '00,41,4115', '潢川县', '41' + , '河南省', '4115', '信阳市', '411526', '潢川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2231 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411527', '4115', '00,41,4115', '淮滨县', '41' + , '河南省', '4115', '信阳市', '411527', '淮滨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2232 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411528', '4115', '00,41,4115', '息县', '41' + , '河南省', '4115', '信阳市', '411528', '息县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2233 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4116', '41', '00,41', '周口市', '41' + , '河南省', '4116', '周口市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2234 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411602', '4116', '00,41,4116', '川汇区', '41' + , '河南省', '4116', '周口市', '411602', '川汇区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2235 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411603', '4116', '00,41,4116', '淮阳区', '41' + , '河南省', '4116', '周口市', '411603', '淮阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2236 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411621', '4116', '00,41,4116', '扶沟县', '41' + , '河南省', '4116', '周口市', '411621', '扶沟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2237 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411622', '4116', '00,41,4116', '西华县', '41' + , '河南省', '4116', '周口市', '411622', '西华县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2238 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411623', '4116', '00,41,4116', '商水县', '41' + , '河南省', '4116', '周口市', '411623', '商水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2239 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411624', '4116', '00,41,4116', '沈丘县', '41' + , '河南省', '4116', '周口市', '411624', '沈丘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2240 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411625', '4116', '00,41,4116', '郸城县', '41' + , '河南省', '4116', '周口市', '411625', '郸城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2241 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411627', '4116', '00,41,4116', '太康县', '41' + , '河南省', '4116', '周口市', '411627', '太康县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2242 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411628', '4116', '00,41,4116', '鹿邑县', '41' + , '河南省', '4116', '周口市', '411628', '鹿邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2243 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411681', '4116', '00,41,4116', '项城市', '41' + , '河南省', '4116', '周口市', '411681', '项城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2244 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4117', '41', '00,41', '驻马店市', '41' + , '河南省', '4117', '驻马店市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2245 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411702', '4117', '00,41,4117', '驿城区', '41' + , '河南省', '4117', '驻马店市', '411702', '驿城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2246 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411721', '4117', '00,41,4117', '西平县', '41' + , '河南省', '4117', '驻马店市', '411721', '西平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2247 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411722', '4117', '00,41,4117', '上蔡县', '41' + , '河南省', '4117', '驻马店市', '411722', '上蔡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2248 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411723', '4117', '00,41,4117', '平舆县', '41' + , '河南省', '4117', '驻马店市', '411723', '平舆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2249 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411724', '4117', '00,41,4117', '正阳县', '41' + , '河南省', '4117', '驻马店市', '411724', '正阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2250 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411725', '4117', '00,41,4117', '确山县', '41' + , '河南省', '4117', '驻马店市', '411725', '确山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2251 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411726', '4117', '00,41,4117', '泌阳县', '41' + , '河南省', '4117', '驻马店市', '411726', '泌阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2252 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411727', '4117', '00,41,4117', '汝南县', '41' + , '河南省', '4117', '驻马店市', '411727', '汝南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2253 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411728', '4117', '00,41,4117', '遂平县', '41' + , '河南省', '4117', '驻马店市', '411728', '遂平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2254 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411729', '4117', '00,41,4117', '新蔡县', '41' + , '河南省', '4117', '驻马店市', '411729', '新蔡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2255 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4190', '41', '00,41', '省直辖县级行政区', '41' + , '河南省', '4190', '省直辖县级行政区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2256 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('419001', '4190', '00,41,4190', '济源市', '41' + , '河南省', '4190', '省直辖县级行政区', '419001', '济源市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2257 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('42', '00', '00', '湖北省', '42' + , '湖北省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2258 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4201', '42', '00,42', '武汉市', '42' + , '湖北省', '4201', '武汉市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2259 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420102', '4201', '00,42,4201', '江岸区', '42' + , '湖北省', '4201', '武汉市', '420102', '江岸区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2260 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420103', '4201', '00,42,4201', '江汉区', '42' + , '湖北省', '4201', '武汉市', '420103', '江汉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2261 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420104', '4201', '00,42,4201', '硚口区', '42' + , '湖北省', '4201', '武汉市', '420104', '硚口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2262 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420105', '4201', '00,42,4201', '汉阳区', '42' + , '湖北省', '4201', '武汉市', '420105', '汉阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2263 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420106', '4201', '00,42,4201', '武昌区', '42' + , '湖北省', '4201', '武汉市', '420106', '武昌区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2264 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420107', '4201', '00,42,4201', '青山区', '42' + , '湖北省', '4201', '武汉市', '420107', '青山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2265 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420111', '4201', '00,42,4201', '洪山区', '42' + , '湖北省', '4201', '武汉市', '420111', '洪山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2266 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420112', '4201', '00,42,4201', '东西湖区', '42' + , '湖北省', '4201', '武汉市', '420112', '东西湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2267 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420113', '4201', '00,42,4201', '汉南区', '42' + , '湖北省', '4201', '武汉市', '420113', '汉南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2268 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420114', '4201', '00,42,4201', '蔡甸区', '42' + , '湖北省', '4201', '武汉市', '420114', '蔡甸区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2269 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420115', '4201', '00,42,4201', '江夏区', '42' + , '湖北省', '4201', '武汉市', '420115', '江夏区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2270 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420116', '4201', '00,42,4201', '黄陂区', '42' + , '湖北省', '4201', '武汉市', '420116', '黄陂区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2271 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420117', '4201', '00,42,4201', '新洲区', '42' + , '湖北省', '4201', '武汉市', '420117', '新洲区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2272 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4202', '42', '00,42', '黄石市', '42' + , '湖北省', '4202', '黄石市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2273 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420202', '4202', '00,42,4202', '黄石港区', '42' + , '湖北省', '4202', '黄石市', '420202', '黄石港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2274 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420203', '4202', '00,42,4202', '西塞山区', '42' + , '湖北省', '4202', '黄石市', '420203', '西塞山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2275 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420204', '4202', '00,42,4202', '下陆区', '42' + , '湖北省', '4202', '黄石市', '420204', '下陆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2276 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420205', '4202', '00,42,4202', '铁山区', '42' + , '湖北省', '4202', '黄石市', '420205', '铁山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2277 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420222', '4202', '00,42,4202', '阳新县', '42' + , '湖北省', '4202', '黄石市', '420222', '阳新县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2278 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420281', '4202', '00,42,4202', '大冶市', '42' + , '湖北省', '4202', '黄石市', '420281', '大冶市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2279 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4203', '42', '00,42', '十堰市', '42' + , '湖北省', '4203', '十堰市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2280 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420302', '4203', '00,42,4203', '茅箭区', '42' + , '湖北省', '4203', '十堰市', '420302', '茅箭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2281 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420303', '4203', '00,42,4203', '张湾区', '42' + , '湖北省', '4203', '十堰市', '420303', '张湾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2282 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420304', '4203', '00,42,4203', '郧阳区', '42' + , '湖北省', '4203', '十堰市', '420304', '郧阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2283 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420322', '4203', '00,42,4203', '郧西县', '42' + , '湖北省', '4203', '十堰市', '420322', '郧西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2284 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420323', '4203', '00,42,4203', '竹山县', '42' + , '湖北省', '4203', '十堰市', '420323', '竹山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2285 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420324', '4203', '00,42,4203', '竹溪县', '42' + , '湖北省', '4203', '十堰市', '420324', '竹溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2286 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420325', '4203', '00,42,4203', '房县', '42' + , '湖北省', '4203', '十堰市', '420325', '房县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2287 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420381', '4203', '00,42,4203', '丹江口市', '42' + , '湖北省', '4203', '十堰市', '420381', '丹江口市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2288 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4205', '42', '00,42', '宜昌市', '42' + , '湖北省', '4205', '宜昌市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2289 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420502', '4205', '00,42,4205', '西陵区', '42' + , '湖北省', '4205', '宜昌市', '420502', '西陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2290 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420503', '4205', '00,42,4205', '伍家岗区', '42' + , '湖北省', '4205', '宜昌市', '420503', '伍家岗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2291 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420504', '4205', '00,42,4205', '点军区', '42' + , '湖北省', '4205', '宜昌市', '420504', '点军区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2292 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420505', '4205', '00,42,4205', '猇亭区', '42' + , '湖北省', '4205', '宜昌市', '420505', '猇亭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2293 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420506', '4205', '00,42,4205', '夷陵区', '42' + , '湖北省', '4205', '宜昌市', '420506', '夷陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2294 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420525', '4205', '00,42,4205', '远安县', '42' + , '湖北省', '4205', '宜昌市', '420525', '远安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2295 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420526', '4205', '00,42,4205', '兴山县', '42' + , '湖北省', '4205', '宜昌市', '420526', '兴山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2296 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420527', '4205', '00,42,4205', '秭归县', '42' + , '湖北省', '4205', '宜昌市', '420527', '秭归县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2297 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420528', '4205', '00,42,4205', '长阳土家族自治县', '42' + , '湖北省', '4205', '宜昌市', '420528', '长阳土家族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2298 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511702', '5117', '00,51,5117', '通川区', '51' + , '四川省', '5117', '达州市', '511702', '通川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2299 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511703', '5117', '00,51,5117', '达川区', '51' + , '四川省', '5117', '达州市', '511703', '达川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2300 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420602', '4206', '00,42,4206', '襄城区', '42' + , '湖北省', '4206', '襄阳市', '420602', '襄城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2301 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420606', '4206', '00,42,4206', '樊城区', '42' + , '湖北省', '4206', '襄阳市', '420606', '樊城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2302 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450321', '4503', '00,45,4503', '阳朔县', '45' + , '广西壮族自治区', '4503', '桂林市', '450321', '阳朔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2303 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450323', '4503', '00,45,4503', '灵川县', '45' + , '广西壮族自治区', '4503', '桂林市', '450323', '灵川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2304 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450324', '4503', '00,45,4503', '全州县', '45' + , '广西壮族自治区', '4503', '桂林市', '450324', '全州县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2305 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450325', '4503', '00,45,4503', '兴安县', '45' + , '广西壮族自治区', '4503', '桂林市', '450325', '兴安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2306 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450326', '4503', '00,45,4503', '永福县', '45' + , '广西壮族自治区', '4503', '桂林市', '450326', '永福县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2307 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450327', '4503', '00,45,4503', '灌阳县', '45' + , '广西壮族自治区', '4503', '桂林市', '450327', '灌阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2308 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450328', '4503', '00,45,4503', '龙胜各族自治县', '45' + , '广西壮族自治区', '4503', '桂林市', '450328', '龙胜各族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2309 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450329', '4503', '00,45,4503', '资源县', '45' + , '广西壮族自治区', '4503', '桂林市', '450329', '资源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2310 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450330', '4503', '00,45,4503', '平乐县', '45' + , '广西壮族自治区', '4503', '桂林市', '450330', '平乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2311 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450332', '4503', '00,45,4503', '恭城瑶族自治县', '45' + , '广西壮族自治区', '4503', '桂林市', '450332', '恭城瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2312 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450381', '4503', '00,45,4503', '荔浦市', '45' + , '广西壮族自治区', '4503', '桂林市', '450381', '荔浦市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2313 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4504', '45', '00,45', '梧州市', '45' + , '广西壮族自治区', '4504', '梧州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2314 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450403', '4504', '00,45,4504', '万秀区', '45' + , '广西壮族自治区', '4504', '梧州市', '450403', '万秀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2315 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450405', '4504', '00,45,4504', '长洲区', '45' + , '广西壮族自治区', '4504', '梧州市', '450405', '长洲区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2316 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450406', '4504', '00,45,4504', '龙圩区', '45' + , '广西壮族自治区', '4504', '梧州市', '450406', '龙圩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2317 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450421', '4504', '00,45,4504', '苍梧县', '45' + , '广西壮族自治区', '4504', '梧州市', '450421', '苍梧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2318 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450422', '4504', '00,45,4504', '藤县', '45' + , '广西壮族自治区', '4504', '梧州市', '450422', '藤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2319 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450423', '4504', '00,45,4504', '蒙山县', '45' + , '广西壮族自治区', '4504', '梧州市', '450423', '蒙山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2320 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450481', '4504', '00,45,4504', '岑溪市', '45' + , '广西壮族自治区', '4504', '梧州市', '450481', '岑溪市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2321 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4505', '45', '00,45', '北海市', '45' + , '广西壮族自治区', '4505', '北海市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2322 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450502', '4505', '00,45,4505', '海城区', '45' + , '广西壮族自治区', '4505', '北海市', '450502', '海城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2323 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450503', '4505', '00,45,4505', '银海区', '45' + , '广西壮族自治区', '4505', '北海市', '450503', '银海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2324 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450512', '4505', '00,45,4505', '铁山港区', '45' + , '广西壮族自治区', '4505', '北海市', '450512', '铁山港区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2325 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450521', '4505', '00,45,4505', '合浦县', '45' + , '广西壮族自治区', '4505', '北海市', '450521', '合浦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2326 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4506', '45', '00,45', '防城港市', '45' + , '广西壮族自治区', '4506', '防城港市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2327 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450602', '4506', '00,45,4506', '港口区', '45' + , '广西壮族自治区', '4506', '防城港市', '450602', '港口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2328 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450603', '4506', '00,45,4506', '防城区', '45' + , '广西壮族自治区', '4506', '防城港市', '450603', '防城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2329 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450621', '4506', '00,45,4506', '上思县', '45' + , '广西壮族自治区', '4506', '防城港市', '450621', '上思县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2330 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450681', '4506', '00,45,4506', '东兴市', '45' + , '广西壮族自治区', '4506', '防城港市', '450681', '东兴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2331 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4507', '45', '00,45', '钦州市', '45' + , '广西壮族自治区', '4507', '钦州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2332 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450702', '4507', '00,45,4507', '钦南区', '45' + , '广西壮族自治区', '4507', '钦州市', '450702', '钦南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2333 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450703', '4507', '00,45,4507', '钦北区', '45' + , '广西壮族自治区', '4507', '钦州市', '450703', '钦北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2334 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450721', '4507', '00,45,4507', '灵山县', '45' + , '广西壮族自治区', '4507', '钦州市', '450721', '灵山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2335 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450722', '4507', '00,45,4507', '浦北县', '45' + , '广西壮族自治区', '4507', '钦州市', '450722', '浦北县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2336 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4508', '45', '00,45', '贵港市', '45' + , '广西壮族自治区', '4508', '贵港市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2337 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450802', '4508', '00,45,4508', '港北区', '45' + , '广西壮族自治区', '4508', '贵港市', '450802', '港北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2338 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450803', '4508', '00,45,4508', '港南区', '45' + , '广西壮族自治区', '4508', '贵港市', '450803', '港南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2339 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450804', '4508', '00,45,4508', '覃塘区', '45' + , '广西壮族自治区', '4508', '贵港市', '450804', '覃塘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2340 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450821', '4508', '00,45,4508', '平南县', '45' + , '广西壮族自治区', '4508', '贵港市', '450821', '平南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2341 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450881', '4508', '00,45,4508', '桂平市', '45' + , '广西壮族自治区', '4508', '贵港市', '450881', '桂平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2342 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4509', '45', '00,45', '玉林市', '45' + , '广西壮族自治区', '4509', '玉林市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2343 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450902', '4509', '00,45,4509', '玉州区', '45' + , '广西壮族自治区', '4509', '玉林市', '450902', '玉州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2344 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450903', '4509', '00,45,4509', '福绵区', '45' + , '广西壮族自治区', '4509', '玉林市', '450903', '福绵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2345 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450921', '4509', '00,45,4509', '容县', '45' + , '广西壮族自治区', '4509', '玉林市', '450921', '容县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2346 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450922', '4509', '00,45,4509', '陆川县', '45' + , '广西壮族自治区', '4509', '玉林市', '450922', '陆川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2347 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450923', '4509', '00,45,4509', '博白县', '45' + , '广西壮族自治区', '4509', '玉林市', '450923', '博白县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2348 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460300', '4603', '00,46,4603', '三沙市', '46' + , '海南省', '4603', '三沙市', '460300', '三沙市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2349 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450924', '4509', '00,45,4509', '兴业县', '45' + , '广西壮族自治区', '4509', '玉林市', '450924', '兴业县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2350 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450981', '4509', '00,45,4509', '北流市', '45' + , '广西壮族自治区', '4509', '玉林市', '450981', '北流市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2351 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4510', '45', '00,45', '百色市', '45' + , '广西壮族自治区', '4510', '百色市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2352 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451002', '4510', '00,45,4510', '右江区', '45' + , '广西壮族自治区', '4510', '百色市', '451002', '右江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2353 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451003', '4510', '00,45,4510', '田阳区', '45' + , '广西壮族自治区', '4510', '百色市', '451003', '田阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2354 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451022', '4510', '00,45,4510', '田东县', '45' + , '广西壮族自治区', '4510', '百色市', '451022', '田东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2355 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451024', '4510', '00,45,4510', '德保县', '45' + , '广西壮族自治区', '4510', '百色市', '451024', '德保县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2356 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451026', '4510', '00,45,4510', '那坡县', '45' + , '广西壮族自治区', '4510', '百色市', '451026', '那坡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2357 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451027', '4510', '00,45,4510', '凌云县', '45' + , '广西壮族自治区', '4510', '百色市', '451027', '凌云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2358 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451028', '4510', '00,45,4510', '乐业县', '45' + , '广西壮族自治区', '4510', '百色市', '451028', '乐业县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2359 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451029', '4510', '00,45,4510', '田林县', '45' + , '广西壮族自治区', '4510', '百色市', '451029', '田林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2360 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451030', '4510', '00,45,4510', '西林县', '45' + , '广西壮族自治区', '4510', '百色市', '451030', '西林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2361 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451031', '4510', '00,45,4510', '隆林各族自治县', '45' + , '广西壮族自治区', '4510', '百色市', '451031', '隆林各族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2362 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451081', '4510', '00,45,4510', '靖西市', '45' + , '广西壮族自治区', '4510', '百色市', '451081', '靖西市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2363 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451082', '4510', '00,45,4510', '平果市', '45' + , '广西壮族自治区', '4510', '百色市', '451082', '平果市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2364 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4511', '45', '00,45', '贺州市', '45' + , '广西壮族自治区', '4511', '贺州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2365 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451102', '4511', '00,45,4511', '八步区', '45' + , '广西壮族自治区', '4511', '贺州市', '451102', '八步区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2366 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451103', '4511', '00,45,4511', '平桂区', '45' + , '广西壮族自治区', '4511', '贺州市', '451103', '平桂区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2367 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420529', '4205', '00,42,4205', '五峰土家族自治县', '42' + , '湖北省', '4205', '宜昌市', '420529', '五峰土家族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2368 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420581', '4205', '00,42,4205', '宜都市', '42' + , '湖北省', '4205', '宜昌市', '420581', '宜都市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2369 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420582', '4205', '00,42,4205', '当阳市', '42' + , '湖北省', '4205', '宜昌市', '420582', '当阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2370 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522328', '5223', '00,52,5223', '安龙县', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522328', '安龙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2371 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5226', '52', '00,52', '黔东南苗族侗族自治州', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2372 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430105', '4301', '00,43,4301', '开福区', '43' + , '湖南省', '4301', '长沙市', '430105', '开福区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2373 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430111', '4301', '00,43,4301', '雨花区', '43' + , '湖南省', '4301', '长沙市', '430111', '雨花区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2374 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430112', '4301', '00,43,4301', '望城区', '43' + , '湖南省', '4301', '长沙市', '430112', '望城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2375 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430121', '4301', '00,43,4301', '长沙县', '43' + , '湖南省', '4301', '长沙市', '430121', '长沙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2376 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430181', '4301', '00,43,4301', '浏阳市', '43' + , '湖南省', '4301', '长沙市', '430181', '浏阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2377 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430182', '4301', '00,43,4301', '宁乡市', '43' + , '湖南省', '4301', '长沙市', '430182', '宁乡市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2378 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4302', '43', '00,43', '株洲市', '43' + , '湖南省', '4302', '株洲市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2379 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430202', '4302', '00,43,4302', '荷塘区', '43' + , '湖南省', '4302', '株洲市', '430202', '荷塘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2380 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430203', '4302', '00,43,4302', '芦淞区', '43' + , '湖南省', '4302', '株洲市', '430203', '芦淞区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2381 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430204', '4302', '00,43,4302', '石峰区', '43' + , '湖南省', '4302', '株洲市', '430204', '石峰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2382 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430211', '4302', '00,43,4302', '天元区', '43' + , '湖南省', '4302', '株洲市', '430211', '天元区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2383 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430212', '4302', '00,43,4302', '渌口区', '43' + , '湖南省', '4302', '株洲市', '430212', '渌口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2384 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430223', '4302', '00,43,4302', '攸县', '43' + , '湖南省', '4302', '株洲市', '430223', '攸县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2385 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430224', '4302', '00,43,4302', '茶陵县', '43' + , '湖南省', '4302', '株洲市', '430224', '茶陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2386 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430225', '4302', '00,43,4302', '炎陵县', '43' + , '湖南省', '4302', '株洲市', '430225', '炎陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2387 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430281', '4302', '00,43,4302', '醴陵市', '43' + , '湖南省', '4302', '株洲市', '430281', '醴陵市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2388 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4303', '43', '00,43', '湘潭市', '43' + , '湖南省', '4303', '湘潭市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2389 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430302', '4303', '00,43,4303', '雨湖区', '43' + , '湖南省', '4303', '湘潭市', '430302', '雨湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2390 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430304', '4303', '00,43,4303', '岳塘区', '43' + , '湖南省', '4303', '湘潭市', '430304', '岳塘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2391 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430321', '4303', '00,43,4303', '湘潭县', '43' + , '湖南省', '4303', '湘潭市', '430321', '湘潭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2392 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430381', '4303', '00,43,4303', '湘乡市', '43' + , '湖南省', '4303', '湘潭市', '430381', '湘乡市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2393 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430382', '4303', '00,43,4303', '韶山市', '43' + , '湖南省', '4303', '湘潭市', '430382', '韶山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2394 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4304', '43', '00,43', '衡阳市', '43' + , '湖南省', '4304', '衡阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2395 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430405', '4304', '00,43,4304', '珠晖区', '43' + , '湖南省', '4304', '衡阳市', '430405', '珠晖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2396 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430406', '4304', '00,43,4304', '雁峰区', '43' + , '湖南省', '4304', '衡阳市', '430406', '雁峰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2397 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430407', '4304', '00,43,4304', '石鼓区', '43' + , '湖南省', '4304', '衡阳市', '430407', '石鼓区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2398 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430408', '4304', '00,43,4304', '蒸湘区', '43' + , '湖南省', '4304', '衡阳市', '430408', '蒸湘区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2399 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430412', '4304', '00,43,4304', '南岳区', '43' + , '湖南省', '4304', '衡阳市', '430412', '南岳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2400 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430421', '4304', '00,43,4304', '衡阳县', '43' + , '湖南省', '4304', '衡阳市', '430421', '衡阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2401 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430422', '4304', '00,43,4304', '衡南县', '43' + , '湖南省', '4304', '衡阳市', '430422', '衡南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2402 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430423', '4304', '00,43,4304', '衡山县', '43' + , '湖南省', '4304', '衡阳市', '430423', '衡山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2403 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430424', '4304', '00,43,4304', '衡东县', '43' + , '湖南省', '4304', '衡阳市', '430424', '衡东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2404 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430426', '4304', '00,43,4304', '祁东县', '43' + , '湖南省', '4304', '衡阳市', '430426', '祁东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2405 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430481', '4304', '00,43,4304', '耒阳市', '43' + , '湖南省', '4304', '衡阳市', '430481', '耒阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2406 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430482', '4304', '00,43,4304', '常宁市', '43' + , '湖南省', '4304', '衡阳市', '430482', '常宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2407 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4305', '43', '00,43', '邵阳市', '43' + , '湖南省', '4305', '邵阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2408 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430502', '4305', '00,43,4305', '双清区', '43' + , '湖南省', '4305', '邵阳市', '430502', '双清区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2409 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430503', '4305', '00,43,4305', '大祥区', '43' + , '湖南省', '4305', '邵阳市', '430503', '大祥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2410 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430511', '4305', '00,43,4305', '北塔区', '43' + , '湖南省', '4305', '邵阳市', '430511', '北塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2411 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430522', '4305', '00,43,4305', '新邵县', '43' + , '湖南省', '4305', '邵阳市', '430522', '新邵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2412 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430523', '4305', '00,43,4305', '邵阳县', '43' + , '湖南省', '4305', '邵阳市', '430523', '邵阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2413 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430524', '4305', '00,43,4305', '隆回县', '43' + , '湖南省', '4305', '邵阳市', '430524', '隆回县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2414 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430525', '4305', '00,43,4305', '洞口县', '43' + , '湖南省', '4305', '邵阳市', '430525', '洞口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2415 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430527', '4305', '00,43,4305', '绥宁县', '43' + , '湖南省', '4305', '邵阳市', '430527', '绥宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2416 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430528', '4305', '00,43,4305', '新宁县', '43' + , '湖南省', '4305', '邵阳市', '430528', '新宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2417 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430529', '4305', '00,43,4305', '城步苗族自治县', '43' + , '湖南省', '4305', '邵阳市', '430529', '城步苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2418 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430581', '4305', '00,43,4305', '武冈市', '43' + , '湖南省', '4305', '邵阳市', '430581', '武冈市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2419 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430582', '4305', '00,43,4305', '邵东市', '43' + , '湖南省', '4305', '邵阳市', '430582', '邵东市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2420 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4306', '43', '00,43', '岳阳市', '43' + , '湖南省', '4306', '岳阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2421 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430602', '4306', '00,43,4306', '岳阳楼区', '43' + , '湖南省', '4306', '岳阳市', '430602', '岳阳楼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2422 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430603', '4306', '00,43,4306', '云溪区', '43' + , '湖南省', '4306', '岳阳市', '430603', '云溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2423 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430611', '4306', '00,43,4306', '君山区', '43' + , '湖南省', '4306', '岳阳市', '430611', '君山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2424 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430621', '4306', '00,43,4306', '岳阳县', '43' + , '湖南省', '4306', '岳阳市', '430621', '岳阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2425 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430623', '4306', '00,43,4306', '华容县', '43' + , '湖南省', '4306', '岳阳市', '430623', '华容县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2426 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430624', '4306', '00,43,4306', '湘阴县', '43' + , '湖南省', '4306', '岳阳市', '430624', '湘阴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2427 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430626', '4306', '00,43,4306', '平江县', '43' + , '湖南省', '4306', '岳阳市', '430626', '平江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2428 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430681', '4306', '00,43,4306', '汨罗市', '43' + , '湖南省', '4306', '岳阳市', '430681', '汨罗市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2429 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430682', '4306', '00,43,4306', '临湘市', '43' + , '湖南省', '4306', '岳阳市', '430682', '临湘市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2430 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4307', '43', '00,43', '常德市', '43' + , '湖南省', '4307', '常德市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2431 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430702', '4307', '00,43,4307', '武陵区', '43' + , '湖南省', '4307', '常德市', '430702', '武陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2432 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430703', '4307', '00,43,4307', '鼎城区', '43' + , '湖南省', '4307', '常德市', '430703', '鼎城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2433 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430721', '4307', '00,43,4307', '安乡县', '43' + , '湖南省', '4307', '常德市', '430721', '安乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2434 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430722', '4307', '00,43,4307', '汉寿县', '43' + , '湖南省', '4307', '常德市', '430722', '汉寿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2435 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430723', '4307', '00,43,4307', '澧县', '43' + , '湖南省', '4307', '常德市', '430723', '澧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2436 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430724', '4307', '00,43,4307', '临澧县', '43' + , '湖南省', '4307', '常德市', '430724', '临澧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2437 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430725', '4307', '00,43,4307', '桃源县', '43' + , '湖南省', '4307', '常德市', '430725', '桃源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2438 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430726', '4307', '00,43,4307', '石门县', '43' + , '湖南省', '4307', '常德市', '430726', '石门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2439 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430781', '4307', '00,43,4307', '津市市', '43' + , '湖南省', '4307', '常德市', '430781', '津市市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2440 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4308', '43', '00,43', '张家界市', '43' + , '湖南省', '4308', '张家界市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2441 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430802', '4308', '00,43,4308', '永定区', '43' + , '湖南省', '4308', '张家界市', '430802', '永定区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2442 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430811', '4308', '00,43,4308', '武陵源区', '43' + , '湖南省', '4308', '张家界市', '430811', '武陵源区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2443 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430821', '4308', '00,43,4308', '慈利县', '43' + , '湖南省', '4308', '张家界市', '430821', '慈利县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2444 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430822', '4308', '00,43,4308', '桑植县', '43' + , '湖南省', '4308', '张家界市', '430822', '桑植县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2445 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4309', '43', '00,43', '益阳市', '43' + , '湖南省', '4309', '益阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2446 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430902', '4309', '00,43,4309', '资阳区', '43' + , '湖南省', '4309', '益阳市', '430902', '资阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2447 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430903', '4309', '00,43,4309', '赫山区', '43' + , '湖南省', '4309', '益阳市', '430903', '赫山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2448 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430921', '4309', '00,43,4309', '南县', '43' + , '湖南省', '4309', '益阳市', '430921', '南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2449 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430922', '4309', '00,43,4309', '桃江县', '43' + , '湖南省', '4309', '益阳市', '430922', '桃江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2450 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('3410', '34', '00,34', '黄山市', '34' + , '安徽省', '3410', '黄山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2451 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410611', '4106', '00,41,4106', '淇滨区', '41' + , '河南省', '4106', '鹤壁市', '410611', '淇滨区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2452 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410621', '4106', '00,41,4106', '浚县', '41' + , '河南省', '4106', '鹤壁市', '410621', '浚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2453 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410622', '4106', '00,41,4106', '淇县', '41' + , '河南省', '4106', '鹤壁市', '410622', '淇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2454 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4107', '41', '00,41', '新乡市', '41' + , '河南省', '4107', '新乡市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2455 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410702', '4107', '00,41,4107', '红旗区', '41' + , '河南省', '4107', '新乡市', '410702', '红旗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2456 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410703', '4107', '00,41,4107', '卫滨区', '41' + , '河南省', '4107', '新乡市', '410703', '卫滨区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2457 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410704', '4107', '00,41,4107', '凤泉区', '41' + , '河南省', '4107', '新乡市', '410704', '凤泉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2458 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410711', '4107', '00,41,4107', '牧野区', '41' + , '河南省', '4107', '新乡市', '410711', '牧野区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2459 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410721', '4107', '00,41,4107', '新乡县', '41' + , '河南省', '4107', '新乡市', '410721', '新乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2460 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410724', '4107', '00,41,4107', '获嘉县', '41' + , '河南省', '4107', '新乡市', '410724', '获嘉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2461 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410725', '4107', '00,41,4107', '原阳县', '41' + , '河南省', '4107', '新乡市', '410725', '原阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2462 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410726', '4107', '00,41,4107', '延津县', '41' + , '河南省', '4107', '新乡市', '410726', '延津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2463 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410727', '4107', '00,41,4107', '封丘县', '41' + , '河南省', '4107', '新乡市', '410727', '封丘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2464 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410781', '4107', '00,41,4107', '卫辉市', '41' + , '河南省', '4107', '新乡市', '410781', '卫辉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2465 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410782', '4107', '00,41,4107', '辉县市', '41' + , '河南省', '4107', '新乡市', '410782', '辉县市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2466 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410783', '4107', '00,41,4107', '长垣市', '41' + , '河南省', '4107', '新乡市', '410783', '长垣市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2467 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4108', '41', '00,41', '焦作市', '41' + , '河南省', '4108', '焦作市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2468 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410802', '4108', '00,41,4108', '解放区', '41' + , '河南省', '4108', '焦作市', '410802', '解放区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2469 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410803', '4108', '00,41,4108', '中站区', '41' + , '河南省', '4108', '焦作市', '410803', '中站区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2470 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410804', '4108', '00,41,4108', '马村区', '41' + , '河南省', '4108', '焦作市', '410804', '马村区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2471 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410811', '4108', '00,41,4108', '山阳区', '41' + , '河南省', '4108', '焦作市', '410811', '山阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2472 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410821', '4108', '00,41,4108', '修武县', '41' + , '河南省', '4108', '焦作市', '410821', '修武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2473 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410822', '4108', '00,41,4108', '博爱县', '41' + , '河南省', '4108', '焦作市', '410822', '博爱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2474 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410823', '4108', '00,41,4108', '武陟县', '41' + , '河南省', '4108', '焦作市', '410823', '武陟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2475 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410825', '4108', '00,41,4108', '温县', '41' + , '河南省', '4108', '焦作市', '410825', '温县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2476 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410882', '4108', '00,41,4108', '沁阳市', '41' + , '河南省', '4108', '焦作市', '410882', '沁阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2477 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410883', '4108', '00,41,4108', '孟州市', '41' + , '河南省', '4108', '焦作市', '410883', '孟州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2478 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4109', '41', '00,41', '濮阳市', '41' + , '河南省', '4109', '濮阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2479 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410902', '4109', '00,41,4109', '华龙区', '41' + , '河南省', '4109', '濮阳市', '410902', '华龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2480 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410922', '4109', '00,41,4109', '清丰县', '41' + , '河南省', '4109', '濮阳市', '410922', '清丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2481 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410923', '4109', '00,41,4109', '南乐县', '41' + , '河南省', '4109', '濮阳市', '410923', '南乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2482 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410926', '4109', '00,41,4109', '范县', '41' + , '河南省', '4109', '濮阳市', '410926', '范县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2483 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410927', '4109', '00,41,4109', '台前县', '41' + , '河南省', '4109', '濮阳市', '410927', '台前县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2484 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410928', '4109', '00,41,4109', '濮阳县', '41' + , '河南省', '4109', '濮阳市', '410928', '濮阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2485 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4110', '41', '00,41', '许昌市', '41' + , '河南省', '4110', '许昌市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2486 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411002', '4110', '00,41,4110', '魏都区', '41' + , '河南省', '4110', '许昌市', '411002', '魏都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2487 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411003', '4110', '00,41,4110', '建安区', '41' + , '河南省', '4110', '许昌市', '411003', '建安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2488 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411024', '4110', '00,41,4110', '鄢陵县', '41' + , '河南省', '4110', '许昌市', '411024', '鄢陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2489 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411025', '4110', '00,41,4110', '襄城县', '41' + , '河南省', '4110', '许昌市', '411025', '襄城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2490 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411081', '4110', '00,41,4110', '禹州市', '41' + , '河南省', '4110', '许昌市', '411081', '禹州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2491 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411082', '4110', '00,41,4110', '长葛市', '41' + , '河南省', '4110', '许昌市', '411082', '长葛市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2492 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4111', '41', '00,41', '漯河市', '41' + , '河南省', '4111', '漯河市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2493 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411102', '4111', '00,41,4111', '源汇区', '41' + , '河南省', '4111', '漯河市', '411102', '源汇区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2494 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411103', '4111', '00,41,4111', '郾城区', '41' + , '河南省', '4111', '漯河市', '411103', '郾城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2495 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411104', '4111', '00,41,4111', '召陵区', '41' + , '河南省', '4111', '漯河市', '411104', '召陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2496 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411121', '4111', '00,41,4111', '舞阳县', '41' + , '河南省', '4111', '漯河市', '411121', '舞阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2497 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411122', '4111', '00,41,4111', '临颍县', '41' + , '河南省', '4111', '漯河市', '411122', '临颍县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2498 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4112', '41', '00,41', '三门峡市', '41' + , '河南省', '4112', '三门峡市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2499 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411202', '4112', '00,41,4112', '湖滨区', '41' + , '河南省', '4112', '三门峡市', '411202', '湖滨区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2500 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411203', '4112', '00,41,4112', '陕州区', '41' + , '河南省', '4112', '三门峡市', '411203', '陕州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2501 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411221', '4112', '00,41,4112', '渑池县', '41' + , '河南省', '4112', '三门峡市', '411221', '渑池县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2502 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411224', '4112', '00,41,4112', '卢氏县', '41' + , '河南省', '4112', '三门峡市', '411224', '卢氏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2503 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411281', '4112', '00,41,4112', '义马市', '41' + , '河南省', '4112', '三门峡市', '411281', '义马市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2504 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411282', '4112', '00,41,4112', '灵宝市', '41' + , '河南省', '4112', '三门峡市', '411282', '灵宝市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2505 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4113', '41', '00,41', '南阳市', '41' + , '河南省', '4113', '南阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2506 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411302', '4113', '00,41,4113', '宛城区', '41' + , '河南省', '4113', '南阳市', '411302', '宛城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2507 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411303', '4113', '00,41,4113', '卧龙区', '41' + , '河南省', '4113', '南阳市', '411303', '卧龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2508 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411321', '4113', '00,41,4113', '南召县', '41' + , '河南省', '4113', '南阳市', '411321', '南召县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2509 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411322', '4113', '00,41,4113', '方城县', '41' + , '河南省', '4113', '南阳市', '411322', '方城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2510 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411323', '4113', '00,41,4113', '西峡县', '41' + , '河南省', '4113', '南阳市', '411323', '西峡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2511 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411324', '4113', '00,41,4113', '镇平县', '41' + , '河南省', '4113', '南阳市', '411324', '镇平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2512 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411325', '4113', '00,41,4113', '内乡县', '41' + , '河南省', '4113', '南阳市', '411325', '内乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2513 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411326', '4113', '00,41,4113', '淅川县', '41' + , '河南省', '4113', '南阳市', '411326', '淅川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2514 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411327', '4113', '00,41,4113', '社旗县', '41' + , '河南省', '4113', '南阳市', '411327', '社旗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2515 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411328', '4113', '00,41,4113', '唐河县', '41' + , '河南省', '4113', '南阳市', '411328', '唐河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2516 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411329', '4113', '00,41,4113', '新野县', '41' + , '河南省', '4113', '南阳市', '411329', '新野县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2517 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411330', '4113', '00,41,4113', '桐柏县', '41' + , '河南省', '4113', '南阳市', '411330', '桐柏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2518 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411381', '4113', '00,41,4113', '邓州市', '41' + , '河南省', '4113', '南阳市', '411381', '邓州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2519 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4114', '41', '00,41', '商丘市', '41' + , '河南省', '4114', '商丘市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2520 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411402', '4114', '00,41,4114', '梁园区', '41' + , '河南省', '4114', '商丘市', '411402', '梁园区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2521 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411403', '4114', '00,41,4114', '睢阳区', '41' + , '河南省', '4114', '商丘市', '411403', '睢阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2522 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411421', '4114', '00,41,4114', '民权县', '41' + , '河南省', '4114', '商丘市', '411421', '民权县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2523 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411422', '4114', '00,41,4114', '睢县', '41' + , '河南省', '4114', '商丘市', '411422', '睢县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2524 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411423', '4114', '00,41,4114', '宁陵县', '41' + , '河南省', '4114', '商丘市', '411423', '宁陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2525 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411424', '4114', '00,41,4114', '柘城县', '41' + , '河南省', '4114', '商丘市', '411424', '柘城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2526 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522327', '5223', '00,52,5223', '册亨县', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522327', '册亨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2527 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450305', '4503', '00,45,4503', '七星区', '45' + , '广西壮族自治区', '4503', '桂林市', '450305', '七星区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2528 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411426', '4114', '00,41,4114', '夏邑县', '41' + , '河南省', '4114', '商丘市', '411426', '夏邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2529 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440281', '4402', '00,44,4402', '乐昌市', '44' + , '广东省', '4402', '韶关市', '440281', '乐昌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2530 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440282', '4402', '00,44,4402', '南雄市', '44' + , '广东省', '4402', '韶关市', '440282', '南雄市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2531 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4403', '44', '00,44', '深圳市', '44' + , '广东省', '4403', '深圳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2532 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440303', '4403', '00,44,4403', '罗湖区', '44' + , '广东省', '4403', '深圳市', '440303', '罗湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2533 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440304', '4403', '00,44,4403', '福田区', '44' + , '广东省', '4403', '深圳市', '440304', '福田区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2534 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440305', '4403', '00,44,4403', '南山区', '44' + , '广东省', '4403', '深圳市', '440305', '南山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2535 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440306', '4403', '00,44,4403', '宝安区', '44' + , '广东省', '4403', '深圳市', '440306', '宝安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2536 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440307', '4403', '00,44,4403', '龙岗区', '44' + , '广东省', '4403', '深圳市', '440307', '龙岗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2537 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440308', '4403', '00,44,4403', '盐田区', '44' + , '广东省', '4403', '深圳市', '440308', '盐田区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2538 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440309', '4403', '00,44,4403', '龙华区', '44' + , '广东省', '4403', '深圳市', '440309', '龙华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2539 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440310', '4403', '00,44,4403', '坪山区', '44' + , '广东省', '4403', '深圳市', '440310', '坪山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2540 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4604', '46', '00,46', '儋州市', '46' + , '海南省', '4604', '儋州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2541 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440311', '4403', '00,44,4403', '光明区', '44' + , '广东省', '4403', '深圳市', '440311', '光明区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2542 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4404', '44', '00,44', '珠海市', '44' + , '广东省', '4404', '珠海市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2543 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440402', '4404', '00,44,4404', '香洲区', '44' + , '广东省', '4404', '珠海市', '440402', '香洲区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2544 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440403', '4404', '00,44,4404', '斗门区', '44' + , '广东省', '4404', '珠海市', '440403', '斗门区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2545 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440404', '4404', '00,44,4404', '金湾区', '44' + , '广东省', '4404', '珠海市', '440404', '金湾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2546 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4405', '44', '00,44', '汕头市', '44' + , '广东省', '4405', '汕头市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2547 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440507', '4405', '00,44,4405', '龙湖区', '44' + , '广东省', '4405', '汕头市', '440507', '龙湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2548 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440511', '4405', '00,44,4405', '金平区', '44' + , '广东省', '4405', '汕头市', '440511', '金平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2549 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440512', '4405', '00,44,4405', '濠江区', '44' + , '广东省', '4405', '汕头市', '440512', '濠江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2550 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440513', '4405', '00,44,4405', '潮阳区', '44' + , '广东省', '4405', '汕头市', '440513', '潮阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2551 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440514', '4405', '00,44,4405', '潮南区', '44' + , '广东省', '4405', '汕头市', '440514', '潮南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2552 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440515', '4405', '00,44,4405', '澄海区', '44' + , '广东省', '4405', '汕头市', '440515', '澄海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2553 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440523', '4405', '00,44,4405', '南澳县', '44' + , '广东省', '4405', '汕头市', '440523', '南澳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2554 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4406', '44', '00,44', '佛山市', '44' + , '广东省', '4406', '佛山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2555 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440604', '4406', '00,44,4406', '禅城区', '44' + , '广东省', '4406', '佛山市', '440604', '禅城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2556 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440605', '4406', '00,44,4406', '南海区', '44' + , '广东省', '4406', '佛山市', '440605', '南海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2557 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440606', '4406', '00,44,4406', '顺德区', '44' + , '广东省', '4406', '佛山市', '440606', '顺德区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2558 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440607', '4406', '00,44,4406', '三水区', '44' + , '广东省', '4406', '佛山市', '440607', '三水区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2559 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440608', '4406', '00,44,4406', '高明区', '44' + , '广东省', '4406', '佛山市', '440608', '高明区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2560 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4407', '44', '00,44', '江门市', '44' + , '广东省', '4407', '江门市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2561 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440703', '4407', '00,44,4407', '蓬江区', '44' + , '广东省', '4407', '江门市', '440703', '蓬江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2562 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440704', '4407', '00,44,4407', '江海区', '44' + , '广东省', '4407', '江门市', '440704', '江海区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2563 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440705', '4407', '00,44,4407', '新会区', '44' + , '广东省', '4407', '江门市', '440705', '新会区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2564 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440781', '4407', '00,44,4407', '台山市', '44' + , '广东省', '4407', '江门市', '440781', '台山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2565 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440783', '4407', '00,44,4407', '开平市', '44' + , '广东省', '4407', '江门市', '440783', '开平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2566 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440784', '4407', '00,44,4407', '鹤山市', '44' + , '广东省', '4407', '江门市', '440784', '鹤山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2567 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440785', '4407', '00,44,4407', '恩平市', '44' + , '广东省', '4407', '江门市', '440785', '恩平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2568 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4408', '44', '00,44', '湛江市', '44' + , '广东省', '4408', '湛江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2569 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440802', '4408', '00,44,4408', '赤坎区', '44' + , '广东省', '4408', '湛江市', '440802', '赤坎区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2570 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440803', '4408', '00,44,4408', '霞山区', '44' + , '广东省', '4408', '湛江市', '440803', '霞山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2571 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440804', '4408', '00,44,4408', '坡头区', '44' + , '广东省', '4408', '湛江市', '440804', '坡头区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2572 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440811', '4408', '00,44,4408', '麻章区', '44' + , '广东省', '4408', '湛江市', '440811', '麻章区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2573 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440823', '4408', '00,44,4408', '遂溪县', '44' + , '广东省', '4408', '湛江市', '440823', '遂溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2574 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440825', '4408', '00,44,4408', '徐闻县', '44' + , '广东省', '4408', '湛江市', '440825', '徐闻县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2575 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440881', '4408', '00,44,4408', '廉江市', '44' + , '广东省', '4408', '湛江市', '440881', '廉江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2576 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440882', '4408', '00,44,4408', '雷州市', '44' + , '广东省', '4408', '湛江市', '440882', '雷州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2577 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440883', '4408', '00,44,4408', '吴川市', '44' + , '广东省', '4408', '湛江市', '440883', '吴川市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2578 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4409', '44', '00,44', '茂名市', '44' + , '广东省', '4409', '茂名市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2579 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440902', '4409', '00,44,4409', '茂南区', '44' + , '广东省', '4409', '茂名市', '440902', '茂南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2580 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440904', '4409', '00,44,4409', '电白区', '44' + , '广东省', '4409', '茂名市', '440904', '电白区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2581 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440981', '4409', '00,44,4409', '高州市', '44' + , '广东省', '4409', '茂名市', '440981', '高州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2582 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440982', '4409', '00,44,4409', '化州市', '44' + , '广东省', '4409', '茂名市', '440982', '化州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2583 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440983', '4409', '00,44,4409', '信宜市', '44' + , '广东省', '4409', '茂名市', '440983', '信宜市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2584 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4412', '44', '00,44', '肇庆市', '44' + , '广东省', '4412', '肇庆市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2585 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441202', '4412', '00,44,4412', '端州区', '44' + , '广东省', '4412', '肇庆市', '441202', '端州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2586 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441203', '4412', '00,44,4412', '鼎湖区', '44' + , '广东省', '4412', '肇庆市', '441203', '鼎湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2587 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441204', '4412', '00,44,4412', '高要区', '44' + , '广东省', '4412', '肇庆市', '441204', '高要区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2588 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441223', '4412', '00,44,4412', '广宁县', '44' + , '广东省', '4412', '肇庆市', '441223', '广宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2589 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441224', '4412', '00,44,4412', '怀集县', '44' + , '广东省', '4412', '肇庆市', '441224', '怀集县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2590 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441225', '4412', '00,44,4412', '封开县', '44' + , '广东省', '4412', '肇庆市', '441225', '封开县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2591 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441226', '4412', '00,44,4412', '德庆县', '44' + , '广东省', '4412', '肇庆市', '441226', '德庆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2592 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441284', '4412', '00,44,4412', '四会市', '44' + , '广东省', '4412', '肇庆市', '441284', '四会市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2593 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4413', '44', '00,44', '惠州市', '44' + , '广东省', '4413', '惠州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2594 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441302', '4413', '00,44,4413', '惠城区', '44' + , '广东省', '4413', '惠州市', '441302', '惠城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2595 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441303', '4413', '00,44,4413', '惠阳区', '44' + , '广东省', '4413', '惠州市', '441303', '惠阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2596 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441322', '4413', '00,44,4413', '博罗县', '44' + , '广东省', '4413', '惠州市', '441322', '博罗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2597 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441323', '4413', '00,44,4413', '惠东县', '44' + , '广东省', '4413', '惠州市', '441323', '惠东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2598 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441324', '4413', '00,44,4413', '龙门县', '44' + , '广东省', '4413', '惠州市', '441324', '龙门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2599 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4414', '44', '00,44', '梅州市', '44' + , '广东省', '4414', '梅州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2600 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441402', '4414', '00,44,4414', '梅江区', '44' + , '广东省', '4414', '梅州市', '441402', '梅江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2601 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441403', '4414', '00,44,4414', '梅县区', '44' + , '广东省', '4414', '梅州市', '441403', '梅县区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2602 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441422', '4414', '00,44,4414', '大埔县', '44' + , '广东省', '4414', '梅州市', '441422', '大埔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2603 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441423', '4414', '00,44,4414', '丰顺县', '44' + , '广东省', '4414', '梅州市', '441423', '丰顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2604 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441424', '4414', '00,44,4414', '五华县', '44' + , '广东省', '4414', '梅州市', '441424', '五华县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2605 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410527', '4105', '00,41,4105', '内黄县', '41' + , '河南省', '4105', '安阳市', '410527', '内黄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2606 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410581', '4105', '00,41,4105', '林州市', '41' + , '河南省', '4105', '安阳市', '410581', '林州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2607 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4106', '41', '00,41', '鹤壁市', '41' + , '河南省', '4106', '鹤壁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2608 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410602', '4106', '00,41,4106', '鹤山区', '41' + , '河南省', '4106', '鹤壁市', '410602', '鹤山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2609 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411481', '4114', '00,41,4114', '永城市', '41' + , '河南省', '4114', '商丘市', '411481', '永城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2610 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4115', '41', '00,41', '信阳市', '41' + , '河南省', '4115', '信阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2611 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411502', '4115', '00,41,4115', '浉河区', '41' + , '河南省', '4115', '信阳市', '411502', '浉河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2612 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411503', '4115', '00,41,4115', '平桥区', '41' + , '河南省', '4115', '信阳市', '411503', '平桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2613 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('340882', '3408', '00,34,3408', '潜山市', '34' + , '安徽省', '3408', '安庆市', '340882', '潜山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2614 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4206', '42', '00,42', '襄阳市', '42' + , '湖北省', '4206', '襄阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2615 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430923', '4309', '00,43,4309', '安化县', '43' + , '湖南省', '4309', '益阳市', '430923', '安化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2616 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430981', '4309', '00,43,4309', '沅江市', '43' + , '湖南省', '4309', '益阳市', '430981', '沅江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2617 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4310', '43', '00,43', '郴州市', '43' + , '湖南省', '4310', '郴州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2618 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431002', '4310', '00,43,4310', '北湖区', '43' + , '湖南省', '4310', '郴州市', '431002', '北湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2619 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431003', '4310', '00,43,4310', '苏仙区', '43' + , '湖南省', '4310', '郴州市', '431003', '苏仙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2620 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431021', '4310', '00,43,4310', '桂阳县', '43' + , '湖南省', '4310', '郴州市', '431021', '桂阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2621 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431022', '4310', '00,43,4310', '宜章县', '43' + , '湖南省', '4310', '郴州市', '431022', '宜章县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2622 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431023', '4310', '00,43,4310', '永兴县', '43' + , '湖南省', '4310', '郴州市', '431023', '永兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2623 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431024', '4310', '00,43,4310', '嘉禾县', '43' + , '湖南省', '4310', '郴州市', '431024', '嘉禾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2624 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431025', '4310', '00,43,4310', '临武县', '43' + , '湖南省', '4310', '郴州市', '431025', '临武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2625 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431026', '4310', '00,43,4310', '汝城县', '43' + , '湖南省', '4310', '郴州市', '431026', '汝城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2626 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431027', '4310', '00,43,4310', '桂东县', '43' + , '湖南省', '4310', '郴州市', '431027', '桂东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2627 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431028', '4310', '00,43,4310', '安仁县', '43' + , '湖南省', '4310', '郴州市', '431028', '安仁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2628 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431081', '4310', '00,43,4310', '资兴市', '43' + , '湖南省', '4310', '郴州市', '431081', '资兴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2629 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4311', '43', '00,43', '永州市', '43' + , '湖南省', '4311', '永州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2630 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431102', '4311', '00,43,4311', '零陵区', '43' + , '湖南省', '4311', '永州市', '431102', '零陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2631 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431103', '4311', '00,43,4311', '冷水滩区', '43' + , '湖南省', '4311', '永州市', '431103', '冷水滩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2632 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431121', '4311', '00,43,4311', '祁阳县', '43' + , '湖南省', '4311', '永州市', '431121', '祁阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2633 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431122', '4311', '00,43,4311', '东安县', '43' + , '湖南省', '4311', '永州市', '431122', '东安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2634 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431123', '4311', '00,43,4311', '双牌县', '43' + , '湖南省', '4311', '永州市', '431123', '双牌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2635 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431124', '4311', '00,43,4311', '道县', '43' + , '湖南省', '4311', '永州市', '431124', '道县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2636 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431125', '4311', '00,43,4311', '江永县', '43' + , '湖南省', '4311', '永州市', '431125', '江永县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2637 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431126', '4311', '00,43,4311', '宁远县', '43' + , '湖南省', '4311', '永州市', '431126', '宁远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2638 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431127', '4311', '00,43,4311', '蓝山县', '43' + , '湖南省', '4311', '永州市', '431127', '蓝山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2639 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431128', '4311', '00,43,4311', '新田县', '43' + , '湖南省', '4311', '永州市', '431128', '新田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2640 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431129', '4311', '00,43,4311', '江华瑶族自治县', '43' + , '湖南省', '4311', '永州市', '431129', '江华瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2641 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4312', '43', '00,43', '怀化市', '43' + , '湖南省', '4312', '怀化市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2642 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431202', '4312', '00,43,4312', '鹤城区', '43' + , '湖南省', '4312', '怀化市', '431202', '鹤城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2643 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431221', '4312', '00,43,4312', '中方县', '43' + , '湖南省', '4312', '怀化市', '431221', '中方县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2644 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431222', '4312', '00,43,4312', '沅陵县', '43' + , '湖南省', '4312', '怀化市', '431222', '沅陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2645 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431223', '4312', '00,43,4312', '辰溪县', '43' + , '湖南省', '4312', '怀化市', '431223', '辰溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2646 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431224', '4312', '00,43,4312', '溆浦县', '43' + , '湖南省', '4312', '怀化市', '431224', '溆浦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2647 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431225', '4312', '00,43,4312', '会同县', '43' + , '湖南省', '4312', '怀化市', '431225', '会同县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2648 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431226', '4312', '00,43,4312', '麻阳苗族自治县', '43' + , '湖南省', '4312', '怀化市', '431226', '麻阳苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2649 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431227', '4312', '00,43,4312', '新晃侗族自治县', '43' + , '湖南省', '4312', '怀化市', '431227', '新晃侗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2650 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431228', '4312', '00,43,4312', '芷江侗族自治县', '43' + , '湖南省', '4312', '怀化市', '431228', '芷江侗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2651 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431229', '4312', '00,43,4312', '靖州苗族侗族自治县', '43' + , '湖南省', '4312', '怀化市', '431229', '靖州苗族侗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2652 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431230', '4312', '00,43,4312', '通道侗族自治县', '43' + , '湖南省', '4312', '怀化市', '431230', '通道侗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2653 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431281', '4312', '00,43,4312', '洪江市', '43' + , '湖南省', '4312', '怀化市', '431281', '洪江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2654 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4313', '43', '00,43', '娄底市', '43' + , '湖南省', '4313', '娄底市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2655 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431302', '4313', '00,43,4313', '娄星区', '43' + , '湖南省', '4313', '娄底市', '431302', '娄星区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2656 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431321', '4313', '00,43,4313', '双峰县', '43' + , '湖南省', '4313', '娄底市', '431321', '双峰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2657 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431322', '4313', '00,43,4313', '新化县', '43' + , '湖南省', '4313', '娄底市', '431322', '新化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2658 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431381', '4313', '00,43,4313', '冷水江市', '43' + , '湖南省', '4313', '娄底市', '431381', '冷水江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2659 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('431382', '4313', '00,43,4313', '涟源市', '43' + , '湖南省', '4313', '娄底市', '431382', '涟源市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2660 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4331', '43', '00,43', '湘西土家族苗族自治州', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2661 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433101', '4331', '00,43,4331', '吉首市', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433101', '吉首市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2662 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433122', '4331', '00,43,4331', '泸溪县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433122', '泸溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2663 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433123', '4331', '00,43,4331', '凤凰县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433123', '凤凰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2664 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433124', '4331', '00,43,4331', '花垣县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433124', '花垣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2665 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433125', '4331', '00,43,4331', '保靖县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433125', '保靖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2666 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433126', '4331', '00,43,4331', '古丈县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433126', '古丈县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2667 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433127', '4331', '00,43,4331', '永顺县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433127', '永顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2668 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('433130', '4331', '00,43,4331', '龙山县', '43' + , '湖南省', '4331', '湘西土家族苗族自治州', '433130', '龙山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2669 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('44', '00', '00', '广东省', '44' + , '广东省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2670 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4401', '44', '00,44', '广州市', '44' + , '广东省', '4401', '广州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2671 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440103', '4401', '00,44,4401', '荔湾区', '44' + , '广东省', '4401', '广州市', '440103', '荔湾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2672 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440104', '4401', '00,44,4401', '越秀区', '44' + , '广东省', '4401', '广州市', '440104', '越秀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2673 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440105', '4401', '00,44,4401', '海珠区', '44' + , '广东省', '4401', '广州市', '440105', '海珠区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2674 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440106', '4401', '00,44,4401', '天河区', '44' + , '广东省', '4401', '广州市', '440106', '天河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2675 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440111', '4401', '00,44,4401', '白云区', '44' + , '广东省', '4401', '广州市', '440111', '白云区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2676 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440112', '4401', '00,44,4401', '黄埔区', '44' + , '广东省', '4401', '广州市', '440112', '黄埔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2677 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440113', '4401', '00,44,4401', '番禺区', '44' + , '广东省', '4401', '广州市', '440113', '番禺区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2678 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440114', '4401', '00,44,4401', '花都区', '44' + , '广东省', '4401', '广州市', '440114', '花都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2679 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440115', '4401', '00,44,4401', '南沙区', '44' + , '广东省', '4401', '广州市', '440115', '南沙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2680 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440117', '4401', '00,44,4401', '从化区', '44' + , '广东省', '4401', '广州市', '440117', '从化区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2681 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440118', '4401', '00,44,4401', '增城区', '44' + , '广东省', '4401', '广州市', '440118', '增城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2682 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4402', '44', '00,44', '韶关市', '44' + , '广东省', '4402', '韶关市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2683 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440203', '4402', '00,44,4402', '武江区', '44' + , '广东省', '4402', '韶关市', '440203', '武江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2684 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440204', '4402', '00,44,4402', '浈江区', '44' + , '广东省', '4402', '韶关市', '440204', '浈江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2685 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440205', '4402', '00,44,4402', '曲江区', '44' + , '广东省', '4402', '韶关市', '440205', '曲江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2686 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440222', '4402', '00,44,4402', '始兴县', '44' + , '广东省', '4402', '韶关市', '440222', '始兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2687 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440224', '4402', '00,44,4402', '仁化县', '44' + , '广东省', '4402', '韶关市', '440224', '仁化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2688 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440229', '4402', '00,44,4402', '翁源县', '44' + , '广东省', '4402', '韶关市', '440229', '翁源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2689 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('411425', '4114', '00,41,4114', '虞城县', '41' + , '河南省', '4114', '商丘市', '411425', '虞城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2690 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('440233', '4402', '00,44,4402', '新丰县', '44' + , '广东省', '4402', '韶关市', '440233', '新丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2691 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420625', '4206', '00,42,4206', '谷城县', '42' + , '湖北省', '4206', '襄阳市', '420625', '谷城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2692 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420626', '4206', '00,42,4206', '保康县', '42' + , '湖北省', '4206', '襄阳市', '420626', '保康县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2693 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420682', '4206', '00,42,4206', '老河口市', '42' + , '湖北省', '4206', '襄阳市', '420682', '老河口市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2694 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420683', '4206', '00,42,4206', '枣阳市', '42' + , '湖北省', '4206', '襄阳市', '420683', '枣阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2695 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420684', '4206', '00,42,4206', '宜城市', '42' + , '湖北省', '4206', '襄阳市', '420684', '宜城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2696 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4207', '42', '00,42', '鄂州市', '42' + , '湖北省', '4207', '鄂州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2697 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420702', '4207', '00,42,4207', '梁子湖区', '42' + , '湖北省', '4207', '鄂州市', '420702', '梁子湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2698 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420703', '4207', '00,42,4207', '华容区', '42' + , '湖北省', '4207', '鄂州市', '420703', '华容区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2699 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420704', '4207', '00,42,4207', '鄂城区', '42' + , '湖北省', '4207', '鄂州市', '420704', '鄂城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2700 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4208', '42', '00,42', '荆门市', '42' + , '湖北省', '4208', '荆门市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2701 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420802', '4208', '00,42,4208', '东宝区', '42' + , '湖北省', '4208', '荆门市', '420802', '东宝区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2702 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420804', '4208', '00,42,4208', '掇刀区', '42' + , '湖北省', '4208', '荆门市', '420804', '掇刀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2703 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420822', '4208', '00,42,4208', '沙洋县', '42' + , '湖北省', '4208', '荆门市', '420822', '沙洋县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2704 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420881', '4208', '00,42,4208', '钟祥市', '42' + , '湖北省', '4208', '荆门市', '420881', '钟祥市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2705 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420882', '4208', '00,42,4208', '京山市', '42' + , '湖北省', '4208', '荆门市', '420882', '京山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2706 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4209', '42', '00,42', '孝感市', '42' + , '湖北省', '4209', '孝感市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2707 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420902', '4209', '00,42,4209', '孝南区', '42' + , '湖北省', '4209', '孝感市', '420902', '孝南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2708 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420921', '4209', '00,42,4209', '孝昌县', '42' + , '湖北省', '4209', '孝感市', '420921', '孝昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2709 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420922', '4209', '00,42,4209', '大悟县', '42' + , '湖北省', '4209', '孝感市', '420922', '大悟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2710 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420923', '4209', '00,42,4209', '云梦县', '42' + , '湖北省', '4209', '孝感市', '420923', '云梦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2711 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420981', '4209', '00,42,4209', '应城市', '42' + , '湖北省', '4209', '孝感市', '420981', '应城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2712 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420982', '4209', '00,42,4209', '安陆市', '42' + , '湖北省', '4209', '孝感市', '420982', '安陆市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2713 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420984', '4209', '00,42,4209', '汉川市', '42' + , '湖北省', '4209', '孝感市', '420984', '汉川市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2714 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4210', '42', '00,42', '荆州市', '42' + , '湖北省', '4210', '荆州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2715 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421002', '4210', '00,42,4210', '沙市区', '42' + , '湖北省', '4210', '荆州市', '421002', '沙市区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2716 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421003', '4210', '00,42,4210', '荆州区', '42' + , '湖北省', '4210', '荆州市', '421003', '荆州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2717 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421022', '4210', '00,42,4210', '公安县', '42' + , '湖北省', '4210', '荆州市', '421022', '公安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2718 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421023', '4210', '00,42,4210', '监利县', '42' + , '湖北省', '4210', '荆州市', '421023', '监利县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2719 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421024', '4210', '00,42,4210', '江陵县', '42' + , '湖北省', '4210', '荆州市', '421024', '江陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2720 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421081', '4210', '00,42,4210', '石首市', '42' + , '湖北省', '4210', '荆州市', '421081', '石首市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2721 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421083', '4210', '00,42,4210', '洪湖市', '42' + , '湖北省', '4210', '荆州市', '421083', '洪湖市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2722 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421087', '4210', '00,42,4210', '松滋市', '42' + , '湖北省', '4210', '荆州市', '421087', '松滋市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2723 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4211', '42', '00,42', '黄冈市', '42' + , '湖北省', '4211', '黄冈市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2724 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421102', '4211', '00,42,4211', '黄州区', '42' + , '湖北省', '4211', '黄冈市', '421102', '黄州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2725 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421121', '4211', '00,42,4211', '团风县', '42' + , '湖北省', '4211', '黄冈市', '421121', '团风县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2726 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421122', '4211', '00,42,4211', '红安县', '42' + , '湖北省', '4211', '黄冈市', '421122', '红安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2727 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421123', '4211', '00,42,4211', '罗田县', '42' + , '湖北省', '4211', '黄冈市', '421123', '罗田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2728 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421124', '4211', '00,42,4211', '英山县', '42' + , '湖北省', '4211', '黄冈市', '421124', '英山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2729 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421125', '4211', '00,42,4211', '浠水县', '42' + , '湖北省', '4211', '黄冈市', '421125', '浠水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2730 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421126', '4211', '00,42,4211', '蕲春县', '42' + , '湖北省', '4211', '黄冈市', '421126', '蕲春县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2731 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421127', '4211', '00,42,4211', '黄梅县', '42' + , '湖北省', '4211', '黄冈市', '421127', '黄梅县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2732 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421181', '4211', '00,42,4211', '麻城市', '42' + , '湖北省', '4211', '黄冈市', '421181', '麻城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2733 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421182', '4211', '00,42,4211', '武穴市', '42' + , '湖北省', '4211', '黄冈市', '421182', '武穴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2734 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4212', '42', '00,42', '咸宁市', '42' + , '湖北省', '4212', '咸宁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2735 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421202', '4212', '00,42,4212', '咸安区', '42' + , '湖北省', '4212', '咸宁市', '421202', '咸安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2736 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421221', '4212', '00,42,4212', '嘉鱼县', '42' + , '湖北省', '4212', '咸宁市', '421221', '嘉鱼县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2737 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421222', '4212', '00,42,4212', '通城县', '42' + , '湖北省', '4212', '咸宁市', '421222', '通城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2738 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421223', '4212', '00,42,4212', '崇阳县', '42' + , '湖北省', '4212', '咸宁市', '421223', '崇阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2739 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421224', '4212', '00,42,4212', '通山县', '42' + , '湖北省', '4212', '咸宁市', '421224', '通山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2740 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421281', '4212', '00,42,4212', '赤壁市', '42' + , '湖北省', '4212', '咸宁市', '421281', '赤壁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2741 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4213', '42', '00,42', '随州市', '42' + , '湖北省', '4213', '随州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2742 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421303', '4213', '00,42,4213', '曾都区', '42' + , '湖北省', '4213', '随州市', '421303', '曾都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2743 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421321', '4213', '00,42,4213', '随县', '42' + , '湖北省', '4213', '随州市', '421321', '随县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2744 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('421381', '4213', '00,42,4213', '广水市', '42' + , '湖北省', '4213', '随州市', '421381', '广水市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2745 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4228', '42', '00,42', '恩施土家族苗族自治州', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2746 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422801', '4228', '00,42,4228', '恩施市', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422801', '恩施市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2747 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422802', '4228', '00,42,4228', '利川市', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422802', '利川市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2748 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422822', '4228', '00,42,4228', '建始县', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422822', '建始县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2749 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422823', '4228', '00,42,4228', '巴东县', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422823', '巴东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2750 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422825', '4228', '00,42,4228', '宣恩县', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422825', '宣恩县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2751 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422826', '4228', '00,42,4228', '咸丰县', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422826', '咸丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2752 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422827', '4228', '00,42,4228', '来凤县', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422827', '来凤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2753 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('422828', '4228', '00,42,4228', '鹤峰县', '42' + , '湖北省', '4228', '恩施土家族苗族自治州', '422828', '鹤峰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2754 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4290', '42', '00,42', '省直辖县级行政区', '42' + , '湖北省', '4290', '省直辖县级行政区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2755 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('429004', '4290', '00,42,4290', '仙桃市', '42' + , '湖北省', '4290', '省直辖县级行政区', '429004', '仙桃市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2756 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('429005', '4290', '00,42,4290', '潜江市', '42' + , '湖北省', '4290', '省直辖县级行政区', '429005', '潜江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2757 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('429006', '4290', '00,42,4290', '天门市', '42' + , '湖北省', '4290', '省直辖县级行政区', '429006', '天门市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2758 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('429021', '4290', '00,42,4290', '神农架林区', '42' + , '湖北省', '4290', '省直辖县级行政区', '429021', '神农架林区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2759 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('43', '00', '00', '湖南省', '43' + , '湖南省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2760 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4301', '43', '00,43', '长沙市', '43' + , '湖南省', '4301', '长沙市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2761 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430102', '4301', '00,43,4301', '芙蓉区', '43' + , '湖南省', '4301', '长沙市', '430102', '芙蓉区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2762 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430103', '4301', '00,43,4301', '天心区', '43' + , '湖南省', '4301', '长沙市', '430103', '天心区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2763 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('430104', '4301', '00,43,4301', '岳麓区', '43' + , '湖南省', '4301', '长沙市', '430104', '岳麓区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2764 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441481', '4414', '00,44,4414', '兴宁市', '44' + , '广东省', '4414', '梅州市', '441481', '兴宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2765 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('441502', '4415', '00,44,4415', '城区', '44' + , '广东省', '4415', '汕尾市', '441502', '城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2766 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5117', '51', '00,51', '达州市', '51' + , '四川省', '5117', '达州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2767 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650502', '6505', '00,65,6505', '伊州区', '65' + , '新疆维吾尔自治区', '6505', '哈密市', '650502', '伊州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2768 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513434', '5134', '00,51,5134', '越西县', '51' + , '四川省', '5134', '凉山彝族自治州', '513434', '越西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2769 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451123', '4511', '00,45,4511', '富川瑶族自治县', '45' + , '广西壮族自治区', '4511', '贺州市', '451123', '富川瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2770 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4512', '45', '00,45', '河池市', '45' + , '广西壮族自治区', '4512', '河池市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2771 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451202', '4512', '00,45,4512', '金城江区', '45' + , '广西壮族自治区', '4512', '河池市', '451202', '金城江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2772 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451203', '4512', '00,45,4512', '宜州区', '45' + , '广西壮族自治区', '4512', '河池市', '451203', '宜州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2773 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451221', '4512', '00,45,4512', '南丹县', '45' + , '广西壮族自治区', '4512', '河池市', '451221', '南丹县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2774 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451222', '4512', '00,45,4512', '天峨县', '45' + , '广西壮族自治区', '4512', '河池市', '451222', '天峨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2775 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451223', '4512', '00,45,4512', '凤山县', '45' + , '广西壮族自治区', '4512', '河池市', '451223', '凤山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2776 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451224', '4512', '00,45,4512', '东兰县', '45' + , '广西壮族自治区', '4512', '河池市', '451224', '东兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2777 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451225', '4512', '00,45,4512', '罗城仫佬族自治县', '45' + , '广西壮族自治区', '4512', '河池市', '451225', '罗城仫佬族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2778 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451226', '4512', '00,45,4512', '环江毛南族自治县', '45' + , '广西壮族自治区', '4512', '河池市', '451226', '环江毛南族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2779 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451227', '4512', '00,45,4512', '巴马瑶族自治县', '45' + , '广西壮族自治区', '4512', '河池市', '451227', '巴马瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2780 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451228', '4512', '00,45,4512', '都安瑶族自治县', '45' + , '广西壮族自治区', '4512', '河池市', '451228', '都安瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2781 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451229', '4512', '00,45,4512', '大化瑶族自治县', '45' + , '广西壮族自治区', '4512', '河池市', '451229', '大化瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2782 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4513', '45', '00,45', '来宾市', '45' + , '广西壮族自治区', '4513', '来宾市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2783 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451302', '4513', '00,45,4513', '兴宾区', '45' + , '广西壮族自治区', '4513', '来宾市', '451302', '兴宾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2784 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451321', '4513', '00,45,4513', '忻城县', '45' + , '广西壮族自治区', '4513', '来宾市', '451321', '忻城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2785 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451322', '4513', '00,45,4513', '象州县', '45' + , '广西壮族自治区', '4513', '来宾市', '451322', '象州县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2786 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451323', '4513', '00,45,4513', '武宣县', '45' + , '广西壮族自治区', '4513', '来宾市', '451323', '武宣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2787 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451324', '4513', '00,45,4513', '金秀瑶族自治县', '45' + , '广西壮族自治区', '4513', '来宾市', '451324', '金秀瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2788 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451381', '4513', '00,45,4513', '合山市', '45' + , '广西壮族自治区', '4513', '来宾市', '451381', '合山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2789 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4514', '45', '00,45', '崇左市', '45' + , '广西壮族自治区', '4514', '崇左市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2790 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451402', '4514', '00,45,4514', '江州区', '45' + , '广西壮族自治区', '4514', '崇左市', '451402', '江州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2791 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451421', '4514', '00,45,4514', '扶绥县', '45' + , '广西壮族自治区', '4514', '崇左市', '451421', '扶绥县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2792 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451422', '4514', '00,45,4514', '宁明县', '45' + , '广西壮族自治区', '4514', '崇左市', '451422', '宁明县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2793 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451423', '4514', '00,45,4514', '龙州县', '45' + , '广西壮族自治区', '4514', '崇左市', '451423', '龙州县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2794 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451424', '4514', '00,45,4514', '大新县', '45' + , '广西壮族自治区', '4514', '崇左市', '451424', '大新县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2795 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451425', '4514', '00,45,4514', '天等县', '45' + , '广西壮族自治区', '4514', '崇左市', '451425', '天等县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2796 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451481', '4514', '00,45,4514', '凭祥市', '45' + , '广西壮族自治区', '4514', '崇左市', '451481', '凭祥市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2797 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('46', '00', '00', '海南省', '46' + , '海南省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2798 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4601', '46', '00,46', '海口市', '46' + , '海南省', '4601', '海口市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2799 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460105', '4601', '00,46,4601', '秀英区', '46' + , '海南省', '4601', '海口市', '460105', '秀英区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2800 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460106', '4601', '00,46,4601', '龙华区', '46' + , '海南省', '4601', '海口市', '460106', '龙华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2801 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460107', '4601', '00,46,4601', '琼山区', '46' + , '海南省', '4601', '海口市', '460107', '琼山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2802 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460108', '4601', '00,46,4601', '美兰区', '46' + , '海南省', '4601', '海口市', '460108', '美兰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2803 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4602', '46', '00,46', '三亚市', '46' + , '海南省', '4602', '三亚市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2804 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460202', '4602', '00,46,4602', '海棠区', '46' + , '海南省', '4602', '三亚市', '460202', '海棠区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2805 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460203', '4602', '00,46,4602', '吉阳区', '46' + , '海南省', '4602', '三亚市', '460203', '吉阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2806 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460204', '4602', '00,46,4602', '天涯区', '46' + , '海南省', '4602', '三亚市', '460204', '天涯区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2807 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460205', '4602', '00,46,4602', '崖州区', '46' + , '海南省', '4602', '三亚市', '460205', '崖州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2808 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4603', '46', '00,46', '三沙市', '46' + , '海南省', '4603', '三沙市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2809 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('460400', '4604', '00,46,4604', '儋州市', '46' + , '海南省', '4604', '儋州市', '460400', '儋州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2810 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('4690', '46', '00,46', '省直辖县级行政区', '46' + , '海南省', '4690', '省直辖县级行政区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2811 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469001', '4690', '00,46,4690', '五指山市', '46' + , '海南省', '4690', '省直辖县级行政区', '469001', '五指山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2812 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469002', '4690', '00,46,4690', '琼海市', '46' + , '海南省', '4690', '省直辖县级行政区', '469002', '琼海市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2813 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469005', '4690', '00,46,4690', '文昌市', '46' + , '海南省', '4690', '省直辖县级行政区', '469005', '文昌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2814 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469006', '4690', '00,46,4690', '万宁市', '46' + , '海南省', '4690', '省直辖县级行政区', '469006', '万宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2815 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469007', '4690', '00,46,4690', '东方市', '46' + , '海南省', '4690', '省直辖县级行政区', '469007', '东方市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2816 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469021', '4690', '00,46,4690', '定安县', '46' + , '海南省', '4690', '省直辖县级行政区', '469021', '定安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2817 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469022', '4690', '00,46,4690', '屯昌县', '46' + , '海南省', '4690', '省直辖县级行政区', '469022', '屯昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2818 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469023', '4690', '00,46,4690', '澄迈县', '46' + , '海南省', '4690', '省直辖县级行政区', '469023', '澄迈县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2819 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469024', '4690', '00,46,4690', '临高县', '46' + , '海南省', '4690', '省直辖县级行政区', '469024', '临高县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2820 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469025', '4690', '00,46,4690', '白沙黎族自治县', '46' + , '海南省', '4690', '省直辖县级行政区', '469025', '白沙黎族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2821 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469026', '4690', '00,46,4690', '昌江黎族自治县', '46' + , '海南省', '4690', '省直辖县级行政区', '469026', '昌江黎族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2822 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469027', '4690', '00,46,4690', '乐东黎族自治县', '46' + , '海南省', '4690', '省直辖县级行政区', '469027', '乐东黎族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2823 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469028', '4690', '00,46,4690', '陵水黎族自治县', '46' + , '海南省', '4690', '省直辖县级行政区', '469028', '陵水黎族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2824 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469029', '4690', '00,46,4690', '保亭黎族苗族自治县', '46' + , '海南省', '4690', '省直辖县级行政区', '469029', '保亭黎族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2825 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('469030', '4690', '00,46,4690', '琼中黎族苗族自治县', '46' + , '海南省', '4690', '省直辖县级行政区', '469030', '琼中黎族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2826 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('50', '00', '00', '重庆市', '50' + , '重庆市', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2827 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5001', '50', '00,50', '重庆市', '50' + , '重庆市', '5001', '重庆市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2828 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500101', '5001', '00,50,5001', '万州区', '50' + , '重庆市', '5001', '重庆市', '500101', '万州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2829 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500102', '5001', '00,50,5001', '涪陵区', '50' + , '重庆市', '5001', '重庆市', '500102', '涪陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2830 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500103', '5001', '00,50,5001', '渝中区', '50' + , '重庆市', '5001', '重庆市', '500103', '渝中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2831 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500104', '5001', '00,50,5001', '大渡口区', '50' + , '重庆市', '5001', '重庆市', '500104', '大渡口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2832 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500105', '5001', '00,50,5001', '江北区', '50' + , '重庆市', '5001', '重庆市', '500105', '江北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2833 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500106', '5001', '00,50,5001', '沙坪坝区', '50' + , '重庆市', '5001', '重庆市', '500106', '沙坪坝区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2834 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500107', '5001', '00,50,5001', '九龙坡区', '50' + , '重庆市', '5001', '重庆市', '500107', '九龙坡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2835 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500108', '5001', '00,50,5001', '南岸区', '50' + , '重庆市', '5001', '重庆市', '500108', '南岸区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2836 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420607', '4206', '00,42,4206', '襄州区', '42' + , '湖北省', '4206', '襄阳市', '420607', '襄州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2837 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('420624', '4206', '00,42,4206', '南漳县', '42' + , '湖北省', '4206', '襄阳市', '420624', '南漳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2838 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511724', '5117', '00,51,5117', '大竹县', '51' + , '四川省', '5117', '达州市', '511724', '大竹县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2839 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511725', '5117', '00,51,5117', '渠县', '51' + , '四川省', '5117', '达州市', '511725', '渠县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2840 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511781', '5117', '00,51,5117', '万源市', '51' + , '四川省', '5117', '达州市', '511781', '万源市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2841 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5118', '51', '00,51', '雅安市', '51' + , '四川省', '5118', '雅安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2842 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511802', '5118', '00,51,5118', '雨城区', '51' + , '四川省', '5118', '雅安市', '511802', '雨城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2843 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511803', '5118', '00,51,5118', '名山区', '51' + , '四川省', '5118', '雅安市', '511803', '名山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2844 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511822', '5118', '00,51,5118', '荥经县', '51' + , '四川省', '5118', '雅安市', '511822', '荥经县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2845 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511823', '5118', '00,51,5118', '汉源县', '51' + , '四川省', '5118', '雅安市', '511823', '汉源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2846 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511824', '5118', '00,51,5118', '石棉县', '51' + , '四川省', '5118', '雅安市', '511824', '石棉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2847 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511825', '5118', '00,51,5118', '天全县', '51' + , '四川省', '5118', '雅安市', '511825', '天全县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2848 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511826', '5118', '00,51,5118', '芦山县', '51' + , '四川省', '5118', '雅安市', '511826', '芦山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2849 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511827', '5118', '00,51,5118', '宝兴县', '51' + , '四川省', '5118', '雅安市', '511827', '宝兴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2850 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5119', '51', '00,51', '巴中市', '51' + , '四川省', '5119', '巴中市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2851 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511902', '5119', '00,51,5119', '巴州区', '51' + , '四川省', '5119', '巴中市', '511902', '巴州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2852 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511903', '5119', '00,51,5119', '恩阳区', '51' + , '四川省', '5119', '巴中市', '511903', '恩阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2853 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511921', '5119', '00,51,5119', '通江县', '51' + , '四川省', '5119', '巴中市', '511921', '通江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2854 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511922', '5119', '00,51,5119', '南江县', '51' + , '四川省', '5119', '巴中市', '511922', '南江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2855 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511923', '5119', '00,51,5119', '平昌县', '51' + , '四川省', '5119', '巴中市', '511923', '平昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2856 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5120', '51', '00,51', '资阳市', '51' + , '四川省', '5120', '资阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2857 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('512002', '5120', '00,51,5120', '雁江区', '51' + , '四川省', '5120', '资阳市', '512002', '雁江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2858 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('512021', '5120', '00,51,5120', '安岳县', '51' + , '四川省', '5120', '资阳市', '512021', '安岳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2859 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('512022', '5120', '00,51,5120', '乐至县', '51' + , '四川省', '5120', '资阳市', '512022', '乐至县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2860 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5132', '51', '00,51', '阿坝藏族羌族自治州', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2861 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513201', '5132', '00,51,5132', '马尔康市', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513201', '马尔康市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2862 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513221', '5132', '00,51,5132', '汶川县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513221', '汶川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2863 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513222', '5132', '00,51,5132', '理县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513222', '理县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2864 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513223', '5132', '00,51,5132', '茂县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513223', '茂县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2865 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513224', '5132', '00,51,5132', '松潘县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513224', '松潘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2866 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513225', '5132', '00,51,5132', '九寨沟县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513225', '九寨沟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2867 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513226', '5132', '00,51,5132', '金川县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513226', '金川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2868 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513227', '5132', '00,51,5132', '小金县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513227', '小金县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2869 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513228', '5132', '00,51,5132', '黑水县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513228', '黑水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2870 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513230', '5132', '00,51,5132', '壤塘县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513230', '壤塘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2871 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513231', '5132', '00,51,5132', '阿坝县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513231', '阿坝县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2872 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513232', '5132', '00,51,5132', '若尔盖县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513232', '若尔盖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2873 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513233', '5132', '00,51,5132', '红原县', '51' + , '四川省', '5132', '阿坝藏族羌族自治州', '513233', '红原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2874 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5133', '51', '00,51', '甘孜藏族自治州', '51' + , '四川省', '5133', '甘孜藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2875 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513301', '5133', '00,51,5133', '康定市', '51' + , '四川省', '5133', '甘孜藏族自治州', '513301', '康定市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2876 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513322', '5133', '00,51,5133', '泸定县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513322', '泸定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2877 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513323', '5133', '00,51,5133', '丹巴县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513323', '丹巴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2878 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513324', '5133', '00,51,5133', '九龙县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513324', '九龙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2879 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513325', '5133', '00,51,5133', '雅江县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513325', '雅江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2880 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513326', '5133', '00,51,5133', '道孚县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513326', '道孚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2881 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513327', '5133', '00,51,5133', '炉霍县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513327', '炉霍县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2882 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513328', '5133', '00,51,5133', '甘孜县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513328', '甘孜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2883 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513329', '5133', '00,51,5133', '新龙县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513329', '新龙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2884 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513330', '5133', '00,51,5133', '德格县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513330', '德格县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2885 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513331', '5133', '00,51,5133', '白玉县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513331', '白玉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2886 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513332', '5133', '00,51,5133', '石渠县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513332', '石渠县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2887 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513333', '5133', '00,51,5133', '色达县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513333', '色达县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2888 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513334', '5133', '00,51,5133', '理塘县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513334', '理塘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2889 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513335', '5133', '00,51,5133', '巴塘县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513335', '巴塘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2890 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513336', '5133', '00,51,5133', '乡城县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513336', '乡城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2891 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513337', '5133', '00,51,5133', '稻城县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513337', '稻城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2892 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513338', '5133', '00,51,5133', '得荣县', '51' + , '四川省', '5133', '甘孜藏族自治州', '513338', '得荣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2893 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5134', '51', '00,51', '凉山彝族自治州', '51' + , '四川省', '5134', '凉山彝族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2894 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513401', '5134', '00,51,5134', '西昌市', '51' + , '四川省', '5134', '凉山彝族自治州', '513401', '西昌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2895 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513422', '5134', '00,51,5134', '木里藏族自治县', '51' + , '四川省', '5134', '凉山彝族自治州', '513422', '木里藏族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2896 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513423', '5134', '00,51,5134', '盐源县', '51' + , '四川省', '5134', '凉山彝族自治州', '513423', '盐源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2897 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513424', '5134', '00,51,5134', '德昌县', '51' + , '四川省', '5134', '凉山彝族自治州', '513424', '德昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2898 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513425', '5134', '00,51,5134', '会理县', '51' + , '四川省', '5134', '凉山彝族自治州', '513425', '会理县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2899 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513426', '5134', '00,51,5134', '会东县', '51' + , '四川省', '5134', '凉山彝族自治州', '513426', '会东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2900 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513427', '5134', '00,51,5134', '宁南县', '51' + , '四川省', '5134', '凉山彝族自治州', '513427', '宁南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2901 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513428', '5134', '00,51,5134', '普格县', '51' + , '四川省', '5134', '凉山彝族自治州', '513428', '普格县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2902 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513429', '5134', '00,51,5134', '布拖县', '51' + , '四川省', '5134', '凉山彝族自治州', '513429', '布拖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2903 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513430', '5134', '00,51,5134', '金阳县', '51' + , '四川省', '5134', '凉山彝族自治州', '513430', '金阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2904 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513431', '5134', '00,51,5134', '昭觉县', '51' + , '四川省', '5134', '凉山彝族自治州', '513431', '昭觉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2905 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513432', '5134', '00,51,5134', '喜德县', '51' + , '四川省', '5134', '凉山彝族自治州', '513432', '喜德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2906 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513433', '5134', '00,51,5134', '冕宁县', '51' + , '四川省', '5134', '凉山彝族自治州', '513433', '冕宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2907 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('410603', '4106', '00,41,4106', '山城区', '41' + , '河南省', '4106', '鹤壁市', '410603', '山城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2908 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500112', '5001', '00,50,5001', '渝北区', '50' + , '重庆市', '5001', '重庆市', '500112', '渝北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2909 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500113', '5001', '00,50,5001', '巴南区', '50' + , '重庆市', '5001', '重庆市', '500113', '巴南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2910 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500114', '5001', '00,50,5001', '黔江区', '50' + , '重庆市', '5001', '重庆市', '500114', '黔江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2911 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500115', '5001', '00,50,5001', '长寿区', '50' + , '重庆市', '5001', '重庆市', '500115', '长寿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2912 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500116', '5001', '00,50,5001', '江津区', '50' + , '重庆市', '5001', '重庆市', '500116', '江津区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2913 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500117', '5001', '00,50,5001', '合川区', '50' + , '重庆市', '5001', '重庆市', '500117', '合川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2914 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500118', '5001', '00,50,5001', '永川区', '50' + , '重庆市', '5001', '重庆市', '500118', '永川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2915 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500119', '5001', '00,50,5001', '南川区', '50' + , '重庆市', '5001', '重庆市', '500119', '南川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2916 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500120', '5001', '00,50,5001', '璧山区', '50' + , '重庆市', '5001', '重庆市', '500120', '璧山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2917 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500151', '5001', '00,50,5001', '铜梁区', '50' + , '重庆市', '5001', '重庆市', '500151', '铜梁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2918 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500152', '5001', '00,50,5001', '潼南区', '50' + , '重庆市', '5001', '重庆市', '500152', '潼南区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2919 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500153', '5001', '00,50,5001', '荣昌区', '50' + , '重庆市', '5001', '重庆市', '500153', '荣昌区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2920 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500154', '5001', '00,50,5001', '开州区', '50' + , '重庆市', '5001', '重庆市', '500154', '开州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2921 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500155', '5001', '00,50,5001', '梁平区', '50' + , '重庆市', '5001', '重庆市', '500155', '梁平区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2922 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500156', '5001', '00,50,5001', '武隆区', '50' + , '重庆市', '5001', '重庆市', '500156', '武隆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2923 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5002', '50', '00,50', '重庆市', '50' + , '重庆市', '5002', '重庆市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2924 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500229', '5002', '00,50,5002', '城口县', '50' + , '重庆市', '5002', '重庆市', '500229', '城口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2925 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500230', '5002', '00,50,5002', '丰都县', '50' + , '重庆市', '5002', '重庆市', '500230', '丰都县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2926 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500231', '5002', '00,50,5002', '垫江县', '50' + , '重庆市', '5002', '重庆市', '500231', '垫江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2927 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500233', '5002', '00,50,5002', '忠县', '50' + , '重庆市', '5002', '重庆市', '500233', '忠县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2928 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500235', '5002', '00,50,5002', '云阳县', '50' + , '重庆市', '5002', '重庆市', '500235', '云阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2929 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500236', '5002', '00,50,5002', '奉节县', '50' + , '重庆市', '5002', '重庆市', '500236', '奉节县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2930 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500237', '5002', '00,50,5002', '巫山县', '50' + , '重庆市', '5002', '重庆市', '500237', '巫山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2931 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500238', '5002', '00,50,5002', '巫溪县', '50' + , '重庆市', '5002', '重庆市', '500238', '巫溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2932 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500240', '5002', '00,50,5002', '石柱土家族自治县', '50' + , '重庆市', '5002', '重庆市', '500240', '石柱土家族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2933 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500241', '5002', '00,50,5002', '秀山土家族苗族自治县', '50' + , '重庆市', '5002', '重庆市', '500241', '秀山土家族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2934 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500242', '5002', '00,50,5002', '酉阳土家族苗族自治县', '50' + , '重庆市', '5002', '重庆市', '500242', '酉阳土家族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2935 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500243', '5002', '00,50,5002', '彭水苗族土家族自治县', '50' + , '重庆市', '5002', '重庆市', '500243', '彭水苗族土家族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2936 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('51', '00', '00', '四川省', '51' + , '四川省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2937 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5101', '51', '00,51', '成都市', '51' + , '四川省', '5101', '成都市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2938 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510104', '5101', '00,51,5101', '锦江区', '51' + , '四川省', '5101', '成都市', '510104', '锦江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2939 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510105', '5101', '00,51,5101', '青羊区', '51' + , '四川省', '5101', '成都市', '510105', '青羊区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2940 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510106', '5101', '00,51,5101', '金牛区', '51' + , '四川省', '5101', '成都市', '510106', '金牛区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2941 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510107', '5101', '00,51,5101', '武侯区', '51' + , '四川省', '5101', '成都市', '510107', '武侯区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2942 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510108', '5101', '00,51,5101', '成华区', '51' + , '四川省', '5101', '成都市', '510108', '成华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2943 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510112', '5101', '00,51,5101', '龙泉驿区', '51' + , '四川省', '5101', '成都市', '510112', '龙泉驿区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2944 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510113', '5101', '00,51,5101', '青白江区', '51' + , '四川省', '5101', '成都市', '510113', '青白江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2945 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510114', '5101', '00,51,5101', '新都区', '51' + , '四川省', '5101', '成都市', '510114', '新都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2946 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510115', '5101', '00,51,5101', '温江区', '51' + , '四川省', '5101', '成都市', '510115', '温江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2947 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510116', '5101', '00,51,5101', '双流区', '51' + , '四川省', '5101', '成都市', '510116', '双流区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2948 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510117', '5101', '00,51,5101', '郫都区', '51' + , '四川省', '5101', '成都市', '510117', '郫都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2949 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510121', '5101', '00,51,5101', '金堂县', '51' + , '四川省', '5101', '成都市', '510121', '金堂县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2950 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510129', '5101', '00,51,5101', '大邑县', '51' + , '四川省', '5101', '成都市', '510129', '大邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2951 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510131', '5101', '00,51,5101', '蒲江县', '51' + , '四川省', '5101', '成都市', '510131', '蒲江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2952 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510132', '5101', '00,51,5101', '新津县', '51' + , '四川省', '5101', '成都市', '510132', '新津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2953 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510181', '5101', '00,51,5101', '都江堰市', '51' + , '四川省', '5101', '成都市', '510181', '都江堰市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2954 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510182', '5101', '00,51,5101', '彭州市', '51' + , '四川省', '5101', '成都市', '510182', '彭州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2955 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510183', '5101', '00,51,5101', '邛崃市', '51' + , '四川省', '5101', '成都市', '510183', '邛崃市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2956 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510184', '5101', '00,51,5101', '崇州市', '51' + , '四川省', '5101', '成都市', '510184', '崇州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2957 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510185', '5101', '00,51,5101', '简阳市', '51' + , '四川省', '5101', '成都市', '510185', '简阳市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2958 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5103', '51', '00,51', '自贡市', '51' + , '四川省', '5103', '自贡市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2959 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510302', '5103', '00,51,5103', '自流井区', '51' + , '四川省', '5103', '自贡市', '510302', '自流井区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2960 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510303', '5103', '00,51,5103', '贡井区', '51' + , '四川省', '5103', '自贡市', '510303', '贡井区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2961 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510304', '5103', '00,51,5103', '大安区', '51' + , '四川省', '5103', '自贡市', '510304', '大安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2962 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510311', '5103', '00,51,5103', '沿滩区', '51' + , '四川省', '5103', '自贡市', '510311', '沿滩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2963 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510321', '5103', '00,51,5103', '荣县', '51' + , '四川省', '5103', '自贡市', '510321', '荣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2964 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510322', '5103', '00,51,5103', '富顺县', '51' + , '四川省', '5103', '自贡市', '510322', '富顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2965 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5104', '51', '00,51', '攀枝花市', '51' + , '四川省', '5104', '攀枝花市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2966 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510402', '5104', '00,51,5104', '东区', '51' + , '四川省', '5104', '攀枝花市', '510402', '东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2967 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510403', '5104', '00,51,5104', '西区', '51' + , '四川省', '5104', '攀枝花市', '510403', '西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2968 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510411', '5104', '00,51,5104', '仁和区', '51' + , '四川省', '5104', '攀枝花市', '510411', '仁和区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2969 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510421', '5104', '00,51,5104', '米易县', '51' + , '四川省', '5104', '攀枝花市', '510421', '米易县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2970 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510422', '5104', '00,51,5104', '盐边县', '51' + , '四川省', '5104', '攀枝花市', '510422', '盐边县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2971 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5105', '51', '00,51', '泸州市', '51' + , '四川省', '5105', '泸州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2972 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510502', '5105', '00,51,5105', '江阳区', '51' + , '四川省', '5105', '泸州市', '510502', '江阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2973 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510503', '5105', '00,51,5105', '纳溪区', '51' + , '四川省', '5105', '泸州市', '510503', '纳溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2974 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510504', '5105', '00,51,5105', '龙马潭区', '51' + , '四川省', '5105', '泸州市', '510504', '龙马潭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2975 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510521', '5105', '00,51,5105', '泸县', '51' + , '四川省', '5105', '泸州市', '510521', '泸县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2976 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510522', '5105', '00,51,5105', '合江县', '51' + , '四川省', '5105', '泸州市', '510522', '合江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2977 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510524', '5105', '00,51,5105', '叙永县', '51' + , '四川省', '5105', '泸州市', '510524', '叙永县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2978 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510525', '5105', '00,51,5105', '古蔺县', '51' + , '四川省', '5105', '泸州市', '510525', '古蔺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2979 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5106', '51', '00,51', '德阳市', '51' + , '四川省', '5106', '德阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2980 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510603', '5106', '00,51,5106', '旌阳区', '51' + , '四川省', '5106', '德阳市', '510603', '旌阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2981 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510604', '5106', '00,51,5106', '罗江区', '51' + , '四川省', '5106', '德阳市', '510604', '罗江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2982 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510623', '5106', '00,51,5106', '中江县', '51' + , '四川省', '5106', '德阳市', '510623', '中江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2983 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510681', '5106', '00,51,5106', '广汉市', '51' + , '四川省', '5106', '德阳市', '510681', '广汉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2984 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510682', '5106', '00,51,5106', '什邡市', '51' + , '四川省', '5106', '德阳市', '510682', '什邡市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2985 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510683', '5106', '00,51,5106', '绵竹市', '51' + , '四川省', '5106', '德阳市', '510683', '绵竹市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2986 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5107', '51', '00,51', '绵阳市', '51' + , '四川省', '5107', '绵阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2987 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513435', '5134', '00,51,5134', '甘洛县', '51' + , '四川省', '5134', '凉山彝族自治州', '513435', '甘洛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2988 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513436', '5134', '00,51,5134', '美姑县', '51' + , '四川省', '5134', '凉山彝族自治州', '513436', '美姑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2989 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('513437', '5134', '00,51,5134', '雷波县', '51' + , '四川省', '5134', '凉山彝族自治州', '513437', '雷波县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2990 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('52', '00', '00', '贵州省', '52' + , '贵州省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 2991 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5201', '52', '00,52', '贵阳市', '52' + , '贵州省', '5201', '贵阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 2992 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520102', '5201', '00,52,5201', '南明区', '52' + , '贵州省', '5201', '贵阳市', '520102', '南明区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2993 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520103', '5201', '00,52,5201', '云岩区', '52' + , '贵州省', '5201', '贵阳市', '520103', '云岩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2994 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520111', '5201', '00,52,5201', '花溪区', '52' + , '贵州省', '5201', '贵阳市', '520111', '花溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2995 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520112', '5201', '00,52,5201', '乌当区', '52' + , '贵州省', '5201', '贵阳市', '520112', '乌当区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2996 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520113', '5201', '00,52,5201', '白云区', '52' + , '贵州省', '5201', '贵阳市', '520113', '白云区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2997 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520115', '5201', '00,52,5201', '观山湖区', '52' + , '贵州省', '5201', '贵阳市', '520115', '观山湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2998 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520121', '5201', '00,52,5201', '开阳县', '52' + , '贵州省', '5201', '贵阳市', '520121', '开阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 2999 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520122', '5201', '00,52,5201', '息烽县', '52' + , '贵州省', '5201', '贵阳市', '520122', '息烽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3000 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520123', '5201', '00,52,5201', '修文县', '52' + , '贵州省', '5201', '贵阳市', '520123', '修文县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3001 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520181', '5201', '00,52,5201', '清镇市', '52' + , '贵州省', '5201', '贵阳市', '520181', '清镇市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3002 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5202', '52', '00,52', '六盘水市', '52' + , '贵州省', '5202', '六盘水市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3003 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520201', '5202', '00,52,5202', '钟山区', '52' + , '贵州省', '5202', '六盘水市', '520201', '钟山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3004 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520203', '5202', '00,52,5202', '六枝特区', '52' + , '贵州省', '5202', '六盘水市', '520203', '六枝特区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3005 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520221', '5202', '00,52,5202', '水城县', '52' + , '贵州省', '5202', '六盘水市', '520221', '水城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3006 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520281', '5202', '00,52,5202', '盘州市', '52' + , '贵州省', '5202', '六盘水市', '520281', '盘州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3007 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5203', '52', '00,52', '遵义市', '52' + , '贵州省', '5203', '遵义市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3008 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520302', '5203', '00,52,5203', '红花岗区', '52' + , '贵州省', '5203', '遵义市', '520302', '红花岗区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3009 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520303', '5203', '00,52,5203', '汇川区', '52' + , '贵州省', '5203', '遵义市', '520303', '汇川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3010 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520304', '5203', '00,52,5203', '播州区', '52' + , '贵州省', '5203', '遵义市', '520304', '播州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3011 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520322', '5203', '00,52,5203', '桐梓县', '52' + , '贵州省', '5203', '遵义市', '520322', '桐梓县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3012 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520323', '5203', '00,52,5203', '绥阳县', '52' + , '贵州省', '5203', '遵义市', '520323', '绥阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3013 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520324', '5203', '00,52,5203', '正安县', '52' + , '贵州省', '5203', '遵义市', '520324', '正安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3014 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520325', '5203', '00,52,5203', '道真仡佬族苗族自治县', '52' + , '贵州省', '5203', '遵义市', '520325', '道真仡佬族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3015 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520326', '5203', '00,52,5203', '务川仡佬族苗族自治县', '52' + , '贵州省', '5203', '遵义市', '520326', '务川仡佬族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3016 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520327', '5203', '00,52,5203', '凤冈县', '52' + , '贵州省', '5203', '遵义市', '520327', '凤冈县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3017 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520328', '5203', '00,52,5203', '湄潭县', '52' + , '贵州省', '5203', '遵义市', '520328', '湄潭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3018 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520329', '5203', '00,52,5203', '余庆县', '52' + , '贵州省', '5203', '遵义市', '520329', '余庆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3019 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520330', '5203', '00,52,5203', '习水县', '52' + , '贵州省', '5203', '遵义市', '520330', '习水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3020 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520381', '5203', '00,52,5203', '赤水市', '52' + , '贵州省', '5203', '遵义市', '520381', '赤水市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3021 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520382', '5203', '00,52,5203', '仁怀市', '52' + , '贵州省', '5203', '遵义市', '520382', '仁怀市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3022 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5204', '52', '00,52', '安顺市', '52' + , '贵州省', '5204', '安顺市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3023 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520402', '5204', '00,52,5204', '西秀区', '52' + , '贵州省', '5204', '安顺市', '520402', '西秀区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3024 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520403', '5204', '00,52,5204', '平坝区', '52' + , '贵州省', '5204', '安顺市', '520403', '平坝区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3025 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520422', '5204', '00,52,5204', '普定县', '52' + , '贵州省', '5204', '安顺市', '520422', '普定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3026 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520423', '5204', '00,52,5204', '镇宁布依族苗族自治县', '52' + , '贵州省', '5204', '安顺市', '520423', '镇宁布依族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3027 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520424', '5204', '00,52,5204', '关岭布依族苗族自治县', '52' + , '贵州省', '5204', '安顺市', '520424', '关岭布依族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3028 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520425', '5204', '00,52,5204', '紫云苗族布依族自治县', '52' + , '贵州省', '5204', '安顺市', '520425', '紫云苗族布依族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3029 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5205', '52', '00,52', '毕节市', '52' + , '贵州省', '5205', '毕节市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3030 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520502', '5205', '00,52,5205', '七星关区', '52' + , '贵州省', '5205', '毕节市', '520502', '七星关区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3031 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520521', '5205', '00,52,5205', '大方县', '52' + , '贵州省', '5205', '毕节市', '520521', '大方县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3032 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520522', '5205', '00,52,5205', '黔西县', '52' + , '贵州省', '5205', '毕节市', '520522', '黔西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3033 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520523', '5205', '00,52,5205', '金沙县', '52' + , '贵州省', '5205', '毕节市', '520523', '金沙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3034 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520524', '5205', '00,52,5205', '织金县', '52' + , '贵州省', '5205', '毕节市', '520524', '织金县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3035 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520525', '5205', '00,52,5205', '纳雍县', '52' + , '贵州省', '5205', '毕节市', '520525', '纳雍县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3036 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520526', '5205', '00,52,5205', '威宁彝族回族苗族自治县', '52' + , '贵州省', '5205', '毕节市', '520526', '威宁彝族回族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3037 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520527', '5205', '00,52,5205', '赫章县', '52' + , '贵州省', '5205', '毕节市', '520527', '赫章县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3038 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5206', '52', '00,52', '铜仁市', '52' + , '贵州省', '5206', '铜仁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3039 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520602', '5206', '00,52,5206', '碧江区', '52' + , '贵州省', '5206', '铜仁市', '520602', '碧江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3040 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520603', '5206', '00,52,5206', '万山区', '52' + , '贵州省', '5206', '铜仁市', '520603', '万山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3041 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520621', '5206', '00,52,5206', '江口县', '52' + , '贵州省', '5206', '铜仁市', '520621', '江口县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3042 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520622', '5206', '00,52,5206', '玉屏侗族自治县', '52' + , '贵州省', '5206', '铜仁市', '520622', '玉屏侗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3043 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520623', '5206', '00,52,5206', '石阡县', '52' + , '贵州省', '5206', '铜仁市', '520623', '石阡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3044 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520624', '5206', '00,52,5206', '思南县', '52' + , '贵州省', '5206', '铜仁市', '520624', '思南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3045 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520625', '5206', '00,52,5206', '印江土家族苗族自治县', '52' + , '贵州省', '5206', '铜仁市', '520625', '印江土家族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3046 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520626', '5206', '00,52,5206', '德江县', '52' + , '贵州省', '5206', '铜仁市', '520626', '德江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3047 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520627', '5206', '00,52,5206', '沿河土家族自治县', '52' + , '贵州省', '5206', '铜仁市', '520627', '沿河土家族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3048 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('520628', '5206', '00,52,5206', '松桃苗族自治县', '52' + , '贵州省', '5206', '铜仁市', '520628', '松桃苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3049 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5223', '52', '00,52', '黔西南布依族苗族自治州', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3050 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522301', '5223', '00,52,5223', '兴义市', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522301', '兴义市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3051 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522302', '5223', '00,52,5223', '兴仁市', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522302', '兴仁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3052 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522323', '5223', '00,52,5223', '普安县', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522323', '普安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3053 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522324', '5223', '00,52,5223', '晴隆县', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522324', '晴隆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3054 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522325', '5223', '00,52,5223', '贞丰县', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522325', '贞丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3055 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522326', '5223', '00,52,5223', '望谟县', '52' + , '贵州省', '5223', '黔西南布依族苗族自治州', '522326', '望谟县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3056 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540235', '5402', '00,54,5402', '聂拉木县', '54' + , '西藏自治区', '5402', '日喀则市', '540235', '聂拉木县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3057 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610729', '6107', '00,61,6107', '留坝县', '61' + , '陕西省', '6107', '汉中市', '610729', '留坝县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3058 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610730', '6107', '00,61,6107', '佛坪县', '61' + , '陕西省', '6107', '汉中市', '610730', '佛坪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3059 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632223', '6322', '00,63,6322', '海晏县', '63' + , '青海省', '6322', '海北藏族自治州', '632223', '海晏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3060 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522601', '5226', '00,52,5226', '凯里市', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522601', '凯里市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3061 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522622', '5226', '00,52,5226', '黄平县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522622', '黄平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3062 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522623', '5226', '00,52,5226', '施秉县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522623', '施秉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3063 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522624', '5226', '00,52,5226', '三穗县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522624', '三穗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3064 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522625', '5226', '00,52,5226', '镇远县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522625', '镇远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3065 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522626', '5226', '00,52,5226', '岑巩县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522626', '岑巩县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3066 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522627', '5226', '00,52,5226', '天柱县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522627', '天柱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3067 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522628', '5226', '00,52,5226', '锦屏县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522628', '锦屏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3068 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522629', '5226', '00,52,5226', '剑河县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522629', '剑河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3069 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522630', '5226', '00,52,5226', '台江县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522630', '台江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3070 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522631', '5226', '00,52,5226', '黎平县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522631', '黎平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3071 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522632', '5226', '00,52,5226', '榕江县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522632', '榕江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3072 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522633', '5226', '00,52,5226', '从江县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522633', '从江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3073 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522634', '5226', '00,52,5226', '雷山县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522634', '雷山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3074 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522635', '5226', '00,52,5226', '麻江县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522635', '麻江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3075 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522636', '5226', '00,52,5226', '丹寨县', '52' + , '贵州省', '5226', '黔东南苗族侗族自治州', '522636', '丹寨县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3076 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5227', '52', '00,52', '黔南布依族苗族自治州', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3077 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522701', '5227', '00,52,5227', '都匀市', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522701', '都匀市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3078 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522702', '5227', '00,52,5227', '福泉市', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522702', '福泉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3079 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522722', '5227', '00,52,5227', '荔波县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522722', '荔波县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3080 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522723', '5227', '00,52,5227', '贵定县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522723', '贵定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3081 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522725', '5227', '00,52,5227', '瓮安县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522725', '瓮安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3082 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522726', '5227', '00,52,5227', '独山县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522726', '独山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3083 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522727', '5227', '00,52,5227', '平塘县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522727', '平塘县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3084 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522728', '5227', '00,52,5227', '罗甸县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522728', '罗甸县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3085 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522729', '5227', '00,52,5227', '长顺县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522729', '长顺县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3086 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522730', '5227', '00,52,5227', '龙里县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522730', '龙里县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3087 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522731', '5227', '00,52,5227', '惠水县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522731', '惠水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3088 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('522732', '5227', '00,52,5227', '三都水族自治县', '52' + , '贵州省', '5227', '黔南布依族苗族自治州', '522732', '三都水族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3089 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('53', '00', '00', '云南省', '53' + , '云南省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3090 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5301', '53', '00,53', '昆明市', '53' + , '云南省', '5301', '昆明市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3091 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530102', '5301', '00,53,5301', '五华区', '53' + , '云南省', '5301', '昆明市', '530102', '五华区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3092 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530103', '5301', '00,53,5301', '盘龙区', '53' + , '云南省', '5301', '昆明市', '530103', '盘龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3093 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530111', '5301', '00,53,5301', '官渡区', '53' + , '云南省', '5301', '昆明市', '530111', '官渡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3094 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530112', '5301', '00,53,5301', '西山区', '53' + , '云南省', '5301', '昆明市', '530112', '西山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3095 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530113', '5301', '00,53,5301', '东川区', '53' + , '云南省', '5301', '昆明市', '530113', '东川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3096 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530114', '5301', '00,53,5301', '呈贡区', '53' + , '云南省', '5301', '昆明市', '530114', '呈贡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3097 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530115', '5301', '00,53,5301', '晋宁区', '53' + , '云南省', '5301', '昆明市', '530115', '晋宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3098 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530124', '5301', '00,53,5301', '富民县', '53' + , '云南省', '5301', '昆明市', '530124', '富民县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3099 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530125', '5301', '00,53,5301', '宜良县', '53' + , '云南省', '5301', '昆明市', '530125', '宜良县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3100 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530126', '5301', '00,53,5301', '石林彝族自治县', '53' + , '云南省', '5301', '昆明市', '530126', '石林彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3101 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530127', '5301', '00,53,5301', '嵩明县', '53' + , '云南省', '5301', '昆明市', '530127', '嵩明县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3102 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530128', '5301', '00,53,5301', '禄劝彝族苗族自治县', '53' + , '云南省', '5301', '昆明市', '530128', '禄劝彝族苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3103 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530129', '5301', '00,53,5301', '寻甸回族彝族自治县', '53' + , '云南省', '5301', '昆明市', '530129', '寻甸回族彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3104 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530181', '5301', '00,53,5301', '安宁市', '53' + , '云南省', '5301', '昆明市', '530181', '安宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3105 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5303', '53', '00,53', '曲靖市', '53' + , '云南省', '5303', '曲靖市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3106 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530302', '5303', '00,53,5303', '麒麟区', '53' + , '云南省', '5303', '曲靖市', '530302', '麒麟区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3107 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530303', '5303', '00,53,5303', '沾益区', '53' + , '云南省', '5303', '曲靖市', '530303', '沾益区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3108 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530304', '5303', '00,53,5303', '马龙区', '53' + , '云南省', '5303', '曲靖市', '530304', '马龙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3109 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530322', '5303', '00,53,5303', '陆良县', '53' + , '云南省', '5303', '曲靖市', '530322', '陆良县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3110 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530323', '5303', '00,53,5303', '师宗县', '53' + , '云南省', '5303', '曲靖市', '530323', '师宗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3111 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530324', '5303', '00,53,5303', '罗平县', '53' + , '云南省', '5303', '曲靖市', '530324', '罗平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3112 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530325', '5303', '00,53,5303', '富源县', '53' + , '云南省', '5303', '曲靖市', '530325', '富源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3113 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530326', '5303', '00,53,5303', '会泽县', '53' + , '云南省', '5303', '曲靖市', '530326', '会泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3114 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530381', '5303', '00,53,5303', '宣威市', '53' + , '云南省', '5303', '曲靖市', '530381', '宣威市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3115 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5304', '53', '00,53', '玉溪市', '53' + , '云南省', '5304', '玉溪市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3116 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530402', '5304', '00,53,5304', '红塔区', '53' + , '云南省', '5304', '玉溪市', '530402', '红塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3117 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530403', '5304', '00,53,5304', '江川区', '53' + , '云南省', '5304', '玉溪市', '530403', '江川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3118 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530423', '5304', '00,53,5304', '通海县', '53' + , '云南省', '5304', '玉溪市', '530423', '通海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3119 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530424', '5304', '00,53,5304', '华宁县', '53' + , '云南省', '5304', '玉溪市', '530424', '华宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3120 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530425', '5304', '00,53,5304', '易门县', '53' + , '云南省', '5304', '玉溪市', '530425', '易门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3121 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530426', '5304', '00,53,5304', '峨山彝族自治县', '53' + , '云南省', '5304', '玉溪市', '530426', '峨山彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3122 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530427', '5304', '00,53,5304', '新平彝族傣族自治县', '53' + , '云南省', '5304', '玉溪市', '530427', '新平彝族傣族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3123 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530428', '5304', '00,53,5304', '元江哈尼族彝族傣族自治县', '53' + , '云南省', '5304', '玉溪市', '530428', '元江哈尼族彝族傣族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3124 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530481', '5304', '00,53,5304', '澄江市', '53' + , '云南省', '5304', '玉溪市', '530481', '澄江市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3125 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5305', '53', '00,53', '保山市', '53' + , '云南省', '5305', '保山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3126 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530502', '5305', '00,53,5305', '隆阳区', '53' + , '云南省', '5305', '保山市', '530502', '隆阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3127 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530521', '5305', '00,53,5305', '施甸县', '53' + , '云南省', '5305', '保山市', '530521', '施甸县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3128 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530523', '5305', '00,53,5305', '龙陵县', '53' + , '云南省', '5305', '保山市', '530523', '龙陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3129 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530524', '5305', '00,53,5305', '昌宁县', '53' + , '云南省', '5305', '保山市', '530524', '昌宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3130 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530581', '5305', '00,53,5305', '腾冲市', '53' + , '云南省', '5305', '保山市', '530581', '腾冲市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3131 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5306', '53', '00,53', '昭通市', '53' + , '云南省', '5306', '昭通市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3132 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530602', '5306', '00,53,5306', '昭阳区', '53' + , '云南省', '5306', '昭通市', '530602', '昭阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3133 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530621', '5306', '00,53,5306', '鲁甸县', '53' + , '云南省', '5306', '昭通市', '530621', '鲁甸县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3134 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530622', '5306', '00,53,5306', '巧家县', '53' + , '云南省', '5306', '昭通市', '530622', '巧家县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3135 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530623', '5306', '00,53,5306', '盐津县', '53' + , '云南省', '5306', '昭通市', '530623', '盐津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3136 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530624', '5306', '00,53,5306', '大关县', '53' + , '云南省', '5306', '昭通市', '530624', '大关县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3137 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530625', '5306', '00,53,5306', '永善县', '53' + , '云南省', '5306', '昭通市', '530625', '永善县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3138 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530626', '5306', '00,53,5306', '绥江县', '53' + , '云南省', '5306', '昭通市', '530626', '绥江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3139 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530627', '5306', '00,53,5306', '镇雄县', '53' + , '云南省', '5306', '昭通市', '530627', '镇雄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3140 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530628', '5306', '00,53,5306', '彝良县', '53' + , '云南省', '5306', '昭通市', '530628', '彝良县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3141 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530629', '5306', '00,53,5306', '威信县', '53' + , '云南省', '5306', '昭通市', '530629', '威信县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3142 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530681', '5306', '00,53,5306', '水富市', '53' + , '云南省', '5306', '昭通市', '530681', '水富市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3143 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5307', '53', '00,53', '丽江市', '53' + , '云南省', '5307', '丽江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3144 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530702', '5307', '00,53,5307', '古城区', '53' + , '云南省', '5307', '丽江市', '530702', '古城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3145 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530721', '5307', '00,53,5307', '玉龙纳西族自治县', '53' + , '云南省', '5307', '丽江市', '530721', '玉龙纳西族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3146 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530722', '5307', '00,53,5307', '永胜县', '53' + , '云南省', '5307', '丽江市', '530722', '永胜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3147 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530723', '5307', '00,53,5307', '华坪县', '53' + , '云南省', '5307', '丽江市', '530723', '华坪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3148 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530724', '5307', '00,53,5307', '宁蒗彝族自治县', '53' + , '云南省', '5307', '丽江市', '530724', '宁蒗彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3149 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5308', '53', '00,53', '普洱市', '53' + , '云南省', '5308', '普洱市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3150 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530802', '5308', '00,53,5308', '思茅区', '53' + , '云南省', '5308', '普洱市', '530802', '思茅区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3151 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530821', '5308', '00,53,5308', '宁洱哈尼族彝族自治县', '53' + , '云南省', '5308', '普洱市', '530821', '宁洱哈尼族彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3152 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530822', '5308', '00,53,5308', '墨江哈尼族自治县', '53' + , '云南省', '5308', '普洱市', '530822', '墨江哈尼族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3153 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530823', '5308', '00,53,5308', '景东彝族自治县', '53' + , '云南省', '5308', '普洱市', '530823', '景东彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3154 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530824', '5308', '00,53,5308', '景谷傣族彝族自治县', '53' + , '云南省', '5308', '普洱市', '530824', '景谷傣族彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3155 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530825', '5308', '00,53,5308', '镇沅彝族哈尼族拉祜族自治县', '53' + , '云南省', '5308', '普洱市', '530825', '镇沅彝族哈尼族拉祜族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3156 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530826', '5308', '00,53,5308', '江城哈尼族彝族自治县', '53' + , '云南省', '5308', '普洱市', '530826', '江城哈尼族彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3157 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530827', '5308', '00,53,5308', '孟连傣族拉祜族佤族自治县', '53' + , '云南省', '5308', '普洱市', '530827', '孟连傣族拉祜族佤族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3158 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530828', '5308', '00,53,5308', '澜沧拉祜族自治县', '53' + , '云南省', '5308', '普洱市', '530828', '澜沧拉祜族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3159 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530829', '5308', '00,53,5308', '西盟佤族自治县', '53' + , '云南省', '5308', '普洱市', '530829', '西盟佤族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3160 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5309', '53', '00,53', '临沧市', '53' + , '云南省', '5309', '临沧市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3161 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530902', '5309', '00,53,5309', '临翔区', '53' + , '云南省', '5309', '临沧市', '530902', '临翔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3162 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530921', '5309', '00,53,5309', '凤庆县', '53' + , '云南省', '5309', '临沧市', '530921', '凤庆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3163 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530922', '5309', '00,53,5309', '云县', '53' + , '云南省', '5309', '临沧市', '530922', '云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3164 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530923', '5309', '00,53,5309', '永德县', '53' + , '云南省', '5309', '临沧市', '530923', '永德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3165 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530924', '5309', '00,53,5309', '镇康县', '53' + , '云南省', '5309', '临沧市', '530924', '镇康县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3166 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530925', '5309', '00,53,5309', '双江拉祜族佤族布朗族傣族自治县', '53' + , '云南省', '5309', '临沧市', '530925', '双江拉祜族佤族布朗族傣族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3167 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530926', '5309', '00,53,5309', '耿马傣族佤族自治县', '53' + , '云南省', '5309', '临沧市', '530926', '耿马傣族佤族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3168 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('530927', '5309', '00,53,5309', '沧源佤族自治县', '53' + , '云南省', '5309', '临沧市', '530927', '沧源佤族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3169 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5323', '53', '00,53', '楚雄彝族自治州', '53' + , '云南省', '5323', '楚雄彝族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3170 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532301', '5323', '00,53,5323', '楚雄市', '53' + , '云南省', '5323', '楚雄彝族自治州', '532301', '楚雄市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3171 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532322', '5323', '00,53,5323', '双柏县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532322', '双柏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3172 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532323', '5323', '00,53,5323', '牟定县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532323', '牟定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3173 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532324', '5323', '00,53,5323', '南华县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532324', '南华县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3174 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532325', '5323', '00,53,5323', '姚安县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532325', '姚安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3175 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532326', '5323', '00,53,5323', '大姚县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532326', '大姚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3176 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532327', '5323', '00,53,5323', '永仁县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532327', '永仁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3177 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532328', '5323', '00,53,5323', '元谋县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532328', '元谋县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3178 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532329', '5323', '00,53,5323', '武定县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532329', '武定县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3179 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532331', '5323', '00,53,5323', '禄丰县', '53' + , '云南省', '5323', '楚雄彝族自治州', '532331', '禄丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3180 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5325', '53', '00,53', '红河哈尼族彝族自治州', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3181 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532501', '5325', '00,53,5325', '个旧市', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532501', '个旧市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3182 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532502', '5325', '00,53,5325', '开远市', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532502', '开远市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3183 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532503', '5325', '00,53,5325', '蒙自市', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532503', '蒙自市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3184 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532504', '5325', '00,53,5325', '弥勒市', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532504', '弥勒市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3185 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532523', '5325', '00,53,5325', '屏边苗族自治县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532523', '屏边苗族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3186 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532524', '5325', '00,53,5325', '建水县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532524', '建水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3187 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532525', '5325', '00,53,5325', '石屏县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532525', '石屏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3188 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532527', '5325', '00,53,5325', '泸西县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532527', '泸西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3189 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532528', '5325', '00,53,5325', '元阳县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532528', '元阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3190 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532529', '5325', '00,53,5325', '红河县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532529', '红河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3191 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532530', '5325', '00,53,5325', '金平苗族瑶族傣族自治县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532530', '金平苗族瑶族傣族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3192 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532531', '5325', '00,53,5325', '绿春县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532531', '绿春县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3193 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532532', '5325', '00,53,5325', '河口瑶族自治县', '53' + , '云南省', '5325', '红河哈尼族彝族自治州', '532532', '河口瑶族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3194 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451121', '4511', '00,45,4511', '昭平县', '45' + , '广西壮族自治区', '4511', '贺州市', '451121', '昭平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3195 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('450311', '4503', '00,45,4503', '雁山区', '45' + , '广西壮族自治区', '4503', '桂林市', '450311', '雁山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3196 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650521', '6505', '00,65,6505', '巴里坤哈萨克自治县', '65' + , '新疆维吾尔自治区', '6505', '哈密市', '650521', '巴里坤哈萨克自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3197 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510703', '5107', '00,51,5107', '涪城区', '51' + , '四川省', '5107', '绵阳市', '510703', '涪城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3198 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510704', '5107', '00,51,5107', '游仙区', '51' + , '四川省', '5107', '绵阳市', '510704', '游仙区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3199 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510705', '5107', '00,51,5107', '安州区', '51' + , '四川省', '5107', '绵阳市', '510705', '安州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3200 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510722', '5107', '00,51,5107', '三台县', '51' + , '四川省', '5107', '绵阳市', '510722', '三台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3201 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510723', '5107', '00,51,5107', '盐亭县', '51' + , '四川省', '5107', '绵阳市', '510723', '盐亭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3202 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510725', '5107', '00,51,5107', '梓潼县', '51' + , '四川省', '5107', '绵阳市', '510725', '梓潼县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3203 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510726', '5107', '00,51,5107', '北川羌族自治县', '51' + , '四川省', '5107', '绵阳市', '510726', '北川羌族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3204 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510727', '5107', '00,51,5107', '平武县', '51' + , '四川省', '5107', '绵阳市', '510727', '平武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3205 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510781', '5107', '00,51,5107', '江油市', '51' + , '四川省', '5107', '绵阳市', '510781', '江油市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3206 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5108', '51', '00,51', '广元市', '51' + , '四川省', '5108', '广元市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3207 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510802', '5108', '00,51,5108', '利州区', '51' + , '四川省', '5108', '广元市', '510802', '利州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3208 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510811', '5108', '00,51,5108', '昭化区', '51' + , '四川省', '5108', '广元市', '510811', '昭化区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3209 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510812', '5108', '00,51,5108', '朝天区', '51' + , '四川省', '5108', '广元市', '510812', '朝天区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3210 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510821', '5108', '00,51,5108', '旺苍县', '51' + , '四川省', '5108', '广元市', '510821', '旺苍县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3211 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510822', '5108', '00,51,5108', '青川县', '51' + , '四川省', '5108', '广元市', '510822', '青川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3212 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510823', '5108', '00,51,5108', '剑阁县', '51' + , '四川省', '5108', '广元市', '510823', '剑阁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3213 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510824', '5108', '00,51,5108', '苍溪县', '51' + , '四川省', '5108', '广元市', '510824', '苍溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3214 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5109', '51', '00,51', '遂宁市', '51' + , '四川省', '5109', '遂宁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3215 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510903', '5109', '00,51,5109', '船山区', '51' + , '四川省', '5109', '遂宁市', '510903', '船山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3216 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510904', '5109', '00,51,5109', '安居区', '51' + , '四川省', '5109', '遂宁市', '510904', '安居区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3217 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510921', '5109', '00,51,5109', '蓬溪县', '51' + , '四川省', '5109', '遂宁市', '510921', '蓬溪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3218 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510923', '5109', '00,51,5109', '大英县', '51' + , '四川省', '5109', '遂宁市', '510923', '大英县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3219 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('510981', '5109', '00,51,5109', '射洪市', '51' + , '四川省', '5109', '遂宁市', '510981', '射洪市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3220 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5110', '51', '00,51', '内江市', '51' + , '四川省', '5110', '内江市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3221 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511002', '5110', '00,51,5110', '市中区', '51' + , '四川省', '5110', '内江市', '511002', '市中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3222 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511011', '5110', '00,51,5110', '东兴区', '51' + , '四川省', '5110', '内江市', '511011', '东兴区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3223 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511024', '5110', '00,51,5110', '威远县', '51' + , '四川省', '5110', '内江市', '511024', '威远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3224 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511025', '5110', '00,51,5110', '资中县', '51' + , '四川省', '5110', '内江市', '511025', '资中县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3225 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511083', '5110', '00,51,5110', '隆昌市', '51' + , '四川省', '5110', '内江市', '511083', '隆昌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3226 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5111', '51', '00,51', '乐山市', '51' + , '四川省', '5111', '乐山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3227 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511102', '5111', '00,51,5111', '市中区', '51' + , '四川省', '5111', '乐山市', '511102', '市中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3228 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511111', '5111', '00,51,5111', '沙湾区', '51' + , '四川省', '5111', '乐山市', '511111', '沙湾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3229 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511112', '5111', '00,51,5111', '五通桥区', '51' + , '四川省', '5111', '乐山市', '511112', '五通桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3230 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511113', '5111', '00,51,5111', '金口河区', '51' + , '四川省', '5111', '乐山市', '511113', '金口河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3231 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511123', '5111', '00,51,5111', '犍为县', '51' + , '四川省', '5111', '乐山市', '511123', '犍为县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3232 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511124', '5111', '00,51,5111', '井研县', '51' + , '四川省', '5111', '乐山市', '511124', '井研县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3233 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511126', '5111', '00,51,5111', '夹江县', '51' + , '四川省', '5111', '乐山市', '511126', '夹江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3234 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511129', '5111', '00,51,5111', '沐川县', '51' + , '四川省', '5111', '乐山市', '511129', '沐川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3235 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511132', '5111', '00,51,5111', '峨边彝族自治县', '51' + , '四川省', '5111', '乐山市', '511132', '峨边彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3236 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511133', '5111', '00,51,5111', '马边彝族自治县', '51' + , '四川省', '5111', '乐山市', '511133', '马边彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3237 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511181', '5111', '00,51,5111', '峨眉山市', '51' + , '四川省', '5111', '乐山市', '511181', '峨眉山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3238 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5113', '51', '00,51', '南充市', '51' + , '四川省', '5113', '南充市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3239 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511302', '5113', '00,51,5113', '顺庆区', '51' + , '四川省', '5113', '南充市', '511302', '顺庆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3240 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511303', '5113', '00,51,5113', '高坪区', '51' + , '四川省', '5113', '南充市', '511303', '高坪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3241 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511304', '5113', '00,51,5113', '嘉陵区', '51' + , '四川省', '5113', '南充市', '511304', '嘉陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3242 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511321', '5113', '00,51,5113', '南部县', '51' + , '四川省', '5113', '南充市', '511321', '南部县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3243 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511322', '5113', '00,51,5113', '营山县', '51' + , '四川省', '5113', '南充市', '511322', '营山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3244 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511323', '5113', '00,51,5113', '蓬安县', '51' + , '四川省', '5113', '南充市', '511323', '蓬安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3245 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511324', '5113', '00,51,5113', '仪陇县', '51' + , '四川省', '5113', '南充市', '511324', '仪陇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3246 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511325', '5113', '00,51,5113', '西充县', '51' + , '四川省', '5113', '南充市', '511325', '西充县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3247 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511381', '5113', '00,51,5113', '阆中市', '51' + , '四川省', '5113', '南充市', '511381', '阆中市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3248 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5114', '51', '00,51', '眉山市', '51' + , '四川省', '5114', '眉山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3249 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511402', '5114', '00,51,5114', '东坡区', '51' + , '四川省', '5114', '眉山市', '511402', '东坡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3250 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511403', '5114', '00,51,5114', '彭山区', '51' + , '四川省', '5114', '眉山市', '511403', '彭山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3251 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511421', '5114', '00,51,5114', '仁寿县', '51' + , '四川省', '5114', '眉山市', '511421', '仁寿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3252 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511423', '5114', '00,51,5114', '洪雅县', '51' + , '四川省', '5114', '眉山市', '511423', '洪雅县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3253 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511424', '5114', '00,51,5114', '丹棱县', '51' + , '四川省', '5114', '眉山市', '511424', '丹棱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3254 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511425', '5114', '00,51,5114', '青神县', '51' + , '四川省', '5114', '眉山市', '511425', '青神县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3255 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5115', '51', '00,51', '宜宾市', '51' + , '四川省', '5115', '宜宾市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3256 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511502', '5115', '00,51,5115', '翠屏区', '51' + , '四川省', '5115', '宜宾市', '511502', '翠屏区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3257 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511503', '5115', '00,51,5115', '南溪区', '51' + , '四川省', '5115', '宜宾市', '511503', '南溪区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3258 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511504', '5115', '00,51,5115', '叙州区', '51' + , '四川省', '5115', '宜宾市', '511504', '叙州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3259 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511523', '5115', '00,51,5115', '江安县', '51' + , '四川省', '5115', '宜宾市', '511523', '江安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3260 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511524', '5115', '00,51,5115', '长宁县', '51' + , '四川省', '5115', '宜宾市', '511524', '长宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3261 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511525', '5115', '00,51,5115', '高县', '51' + , '四川省', '5115', '宜宾市', '511525', '高县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3262 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511526', '5115', '00,51,5115', '珙县', '51' + , '四川省', '5115', '宜宾市', '511526', '珙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3263 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511527', '5115', '00,51,5115', '筠连县', '51' + , '四川省', '5115', '宜宾市', '511527', '筠连县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3264 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511528', '5115', '00,51,5115', '兴文县', '51' + , '四川省', '5115', '宜宾市', '511528', '兴文县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3265 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511529', '5115', '00,51,5115', '屏山县', '51' + , '四川省', '5115', '宜宾市', '511529', '屏山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3266 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5116', '51', '00,51', '广安市', '51' + , '四川省', '5116', '广安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3267 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511602', '5116', '00,51,5116', '广安区', '51' + , '四川省', '5116', '广安市', '511602', '广安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3268 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511603', '5116', '00,51,5116', '前锋区', '51' + , '四川省', '5116', '广安市', '511603', '前锋区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3269 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511621', '5116', '00,51,5116', '岳池县', '51' + , '四川省', '5116', '广安市', '511621', '岳池县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3270 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511622', '5116', '00,51,5116', '武胜县', '51' + , '四川省', '5116', '广安市', '511622', '武胜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3271 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511623', '5116', '00,51,5116', '邻水县', '51' + , '四川省', '5116', '广安市', '511623', '邻水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3272 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511681', '5116', '00,51,5116', '华蓥市', '51' + , '四川省', '5116', '广安市', '511681', '华蓥市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3273 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653124', '6531', '00,65,6531', '泽普县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653124', '泽普县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3274 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653125', '6531', '00,65,6531', '莎车县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653125', '莎车县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3275 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653126', '6531', '00,65,6531', '叶城县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653126', '叶城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3276 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653127', '6531', '00,65,6531', '麦盖提县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653127', '麦盖提县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3277 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653128', '6531', '00,65,6531', '岳普湖县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653128', '岳普湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3278 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653129', '6531', '00,65,6531', '伽师县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653129', '伽师县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3279 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653130', '6531', '00,65,6531', '巴楚县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653130', '巴楚县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3280 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653131', '6531', '00,65,6531', '塔什库尔干塔吉克自治县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653131', '塔什库尔干塔吉克自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3281 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6532', '65', '00,65', '和田地区', '65' + , '新疆维吾尔自治区', '6532', '和田地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3282 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653201', '6532', '00,65,6532', '和田市', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653201', '和田市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3283 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653221', '6532', '00,65,6532', '和田县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653221', '和田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3284 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653222', '6532', '00,65,6532', '墨玉县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653222', '墨玉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3285 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653223', '6532', '00,65,6532', '皮山县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653223', '皮山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3286 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653224', '6532', '00,65,6532', '洛浦县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653224', '洛浦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3287 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653225', '6532', '00,65,6532', '策勒县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653225', '策勒县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3288 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632822', '6328', '00,63,6328', '都兰县', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', '632822', '都兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3289 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620524', '6205', '00,62,6205', '武山县', '62' + , '甘肃省', '6205', '天水市', '620524', '武山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3290 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620525', '6205', '00,62,6205', '张家川回族自治县', '62' + , '甘肃省', '6205', '天水市', '620525', '张家川回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3291 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6206', '62', '00,62', '武威市', '62' + , '甘肃省', '6206', '武威市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3292 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620602', '6206', '00,62,6206', '凉州区', '62' + , '甘肃省', '6206', '武威市', '620602', '凉州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3293 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620621', '6206', '00,62,6206', '民勤县', '62' + , '甘肃省', '6206', '武威市', '620621', '民勤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3294 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620622', '6206', '00,62,6206', '古浪县', '62' + , '甘肃省', '6206', '武威市', '620622', '古浪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3295 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620623', '6206', '00,62,6206', '天祝藏族自治县', '62' + , '甘肃省', '6206', '武威市', '620623', '天祝藏族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3296 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6207', '62', '00,62', '张掖市', '62' + , '甘肃省', '6207', '张掖市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3297 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620702', '6207', '00,62,6207', '甘州区', '62' + , '甘肃省', '6207', '张掖市', '620702', '甘州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3298 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620721', '6207', '00,62,6207', '肃南裕固族自治县', '62' + , '甘肃省', '6207', '张掖市', '620721', '肃南裕固族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3299 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620722', '6207', '00,62,6207', '民乐县', '62' + , '甘肃省', '6207', '张掖市', '620722', '民乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3300 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620723', '6207', '00,62,6207', '临泽县', '62' + , '甘肃省', '6207', '张掖市', '620723', '临泽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3301 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620724', '6207', '00,62,6207', '高台县', '62' + , '甘肃省', '6207', '张掖市', '620724', '高台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3302 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620725', '6207', '00,62,6207', '山丹县', '62' + , '甘肃省', '6207', '张掖市', '620725', '山丹县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3303 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6208', '62', '00,62', '平凉市', '62' + , '甘肃省', '6208', '平凉市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3304 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620802', '6208', '00,62,6208', '崆峒区', '62' + , '甘肃省', '6208', '平凉市', '620802', '崆峒区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3305 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620821', '6208', '00,62,6208', '泾川县', '62' + , '甘肃省', '6208', '平凉市', '620821', '泾川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3306 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620822', '6208', '00,62,6208', '灵台县', '62' + , '甘肃省', '6208', '平凉市', '620822', '灵台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3307 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620823', '6208', '00,62,6208', '崇信县', '62' + , '甘肃省', '6208', '平凉市', '620823', '崇信县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3308 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620825', '6208', '00,62,6208', '庄浪县', '62' + , '甘肃省', '6208', '平凉市', '620825', '庄浪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3309 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620826', '6208', '00,62,6208', '静宁县', '62' + , '甘肃省', '6208', '平凉市', '620826', '静宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3310 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620881', '6208', '00,62,6208', '华亭市', '62' + , '甘肃省', '6208', '平凉市', '620881', '华亭市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3311 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6209', '62', '00,62', '酒泉市', '62' + , '甘肃省', '6209', '酒泉市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3312 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620902', '6209', '00,62,6209', '肃州区', '62' + , '甘肃省', '6209', '酒泉市', '620902', '肃州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3313 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620921', '6209', '00,62,6209', '金塔县', '62' + , '甘肃省', '6209', '酒泉市', '620921', '金塔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3314 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620922', '6209', '00,62,6209', '瓜州县', '62' + , '甘肃省', '6209', '酒泉市', '620922', '瓜州县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3315 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620923', '6209', '00,62,6209', '肃北蒙古族自治县', '62' + , '甘肃省', '6209', '酒泉市', '620923', '肃北蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3316 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620924', '6209', '00,62,6209', '阿克塞哈萨克族自治县', '62' + , '甘肃省', '6209', '酒泉市', '620924', '阿克塞哈萨克族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3317 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620981', '6209', '00,62,6209', '玉门市', '62' + , '甘肃省', '6209', '酒泉市', '620981', '玉门市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3318 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620982', '6209', '00,62,6209', '敦煌市', '62' + , '甘肃省', '6209', '酒泉市', '620982', '敦煌市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3319 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6210', '62', '00,62', '庆阳市', '62' + , '甘肃省', '6210', '庆阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3320 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621002', '6210', '00,62,6210', '西峰区', '62' + , '甘肃省', '6210', '庆阳市', '621002', '西峰区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3321 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621021', '6210', '00,62,6210', '庆城县', '62' + , '甘肃省', '6210', '庆阳市', '621021', '庆城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3322 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621022', '6210', '00,62,6210', '环县', '62' + , '甘肃省', '6210', '庆阳市', '621022', '环县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3323 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621023', '6210', '00,62,6210', '华池县', '62' + , '甘肃省', '6210', '庆阳市', '621023', '华池县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3324 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621024', '6210', '00,62,6210', '合水县', '62' + , '甘肃省', '6210', '庆阳市', '621024', '合水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3325 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621025', '6210', '00,62,6210', '正宁县', '62' + , '甘肃省', '6210', '庆阳市', '621025', '正宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3326 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621026', '6210', '00,62,6210', '宁县', '62' + , '甘肃省', '6210', '庆阳市', '621026', '宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3327 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621027', '6210', '00,62,6210', '镇原县', '62' + , '甘肃省', '6210', '庆阳市', '621027', '镇原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3328 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6211', '62', '00,62', '定西市', '62' + , '甘肃省', '6211', '定西市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3329 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('451122', '4511', '00,45,4511', '钟山县', '45' + , '广西壮族自治区', '4511', '贺州市', '451122', '钟山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3330 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659002', '6590', '00,65,6590', '阿拉尔市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659002', '阿拉尔市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3331 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659003', '6590', '00,65,6590', '图木舒克市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659003', '图木舒克市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3332 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659004', '6590', '00,65,6590', '五家渠市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659004', '五家渠市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3333 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659005', '6590', '00,65,6590', '北屯市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659005', '北屯市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3334 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659006', '6590', '00,65,6590', '铁门关市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659006', '铁门关市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3335 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659007', '6590', '00,65,6590', '双河市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659007', '双河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3336 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659008', '6590', '00,65,6590', '可克达拉市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659008', '可克达拉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3337 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659009', '6590', '00,65,6590', '昆玉市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659009', '昆玉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3338 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659010', '6590', '00,65,6590', '胡杨河市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659010', '胡杨河市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3339 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('71', '00', '00', '台湾省', '71' + , '台湾省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3340 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('81', '00', '00', '香港特别行政区', '81' + , '香港特别行政区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3341 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('82', '00', '00', '澳门特别行政区', '82' + , '澳门特别行政区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3342 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610302', '6103', '00,61,6103', '渭滨区', '61' + , '陕西省', '6103', '宝鸡市', '610302', '渭滨区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3343 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610303', '6103', '00,61,6103', '金台区', '61' + , '陕西省', '6103', '宝鸡市', '610303', '金台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3344 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610304', '6103', '00,61,6103', '陈仓区', '61' + , '陕西省', '6103', '宝鸡市', '610304', '陈仓区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3345 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640422', '6404', '00,64,6404', '西吉县', '64' + , '宁夏回族自治区', '6404', '固原市', '640422', '西吉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3346 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640423', '6404', '00,64,6404', '隆德县', '64' + , '宁夏回族自治区', '6404', '固原市', '640423', '隆德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3347 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640424', '6404', '00,64,6404', '泾源县', '64' + , '宁夏回族自治区', '6404', '固原市', '640424', '泾源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3348 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640425', '6404', '00,64,6404', '彭阳县', '64' + , '宁夏回族自治区', '6404', '固原市', '640425', '彭阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3349 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6405', '64', '00,64', '中卫市', '64' + , '宁夏回族自治区', '6405', '中卫市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3350 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640502', '6405', '00,64,6405', '沙坡头区', '64' + , '宁夏回族自治区', '6405', '中卫市', '640502', '沙坡头区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3351 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640521', '6405', '00,64,6405', '中宁县', '64' + , '宁夏回族自治区', '6405', '中卫市', '640521', '中宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3352 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640522', '6405', '00,64,6405', '海原县', '64' + , '宁夏回族自治区', '6405', '中卫市', '640522', '海原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3353 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('65', '00', '00', '新疆维吾尔自治区', '65' + , '新疆维吾尔自治区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3354 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6501', '65', '00,65', '乌鲁木齐市', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3355 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650102', '6501', '00,65,6501', '天山区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650102', '天山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3356 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650103', '6501', '00,65,6501', '沙依巴克区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650103', '沙依巴克区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3357 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650104', '6501', '00,65,6501', '新市区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650104', '新市区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3358 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650105', '6501', '00,65,6501', '水磨沟区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650105', '水磨沟区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3359 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650106', '6501', '00,65,6501', '头屯河区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650106', '头屯河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3360 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650107', '6501', '00,65,6501', '达坂城区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650107', '达坂城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3361 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6108', '61', '00,61', '榆林市', '61' + , '陕西省', '6108', '榆林市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3362 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610802', '6108', '00,61,6108', '榆阳区', '61' + , '陕西省', '6108', '榆林市', '610802', '榆阳区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3363 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610803', '6108', '00,61,6108', '横山区', '61' + , '陕西省', '6108', '榆林市', '610803', '横山区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3364 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610822', '6108', '00,61,6108', '府谷县', '61' + , '陕西省', '6108', '榆林市', '610822', '府谷县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3365 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610824', '6108', '00,61,6108', '靖边县', '61' + , '陕西省', '6108', '榆林市', '610824', '靖边县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3366 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610825', '6108', '00,61,6108', '定边县', '61' + , '陕西省', '6108', '榆林市', '610825', '定边县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3367 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610826', '6108', '00,61,6108', '绥德县', '61' + , '陕西省', '6108', '榆林市', '610826', '绥德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3368 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610827', '6108', '00,61,6108', '米脂县', '61' + , '陕西省', '6108', '榆林市', '610827', '米脂县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3369 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610828', '6108', '00,61,6108', '佳县', '61' + , '陕西省', '6108', '榆林市', '610828', '佳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3370 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610829', '6108', '00,61,6108', '吴堡县', '61' + , '陕西省', '6108', '榆林市', '610829', '吴堡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3371 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610830', '6108', '00,61,6108', '清涧县', '61' + , '陕西省', '6108', '榆林市', '610830', '清涧县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3372 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610831', '6108', '00,61,6108', '子洲县', '61' + , '陕西省', '6108', '榆林市', '610831', '子洲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3373 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610881', '6108', '00,61,6108', '神木市', '61' + , '陕西省', '6108', '榆林市', '610881', '神木市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3374 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6109', '61', '00,61', '安康市', '61' + , '陕西省', '6109', '安康市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3375 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610902', '6109', '00,61,6109', '汉滨区', '61' + , '陕西省', '6109', '安康市', '610902', '汉滨区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3376 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610921', '6109', '00,61,6109', '汉阴县', '61' + , '陕西省', '6109', '安康市', '610921', '汉阴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3377 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610922', '6109', '00,61,6109', '石泉县', '61' + , '陕西省', '6109', '安康市', '610922', '石泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3378 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610923', '6109', '00,61,6109', '宁陕县', '61' + , '陕西省', '6109', '安康市', '610923', '宁陕县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3379 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610924', '6109', '00,61,6109', '紫阳县', '61' + , '陕西省', '6109', '安康市', '610924', '紫阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3380 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610925', '6109', '00,61,6109', '岚皋县', '61' + , '陕西省', '6109', '安康市', '610925', '岚皋县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3381 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610926', '6109', '00,61,6109', '平利县', '61' + , '陕西省', '6109', '安康市', '610926', '平利县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3382 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610927', '6109', '00,61,6109', '镇坪县', '61' + , '陕西省', '6109', '安康市', '610927', '镇坪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3383 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610928', '6109', '00,61,6109', '旬阳县', '61' + , '陕西省', '6109', '安康市', '610928', '旬阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3384 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610929', '6109', '00,61,6109', '白河县', '61' + , '陕西省', '6109', '安康市', '610929', '白河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3385 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6110', '61', '00,61', '商洛市', '61' + , '陕西省', '6110', '商洛市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3386 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611002', '6110', '00,61,6110', '商州区', '61' + , '陕西省', '6110', '商洛市', '611002', '商州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3387 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611021', '6110', '00,61,6110', '洛南县', '61' + , '陕西省', '6110', '商洛市', '611021', '洛南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3388 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611022', '6110', '00,61,6110', '丹凤县', '61' + , '陕西省', '6110', '商洛市', '611022', '丹凤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3389 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611023', '6110', '00,61,6110', '商南县', '61' + , '陕西省', '6110', '商洛市', '611023', '商南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3390 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611024', '6110', '00,61,6110', '山阳县', '61' + , '陕西省', '6110', '商洛市', '611024', '山阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3391 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611025', '6110', '00,61,6110', '镇安县', '61' + , '陕西省', '6110', '商洛市', '611025', '镇安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3392 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('611026', '6110', '00,61,6110', '柞水县', '61' + , '陕西省', '6110', '商洛市', '611026', '柞水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3393 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('62', '00', '00', '甘肃省', '62' + , '甘肃省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3394 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6201', '62', '00,62', '兰州市', '62' + , '甘肃省', '6201', '兰州市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3395 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620102', '6201', '00,62,6201', '城关区', '62' + , '甘肃省', '6201', '兰州市', '620102', '城关区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3396 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620103', '6201', '00,62,6201', '七里河区', '62' + , '甘肃省', '6201', '兰州市', '620103', '七里河区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3397 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620104', '6201', '00,62,6201', '西固区', '62' + , '甘肃省', '6201', '兰州市', '620104', '西固区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3398 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620105', '6201', '00,62,6201', '安宁区', '62' + , '甘肃省', '6201', '兰州市', '620105', '安宁区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3399 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620111', '6201', '00,62,6201', '红古区', '62' + , '甘肃省', '6201', '兰州市', '620111', '红古区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3400 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620121', '6201', '00,62,6201', '永登县', '62' + , '甘肃省', '6201', '兰州市', '620121', '永登县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3401 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620122', '6201', '00,62,6201', '皋兰县', '62' + , '甘肃省', '6201', '兰州市', '620122', '皋兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3402 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620123', '6201', '00,62,6201', '榆中县', '62' + , '甘肃省', '6201', '兰州市', '620123', '榆中县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3403 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6202', '62', '00,62', '嘉峪关市', '62' + , '甘肃省', '6202', '嘉峪关市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3404 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610322', '6103', '00,61,6103', '凤翔县', '61' + , '陕西省', '6103', '宝鸡市', '610322', '凤翔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3405 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610323', '6103', '00,61,6103', '岐山县', '61' + , '陕西省', '6103', '宝鸡市', '610323', '岐山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3406 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610324', '6103', '00,61,6103', '扶风县', '61' + , '陕西省', '6103', '宝鸡市', '610324', '扶风县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3407 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610326', '6103', '00,61,6103', '眉县', '61' + , '陕西省', '6103', '宝鸡市', '610326', '眉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3408 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610327', '6103', '00,61,6103', '陇县', '61' + , '陕西省', '6103', '宝鸡市', '610327', '陇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3409 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610328', '6103', '00,61,6103', '千阳县', '61' + , '陕西省', '6103', '宝鸡市', '610328', '千阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3410 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610329', '6103', '00,61,6103', '麟游县', '61' + , '陕西省', '6103', '宝鸡市', '610329', '麟游县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3411 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610330', '6103', '00,61,6103', '凤县', '61' + , '陕西省', '6103', '宝鸡市', '610330', '凤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3412 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610331', '6103', '00,61,6103', '太白县', '61' + , '陕西省', '6103', '宝鸡市', '610331', '太白县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3413 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6104', '61', '00,61', '咸阳市', '61' + , '陕西省', '6104', '咸阳市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3414 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610402', '6104', '00,61,6104', '秦都区', '61' + , '陕西省', '6104', '咸阳市', '610402', '秦都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3415 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610403', '6104', '00,61,6104', '杨陵区', '61' + , '陕西省', '6104', '咸阳市', '610403', '杨陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3416 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610404', '6104', '00,61,6104', '渭城区', '61' + , '陕西省', '6104', '咸阳市', '610404', '渭城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3417 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610422', '6104', '00,61,6104', '三原县', '61' + , '陕西省', '6104', '咸阳市', '610422', '三原县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3418 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610423', '6104', '00,61,6104', '泾阳县', '61' + , '陕西省', '6104', '咸阳市', '610423', '泾阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3419 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610424', '6104', '00,61,6104', '乾县', '61' + , '陕西省', '6104', '咸阳市', '610424', '乾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3420 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610425', '6104', '00,61,6104', '礼泉县', '61' + , '陕西省', '6104', '咸阳市', '610425', '礼泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3421 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610426', '6104', '00,61,6104', '永寿县', '61' + , '陕西省', '6104', '咸阳市', '610426', '永寿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3422 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610428', '6104', '00,61,6104', '长武县', '61' + , '陕西省', '6104', '咸阳市', '610428', '长武县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3423 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610429', '6104', '00,61,6104', '旬邑县', '61' + , '陕西省', '6104', '咸阳市', '610429', '旬邑县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3424 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610430', '6104', '00,61,6104', '淳化县', '61' + , '陕西省', '6104', '咸阳市', '610430', '淳化县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3425 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610431', '6104', '00,61,6104', '武功县', '61' + , '陕西省', '6104', '咸阳市', '610431', '武功县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3426 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610481', '6104', '00,61,6104', '兴平市', '61' + , '陕西省', '6104', '咸阳市', '610481', '兴平市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3427 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610482', '6104', '00,61,6104', '彬州市', '61' + , '陕西省', '6104', '咸阳市', '610482', '彬州市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3428 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6105', '61', '00,61', '渭南市', '61' + , '陕西省', '6105', '渭南市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3429 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610502', '6105', '00,61,6105', '临渭区', '61' + , '陕西省', '6105', '渭南市', '610502', '临渭区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3430 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610503', '6105', '00,61,6105', '华州区', '61' + , '陕西省', '6105', '渭南市', '610503', '华州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3431 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610522', '6105', '00,61,6105', '潼关县', '61' + , '陕西省', '6105', '渭南市', '610522', '潼关县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3432 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610523', '6105', '00,61,6105', '大荔县', '61' + , '陕西省', '6105', '渭南市', '610523', '大荔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3433 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610524', '6105', '00,61,6105', '合阳县', '61' + , '陕西省', '6105', '渭南市', '610524', '合阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3434 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610525', '6105', '00,61,6105', '澄城县', '61' + , '陕西省', '6105', '渭南市', '610525', '澄城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3435 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610526', '6105', '00,61,6105', '蒲城县', '61' + , '陕西省', '6105', '渭南市', '610526', '蒲城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3436 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610527', '6105', '00,61,6105', '白水县', '61' + , '陕西省', '6105', '渭南市', '610527', '白水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3437 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610528', '6105', '00,61,6105', '富平县', '61' + , '陕西省', '6105', '渭南市', '610528', '富平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3438 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610581', '6105', '00,61,6105', '韩城市', '61' + , '陕西省', '6105', '渭南市', '610581', '韩城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3439 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610582', '6105', '00,61,6105', '华阴市', '61' + , '陕西省', '6105', '渭南市', '610582', '华阴市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3440 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6106', '61', '00,61', '延安市', '61' + , '陕西省', '6106', '延安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3441 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610602', '6106', '00,61,6106', '宝塔区', '61' + , '陕西省', '6106', '延安市', '610602', '宝塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3442 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610603', '6106', '00,61,6106', '安塞区', '61' + , '陕西省', '6106', '延安市', '610603', '安塞区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3443 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610621', '6106', '00,61,6106', '延长县', '61' + , '陕西省', '6106', '延安市', '610621', '延长县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3444 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610622', '6106', '00,61,6106', '延川县', '61' + , '陕西省', '6106', '延安市', '610622', '延川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3445 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610625', '6106', '00,61,6106', '志丹县', '61' + , '陕西省', '6106', '延安市', '610625', '志丹县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3446 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610626', '6106', '00,61,6106', '吴起县', '61' + , '陕西省', '6106', '延安市', '610626', '吴起县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3447 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610627', '6106', '00,61,6106', '甘泉县', '61' + , '陕西省', '6106', '延安市', '610627', '甘泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3448 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610628', '6106', '00,61,6106', '富县', '61' + , '陕西省', '6106', '延安市', '610628', '富县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3449 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610629', '6106', '00,61,6106', '洛川县', '61' + , '陕西省', '6106', '延安市', '610629', '洛川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3450 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610630', '6106', '00,61,6106', '宜川县', '61' + , '陕西省', '6106', '延安市', '610630', '宜川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3451 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610631', '6106', '00,61,6106', '黄龙县', '61' + , '陕西省', '6106', '延安市', '610631', '黄龙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3452 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610632', '6106', '00,61,6106', '黄陵县', '61' + , '陕西省', '6106', '延安市', '610632', '黄陵县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3453 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610681', '6106', '00,61,6106', '子长市', '61' + , '陕西省', '6106', '延安市', '610681', '子长市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3454 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6107', '61', '00,61', '汉中市', '61' + , '陕西省', '6107', '汉中市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3455 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610702', '6107', '00,61,6107', '汉台区', '61' + , '陕西省', '6107', '汉中市', '610702', '汉台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3456 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610703', '6107', '00,61,6107', '南郑区', '61' + , '陕西省', '6107', '汉中市', '610703', '南郑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3457 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610722', '6107', '00,61,6107', '城固县', '61' + , '陕西省', '6107', '汉中市', '610722', '城固县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3458 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610723', '6107', '00,61,6107', '洋县', '61' + , '陕西省', '6107', '汉中市', '610723', '洋县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3459 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610724', '6107', '00,61,6107', '西乡县', '61' + , '陕西省', '6107', '汉中市', '610724', '西乡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3460 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610725', '6107', '00,61,6107', '勉县', '61' + , '陕西省', '6107', '汉中市', '610725', '勉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3461 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610726', '6107', '00,61,6107', '宁强县', '61' + , '陕西省', '6107', '汉中市', '610726', '宁强县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3462 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610727', '6107', '00,61,6107', '略阳县', '61' + , '陕西省', '6107', '汉中市', '610727', '略阳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3463 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610728', '6107', '00,61,6107', '镇巴县', '61' + , '陕西省', '6107', '汉中市', '610728', '镇巴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3464 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621123', '6211', '00,62,6211', '渭源县', '62' + , '甘肃省', '6211', '定西市', '621123', '渭源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3465 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621124', '6211', '00,62,6211', '临洮县', '62' + , '甘肃省', '6211', '定西市', '621124', '临洮县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3466 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621125', '6211', '00,62,6211', '漳县', '62' + , '甘肃省', '6211', '定西市', '621125', '漳县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3467 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621126', '6211', '00,62,6211', '岷县', '62' + , '甘肃省', '6211', '定西市', '621126', '岷县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3468 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6212', '62', '00,62', '陇南市', '62' + , '甘肃省', '6212', '陇南市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3469 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621202', '6212', '00,62,6212', '武都区', '62' + , '甘肃省', '6212', '陇南市', '621202', '武都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3470 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621221', '6212', '00,62,6212', '成县', '62' + , '甘肃省', '6212', '陇南市', '621221', '成县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3471 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621222', '6212', '00,62,6212', '文县', '62' + , '甘肃省', '6212', '陇南市', '621222', '文县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3472 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621223', '6212', '00,62,6212', '宕昌县', '62' + , '甘肃省', '6212', '陇南市', '621223', '宕昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3473 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621224', '6212', '00,62,6212', '康县', '62' + , '甘肃省', '6212', '陇南市', '621224', '康县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3474 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621225', '6212', '00,62,6212', '西和县', '62' + , '甘肃省', '6212', '陇南市', '621225', '西和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3475 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621226', '6212', '00,62,6212', '礼县', '62' + , '甘肃省', '6212', '陇南市', '621226', '礼县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3476 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621227', '6212', '00,62,6212', '徽县', '62' + , '甘肃省', '6212', '陇南市', '621227', '徽县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3477 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621228', '6212', '00,62,6212', '两当县', '62' + , '甘肃省', '6212', '陇南市', '621228', '两当县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3478 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6229', '62', '00,62', '临夏回族自治州', '62' + , '甘肃省', '6229', '临夏回族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3479 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622901', '6229', '00,62,6229', '临夏市', '62' + , '甘肃省', '6229', '临夏回族自治州', '622901', '临夏市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3480 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622921', '6229', '00,62,6229', '临夏县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622921', '临夏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3481 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622922', '6229', '00,62,6229', '康乐县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622922', '康乐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3482 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622923', '6229', '00,62,6229', '永靖县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622923', '永靖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3483 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622924', '6229', '00,62,6229', '广河县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622924', '广河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3484 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622925', '6229', '00,62,6229', '和政县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622925', '和政县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3485 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622926', '6229', '00,62,6229', '东乡族自治县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622926', '东乡族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3486 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('622927', '6229', '00,62,6229', '积石山保安族东乡族撒拉族自治县', '62' + , '甘肃省', '6229', '临夏回族自治州', '622927', '积石山保安族东乡族撒拉族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3487 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6230', '62', '00,62', '甘南藏族自治州', '62' + , '甘肃省', '6230', '甘南藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3488 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623001', '6230', '00,62,6230', '合作市', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623001', '合作市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3489 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623021', '6230', '00,62,6230', '临潭县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623021', '临潭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3490 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623022', '6230', '00,62,6230', '卓尼县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623022', '卓尼县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3491 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623023', '6230', '00,62,6230', '舟曲县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623023', '舟曲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3492 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623024', '6230', '00,62,6230', '迭部县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623024', '迭部县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3493 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623025', '6230', '00,62,6230', '玛曲县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623025', '玛曲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3494 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623026', '6230', '00,62,6230', '碌曲县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623026', '碌曲县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3495 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('623027', '6230', '00,62,6230', '夏河县', '62' + , '甘肃省', '6230', '甘南藏族自治州', '623027', '夏河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3496 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('63', '00', '00', '青海省', '63' + , '青海省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3497 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6301', '63', '00,63', '西宁市', '63' + , '青海省', '6301', '西宁市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3498 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630102', '6301', '00,63,6301', '城东区', '63' + , '青海省', '6301', '西宁市', '630102', '城东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3499 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630103', '6301', '00,63,6301', '城中区', '63' + , '青海省', '6301', '西宁市', '630103', '城中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3500 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630104', '6301', '00,63,6301', '城西区', '63' + , '青海省', '6301', '西宁市', '630104', '城西区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3501 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630105', '6301', '00,63,6301', '城北区', '63' + , '青海省', '6301', '西宁市', '630105', '城北区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3502 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630106', '6301', '00,63,6301', '湟中区', '63' + , '青海省', '6301', '西宁市', '630106', '湟中区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3503 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630121', '6301', '00,63,6301', '大通回族土族自治县', '63' + , '青海省', '6301', '西宁市', '630121', '大通回族土族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3504 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630123', '6301', '00,63,6301', '湟源县', '63' + , '青海省', '6301', '西宁市', '630123', '湟源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3505 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6302', '63', '00,63', '海东市', '63' + , '青海省', '6302', '海东市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3506 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630202', '6302', '00,63,6302', '乐都区', '63' + , '青海省', '6302', '海东市', '630202', '乐都区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3507 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630203', '6302', '00,63,6302', '平安区', '63' + , '青海省', '6302', '海东市', '630203', '平安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3508 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630222', '6302', '00,63,6302', '民和回族土族自治县', '63' + , '青海省', '6302', '海东市', '630222', '民和回族土族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3509 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630223', '6302', '00,63,6302', '互助土族自治县', '63' + , '青海省', '6302', '海东市', '630223', '互助土族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3510 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630224', '6302', '00,63,6302', '化隆回族自治县', '63' + , '青海省', '6302', '海东市', '630224', '化隆回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3511 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('630225', '6302', '00,63,6302', '循化撒拉族自治县', '63' + , '青海省', '6302', '海东市', '630225', '循化撒拉族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3512 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6322', '63', '00,63', '海北藏族自治州', '63' + , '青海省', '6322', '海北藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3513 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632221', '6322', '00,63,6322', '门源回族自治县', '63' + , '青海省', '6322', '海北藏族自治州', '632221', '门源回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3514 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632222', '6322', '00,63,6322', '祁连县', '63' + , '青海省', '6322', '海北藏族自治州', '632222', '祁连县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3515 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500110', '5001', '00,50,5001', '綦江区', '50' + , '重庆市', '5001', '重庆市', '500110', '綦江区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3516 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500111', '5001', '00,50,5001', '大足区', '50' + , '重庆市', '5001', '重庆市', '500111', '大足区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3517 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533325', '5333', '00,53,5333', '兰坪白族普米族自治县', '53' + , '云南省', '5333', '怒江傈僳族自治州', '533325', '兰坪白族普米族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3518 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5334', '53', '00,53', '迪庆藏族自治州', '53' + , '云南省', '5334', '迪庆藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3519 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533401', '5334', '00,53,5334', '香格里拉市', '53' + , '云南省', '5334', '迪庆藏族自治州', '533401', '香格里拉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3520 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533422', '5334', '00,53,5334', '德钦县', '53' + , '云南省', '5334', '迪庆藏族自治州', '533422', '德钦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3521 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533423', '5334', '00,53,5334', '维西傈僳族自治县', '53' + , '云南省', '5334', '迪庆藏族自治州', '533423', '维西傈僳族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3522 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('54', '00', '00', '西藏自治区', '54' + , '西藏自治区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3523 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5401', '54', '00,54', '拉萨市', '54' + , '西藏自治区', '5401', '拉萨市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3524 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540102', '5401', '00,54,5401', '城关区', '54' + , '西藏自治区', '5401', '拉萨市', '540102', '城关区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3525 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540103', '5401', '00,54,5401', '堆龙德庆区', '54' + , '西藏自治区', '5401', '拉萨市', '540103', '堆龙德庆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3526 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540104', '5401', '00,54,5401', '达孜区', '54' + , '西藏自治区', '5401', '拉萨市', '540104', '达孜区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3527 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540121', '5401', '00,54,5401', '林周县', '54' + , '西藏自治区', '5401', '拉萨市', '540121', '林周县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3528 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540122', '5401', '00,54,5401', '当雄县', '54' + , '西藏自治区', '5401', '拉萨市', '540122', '当雄县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3529 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540123', '5401', '00,54,5401', '尼木县', '54' + , '西藏自治区', '5401', '拉萨市', '540123', '尼木县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3530 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540124', '5401', '00,54,5401', '曲水县', '54' + , '西藏自治区', '5401', '拉萨市', '540124', '曲水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3531 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540127', '5401', '00,54,5401', '墨竹工卡县', '54' + , '西藏自治区', '5401', '拉萨市', '540127', '墨竹工卡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3532 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5402', '54', '00,54', '日喀则市', '54' + , '西藏自治区', '5402', '日喀则市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3533 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540202', '5402', '00,54,5402', '桑珠孜区', '54' + , '西藏自治区', '5402', '日喀则市', '540202', '桑珠孜区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3534 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540221', '5402', '00,54,5402', '南木林县', '54' + , '西藏自治区', '5402', '日喀则市', '540221', '南木林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3535 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540222', '5402', '00,54,5402', '江孜县', '54' + , '西藏自治区', '5402', '日喀则市', '540222', '江孜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3536 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540223', '5402', '00,54,5402', '定日县', '54' + , '西藏自治区', '5402', '日喀则市', '540223', '定日县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3537 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540224', '5402', '00,54,5402', '萨迦县', '54' + , '西藏自治区', '5402', '日喀则市', '540224', '萨迦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3538 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540225', '5402', '00,54,5402', '拉孜县', '54' + , '西藏自治区', '5402', '日喀则市', '540225', '拉孜县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3539 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540226', '5402', '00,54,5402', '昂仁县', '54' + , '西藏自治区', '5402', '日喀则市', '540226', '昂仁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3540 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540227', '5402', '00,54,5402', '谢通门县', '54' + , '西藏自治区', '5402', '日喀则市', '540227', '谢通门县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3541 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540228', '5402', '00,54,5402', '白朗县', '54' + , '西藏自治区', '5402', '日喀则市', '540228', '白朗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3542 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540229', '5402', '00,54,5402', '仁布县', '54' + , '西藏自治区', '5402', '日喀则市', '540229', '仁布县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3543 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540230', '5402', '00,54,5402', '康马县', '54' + , '西藏自治区', '5402', '日喀则市', '540230', '康马县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3544 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540231', '5402', '00,54,5402', '定结县', '54' + , '西藏自治区', '5402', '日喀则市', '540231', '定结县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3545 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540232', '5402', '00,54,5402', '仲巴县', '54' + , '西藏自治区', '5402', '日喀则市', '540232', '仲巴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3546 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540233', '5402', '00,54,5402', '亚东县', '54' + , '西藏自治区', '5402', '日喀则市', '540233', '亚东县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3547 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540234', '5402', '00,54,5402', '吉隆县', '54' + , '西藏自治区', '5402', '日喀则市', '540234', '吉隆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3548 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653226', '6532', '00,65,6532', '于田县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653226', '于田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3549 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653227', '6532', '00,65,6532', '民丰县', '65' + , '新疆维吾尔自治区', '6532', '和田地区', '653227', '民丰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3550 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6540', '65', '00,65', '伊犁哈萨克自治州', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3551 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654002', '6540', '00,65,6540', '伊宁市', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654002', '伊宁市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3552 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654003', '6540', '00,65,6540', '奎屯市', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654003', '奎屯市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3553 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654004', '6540', '00,65,6540', '霍尔果斯市', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654004', '霍尔果斯市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3554 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654021', '6540', '00,65,6540', '伊宁县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654021', '伊宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3555 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654022', '6540', '00,65,6540', '察布查尔锡伯自治县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654022', '察布查尔锡伯自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3556 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654023', '6540', '00,65,6540', '霍城县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654023', '霍城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3557 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654024', '6540', '00,65,6540', '巩留县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654024', '巩留县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3558 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654025', '6540', '00,65,6540', '新源县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654025', '新源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3559 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654026', '6540', '00,65,6540', '昭苏县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654026', '昭苏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3560 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654027', '6540', '00,65,6540', '特克斯县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654027', '特克斯县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3561 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654028', '6540', '00,65,6540', '尼勒克县', '65' + , '新疆维吾尔自治区', '6540', '伊犁哈萨克自治州', '654028', '尼勒克县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3562 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6542', '65', '00,65', '塔城地区', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3563 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654201', '6542', '00,65,6542', '塔城市', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654201', '塔城市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3564 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654202', '6542', '00,65,6542', '乌苏市', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654202', '乌苏市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3565 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654221', '6542', '00,65,6542', '额敏县', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654221', '额敏县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3566 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654223', '6542', '00,65,6542', '沙湾县', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654223', '沙湾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3567 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654224', '6542', '00,65,6542', '托里县', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654224', '托里县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3568 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654225', '6542', '00,65,6542', '裕民县', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654225', '裕民县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3569 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654226', '6542', '00,65,6542', '和布克赛尔蒙古自治县', '65' + , '新疆维吾尔自治区', '6542', '塔城地区', '654226', '和布克赛尔蒙古自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3570 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6543', '65', '00,65', '阿勒泰地区', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3571 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654301', '6543', '00,65,6543', '阿勒泰市', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654301', '阿勒泰市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3572 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654321', '6543', '00,65,6543', '布尔津县', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654321', '布尔津县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3573 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654322', '6543', '00,65,6543', '富蕴县', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654322', '富蕴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3574 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654323', '6543', '00,65,6543', '福海县', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654323', '福海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3575 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654324', '6543', '00,65,6543', '哈巴河县', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654324', '哈巴河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3576 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654325', '6543', '00,65,6543', '青河县', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654325', '青河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3577 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('654326', '6543', '00,65,6543', '吉木乃县', '65' + , '新疆维吾尔自治区', '6543', '阿勒泰地区', '654326', '吉木乃县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3578 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6590', '65', '00,65', '自治区直辖县级行政区', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3579 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('659001', '6590', '00,65,6590', '石河子市', '65' + , '新疆维吾尔自治区', '6590', '自治区直辖县级行政区', '659001', '石河子市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3580 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540622', '5406', '00,54,5406', '比如县', '54' + , '西藏自治区', '5406', '那曲市', '540622', '比如县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3581 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650109', '6501', '00,65,6501', '米东区', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650109', '米东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3582 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650121', '6501', '00,65,6501', '乌鲁木齐县', '65' + , '新疆维吾尔自治区', '6501', '乌鲁木齐市', '650121', '乌鲁木齐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3583 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6502', '65', '00,65', '克拉玛依市', '65' + , '新疆维吾尔自治区', '6502', '克拉玛依市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3584 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650202', '6502', '00,65,6502', '独山子区', '65' + , '新疆维吾尔自治区', '6502', '克拉玛依市', '650202', '独山子区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3585 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650203', '6502', '00,65,6502', '克拉玛依区', '65' + , '新疆维吾尔自治区', '6502', '克拉玛依市', '650203', '克拉玛依区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3586 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650204', '6502', '00,65,6502', '白碱滩区', '65' + , '新疆维吾尔自治区', '6502', '克拉玛依市', '650204', '白碱滩区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3587 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650205', '6502', '00,65,6502', '乌尔禾区', '65' + , '新疆维吾尔自治区', '6502', '克拉玛依市', '650205', '乌尔禾区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3588 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6504', '65', '00,65', '吐鲁番市', '65' + , '新疆维吾尔自治区', '6504', '吐鲁番市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3589 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650402', '6504', '00,65,6504', '高昌区', '65' + , '新疆维吾尔自治区', '6504', '吐鲁番市', '650402', '高昌区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3590 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650421', '6504', '00,65,6504', '鄯善县', '65' + , '新疆维吾尔自治区', '6504', '吐鲁番市', '650421', '鄯善县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3591 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650422', '6504', '00,65,6504', '托克逊县', '65' + , '新疆维吾尔自治区', '6504', '吐鲁番市', '650422', '托克逊县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3592 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6505', '65', '00,65', '哈密市', '65' + , '新疆维吾尔自治区', '6505', '哈密市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3593 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5326', '53', '00,53', '文山壮族苗族自治州', '53' + , '云南省', '5326', '文山壮族苗族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3594 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532601', '5326', '00,53,5326', '文山市', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532601', '文山市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3595 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532622', '5326', '00,53,5326', '砚山县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532622', '砚山县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3596 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532623', '5326', '00,53,5326', '西畴县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532623', '西畴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3597 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532624', '5326', '00,53,5326', '麻栗坡县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532624', '麻栗坡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3598 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532625', '5326', '00,53,5326', '马关县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532625', '马关县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3599 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532626', '5326', '00,53,5326', '丘北县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532626', '丘北县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3600 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532627', '5326', '00,53,5326', '广南县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532627', '广南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3601 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532628', '5326', '00,53,5326', '富宁县', '53' + , '云南省', '5326', '文山壮族苗族自治州', '532628', '富宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3602 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5328', '53', '00,53', '西双版纳傣族自治州', '53' + , '云南省', '5328', '西双版纳傣族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3603 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532801', '5328', '00,53,5328', '景洪市', '53' + , '云南省', '5328', '西双版纳傣族自治州', '532801', '景洪市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3604 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532822', '5328', '00,53,5328', '勐海县', '53' + , '云南省', '5328', '西双版纳傣族自治州', '532822', '勐海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3605 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532823', '5328', '00,53,5328', '勐腊县', '53' + , '云南省', '5328', '西双版纳傣族自治州', '532823', '勐腊县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3606 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5329', '53', '00,53', '大理白族自治州', '53' + , '云南省', '5329', '大理白族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3607 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532901', '5329', '00,53,5329', '大理市', '53' + , '云南省', '5329', '大理白族自治州', '532901', '大理市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3608 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532922', '5329', '00,53,5329', '漾濞彝族自治县', '53' + , '云南省', '5329', '大理白族自治州', '532922', '漾濞彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3609 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532923', '5329', '00,53,5329', '祥云县', '53' + , '云南省', '5329', '大理白族自治州', '532923', '祥云县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3610 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532924', '5329', '00,53,5329', '宾川县', '53' + , '云南省', '5329', '大理白族自治州', '532924', '宾川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3611 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532925', '5329', '00,53,5329', '弥渡县', '53' + , '云南省', '5329', '大理白族自治州', '532925', '弥渡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3612 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532926', '5329', '00,53,5329', '南涧彝族自治县', '53' + , '云南省', '5329', '大理白族自治州', '532926', '南涧彝族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3613 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532927', '5329', '00,53,5329', '巍山彝族回族自治县', '53' + , '云南省', '5329', '大理白族自治州', '532927', '巍山彝族回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3614 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532928', '5329', '00,53,5329', '永平县', '53' + , '云南省', '5329', '大理白族自治州', '532928', '永平县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3615 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532929', '5329', '00,53,5329', '云龙县', '53' + , '云南省', '5329', '大理白族自治州', '532929', '云龙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3616 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532930', '5329', '00,53,5329', '洱源县', '53' + , '云南省', '5329', '大理白族自治州', '532930', '洱源县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3617 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532931', '5329', '00,53,5329', '剑川县', '53' + , '云南省', '5329', '大理白族自治州', '532931', '剑川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3618 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('532932', '5329', '00,53,5329', '鹤庆县', '53' + , '云南省', '5329', '大理白族自治州', '532932', '鹤庆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3619 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5331', '53', '00,53', '德宏傣族景颇族自治州', '53' + , '云南省', '5331', '德宏傣族景颇族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3620 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533102', '5331', '00,53,5331', '瑞丽市', '53' + , '云南省', '5331', '德宏傣族景颇族自治州', '533102', '瑞丽市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3621 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533103', '5331', '00,53,5331', '芒市', '53' + , '云南省', '5331', '德宏傣族景颇族自治州', '533103', '芒市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3622 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533122', '5331', '00,53,5331', '梁河县', '53' + , '云南省', '5331', '德宏傣族景颇族自治州', '533122', '梁河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3623 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533123', '5331', '00,53,5331', '盈江县', '53' + , '云南省', '5331', '德宏傣族景颇族自治州', '533123', '盈江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3624 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533124', '5331', '00,53,5331', '陇川县', '53' + , '云南省', '5331', '德宏傣族景颇族自治州', '533124', '陇川县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3625 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5333', '53', '00,53', '怒江傈僳族自治州', '53' + , '云南省', '5333', '怒江傈僳族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3626 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533301', '5333', '00,53,5333', '泸水市', '53' + , '云南省', '5333', '怒江傈僳族自治州', '533301', '泸水市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3627 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533323', '5333', '00,53,5333', '福贡县', '53' + , '云南省', '5333', '怒江傈僳族自治州', '533323', '福贡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3628 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('533324', '5333', '00,53,5333', '贡山独龙族怒族自治县', '53' + , '云南省', '5333', '怒江傈僳族自治州', '533324', '贡山独龙族怒族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3629 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540623', '5406', '00,54,5406', '聂荣县', '54' + , '西藏自治区', '5406', '那曲市', '540623', '聂荣县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3630 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540624', '5406', '00,54,5406', '安多县', '54' + , '西藏自治区', '5406', '那曲市', '540624', '安多县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3631 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540625', '5406', '00,54,5406', '申扎县', '54' + , '西藏自治区', '5406', '那曲市', '540625', '申扎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3632 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540626', '5406', '00,54,5406', '索县', '54' + , '西藏自治区', '5406', '那曲市', '540626', '索县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3633 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540627', '5406', '00,54,5406', '班戈县', '54' + , '西藏自治区', '5406', '那曲市', '540627', '班戈县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3634 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540628', '5406', '00,54,5406', '巴青县', '54' + , '西藏自治区', '5406', '那曲市', '540628', '巴青县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3635 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540629', '5406', '00,54,5406', '尼玛县', '54' + , '西藏自治区', '5406', '那曲市', '540629', '尼玛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3636 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540630', '5406', '00,54,5406', '双湖县', '54' + , '西藏自治区', '5406', '那曲市', '540630', '双湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3637 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5425', '54', '00,54', '阿里地区', '54' + , '西藏自治区', '5425', '阿里地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3638 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542521', '5425', '00,54,5425', '普兰县', '54' + , '西藏自治区', '5425', '阿里地区', '542521', '普兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3639 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542522', '5425', '00,54,5425', '札达县', '54' + , '西藏自治区', '5425', '阿里地区', '542522', '札达县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3640 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542523', '5425', '00,54,5425', '噶尔县', '54' + , '西藏自治区', '5425', '阿里地区', '542523', '噶尔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3641 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542524', '5425', '00,54,5425', '日土县', '54' + , '西藏自治区', '5425', '阿里地区', '542524', '日土县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3642 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542525', '5425', '00,54,5425', '革吉县', '54' + , '西藏自治区', '5425', '阿里地区', '542525', '革吉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3643 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542526', '5425', '00,54,5425', '改则县', '54' + , '西藏自治区', '5425', '阿里地区', '542526', '改则县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3644 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('542527', '5425', '00,54,5425', '措勤县', '54' + , '西藏自治区', '5425', '阿里地区', '542527', '措勤县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3645 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('61', '00', '00', '陕西省', '61' + , '陕西省', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3646 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6101', '61', '00,61', '西安市', '61' + , '陕西省', '6101', '西安市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3647 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610102', '6101', '00,61,6101', '新城区', '61' + , '陕西省', '6101', '西安市', '610102', '新城区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3648 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610103', '6101', '00,61,6101', '碑林区', '61' + , '陕西省', '6101', '西安市', '610103', '碑林区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3649 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610104', '6101', '00,61,6101', '莲湖区', '61' + , '陕西省', '6101', '西安市', '610104', '莲湖区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3650 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610111', '6101', '00,61,6101', '灞桥区', '61' + , '陕西省', '6101', '西安市', '610111', '灞桥区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3651 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610112', '6101', '00,61,6101', '未央区', '61' + , '陕西省', '6101', '西安市', '610112', '未央区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3652 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610113', '6101', '00,61,6101', '雁塔区', '61' + , '陕西省', '6101', '西安市', '610113', '雁塔区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3653 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610114', '6101', '00,61,6101', '阎良区', '61' + , '陕西省', '6101', '西安市', '610114', '阎良区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3654 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610115', '6101', '00,61,6101', '临潼区', '61' + , '陕西省', '6101', '西安市', '610115', '临潼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3655 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610116', '6101', '00,61,6101', '长安区', '61' + , '陕西省', '6101', '西安市', '610116', '长安区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3656 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610117', '6101', '00,61,6101', '高陵区', '61' + , '陕西省', '6101', '西安市', '610117', '高陵区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3657 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610118', '6101', '00,61,6101', '鄠邑区', '61' + , '陕西省', '6101', '西安市', '610118', '鄠邑区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3658 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610122', '6101', '00,61,6101', '蓝田县', '61' + , '陕西省', '6101', '西安市', '610122', '蓝田县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3659 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610124', '6101', '00,61,6101', '周至县', '61' + , '陕西省', '6101', '西安市', '610124', '周至县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3660 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6102', '61', '00,61', '铜川市', '61' + , '陕西省', '6102', '铜川市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3661 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610202', '6102', '00,61,6102', '王益区', '61' + , '陕西省', '6102', '铜川市', '610202', '王益区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3662 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610203', '6102', '00,61,6102', '印台区', '61' + , '陕西省', '6102', '铜川市', '610203', '印台区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3663 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610204', '6102', '00,61,6102', '耀州区', '61' + , '陕西省', '6102', '铜川市', '610204', '耀州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3664 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('610222', '6102', '00,61,6102', '宜君县', '61' + , '陕西省', '6102', '铜川市', '610222', '宜君县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3665 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6103', '61', '00,61', '宝鸡市', '61' + , '陕西省', '6103', '宝鸡市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3666 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632823', '6328', '00,63,6328', '天峻县', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', '632823', '天峻县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3667 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('64', '00', '00', '宁夏回族自治区', '64' + , '宁夏回族自治区', NULL, NULL, NULL, NULL + , NULL, NULL, NULL, NULL, '1' + , '1', NULL); + +/*The 3668 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6401', '64', '00,64', '银川市', '64' + , '宁夏回族自治区', '6401', '银川市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3669 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640104', '6401', '00,64,6401', '兴庆区', '64' + , '宁夏回族自治区', '6401', '银川市', '640104', '兴庆区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3670 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640105', '6401', '00,64,6401', '西夏区', '64' + , '宁夏回族自治区', '6401', '银川市', '640105', '西夏区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3671 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640106', '6401', '00,64,6401', '金凤区', '64' + , '宁夏回族自治区', '6401', '银川市', '640106', '金凤区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3672 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640121', '6401', '00,64,6401', '永宁县', '64' + , '宁夏回族自治区', '6401', '银川市', '640121', '永宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3673 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640122', '6401', '00,64,6401', '贺兰县', '64' + , '宁夏回族自治区', '6401', '银川市', '640122', '贺兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3674 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640181', '6401', '00,64,6401', '灵武市', '64' + , '宁夏回族自治区', '6401', '银川市', '640181', '灵武市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3675 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6402', '64', '00,64', '石嘴山市', '64' + , '宁夏回族自治区', '6402', '石嘴山市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3676 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640202', '6402', '00,64,6402', '大武口区', '64' + , '宁夏回族自治区', '6402', '石嘴山市', '640202', '大武口区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3677 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640205', '6402', '00,64,6402', '惠农区', '64' + , '宁夏回族自治区', '6402', '石嘴山市', '640205', '惠农区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3678 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640221', '6402', '00,64,6402', '平罗县', '64' + , '宁夏回族自治区', '6402', '石嘴山市', '640221', '平罗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3679 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6403', '64', '00,64', '吴忠市', '64' + , '宁夏回族自治区', '6403', '吴忠市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3680 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640302', '6403', '00,64,6403', '利通区', '64' + , '宁夏回族自治区', '6403', '吴忠市', '640302', '利通区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3681 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640303', '6403', '00,64,6403', '红寺堡区', '64' + , '宁夏回族自治区', '6403', '吴忠市', '640303', '红寺堡区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3682 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640323', '6403', '00,64,6403', '盐池县', '64' + , '宁夏回族自治区', '6403', '吴忠市', '640323', '盐池县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3683 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640324', '6403', '00,64,6403', '同心县', '64' + , '宁夏回族自治区', '6403', '吴忠市', '640324', '同心县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3684 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640381', '6403', '00,64,6403', '青铜峡市', '64' + , '宁夏回族自治区', '6403', '吴忠市', '640381', '青铜峡市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3685 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6404', '64', '00,64', '固原市', '64' + , '宁夏回族自治区', '6404', '固原市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3686 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('640402', '6404', '00,64,6404', '原州区', '64' + , '宁夏回族自治区', '6404', '固原市', '640402', '原州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3687 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('500109', '5001', '00,50,5001', '北碚区', '50' + , '重庆市', '5001', '重庆市', '500109', '北碚区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3688 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511722', '5117', '00,51,5117', '宣汉县', '51' + , '四川省', '5117', '达州市', '511722', '宣汉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3689 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('511723', '5117', '00,51,5117', '开江县', '51' + , '四川省', '5117', '达州市', '511723', '开江县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3690 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632224', '6322', '00,63,6322', '刚察县', '63' + , '青海省', '6322', '海北藏族自治州', '632224', '刚察县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3691 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6323', '63', '00,63', '黄南藏族自治州', '63' + , '青海省', '6323', '黄南藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3692 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632321', '6323', '00,63,6323', '同仁县', '63' + , '青海省', '6323', '黄南藏族自治州', '632321', '同仁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3693 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632322', '6323', '00,63,6323', '尖扎县', '63' + , '青海省', '6323', '黄南藏族自治州', '632322', '尖扎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3694 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632323', '6323', '00,63,6323', '泽库县', '63' + , '青海省', '6323', '黄南藏族自治州', '632323', '泽库县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3695 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632324', '6323', '00,63,6323', '河南蒙古族自治县', '63' + , '青海省', '6323', '黄南藏族自治州', '632324', '河南蒙古族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3696 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6325', '63', '00,63', '海南藏族自治州', '63' + , '青海省', '6325', '海南藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3697 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632521', '6325', '00,63,6325', '共和县', '63' + , '青海省', '6325', '海南藏族自治州', '632521', '共和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3698 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632522', '6325', '00,63,6325', '同德县', '63' + , '青海省', '6325', '海南藏族自治州', '632522', '同德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3699 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632523', '6325', '00,63,6325', '贵德县', '63' + , '青海省', '6325', '海南藏族自治州', '632523', '贵德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3700 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632524', '6325', '00,63,6325', '兴海县', '63' + , '青海省', '6325', '海南藏族自治州', '632524', '兴海县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3701 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632525', '6325', '00,63,6325', '贵南县', '63' + , '青海省', '6325', '海南藏族自治州', '632525', '贵南县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3702 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6326', '63', '00,63', '果洛藏族自治州', '63' + , '青海省', '6326', '果洛藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3703 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632621', '6326', '00,63,6326', '玛沁县', '63' + , '青海省', '6326', '果洛藏族自治州', '632621', '玛沁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3704 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632622', '6326', '00,63,6326', '班玛县', '63' + , '青海省', '6326', '果洛藏族自治州', '632622', '班玛县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3705 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632623', '6326', '00,63,6326', '甘德县', '63' + , '青海省', '6326', '果洛藏族自治州', '632623', '甘德县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3706 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632624', '6326', '00,63,6326', '达日县', '63' + , '青海省', '6326', '果洛藏族自治州', '632624', '达日县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3707 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632625', '6326', '00,63,6326', '久治县', '63' + , '青海省', '6326', '果洛藏族自治州', '632625', '久治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3708 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632626', '6326', '00,63,6326', '玛多县', '63' + , '青海省', '6326', '果洛藏族自治州', '632626', '玛多县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3709 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6327', '63', '00,63', '玉树藏族自治州', '63' + , '青海省', '6327', '玉树藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3710 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632701', '6327', '00,63,6327', '玉树市', '63' + , '青海省', '6327', '玉树藏族自治州', '632701', '玉树市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3711 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632722', '6327', '00,63,6327', '杂多县', '63' + , '青海省', '6327', '玉树藏族自治州', '632722', '杂多县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3712 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632723', '6327', '00,63,6327', '称多县', '63' + , '青海省', '6327', '玉树藏族自治州', '632723', '称多县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3713 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632724', '6327', '00,63,6327', '治多县', '63' + , '青海省', '6327', '玉树藏族自治州', '632724', '治多县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3714 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632725', '6327', '00,63,6327', '囊谦县', '63' + , '青海省', '6327', '玉树藏族自治州', '632725', '囊谦县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3715 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632726', '6327', '00,63,6327', '曲麻莱县', '63' + , '青海省', '6327', '玉树藏族自治州', '632726', '曲麻莱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3716 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6328', '63', '00,63', '海西蒙古族藏族自治州', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3717 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632801', '6328', '00,63,6328', '格尔木市', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', '632801', '格尔木市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3718 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632802', '6328', '00,63,6328', '德令哈市', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', '632802', '德令哈市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3719 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632803', '6328', '00,63,6328', '茫崖市', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', '632803', '茫崖市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3720 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('632821', '6328', '00,63,6328', '乌兰县', '63' + , '青海省', '6328', '海西蒙古族藏族自治州', '632821', '乌兰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3721 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540236', '5402', '00,54,5402', '萨嘎县', '54' + , '西藏自治区', '5402', '日喀则市', '540236', '萨嘎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3722 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540237', '5402', '00,54,5402', '岗巴县', '54' + , '西藏自治区', '5402', '日喀则市', '540237', '岗巴县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3723 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5403', '54', '00,54', '昌都市', '54' + , '西藏自治区', '5403', '昌都市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3724 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540302', '5403', '00,54,5403', '卡若区', '54' + , '西藏自治区', '5403', '昌都市', '540302', '卡若区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3725 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540321', '5403', '00,54,5403', '江达县', '54' + , '西藏自治区', '5403', '昌都市', '540321', '江达县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3726 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540322', '5403', '00,54,5403', '贡觉县', '54' + , '西藏自治区', '5403', '昌都市', '540322', '贡觉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3727 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540323', '5403', '00,54,5403', '类乌齐县', '54' + , '西藏自治区', '5403', '昌都市', '540323', '类乌齐县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3728 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540324', '5403', '00,54,5403', '丁青县', '54' + , '西藏自治区', '5403', '昌都市', '540324', '丁青县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3729 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540325', '5403', '00,54,5403', '察雅县', '54' + , '西藏自治区', '5403', '昌都市', '540325', '察雅县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3730 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540326', '5403', '00,54,5403', '八宿县', '54' + , '西藏自治区', '5403', '昌都市', '540326', '八宿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3731 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540327', '5403', '00,54,5403', '左贡县', '54' + , '西藏自治区', '5403', '昌都市', '540327', '左贡县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3732 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540328', '5403', '00,54,5403', '芒康县', '54' + , '西藏自治区', '5403', '昌都市', '540328', '芒康县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3733 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540329', '5403', '00,54,5403', '洛隆县', '54' + , '西藏自治区', '5403', '昌都市', '540329', '洛隆县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3734 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540330', '5403', '00,54,5403', '边坝县', '54' + , '西藏自治区', '5403', '昌都市', '540330', '边坝县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3735 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5404', '54', '00,54', '林芝市', '54' + , '西藏自治区', '5404', '林芝市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3736 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540402', '5404', '00,54,5404', '巴宜区', '54' + , '西藏自治区', '5404', '林芝市', '540402', '巴宜区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3737 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540421', '5404', '00,54,5404', '工布江达县', '54' + , '西藏自治区', '5404', '林芝市', '540421', '工布江达县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3738 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540422', '5404', '00,54,5404', '米林县', '54' + , '西藏自治区', '5404', '林芝市', '540422', '米林县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3739 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540423', '5404', '00,54,5404', '墨脱县', '54' + , '西藏自治区', '5404', '林芝市', '540423', '墨脱县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3740 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540424', '5404', '00,54,5404', '波密县', '54' + , '西藏自治区', '5404', '林芝市', '540424', '波密县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3741 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540425', '5404', '00,54,5404', '察隅县', '54' + , '西藏自治区', '5404', '林芝市', '540425', '察隅县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3742 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540426', '5404', '00,54,5404', '朗县', '54' + , '西藏自治区', '5404', '林芝市', '540426', '朗县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3743 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5405', '54', '00,54', '山南市', '54' + , '西藏自治区', '5405', '山南市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3744 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540502', '5405', '00,54,5405', '乃东区', '54' + , '西藏自治区', '5405', '山南市', '540502', '乃东区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3745 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540521', '5405', '00,54,5405', '扎囊县', '54' + , '西藏自治区', '5405', '山南市', '540521', '扎囊县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3746 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540522', '5405', '00,54,5405', '贡嘎县', '54' + , '西藏自治区', '5405', '山南市', '540522', '贡嘎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3747 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540523', '5405', '00,54,5405', '桑日县', '54' + , '西藏自治区', '5405', '山南市', '540523', '桑日县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3748 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540524', '5405', '00,54,5405', '琼结县', '54' + , '西藏自治区', '5405', '山南市', '540524', '琼结县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3749 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540525', '5405', '00,54,5405', '曲松县', '54' + , '西藏自治区', '5405', '山南市', '540525', '曲松县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3750 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540526', '5405', '00,54,5405', '措美县', '54' + , '西藏自治区', '5405', '山南市', '540526', '措美县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3751 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540527', '5405', '00,54,5405', '洛扎县', '54' + , '西藏自治区', '5405', '山南市', '540527', '洛扎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3752 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540528', '5405', '00,54,5405', '加查县', '54' + , '西藏自治区', '5405', '山南市', '540528', '加查县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3753 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540529', '5405', '00,54,5405', '隆子县', '54' + , '西藏自治区', '5405', '山南市', '540529', '隆子县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3754 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540530', '5405', '00,54,5405', '错那县', '54' + , '西藏自治区', '5405', '山南市', '540530', '错那县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3755 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540531', '5405', '00,54,5405', '浪卡子县', '54' + , '西藏自治区', '5405', '山南市', '540531', '浪卡子县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3756 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('5406', '54', '00,54', '那曲市', '54' + , '西藏自治区', '5406', '那曲市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3757 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540602', '5406', '00,54,5406', '色尼区', '54' + , '西藏自治区', '5406', '那曲市', '540602', '色尼区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3758 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('540621', '5406', '00,54,5406', '嘉黎县', '54' + , '西藏自治区', '5406', '那曲市', '540621', '嘉黎县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3759 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621102', '6211', '00,62,6211', '安定区', '62' + , '甘肃省', '6211', '定西市', '621102', '安定区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3760 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621121', '6211', '00,62,6211', '通渭县', '62' + , '甘肃省', '6211', '定西市', '621121', '通渭县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3761 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('621122', '6211', '00,62,6211', '陇西县', '62' + , '甘肃省', '6211', '定西市', '621122', '陇西县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3762 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620200', '6202', '00,62,6202', '嘉峪关市', '62' + , '甘肃省', '6202', '嘉峪关市', '620200', '嘉峪关市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3763 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6203', '62', '00,62', '金昌市', '62' + , '甘肃省', '6203', '金昌市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3764 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620302', '6203', '00,62,6203', '金川区', '62' + , '甘肃省', '6203', '金昌市', '620302', '金川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3765 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620321', '6203', '00,62,6203', '永昌县', '62' + , '甘肃省', '6203', '金昌市', '620321', '永昌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3766 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6204', '62', '00,62', '白银市', '62' + , '甘肃省', '6204', '白银市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3767 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620402', '6204', '00,62,6204', '白银区', '62' + , '甘肃省', '6204', '白银市', '620402', '白银区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3768 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620403', '6204', '00,62,6204', '平川区', '62' + , '甘肃省', '6204', '白银市', '620403', '平川区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3769 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620421', '6204', '00,62,6204', '靖远县', '62' + , '甘肃省', '6204', '白银市', '620421', '靖远县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3770 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620422', '6204', '00,62,6204', '会宁县', '62' + , '甘肃省', '6204', '白银市', '620422', '会宁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3771 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620423', '6204', '00,62,6204', '景泰县', '62' + , '甘肃省', '6204', '白银市', '620423', '景泰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3772 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6205', '62', '00,62', '天水市', '62' + , '甘肃省', '6205', '天水市', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3773 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620502', '6205', '00,62,6205', '秦州区', '62' + , '甘肃省', '6205', '天水市', '620502', '秦州区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3774 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620503', '6205', '00,62,6205', '麦积区', '62' + , '甘肃省', '6205', '天水市', '620503', '麦积区' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3775 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620521', '6205', '00,62,6205', '清水县', '62' + , '甘肃省', '6205', '天水市', '620521', '清水县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3776 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620522', '6205', '00,62,6205', '秦安县', '62' + , '甘肃省', '6205', '天水市', '620522', '秦安县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3777 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('620523', '6205', '00,62,6205', '甘谷县', '62' + , '甘肃省', '6205', '天水市', '620523', '甘谷县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3778 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('650522', '6505', '00,65,6505', '伊吾县', '65' + , '新疆维吾尔自治区', '6505', '哈密市', '650522', '伊吾县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3779 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6523', '65', '00,65', '昌吉回族自治州', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3780 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652301', '6523', '00,65,6523', '昌吉市', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652301', '昌吉市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3781 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652302', '6523', '00,65,6523', '阜康市', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652302', '阜康市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3782 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652323', '6523', '00,65,6523', '呼图壁县', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652323', '呼图壁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3783 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652324', '6523', '00,65,6523', '玛纳斯县', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652324', '玛纳斯县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3784 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652325', '6523', '00,65,6523', '奇台县', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652325', '奇台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3785 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652327', '6523', '00,65,6523', '吉木萨尔县', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652327', '吉木萨尔县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3786 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652328', '6523', '00,65,6523', '木垒哈萨克自治县', '65' + , '新疆维吾尔自治区', '6523', '昌吉回族自治州', '652328', '木垒哈萨克自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3787 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6527', '65', '00,65', '博尔塔拉蒙古自治州', '65' + , '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3788 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652701', '6527', '00,65,6527', '博乐市', '65' + , '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652701', '博乐市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3789 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652702', '6527', '00,65,6527', '阿拉山口市', '65' + , '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652702', '阿拉山口市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3790 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652722', '6527', '00,65,6527', '精河县', '65' + , '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652722', '精河县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3791 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652723', '6527', '00,65,6527', '温泉县', '65' + , '新疆维吾尔自治区', '6527', '博尔塔拉蒙古自治州', '652723', '温泉县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3792 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6528', '65', '00,65', '巴音郭楞蒙古自治州', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3793 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652801', '6528', '00,65,6528', '库尔勒市', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652801', '库尔勒市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3794 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652822', '6528', '00,65,6528', '轮台县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652822', '轮台县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3795 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652823', '6528', '00,65,6528', '尉犁县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652823', '尉犁县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3796 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652824', '6528', '00,65,6528', '若羌县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652824', '若羌县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3797 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652825', '6528', '00,65,6528', '且末县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652825', '且末县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3798 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652826', '6528', '00,65,6528', '焉耆回族自治县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652826', '焉耆回族自治县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3799 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652827', '6528', '00,65,6528', '和静县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652827', '和静县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3800 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652828', '6528', '00,65,6528', '和硕县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652828', '和硕县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3801 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652829', '6528', '00,65,6528', '博湖县', '65' + , '新疆维吾尔自治区', '6528', '巴音郭楞蒙古自治州', '652829', '博湖县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3802 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6529', '65', '00,65', '阿克苏地区', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3803 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652901', '6529', '00,65,6529', '阿克苏市', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652901', '阿克苏市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3804 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652902', '6529', '00,65,6529', '库车市', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652902', '库车市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3805 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652922', '6529', '00,65,6529', '温宿县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652922', '温宿县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3806 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652924', '6529', '00,65,6529', '沙雅县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652924', '沙雅县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3807 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652925', '6529', '00,65,6529', '新和县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652925', '新和县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3808 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652926', '6529', '00,65,6529', '拜城县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652926', '拜城县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3809 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652927', '6529', '00,65,6529', '乌什县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652927', '乌什县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3810 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652928', '6529', '00,65,6529', '阿瓦提县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652928', '阿瓦提县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3811 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('652929', '6529', '00,65,6529', '柯坪县', '65' + , '新疆维吾尔自治区', '6529', '阿克苏地区', '652929', '柯坪县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3812 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6530', '65', '00,65', '克孜勒苏柯尔克孜自治州', '65' + , '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3813 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653001', '6530', '00,65,6530', '阿图什市', '65' + , '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653001', '阿图什市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3814 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653022', '6530', '00,65,6530', '阿克陶县', '65' + , '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653022', '阿克陶县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3815 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653023', '6530', '00,65,6530', '阿合奇县', '65' + , '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653023', '阿合奇县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3816 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653024', '6530', '00,65,6530', '乌恰县', '65' + , '新疆维吾尔自治区', '6530', '克孜勒苏柯尔克孜自治州', '653024', '乌恰县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3817 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('6531', '65', '00,65', '喀什地区', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', NULL, NULL + , NULL, NULL, NULL, NULL, '2' + , '1', NULL); + +/*The 3818 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653101', '6531', '00,65,6531', '喀什市', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653101', '喀什市' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3819 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653121', '6531', '00,65,6531', '疏附县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653121', '疏附县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3820 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653122', '6531', '00,65,6531', '疏勒县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653122', '疏勒县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3821 SQL statement*/ +INSERT INTO "BLADE_REGION" +VALUES ('653123', '6531', '00,65,6531', '英吉沙县', '65' + , '新疆维吾尔自治区', '6531', '喀什地区', '653123', '英吉沙县' + , NULL, NULL, NULL, NULL, '3' + , '1', NULL); + +/*The 3822 SQL statement*/ +COMMIT; + +/*The 3823 SQL statement*/ +CREATE TABLE "BLADE_REPORT_FILE" ( + "ID" NUMBER(20) NOT NULL, + "NAME" VARCHAR(100) NOT NULL, + "CONTENT" BLOB, + "CREATE_TIME" DATE NOT NULL, + "UPDATE_TIME" DATE NOT NULL, + "IS_DELETED" NUMBER(11) DEFAULT 0 +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 3824 SQL statement*/ +COMMENT ON COLUMN "BLADE_REPORT_FILE"."ID" IS '主键'; + +/*The 3825 SQL statement*/ +COMMENT ON COLUMN "BLADE_REPORT_FILE"."NAME" IS '文件名'; + +/*The 3826 SQL statement*/ +COMMENT ON COLUMN "BLADE_REPORT_FILE"."CONTENT" IS '文件内容'; + +/*The 3827 SQL statement*/ +COMMENT ON COLUMN "BLADE_REPORT_FILE"."CREATE_TIME" IS '创建时间'; + +/*The 3828 SQL statement*/ +COMMENT ON COLUMN "BLADE_REPORT_FILE"."UPDATE_TIME" IS '更新时间'; + +/*The 3829 SQL statement*/ +COMMENT ON COLUMN "BLADE_REPORT_FILE"."IS_DELETED" IS '是否已删除'; + +/*The 3830 SQL statement*/ +COMMENT ON TABLE "BLADE_REPORT_FILE" IS '报表文件表'; + +/*The 3831 SQL statement*/ +CREATE TABLE "BLADE_ROLE" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "PARENT_ID" NUMBER(20), + "ROLE_NAME" VARCHAR(255), + "SORT" NUMBER(11), + "ROLE_ALIAS" VARCHAR(255), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 3832 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."ID" IS '主键'; + +/*The 3833 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."TENANT_ID" IS '租户ID'; + +/*The 3834 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."PARENT_ID" IS '父主键'; + +/*The 3835 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."ROLE_NAME" IS '角色名'; + +/*The 3836 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."SORT" IS '排序'; + +/*The 3837 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."ROLE_ALIAS" IS '角色别名'; + +/*The 3838 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE"."IS_DELETED" IS '是否已删除'; + +/*The 3839 SQL statement*/ +COMMENT ON TABLE "BLADE_ROLE" IS '角色表'; + +/*The 3840 SQL statement*/ +INSERT INTO "BLADE_ROLE" +VALUES ('1123598816738675201', '000000', '0', '超级管理员', '1' + , 'administrator', '0'); + +/*The 3841 SQL statement*/ +INSERT INTO "BLADE_ROLE" +VALUES ('1123598816738675202', '000000', '0', '用户', '2' + , 'user', '0'); + +/*The 3842 SQL statement*/ +INSERT INTO "BLADE_ROLE" +VALUES ('1123598816738675203', '000000', '1123598816738675202', '人事', '1' + , 'hr', '0'); + +/*The 3843 SQL statement*/ +INSERT INTO "BLADE_ROLE" +VALUES ('1123598816738675204', '000000', '1123598816738675202', '经理', '2' + , 'manager', '0'); + +/*The 3844 SQL statement*/ +INSERT INTO "BLADE_ROLE" +VALUES ('1123598816738675205', '000000', '1123598816738675202', '老板', '3' + , 'boss', '0'); + +/*The 3845 SQL statement*/ +COMMIT; + +/*The 3846 SQL statement*/ +CREATE TABLE "BLADE_ROLE_MENU" ( + "ID" NUMBER(20) NOT NULL, + "MENU_ID" NUMBER(20), + "ROLE_ID" NUMBER(20) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 3847 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_MENU"."ID" IS '主键'; + +/*The 3848 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_MENU"."MENU_ID" IS '菜单ID'; + +/*The 3849 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_MENU"."ROLE_ID" IS '角色ID'; + +/*The 3850 SQL statement*/ +COMMENT ON TABLE "BLADE_ROLE_MENU" IS '角色菜单关联表'; + +/*The 3851 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675401', '1123598815738675288', '1123598816738675203'); + +/*The 3852 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675402', '1123598815738675289', '1123598816738675203'); + +/*The 3853 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675403', '1123598815738675290', '1123598816738675203'); + +/*The 3854 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675404', '1123598815738675291', '1123598816738675203'); + +/*The 3855 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675405', '1123598815738675292', '1123598816738675203'); + +/*The 3856 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675406', '1123598815738675293', '1123598816738675203'); + +/*The 3857 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675407', '1123598815738675294', '1123598816738675203'); + +/*The 3858 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675408', '1123598815738675295', '1123598816738675203'); + +/*The 3859 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675409', '1123598815738675296', '1123598816738675203'); + +/*The 3860 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675410', '1123598815738675297', '1123598816738675203'); + +/*The 3861 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675411', '1123598815738675201', '1123598816738675204'); + +/*The 3862 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675412', '1123598815738675202', '1123598816738675204'); + +/*The 3863 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675413', '1123598815738675219', '1123598816738675204'); + +/*The 3864 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675414', '1123598815738675220', '1123598816738675204'); + +/*The 3865 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675415', '1123598815738675221', '1123598816738675204'); + +/*The 3866 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675416', '1123598815738675222', '1123598816738675204'); + +/*The 3867 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675417', '1123598815738675280', '1123598816738675204'); + +/*The 3868 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675418', '1123598815738675281', '1123598816738675204'); + +/*The 3869 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675419', '1123598815738675282', '1123598816738675204'); + +/*The 3870 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675420', '1123598815738675283', '1123598816738675204'); + +/*The 3871 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675421', '1123598815738675284', '1123598816738675204'); + +/*The 3872 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675422', '1123598815738675285', '1123598816738675204'); + +/*The 3873 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675423', '1123598815738675286', '1123598816738675204'); + +/*The 3874 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675424', '1123598815738675287', '1123598816738675204'); + +/*The 3875 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675425', '1123598815738675288', '1123598816738675204'); + +/*The 3876 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675426', '1123598815738675289', '1123598816738675204'); + +/*The 3877 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675427', '1123598815738675290', '1123598816738675204'); + +/*The 3878 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675428', '1123598815738675291', '1123598816738675204'); + +/*The 3879 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675429', '1123598815738675292', '1123598816738675204'); + +/*The 3880 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675430', '1123598815738675293', '1123598816738675204'); + +/*The 3881 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675431', '1123598815738675294', '1123598816738675204'); + +/*The 3882 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675432', '1123598815738675295', '1123598816738675204'); + +/*The 3883 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675433', '1123598815738675296', '1123598816738675204'); + +/*The 3884 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675434', '1123598815738675297', '1123598816738675204'); + +/*The 3885 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675435', '1123598815738675201', '1123598816738675205'); + +/*The 3886 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675436', '1123598815738675202', '1123598816738675205'); + +/*The 3887 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675437', '1123598815738675219', '1123598816738675205'); + +/*The 3888 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675438', '1123598815738675220', '1123598816738675205'); + +/*The 3889 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675439', '1123598815738675221', '1123598816738675205'); + +/*The 3890 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675440', '1123598815738675222', '1123598816738675205'); + +/*The 3891 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675441', '1123598815738675280', '1123598816738675205'); + +/*The 3892 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675442', '1123598815738675281', '1123598816738675205'); + +/*The 3893 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675443', '1123598815738675282', '1123598816738675205'); + +/*The 3894 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675444', '1123598815738675283', '1123598816738675205'); + +/*The 3895 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675445', '1123598815738675284', '1123598816738675205'); + +/*The 3896 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675446', '1123598815738675285', '1123598816738675205'); + +/*The 3897 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675447', '1123598815738675286', '1123598816738675205'); + +/*The 3898 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675448', '1123598815738675287', '1123598816738675205'); + +/*The 3899 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675449', '1123598815738675288', '1123598816738675205'); + +/*The 3900 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675450', '1123598815738675289', '1123598816738675205'); + +/*The 3901 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675451', '1123598815738675290', '1123598816738675205'); + +/*The 3902 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675452', '1123598815738675291', '1123598816738675205'); + +/*The 3903 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675453', '1123598815738675292', '1123598816738675205'); + +/*The 3904 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675454', '1123598815738675293', '1123598816738675205'); + +/*The 3905 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675455', '1123598815738675294', '1123598816738675205'); + +/*The 3906 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675456', '1123598815738675295', '1123598816738675205'); + +/*The 3907 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675457', '1123598815738675296', '1123598816738675205'); + +/*The 3908 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675458', '1123598815738675297', '1123598816738675205'); + +/*The 3909 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149888293856833539', '1123598815738675317', '1123598816738675201'); + +/*The 3910 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666312130561', '1123598815738675201', '1123598816738675201'); + +/*The 3911 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666370850818', '1123598815738675202', '1123598816738675201'); + +/*The 3912 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666437959682', '1123598815738675219', '1123598816738675201'); + +/*The 3913 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666505068546', '1123598815738675220', '1123598816738675201'); + +/*The 3914 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666555400193', '1123598815738675221', '1123598816738675201'); + +/*The 3915 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666614120449', '1123598815738675222', '1123598816738675201'); + +/*The 3916 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666651869185', '1123598815738675280', '1123598816738675201'); + +/*The 3917 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666723172353', '1123598815738675281', '1123598816738675201'); + +/*The 3918 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666765115393', '1123598815738675282', '1123598816738675201'); + +/*The 3919 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666815447041', '1123598815738675283', '1123598816738675201'); + +/*The 3920 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666844807170', '1123598815738675284', '1123598816738675201'); + +/*The 3921 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666886750210', '1123598815738675285', '1123598816738675201'); + +/*The 3922 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666924498946', '1123598815738675286', '1123598816738675201'); + +/*The 3923 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891666966441986', '1123598815738675287', '1123598816738675201'); + +/*The 3924 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667012579330', '1123598815738675288', '1123598816738675201'); + +/*The 3925 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667054522370', '1123598815738675289', '1123598816738675201'); + +/*The 3926 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667109048322', '1123598815738675290', '1123598816738675201'); + +/*The 3927 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667146797058', '1123598815738675291', '1123598816738675201'); + +/*The 3928 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667197128706', '1123598815738675292', '1123598816738675201'); + +/*The 3929 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667234877441', '1123598815738675293', '1123598816738675201'); + +/*The 3930 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667272626178', '1123598815738675294', '1123598816738675201'); + +/*The 3931 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667314569218', '1123598815738675295', '1123598816738675201'); + +/*The 3932 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667343929346', '1123598815738675296', '1123598816738675201'); + +/*The 3933 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667398455298', '1123598815738675297', '1123598816738675201'); + +/*The 3934 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667440398338', '1123598815738675210', '1123598816738675201'); + +/*The 3935 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667478147073', '1123598815738675211', '1123598816738675201'); + +/*The 3936 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667524284417', '1123598815738675212', '1123598816738675201'); + +/*The 3937 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667574616065', '1123598815738675213', '1123598816738675201'); + +/*The 3938 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667608170498', '1123598815738675214', '1123598816738675201'); + +/*The 3939 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667641724929', '1123598815738675249', '1123598816738675201'); + +/*The 3940 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667671085058', '1123598815738675215', '1123598816738675201'); + +/*The 3941 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667708833793', '1123598815738675250', '1123598816738675201'); + +/*The 3942 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667746582529', '1123598815738675216', '1123598816738675201'); + +/*The 3943 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667784331265', '1123598815738675251', '1123598816738675201'); + +/*The 3944 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667822080001', '1123598815738675217', '1123598816738675201'); + +/*The 3945 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667843051522', '1123598815738675218', '1123598816738675201'); + +/*The 3946 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667889188865', '1123598815738675252', '1123598816738675201'); + +/*The 3947 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667926937602', '1123598815738675253', '1123598816738675201'); + +/*The 3948 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667947909121', '1123598815738675254', '1123598816738675201'); + +/*The 3949 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891667989852161', '1123598815738675255', '1123598816738675201'); + +/*The 3950 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668015017986', '1123598815738675266', '1123598816738675201'); + +/*The 3951 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668061155330', '1123598815738675267', '1123598816738675201'); + +/*The 3952 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668086321154', '1123598815738675268', '1123598816738675201'); + +/*The 3953 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668136652802', '1123598815738675269', '1123598816738675201'); + +/*The 3954 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668199567362', '1123598815738675270', '1123598816738675201'); + +/*The 3955 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668262481922', '1123598815738675271', '1123598816738675201'); + +/*The 3956 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668321202177', '1123598815738675272', '1123598816738675201'); + +/*The 3957 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668367339521', '1123598815738675273', '1123598816738675201'); + +/*The 3958 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668405088257', '1123598815738675274', '1123598816738675201'); + +/*The 3959 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668438642689', '1123598815738675275', '1123598816738675201'); + +/*The 3960 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668472197121', '1123598815738675276', '1123598816738675201'); + +/*The 3961 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668509945858', '1123598815738675277', '1123598816738675201'); + +/*The 3962 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668568666113', '1123598815738675278', '1123598816738675201'); + +/*The 3963 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668631580673', '1123598815738675279', '1123598816738675201'); + +/*The 3964 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668669329410', '1123598815738675298', '1123598816738675201'); + +/*The 3965 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668719661057', '1123598815738675299', '1123598816738675201'); + +/*The 3966 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668757409793', '1123598815738675301', '1123598816738675201'); + +/*The 3967 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668803547138', '1123598815738675302', '1123598816738675201'); + +/*The 3968 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668849684481', '1123598815738675303', '1123598816738675201'); + +/*The 3969 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668883238913', '1123598815738675304', '1123598816738675201'); + +/*The 3970 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668920987650', '1123598815738675305', '1123598816738675201'); + +/*The 3971 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668950347777', '1123598815738675307', '1123598816738675201'); + +/*The 3972 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891668983902209', '1123598815738675308', '1123598816738675201'); + +/*The 3973 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669013262338', '1123598815738675241', '1123598816738675201'); + +/*The 3974 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669034233857', '1123598815738675242', '1123598816738675201'); + +/*The 3975 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669055205378', '1123598815738675243', '1123598816738675201'); + +/*The 3976 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669105537025', '1123598815738675244', '1123598816738675201'); + +/*The 3977 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669164257282', '1123598815738675309', '1123598816738675201'); + +/*The 3978 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669210394626', '1123598815738675310', '1123598816738675201'); + +/*The 3979 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669243949058', '1123598815738675311', '1123598816738675201'); + +/*The 3980 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669285892097', '1123598815738675312', '1123598816738675201'); + +/*The 3981 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669336223745', '1123598815738675203', '1123598816738675201'); + +/*The 3982 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669365583873', '1123598815738675204', '1123598816738675201'); + +/*The 3983 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669394944001', '1123598815738675223', '1123598816738675201'); + +/*The 3984 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669441081346', '1123598815738675224', '1123598816738675201'); + +/*The 3985 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669487218689', '1123598815738675225', '1123598816738675201'); + +/*The 3986 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669533356033', '1123598815738675226', '1123598816738675201'); + +/*The 3987 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669571104770', '1123598815738675227', '1123598816738675201'); + +/*The 3988 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669642407937', '1123598815738675228', '1123598816738675201'); + +/*The 3989 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669671768065', '1123598815738675205', '1123598816738675201'); + +/*The 3990 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875225001', '1164733389668962251', '1123598816738675201'); + +/*The 3991 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875225002', '1164733389668962252', '1123598816738675201'); + +/*The 3992 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875225003', '1164733389668962253', '1123598816738675201'); + +/*The 3993 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875225004', '1164733389668962254', '1123598816738675201'); + +/*The 3994 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875225005', '1164733389668962255', '1123598816738675201'); + +/*The 3995 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875225006', '1164733389668962256', '1123598816738675201'); + +/*The 3996 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226001', '1164733399668962201', '1123598816738675201'); + +/*The 3997 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226002', '1164733399668962202', '1123598816738675201'); + +/*The 3998 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226003', '1164733399668962203', '1123598816738675201'); + +/*The 3999 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226004', '1164733399668962204', '1123598816738675201'); + +/*The 4000 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226005', '1164733399668962205', '1123598816738675201'); + +/*The 4001 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226006', '1164733399668962206', '1123598816738675201'); + +/*The 4002 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875226007', '1164733399668962207', '1123598816738675201'); + +/*The 4003 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875227001', '1164733399669962201', '1123598816738675201'); + +/*The 4004 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875227002', '1164733399669962202', '1123598816738675201'); + +/*The 4005 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875227003', '1164733399669962203', '1123598816738675201'); + +/*The 4006 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875227004', '1164733399669962204', '1123598816738675201'); + +/*The 4007 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875228001', '1164733399669962301', '1123598816738675201'); + +/*The 4008 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875228002', '1164733399669962302', '1123598816738675201'); + +/*The 4009 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875228003', '1164733399669962303', '1123598816738675201'); + +/*The 4010 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893875228004', '1164733399669962304', '1123598816738675201'); + +/*The 4011 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669696933889', '1123598815738675229', '1123598816738675201'); + +/*The 4012 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669743071234', '1123598815738675230', '1123598816738675201'); + +/*The 4013 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669797597186', '1123598815738675231', '1123598816738675201'); + +/*The 4014 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669847928834', '1123598815738675232', '1123598816738675201'); + +/*The 4015 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669919232001', '1123598815738675206', '1123598816738675201'); + +/*The 4016 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891669973757954', '1123598815738675233', '1123598816738675201'); + +/*The 4017 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670019895298', '1123598815738675234', '1123598816738675201'); + +/*The 4018 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670045061121', '1123598815738675235', '1123598816738675201'); + +/*The 4019 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670095392770', '1123598815738675236', '1123598816738675201'); + +/*The 4020 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670137335809', '1123598815738675207', '1123598816738675201'); + +/*The 4021 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670196056065', '1123598815738675237', '1123598816738675201'); + +/*The 4022 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670229610498', '1123598815738675238', '1123598816738675201'); + +/*The 4023 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670267359234', '1123598815738675239', '1123598816738675201'); + +/*The 4024 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670292525057', '1123598815738675240', '1123598816738675201'); + +/*The 4025 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670355439617', '1123598815738675306', '1123598816738675201'); + +/*The 4026 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670380605442', '1123598815738675208', '1123598816738675201'); + +/*The 4027 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670443520001', '1123598815738675313', '1123598816738675201'); + +/*The 4028 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670481268737', '1123598815738675314', '1123598816738675201'); + +/*The 4029 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670506434561', '1123598815738675315', '1123598816738675201'); + +/*The 4030 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670569349121', '1123598815738675316', '1123598816738675201'); + +/*The 4031 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670594514945', '1123598815738675209', '1123598816738675201'); + +/*The 4032 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670657429506', '1123598815738675245', '1123598816738675201'); + +/*The 4033 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670682595330', '1123598815738675246', '1123598816738675201'); + +/*The 4034 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670711955457', '1123598815738675247', '1123598816738675201'); + +/*The 4035 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670745509889', '1123598815738675248', '1123598816738675201'); + +/*The 4036 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670804230146', '1123598815738675256', '1123598816738675201'); + +/*The 4037 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670841978881', '1123598815738675257', '1123598816738675201'); + +/*The 4038 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670879727617', '1123598815738675258', '1123598816738675201'); + +/*The 4039 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670913282050', '1123598815738675259', '1123598816738675201'); + +/*The 4040 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670959419394', '1123598815738675260', '1123598816738675201'); + +/*The 4041 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891670988779521', '1123598815738675261', '1123598816738675201'); + +/*The 4042 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891671039111170', '1123598815738675262', '1123598816738675201'); + +/*The 4043 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891671068471297', '1123598815738675263', '1123598816738675201'); + +/*The 4044 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891671110414338', '1123598815738675264', '1123598816738675201'); + +/*The 4045 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1149891671152357378', '1123598815738675265', '1123598816738675201'); + +/*The 4046 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272593873322991', '1161272593873321991', '1123598816738675201'); + +/*The 4047 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272593873322992', '1161272593873321992', '1123598816738675201'); + +/*The 4048 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272593873322993', '1161272593873321993', '1123598816738675201'); + +/*The 4049 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272593873322994', '1161272593873321994', '1123598816738675201'); + +/*The 4050 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272593873322995', '1161272593873321995', '1123598816738675201'); + +/*The 4051 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272693873322991', '1164733369658963251', '1123598816738675201'); + +/*The 4052 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272693873322992', '1164733369658963252', '1123598816738675201'); + +/*The 4053 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272693873322993', '1164733369658963253', '1123598816738675201'); + +/*The 4054 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272693873322994', '1164733369658963254', '1123598816738675201'); + +/*The 4055 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272693873322995', '1164733369658963255', '1123598816738675201'); + +/*The 4056 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272793873322991', '1164733379658963251', '1123598816738675201'); + +/*The 4057 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272793873322992', '1164733379658963252', '1123598816738675201'); + +/*The 4058 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272793873322993', '1164733379658963253', '1123598816738675201'); + +/*The 4059 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272793873322994', '1164733379658963254', '1123598816738675201'); + +/*The 4060 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272793873322995', '1164733379658963255', '1123598816738675201'); + +/*The 4061 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873322991', '1164733389658963251', '1123598816738675201'); + +/*The 4062 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873222991', '1164733389658962251', '1123598816738675201'); + +/*The 4063 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873222992', '1164733389658962252', '1123598816738675201'); + +/*The 4064 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873222993', '1164733389658962253', '1123598816738675201'); + +/*The 4065 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873222994', '1164733389658962254', '1123598816738675201'); + +/*The 4066 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873222995', '1164733389658962255', '1123598816738675201'); + +/*The 4067 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1161272893873222996', '1164733389658962256', '1123598816738675201'); + +/*The 4068 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675363', '1123598815738675201', '1123598816738675202'); + +/*The 4069 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675364', '1123598815738675202', '1123598816738675202'); + +/*The 4070 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675365', '1123598815738675219', '1123598816738675202'); + +/*The 4071 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675366', '1123598815738675220', '1123598816738675202'); + +/*The 4072 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675367', '1123598815738675221', '1123598816738675202'); + +/*The 4073 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675368', '1123598815738675222', '1123598816738675202'); + +/*The 4074 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675369', '1123598815738675280', '1123598816738675202'); + +/*The 4075 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675370', '1123598815738675281', '1123598816738675202'); + +/*The 4076 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675371', '1123598815738675282', '1123598816738675202'); + +/*The 4077 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675372', '1123598815738675283', '1123598816738675202'); + +/*The 4078 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675373', '1123598815738675284', '1123598816738675202'); + +/*The 4079 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675374', '1123598815738675285', '1123598816738675202'); + +/*The 4080 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675375', '1123598815738675286', '1123598816738675202'); + +/*The 4081 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675376', '1123598815738675287', '1123598816738675202'); + +/*The 4082 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675377', '1123598815738675288', '1123598816738675202'); + +/*The 4083 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675378', '1123598815738675289', '1123598816738675202'); + +/*The 4084 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675379', '1123598815738675290', '1123598816738675202'); + +/*The 4085 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675380', '1123598815738675291', '1123598816738675202'); + +/*The 4086 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675381', '1123598815738675292', '1123598816738675202'); + +/*The 4087 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675382', '1123598815738675293', '1123598816738675202'); + +/*The 4088 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675383', '1123598815738675294', '1123598816738675202'); + +/*The 4089 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675384', '1123598815738675295', '1123598816738675202'); + +/*The 4090 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675385', '1123598815738675296', '1123598816738675202'); + +/*The 4091 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675386', '1123598815738675297', '1123598816738675202'); + +/*The 4092 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675387', '1123598815738675201', '1123598816738675203'); + +/*The 4093 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675388', '1123598815738675202', '1123598816738675203'); + +/*The 4094 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675389', '1123598815738675219', '1123598816738675203'); + +/*The 4095 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675390', '1123598815738675220', '1123598816738675203'); + +/*The 4096 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675391', '1123598815738675221', '1123598816738675203'); + +/*The 4097 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675392', '1123598815738675222', '1123598816738675203'); + +/*The 4098 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675393', '1123598815738675280', '1123598816738675203'); + +/*The 4099 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675394', '1123598815738675281', '1123598816738675203'); + +/*The 4100 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675395', '1123598815738675282', '1123598816738675203'); + +/*The 4101 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675396', '1123598815738675283', '1123598816738675203'); + +/*The 4102 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675397', '1123598815738675284', '1123598816738675203'); + +/*The 4103 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675398', '1123598815738675285', '1123598816738675203'); + +/*The 4104 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675399', '1123598815738675286', '1123598816738675203'); + +/*The 4105 SQL statement*/ +INSERT INTO "BLADE_ROLE_MENU" +VALUES ('1123598817738675400', '1123598815738675287', '1123598816738675203'); + +/*The 4106 SQL statement*/ +COMMIT; + +/*The 4107 SQL statement*/ +CREATE TABLE "BLADE_ROLE_SCOPE" ( + "ID" NUMBER(20) NOT NULL, + "SCOPE_CATEGORY" NUMBER(11), + "SCOPE_ID" NUMBER(20), + "ROLE_ID" NUMBER(20) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4108 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ID" IS '主键'; + +/*The 4109 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_CATEGORY" IS '权限类型(1:数据权限、2:接口权限)'; + +/*The 4110 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."SCOPE_ID" IS '权限ID'; + +/*The 4111 SQL statement*/ +COMMENT ON COLUMN "BLADE_ROLE_SCOPE"."ROLE_ID" IS '角色ID'; + +/*The 4112 SQL statement*/ +COMMENT ON TABLE "BLADE_ROLE_SCOPE" IS '角色数据权限关联表'; + +/*The 4113 SQL statement*/ +CREATE TABLE "BLADE_SCOPE_API" ( + "ID" NUMBER(20) NOT NULL, + "MENU_ID" NUMBER(20), + "RESOURCE_CODE" VARCHAR(255), + "SCOPE_NAME" VARCHAR(255), + "SCOPE_PATH" VARCHAR(255), + "SCOPE_TYPE" NUMBER(11), + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4114 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."ID" IS '主键'; + +/*The 4115 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."MENU_ID" IS '菜单主键'; + +/*The 4116 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."RESOURCE_CODE" IS '资源编号'; + +/*The 4117 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_NAME" IS '接口权限名'; + +/*The 4118 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_PATH" IS '接口权限地址'; + +/*The 4119 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."SCOPE_TYPE" IS '接口权限类型'; + +/*The 4120 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."REMARK" IS '接口权限备注'; + +/*The 4121 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_USER" IS '创建人'; + +/*The 4122 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_DEPT" IS '创建部门'; + +/*The 4123 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."CREATE_TIME" IS '创建时间'; + +/*The 4124 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_USER" IS '修改人'; + +/*The 4125 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."UPDATE_TIME" IS '修改时间'; + +/*The 4126 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."STATUS" IS '状态'; + +/*The 4127 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_API"."IS_DELETED" IS '是否已删除'; + +/*The 4128 SQL statement*/ +COMMENT ON TABLE "BLADE_SCOPE_API" IS '接口权限表'; + +/*The 4129 SQL statement*/ +CREATE TABLE "BLADE_SCOPE_DATA" ( + "ID" NUMBER(20) NOT NULL, + "MENU_ID" NUMBER(20), + "RESOURCE_CODE" VARCHAR(255), + "SCOPE_NAME" VARCHAR(255), + "SCOPE_FIELD" VARCHAR(255), + "SCOPE_CLASS" VARCHAR(500), + "SCOPE_COLUMN" VARCHAR(255), + "SCOPE_TYPE" NUMBER(11), + "SCOPE_VALUE" CLOB, + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4130 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."ID" IS '主键'; + +/*The 4131 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."MENU_ID" IS '菜单主键'; + +/*The 4132 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."RESOURCE_CODE" IS '资源编号'; + +/*The 4133 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_NAME" IS '数据权限名称'; + +/*The 4134 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_FIELD" IS '数据权限字段'; + +/*The 4135 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_CLASS" IS '数据权限类名'; + +/*The 4136 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_COLUMN" IS '数据权限字段'; + +/*The 4137 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_TYPE" IS '数据权限类型'; + +/*The 4138 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."SCOPE_VALUE" IS '数据权限值域'; + +/*The 4139 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."REMARK" IS '数据权限备注'; + +/*The 4140 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_USER" IS '创建人'; + +/*The 4141 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_DEPT" IS '创建部门'; + +/*The 4142 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."CREATE_TIME" IS '创建时间'; + +/*The 4143 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_USER" IS '修改人'; + +/*The 4144 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."UPDATE_TIME" IS '修改时间'; + +/*The 4145 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."STATUS" IS '状态'; + +/*The 4146 SQL statement*/ +COMMENT ON COLUMN "BLADE_SCOPE_DATA"."IS_DELETED" IS '是否已删除'; + +/*The 4147 SQL statement*/ +COMMENT ON TABLE "BLADE_SCOPE_DATA" IS '数据权限表'; + +/*The 4148 SQL statement*/ +CREATE TABLE "BLADE_SMS" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "CATEGORY" NUMBER(11), + "SMS_CODE" VARCHAR(12), + "TEMPLATE_ID" VARCHAR(64), + "ACCESS_KEY" VARCHAR(255), + "SECRET_KEY" VARCHAR(255), + "REGION_ID" VARCHAR(255), + "SIGN_NAME" VARCHAR(64), + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4149 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."ID" IS '主键'; + +/*The 4150 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."TENANT_ID" IS '租户ID'; + +/*The 4151 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."CATEGORY" IS '分类'; + +/*The 4152 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."SMS_CODE" IS '资源编号'; + +/*The 4153 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."TEMPLATE_ID" IS '模板ID'; + +/*The 4154 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."ACCESS_KEY" IS 'accessKey'; + +/*The 4155 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."SECRET_KEY" IS 'secretKey'; + +/*The 4156 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."REGION_ID" IS 'regionId'; + +/*The 4157 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."SIGN_NAME" IS '短信签名'; + +/*The 4158 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."REMARK" IS '备注'; + +/*The 4159 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."CREATE_USER" IS '创建人'; + +/*The 4160 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."CREATE_DEPT" IS '创建部门'; + +/*The 4161 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."CREATE_TIME" IS '创建时间'; + +/*The 4162 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."UPDATE_USER" IS '修改人'; + +/*The 4163 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."UPDATE_TIME" IS '修改时间'; + +/*The 4164 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."STATUS" IS '状态'; + +/*The 4165 SQL statement*/ +COMMENT ON COLUMN "BLADE_SMS"."IS_DELETED" IS '是否已删除'; + +/*The 4166 SQL statement*/ +COMMENT ON TABLE "BLADE_SMS" IS '短信配置表'; + +/*The 4167 SQL statement*/ +CREATE TABLE "BLADE_TENANT" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "TENANT_NAME" VARCHAR(50) NOT NULL, + "DOMAIN_URL" VARCHAR(255), + "BACKGROUND_URL" VARCHAR(1000), + "LINKMAN" VARCHAR(20), + "CONTACT_NUMBER" VARCHAR(20), + "ADDRESS" VARCHAR(255), + "ACCOUNT_NUMBER" NUMBER DEFAULT -1, + "EXPIRE_TIME" DATE, + "PACKAGE_ID" NUMBER(20), + "DATASOURCE_ID" NUMBER(20), + "LICENSE_KEY" VARCHAR(1000), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4168 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."ID" IS '主键'; + +/*The 4169 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."TENANT_ID" IS '租户ID'; + +/*The 4170 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."TENANT_NAME" IS '租户名称'; + +/*The 4171 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."DOMAIN_URL" IS '域名地址'; + +/*The 4172 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."BACKGROUND_URL" IS '系统背景'; + +/*The 4173 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."LINKMAN" IS '联系人'; + +/*The 4174 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."CONTACT_NUMBER" IS '联系电话'; + +/*The 4175 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."ADDRESS" IS '联系地址'; + +/*The 4176 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."ACCOUNT_NUMBER" IS '账号额度'; + +/*The 4177 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."EXPIRE_TIME" IS '过期时间'; + +/*The 4178 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."PACKAGE_ID" IS '产品包ID'; + +/*The 4179 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."DATASOURCE_ID" IS '数据源ID'; + +/*The 4180 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."LICENSE_KEY" IS '授权码'; + +/*The 4181 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."CREATE_USER" IS '创建人'; + +/*The 4182 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."CREATE_DEPT" IS '创建部门'; + +/*The 4183 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."CREATE_TIME" IS '创建时间'; + +/*The 4184 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_USER" IS '修改人'; + +/*The 4185 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."UPDATE_TIME" IS '修改时间'; + +/*The 4186 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."STATUS" IS '状态'; + +/*The 4187 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT"."IS_DELETED" IS '是否已删除'; + +/*The 4188 SQL statement*/ +COMMENT ON TABLE "BLADE_TENANT" IS '租户表'; + +/*The 4189 SQL statement*/ +INSERT INTO "BLADE_TENANT" +VALUES ('1123598820738675201', '000000', '管理组', NULL, NULL + , 'admin', '666666', '管理组', '-1', NULL + , NULL, NULL, NULL, '1123598821738675201', '1123598813738675201' + , TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201', TO_DATE('2019-01-01 00:00:39', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 4190 SQL statement*/ +COMMIT; + +/*The 4191 SQL statement*/ +CREATE TABLE "BLADE_TENANT_PACKAGE" ( + "ID" NUMBER(20) NOT NULL, + "PACKAGE_NAME" VARCHAR(50), + "MENU_ID" VARCHAR(2000), + "REMARK" VARCHAR(255), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 4192 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."ID" IS '主键'; + +/*The 4193 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."PACKAGE_NAME" IS '产品包名'; + +/*The 4194 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."MENU_ID" IS '菜单ID'; + +/*The 4195 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."REMARK" IS '备注'; + +/*The 4196 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_USER" IS '创建人'; + +/*The 4197 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_DEPT" IS '创建部门'; + +/*The 4198 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."CREATE_TIME" IS '创建时间'; + +/*The 4199 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_USER" IS '修改人'; + +/*The 4200 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."UPDATE_TIME" IS '修改时间'; + +/*The 4201 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."STATUS" IS '状态'; + +/*The 4202 SQL statement*/ +COMMENT ON COLUMN "BLADE_TENANT_PACKAGE"."IS_DELETED" IS '是否已删除'; + +/*The 4203 SQL statement*/ +COMMENT ON TABLE "BLADE_TENANT_PACKAGE" IS '租户产品表'; + +/*The 4204 SQL statement*/ +CREATE TABLE "BLADE_TOP_MENU" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "CODE" VARCHAR(255), + "NAME" VARCHAR(255), + "SOURCE" VARCHAR(255), + "SORT" NUMBER(11), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4205 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."ID" IS '主键'; + +/*The 4206 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."TENANT_ID" IS '租户ID'; + +/*The 4207 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."CODE" IS '顶部菜单编号'; + +/*The 4208 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."NAME" IS '顶部菜单名'; + +/*The 4209 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."SOURCE" IS '顶部菜单资源'; + +/*The 4210 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."SORT" IS '顶部菜单排序'; + +/*The 4211 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_USER" IS '创建人'; + +/*The 4212 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_DEPT" IS '创建部门'; + +/*The 4213 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."CREATE_TIME" IS '创建时间'; + +/*The 4214 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_USER" IS '修改人'; + +/*The 4215 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."UPDATE_TIME" IS '修改时间'; + +/*The 4216 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."STATUS" IS '状态'; + +/*The 4217 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU"."IS_DELETED" IS '是否已删除'; + +/*The 4218 SQL statement*/ +COMMENT ON TABLE "BLADE_TOP_MENU" IS '顶部菜单表'; + +/*The 4219 SQL statement*/ +CREATE TABLE "BLADE_TOP_MENU_SETTING" ( + "ID" NUMBER(20) NOT NULL, + "TOP_MENU_ID" NUMBER(20), + "MENU_ID" NUMBER(20) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4220 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."ID" IS '主键'; + +/*The 4221 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."TOP_MENU_ID" IS '顶部菜单主键'; + +/*The 4222 SQL statement*/ +COMMENT ON COLUMN "BLADE_TOP_MENU_SETTING"."MENU_ID" IS '菜单主键'; + +/*The 4223 SQL statement*/ +COMMENT ON TABLE "BLADE_TOP_MENU_SETTING" IS '顶部菜单配置表'; + +/*The 4224 SQL statement*/ +CREATE TABLE "BLADE_USER" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "CODE" VARCHAR(12), + "USER_TYPE" NUMBER(6), + "ACCOUNT" VARCHAR(45), + "PASSWORD" VARCHAR(45), + "NAME" VARCHAR(20), + "REAL_NAME" VARCHAR(10), + "AVATAR" VARCHAR(500), + "EMAIL" VARCHAR(45), + "PHONE" VARCHAR(45), + "BIRTHDAY" DATE, + "SEX" NUMBER(6), + "ROLE_ID" VARCHAR(1000), + "DEPT_ID" VARCHAR(1000), + "POST_ID" VARCHAR(1000), + "CREATE_USER" NUMBER(20), + "CREATE_DEPT" NUMBER(20), + "CREATE_TIME" DATE, + "UPDATE_USER" NUMBER(20), + "UPDATE_TIME" DATE, + "STATUS" NUMBER(11), + "IS_DELETED" NUMBER(11) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4225 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."ID" IS '主键'; + +/*The 4226 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."TENANT_ID" IS '租户ID'; + +/*The 4227 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."CODE" IS '用户编号'; + +/*The 4228 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."USER_TYPE" IS '用户平台'; + +/*The 4229 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."ACCOUNT" IS '账号'; + +/*The 4230 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."PASSWORD" IS '密码'; + +/*The 4231 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."NAME" IS '昵称'; + +/*The 4232 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."REAL_NAME" IS '真名'; + +/*The 4233 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."EMAIL" IS '邮箱'; + +/*The 4234 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."PHONE" IS '手机'; + +/*The 4235 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."BIRTHDAY" IS '生日'; + +/*The 4236 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."SEX" IS '性别'; + +/*The 4237 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."ROLE_ID" IS '角色ID'; + +/*The 4238 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."DEPT_ID" IS '部门ID'; + +/*The 4239 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."POST_ID" IS '岗位ID'; + +/*The 4240 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."CREATE_USER" IS '创建人'; + +/*The 4241 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."CREATE_DEPT" IS '创建部门'; + +/*The 4242 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."CREATE_TIME" IS '创建时间'; + +/*The 4243 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."UPDATE_USER" IS '修改人'; + +/*The 4244 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."UPDATE_TIME" IS '修改时间'; + +/*The 4245 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."STATUS" IS '状态'; + +/*The 4246 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER"."IS_DELETED" IS '是否已删除'; + +/*The 4247 SQL statement*/ +COMMENT ON TABLE "BLADE_USER" IS '用户表'; + +/*The 4248 SQL statement*/ +INSERT INTO "BLADE_USER" +VALUES ('1123598821738675201', '000000', NULL, '1', 'admin' + , '90b9aa7e25f80cf4f64e990b78a9fc5ebd6cecad', '管理员', '管理员', 'https://bladex.cn/images/logo.png', 'admin@bladex.vip' + , '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675201', '1123598813738675201' + , '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 4249 SQL statement*/ +INSERT INTO "BLADE_USER" +VALUES ('1123598821738675202', '000000', NULL, '1', 'hr' + , '5e79b90f7bba52d54115f086e48f539016a27ec6', '人事', '人事', 'https://bladex.cn/images/logo.png', 'hr@bladex.vip' + , '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675203', '1123598813738675202' + , '1123598817738675207', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2019-04-27 17:03:10', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 4250 SQL statement*/ +INSERT INTO "BLADE_USER" +VALUES ('1123598821738675203', '000000', NULL, '1', 'manager' + , 'dfbaa3b61caa3a319f463cc165085aa8c822d2ce', '经理', '经理', 'https://bladex.cn/images/logo.png', 'manager@bladex.vip' + , '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675204', '1123598813738675202' + , '1123598817738675206', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2019-04-27 17:03:38', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 4251 SQL statement*/ +INSERT INTO "BLADE_USER" +VALUES ('1123598821738675204', '000000', NULL, '1', 'boss' + , 'abe57d23e18f7ad8ea99c86e430c90a05119a9d3', '老板', '老板', 'https://bladex.cn/images/logo.png', 'boss@bladex.vip' + , '123333333333', TO_DATE('2018-08-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '1123598816738675205', '1123598813738675202' + , '1123598817738675201', '1123598821738675201', '1123598813738675201', TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1123598821738675201' + , TO_DATE('2019-04-27 17:03:55', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); + +/*The 4252 SQL statement*/ +COMMIT; + +/*The 4253 SQL statement*/ +CREATE TABLE "BLADE_USER_APP" ( + "ID" NUMBER(20) NOT NULL, + "USER_ID" NUMBER(20), + "USER_EXT" VARCHAR(255) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 4254 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_APP"."ID" IS '主键'; + +/*The 4255 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_APP"."USER_ID" IS '用户ID'; + +/*The 4256 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_APP"."USER_EXT" IS '用户拓展信息'; + +/*The 4257 SQL statement*/ +COMMENT ON TABLE "BLADE_USER_APP" IS '用户平台拓展表'; + +/*The 4258 SQL statement*/ +CREATE TABLE "BLADE_USER_DEPT" ( + "ID" NUMBER(20) NOT NULL, + "USER_ID" NUMBER(20), + "DEPT_ID" NUMBER(20) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +/*The 4259 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_DEPT"."ID" IS '主键'; + +/*The 4260 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_DEPT"."USER_ID" IS '用户ID'; + +/*The 4261 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_DEPT"."DEPT_ID" IS '部门ID'; + +/*The 4262 SQL statement*/ +COMMENT ON TABLE "BLADE_USER_DEPT" IS '用户部门表'; + +/*The 4263 SQL statement*/ +INSERT INTO "BLADE_USER_DEPT" +VALUES ('1203503640757788674', '1123598821738675201', '1123598813738675201'); + +/*The 4264 SQL statement*/ +INSERT INTO "BLADE_USER_DEPT" +VALUES ('1203503653323923458', '1123598821738675202', '1123598813738675202'); + +/*The 4265 SQL statement*/ +INSERT INTO "BLADE_USER_DEPT" +VALUES ('1203503663402835969', '1123598821738675203', '1123598813738675202'); + +/*The 4266 SQL statement*/ +INSERT INTO "BLADE_USER_DEPT" +VALUES ('1203503672911323137', '1123598821738675204', '1123598813738675202'); + +/*The 4267 SQL statement*/ +COMMIT; + +/*The 4268 SQL statement*/ +CREATE TABLE "BLADE_USER_OAUTH" ( + "ID" NUMBER(20) NOT NULL, + "TENANT_ID" VARCHAR(12), + "UUID" VARCHAR(64), + "USER_ID" NUMBER(20), + "USERNAME" VARCHAR(32), + "NICKNAME" VARCHAR(64), + "AVATAR" VARCHAR(1000), + "BLOG" VARCHAR(50), + "COMPANY" VARCHAR(255), + "LOCATION" VARCHAR(255), + "EMAIL" VARCHAR(255), + "REMARK" VARCHAR(255), + "GENDER" VARCHAR(16), + "SOURCE" VARCHAR(16) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 4269 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."ID" IS '主键'; + +/*The 4270 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."TENANT_ID" IS '租户ID'; + +/*The 4271 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."UUID" IS '第三方系统用户ID'; + +/*The 4272 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."USER_ID" IS '用户ID'; + +/*The 4273 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."USERNAME" IS '账号'; + +/*The 4274 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."NICKNAME" IS '用户名'; + +/*The 4275 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."AVATAR" IS '头像'; + +/*The 4276 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."BLOG" IS '应用主页'; + +/*The 4277 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."COMPANY" IS '公司名'; + +/*The 4278 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."LOCATION" IS '地址'; + +/*The 4279 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."EMAIL" IS '邮件'; + +/*The 4280 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."REMARK" IS '备注'; + +/*The 4281 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."GENDER" IS '性别'; + +/*The 4282 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OAUTH"."SOURCE" IS '来源'; + +/*The 4283 SQL statement*/ +COMMENT ON TABLE "BLADE_USER_OAUTH" IS '用户第三方认证表'; + +/*The 4284 SQL statement*/ +CREATE TABLE "BLADE_USER_OTHER" ( + "ID" NUMBER(20) NOT NULL, + "USER_ID" NUMBER(20), + "USER_EXT" VARCHAR(255) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 4285 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OTHER"."ID" IS '主键'; + +/*The 4286 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_ID" IS '用户ID'; + +/*The 4287 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_OTHER"."USER_EXT" IS '用户拓展信息'; + +/*The 4288 SQL statement*/ +COMMENT ON TABLE "BLADE_USER_OTHER" IS '用户平台拓展表'; + +/*The 4289 SQL statement*/ +CREATE TABLE "BLADE_USER_WEB" ( + "ID" NUMBER(20) NOT NULL, + "USER_ID" NUMBER(20), + "USER_EXT" VARCHAR(255) +) +PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +; + +/*The 4290 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_WEB"."ID" IS '主键'; + +/*The 4291 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_WEB"."USER_ID" IS '用户ID'; + +/*The 4292 SQL statement*/ +COMMENT ON COLUMN "BLADE_USER_WEB"."USER_EXT" IS '用户拓展信息'; + +/*The 4293 SQL statement*/ +COMMENT ON TABLE "BLADE_USER_WEB" IS '用户平台拓展表'; + + +CREATE TABLE "BLADE_JOB_SERVER" ( + "ID" NUMBER(20) NOT NULL , + "JOB_SERVER_NAME" VARCHAR(50) , + "JOB_SERVER_URL" VARCHAR(255) , + "JOB_APP_NAME" VARCHAR(20) , + "JOB_APP_PASSWORD" VARCHAR(100) , + "JOB_REMARK" VARCHAR(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) , +) + PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_SERVER_NAME" IS '任务服务名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_SERVER_URL" IS '任务服务地址'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_APP_NAME" IS '任务应用名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_APP_PASSWORD" IS '任务应用密码'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."JOB_REMARK" IS '任务说明'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_SERVER"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_JOB_SERVER" IS '任务服务表'; + +INSERT INTO "BLADE_JOB_SERVER"("ID", "JOB_SERVER_NAME", "JOB_SERVER_URL", "JOB_APP_NAME", "JOB_APP_PASSWORD", "JOB_REMARK", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") + (1741512022505590785, '任务调度服务器', '127.0.0.1:7700', 'blade-job', 'blade-job', '基础服务', 1123598821738675201, 1123598813738675201, TO_DATE('2024-01-01 01:29:57', 'SYYYY-MM-DD HH24:MI:SS'), 1123598821738675201, TO_DATE('2024-01-01 01:29:57', 'SYYYY-MM-DD HH24:MI:SS'), 1, 0); + +COMMIT; + + +CREATE TABLE "BLADE_JOB_INFO" ( + "ID" NUMBER(20) NOT NULL , + "JOB_SERVER_ID" NUMBER(20) , + "JOB_ID" NUMBER(20) , + "JOB_NAME" VARCHAR(50) , + "JOB_DESCRIPTION" VARCHAR(255) , + "JOB_PARAMS" NCLOB , + "TIME_EXPRESSION_TYPE" NUMBER(11) , + "TIME_EXPRESSION" VARCHAR(255) , + "EXECUTE_TYPE" NUMBER(11) , + "PROCESSOR_TYPE" NUMBER(11) , + "PROCESSOR_INFO" VARCHAR(255) , + "MAX_INSTANCE_NUM" NUMBER(11) , + "CONCURRENCY" NUMBER(11) , + "INSTANCE_TIME_LIMIT" NUMBER(11) , + "INSTANCE_RETRY_NUM" NUMBER(11) , + "TASK_RETRY_NUM" NUMBER(11) , + "MIN_CPU_CORES" BINARY_DOUBLE , + "MIN_MEMORY_SPACE" BINARY_DOUBLE , + "MIN_DISK_SPACE" BINARY_DOUBLE , + "DESIGNATED_WORKERS" VARCHAR(255) , + "MAX_WORKER_COUNT" NUMBER(11) , + "NOTIFY_USER_IDS" VARCHAR(2000) , + "ENABLE" NUMBER(11) , + "DISPATCH_STRATEGY" NUMBER(11) , + "LIFECYCLE" VARCHAR(255) , + "ALERT_THRESHOLD" NUMBER(11), + "STATISTIC_WINDOW_LEN" NUMBER(11), + "SILENCE_WINDOW_LEN" NUMBER(11), + "LOG_TYPE" NUMBER(11), + "LOG_LEVEL" NUMBER(11), + "EXTRA" VARCHAR(255) , + "CREATE_USER" NUMBER(20) , + "CREATE_DEPT" NUMBER(20) , + "CREATE_TIME" DATE , + "UPDATE_USER" NUMBER(20) , + "UPDATE_TIME" DATE , + "STATUS" NUMBER(11) , + "IS_DELETED" NUMBER(11) , +) + PCTFREE 10 +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."ID" IS '主键'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_SERVER_ID" IS '任务服务ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_ID" IS '任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_NAME" IS '任务名称'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_DESCRIPTION" IS '任务描述'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."JOB_PARAMS" IS '任务参数,Processor#process 方法入参 TaskContext对象的 jobParams 字段'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."TIME_EXPRESSION_TYPE" IS '时间表达式类型,枚举值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."TIME_EXPRESSION" IS '时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."EXECUTE_TYPE" IS '执行类型,枚举值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."PROCESSOR_TYPE" IS '处理器类型,枚举值'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."PROCESSOR_INFO" IS '处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MAX_INSTANCE_NUM" IS '最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CONCURRENCY" IS '单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."INSTANCE_TIME_LIMIT" IS '任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."INSTANCE_RETRY_NUM" IS '任务实例重试次数,整个任务失败时重试,代价大,不推荐使用'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."TASK_RETRY_NUM" IS 'Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MIN_CPU_CORES" IS '最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MIN_MEMORY_SPACE" IS '最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MIN_DISK_SPACE" IS '最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."DESIGNATED_WORKERS" IS '指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."MAX_WORKER_COUNT" IS '最大执行机器数量,限定调动执行的机器数量,0代表无限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."NOTIFY_USER_IDS" IS '接收报警的用户 ID 列表'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."ENABLE" IS '是否启用该任务,未启用的任务不会被调度'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."DISPATCH_STRATEGY" IS '调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."LIFECYCLE" IS '生命周期(预留,用于指定定时调度任务的生效时间范围)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."ALERT_THRESHOLD" IS '错误阈值,0代表不限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."STATISTIC_WINDOW_LEN" IS '统计的窗口长度(s),0代表不限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."SILENCE_WINDOW_LEN" IS '沉默时间窗口(s),0代表不限制'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."LOG_TYPE" IS '日志配置'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."LOG_LEVEL" IS '日志级别'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."EXTRA" IS '扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CREATE_USER" IS '创建人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CREATE_DEPT" IS '创建部门'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."CREATE_TIME" IS '创建时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."UPDATE_USER" IS '修改人'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."UPDATE_TIME" IS '修改时间'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."STATUS" IS '状态'; + +COMMENT ON COLUMN "BLADEX"."BLADE_JOB_INFO"."IS_DELETED" IS '是否已删除'; + +COMMENT ON TABLE "BLADEX"."BLADE_JOB_INFO" IS '任务信息表'; + +-- ---------------------------- +-- Table PRIMARY KEY +-- ---------------------------- +ALTER TABLE "BLADE_USER_WEB" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_OTHER" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_OAUTH" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_DEPT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER_APP" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_USER" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TOP_MENU_SETTING" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TOP_MENU" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TENANT_PACKAGE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_TENANT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_SMS" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_SCOPE_DATA" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_SCOPE_API" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ROLE_SCOPE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ROLE_MENU" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ROLE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_REPORT_FILE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_REGION" ADD PRIMARY KEY("CODE") ; + +ALTER TABLE "BLADE_PROCESS_LEAVE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_POST" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_PARAM" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_OSS" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_NOTICE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_MODEL_PROTOTYPE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_MODEL" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_MENU" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_JOB_INFO" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_JOB_SERVER" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_LOG_USUAL" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_LOG_ERROR" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_LOG_API" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DICT_BIZ" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DICT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DEPT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_DATASOURCE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_CODE" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_CLIENT" ADD PRIMARY KEY("ID") ; + +ALTER TABLE "BLADE_ATTACH" ADD PRIMARY KEY("ID") ; + + diff --git a/doc/sql/flowable/flowable.dameng.all.create.sql b/doc/sql/flowable/flowable.dameng.all.create.sql new file mode 100644 index 0000000..b9ac500 --- /dev/null +++ b/doc/sql/flowable/flowable.dameng.all.create.sql @@ -0,0 +1,2430 @@ +CREATE TABLE "BLADEX"."FLW_RU_BATCH_PART" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "BATCH_ID_" VARCHAR(64) NULL, + "TYPE_" VARCHAR(64) NOT NULL, + "SCOPE_ID_" VARCHAR(64) NULL, + "SUB_SCOPE_ID_" VARCHAR(64) NULL, + "SCOPE_TYPE_" VARCHAR(64) NULL, + "SEARCH_KEY_" VARCHAR(255) NULL, + "SEARCH_KEY2_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NOT NULL, + "COMPLETE_TIME_" TIMESTAMP(0) NULL, + "STATUS_" VARCHAR(255) NULL, + "RESULT_DOC_ID_" VARCHAR(64) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."FLW_RU_BATCH" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TYPE_" VARCHAR(64) NOT NULL, + "SEARCH_KEY_" VARCHAR(255) NULL, + "SEARCH_KEY2_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NOT NULL, + "COMPLETE_TIME_" TIMESTAMP(0) NULL, + "STATUS_" VARCHAR(255) NULL, + "BATCH_DOC_ID_" VARCHAR(64) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."FLW_EV_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" TINYINT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."FLW_EV_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."FLW_EVENT_RESOURCE" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_BYTES_" BLOB NULL +); + +CREATE TABLE "BLADEX"."FLW_EVENT_DEPLOYMENT" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOY_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."FLW_EVENT_DEFINITION" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "VERSION_" INT NULL, + "KEY_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "RESOURCE_NAME_" VARCHAR(255) NULL, + "DESCRIPTION_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."FLW_CHANNEL_DEFINITION" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "VERSION_" INT NULL, + "KEY_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "RESOURCE_NAME_" VARCHAR(255) NULL, + "DESCRIPTION_" VARCHAR(255) NULL, + "TYPE_" VARCHAR(255) NULL, + "IMPLEMENTATION_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_VARIABLE" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "BYTEARRAY_ID_" VARCHAR(64) NULL, + "DOUBLE_" DOUBLE NULL, + "LONG_" BIGINT NULL, + "TEXT_" VARCHAR(3900) NULL, + "TEXT2_" VARCHAR(3900) NULL, + "META_INFO_" VARCHAR(3900) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_TIMER_JOB" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(0) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "EXCLUSIVE_" TINYINT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "ELEMENT_NAME_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "RETRIES_" INT NULL, + "EXCEPTION_STACK_ID_" VARCHAR(64) NULL, + "EXCEPTION_MSG_" VARCHAR(3900) NULL, + "DUEDATE_" TIMESTAMP(0) NULL, + "REPEAT_" VARCHAR(255) NULL, + "HANDLER_TYPE_" VARCHAR(255) NULL, + "HANDLER_CFG_" VARCHAR(3900) NULL, + "CUSTOM_VALUES_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "CATEGORY_" VARCHAR(255) NULL, + "CORRELATION_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_TASK" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "TASK_DEF_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "PARENT_TASK_ID_" VARCHAR(64) NULL, + "DESCRIPTION_" VARCHAR(3900) NULL, + "TASK_DEF_KEY_" VARCHAR(255) NULL, + "OWNER_" VARCHAR(255) NULL, + "ASSIGNEE_" VARCHAR(255) NULL, + "DELEGATION_" VARCHAR(64) NULL, + "PRIORITY_" INT NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "DUE_DATE_" TIMESTAMP(0) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "SUSPENSION_STATE_" INT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "FORM_KEY_" VARCHAR(255) NULL, + "CLAIM_TIME_" TIMESTAMP(0) NULL, + "IS_COUNT_ENABLED_" TINYINT NULL, + "VAR_COUNT_" INT NULL, + "ID_LINK_COUNT_" INT NULL, + "SUB_TASK_COUNT_" INT NULL, + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255) NULL, + "STATE_" VARCHAR(255) NULL, + "IN_PROGRESS_TIME_" TIMESTAMP(0) NULL, + "IN_PROGRESS_STARTED_BY_" VARCHAR(255) NULL, + "CLAIMED_BY_" VARCHAR(255) NULL, + "SUSPENDED_TIME_" TIMESTAMP(0) NULL, + "SUSPENDED_BY_" VARCHAR(255) NULL, + "IN_PROGRESS_DUE_DATE_" TIMESTAMP(0) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "EXCLUSIVE_" TINYINT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "ELEMENT_NAME_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "RETRIES_" INT NULL, + "EXCEPTION_STACK_ID_" VARCHAR(64) NULL, + "EXCEPTION_MSG_" VARCHAR(3900) NULL, + "DUEDATE_" TIMESTAMP(0) NULL, + "REPEAT_" VARCHAR(255) NULL, + "HANDLER_TYPE_" VARCHAR(255) NULL, + "HANDLER_CFG_" VARCHAR(3900) NULL, + "CUSTOM_VALUES_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "CATEGORY_" VARCHAR(255) NULL, + "CORRELATION_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_JOB" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(0) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "EXCLUSIVE_" TINYINT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "ELEMENT_NAME_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "RETRIES_" INT NULL, + "EXCEPTION_STACK_ID_" VARCHAR(64) NULL, + "EXCEPTION_MSG_" VARCHAR(3900) NULL, + "DUEDATE_" TIMESTAMP(0) NULL, + "REPEAT_" VARCHAR(255) NULL, + "HANDLER_TYPE_" VARCHAR(255) NULL, + "HANDLER_CFG_" VARCHAR(3900) NULL, + "CUSTOM_VALUES_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "CATEGORY_" VARCHAR(255) NULL, + "CORRELATION_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_IDENTITYLINK" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "GROUP_ID_" VARCHAR(255) NULL, + "TYPE_" VARCHAR(255) NULL, + "USER_ID_" VARCHAR(255) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_HISTORY_JOB" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(0) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "RETRIES_" INT NULL, + "EXCEPTION_STACK_ID_" VARCHAR(64) NULL, + "EXCEPTION_MSG_" VARCHAR(3900) NULL, + "HANDLER_TYPE_" VARCHAR(255) NULL, + "HANDLER_CFG_" VARCHAR(3900) NULL, + "CUSTOM_VALUES_ID_" VARCHAR(64) NULL, + "ADV_HANDLER_CFG_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_EXTERNAL_JOB" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "CATEGORY_" VARCHAR(255) NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(0) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "EXCLUSIVE_" TINYINT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "ELEMENT_NAME_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "RETRIES_" INT NULL, + "EXCEPTION_STACK_ID_" VARCHAR(64) NULL, + "EXCEPTION_MSG_" VARCHAR(3900) NULL, + "DUEDATE_" TIMESTAMP(0) NULL, + "REPEAT_" VARCHAR(255) NULL, + "HANDLER_TYPE_" VARCHAR(255) NULL, + "HANDLER_CFG_" VARCHAR(3900) NULL, + "CUSTOM_VALUES_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "CORRELATION_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_EXECUTION" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "BUSINESS_KEY_" VARCHAR(255) NULL, + "PARENT_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "SUPER_EXEC_" VARCHAR(64) NULL, + "ROOT_PROC_INST_ID_" VARCHAR(64) NULL, + "ACT_ID_" VARCHAR(255) NULL, + "IS_ACTIVE_" TINYINT NULL, + "IS_CONCURRENT_" TINYINT NULL, + "IS_SCOPE_" TINYINT NULL, + "IS_EVENT_SCOPE_" TINYINT NULL, + "IS_MI_ROOT_" TINYINT NULL, + "SUSPENSION_STATE_" INT NULL, + "CACHED_ENT_STATE_" INT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "NAME_" VARCHAR(255) NULL, + "START_ACT_ID_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NULL, + "START_USER_ID_" VARCHAR(255) NULL, + "LOCK_TIME_" TIMESTAMP(0) NULL, + "IS_COUNT_ENABLED_" TINYINT NULL, + "EVT_SUBSCR_COUNT_" INT NULL, + "TASK_COUNT_" INT NULL, + "JOB_COUNT_" INT NULL, + "TIMER_JOB_COUNT_" INT NULL, + "SUSP_JOB_COUNT_" INT NULL, + "DEADLETTER_JOB_COUNT_" INT NULL, + "VAR_COUNT_" INT NULL, + "ID_LINK_COUNT_" INT NULL, + "CALLBACK_ID_" VARCHAR(255) NULL, + "CALLBACK_TYPE_" VARCHAR(255) NULL, + "REFERENCE_ID_" VARCHAR(255) NULL, + "REFERENCE_TYPE_" VARCHAR(255) NULL, + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "EXTERNAL_WORKER_JOB_COUNT_" INT NULL, + "BUSINESS_STATUS_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_EVENT_SUBSCR" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "EVENT_TYPE_" VARCHAR(255) NOT NULL, + "EVENT_NAME_" VARCHAR(255) NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "ACTIVITY_ID_" VARCHAR(64) NULL, + "CONFIGURATION_" VARCHAR(255) NULL, + "CREATED_" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(3) + NOT NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "SUB_SCOPE_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(64) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(64) NULL, + "SCOPE_TYPE_" VARCHAR(64) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "LOCK_TIME_" TIMESTAMP(0) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_KEY_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_ENTITYLINK" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "LINK_TYPE_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "REF_SCOPE_ID_" VARCHAR(255) NULL, + "REF_SCOPE_TYPE_" VARCHAR(255) NULL, + "REF_SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "HIERARCHY_TYPE_" VARCHAR(255) NULL, + "ROOT_SCOPE_ID_" VARCHAR(255) NULL, + "ROOT_SCOPE_TYPE_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "PARENT_ELEMENT_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "EXCLUSIVE_" TINYINT NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROCESS_INSTANCE_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "ELEMENT_NAME_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "EXCEPTION_STACK_ID_" VARCHAR(64) NULL, + "EXCEPTION_MSG_" VARCHAR(3900) NULL, + "DUEDATE_" TIMESTAMP(0) NULL, + "REPEAT_" VARCHAR(255) NULL, + "HANDLER_TYPE_" VARCHAR(255) NULL, + "HANDLER_CFG_" VARCHAR(3900) NULL, + "CUSTOM_VALUES_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "CATEGORY_" VARCHAR(255) NULL, + "CORRELATION_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_RU_ACTINST" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT DEFAULT 1 + NULL, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "PROC_INST_ID_" VARCHAR(64) NOT NULL, + "EXECUTION_ID_" VARCHAR(64) NOT NULL, + "ACT_ID_" VARCHAR(255) NOT NULL, + "TASK_ID_" VARCHAR(64) NULL, + "CALL_PROC_INST_ID_" VARCHAR(64) NULL, + "ACT_NAME_" VARCHAR(255) NULL, + "ACT_TYPE_" VARCHAR(255) NOT NULL, + "ASSIGNEE_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NOT NULL, + "END_TIME_" TIMESTAMP(0) NULL, + "DURATION_" BIGINT NULL, + "DELETE_REASON_" VARCHAR(3900) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "TRANSACTION_ORDER_" INT NULL +); + +CREATE TABLE "BLADEX"."ACT_RE_PROCDEF" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "CATEGORY_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NOT NULL, + "VERSION_" INT NOT NULL, + "DEPLOYMENT_ID_" VARCHAR(64) NULL, + "RESOURCE_NAME_" VARCHAR(3900) NULL, + "DGRM_RESOURCE_NAME_" VARCHAR(3900) NULL, + "DESCRIPTION_" VARCHAR(3900) NULL, + "HAS_START_FORM_KEY_" TINYINT NULL, + "HAS_GRAPHICAL_NOTATION_" TINYINT NULL, + "SUSPENSION_STATE_" INT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "ENGINE_VERSION_" VARCHAR(255) NULL, + "DERIVED_FROM_" VARCHAR(64) NULL, + "DERIVED_FROM_ROOT_" VARCHAR(64) NULL, + "DERIVED_VERSION_" INT DEFAULT 0 + NOT NULL +); + +CREATE TABLE "BLADEX"."ACT_RE_MODEL" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "NAME_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "LAST_UPDATE_TIME_" TIMESTAMP(0) NULL, + "VERSION_" INT NULL, + "META_INFO_" VARCHAR(3900) NULL, + "DEPLOYMENT_ID_" VARCHAR(64) NULL, + "EDITOR_SOURCE_VALUE_ID_" VARCHAR(64) NULL, + "EDITOR_SOURCE_EXTRA_VALUE_ID_" VARCHAR(64) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_RE_DEPLOYMENT" +( + "ID_" VARCHAR(64) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "DEPLOY_TIME_" TIMESTAMP(0) NULL, + "DERIVED_FROM_" VARCHAR(64) NULL, + "DERIVED_FROM_ROOT_" VARCHAR(64) NULL, + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) NULL, + "ENGINE_VERSION_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_PROCDEF_INFO" +( + "ID_" VARCHAR(64) NOT NULL, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "INFO_JSON_ID_" VARCHAR(64) NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_USER" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "FIRST_" VARCHAR(255) NULL, + "LAST_" VARCHAR(255) NULL, + "DISPLAY_NAME_" VARCHAR(255) NULL, + "EMAIL_" VARCHAR(255) NULL, + "PWD_" VARCHAR(255) NULL, + "PICTURE_ID_" VARCHAR(64) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_TOKEN" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "TOKEN_VALUE_" VARCHAR(255) NULL, + "TOKEN_DATE_" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(3) + NOT NULL, + "IP_ADDRESS_" VARCHAR(255) NULL, + "USER_AGENT_" VARCHAR(255) NULL, + "USER_ID_" VARCHAR(255) NULL, + "TOKEN_DATA_" VARCHAR(2000) NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_PROPERTY" +( + "NAME_" VARCHAR(64) NOT NULL, + "VALUE_" VARCHAR(300) NULL, + "REV_" INT NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_PRIV_MAPPING" +( + "ID_" VARCHAR(64) NOT NULL, + "PRIV_ID_" VARCHAR(64) NOT NULL, + "USER_ID_" VARCHAR(255) NULL, + "GROUP_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_PRIV" +( + "ID_" VARCHAR(64) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_MEMBERSHIP" +( + "USER_ID_" VARCHAR(64) NOT NULL, + "GROUP_ID_" VARCHAR(64) NOT NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_INFO" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "USER_ID_" VARCHAR(64) NULL, + "TYPE_" VARCHAR(64) NULL, + "KEY_" VARCHAR(255) NULL, + "VALUE_" VARCHAR(255) NULL, + "PASSWORD_" BLOB NULL, + "PARENT_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_GROUP" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "NAME_" VARCHAR(255) NULL, + "TYPE_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_ID_BYTEARRAY" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "NAME_" VARCHAR(255) NULL, + "BYTES_" BLOB NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_VARINST" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT DEFAULT 1 + NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "NAME_" VARCHAR(255) NOT NULL, + "VAR_TYPE_" VARCHAR(100) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "BYTEARRAY_ID_" VARCHAR(64) NULL, + "DOUBLE_" DOUBLE NULL, + "LONG_" BIGINT NULL, + "TEXT_" VARCHAR(3900) NULL, + "TEXT2_" VARCHAR(3900) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "LAST_UPDATED_TIME_" TIMESTAMP(0) NULL, + "META_INFO_" VARCHAR(3900) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_TSK_LOG" +( + "ID_" BIGINT IDENTITY(1,1) NOT NULL, + "TYPE_" VARCHAR(64) NULL, + "TASK_ID_" VARCHAR(64) NOT NULL, + "TIME_STAMP_" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(3) + NOT NULL, + "USER_ID_" VARCHAR(255) NULL, + "DATA_" VARCHAR(3900) NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_TASKINST" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT DEFAULT 1 + NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "TASK_DEF_ID_" VARCHAR(64) NULL, + "TASK_DEF_KEY_" VARCHAR(255) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "PARENT_TASK_ID_" VARCHAR(64) NULL, + "DESCRIPTION_" VARCHAR(3900) NULL, + "OWNER_" VARCHAR(255) NULL, + "ASSIGNEE_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NOT NULL, + "CLAIM_TIME_" TIMESTAMP(0) NULL, + "END_TIME_" TIMESTAMP(0) NULL, + "DURATION_" BIGINT NULL, + "DELETE_REASON_" VARCHAR(3900) NULL, + "PRIORITY_" INT NULL, + "DUE_DATE_" TIMESTAMP(0) NULL, + "FORM_KEY_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "LAST_UPDATED_TIME_" TIMESTAMP(0) NULL, + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255) NULL, + "STATE_" VARCHAR(255) NULL, + "IN_PROGRESS_TIME_" TIMESTAMP(0) NULL, + "IN_PROGRESS_STARTED_BY_" VARCHAR(255) NULL, + "CLAIMED_BY_" VARCHAR(255) NULL, + "SUSPENDED_TIME_" TIMESTAMP(0) NULL, + "SUSPENDED_BY_" VARCHAR(255) NULL, + "COMPLETED_BY_" VARCHAR(255) NULL, + "IN_PROGRESS_DUE_DATE_" TIMESTAMP(0) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_PROCINST" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT DEFAULT 1 + NULL, + "PROC_INST_ID_" VARCHAR(64) NOT NULL, + "BUSINESS_KEY_" VARCHAR(255) NULL, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "START_TIME_" TIMESTAMP(0) NOT NULL, + "END_TIME_" TIMESTAMP(0) NULL, + "DURATION_" BIGINT NULL, + "START_USER_ID_" VARCHAR(255) NULL, + "START_ACT_ID_" VARCHAR(255) NULL, + "END_ACT_ID_" VARCHAR(255) NULL, + "SUPER_PROCESS_INSTANCE_ID_" VARCHAR(64) NULL, + "DELETE_REASON_" VARCHAR(3900) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "NAME_" VARCHAR(255) NULL, + "CALLBACK_ID_" VARCHAR(255) NULL, + "CALLBACK_TYPE_" VARCHAR(255) NULL, + "REFERENCE_ID_" VARCHAR(255) NULL, + "REFERENCE_TYPE_" VARCHAR(255) NULL, + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255) NULL, + "BUSINESS_STATUS_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_IDENTITYLINK" +( + "ID_" VARCHAR(64) NOT NULL, + "GROUP_ID_" VARCHAR(255) NULL, + "TYPE_" VARCHAR(255) NULL, + "USER_ID_" VARCHAR(255) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_ENTITYLINK" +( + "ID_" VARCHAR(64) NOT NULL, + "LINK_TYPE_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "REF_SCOPE_ID_" VARCHAR(255) NULL, + "REF_SCOPE_TYPE_" VARCHAR(255) NULL, + "REF_SCOPE_DEFINITION_ID_" VARCHAR(255) NULL, + "HIERARCHY_TYPE_" VARCHAR(255) NULL, + "ROOT_SCOPE_ID_" VARCHAR(255) NULL, + "ROOT_SCOPE_TYPE_" VARCHAR(255) NULL, + "SUB_SCOPE_ID_" VARCHAR(255) NULL, + "PARENT_ELEMENT_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_DETAIL" +( + "ID_" VARCHAR(64) NOT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "ACT_INST_ID_" VARCHAR(64) NULL, + "NAME_" VARCHAR(255) NOT NULL, + "VAR_TYPE_" VARCHAR(255) NULL, + "REV_" INT NULL, + "TIME_" TIMESTAMP(0) NOT NULL, + "BYTEARRAY_ID_" VARCHAR(64) NULL, + "DOUBLE_" DOUBLE NULL, + "LONG_" BIGINT NULL, + "TEXT_" VARCHAR(3900) NULL, + "TEXT2_" VARCHAR(3900) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_COMMENT" +( + "ID_" VARCHAR(64) NOT NULL, + "TYPE_" VARCHAR(255) NULL, + "TIME_" TIMESTAMP(0) NOT NULL, + "USER_ID_" VARCHAR(255) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "ACTION_" VARCHAR(255) NULL, + "MESSAGE_" VARCHAR(3900) NULL, + "FULL_MSG_" BLOB NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_ATTACHMENT" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "USER_ID_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "DESCRIPTION_" VARCHAR(3900) NULL, + "TYPE_" VARCHAR(255) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "URL_" VARCHAR(3900) NULL, + "CONTENT_ID_" VARCHAR(64) NULL, + "TIME_" TIMESTAMP(0) NULL +); + +CREATE TABLE "BLADEX"."ACT_HI_ACTINST" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT DEFAULT 1 + NULL, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "PROC_INST_ID_" VARCHAR(64) NOT NULL, + "EXECUTION_ID_" VARCHAR(64) NOT NULL, + "ACT_ID_" VARCHAR(255) NOT NULL, + "TASK_ID_" VARCHAR(64) NULL, + "CALL_PROC_INST_ID_" VARCHAR(64) NULL, + "ACT_NAME_" VARCHAR(255) NULL, + "ACT_TYPE_" VARCHAR(255) NOT NULL, + "ASSIGNEE_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NOT NULL, + "END_TIME_" TIMESTAMP(0) NULL, + "DURATION_" BIGINT NULL, + "DELETE_REASON_" VARCHAR(3900) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "TRANSACTION_ORDER_" INT NULL +); + +CREATE TABLE "BLADEX"."ACT_GE_PROPERTY" +( + "NAME_" VARCHAR(64) NOT NULL, + "VALUE_" VARCHAR(300) NULL, + "REV_" INT NULL +); + +CREATE TABLE "BLADEX"."ACT_GE_BYTEARRAY" +( + "ID_" VARCHAR(64) NOT NULL, + "REV_" INT NULL, + "NAME_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(64) NULL, + "BYTES_" BLOB NULL, + "GENERATED_" TINYINT NULL +); + +CREATE TABLE "BLADEX"."ACT_FO_FORM_RESOURCE" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_BYTES_" BLOB NULL +); + +CREATE TABLE "BLADEX"."ACT_FO_FORM_INSTANCE" +( + "ID_" VARCHAR(255) NOT NULL, + "FORM_DEFINITION_ID_" VARCHAR(255) NOT NULL, + "TASK_ID_" VARCHAR(255) NULL, + "PROC_INST_ID_" VARCHAR(255) NULL, + "PROC_DEF_ID_" VARCHAR(255) NULL, + "SUBMITTED_DATE_" TIMESTAMP(0) NULL, + "SUBMITTED_BY_" VARCHAR(255) NULL, + "FORM_VALUES_ID_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL, + "SCOPE_DEFINITION_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_FO_FORM_DEPLOYMENT" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOY_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_FO_FORM_DEFINITION" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "VERSION_" INT NULL, + "KEY_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "RESOURCE_NAME_" VARCHAR(255) NULL, + "DESCRIPTION_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_FO_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" BIT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_FO_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."ACT_EVT_LOG" +( + "LOG_NR_" BIGINT IDENTITY(1,1) NOT NULL, + "TYPE_" VARCHAR(64) NULL, + "PROC_DEF_ID_" VARCHAR(64) NULL, + "PROC_INST_ID_" VARCHAR(64) NULL, + "EXECUTION_ID_" VARCHAR(64) NULL, + "TASK_ID_" VARCHAR(64) NULL, + "TIME_STAMP_" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(3) + NOT NULL, + "USER_ID_" VARCHAR(255) NULL, + "DATA_" BLOB NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "LOCK_TIME_" TIMESTAMP(0) NULL, + "IS_PROCESSED_" TINYINT DEFAULT 0 + NULL +); + +CREATE TABLE "BLADEX"."ACT_DMN_HI_DECISION_EXECUTION" +( + "ID_" VARCHAR(255) NOT NULL, + "DECISION_DEFINITION_ID_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NULL, + "END_TIME_" TIMESTAMP(0) NULL, + "INSTANCE_ID_" VARCHAR(255) NULL, + "EXECUTION_ID_" VARCHAR(255) NULL, + "ACTIVITY_ID_" VARCHAR(255) NULL, + "FAILED_" BIT DEFAULT '0' + NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "EXECUTION_JSON_" CLOB NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DMN_DEPLOYMENT_RESOURCE" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_BYTES_" BLOB NULL +); + +CREATE TABLE "BLADEX"."ACT_DMN_DEPLOYMENT" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOY_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DMN_DECISION" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "VERSION_" INT NULL, + "KEY_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "RESOURCE_NAME_" VARCHAR(255) NULL, + "DESCRIPTION_" VARCHAR(255) NULL, + "DECISION_TYPE_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DMN_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" BIT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DMN_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."ACT_DE_MODEL_RELATION" +( + "ID" VARCHAR(255) NOT NULL, + "PARENT_MODEL_ID" VARCHAR(255) NULL, + "MODEL_ID" VARCHAR(255) NULL, + "RELATION_TYPE" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DE_MODEL_HISTORY" +( + "ID" VARCHAR(255) NOT NULL, + "NAME" VARCHAR(400) NOT NULL, + "MODEL_KEY" VARCHAR(400) NOT NULL, + "DESCRIPTION" VARCHAR(3900) NULL, + "MODEL_COMMENT" VARCHAR(3900) NULL, + "CREATED" TIMESTAMP(0) NULL, + "CREATED_BY" VARCHAR(255) NULL, + "LAST_UPDATED" TIMESTAMP(0) NULL, + "LAST_UPDATED_BY" VARCHAR(255) NULL, + "REMOVAL_DATE" TIMESTAMP(0) NULL, + "VERSION" INT NULL, + "MODEL_EDITOR_JSON" CLOB NULL, + "MODEL_ID" VARCHAR(255) NOT NULL, + "MODEL_TYPE" INT NULL, + "TENANT_ID" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DE_MODEL" +( + "ID" VARCHAR(255) NOT NULL, + "NAME" VARCHAR(400) NOT NULL, + "MODEL_KEY" VARCHAR(400) NOT NULL, + "DESCRIPTION" VARCHAR(3900) NULL, + "MODEL_COMMENT" VARCHAR(3900) NULL, + "CREATED" TIMESTAMP(0) NULL, + "CREATED_BY" VARCHAR(255) NULL, + "LAST_UPDATED" TIMESTAMP(0) NULL, + "LAST_UPDATED_BY" VARCHAR(255) NULL, + "VERSION" INT NULL, + "MODEL_EDITOR_JSON" CLOB NULL, + "MODEL_EDITOR_XML" CLOB NULL, + "THUMBNAIL" BLOB NULL, + "MODEL_TYPE" INT NULL, + "TENANT_ID" VARCHAR(255) NULL, + "XML" CLOB NULL +); + +CREATE TABLE "BLADEX"."ACT_DE_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" BIT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_DE_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."ACT_CO_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" BIT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_CO_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."ACT_CO_CONTENT_ITEM" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "MIME_TYPE_" VARCHAR(255) NULL, + "TASK_ID_" VARCHAR(255) NULL, + "PROC_INST_ID_" VARCHAR(255) NULL, + "CONTENT_STORE_ID_" VARCHAR(255) NULL, + "CONTENT_STORE_NAME_" VARCHAR(255) NULL, + "FIELD_" VARCHAR(400) NULL, + "CONTENT_AVAILABLE_" BIT DEFAULT '0' + NULL, + "CREATED_" TIMESTAMP(0) NULL, + "CREATED_BY_" VARCHAR(255) NULL, + "LAST_MODIFIED_" TIMESTAMP(0) NULL, + "LAST_MODIFIED_BY_" VARCHAR(255) NULL, + "CONTENT_SIZE_" BIGINT DEFAULT 0 + NULL, + "TENANT_ID_" VARCHAR(255) NULL, + "SCOPE_ID_" VARCHAR(255) NULL, + "SCOPE_TYPE_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "CASE_DEF_ID_" VARCHAR(255) NULL, + "CASE_INST_ID_" VARCHAR(255) NULL, + "PLAN_ITEM_INST_ID_" VARCHAR(255) NULL, + "ON_PART_ID_" VARCHAR(255) NULL, + "IF_PART_ID_" VARCHAR(255) NULL, + "TIME_STAMP_" TIMESTAMP(0) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "CASE_DEF_ID_" VARCHAR(255) NULL, + "CASE_INST_ID_" VARCHAR(255) NULL, + "STAGE_INST_ID_" VARCHAR(255) NULL, + "IS_STAGE_" BIT NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "STATE_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "START_USER_ID_" VARCHAR(255) NULL, + "REFERENCE_ID_" VARCHAR(255) NULL, + "REFERENCE_TYPE_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "ITEM_DEFINITION_ID_" VARCHAR(255) NULL, + "ITEM_DEFINITION_TYPE_" VARCHAR(255) NULL, + "IS_COMPLETEABLE_" BIT NULL, + "IS_COUNT_ENABLED_" BIT NULL, + "VAR_COUNT_" INT NULL, + "SENTRY_PART_INST_COUNT_" INT NULL, + "LAST_AVAILABLE_TIME_" TIMESTAMP(0) NULL, + "LAST_ENABLED_TIME_" TIMESTAMP(0) NULL, + "LAST_DISABLED_TIME_" TIMESTAMP(0) NULL, + "LAST_STARTED_TIME_" TIMESTAMP(0) NULL, + "LAST_SUSPENDED_TIME_" TIMESTAMP(0) NULL, + "COMPLETED_TIME_" TIMESTAMP(0) NULL, + "OCCURRED_TIME_" TIMESTAMP(0) NULL, + "TERMINATED_TIME_" TIMESTAMP(0) NULL, + "EXIT_TIME_" TIMESTAMP(0) NULL, + "ENDED_TIME_" TIMESTAMP(0) NULL, + "ENTRY_CRITERION_ID_" VARCHAR(255) NULL, + "EXIT_CRITERION_ID_" VARCHAR(255) NULL, + "EXTRA_VALUE_" VARCHAR(255) NULL, + "DERIVED_CASE_DEF_ID_" VARCHAR(255) NULL, + "LAST_UNAVAILABLE_TIME_" TIMESTAMP(0) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_RU_MIL_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "TIME_STAMP_" TIMESTAMP(0) NULL, + "CASE_INST_ID_" VARCHAR(255) NOT NULL, + "CASE_DEF_ID_" VARCHAR(255) NOT NULL, + "ELEMENT_ID_" VARCHAR(255) NOT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_RU_CASE_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "BUSINESS_KEY_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "PARENT_ID_" VARCHAR(255) NULL, + "CASE_DEF_ID_" VARCHAR(255) NULL, + "STATE_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NULL, + "START_USER_ID_" VARCHAR(255) NULL, + "CALLBACK_ID_" VARCHAR(255) NULL, + "CALLBACK_TYPE_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "LOCK_TIME_" TIMESTAMP(0) NULL, + "IS_COMPLETEABLE_" BIT NULL, + "REFERENCE_ID_" VARCHAR(255) NULL, + "REFERENCE_TYPE_" VARCHAR(255) NULL, + "LOCK_OWNER_" VARCHAR(255) NULL, + "LAST_REACTIVATION_TIME_" TIMESTAMP(0) NULL, + "LAST_REACTIVATION_USER_ID_" VARCHAR(255) NULL, + "BUSINESS_STATUS_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_HI_PLAN_ITEM_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "NAME_" VARCHAR(255) NULL, + "STATE_" VARCHAR(255) NULL, + "CASE_DEF_ID_" VARCHAR(255) NULL, + "CASE_INST_ID_" VARCHAR(255) NULL, + "STAGE_INST_ID_" VARCHAR(255) NULL, + "IS_STAGE_" BIT NULL, + "ELEMENT_ID_" VARCHAR(255) NULL, + "ITEM_DEFINITION_ID_" VARCHAR(255) NULL, + "ITEM_DEFINITION_TYPE_" VARCHAR(255) NULL, + "CREATE_TIME_" TIMESTAMP(0) NULL, + "LAST_AVAILABLE_TIME_" TIMESTAMP(0) NULL, + "LAST_ENABLED_TIME_" TIMESTAMP(0) NULL, + "LAST_DISABLED_TIME_" TIMESTAMP(0) NULL, + "LAST_STARTED_TIME_" TIMESTAMP(0) NULL, + "LAST_SUSPENDED_TIME_" TIMESTAMP(0) NULL, + "COMPLETED_TIME_" TIMESTAMP(0) NULL, + "OCCURRED_TIME_" TIMESTAMP(0) NULL, + "TERMINATED_TIME_" TIMESTAMP(0) NULL, + "EXIT_TIME_" TIMESTAMP(0) NULL, + "ENDED_TIME_" TIMESTAMP(0) NULL, + "LAST_UPDATED_TIME_" TIMESTAMP(0) NULL, + "START_USER_ID_" VARCHAR(255) NULL, + "REFERENCE_ID_" VARCHAR(255) NULL, + "REFERENCE_TYPE_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "ENTRY_CRITERION_ID_" VARCHAR(255) NULL, + "EXIT_CRITERION_ID_" VARCHAR(255) NULL, + "SHOW_IN_OVERVIEW_" TINYINT NULL, + "EXTRA_VALUE_" VARCHAR(255) NULL, + "DERIVED_CASE_DEF_ID_" VARCHAR(255) NULL, + "LAST_UNAVAILABLE_TIME_" TIMESTAMP(0) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_HI_MIL_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "TIME_STAMP_" TIMESTAMP(0) NULL, + "CASE_INST_ID_" VARCHAR(255) NOT NULL, + "CASE_DEF_ID_" VARCHAR(255) NOT NULL, + "ELEMENT_ID_" VARCHAR(255) NOT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_HI_CASE_INST" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "BUSINESS_KEY_" VARCHAR(255) NULL, + "NAME_" VARCHAR(255) NULL, + "PARENT_ID_" VARCHAR(255) NULL, + "CASE_DEF_ID_" VARCHAR(255) NULL, + "STATE_" VARCHAR(255) NULL, + "START_TIME_" TIMESTAMP(0) NULL, + "END_TIME_" TIMESTAMP(0) NULL, + "START_USER_ID_" VARCHAR(255) NULL, + "CALLBACK_ID_" VARCHAR(255) NULL, + "CALLBACK_TYPE_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "REFERENCE_ID_" VARCHAR(255) NULL, + "REFERENCE_TYPE_" VARCHAR(255) NULL, + "LAST_REACTIVATION_TIME_" TIMESTAMP(0) NULL, + "LAST_REACTIVATION_USER_ID_" VARCHAR(255) NULL, + "BUSINESS_STATUS_" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_DEPLOYMENT_RESOURCE" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_BYTES_" BLOB NULL, + "GENERATED_" BIT NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_DEPLOYMENT" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NULL, + "DEPLOY_TIME_" TIMESTAMP(0) NULL, + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" BIT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."ACT_CMMN_CASEDEF" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "NAME_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NOT NULL, + "VERSION_" INT NOT NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_NAME_" VARCHAR(3900) NULL, + "DESCRIPTION_" VARCHAR(3900) NULL, + "HAS_GRAPHICAL_NOTATION_" BIT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL, + "DGRM_RESOURCE_NAME_" VARCHAR(3900) NULL, + "HAS_START_FORM_KEY_" BIT NULL +); + +CREATE TABLE "BLADEX"."ACT_APP_DEPLOYMENT_RESOURCE" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_BYTES_" BLOB NULL +); + +CREATE TABLE "BLADEX"."ACT_APP_DEPLOYMENT" +( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NULL, + "CATEGORY_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NULL, + "DEPLOY_TIME_" TIMESTAMP(0) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +CREATE TABLE "BLADEX"."ACT_APP_DATABASECHANGELOGLOCK" +( + "ID" INT NOT NULL, + "LOCKED" BIT NOT NULL, + "LOCKGRANTED" TIMESTAMP(0) NULL, + "LOCKEDBY" VARCHAR(255) NULL +); + +CREATE TABLE "BLADEX"."ACT_APP_DATABASECHANGELOG" +( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP(0) NOT NULL, + "ORDEREXECUTED" INT NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35) NULL, + "DESCRIPTION" VARCHAR(255) NULL, + "COMMENTS" VARCHAR(255) NULL, + "TAG" VARCHAR(255) NULL, + "LIQUIBASE" VARCHAR(20) NULL, + "CONTEXTS" VARCHAR(255) NULL, + "LABELS" VARCHAR(255) NULL, + "DEPLOYMENT_ID" VARCHAR(10) NULL +); + +CREATE TABLE "BLADEX"."ACT_APP_APPDEF" +( + "ID_" VARCHAR(255) NOT NULL, + "REV_" INT NOT NULL, + "NAME_" VARCHAR(255) NULL, + "KEY_" VARCHAR(255) NOT NULL, + "VERSION_" INT NOT NULL, + "CATEGORY_" VARCHAR(255) NULL, + "DEPLOYMENT_ID_" VARCHAR(255) NULL, + "RESOURCE_NAME_" VARCHAR(3900) NULL, + "DESCRIPTION_" VARCHAR(3900) NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' + NULL +); + +ALTER TABLE "BLADEX"."FLW_RU_BATCH_PART" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."FLW_RU_BATCH" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."FLW_EVENT_RESOURCE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."FLW_EVENT_DEPLOYMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."FLW_EVENT_DEFINITION" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."FLW_EVENT_DEFINITION" ADD CONSTRAINT "ACT_IDX_EVENT_DEF_UNIQ" UNIQUE("KEY_","VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."FLW_CHANNEL_DEFINITION" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."FLW_CHANNEL_DEFINITION" ADD CONSTRAINT "ACT_IDX_CHANNEL_DEF_UNIQ" UNIQUE("KEY_","VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_VARIABLE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TIMER_JOB" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TASK" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_JOB" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_IDENTITYLINK" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_HISTORY_JOB" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EXECUTION" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_ENTITYLINK" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_ACTINST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_PROCDEF" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_PROCDEF" ADD CONSTRAINT "ACT_UNIQ_PROCDEF" UNIQUE("KEY_","VERSION_","DERIVED_VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_MODEL" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_DEPLOYMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_PROCDEF_INFO" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_UNIQ_INFO_PROCDEF" UNIQUE("PROC_DEF_ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_USER" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_TOKEN" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_PROPERTY" ADD CONSTRAINT PRIMARY KEY("NAME_") ; + +ALTER TABLE "BLADEX"."ACT_ID_PRIV_MAPPING" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_PRIV" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_PRIV" ADD CONSTRAINT "ACT_UNIQ_PRIV_NAME" UNIQUE("NAME_") ; + +ALTER TABLE "BLADEX"."ACT_ID_MEMBERSHIP" ADD CONSTRAINT PRIMARY KEY("USER_ID_","GROUP_ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_INFO" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_GROUP" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_BYTEARRAY" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_VARINST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_TSK_LOG" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_TASKINST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_PROCINST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_PROCINST" ADD CONSTRAINT "PROC_INST_ID_" UNIQUE("PROC_INST_ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_IDENTITYLINK" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_ENTITYLINK" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_DETAIL" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_COMMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_ATTACHMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_HI_ACTINST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_GE_PROPERTY" ADD CONSTRAINT PRIMARY KEY("NAME_") ; + +ALTER TABLE "BLADEX"."ACT_GE_BYTEARRAY" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_FO_FORM_RESOURCE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_FO_FORM_INSTANCE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_FO_FORM_DEFINITION" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "ACT_IDX_FORM_DEF_UNIQ" UNIQUE("KEY_","VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_EVT_LOG" ADD CONSTRAINT PRIMARY KEY("LOG_NR_") ; + +ALTER TABLE "BLADEX"."ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_DMN_DEPLOYMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_DMN_DECISION" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_DMN_DECISION" ADD CONSTRAINT "ACT_IDX_DMN_DEC_UNIQ" UNIQUE("KEY_","VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_DE_MODEL_RELATION" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_DE_MODEL_HISTORY" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_DE_MODEL" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_CO_CONTENT_ITEM" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_CASEDEF" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_CASEDEF" ADD CONSTRAINT "ACT_IDX_CASE_DEF_UNIQ" UNIQUE("KEY_","VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_APP_DEPLOYMENT" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT PRIMARY KEY("ID") ; + +ALTER TABLE "BLADEX"."ACT_APP_APPDEF" ADD CONSTRAINT PRIMARY KEY("ID_") ; + +ALTER TABLE "BLADEX"."ACT_APP_APPDEF" ADD CONSTRAINT "ACT_IDX_APP_DEF_UNIQ" UNIQUE("KEY_","VERSION_","TENANT_ID_") ; + +ALTER TABLE "BLADEX"."FLW_RU_BATCH_PART" ADD CONSTRAINT "FLW_FK_BATCH_PART_PARENT" FOREIGN KEY("BATCH_ID_") REFERENCES "BLADEX"."FLW_RU_BATCH"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_VARIABLE" ADD CONSTRAINT "ACT_FK_VAR_PROCINST" FOREIGN KEY("PROC_INST_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_VARIABLE" ADD CONSTRAINT "ACT_FK_VAR_BYTEARRAY" FOREIGN KEY("BYTEARRAY_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_VARIABLE" ADD CONSTRAINT "ACT_FK_VAR_EXE" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TIMER_JOB_PROCESS_INSTANCE" FOREIGN KEY("PROCESS_INSTANCE_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TIMER_JOB_CUSTOM_VALUES" FOREIGN KEY("CUSTOM_VALUES_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TIMER_JOB_EXECUTION" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TIMER_JOB_PROC_DEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TIMER_JOB" ADD CONSTRAINT "ACT_FK_TIMER_JOB_EXCEPTION" FOREIGN KEY("EXCEPTION_STACK_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TASK" ADD CONSTRAINT "ACT_FK_TASK_PROCDEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TASK" ADD CONSTRAINT "ACT_FK_TASK_EXE" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_TASK" ADD CONSTRAINT "ACT_FK_TASK_PROCINST" FOREIGN KEY("PROC_INST_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE" FOREIGN KEY("PROCESS_INSTANCE_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SUSPENDED_JOB_PROC_DEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SUSPENDED_JOB_EXCEPTION" FOREIGN KEY("EXCEPTION_STACK_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SUSPENDED_JOB_EXECUTION" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES" FOREIGN KEY("CUSTOM_VALUES_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_PROC_DEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_CUSTOM_VALUES" FOREIGN KEY("CUSTOM_VALUES_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_EXECUTION" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_PROCESS_INSTANCE" FOREIGN KEY("PROCESS_INSTANCE_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_JOB" ADD CONSTRAINT "ACT_FK_JOB_EXCEPTION" FOREIGN KEY("EXCEPTION_STACK_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_IDENTITYLINK" ADD CONSTRAINT "ACT_FK_IDL_PROCINST" FOREIGN KEY("PROC_INST_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_IDENTITYLINK" ADD CONSTRAINT "ACT_FK_TSKASS_TASK" FOREIGN KEY("TASK_ID_") REFERENCES "BLADEX"."ACT_RU_TASK"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_IDENTITYLINK" ADD CONSTRAINT "ACT_FK_ATHRZ_PROCEDEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "ACT_FK_EXTERNAL_JOB_CUSTOM_VALUES" FOREIGN KEY("CUSTOM_VALUES_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "ACT_FK_EXTERNAL_JOB_EXCEPTION" FOREIGN KEY("EXCEPTION_STACK_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_PROCINST" FOREIGN KEY("PROC_INST_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ON UPDATE CASCADE ON DELETE CASCADE with index ; + +ALTER TABLE "BLADEX"."ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_PARENT" FOREIGN KEY("PARENT_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ON DELETE CASCADE with index ; + +ALTER TABLE "BLADEX"."ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_SUPER" FOREIGN KEY("SUPER_EXEC_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ON DELETE CASCADE with index ; + +ALTER TABLE "BLADEX"."ACT_RU_EXECUTION" ADD CONSTRAINT "ACT_FK_EXE_PROCDEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "ACT_FK_EVENT_EXEC" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DEADLETTER_JOB_PROC_DEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DEADLETTER_JOB_EXECUTION" FOREIGN KEY("EXECUTION_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES" FOREIGN KEY("CUSTOM_VALUES_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE" FOREIGN KEY("PROCESS_INSTANCE_ID_") REFERENCES "BLADEX"."ACT_RU_EXECUTION"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "ACT_FK_DEADLETTER_JOB_EXCEPTION" FOREIGN KEY("EXCEPTION_STACK_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_MODEL" ADD CONSTRAINT "ACT_FK_MODEL_SOURCE" FOREIGN KEY("EDITOR_SOURCE_VALUE_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_MODEL" ADD CONSTRAINT "ACT_FK_MODEL_SOURCE_EXTRA" FOREIGN KEY("EDITOR_SOURCE_EXTRA_VALUE_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_RE_MODEL" ADD CONSTRAINT "ACT_FK_MODEL_DEPLOYMENT" FOREIGN KEY("DEPLOYMENT_ID_") REFERENCES "BLADEX"."ACT_RE_DEPLOYMENT"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_FK_INFO_PROCDEF" FOREIGN KEY("PROC_DEF_ID_") REFERENCES "BLADEX"."ACT_RE_PROCDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_FK_INFO_JSON_BA" FOREIGN KEY("INFO_JSON_ID_") REFERENCES "BLADEX"."ACT_GE_BYTEARRAY"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "ACT_FK_PRIV_MAPPING" FOREIGN KEY("PRIV_ID_") REFERENCES "BLADEX"."ACT_ID_PRIV"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_MEMBERSHIP" ADD CONSTRAINT "ACT_FK_MEMB_GROUP" FOREIGN KEY("GROUP_ID_") REFERENCES "BLADEX"."ACT_ID_GROUP"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_ID_MEMBERSHIP" ADD CONSTRAINT "ACT_FK_MEMB_USER" FOREIGN KEY("USER_ID_") REFERENCES "BLADEX"."ACT_ID_USER"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_GE_BYTEARRAY" ADD CONSTRAINT "ACT_FK_BYTEARR_DEPL" FOREIGN KEY("DEPLOYMENT_ID_") REFERENCES "BLADEX"."ACT_RE_DEPLOYMENT"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_CHILD" FOREIGN KEY("MODEL_ID") REFERENCES "BLADEX"."ACT_DE_MODEL"("ID") ; + +ALTER TABLE "BLADEX"."ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_PARENT" FOREIGN KEY("PARENT_MODEL_ID") REFERENCES "BLADEX"."ACT_DE_MODEL"("ID") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "ACT_FK_SENTRY_CASE_INST" FOREIGN KEY("CASE_INST_ID_") REFERENCES "BLADEX"."ACT_CMMN_RU_CASE_INST"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "ACT_FK_SENTRY_CASE_DEF" FOREIGN KEY("CASE_DEF_ID_") REFERENCES "BLADEX"."ACT_CMMN_CASEDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "ACT_FK_SENTRY_PLAN_ITEM" FOREIGN KEY("PLAN_ITEM_INST_ID_") REFERENCES "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "ACT_FK_PLAN_ITEM_CASE_INST" FOREIGN KEY("CASE_INST_ID_") REFERENCES "BLADEX"."ACT_CMMN_RU_CASE_INST"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "ACT_FK_PLAN_ITEM_CASE_DEF" FOREIGN KEY("CASE_DEF_ID_") REFERENCES "BLADEX"."ACT_CMMN_CASEDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "ACT_FK_MIL_CASE_DEF" FOREIGN KEY("CASE_DEF_ID_") REFERENCES "BLADEX"."ACT_CMMN_CASEDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "ACT_FK_MIL_CASE_INST" FOREIGN KEY("CASE_INST_ID_") REFERENCES "BLADEX"."ACT_CMMN_RU_CASE_INST"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "ACT_FK_CASE_INST_CASE_DEF" FOREIGN KEY("CASE_DEF_ID_") REFERENCES "BLADEX"."ACT_CMMN_CASEDEF"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "ACT_FK_CMMN_RSRC_DPL" FOREIGN KEY("DEPLOYMENT_ID_") REFERENCES "BLADEX"."ACT_CMMN_DEPLOYMENT"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_CMMN_CASEDEF" ADD CONSTRAINT "ACT_FK_CASE_DEF_DPLY" FOREIGN KEY("DEPLOYMENT_ID_") REFERENCES "BLADEX"."ACT_CMMN_DEPLOYMENT"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "ACT_FK_APP_RSRC_DPL" FOREIGN KEY("DEPLOYMENT_ID_") REFERENCES "BLADEX"."ACT_APP_DEPLOYMENT"("ID_") ; + +ALTER TABLE "BLADEX"."ACT_APP_APPDEF" ADD CONSTRAINT "ACT_FK_APP_DEF_DPLY" FOREIGN KEY("DEPLOYMENT_ID_") REFERENCES "BLADEX"."ACT_APP_DEPLOYMENT"("ID_") ; + +CREATE TRIGGER "BLADEX"."REF_CON_TRIG134220181" + BEFORE DELETE + ON "BLADEX"."ACT_RU_EXECUTION" + referencing OLD ROW AS "OLD" NEW ROW AS "NEW" + + for each row + BEGIN DELETE FROM "BLADEX"."ACT_RU_EXECUTION" WHERE ROWID != :OLD.ROWID AND "PARENT_ID_" = :OLD."ID_" ; END; +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220183_BS" + BEFORE INSERT or DELETE or UPDATE of "ID_","PROC_INST_ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + for each statement + +BEGIN + DECLARE + A INT; + BEGIN + SELECT COUNT(*) INTO A FROM SREF_CON_TAB134220183_LEVEL; + IF A = 0 THEN + INSERT INTO SREF_CON_TAB134220183_LEVEL VALUES(SF_CURR_STKFRM_LEVEL()); + DELETE FROM SREF_CON_TAB134220183_REFING; + DELETE FROM SREF_CON_TAB134220183_REFED; + END IF; + END; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220183_AS" + AFTER INSERT or DELETE or UPDATE of "ID_","PROC_INST_ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + for each statement + +BEGIN + DECLARE + LVL INT; + A INT; + BEGIN + SELECT N_LEVEL INTO LVL FROM SREF_CON_TAB134220183_LEVEL; + IF LVL <> SF_CURR_STKFRM_LEVEL() THEN + RETURN; + END IF; + + DELETE FROM SREF_CON_TAB134220183_LEVEL; + + BEGIN + SELECT TOP 1 1 INTO A FROM SREF_CON_TAB134220183_REFING WHERE NOT EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220183_REFING.COL1 = "ID_"); + IF A IS NOT NULL THEN + RAISE NEW EXCEPTION (-2672, SF_GET_ERROR_INFO(-2672)); + END IF; + EXCEPTION + WHEN NO_DATA_FOUND THEN + NULL; + WHEN OTHERS THEN + RAISE; + END; + DELETE FROM SREF_CON_TAB134220183_REFING; + + BEGIN + SELECT TOP 1 1 INTO A FROM SREF_CON_TAB134220183_REFED WHERE NOT EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220183_REFED.COL1 = "ID_") AND EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220183_REFED.COL1 = "PROC_INST_ID_"); + IF A IS NOT NULL THEN + RAISE NEW EXCEPTION (-2672, SF_GET_ERROR_INFO(-2672)); + END IF; + EXCEPTION + WHEN NO_DATA_FOUND THEN + NULL; + WHEN OTHERS THEN + RAISE; + END; + DELETE FROM SREF_CON_TAB134220183_REFED; + END; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220183_AR" + AFTER INSERT or DELETE or UPDATE of "ID_","PROC_INST_ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + referencing OLD ROW AS "OLD" NEW ROW AS "NEW" + + for each row + +BEGIN + IF INSERTING OR UPDATING2('"PROC_INST_ID_"') THEN + IF :NEW."PROC_INST_ID_" IS NOT NULL THEN + INSERT INTO SREF_CON_TAB134220183_REFING VALUES(:NEW."PROC_INST_ID_"); + END IF; + END IF; + IF DELETING OR UPDATING2('"ID_"') THEN + IF :OLD."ID_" IS NOT NULL THEN + INSERT INTO SREF_CON_TAB134220183_REFED VALUES(:OLD."ID_"); + END IF; + END IF; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220182_BS" + BEFORE INSERT or DELETE or UPDATE of "ID_","SUPER_EXEC_" + ON "BLADEX"."ACT_RU_EXECUTION" + for each statement + +BEGIN + DECLARE + A INT; + BEGIN + SELECT COUNT(*) INTO A FROM SREF_CON_TAB134220182_LEVEL; + IF A = 0 THEN + INSERT INTO SREF_CON_TAB134220182_LEVEL VALUES(SF_CURR_STKFRM_LEVEL()); + DELETE FROM SREF_CON_TAB134220182_REFING; + DELETE FROM SREF_CON_TAB134220182_REFED; + END IF; + END; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220182_AS" + AFTER INSERT or DELETE or UPDATE of "ID_","SUPER_EXEC_" + ON "BLADEX"."ACT_RU_EXECUTION" + for each statement + +BEGIN + DECLARE + LVL INT; + A INT; + BEGIN + SELECT N_LEVEL INTO LVL FROM SREF_CON_TAB134220182_LEVEL; + IF LVL <> SF_CURR_STKFRM_LEVEL() THEN + RETURN; + END IF; + + DELETE FROM SREF_CON_TAB134220182_LEVEL; + + BEGIN + SELECT TOP 1 1 INTO A FROM SREF_CON_TAB134220182_REFING WHERE NOT EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220182_REFING.COL1 = "ID_"); + IF A IS NOT NULL THEN + RAISE NEW EXCEPTION (-2672, SF_GET_ERROR_INFO(-2672)); + END IF; + EXCEPTION + WHEN NO_DATA_FOUND THEN + NULL; + WHEN OTHERS THEN + RAISE; + END; + DELETE FROM SREF_CON_TAB134220182_REFING; + + BEGIN + SELECT TOP 1 1 INTO A FROM SREF_CON_TAB134220182_REFED WHERE NOT EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220182_REFED.COL1 = "ID_") AND EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220182_REFED.COL1 = "SUPER_EXEC_"); + IF A IS NOT NULL THEN + RAISE NEW EXCEPTION (-2672, SF_GET_ERROR_INFO(-2672)); + END IF; + EXCEPTION + WHEN NO_DATA_FOUND THEN + NULL; + WHEN OTHERS THEN + RAISE; + END; + DELETE FROM SREF_CON_TAB134220182_REFED; + END; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220182_AR" + AFTER INSERT or DELETE or UPDATE of "ID_","SUPER_EXEC_" + ON "BLADEX"."ACT_RU_EXECUTION" + referencing OLD ROW AS "OLD" NEW ROW AS "NEW" + + for each row + +BEGIN + IF INSERTING OR UPDATING2('"SUPER_EXEC_"') THEN + IF :NEW."SUPER_EXEC_" IS NOT NULL THEN + INSERT INTO SREF_CON_TAB134220182_REFING VALUES(:NEW."SUPER_EXEC_"); + END IF; + END IF; + IF DELETING OR UPDATING2('"ID_"') THEN + IF :OLD."ID_" IS NOT NULL THEN + INSERT INTO SREF_CON_TAB134220182_REFED VALUES(:OLD."ID_"); + END IF; + END IF; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220181_BS" + BEFORE INSERT or DELETE or UPDATE of "ID_","PARENT_ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + for each statement + +BEGIN + DECLARE + A INT; + BEGIN + SELECT COUNT(*) INTO A FROM SREF_CON_TAB134220181_LEVEL; + IF A = 0 THEN + INSERT INTO SREF_CON_TAB134220181_LEVEL VALUES(SF_CURR_STKFRM_LEVEL()); + DELETE FROM SREF_CON_TAB134220181_REFING; + DELETE FROM SREF_CON_TAB134220181_REFED; + END IF; + END; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220181_AS" + AFTER INSERT or DELETE or UPDATE of "ID_","PARENT_ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + for each statement + +BEGIN + DECLARE + LVL INT; + A INT; + BEGIN + SELECT N_LEVEL INTO LVL FROM SREF_CON_TAB134220181_LEVEL; + IF LVL <> SF_CURR_STKFRM_LEVEL() THEN + RETURN; + END IF; + + DELETE FROM SREF_CON_TAB134220181_LEVEL; + + BEGIN + SELECT TOP 1 1 INTO A FROM SREF_CON_TAB134220181_REFING WHERE NOT EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220181_REFING.COL1 = "ID_"); + IF A IS NOT NULL THEN + RAISE NEW EXCEPTION (-2672, SF_GET_ERROR_INFO(-2672)); + END IF; + EXCEPTION + WHEN NO_DATA_FOUND THEN + NULL; + WHEN OTHERS THEN + RAISE; + END; + DELETE FROM SREF_CON_TAB134220181_REFING; + + BEGIN + SELECT TOP 1 1 INTO A FROM SREF_CON_TAB134220181_REFED WHERE NOT EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220181_REFED.COL1 = "ID_") AND EXISTS (SELECT 1 FROM "ACT_RU_EXECUTION" WHERE SREF_CON_TAB134220181_REFED.COL1 = "PARENT_ID_"); + IF A IS NOT NULL THEN + RAISE NEW EXCEPTION (-2672, SF_GET_ERROR_INFO(-2672)); + END IF; + EXCEPTION + WHEN NO_DATA_FOUND THEN + NULL; + WHEN OTHERS THEN + RAISE; + END; + DELETE FROM SREF_CON_TAB134220181_REFED; + END; +END; + +CREATE TRIGGER "BLADEX"."SREF_CON_TRIG134220181_AR" + AFTER INSERT or DELETE or UPDATE of "ID_","PARENT_ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + referencing OLD ROW AS "OLD" NEW ROW AS "NEW" + + for each row + +BEGIN + IF INSERTING OR UPDATING2('"PARENT_ID_"') THEN + IF :NEW."PARENT_ID_" IS NOT NULL THEN + INSERT INTO SREF_CON_TAB134220181_REFING VALUES(:NEW."PARENT_ID_"); + END IF; + END IF; + IF DELETING OR UPDATING2('"ID_"') THEN + IF :OLD."ID_" IS NOT NULL THEN + INSERT INTO SREF_CON_TAB134220181_REFED VALUES(:OLD."ID_"); + END IF; + END IF; +END; + +CREATE TRIGGER "BLADEX"."REF_CON_TRIG134220183" + AFTER DELETE or UPDATE of "ID_" + ON "BLADEX"."ACT_RU_EXECUTION" + referencing OLD ROW AS "OLD" NEW ROW AS "NEW" + + for each row + BEGIN IF (DELETING) THEN DELETE FROM "BLADEX"."ACT_RU_EXECUTION" WHERE ROWID != :OLD.ROWID AND "PROC_INST_ID_" = :OLD."ID_" ; END IF; IF (UPDATING) THEN UPDATE "BLADEX"."ACT_RU_EXECUTION" SET "PROC_INST_ID_" = :NEW."ID_" WHERE "PROC_INST_ID_" = :OLD."ID_" ; END IF; END; +CREATE TRIGGER "BLADEX"."REF_CON_TRIG134220182" + BEFORE DELETE + ON "BLADEX"."ACT_RU_EXECUTION" + referencing OLD ROW AS "OLD" NEW ROW AS "NEW" + + for each row + BEGIN DELETE FROM "BLADEX"."ACT_RU_EXECUTION" WHERE ROWID != :OLD.ROWID AND "SUPER_EXEC_" = :OLD."ID_" ; END; +CREATE INDEX "FLW_IDX_BATCH_PART" +ON "BLADEX"."FLW_RU_BATCH_PART"("BATCH_ID_"); + +CREATE INDEX "ACT_IDX_VARIABLE_TASK_ID" +ON "BLADEX"."ACT_RU_VARIABLE"("TASK_ID_"); + +CREATE INDEX "ACT_IDX_RU_VAR_SUB_ID_TYPE" +ON "BLADEX"."ACT_RU_VARIABLE"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_RU_VAR_SCOPE_ID_TYPE" +ON "BLADEX"."ACT_RU_VARIABLE"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_TIMER_JOB_DUEDATE" +ON "BLADEX"."ACT_RU_TIMER_JOB"("DUEDATE_"); + +CREATE INDEX "ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID" +ON "BLADEX"."ACT_RU_TIMER_JOB"("CUSTOM_VALUES_ID_"); + +CREATE INDEX "ACT_IDX_TIMER_JOB_CORRELATION_ID" +ON "BLADEX"."ACT_RU_TIMER_JOB"("CORRELATION_ID_"); + +CREATE INDEX "ACT_IDX_TJOB_SCOPE_DEF" +ON "BLADEX"."ACT_RU_TIMER_JOB"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID" +ON "BLADEX"."ACT_RU_TIMER_JOB"("EXCEPTION_STACK_ID_"); + +CREATE INDEX "ACT_IDX_TJOB_SCOPE" +ON "BLADEX"."ACT_RU_TIMER_JOB"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_TJOB_SUB_SCOPE" +ON "BLADEX"."ACT_RU_TIMER_JOB"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_TASK_SCOPE_DEF" +ON "BLADEX"."ACT_RU_TASK"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_TASK_SCOPE" +ON "BLADEX"."ACT_RU_TASK"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_TASK_CREATE" +ON "BLADEX"."ACT_RU_TASK"("CREATE_TIME_"); + +CREATE INDEX "ACT_IDX_TASK_SUB_SCOPE" +ON "BLADEX"."ACT_RU_TASK"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_SUSPENDED_JOB_CORRELATION_ID" +ON "BLADEX"."ACT_RU_SUSPENDED_JOB"("CORRELATION_ID_"); + +CREATE INDEX "ACT_IDX_SJOB_SCOPE" +ON "BLADEX"."ACT_RU_SUSPENDED_JOB"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID" +ON "BLADEX"."ACT_RU_SUSPENDED_JOB"("EXCEPTION_STACK_ID_"); + +CREATE INDEX "ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID" +ON "BLADEX"."ACT_RU_SUSPENDED_JOB"("CUSTOM_VALUES_ID_"); + +CREATE INDEX "ACT_IDX_SJOB_SUB_SCOPE" +ON "BLADEX"."ACT_RU_SUSPENDED_JOB"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_SJOB_SCOPE_DEF" +ON "BLADEX"."ACT_RU_SUSPENDED_JOB"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_JOB_SCOPE_DEF" +ON "BLADEX"."ACT_RU_JOB"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_JOB_CORRELATION_ID" +ON "BLADEX"."ACT_RU_JOB"("CORRELATION_ID_"); + +CREATE INDEX "ACT_IDX_JOB_EXCEPTION_STACK_ID" +ON "BLADEX"."ACT_RU_JOB"("EXCEPTION_STACK_ID_"); + +CREATE INDEX "ACT_IDX_JOB_SCOPE" +ON "BLADEX"."ACT_RU_JOB"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_JOB_CUSTOM_VALUES_ID" +ON "BLADEX"."ACT_RU_JOB"("CUSTOM_VALUES_ID_"); + +CREATE INDEX "ACT_IDX_JOB_SUB_SCOPE" +ON "BLADEX"."ACT_RU_JOB"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_IDENT_LNK_GROUP" +ON "BLADEX"."ACT_RU_IDENTITYLINK"("GROUP_ID_"); + +CREATE INDEX "ACT_IDX_IDENT_LNK_USER" +ON "BLADEX"."ACT_RU_IDENTITYLINK"("USER_ID_"); + +CREATE INDEX "ACT_IDX_IDENT_LNK_SUB_SCOPE" +ON "BLADEX"."ACT_RU_IDENTITYLINK"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE_DEF" +ON "BLADEX"."ACT_RU_IDENTITYLINK"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_ATHRZ_PROCEDEF" +ON "BLADEX"."ACT_RU_IDENTITYLINK"("PROC_DEF_ID_"); + +CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE" +ON "BLADEX"."ACT_RU_IDENTITYLINK"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_EJOB_SCOPE" +ON "BLADEX"."ACT_RU_EXTERNAL_JOB"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_EXTERNAL_JOB_EXCEPTION_STACK_ID" +ON "BLADEX"."ACT_RU_EXTERNAL_JOB"("EXCEPTION_STACK_ID_"); + +CREATE INDEX "ACT_IDX_EXTERNAL_JOB_CORRELATION_ID" +ON "BLADEX"."ACT_RU_EXTERNAL_JOB"("CORRELATION_ID_"); + +CREATE INDEX "ACT_IDX_EJOB_SUB_SCOPE" +ON "BLADEX"."ACT_RU_EXTERNAL_JOB"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_EXTERNAL_JOB_CUSTOM_VALUES_ID" +ON "BLADEX"."ACT_RU_EXTERNAL_JOB"("CUSTOM_VALUES_ID_"); + +CREATE INDEX "ACT_IDX_EJOB_SCOPE_DEF" +ON "BLADEX"."ACT_RU_EXTERNAL_JOB"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_EXEC_BUSKEY" +ON "BLADEX"."ACT_RU_EXECUTION"("BUSINESS_KEY_"); + +CREATE INDEX "ACT_IDX_EXEC_REF_ID_" +ON "BLADEX"."ACT_RU_EXECUTION"("REFERENCE_ID_"); + +CREATE INDEX "ACT_IDC_EXEC_ROOT" +ON "BLADEX"."ACT_RU_EXECUTION"("ROOT_PROC_INST_ID_"); + +CREATE INDEX "ACT_IDX_EVENT_SUBSCR_CONFIG_" +ON "BLADEX"."ACT_RU_EVENT_SUBSCR"("CONFIGURATION_"); + +CREATE INDEX "ACT_IDX_EVENT_SUBSCR_SCOPEREF_" +ON "BLADEX"."ACT_RU_EVENT_SUBSCR"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_ENT_LNK_REF_SCOPE" +ON "BLADEX"."ACT_RU_ENTITYLINK"("REF_SCOPE_ID_","REF_SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE" +ON "BLADEX"."ACT_RU_ENTITYLINK"("SCOPE_ID_","SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_ENT_LNK_ROOT_SCOPE" +ON "BLADEX"."ACT_RU_ENTITYLINK"("ROOT_SCOPE_ID_","ROOT_SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE_DEF" +ON "BLADEX"."ACT_RU_ENTITYLINK"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID" +ON "BLADEX"."ACT_RU_DEADLETTER_JOB"("CUSTOM_VALUES_ID_"); + +CREATE INDEX "ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID" +ON "BLADEX"."ACT_RU_DEADLETTER_JOB"("EXCEPTION_STACK_ID_"); + +CREATE INDEX "ACT_IDX_DJOB_SCOPE_DEF" +ON "BLADEX"."ACT_RU_DEADLETTER_JOB"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_DJOB_SCOPE" +ON "BLADEX"."ACT_RU_DEADLETTER_JOB"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_DJOB_SUB_SCOPE" +ON "BLADEX"."ACT_RU_DEADLETTER_JOB"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_DEADLETTER_JOB_CORRELATION_ID" +ON "BLADEX"."ACT_RU_DEADLETTER_JOB"("CORRELATION_ID_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_END" +ON "BLADEX"."ACT_RU_ACTINST"("END_TIME_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_EXEC" +ON "BLADEX"."ACT_RU_ACTINST"("EXECUTION_ID_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_EXEC_ACT" +ON "BLADEX"."ACT_RU_ACTINST"("EXECUTION_ID_","ACT_ID_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_PROC" +ON "BLADEX"."ACT_RU_ACTINST"("PROC_INST_ID_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_PROC_ACT" +ON "BLADEX"."ACT_RU_ACTINST"("PROC_INST_ID_","ACT_ID_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_START" +ON "BLADEX"."ACT_RU_ACTINST"("START_TIME_"); + +CREATE INDEX "ACT_IDX_RU_ACTI_TASK" +ON "BLADEX"."ACT_RU_ACTINST"("TASK_ID_"); + +CREATE INDEX "ACT_IDX_INFO_PROCDEF" +ON "BLADEX"."ACT_PROCDEF_INFO"("PROC_DEF_ID_"); + +CREATE INDEX "ACT_IDX_PRIV_GROUP" +ON "BLADEX"."ACT_ID_PRIV_MAPPING"("GROUP_ID_"); + +CREATE INDEX "ACT_IDX_PRIV_USER" +ON "BLADEX"."ACT_ID_PRIV_MAPPING"("USER_ID_"); + +CREATE INDEX "ACT_IDX_HI_PROCVAR_EXE" +ON "BLADEX"."ACT_HI_VARINST"("EXECUTION_ID_"); + +CREATE INDEX "ACT_IDX_HI_PROCVAR_PROC_INST" +ON "BLADEX"."ACT_HI_VARINST"("PROC_INST_ID_"); + +CREATE INDEX "ACT_IDX_HI_VAR_SUB_ID_TYPE" +ON "BLADEX"."ACT_HI_VARINST"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_VAR_SCOPE_ID_TYPE" +ON "BLADEX"."ACT_HI_VARINST"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_PROCVAR_NAME_TYPE" +ON "BLADEX"."ACT_HI_VARINST"("NAME_","VAR_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_PROCVAR_TASK_ID" +ON "BLADEX"."ACT_HI_VARINST"("TASK_ID_"); + +CREATE INDEX "ACT_IDX_HI_TASK_SCOPE" +ON "BLADEX"."ACT_HI_TASKINST"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_TASK_SUB_SCOPE" +ON "BLADEX"."ACT_HI_TASKINST"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_TASK_SCOPE_DEF" +ON "BLADEX"."ACT_HI_TASKINST"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_TASK_INST_PROCINST" +ON "BLADEX"."ACT_HI_TASKINST"("PROC_INST_ID_"); + +CREATE INDEX "ACT_IDX_HI_PRO_INST_END" +ON "BLADEX"."ACT_HI_PROCINST"("END_TIME_"); + +CREATE INDEX "ACT_IDX_HI_PRO_I_BUSKEY" +ON "BLADEX"."ACT_HI_PROCINST"("BUSINESS_KEY_"); + +CREATE INDEX "ACT_IDX_HI_PRO_SUPER_PROCINST" +ON "BLADEX"."ACT_HI_PROCINST"("SUPER_PROCESS_INSTANCE_ID_"); + +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_TASK" +ON "BLADEX"."ACT_HI_IDENTITYLINK"("TASK_ID_"); + +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE" +ON "BLADEX"."ACT_HI_IDENTITYLINK"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_PROCINST" +ON "BLADEX"."ACT_HI_IDENTITYLINK"("PROC_INST_ID_"); + +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE_DEF" +ON "BLADEX"."ACT_HI_IDENTITYLINK"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_USER" +ON "BLADEX"."ACT_HI_IDENTITYLINK"("USER_ID_"); + +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SUB_SCOPE" +ON "BLADEX"."ACT_HI_IDENTITYLINK"("SUB_SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE" +ON "BLADEX"."ACT_HI_ENTITYLINK"("SCOPE_ID_","SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_ENT_LNK_ROOT_SCOPE" +ON "BLADEX"."ACT_HI_ENTITYLINK"("ROOT_SCOPE_ID_","ROOT_SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE_DEF" +ON "BLADEX"."ACT_HI_ENTITYLINK"("SCOPE_DEFINITION_ID_","SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_ENT_LNK_REF_SCOPE" +ON "BLADEX"."ACT_HI_ENTITYLINK"("REF_SCOPE_ID_","REF_SCOPE_TYPE_","LINK_TYPE_"); + +CREATE INDEX "ACT_IDX_HI_DETAIL_ACT_INST" +ON "BLADEX"."ACT_HI_DETAIL"("ACT_INST_ID_"); + +CREATE INDEX "ACT_IDX_HI_DETAIL_PROC_INST" +ON "BLADEX"."ACT_HI_DETAIL"("PROC_INST_ID_"); + +CREATE INDEX "ACT_IDX_HI_DETAIL_NAME" +ON "BLADEX"."ACT_HI_DETAIL"("NAME_"); + +CREATE INDEX "ACT_IDX_HI_DETAIL_TIME" +ON "BLADEX"."ACT_HI_DETAIL"("TIME_"); + +CREATE INDEX "ACT_IDX_HI_DETAIL_TASK_ID" +ON "BLADEX"."ACT_HI_DETAIL"("TASK_ID_"); + +CREATE INDEX "ACT_IDX_HI_ACT_INST_START" +ON "BLADEX"."ACT_HI_ACTINST"("START_TIME_"); + +CREATE INDEX "ACT_IDX_HI_ACT_INST_PROCINST" +ON "BLADEX"."ACT_HI_ACTINST"("PROC_INST_ID_","ACT_ID_"); + +CREATE INDEX "ACT_IDX_HI_ACT_INST_END" +ON "BLADEX"."ACT_HI_ACTINST"("END_TIME_"); + +CREATE INDEX "ACT_IDX_HI_ACT_INST_EXEC" +ON "BLADEX"."ACT_HI_ACTINST"("EXECUTION_ID_","ACT_ID_"); + +CREATE INDEX "ACT_IDX_DMN_INSTANCE_ID" +ON "BLADEX"."ACT_DMN_HI_DECISION_EXECUTION"("INSTANCE_ID_"); + +CREATE INDEX "IDX_PROC_MOD_HISTORY_PROC" +ON "BLADEX"."ACT_DE_MODEL_HISTORY"("MODEL_ID"); + +CREATE INDEX "IDX_PROC_MOD_CREATED" +ON "BLADEX"."ACT_DE_MODEL"("CREATED_BY"); + +CREATE INDEX "IDX_CONTITEM_SCOPE" +ON "BLADEX"."ACT_CO_CONTENT_ITEM"("SCOPE_ID_","SCOPE_TYPE_"); + +CREATE INDEX "IDX_CONTITEM_PROCID" +ON "BLADEX"."ACT_CO_CONTENT_ITEM"("PROC_INST_ID_"); + +CREATE INDEX "IDX_CONTITEM_TASKID" +ON "BLADEX"."ACT_CO_CONTENT_ITEM"("TASK_ID_"); + +CREATE INDEX "ACT_IDX_SENTRY_CASE_DEF" +ON "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST"("CASE_DEF_ID_"); + +CREATE INDEX "ACT_IDX_SENTRY_CASE_INST" +ON "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST"("CASE_INST_ID_"); + +CREATE INDEX "ACT_IDX_SENTRY_PLAN_ITEM" +ON "BLADEX"."ACT_CMMN_RU_SENTRY_PART_INST"("PLAN_ITEM_INST_ID_"); + +CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_INST" +ON "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST"("CASE_INST_ID_"); + +CREATE INDEX "ACT_IDX_PLAN_ITEM_STAGE_INST" +ON "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST"("STAGE_INST_ID_"); + +CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_DEF" +ON "BLADEX"."ACT_CMMN_RU_PLAN_ITEM_INST"("CASE_DEF_ID_"); + +CREATE INDEX "ACT_IDX_MIL_CASE_INST" +ON "BLADEX"."ACT_CMMN_RU_MIL_INST"("CASE_INST_ID_"); + +CREATE INDEX "ACT_IDX_MIL_CASE_DEF" +ON "BLADEX"."ACT_CMMN_RU_MIL_INST"("CASE_DEF_ID_"); + +CREATE INDEX "ACT_IDX_CASE_INST_REF_ID_" +ON "BLADEX"."ACT_CMMN_RU_CASE_INST"("REFERENCE_ID_"); + +CREATE INDEX "ACT_IDX_CASE_INST_PARENT" +ON "BLADEX"."ACT_CMMN_RU_CASE_INST"("PARENT_ID_"); + +CREATE INDEX "ACT_IDX_CASE_INST_CASE_DEF" +ON "BLADEX"."ACT_CMMN_RU_CASE_INST"("CASE_DEF_ID_"); + +CREATE INDEX "ACT_IDX_HI_PLAN_ITEM_INST_CASE" +ON "BLADEX"."ACT_CMMN_HI_PLAN_ITEM_INST"("CASE_INST_ID_"); + +CREATE INDEX "ACT_IDX_HI_CASE_INST_END" +ON "BLADEX"."ACT_CMMN_HI_CASE_INST"("END_TIME_"); + +CREATE INDEX "ACT_IDX_CMMN_RSRC_DPL" +ON "BLADEX"."ACT_CMMN_DEPLOYMENT_RESOURCE"("DEPLOYMENT_ID_"); + +CREATE INDEX "ACT_IDX_CASE_DEF_DPLY" +ON "BLADEX"."ACT_CMMN_CASEDEF"("DEPLOYMENT_ID_"); + +CREATE INDEX "ACT_IDX_APP_RSRC_DPL" +ON "BLADEX"."ACT_APP_DEPLOYMENT_RESOURCE"("DEPLOYMENT_ID_"); + +CREATE INDEX "ACT_IDX_APP_DEF_DPLY" +ON "BLADEX"."ACT_APP_APPDEF"("DEPLOYMENT_ID_"); + + +INSERT INTO "BLADEX"."ACT_APP_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','flowable','org/flowable/app/db/liquibase/flowable-app-db-changelog.xml','2019-08-01 03:08:02.000000',1,'EXECUTED','9:959783069c0c7ce80320a0617aa48969','createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...','',null,'3.6.3',null,null,'4628882015'); +INSERT INTO "BLADEX"."ACT_APP_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('2','flowable','org/flowable/app/db/liquibase/flowable-app-db-changelog.xml','2019-08-01 03:08:02.000000',2,'EXECUTED','9:c75407b1c0e16adf2a6db585c05a94c7','modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_APP_DEPLOYMENT','',null,'3.6.3',null,null,'4628882015'); +INSERT INTO "BLADEX"."ACT_APP_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('3','flowable','org/flowable/app/db/liquibase/flowable-app-db-changelog.xml','2019-08-01 03:08:02.000000',3,'EXECUTED','9:c05b79a3b00e95136533085718361208','createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF','',null,'3.6.3',null,null,'4628882015'); + +INSERT INTO "BLADEX"."ACT_APP_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:07:59.000000',1,'EXECUTED','9:d0cc0aaadf0e4ef70c5b412cd05fadc4','createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('2','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:07:59.000000',2,'EXECUTED','9:8095a5a8a222a100c2d0310cacbda5e7','addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('3','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:08:00.000000',3,'EXECUTED','9:f031b4f0ae67bc5a640736b379049b12','addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('4','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:08:00.000000',4,'EXECUTED','9:c484ecfb08719feccac2f80fc962dda9','createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('5','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:08:01.000000',5,'EXECUTED','9:e6a67f8f0d16cd72117900442acfe6e0','modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_CMMN_DEPLOYMENT; modifyDataType columnName=START_TIME_, tableName=ACT_CMMN_RU_CASE_INST; modifyDataType columnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; modifyDataType columnName=T...','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('6','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:08:01.000000',6,'EXECUTED','9:7343ab247d959e5add9278b5386de833','createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('7','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2019-08-01 03:08:01.000000',7,'EXECUTED','9:d73200db684b6cdb748cc03570d5d2e9','renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...','',null,'3.6.3',null,null,'4628878437'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('8','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:56.000000',8,'EXECUTED','9:eda5e43816221f2d8554bfcc90f1c37e','addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('9','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:56.000000',9,'EXECUTED','9:c34685611779075a73caf8c380f078ea','addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('10','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:56.000000',10,'EXECUTED','9:368e9472ad2348206205170d6c52d58e','addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_CASE_INST_REF_ID_, tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE...','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('11','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',11,'EXECUTED','9:e54b50ceb2bcd5355ae4dfb56d9ff3ad','addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('12','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',12,'EXECUTED','9:f53f262768d04e74529f43fcd93429b0','addColumn tableName=ACT_CMMN_RU_CASE_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('13','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',13,'EXECUTED','9:64e7eafbe97997094654e83caea99895','addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('14','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',14,'EXECUTED','9:ab7d934abde497eac034701542e0a281','addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('16','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',15,'EXECUTED','9:03928d422e510959770e7a9daa5a993f','addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('17','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',16,'EXECUTED','9:f30304cf001d6eac78c793ea88cd5781','createIndex indexName=ACT_IDX_HI_CASE_INST_END, tableName=ACT_CMMN_HI_CASE_INST','',null,'4.24.0',null,null,'0438176530'); +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('18','flowable','org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml','2024-03-14 17:42:57.000000',17,'EXECUTED','9:d782865087d6c0c3dc033ac20e783008','createIndex indexName=ACT_IDX_HI_PLAN_ITEM_INST_CASE, tableName=ACT_CMMN_HI_PLAN_ITEM_INST','',null,'4.24.0',null,null,'0438176530'); + +INSERT INTO "BLADEX"."ACT_CMMN_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +INSERT INTO "BLADEX"."ACT_CO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','activiti','org/flowable/content/db/liquibase/flowable-content-db-changelog.xml','2019-08-01 03:07:58.000000',1,'EXECUTED','8:7644d7165cfe799200a2abdd3419e8b6','createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM','',null,'3.6.3',null,null,'4628877941'); +INSERT INTO "BLADEX"."ACT_CO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('2','flowable','org/flowable/content/db/liquibase/flowable-content-db-changelog.xml','2019-08-01 03:07:58.000000',2,'EXECUTED','8:fe7b11ac7dbbf9c43006b23bbab60bab','addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM','',null,'3.6.3',null,null,'4628877941'); + +INSERT INTO "BLADEX"."ACT_CO_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +INSERT INTO "BLADEX"."ACT_DE_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','flowable','META-INF/liquibase/flowable-modeler-app-db-changelog.xml','2019-08-01 03:08:43.000000',1,'EXECUTED','8:e70d1d9d3899a734296b2514ccc71501','createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...','',null,'3.6.3',null,null,'4628923400'); +INSERT INTO "BLADEX"."ACT_DE_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('3','flowable','META-INF/liquibase/flowable-modeler-app-db-changelog.xml','2019-08-01 03:08:43.000000',2,'EXECUTED','8:3a9143bef2e45f2316231cc1369138b6','addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY','',null,'3.6.3',null,null,'4628923400'); + +INSERT INTO "BLADEX"."ACT_DE_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','activiti','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2019-08-01 03:07:57.000000',1,'EXECUTED','9:5b36e70aee5a2e42f6e7a62ea5fa681b','createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE','',null,'3.6.3',null,null,'4628876950'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('2','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2019-08-01 03:07:57.000000',2,'EXECUTED','9:fd13fa3f7af55d2b72f763fc261da30d','createTable tableName=ACT_DMN_HI_DECISION_EXECUTION','',null,'3.6.3',null,null,'4628876950'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('3','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2019-08-01 03:07:57.000000',3,'EXECUTED','9:9f30e6a3557d4b4c713dbb2dcc141782','addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION','',null,'3.6.3',null,null,'4628876950'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('4','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2019-08-01 03:07:57.000000',4,'EXECUTED','9:41085fbde807dba96104ee75a2fcc4cc','dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE','',null,'3.6.3',null,null,'4628876950'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('5','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2019-08-01 03:07:57.000000',5,'EXECUTED','9:169d906b6503ad6907b7e5cd0d70d004','modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_DMN_DEPLOYMENT; modifyDataType columnName=START_TIME_, tableName=ACT_DMN_HI_DECISION_EXECUTION; modifyDataType columnName=END_TIME_, tableName=ACT_DMN_HI_DECISION_EXECUTION','',null,'3.6.3',null,null,'4628876950'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('6','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2019-08-01 03:07:57.000000',6,'EXECUTED','9:f00f92f3ef1af3fc1604f0323630f9b1','createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE','',null,'3.6.3',null,null,'4628876950'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('7','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2024-03-14 17:42:55.000000',7,'EXECUTED','9:d24d4c5f44083b4edf1231a7a682a2cd','dropIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE; renameTable newTableName=ACT_DMN_DECISION, oldTableName=ACT_DMN_DECISION_TABLE; createIndex indexName=ACT_IDX_DMN_DEC_UNIQ, tableName=ACT_DMN_DECISION','',null,'4.24.0',null,null,'0438175582'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('8','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2024-03-14 17:42:55.000000',8,'EXECUTED','9:3998ef0958b46fe9c19458183952d2a0','addColumn tableName=ACT_DMN_DECISION','',null,'4.24.0',null,null,'0438175582'); +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('9','flowable','org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml','2024-03-14 17:42:55.000000',9,'EXECUTED','9:5c9dc65601456faa1aa12f8d3afe0e9e','createIndex indexName=ACT_IDX_DMN_INSTANCE_ID, tableName=ACT_DMN_HI_DECISION_EXECUTION','',null,'4.24.0',null,null,'0438175582'); + +INSERT INTO "BLADEX"."ACT_DMN_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +SET IDENTITY_INSERT "BLADEX"."ACT_EVT_LOG" ON; +SET IDENTITY_INSERT "BLADEX"."ACT_EVT_LOG" OFF; +INSERT INTO "BLADEX"."ACT_FO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','activiti','org/flowable/form/db/liquibase/flowable-form-db-changelog.xml','2019-08-01 03:07:57.000000',1,'EXECUTED','8:033ebf9380889aed7c453927ecc3250d','createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE','',null,'3.6.3',null,null,'4628877478'); +INSERT INTO "BLADEX"."ACT_FO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('2','flowable','org/flowable/form/db/liquibase/flowable-form-db-changelog.xml','2019-08-01 03:07:57.000000',2,'EXECUTED','8:986365ceb40445ce3b27a8e6b40f159b','addColumn tableName=ACT_FO_FORM_INSTANCE','',null,'3.6.3',null,null,'4628877478'); +INSERT INTO "BLADEX"."ACT_FO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('3','flowable','org/flowable/form/db/liquibase/flowable-form-db-changelog.xml','2019-08-01 03:07:57.000000',3,'EXECUTED','8:abf482518ceb09830ef674e52c06bf15','dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION','',null,'3.6.3',null,null,'4628877478'); +INSERT INTO "BLADEX"."ACT_FO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('4','flowable','org/flowable/form/db/liquibase/flowable-form-db-changelog.xml','2019-08-01 03:07:57.000000',4,'EXECUTED','8:2087829f22a4b2298dbf530681c74854','modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_FO_FORM_DEPLOYMENT; modifyDataType columnName=SUBMITTED_DATE_, tableName=ACT_FO_FORM_INSTANCE','',null,'3.6.3',null,null,'4628877478'); +INSERT INTO "BLADEX"."ACT_FO_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('5','flowable','org/flowable/form/db/liquibase/flowable-form-db-changelog.xml','2019-08-01 03:07:57.000000',5,'EXECUTED','8:b4be732b89e5ca028bdd520c6ad4d446','createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION','',null,'3.6.3',null,null,'4628877478'); + +INSERT INTO "BLADEX"."ACT_FO_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('batch.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('cfg.execution-related-entities-count','true',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('cfg.task-related-entities-count','true',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('common.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('entitylink.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('eventsubscription.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('identitylink.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('job.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('next.dbid','1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('schema.history','upgrade(6.5.0.1->7.0.1.1)',2); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('schema.version','7.0.1.1',2); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('task.schema.version','7.0.1.1',1); +INSERT INTO "BLADEX"."ACT_GE_PROPERTY"("NAME_","VALUE_","REV_") VALUES('variable.schema.version','7.0.1.1',1); + +SET IDENTITY_INSERT "BLADEX"."ACT_HI_TSK_LOG" ON; +SET IDENTITY_INSERT "BLADEX"."ACT_HI_TSK_LOG" OFF; +INSERT INTO "BLADEX"."ACT_ID_PROPERTY"("NAME_","VALUE_","REV_") VALUES('schema.version','7.0.1.1',1); + +INSERT INTO "BLADEX"."FLW_EV_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('1','flowable','org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml','2024-03-14 17:42:55.000000',1,'EXECUTED','9:63268f536c469325acef35970312551b','createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...','',null,'4.24.0',null,null,'0438174846'); +INSERT INTO "BLADEX"."FLW_EV_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('2','flowable','org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml','2024-03-14 17:42:55.000000',2,'EXECUTED','9:dcb58b7dfd6dbda66939123a96985536','addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION','',null,'4.24.0',null,null,'0438174846'); +INSERT INTO "BLADEX"."FLW_EV_DATABASECHANGELOG"("ID","AUTHOR","FILENAME","DATEEXECUTED","ORDEREXECUTED","EXECTYPE","MD5SUM","DESCRIPTION","COMMENTS","TAG","LIQUIBASE","CONTEXTS","LABELS","DEPLOYMENT_ID") VALUES('3','flowable','org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml','2024-03-14 17:42:55.000000',3,'EXECUTED','9:d0c05678d57af23ad93699991e3bf4f6','customChange','',null,'4.24.0',null,null,'0438174846'); + +INSERT INTO "BLADEX"."FLW_EV_DATABASECHANGELOGLOCK"("ID","LOCKED","LOCKGRANTED","LOCKEDBY") VALUES(1,0,null,null); + +COMMIT; + diff --git a/doc/sql/flowable/flowable.mysql.all.create.sql b/doc/sql/flowable/flowable.mysql.all.create.sql new file mode 100644 index 0000000..777e059 --- /dev/null +++ b/doc/sql/flowable/flowable.mysql.all.create.sql @@ -0,0 +1,2472 @@ +/* + Navicat Premium Data Transfer + + Source Server : mysql_localhost + Source Server Type : MySQL + Source Server Version : 80300 (8.3.0) + Source Host : localhost:3306 + Source Schema : bladex + + Target Server Type : MySQL + Target Server Version : 80300 (8.3.0) + File Encoding : 65001 + + Date: 15/03/2024 01:43:28 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for act_app_appdef +-- ---------------------------- +DROP TABLE IF EXISTS `act_app_appdef`; +CREATE TABLE `act_app_appdef` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `VERSION_` int NOT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_APP_DEF_UNIQ`(`KEY_` ASC, `VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_APP_DEF_DPLY`(`DEPLOYMENT_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_APP_DEF_DPLY` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_app_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_app_appdef +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `act_app_databasechangelog`; +CREATE TABLE `act_app_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_app_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `act_app_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 03:08:02', 1, 'EXECUTED', '9:959783069c0c7ce80320a0617aa48969', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', '', NULL, '3.6.3', NULL, NULL, '4628882015'), ('2', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 03:08:02', 2, 'EXECUTED', '9:c75407b1c0e16adf2a6db585c05a94c7', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_APP_DEPLOYMENT', '', NULL, '3.6.3', NULL, NULL, '4628882015'), ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 03:08:02', 3, 'EXECUTED', '9:c05b79a3b00e95136533085718361208', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', '', NULL, '3.6.3', NULL, NULL, '4628882015'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `act_app_databasechangeloglock`; +CREATE TABLE `act_app_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_app_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `act_app_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, b'0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `act_app_deployment`; +CREATE TABLE `act_app_deployment` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_app_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_deployment_resource +-- ---------------------------- +DROP TABLE IF EXISTS `act_app_deployment_resource`; +CREATE TABLE `act_app_deployment_resource` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_APP_RSRC_DPL`(`DEPLOYMENT_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_APP_RSRC_DPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_app_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_app_deployment_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_casedef +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_casedef`; +CREATE TABLE `act_cmmn_casedef` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `VERSION_` int NOT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `HAS_GRAPHICAL_NOTATION_` bit(1) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + `DGRM_RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `HAS_START_FORM_KEY_` bit(1) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_CASE_DEF_UNIQ`(`KEY_` ASC, `VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_CASE_DEF_DPLY`(`DEPLOYMENT_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_CASE_DEF_DPLY` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_cmmn_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_casedef +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_databasechangelog`; +CREATE TABLE `act_cmmn_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `act_cmmn_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:07:59', 1, 'EXECUTED', '9:d0cc0aaadf0e4ef70c5b412cd05fadc4', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:07:59', 2, 'EXECUTED', '9:8095a5a8a222a100c2d0310cacbda5e7', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:00', 3, 'EXECUTED', '9:f031b4f0ae67bc5a640736b379049b12', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:00', 4, 'EXECUTED', '9:c484ecfb08719feccac2f80fc962dda9', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('5', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:01', 5, 'EXECUTED', '9:e6a67f8f0d16cd72117900442acfe6e0', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_CMMN_DEPLOYMENT; modifyDataType columnName=START_TIME_, tableName=ACT_CMMN_RU_CASE_INST; modifyDataType columnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; modifyDataType columnName=T...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:01', 6, 'EXECUTED', '9:7343ab247d959e5add9278b5386de833', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 03:08:01', 7, 'EXECUTED', '9:d73200db684b6cdb748cc03570d5d2e9', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', '', NULL, '3.6.3', NULL, NULL, '4628878437'), ('8', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:56', 8, 'EXECUTED', '9:eda5e43816221f2d8554bfcc90f1c37e', 'addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('9', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:56', 9, 'EXECUTED', '9:c34685611779075a73caf8c380f078ea', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('10', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:56', 10, 'EXECUTED', '9:368e9472ad2348206205170d6c52d58e', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_CASE_INST_REF_ID_, tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE...', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('11', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 11, 'EXECUTED', '9:e54b50ceb2bcd5355ae4dfb56d9ff3ad', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('12', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 12, 'EXECUTED', '9:f53f262768d04e74529f43fcd93429b0', 'addColumn tableName=ACT_CMMN_RU_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('13', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 13, 'EXECUTED', '9:64e7eafbe97997094654e83caea99895', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('14', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 14, 'EXECUTED', '9:ab7d934abde497eac034701542e0a281', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('16', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 15, 'EXECUTED', '9:03928d422e510959770e7a9daa5a993f', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('17', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 16, 'EXECUTED', '9:f30304cf001d6eac78c793ea88cd5781', 'createIndex indexName=ACT_IDX_HI_CASE_INST_END, tableName=ACT_CMMN_HI_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'), ('18', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 17:42:57', 17, 'EXECUTED', '9:d782865087d6c0c3dc033ac20e783008', 'createIndex indexName=ACT_IDX_HI_PLAN_ITEM_INST_CASE, tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0438176530'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_databasechangeloglock`; +CREATE TABLE `act_cmmn_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `act_cmmn_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, b'0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_deployment`; +CREATE TABLE `act_cmmn_deployment` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_deployment_resource +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_deployment_resource`; +CREATE TABLE `act_cmmn_deployment_resource` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_BYTES_` longblob NULL, + `GENERATED_` bit(1) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_CMMN_RSRC_DPL`(`DEPLOYMENT_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_CMMN_RSRC_DPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_cmmn_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_deployment_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_hi_case_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_hi_case_inst`; +CREATE TABLE `act_cmmn_hi_case_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PARENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `START_TIME_` datetime(3) NULL DEFAULT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CALLBACK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LAST_REACTIVATION_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_REACTIVATION_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `BUSINESS_STATUS_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_CASE_INST_END`(`END_TIME_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_hi_case_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_hi_mil_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_hi_mil_inst`; +CREATE TABLE `act_cmmn_hi_mil_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `TIME_STAMP_` datetime(3) NULL DEFAULT NULL, + `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_hi_mil_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_hi_plan_item_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_hi_plan_item_inst`; +CREATE TABLE `act_cmmn_hi_plan_item_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `IS_STAGE_` bit(1) NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ITEM_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ITEM_DEFINITION_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_AVAILABLE_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_ENABLED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_DISABLED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_STARTED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_SUSPENDED_TIME_` datetime(3) NULL DEFAULT NULL, + `COMPLETED_TIME_` datetime(3) NULL DEFAULT NULL, + `OCCURRED_TIME_` datetime(3) NULL DEFAULT NULL, + `TERMINATED_TIME_` datetime(3) NULL DEFAULT NULL, + `EXIT_TIME_` datetime(3) NULL DEFAULT NULL, + `ENDED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + `ENTRY_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `EXIT_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SHOW_IN_OVERVIEW_` tinyint(1) NULL DEFAULT NULL, + `EXTRA_VALUE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DERIVED_CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LAST_UNAVAILABLE_TIME_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_PLAN_ITEM_INST_CASE`(`CASE_INST_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_hi_plan_item_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_case_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_ru_case_inst`; +CREATE TABLE `act_cmmn_ru_case_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PARENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `START_TIME_` datetime(3) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CALLBACK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + `LOCK_TIME_` datetime(3) NULL DEFAULT NULL, + `IS_COMPLETEABLE_` bit(1) NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LAST_REACTIVATION_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_REACTIVATION_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `BUSINESS_STATUS_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_CASE_INST_CASE_DEF`(`CASE_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_CASE_INST_PARENT`(`PARENT_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_CASE_INST_REF_ID_`(`REFERENCE_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_CASE_INST_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `act_cmmn_casedef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_ru_case_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_mil_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_ru_mil_inst`; +CREATE TABLE `act_cmmn_ru_mil_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `TIME_STAMP_` datetime(3) NULL DEFAULT NULL, + `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_MIL_CASE_DEF`(`CASE_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_MIL_CASE_INST`(`CASE_INST_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_MIL_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `act_cmmn_casedef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MIL_CASE_INST` FOREIGN KEY (`CASE_INST_ID_`) REFERENCES `act_cmmn_ru_case_inst` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_ru_mil_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_plan_item_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_ru_plan_item_inst`; +CREATE TABLE `act_cmmn_ru_plan_item_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `IS_STAGE_` bit(1) NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `STATE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '', + `ITEM_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ITEM_DEFINITION_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `IS_COMPLETEABLE_` bit(1) NULL DEFAULT NULL, + `IS_COUNT_ENABLED_` bit(1) NULL DEFAULT NULL, + `VAR_COUNT_` int NULL DEFAULT NULL, + `SENTRY_PART_INST_COUNT_` int NULL DEFAULT NULL, + `LAST_AVAILABLE_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_ENABLED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_DISABLED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_STARTED_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_SUSPENDED_TIME_` datetime(3) NULL DEFAULT NULL, + `COMPLETED_TIME_` datetime(3) NULL DEFAULT NULL, + `OCCURRED_TIME_` datetime(3) NULL DEFAULT NULL, + `TERMINATED_TIME_` datetime(3) NULL DEFAULT NULL, + `EXIT_TIME_` datetime(3) NULL DEFAULT NULL, + `ENDED_TIME_` datetime(3) NULL DEFAULT NULL, + `ENTRY_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `EXIT_CRITERION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `EXTRA_VALUE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DERIVED_CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LAST_UNAVAILABLE_TIME_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_PLAN_ITEM_CASE_DEF`(`CASE_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_PLAN_ITEM_CASE_INST`(`CASE_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_PLAN_ITEM_STAGE_INST`(`STAGE_INST_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_PLAN_ITEM_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `act_cmmn_casedef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_PLAN_ITEM_CASE_INST` FOREIGN KEY (`CASE_INST_ID_`) REFERENCES `act_cmmn_ru_case_inst` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_ru_plan_item_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_sentry_part_inst +-- ---------------------------- +DROP TABLE IF EXISTS `act_cmmn_ru_sentry_part_inst`; +CREATE TABLE `act_cmmn_ru_sentry_part_inst` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `REV_` int NOT NULL, + `CASE_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CASE_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PLAN_ITEM_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ON_PART_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `IF_PART_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TIME_STAMP_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_SENTRY_CASE_DEF`(`CASE_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_SENTRY_CASE_INST`(`CASE_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_SENTRY_PLAN_ITEM`(`PLAN_ITEM_INST_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_SENTRY_CASE_DEF` FOREIGN KEY (`CASE_DEF_ID_`) REFERENCES `act_cmmn_casedef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SENTRY_CASE_INST` FOREIGN KEY (`CASE_INST_ID_`) REFERENCES `act_cmmn_ru_case_inst` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SENTRY_PLAN_ITEM` FOREIGN KEY (`PLAN_ITEM_INST_ID_`) REFERENCES `act_cmmn_ru_plan_item_inst` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_cmmn_ru_sentry_part_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_co_content_item +-- ---------------------------- +DROP TABLE IF EXISTS `act_co_content_item`; +CREATE TABLE `act_co_content_item` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MIME_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TASK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTENT_STORE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTENT_STORE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `FIELD_` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTENT_AVAILABLE_` bit(1) NULL DEFAULT b'0', + `CREATED_` timestamp(6) NULL DEFAULT NULL, + `CREATED_BY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LAST_MODIFIED_` timestamp(6) NULL DEFAULT NULL, + `LAST_MODIFIED_BY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTENT_SIZE_` bigint NULL DEFAULT 0, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `idx_contitem_taskid`(`TASK_ID_` ASC) USING BTREE, + INDEX `idx_contitem_procid`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `idx_contitem_scope`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_co_content_item +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_co_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `act_co_databasechangelog`; +CREATE TABLE `act_co_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_co_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `act_co_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 03:07:58', 1, 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4628877941'), ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 03:07:58', 2, 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4628877941'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_co_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `act_co_databasechangeloglock`; +CREATE TABLE `act_co_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_co_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `act_co_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, b'0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `act_de_databasechangelog`; +CREATE TABLE `act_de_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_de_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `act_de_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 03:08:43', 1, 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', '', NULL, '3.6.3', NULL, NULL, '4628923400'), ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 03:08:43', 2, 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', '', NULL, '3.6.3', NULL, NULL, '4628923400'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `act_de_databasechangeloglock`; +CREATE TABLE `act_de_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_de_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `act_de_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, b'0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_model +-- ---------------------------- +DROP TABLE IF EXISTS `act_de_model`; +CREATE TABLE `act_de_model` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `name` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `model_key` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `description` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `model_comment` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `created` datetime(6) NULL DEFAULT NULL, + `created_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `last_updated` datetime(6) NULL DEFAULT NULL, + `last_updated_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `version` int NULL DEFAULT NULL, + `model_editor_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `model_editor_xml` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `thumbnail` longblob NULL, + `model_type` int NULL DEFAULT NULL, + `tenant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `xml` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_proc_mod_created`(`created_by` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_de_model +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_model_history +-- ---------------------------- +DROP TABLE IF EXISTS `act_de_model_history`; +CREATE TABLE `act_de_model_history` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `name` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `model_key` varchar(400) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `description` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `model_comment` varchar(4000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `created` datetime(6) NULL DEFAULT NULL, + `created_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `last_updated` datetime(6) NULL DEFAULT NULL, + `last_updated_by` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `removal_date` datetime(6) NULL DEFAULT NULL, + `version` int NULL DEFAULT NULL, + `model_editor_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `model_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `model_type` int NULL DEFAULT NULL, + `tenant_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `idx_proc_mod_history_proc`(`model_id` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_de_model_history +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_model_relation +-- ---------------------------- +DROP TABLE IF EXISTS `act_de_model_relation`; +CREATE TABLE `act_de_model_relation` ( + `id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `parent_model_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `model_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `relation_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`id`) USING BTREE, + INDEX `fk_relation_parent`(`parent_model_id` ASC) USING BTREE, + INDEX `fk_relation_child`(`model_id` ASC) USING BTREE, + CONSTRAINT `fk_relation_child` FOREIGN KEY (`model_id`) REFERENCES `act_de_model` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `fk_relation_parent` FOREIGN KEY (`parent_model_id`) REFERENCES `act_de_model` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_de_model_relation +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `act_dmn_databasechangelog`; +CREATE TABLE `act_dmn_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_dmn_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `act_dmn_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 1, 'EXECUTED', '9:5b36e70aee5a2e42f6e7a62ea5fa681b', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 2, 'EXECUTED', '9:fd13fa3f7af55d2b72f763fc261da30d', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 3, 'EXECUTED', '9:9f30e6a3557d4b4c713dbb2dcc141782', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 4, 'EXECUTED', '9:41085fbde807dba96104ee75a2fcc4cc', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('5', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 5, 'EXECUTED', '9:169d906b6503ad6907b7e5cd0d70d004', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_DMN_DEPLOYMENT; modifyDataType columnName=START_TIME_, tableName=ACT_DMN_HI_DECISION_EXECUTION; modifyDataType columnName=END_TIME_, tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 03:07:57', 6, 'EXECUTED', '9:f00f92f3ef1af3fc1604f0323630f9b1', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4628876950'), ('7', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2024-03-14 17:42:55', 7, 'EXECUTED', '9:d24d4c5f44083b4edf1231a7a682a2cd', 'dropIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE; renameTable newTableName=ACT_DMN_DECISION, oldTableName=ACT_DMN_DECISION_TABLE; createIndex indexName=ACT_IDX_DMN_DEC_UNIQ, tableName=ACT_DMN_DECISION', '', NULL, '4.24.0', NULL, NULL, '0438175582'), ('8', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2024-03-14 17:42:55', 8, 'EXECUTED', '9:3998ef0958b46fe9c19458183952d2a0', 'addColumn tableName=ACT_DMN_DECISION', '', NULL, '4.24.0', NULL, NULL, '0438175582'), ('9', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2024-03-14 17:42:55', 9, 'EXECUTED', '9:5c9dc65601456faa1aa12f8d3afe0e9e', 'createIndex indexName=ACT_IDX_DMN_INSTANCE_ID, tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '4.24.0', NULL, NULL, '0438175582'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `act_dmn_databasechangeloglock`; +CREATE TABLE `act_dmn_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_dmn_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `act_dmn_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, b'0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_decision +-- ---------------------------- +DROP TABLE IF EXISTS `act_dmn_decision`; +CREATE TABLE `act_dmn_decision` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `VERSION_` int NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DECISION_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_DMN_DEC_UNIQ`(`KEY_` ASC, `VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_dmn_decision +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `act_dmn_deployment`; +CREATE TABLE `act_dmn_deployment` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_dmn_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_deployment_resource +-- ---------------------------- +DROP TABLE IF EXISTS `act_dmn_deployment_resource`; +CREATE TABLE `act_dmn_deployment_resource` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_dmn_deployment_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_hi_decision_execution +-- ---------------------------- +DROP TABLE IF EXISTS `act_dmn_hi_decision_execution`; +CREATE TABLE `act_dmn_hi_decision_execution` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DECISION_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `START_TIME_` datetime(3) NULL DEFAULT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `INSTANCE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `ACTIVITY_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `FAILED_` bit(1) NULL DEFAULT b'0', + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `EXECUTION_JSON_` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_DMN_INSTANCE_ID`(`INSTANCE_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_dmn_hi_decision_execution +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_evt_log +-- ---------------------------- +DROP TABLE IF EXISTS `act_evt_log`; +CREATE TABLE `act_evt_log` ( + `LOG_NR_` bigint NOT NULL AUTO_INCREMENT, + `TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TIME_STAMP_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DATA_` longblob NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL, + `IS_PROCESSED_` tinyint NULL DEFAULT 0, + PRIMARY KEY (`LOG_NR_`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_evt_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `act_fo_databasechangelog`; +CREATE TABLE `act_fo_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_fo_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `act_fo_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 1, 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 2, 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 3, 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('4', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 4, 'EXECUTED', '8:2087829f22a4b2298dbf530681c74854', 'modifyDataType columnName=DEPLOY_TIME_, tableName=ACT_FO_FORM_DEPLOYMENT; modifyDataType columnName=SUBMITTED_DATE_, tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4628877478'), ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 03:07:57', 5, 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4628877478'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `act_fo_databasechangeloglock`; +CREATE TABLE `act_fo_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` bit(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_fo_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `act_fo_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, b'0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_definition +-- ---------------------------- +DROP TABLE IF EXISTS `act_fo_form_definition`; +CREATE TABLE `act_fo_form_definition` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `VERSION_` int NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_FORM_DEF_UNIQ`(`KEY_` ASC, `VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_fo_form_definition +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `act_fo_form_deployment`; +CREATE TABLE `act_fo_form_deployment` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_fo_form_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_instance +-- ---------------------------- +DROP TABLE IF EXISTS `act_fo_form_instance`; +CREATE TABLE `act_fo_form_instance` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FORM_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `TASK_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SUBMITTED_DATE_` datetime(3) NULL DEFAULT NULL, + `SUBMITTED_BY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `FORM_VALUES_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_fo_form_instance +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_resource +-- ---------------------------- +DROP TABLE IF EXISTS `act_fo_form_resource`; +CREATE TABLE `act_fo_form_resource` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of act_fo_form_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ge_bytearray +-- ---------------------------- +DROP TABLE IF EXISTS `act_ge_bytearray`; +CREATE TABLE `act_ge_bytearray` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BYTES_` longblob NULL, + `GENERATED_` tinyint NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_FK_BYTEARR_DEPL`(`DEPLOYMENT_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_BYTEARR_DEPL` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_re_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ge_bytearray +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ge_property +-- ---------------------------- +DROP TABLE IF EXISTS `act_ge_property`; +CREATE TABLE `act_ge_property` ( + `NAME_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `VALUE_` varchar(300) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REV_` int NULL DEFAULT NULL, + PRIMARY KEY (`NAME_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ge_property +-- ---------------------------- +BEGIN; +INSERT INTO `act_ge_property` (`NAME_`, `VALUE_`, `REV_`) VALUES ('batch.schema.version', '7.0.1.1', 1), ('cfg.execution-related-entities-count', 'true', 1), ('cfg.task-related-entities-count', 'true', 1), ('common.schema.version', '7.0.1.1', 1), ('entitylink.schema.version', '7.0.1.1', 1), ('eventsubscription.schema.version', '7.0.1.1', 1), ('identitylink.schema.version', '7.0.1.1', 1), ('job.schema.version', '7.0.1.1', 1), ('next.dbid', '1', 1), ('schema.history', 'upgrade(6.5.0.1->7.0.1.1)', 2), ('schema.version', '7.0.1.1', 2), ('task.schema.version', '7.0.1.1', 1), ('variable.schema.version', '7.0.1.1', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_actinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_actinst`; +CREATE TABLE `act_hi_actinst` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT 1, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `ACT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CALL_PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACT_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NOT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `TRANSACTION_ORDER_` int NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_START`(`START_TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_END`(`END_TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_PROCINST`(`PROC_INST_ID_` ASC, `ACT_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_ACT_INST_EXEC`(`EXECUTION_ID_` ASC, `ACT_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_actinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_attachment +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_attachment`; +CREATE TABLE `act_hi_attachment` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `URL_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CONTENT_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TIME_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_attachment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_comment +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_comment`; +CREATE TABLE `act_hi_comment` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TIME_` datetime(3) NOT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACTION_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `MESSAGE_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `FULL_MSG_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_comment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_detail +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_detail`; +CREATE TABLE `act_hi_detail` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACT_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `VAR_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REV_` int NULL DEFAULT NULL, + `TIME_` datetime(3) NOT NULL, + `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DOUBLE_` double NULL DEFAULT NULL, + `LONG_` bigint NULL DEFAULT NULL, + `TEXT_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TEXT2_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_PROC_INST`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_ACT_INST`(`ACT_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_TIME`(`TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_NAME`(`NAME_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_DETAIL_TASK_ID`(`TASK_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_detail +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_entitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_entitylink`; +CREATE TABLE `act_hi_entitylink` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `LINK_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REF_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REF_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REF_SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HIERARCHY_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ROOT_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ROOT_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PARENT_ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_ROOT_SCOPE`(`ROOT_SCOPE_ID_` ASC, `ROOT_SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_ENT_LNK_REF_SCOPE`(`REF_SCOPE_ID_` ASC, `REF_SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_entitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_identitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_identitylink`; +CREATE TABLE `act_hi_identitylink` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `GROUP_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_USER`(`USER_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_TASK`(`TASK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_PROCINST`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_IDENT_LNK_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_identitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_procinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_procinst`; +CREATE TABLE `act_hi_procinst` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT 1, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `START_TIME_` datetime(3) NOT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `START_ACT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `END_ACT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUPER_PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CALLBACK_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BUSINESS_STATUS_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `PROC_INST_ID_`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_PRO_INST_END`(`END_TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_PRO_I_BUSKEY`(`BUSINESS_KEY_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_PRO_SUPER_PROCINST`(`SUPER_PROCESS_INSTANCE_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_procinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_taskinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_taskinst`; +CREATE TABLE `act_hi_taskinst` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT 1, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_DEF_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PARENT_TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NOT NULL, + `CLAIM_TIME_` datetime(3) NULL DEFAULT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PRIORITY_` int NULL DEFAULT NULL, + `DUE_DATE_` datetime(3) NULL DEFAULT NULL, + `FORM_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `STATE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `IN_PROGRESS_TIME_` datetime(3) NULL DEFAULT NULL, + `IN_PROGRESS_STARTED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CLAIMED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUSPENDED_TIME_` datetime(3) NULL DEFAULT NULL, + `SUSPENDED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `COMPLETED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `IN_PROGRESS_DUE_DATE_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_TASK_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_TASK_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_TASK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_TASK_INST_PROCINST`(`PROC_INST_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_taskinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_tsk_log +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_tsk_log`; +CREATE TABLE `act_hi_tsk_log` ( + `ID_` bigint NOT NULL AUTO_INCREMENT, + `TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `TIME_STAMP_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DATA_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_tsk_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_varinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_hi_varinst`; +CREATE TABLE `act_hi_varinst` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT 1, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `VAR_TYPE_` varchar(100) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DOUBLE_` double NULL DEFAULT NULL, + `LONG_` bigint NULL DEFAULT NULL, + `TEXT_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TEXT2_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `LAST_UPDATED_TIME_` datetime(3) NULL DEFAULT NULL, + `META_INFO_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_NAME_TYPE`(`NAME_` ASC, `VAR_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_VAR_SCOPE_ID_TYPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_VAR_SUB_ID_TYPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_PROC_INST`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_TASK_ID`(`TASK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_HI_PROCVAR_EXE`(`EXECUTION_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_hi_varinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_bytearray +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_bytearray`; +CREATE TABLE `act_id_bytearray` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_bytearray +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_group +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_group`; +CREATE TABLE `act_id_group` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_group +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_info +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_info`; +CREATE TABLE `act_id_info` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `USER_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `VALUE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PASSWORD_` longblob NULL, + `PARENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_info +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_membership +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_membership`; +CREATE TABLE `act_id_membership` ( + `USER_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `GROUP_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + PRIMARY KEY (`USER_ID_`, `GROUP_ID_`) USING BTREE, + INDEX `ACT_FK_MEMB_GROUP`(`GROUP_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_MEMB_GROUP` FOREIGN KEY (`GROUP_ID_`) REFERENCES `act_id_group` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MEMB_USER` FOREIGN KEY (`USER_ID_`) REFERENCES `act_id_user` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_membership +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_priv +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_priv`; +CREATE TABLE `act_id_priv` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_UNIQ_PRIV_NAME`(`NAME_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_priv +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_priv_mapping +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_priv_mapping`; +CREATE TABLE `act_id_priv_mapping` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `PRIV_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `GROUP_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_FK_PRIV_MAPPING`(`PRIV_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_PRIV_USER`(`USER_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_PRIV_GROUP`(`GROUP_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_PRIV_MAPPING` FOREIGN KEY (`PRIV_ID_`) REFERENCES `act_id_priv` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_priv_mapping +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_property +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_property`; +CREATE TABLE `act_id_property` ( + `NAME_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `VALUE_` varchar(300) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REV_` int NULL DEFAULT NULL, + PRIMARY KEY (`NAME_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_property +-- ---------------------------- +BEGIN; +INSERT INTO `act_id_property` (`NAME_`, `VALUE_`, `REV_`) VALUES ('schema.version', '7.0.1.1', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_token +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_token`; +CREATE TABLE `act_id_token` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TOKEN_VALUE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TOKEN_DATE_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), + `IP_ADDRESS_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `USER_AGENT_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TOKEN_DATA_` varchar(2000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_token +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_user +-- ---------------------------- +DROP TABLE IF EXISTS `act_id_user`; +CREATE TABLE `act_id_user` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `FIRST_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `LAST_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DISPLAY_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EMAIL_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PWD_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PICTURE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_id_user +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_procdef_info +-- ---------------------------- +DROP TABLE IF EXISTS `act_procdef_info`; +CREATE TABLE `act_procdef_info` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `INFO_JSON_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_UNIQ_INFO_PROCDEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_INFO_PROCDEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_FK_INFO_JSON_BA`(`INFO_JSON_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_INFO_JSON_BA` FOREIGN KEY (`INFO_JSON_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_INFO_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_procdef_info +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_re_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `act_re_deployment`; +CREATE TABLE `act_re_deployment` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `DEPLOY_TIME_` timestamp(3) NULL DEFAULT NULL, + `DERIVED_FROM_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DERIVED_FROM_ROOT_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ENGINE_VERSION_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_re_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_re_model +-- ---------------------------- +DROP TABLE IF EXISTS `act_re_model`; +CREATE TABLE `act_re_model` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `LAST_UPDATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `VERSION_` int NULL DEFAULT NULL, + `META_INFO_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EDITOR_SOURCE_VALUE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EDITOR_SOURCE_EXTRA_VALUE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_FK_MODEL_SOURCE`(`EDITOR_SOURCE_VALUE_ID_` ASC) USING BTREE, + INDEX `ACT_FK_MODEL_SOURCE_EXTRA`(`EDITOR_SOURCE_EXTRA_VALUE_ID_` ASC) USING BTREE, + INDEX `ACT_FK_MODEL_DEPLOYMENT`(`DEPLOYMENT_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_MODEL_DEPLOYMENT` FOREIGN KEY (`DEPLOYMENT_ID_`) REFERENCES `act_re_deployment` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MODEL_SOURCE` FOREIGN KEY (`EDITOR_SOURCE_VALUE_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_MODEL_SOURCE_EXTRA` FOREIGN KEY (`EDITOR_SOURCE_EXTRA_VALUE_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_re_model +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_re_procdef +-- ---------------------------- +DROP TABLE IF EXISTS `act_re_procdef`; +CREATE TABLE `act_re_procdef` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `VERSION_` int NOT NULL, + `DEPLOYMENT_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DGRM_RESOURCE_NAME_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HAS_START_FORM_KEY_` tinyint NULL DEFAULT NULL, + `HAS_GRAPHICAL_NOTATION_` tinyint NULL DEFAULT NULL, + `SUSPENSION_STATE_` int NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `ENGINE_VERSION_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DERIVED_FROM_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DERIVED_FROM_ROOT_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DERIVED_VERSION_` int NOT NULL DEFAULT 0, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_UNIQ_PROCDEF`(`KEY_` ASC, `VERSION_` ASC, `DERIVED_VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_re_procdef +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_actinst +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_actinst`; +CREATE TABLE `act_ru_actinst` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT 1, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `ACT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CALL_PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACT_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NOT NULL, + `END_TIME_` datetime(3) NULL DEFAULT NULL, + `DURATION_` bigint NULL DEFAULT NULL, + `DELETE_REASON_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `TRANSACTION_ORDER_` int NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_START`(`START_TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_END`(`END_TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_PROC`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_PROC_ACT`(`PROC_INST_ID_` ASC, `ACT_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_EXEC`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_EXEC_ACT`(`EXECUTION_ID_` ASC, `ACT_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_ACTI_TASK`(`TASK_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_actinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_deadletter_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_deadletter_job`; +CREATE TABLE `act_ru_deadletter_job` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_DJOB_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_DJOB_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_DJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_FK_DEADLETTER_JOB_EXECUTION`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_` ASC) USING BTREE, + INDEX `ACT_FK_DEADLETTER_JOB_PROC_DEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_DEADLETTER_JOB_CORRELATION_ID`(`CORRELATION_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_deadletter_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_entitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_entitylink`; +CREATE TABLE `act_ru_entitylink` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `LINK_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REF_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REF_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REF_SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HIERARCHY_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ROOT_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ROOT_SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PARENT_ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_ROOT_SCOPE`(`ROOT_SCOPE_ID_` ASC, `ROOT_SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_ENT_LNK_REF_SCOPE`(`REF_SCOPE_ID_` ASC, `REF_SCOPE_TYPE_` ASC, `LINK_TYPE_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_entitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_event_subscr +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_event_subscr`; +CREATE TABLE `act_ru_event_subscr` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `EVENT_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `EVENT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACTIVITY_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CONFIGURATION_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATED_` timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_EVENT_SUBSCR_CONFIG_`(`CONFIGURATION_` ASC) USING BTREE, + INDEX `ACT_FK_EVENT_EXEC`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_EVENT_SUBSCR_SCOPEREF_`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_EVENT_EXEC` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_event_subscr +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_execution +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_execution`; +CREATE TABLE `act_ru_execution` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BUSINESS_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PARENT_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUPER_EXEC_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ROOT_PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ACT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `IS_ACTIVE_` tinyint NULL DEFAULT NULL, + `IS_CONCURRENT_` tinyint NULL DEFAULT NULL, + `IS_SCOPE_` tinyint NULL DEFAULT NULL, + `IS_EVENT_SCOPE_` tinyint NULL DEFAULT NULL, + `IS_MI_ROOT_` tinyint NULL DEFAULT NULL, + `SUSPENSION_STATE_` int NULL DEFAULT NULL, + `CACHED_ENT_STATE_` int NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `START_ACT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `START_TIME_` datetime(3) NULL DEFAULT NULL, + `START_USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `LOCK_TIME_` timestamp(3) NULL DEFAULT NULL, + `IS_COUNT_ENABLED_` tinyint NULL DEFAULT NULL, + `EVT_SUBSCR_COUNT_` int NULL DEFAULT NULL, + `TASK_COUNT_` int NULL DEFAULT NULL, + `JOB_COUNT_` int NULL DEFAULT NULL, + `TIMER_JOB_COUNT_` int NULL DEFAULT NULL, + `SUSP_JOB_COUNT_` int NULL DEFAULT NULL, + `DEADLETTER_JOB_COUNT_` int NULL DEFAULT NULL, + `VAR_COUNT_` int NULL DEFAULT NULL, + `ID_LINK_COUNT_` int NULL DEFAULT NULL, + `CALLBACK_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CALLBACK_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REFERENCE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `REFERENCE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXTERNAL_WORKER_JOB_COUNT_` int NULL DEFAULT NULL, + `BUSINESS_STATUS_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_EXEC_BUSKEY`(`BUSINESS_KEY_` ASC) USING BTREE, + INDEX `ACT_IDC_EXEC_ROOT`(`ROOT_PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_FK_EXE_PROCINST`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_FK_EXE_PARENT`(`PARENT_ID_` ASC) USING BTREE, + INDEX `ACT_FK_EXE_SUPER`(`SUPER_EXEC_` ASC) USING BTREE, + INDEX `ACT_FK_EXE_PROCDEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_EXEC_REF_ID_`(`REFERENCE_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_EXE_PARENT` FOREIGN KEY (`PARENT_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE CASCADE ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_EXE_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_EXE_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `ACT_FK_EXE_SUPER` FOREIGN KEY (`SUPER_EXEC_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE CASCADE ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_execution +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_external_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_external_job`; +CREATE TABLE `act_ru_external_job` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RETRIES_` int NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_EXTERNAL_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_EXTERNAL_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_EJOB_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_EJOB_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_EJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_EXTERNAL_JOB_CORRELATION_ID`(`CORRELATION_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_EXTERNAL_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_EXTERNAL_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_external_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_history_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_history_job`; +CREATE TABLE `act_ru_history_job` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RETRIES_` int NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ADV_HANDLER_CFG_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_history_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_identitylink +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_identitylink`; +CREATE TABLE `act_ru_identitylink` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `GROUP_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `USER_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_USER`(`USER_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_GROUP`(`GROUP_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_ATHRZ_PROCEDEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_FK_TSKASS_TASK`(`TASK_ID_` ASC) USING BTREE, + INDEX `ACT_FK_IDL_PROCINST`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_IDENT_LNK_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_ATHRZ_PROCEDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_IDL_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TSKASS_TASK` FOREIGN KEY (`TASK_ID_`) REFERENCES `act_ru_task` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_identitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_job`; +CREATE TABLE `act_ru_job` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RETRIES_` int NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_JOB_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_JOB_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_JOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_FK_JOB_EXECUTION`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_FK_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_` ASC) USING BTREE, + INDEX `ACT_FK_JOB_PROC_DEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_JOB_CORRELATION_ID`(`CORRELATION_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_suspended_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_suspended_job`; +CREATE TABLE `act_ru_suspended_job` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RETRIES_` int NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_SJOB_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_SJOB_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_SJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_FK_SUSPENDED_JOB_EXECUTION`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_` ASC) USING BTREE, + INDEX `ACT_FK_SUSPENDED_JOB_PROC_DEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_SUSPENDED_JOB_CORRELATION_ID`(`CORRELATION_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_suspended_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_task +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_task`; +CREATE TABLE `act_ru_task` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PARENT_TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DESCRIPTION_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_DEF_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ASSIGNEE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DELEGATION_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PRIORITY_` int NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `DUE_DATE_` datetime(3) NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUSPENSION_STATE_` int NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `FORM_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CLAIM_TIME_` datetime(3) NULL DEFAULT NULL, + `IS_COUNT_ENABLED_` tinyint NULL DEFAULT NULL, + `VAR_COUNT_` int NULL DEFAULT NULL, + `ID_LINK_COUNT_` int NULL DEFAULT NULL, + `SUB_TASK_COUNT_` int NULL DEFAULT NULL, + `PROPAGATED_STAGE_INST_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `STATE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `IN_PROGRESS_TIME_` datetime(3) NULL DEFAULT NULL, + `IN_PROGRESS_STARTED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CLAIMED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUSPENDED_TIME_` datetime(3) NULL DEFAULT NULL, + `SUSPENDED_BY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `IN_PROGRESS_DUE_DATE_` datetime(3) NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_TASK_CREATE`(`CREATE_TIME_` ASC) USING BTREE, + INDEX `ACT_IDX_TASK_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_TASK_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_TASK_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_FK_TASK_EXE`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_FK_TASK_PROCINST`(`PROC_INST_ID_` ASC) USING BTREE, + INDEX `ACT_FK_TASK_PROCDEF`(`PROC_DEF_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_TASK_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TASK_PROCDEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TASK_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_task +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_timer_job +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_timer_job`; +CREATE TABLE `act_ru_timer_job` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `LOCK_EXP_TIME_` timestamp(3) NULL DEFAULT NULL, + `LOCK_OWNER_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCLUSIVE_` tinyint(1) NULL DEFAULT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROCESS_INSTANCE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_DEF_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `ELEMENT_NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_DEFINITION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RETRIES_` int NULL DEFAULT NULL, + `EXCEPTION_STACK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `EXCEPTION_MSG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DUEDATE_` timestamp(3) NULL DEFAULT NULL, + `REPEAT_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `HANDLER_CFG_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CUSTOM_VALUES_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` timestamp(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + `CATEGORY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CORRELATION_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID`(`EXCEPTION_STACK_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID`(`CUSTOM_VALUES_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_TJOB_SCOPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_TJOB_SUB_SCOPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_TJOB_SCOPE_DEF`(`SCOPE_DEFINITION_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_FK_TIMER_JOB_EXECUTION`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_FK_TIMER_JOB_PROCESS_INSTANCE`(`PROCESS_INSTANCE_ID_` ASC) USING BTREE, + INDEX `ACT_FK_TIMER_JOB_PROC_DEF`(`PROC_DEF_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_CORRELATION_ID`(`CORRELATION_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_TIMER_JOB_DUEDATE`(`DUEDATE_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_TIMER_JOB_CUSTOM_VALUES` FOREIGN KEY (`CUSTOM_VALUES_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_EXCEPTION` FOREIGN KEY (`EXCEPTION_STACK_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_EXECUTION` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_PROC_DEF` FOREIGN KEY (`PROC_DEF_ID_`) REFERENCES `act_re_procdef` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_TIMER_JOB_PROCESS_INSTANCE` FOREIGN KEY (`PROCESS_INSTANCE_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_timer_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_variable +-- ---------------------------- +DROP TABLE IF EXISTS `act_ru_variable`; +CREATE TABLE `act_ru_variable` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `EXECUTION_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `PROC_INST_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TASK_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BYTEARRAY_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `DOUBLE_` double NULL DEFAULT NULL, + `LONG_` bigint NULL DEFAULT NULL, + `TEXT_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TEXT2_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `META_INFO_` varchar(4000) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `ACT_IDX_RU_VAR_SCOPE_ID_TYPE`(`SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_IDX_RU_VAR_SUB_ID_TYPE`(`SUB_SCOPE_ID_` ASC, `SCOPE_TYPE_` ASC) USING BTREE, + INDEX `ACT_FK_VAR_BYTEARRAY`(`BYTEARRAY_ID_` ASC) USING BTREE, + INDEX `ACT_IDX_VARIABLE_TASK_ID`(`TASK_ID_` ASC) USING BTREE, + INDEX `ACT_FK_VAR_EXE`(`EXECUTION_ID_` ASC) USING BTREE, + INDEX `ACT_FK_VAR_PROCINST`(`PROC_INST_ID_` ASC) USING BTREE, + CONSTRAINT `ACT_FK_VAR_BYTEARRAY` FOREIGN KEY (`BYTEARRAY_ID_`) REFERENCES `act_ge_bytearray` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_VAR_EXE` FOREIGN KEY (`EXECUTION_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `ACT_FK_VAR_PROCINST` FOREIGN KEY (`PROC_INST_ID_`) REFERENCES `act_ru_execution` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of act_ru_variable +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_channel_definition +-- ---------------------------- +DROP TABLE IF EXISTS `flw_channel_definition`; +CREATE TABLE `flw_channel_definition` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `VERSION_` int NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TYPE_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `IMPLEMENTATION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_CHANNEL_DEF_UNIQ`(`KEY_` ASC, `VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of flw_channel_definition +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ev_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ev_databasechangelog`; +CREATE TABLE `flw_ev_databasechangelog` ( + `ID` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `AUTHOR` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `FILENAME` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `DATEEXECUTED` datetime NOT NULL, + `ORDEREXECUTED` int NOT NULL, + `EXECTYPE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `MD5SUM` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `COMMENTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TAG` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LIQUIBASE` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CONTEXTS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `LABELS` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of flw_ev_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO `flw_ev_databasechangelog` (`ID`, `AUTHOR`, `FILENAME`, `DATEEXECUTED`, `ORDEREXECUTED`, `EXECTYPE`, `MD5SUM`, `DESCRIPTION`, `COMMENTS`, `TAG`, `LIQUIBASE`, `CONTEXTS`, `LABELS`, `DEPLOYMENT_ID`) VALUES ('1', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-03-14 17:42:55', 1, 'EXECUTED', '9:63268f536c469325acef35970312551b', 'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', '', NULL, '4.24.0', NULL, NULL, '0438174846'), ('2', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-03-14 17:42:55', 2, 'EXECUTED', '9:dcb58b7dfd6dbda66939123a96985536', 'addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION', '', NULL, '4.24.0', NULL, NULL, '0438174846'), ('3', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-03-14 17:42:55', 3, 'EXECUTED', '9:d0c05678d57af23ad93699991e3bf4f6', 'customChange', '', NULL, '4.24.0', NULL, NULL, '0438174846'); +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ev_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ev_databasechangeloglock`; +CREATE TABLE `flw_ev_databasechangeloglock` ( + `ID` int NOT NULL, + `LOCKED` tinyint(1) NOT NULL, + `LOCKGRANTED` datetime NULL DEFAULT NULL, + `LOCKEDBY` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of flw_ev_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO `flw_ev_databasechangeloglock` (`ID`, `LOCKED`, `LOCKGRANTED`, `LOCKEDBY`) VALUES (1, 0, NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for flw_event_definition +-- ---------------------------- +DROP TABLE IF EXISTS `flw_event_definition`; +CREATE TABLE `flw_event_definition` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `VERSION_` int NULL DEFAULT NULL, + `KEY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DESCRIPTION_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE, + UNIQUE INDEX `ACT_IDX_EVENT_DEF_UNIQ`(`KEY_` ASC, `VERSION_` ASC, `TENANT_ID_` ASC) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of flw_event_definition +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_event_deployment +-- ---------------------------- +DROP TABLE IF EXISTS `flw_event_deployment`; +CREATE TABLE `flw_event_deployment` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `CATEGORY_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOY_TIME_` datetime(3) NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `PARENT_DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of flw_event_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_event_resource +-- ---------------------------- +DROP TABLE IF EXISTS `flw_event_resource`; +CREATE TABLE `flw_event_resource` ( + `ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, + `NAME_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `DEPLOYMENT_ID_` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, + `RESOURCE_BYTES_` longblob NULL, + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; + +-- ---------------------------- +-- Records of flw_event_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ru_batch +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ru_batch`; +CREATE TABLE `flw_ru_batch` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `SEARCH_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SEARCH_KEY2_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NOT NULL, + `COMPLETE_TIME_` datetime(3) NULL DEFAULT NULL, + `STATUS_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `BATCH_DOC_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of flw_ru_batch +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ru_batch_part +-- ---------------------------- +DROP TABLE IF EXISTS `flw_ru_batch_part`; +CREATE TABLE `flw_ru_batch_part` ( + `ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `REV_` int NULL DEFAULT NULL, + `BATCH_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NOT NULL, + `SCOPE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SUB_SCOPE_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SCOPE_TYPE_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SEARCH_KEY_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `SEARCH_KEY2_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `CREATE_TIME_` datetime(3) NOT NULL, + `COMPLETE_TIME_` datetime(3) NULL DEFAULT NULL, + `STATUS_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `RESULT_DOC_ID_` varchar(64) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT NULL, + `TENANT_ID_` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_bin NULL DEFAULT '', + PRIMARY KEY (`ID_`) USING BTREE, + INDEX `FLW_IDX_BATCH_PART`(`BATCH_ID_` ASC) USING BTREE, + CONSTRAINT `FLW_FK_BATCH_PART_PARENT` FOREIGN KEY (`BATCH_ID_`) REFERENCES `flw_ru_batch` (`ID_`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB CHARACTER SET = utf8mb3 COLLATE = utf8mb3_bin; + +-- ---------------------------- +-- Records of flw_ru_batch_part +-- ---------------------------- +BEGIN; +COMMIT; + +SET FOREIGN_KEY_CHECKS = 1; diff --git a/doc/sql/flowable/flowable.oracle.all.create.sql b/doc/sql/flowable/flowable.oracle.all.create.sql new file mode 100644 index 0000000..90ada5e --- /dev/null +++ b/doc/sql/flowable/flowable.oracle.all.create.sql @@ -0,0 +1,6972 @@ +/* + Navicat Premium Data Transfer + + Source Server : oracle_localhost + Source Server Type : Oracle + Source Server Version : 110200 + Source Host : 127.0.0.1:1521 + Source Schema : BLADEX + + Target Server Type : Oracle + Target Server Version : 110200 + File Encoding : 65001 + + Date: 15/03/2024 01:16:45 +*/ + + +-- ---------------------------- +-- Table structure for ACT_APP_APPDEF +-- ---------------------------- +-- DROP TABLE "ACT_APP_APPDEF"; +CREATE TABLE "ACT_APP_APPDEF" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "KEY_" VARCHAR2(255 BYTE) NOT NULL, + "VERSION_" NUMBER NOT NULL, + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_NAME_" VARCHAR2(4000 BYTE), + "DESCRIPTION_" VARCHAR2(4000 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_APP_APPDEF +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_APP_DATABASECHANGELOG"; +CREATE TABLE "ACT_APP_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_APP_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_APP_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:02.893666', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:959783069c0c7ce80320a0617aa48969', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', NULL, NULL, '3.5.3', NULL, NULL, '9500486764'); +INSERT INTO "ACT_APP_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:03.090284', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:c05b79a3b00e95136533085718361208', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', NULL, NULL, '3.5.3', NULL, NULL, '9500486764'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_APP_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_APP_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_APP_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_APP_DEPLOYMENT"; +CREATE TABLE "ACT_APP_DEPLOYMENT" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "KEY_" VARCHAR2(255 BYTE), + "DEPLOY_TIME_" TIMESTAMP(6), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_APP_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_APP_DEPLOYMENT_RESOURCE"; +CREATE TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_BYTES_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_CASEDEF +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_CASEDEF"; +CREATE TABLE "ACT_CMMN_CASEDEF" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "KEY_" VARCHAR2(255 BYTE) NOT NULL, + "VERSION_" NUMBER NOT NULL, + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_NAME_" VARCHAR2(4000 BYTE), + "DESCRIPTION_" VARCHAR2(4000 BYTE), + "HAS_GRAPHICAL_NOTATION_" NUMBER(1,0), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '', + "DGRM_RESOURCE_NAME_" VARCHAR2(4000 BYTE), + "HAS_START_FORM_KEY_" NUMBER(1,0) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_CASEDEF +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DATABASECHANGELOG"; +CREATE TABLE "ACT_CMMN_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('8', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.302026', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '7', 'EXECUTED', '9:eda5e43816221f2d8554bfcc90f1c37e', 'addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('9', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.333359', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '8', 'EXECUTED', '9:c34685611779075a73caf8c380f078ea', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('10', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.407269', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '9', 'EXECUTED', '9:368e9472ad2348206205170d6c52d58e', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_CASE_INST_REF_ID_, tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE...', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('11', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.459647', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '10', 'EXECUTED', '9:e54b50ceb2bcd5355ae4dfb56d9ff3ad', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('12', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.477268', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '11', 'EXECUTED', '9:f53f262768d04e74529f43fcd93429b0', 'addColumn tableName=ACT_CMMN_RU_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('13', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.505746', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '12', 'EXECUTED', '9:64e7eafbe97997094654e83caea99895', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('14', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.556427', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '13', 'EXECUTED', '9:ab7d934abde497eac034701542e0a281', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('16', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.594593', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '14', 'EXECUTED', '9:03928d422e510959770e7a9daa5a993f', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('17', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.612429', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '15', 'EXECUTED', '9:f30304cf001d6eac78c793ea88cd5781', 'createIndex indexName=ACT_IDX_HI_CASE_INST_END, tableName=ACT_CMMN_HI_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('18', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.649692', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '16', 'EXECUTED', '9:d782865087d6c0c3dc033ac20e783008', 'createIndex indexName=ACT_IDX_HI_PLAN_ITEM_INST_CASE, tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:05.572529', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:d0cc0aaadf0e4ef70c5b412cd05fadc4', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.062159', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:8095a5a8a222a100c2d0310cacbda5e7', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.474729', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '9:f031b4f0ae67bc5a640736b379049b12', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.633601', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '9:c484ecfb08719feccac2f80fc962dda9', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.752638', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '5', 'EXECUTED', '9:7343ab247d959e5add9278b5386de833', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:07.919259', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '6', 'EXECUTED', '9:d73200db684b6cdb748cc03570d5d2e9', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_CMMN_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DEPLOYMENT"; +CREATE TABLE "ACT_CMMN_DEPLOYMENT" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "KEY_" VARCHAR2(255 BYTE), + "DEPLOY_TIME_" TIMESTAMP(6), + "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE"; +CREATE TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_BYTES_" BLOB, + "GENERATED_" NUMBER(1,0) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_CASE_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_HI_CASE_INST"; +CREATE TABLE "ACT_CMMN_HI_CASE_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "BUSINESS_KEY_" VARCHAR2(255 BYTE), + "NAME_" VARCHAR2(255 BYTE), + "PARENT_ID_" VARCHAR2(255 BYTE), + "CASE_DEF_ID_" VARCHAR2(255 BYTE), + "STATE_" VARCHAR2(255 BYTE), + "START_TIME_" TIMESTAMP(6), + "END_TIME_" TIMESTAMP(6), + "START_USER_ID_" VARCHAR2(255 BYTE), + "CALLBACK_ID_" VARCHAR2(255 BYTE), + "CALLBACK_TYPE_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '', + "REFERENCE_ID_" VARCHAR2(255 BYTE), + "REFERENCE_TYPE_" VARCHAR2(255 BYTE), + "LAST_REACTIVATION_TIME_" TIMESTAMP(3), + "LAST_REACTIVATION_USER_ID_" VARCHAR2(255 BYTE), + "BUSINESS_STATUS_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_HI_CASE_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_MIL_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_HI_MIL_INST"; +CREATE TABLE "ACT_CMMN_HI_MIL_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR2(255 BYTE) NOT NULL, + "TIME_STAMP_" TIMESTAMP(6) NOT NULL, + "CASE_INST_ID_" VARCHAR2(255 BYTE) NOT NULL, + "CASE_DEF_ID_" VARCHAR2(255 BYTE) NOT NULL, + "ELEMENT_ID_" VARCHAR2(255 BYTE) NOT NULL, + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_HI_MIL_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_HI_PLAN_ITEM_INST"; +CREATE TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "STATE_" VARCHAR2(255 BYTE), + "CASE_DEF_ID_" VARCHAR2(255 BYTE), + "CASE_INST_ID_" VARCHAR2(255 BYTE), + "STAGE_INST_ID_" VARCHAR2(255 BYTE), + "IS_STAGE_" NUMBER(1,0), + "ELEMENT_ID_" VARCHAR2(255 BYTE), + "ITEM_DEFINITION_ID_" VARCHAR2(255 BYTE), + "ITEM_DEFINITION_TYPE_" VARCHAR2(255 BYTE), + "CREATE_TIME_" TIMESTAMP(6), + "LAST_AVAILABLE_TIME_" TIMESTAMP(6), + "LAST_ENABLED_TIME_" TIMESTAMP(6), + "LAST_DISABLED_TIME_" TIMESTAMP(6), + "LAST_STARTED_TIME_" TIMESTAMP(6), + "LAST_SUSPENDED_TIME_" TIMESTAMP(6), + "COMPLETED_TIME_" TIMESTAMP(6), + "OCCURRED_TIME_" TIMESTAMP(6), + "TERMINATED_TIME_" TIMESTAMP(6), + "EXIT_TIME_" TIMESTAMP(6), + "ENDED_TIME_" TIMESTAMP(6), + "LAST_UPDATED_TIME_" TIMESTAMP(6), + "START_USER_ID_" VARCHAR2(255 BYTE), + "REFERENCE_ID_" VARCHAR2(255 BYTE), + "REFERENCE_TYPE_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '', + "ENTRY_CRITERION_ID_" VARCHAR2(255 BYTE), + "EXIT_CRITERION_ID_" VARCHAR2(255 BYTE), + "SHOW_IN_OVERVIEW_" NUMBER(1,0), + "EXTRA_VALUE_" VARCHAR2(255 BYTE), + "DERIVED_CASE_DEF_ID_" VARCHAR2(255 BYTE), + "LAST_UNAVAILABLE_TIME_" TIMESTAMP(3) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_CASE_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_CASE_INST"; +CREATE TABLE "ACT_CMMN_RU_CASE_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "BUSINESS_KEY_" VARCHAR2(255 BYTE), + "NAME_" VARCHAR2(255 BYTE), + "PARENT_ID_" VARCHAR2(255 BYTE), + "CASE_DEF_ID_" VARCHAR2(255 BYTE), + "STATE_" VARCHAR2(255 BYTE), + "START_TIME_" TIMESTAMP(6), + "START_USER_ID_" VARCHAR2(255 BYTE), + "CALLBACK_ID_" VARCHAR2(255 BYTE), + "CALLBACK_TYPE_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '', + "LOCK_TIME_" TIMESTAMP(6), + "IS_COMPLETEABLE_" NUMBER(1,0), + "REFERENCE_ID_" VARCHAR2(255 BYTE), + "REFERENCE_TYPE_" VARCHAR2(255 BYTE), + "LOCK_OWNER_" VARCHAR2(255 BYTE), + "LAST_REACTIVATION_TIME_" TIMESTAMP(3), + "LAST_REACTIVATION_USER_ID_" VARCHAR2(255 BYTE), + "BUSINESS_STATUS_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_CASE_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_MIL_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_MIL_INST"; +CREATE TABLE "ACT_CMMN_RU_MIL_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE) NOT NULL, + "TIME_STAMP_" TIMESTAMP(6) NOT NULL, + "CASE_INST_ID_" VARCHAR2(255 BYTE) NOT NULL, + "CASE_DEF_ID_" VARCHAR2(255 BYTE) NOT NULL, + "ELEMENT_ID_" VARCHAR2(255 BYTE) NOT NULL, + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_MIL_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_PLAN_ITEM_INST"; +CREATE TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "CASE_DEF_ID_" VARCHAR2(255 BYTE), + "CASE_INST_ID_" VARCHAR2(255 BYTE), + "STAGE_INST_ID_" VARCHAR2(255 BYTE), + "IS_STAGE_" NUMBER(1,0), + "ELEMENT_ID_" VARCHAR2(255 BYTE), + "NAME_" VARCHAR2(255 BYTE), + "STATE_" VARCHAR2(255 BYTE), + "CREATE_TIME_" TIMESTAMP(6), + "START_USER_ID_" VARCHAR2(255 BYTE), + "REFERENCE_ID_" VARCHAR2(255 BYTE), + "REFERENCE_TYPE_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE) DEFAULT '', + "ITEM_DEFINITION_ID_" VARCHAR2(255 BYTE), + "ITEM_DEFINITION_TYPE_" VARCHAR2(255 BYTE), + "IS_COMPLETEABLE_" NUMBER(1,0), + "IS_COUNT_ENABLED_" NUMBER(1,0), + "VAR_COUNT_" NUMBER, + "SENTRY_PART_INST_COUNT_" NUMBER, + "LAST_AVAILABLE_TIME_" TIMESTAMP(3), + "LAST_ENABLED_TIME_" TIMESTAMP(3), + "LAST_DISABLED_TIME_" TIMESTAMP(3), + "LAST_STARTED_TIME_" TIMESTAMP(3), + "LAST_SUSPENDED_TIME_" TIMESTAMP(3), + "COMPLETED_TIME_" TIMESTAMP(3), + "OCCURRED_TIME_" TIMESTAMP(3), + "TERMINATED_TIME_" TIMESTAMP(3), + "EXIT_TIME_" TIMESTAMP(3), + "ENDED_TIME_" TIMESTAMP(3), + "ENTRY_CRITERION_ID_" VARCHAR2(255 BYTE), + "EXIT_CRITERION_ID_" VARCHAR2(255 BYTE), + "EXTRA_VALUE_" VARCHAR2(255 BYTE), + "DERIVED_CASE_DEF_ID_" VARCHAR2(255 BYTE), + "LAST_UNAVAILABLE_TIME_" TIMESTAMP(3) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_SENTRY_PART_INST"; +CREATE TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "REV_" NUMBER NOT NULL, + "CASE_DEF_ID_" VARCHAR2(255 BYTE), + "CASE_INST_ID_" VARCHAR2(255 BYTE), + "PLAN_ITEM_INST_ID_" VARCHAR2(255 BYTE), + "ON_PART_ID_" VARCHAR2(255 BYTE), + "IF_PART_ID_" VARCHAR2(255 BYTE), + "TIME_STAMP_" TIMESTAMP(6) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CO_CONTENT_ITEM +-- ---------------------------- +-- DROP TABLE "ACT_CO_CONTENT_ITEM"; +CREATE TABLE "ACT_CO_CONTENT_ITEM" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE) NOT NULL, + "MIME_TYPE_" VARCHAR2(255 BYTE), + "TASK_ID_" VARCHAR2(255 BYTE), + "PROC_INST_ID_" VARCHAR2(255 BYTE), + "CONTENT_STORE_ID_" VARCHAR2(255 BYTE), + "CONTENT_STORE_NAME_" VARCHAR2(255 BYTE), + "FIELD_" VARCHAR2(400 BYTE), + "CONTENT_AVAILABLE_" NUMBER(1,0) DEFAULT 0, + "CREATED_" TIMESTAMP(6), + "CREATED_BY_" VARCHAR2(255 BYTE), + "LAST_MODIFIED_" TIMESTAMP(6), + "LAST_MODIFIED_BY_" VARCHAR2(255 BYTE), + "CONTENT_SIZE_" NUMBER(38,0) DEFAULT 0, + "TENANT_ID_" VARCHAR2(255 BYTE), + "SCOPE_ID_" VARCHAR2(255 BYTE), + "SCOPE_TYPE_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CO_CONTENT_ITEM +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CO_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_CO_DATABASECHANGELOG"; +CREATE TABLE "ACT_CO_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CO_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_CO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:15.412866', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', NULL, NULL, '3.5.3', NULL, NULL, '9500492548'); +INSERT INTO "ACT_CO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:59.614707', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', NULL, NULL, '3.5.3', NULL, NULL, '9500492548'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_CO_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_CO_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_CO_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_DE_DATABASECHANGELOG"; +CREATE TABLE "ACT_DE_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DE_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_DE_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 02:21:28.919681', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', NULL, NULL, '3.6.3', NULL, NULL, '4626087832'); +INSERT INTO "ACT_DE_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 02:21:29.414387', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', NULL, NULL, '3.6.3', NULL, NULL, '4626087832'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_DE_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_DE_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_DE_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL +-- ---------------------------- +-- DROP TABLE "ACT_DE_MODEL"; +CREATE TABLE "ACT_DE_MODEL" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "NAME" VARCHAR2(400 BYTE) NOT NULL, + "MODEL_KEY" VARCHAR2(400 BYTE) NOT NULL, + "DESCRIPTION" VARCHAR2(4000 BYTE), + "MODEL_COMMENT" VARCHAR2(4000 BYTE), + "CREATED" TIMESTAMP(6), + "CREATED_BY" VARCHAR2(255 BYTE), + "LAST_UPDATED" TIMESTAMP(6), + "LAST_UPDATED_BY" VARCHAR2(255 BYTE), + "VERSION" NUMBER, + "MODEL_EDITOR_JSON" CLOB, + "MODEL_EDITOR_XML" CLOB, + "THUMBNAIL" BLOB, + "MODEL_TYPE" NUMBER, + "TENANT_ID" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DE_MODEL +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL_HISTORY +-- ---------------------------- +-- DROP TABLE "ACT_DE_MODEL_HISTORY"; +CREATE TABLE "ACT_DE_MODEL_HISTORY" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "NAME" VARCHAR2(400 BYTE) NOT NULL, + "MODEL_KEY" VARCHAR2(400 BYTE) NOT NULL, + "DESCRIPTION" VARCHAR2(4000 BYTE), + "MODEL_COMMENT" VARCHAR2(4000 BYTE), + "CREATED" TIMESTAMP(6), + "CREATED_BY" VARCHAR2(255 BYTE), + "LAST_UPDATED" TIMESTAMP(6), + "LAST_UPDATED_BY" VARCHAR2(255 BYTE), + "REMOVAL_DATE" TIMESTAMP(6), + "VERSION" NUMBER, + "MODEL_EDITOR_JSON" CLOB, + "MODEL_ID" VARCHAR2(255 BYTE) NOT NULL, + "MODEL_TYPE" NUMBER, + "TENANT_ID" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DE_MODEL_HISTORY +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL_RELATION +-- ---------------------------- +-- DROP TABLE "ACT_DE_MODEL_RELATION"; +CREATE TABLE "ACT_DE_MODEL_RELATION" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "PARENT_MODEL_ID" VARCHAR2(255 BYTE), + "MODEL_ID" VARCHAR2(255 BYTE), + "RELATION_TYPE" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DE_MODEL_RELATION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DATABASECHANGELOG"; +CREATE TABLE "ACT_DMN_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('7', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:32.336251', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '6', 'EXECUTED', '9:d24d4c5f44083b4edf1231a7a682a2cd', 'dropIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE; renameTable newTableName=ACT_DMN_DECISION, oldTableName=ACT_DMN_DECISION_TABLE; createIndex indexName=ACT_IDX_DMN_DEC_UNIQ, tableName=ACT_DMN_DECISION', NULL, NULL, '4.24.0', NULL, NULL, '0436532249'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('8', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:32.357741', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '7', 'EXECUTED', '9:3998ef0958b46fe9c19458183952d2a0', 'addColumn tableName=ACT_DMN_DECISION', NULL, NULL, '4.24.0', NULL, NULL, '0436532249'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('9', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:32.370931', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '8', 'EXECUTED', '9:5c9dc65601456faa1aa12f8d3afe0e9e', 'createIndex indexName=ACT_IDX_DMN_INSTANCE_ID, tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '4.24.0', NULL, NULL, '0436532249'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.445285', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:5b36e70aee5a2e42f6e7a62ea5fa681b', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.548377', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:fd13fa3f7af55d2b72f763fc261da30d', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.617030', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '9:9f30e6a3557d4b4c713dbb2dcc141782', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.086703', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '9:41085fbde807dba96104ee75a2fcc4cc', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.165065', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '5', 'EXECUTED', '9:f00f92f3ef1af3fc1604f0323630f9b1', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_DMN_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DECISION +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DECISION"; +CREATE TABLE "ACT_DMN_DECISION" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "VERSION_" NUMBER, + "KEY_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_NAME_" VARCHAR2(255 BYTE), + "DESCRIPTION_" VARCHAR2(255 BYTE), + "DECISION_TYPE_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DMN_DECISION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DEPLOYMENT"; +CREATE TABLE "ACT_DMN_DEPLOYMENT" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOY_TIME_" TIMESTAMP(6), + "TENANT_ID_" VARCHAR2(255 BYTE), + "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DMN_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DEPLOYMENT_RESOURCE"; +CREATE TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_BYTES_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +-- DROP TABLE "ACT_DMN_HI_DECISION_EXECUTION"; +CREATE TABLE "ACT_DMN_HI_DECISION_EXECUTION" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "DECISION_DEFINITION_ID_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "START_TIME_" TIMESTAMP(6), + "END_TIME_" TIMESTAMP(6), + "INSTANCE_ID_" VARCHAR2(255 BYTE), + "EXECUTION_ID_" VARCHAR2(255 BYTE), + "ACTIVITY_ID_" VARCHAR2(255 BYTE), + "FAILED_" NUMBER(1,0) DEFAULT 0, + "TENANT_ID_" VARCHAR2(255 BYTE), + "EXECUTION_JSON_" CLOB, + "SCOPE_TYPE_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_EVT_LOG +-- ---------------------------- +-- DROP TABLE "ACT_EVT_LOG"; +CREATE TABLE "ACT_EVT_LOG" ( + "LOG_NR_" NUMBER(19,0) NOT NULL, + "TYPE_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "EXECUTION_ID_" NVARCHAR2(64), + "TASK_ID_" NVARCHAR2(64), + "TIME_STAMP_" TIMESTAMP(6) NOT NULL, + "USER_ID_" NVARCHAR2(255), + "DATA_" BLOB, + "LOCK_OWNER_" NVARCHAR2(255), + "LOCK_TIME_" TIMESTAMP(6), + "IS_PROCESSED_" NUMBER(3,0) DEFAULT 0 +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_EVT_LOG +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_FO_DATABASECHANGELOG"; +CREATE TABLE "ACT_FO_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_FO_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.875144', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:11.176570', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:13.571387', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:13.675232', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_FO_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_FO_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_FO_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_DEFINITION +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_DEFINITION"; +CREATE TABLE "ACT_FO_FORM_DEFINITION" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "VERSION_" NUMBER, + "KEY_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_NAME_" VARCHAR2(255 BYTE), + "DESCRIPTION_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_FO_FORM_DEFINITION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_DEPLOYMENT"; +CREATE TABLE "ACT_FO_FORM_DEPLOYMENT" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOY_TIME_" TIMESTAMP(6), + "TENANT_ID_" VARCHAR2(255 BYTE), + "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_INSTANCE +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_INSTANCE"; +CREATE TABLE "ACT_FO_FORM_INSTANCE" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "FORM_DEFINITION_ID_" VARCHAR2(255 BYTE) NOT NULL, + "TASK_ID_" VARCHAR2(255 BYTE), + "PROC_INST_ID_" VARCHAR2(255 BYTE), + "PROC_DEF_ID_" VARCHAR2(255 BYTE), + "SUBMITTED_DATE_" TIMESTAMP(6), + "SUBMITTED_BY_" VARCHAR2(255 BYTE), + "FORM_VALUES_ID_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE), + "SCOPE_ID_" VARCHAR2(255 BYTE), + "SCOPE_TYPE_" VARCHAR2(255 BYTE), + "SCOPE_DEFINITION_ID_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_FO_FORM_INSTANCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_RESOURCE"; +CREATE TABLE "ACT_FO_FORM_RESOURCE" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_BYTES_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_FO_FORM_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_GE_BYTEARRAY +-- ---------------------------- +-- DROP TABLE "ACT_GE_BYTEARRAY"; +CREATE TABLE "ACT_GE_BYTEARRAY" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "NAME_" NVARCHAR2(255), + "DEPLOYMENT_ID_" NVARCHAR2(64), + "BYTES_" BLOB, + "GENERATED_" NUMBER(1,0) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_GE_BYTEARRAY +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_GE_PROPERTY +-- ---------------------------- +-- DROP TABLE "ACT_GE_PROPERTY"; +CREATE TABLE "ACT_GE_PROPERTY" ( + "NAME_" NVARCHAR2(64) NOT NULL, + "VALUE_" NVARCHAR2(300), + "REV_" NUMBER +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_GE_PROPERTY +-- ---------------------------- +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('batch.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('common.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('next.dbid', '1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('entitylink.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('identitylink.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('job.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('task.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('variable.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('eventsubscription.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('schema.version', '7.0.1.1', '2'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('schema.history', 'upgrade(6.5.0.1->7.0.1.1)', '2'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('cfg.execution-related-entities-count', 'true', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('cfg.task-related-entities-count', 'true', '1'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_ACTINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_ACTINST"; +CREATE TABLE "ACT_HI_ACTINST" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL, + "PROC_INST_ID_" NVARCHAR2(64) NOT NULL, + "EXECUTION_ID_" NVARCHAR2(64) NOT NULL, + "ACT_ID_" NVARCHAR2(255) NOT NULL, + "TASK_ID_" NVARCHAR2(64), + "CALL_PROC_INST_ID_" NVARCHAR2(64), + "ACT_NAME_" NVARCHAR2(255), + "ACT_TYPE_" NVARCHAR2(255) NOT NULL, + "ASSIGNEE_" NVARCHAR2(255), + "START_TIME_" TIMESTAMP(6) NOT NULL, + "END_TIME_" TIMESTAMP(6), + "DURATION_" NUMBER(19,0), + "DELETE_REASON_" NVARCHAR2(2000), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "TRANSACTION_ORDER_" NUMBER +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_ACTINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_ATTACHMENT +-- ---------------------------- +-- DROP TABLE "ACT_HI_ATTACHMENT"; +CREATE TABLE "ACT_HI_ATTACHMENT" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "USER_ID_" NVARCHAR2(255), + "NAME_" NVARCHAR2(255), + "DESCRIPTION_" NVARCHAR2(2000), + "TYPE_" NVARCHAR2(255), + "TASK_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "URL_" NVARCHAR2(2000), + "CONTENT_ID_" NVARCHAR2(64), + "TIME_" TIMESTAMP(6) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_ATTACHMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_COMMENT +-- ---------------------------- +-- DROP TABLE "ACT_HI_COMMENT"; +CREATE TABLE "ACT_HI_COMMENT" ( + "ID_" NVARCHAR2(64) NOT NULL, + "TYPE_" NVARCHAR2(255), + "TIME_" TIMESTAMP(6) NOT NULL, + "USER_ID_" NVARCHAR2(255), + "TASK_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "ACTION_" NVARCHAR2(255), + "MESSAGE_" NVARCHAR2(2000), + "FULL_MSG_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_COMMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_DETAIL +-- ---------------------------- +-- DROP TABLE "ACT_HI_DETAIL"; +CREATE TABLE "ACT_HI_DETAIL" ( + "ID_" NVARCHAR2(64) NOT NULL, + "TYPE_" NVARCHAR2(255) NOT NULL, + "PROC_INST_ID_" NVARCHAR2(64), + "EXECUTION_ID_" NVARCHAR2(64), + "TASK_ID_" NVARCHAR2(64), + "ACT_INST_ID_" NVARCHAR2(64), + "NAME_" NVARCHAR2(255) NOT NULL, + "VAR_TYPE_" NVARCHAR2(64), + "REV_" NUMBER, + "TIME_" TIMESTAMP(6) NOT NULL, + "BYTEARRAY_ID_" NVARCHAR2(64), + "DOUBLE_" NUMBER, + "LONG_" NUMBER(19,0), + "TEXT_" NVARCHAR2(2000), + "TEXT2_" NVARCHAR2(2000) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_DETAIL +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_ENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_HI_ENTITYLINK"; +CREATE TABLE "ACT_HI_ENTITYLINK" ( + "ID_" NVARCHAR2(64) NOT NULL, + "LINK_TYPE_" NVARCHAR2(255), + "CREATE_TIME_" TIMESTAMP(6), + "SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "REF_SCOPE_ID_" NVARCHAR2(255), + "REF_SCOPE_TYPE_" NVARCHAR2(255), + "REF_SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "HIERARCHY_TYPE_" NVARCHAR2(255), + "ROOT_SCOPE_ID_" NVARCHAR2(255), + "ROOT_SCOPE_TYPE_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "PARENT_ELEMENT_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_ENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_IDENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_HI_IDENTITYLINK"; +CREATE TABLE "ACT_HI_IDENTITYLINK" ( + "ID_" NVARCHAR2(64) NOT NULL, + "GROUP_ID_" NVARCHAR2(255), + "TYPE_" NVARCHAR2(255), + "USER_ID_" NVARCHAR2(255), + "TASK_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "PROC_INST_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_IDENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_PROCINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_PROCINST"; +CREATE TABLE "ACT_HI_PROCINST" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_INST_ID_" NVARCHAR2(64) NOT NULL, + "BUSINESS_KEY_" NVARCHAR2(255), + "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL, + "START_TIME_" TIMESTAMP(6) NOT NULL, + "END_TIME_" TIMESTAMP(6), + "DURATION_" NUMBER(19,0), + "START_USER_ID_" NVARCHAR2(255), + "START_ACT_ID_" NVARCHAR2(255), + "END_ACT_ID_" NVARCHAR2(255), + "SUPER_PROCESS_INSTANCE_ID_" NVARCHAR2(64), + "DELETE_REASON_" NVARCHAR2(2000), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "NAME_" NVARCHAR2(255), + "CALLBACK_ID_" NVARCHAR2(255), + "CALLBACK_TYPE_" NVARCHAR2(255), + "REFERENCE_ID_" NVARCHAR2(255), + "REFERENCE_TYPE_" NVARCHAR2(255), + "PROPAGATED_STAGE_INST_ID_" NVARCHAR2(255), + "BUSINESS_STATUS_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_PROCINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_TASKINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_TASKINST"; +CREATE TABLE "ACT_HI_TASKINST" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_DEF_ID_" NVARCHAR2(64), + "TASK_DEF_ID_" NVARCHAR2(64), + "TASK_DEF_KEY_" NVARCHAR2(255), + "PROC_INST_ID_" NVARCHAR2(64), + "EXECUTION_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "PARENT_TASK_ID_" NVARCHAR2(64), + "NAME_" NVARCHAR2(255), + "DESCRIPTION_" NVARCHAR2(2000), + "OWNER_" NVARCHAR2(255), + "ASSIGNEE_" NVARCHAR2(255), + "START_TIME_" TIMESTAMP(6) NOT NULL, + "CLAIM_TIME_" TIMESTAMP(6), + "END_TIME_" TIMESTAMP(6), + "DURATION_" NUMBER(19,0), + "DELETE_REASON_" NVARCHAR2(2000), + "PRIORITY_" NUMBER, + "DUE_DATE_" TIMESTAMP(6), + "FORM_KEY_" NVARCHAR2(255), + "CATEGORY_" NVARCHAR2(255), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "LAST_UPDATED_TIME_" TIMESTAMP(6), + "PROPAGATED_STAGE_INST_ID_" NVARCHAR2(255), + "STATE_" NVARCHAR2(255), + "IN_PROGRESS_TIME_" TIMESTAMP(6), + "IN_PROGRESS_STARTED_BY_" NVARCHAR2(255), + "CLAIMED_BY_" NVARCHAR2(255), + "SUSPENDED_TIME_" TIMESTAMP(6), + "SUSPENDED_BY_" NVARCHAR2(255), + "COMPLETED_BY_" NVARCHAR2(255), + "IN_PROGRESS_DUE_DATE_" TIMESTAMP(6) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_TASKINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_TSK_LOG +-- ---------------------------- +-- DROP TABLE "ACT_HI_TSK_LOG"; +CREATE TABLE "ACT_HI_TSK_LOG" ( + "ID_" NUMBER(19,0) NOT NULL, + "TYPE_" NVARCHAR2(64), + "TASK_ID_" NVARCHAR2(64) NOT NULL, + "TIME_STAMP_" TIMESTAMP(6) NOT NULL, + "USER_ID_" NVARCHAR2(255), + "DATA_" NVARCHAR2(2000), + "EXECUTION_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_TSK_LOG +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_VARINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_VARINST"; +CREATE TABLE "ACT_HI_VARINST" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_INST_ID_" NVARCHAR2(64), + "EXECUTION_ID_" NVARCHAR2(64), + "TASK_ID_" NVARCHAR2(64), + "NAME_" NVARCHAR2(255) NOT NULL, + "VAR_TYPE_" NVARCHAR2(100), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "BYTEARRAY_ID_" NVARCHAR2(64), + "DOUBLE_" NUMBER, + "LONG_" NUMBER(19,0), + "TEXT_" NVARCHAR2(2000), + "TEXT2_" NVARCHAR2(2000), + "CREATE_TIME_" TIMESTAMP(6), + "LAST_UPDATED_TIME_" TIMESTAMP(6), + "META_INFO_" NVARCHAR2(2000) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_HI_VARINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_BYTEARRAY +-- ---------------------------- +-- DROP TABLE "ACT_ID_BYTEARRAY"; +CREATE TABLE "ACT_ID_BYTEARRAY" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "NAME_" NVARCHAR2(255), + "BYTES_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_BYTEARRAY +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_GROUP +-- ---------------------------- +-- DROP TABLE "ACT_ID_GROUP"; +CREATE TABLE "ACT_ID_GROUP" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "NAME_" NVARCHAR2(255), + "TYPE_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_GROUP +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_INFO +-- ---------------------------- +-- DROP TABLE "ACT_ID_INFO"; +CREATE TABLE "ACT_ID_INFO" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "USER_ID_" NVARCHAR2(64), + "TYPE_" NVARCHAR2(64), + "KEY_" NVARCHAR2(255), + "VALUE_" NVARCHAR2(255), + "PASSWORD_" BLOB, + "PARENT_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_INFO +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_MEMBERSHIP +-- ---------------------------- +-- DROP TABLE "ACT_ID_MEMBERSHIP"; +CREATE TABLE "ACT_ID_MEMBERSHIP" ( + "USER_ID_" NVARCHAR2(64) NOT NULL, + "GROUP_ID_" NVARCHAR2(64) NOT NULL +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_MEMBERSHIP +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_PRIV +-- ---------------------------- +-- DROP TABLE "ACT_ID_PRIV"; +CREATE TABLE "ACT_ID_PRIV" ( + "ID_" NVARCHAR2(64) NOT NULL, + "NAME_" NVARCHAR2(255) NOT NULL +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_PRIV +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_PRIV_MAPPING +-- ---------------------------- +-- DROP TABLE "ACT_ID_PRIV_MAPPING"; +CREATE TABLE "ACT_ID_PRIV_MAPPING" ( + "ID_" NVARCHAR2(64) NOT NULL, + "PRIV_ID_" NVARCHAR2(64) NOT NULL, + "USER_ID_" NVARCHAR2(255), + "GROUP_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_PRIV_MAPPING +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_PROPERTY +-- ---------------------------- +-- DROP TABLE "ACT_ID_PROPERTY"; +CREATE TABLE "ACT_ID_PROPERTY" ( + "NAME_" NVARCHAR2(64) NOT NULL, + "VALUE_" NVARCHAR2(300), + "REV_" NUMBER +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_PROPERTY +-- ---------------------------- +INSERT INTO "ACT_ID_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('schema.version', '7.0.1.1', '1'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_TOKEN +-- ---------------------------- +-- DROP TABLE "ACT_ID_TOKEN"; +CREATE TABLE "ACT_ID_TOKEN" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TOKEN_VALUE_" NVARCHAR2(255), + "TOKEN_DATE_" TIMESTAMP(6), + "IP_ADDRESS_" NVARCHAR2(255), + "USER_AGENT_" NVARCHAR2(255), + "USER_ID_" NVARCHAR2(255), + "TOKEN_DATA_" NVARCHAR2(2000) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_TOKEN +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_USER +-- ---------------------------- +-- DROP TABLE "ACT_ID_USER"; +CREATE TABLE "ACT_ID_USER" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "FIRST_" NVARCHAR2(255), + "LAST_" NVARCHAR2(255), + "DISPLAY_NAME_" NVARCHAR2(255), + "EMAIL_" NVARCHAR2(255), + "PWD_" NVARCHAR2(255), + "PICTURE_ID_" NVARCHAR2(64), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_ID_USER +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_PROCDEF_INFO +-- ---------------------------- +-- DROP TABLE "ACT_PROCDEF_INFO"; +CREATE TABLE "ACT_PROCDEF_INFO" ( + "ID_" NVARCHAR2(64) NOT NULL, + "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "INFO_JSON_ID_" NVARCHAR2(64) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_PROCDEF_INFO +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RE_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_RE_DEPLOYMENT"; +CREATE TABLE "ACT_RE_DEPLOYMENT" ( + "ID_" NVARCHAR2(64) NOT NULL, + "NAME_" NVARCHAR2(255), + "CATEGORY_" NVARCHAR2(255), + "KEY_" NVARCHAR2(255), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "DEPLOY_TIME_" TIMESTAMP(6), + "DERIVED_FROM_" NVARCHAR2(64), + "DERIVED_FROM_ROOT_" NVARCHAR2(64), + "PARENT_DEPLOYMENT_ID_" NVARCHAR2(255), + "ENGINE_VERSION_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RE_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RE_MODEL +-- ---------------------------- +-- DROP TABLE "ACT_RE_MODEL"; +CREATE TABLE "ACT_RE_MODEL" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "NAME_" NVARCHAR2(255), + "KEY_" NVARCHAR2(255), + "CATEGORY_" NVARCHAR2(255), + "CREATE_TIME_" TIMESTAMP(6), + "LAST_UPDATE_TIME_" TIMESTAMP(6), + "VERSION_" NUMBER, + "META_INFO_" NVARCHAR2(2000), + "DEPLOYMENT_ID_" NVARCHAR2(64), + "EDITOR_SOURCE_VALUE_ID_" NVARCHAR2(64), + "EDITOR_SOURCE_EXTRA_VALUE_ID_" NVARCHAR2(64), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RE_MODEL +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RE_PROCDEF +-- ---------------------------- +-- DROP TABLE "ACT_RE_PROCDEF"; +CREATE TABLE "ACT_RE_PROCDEF" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "CATEGORY_" NVARCHAR2(255), + "NAME_" NVARCHAR2(255), + "KEY_" NVARCHAR2(255) NOT NULL, + "VERSION_" NUMBER NOT NULL, + "DEPLOYMENT_ID_" NVARCHAR2(64), + "RESOURCE_NAME_" NVARCHAR2(2000), + "DGRM_RESOURCE_NAME_" VARCHAR2(4000 BYTE), + "DESCRIPTION_" NVARCHAR2(2000), + "HAS_START_FORM_KEY_" NUMBER(1,0), + "HAS_GRAPHICAL_NOTATION_" NUMBER(1,0), + "SUSPENSION_STATE_" NUMBER, + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "DERIVED_FROM_" NVARCHAR2(64), + "DERIVED_FROM_ROOT_" NVARCHAR2(64), + "DERIVED_VERSION_" NUMBER DEFAULT 0 NOT NULL, + "ENGINE_VERSION_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RE_PROCDEF +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_ACTINST +-- ---------------------------- +-- DROP TABLE "ACT_RU_ACTINST"; +CREATE TABLE "ACT_RU_ACTINST" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_DEF_ID_" NVARCHAR2(64) NOT NULL, + "PROC_INST_ID_" NVARCHAR2(64) NOT NULL, + "EXECUTION_ID_" NVARCHAR2(64) NOT NULL, + "ACT_ID_" NVARCHAR2(255) NOT NULL, + "TASK_ID_" NVARCHAR2(64), + "CALL_PROC_INST_ID_" NVARCHAR2(64), + "ACT_NAME_" NVARCHAR2(255), + "ACT_TYPE_" NVARCHAR2(255) NOT NULL, + "ASSIGNEE_" NVARCHAR2(255), + "START_TIME_" TIMESTAMP(6) NOT NULL, + "END_TIME_" TIMESTAMP(6), + "DURATION_" NUMBER(19,0), + "DELETE_REASON_" NVARCHAR2(2000), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "TRANSACTION_ORDER_" NUMBER +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_ACTINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_DEADLETTER_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_DEADLETTER_JOB"; +CREATE TABLE "ACT_RU_DEADLETTER_JOB" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" NVARCHAR2(255) NOT NULL, + "EXCLUSIVE_" NUMBER(1,0), + "EXECUTION_ID_" NVARCHAR2(64), + "PROCESS_INSTANCE_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "ELEMENT_ID_" NVARCHAR2(255), + "ELEMENT_NAME_" NVARCHAR2(255), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "EXCEPTION_STACK_ID_" NVARCHAR2(64), + "EXCEPTION_MSG_" NVARCHAR2(2000), + "DUEDATE_" TIMESTAMP(6), + "REPEAT_" NVARCHAR2(255), + "HANDLER_TYPE_" NVARCHAR2(255), + "HANDLER_CFG_" NVARCHAR2(2000), + "CUSTOM_VALUES_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "CATEGORY_" NVARCHAR2(255), + "CORRELATION_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_DEADLETTER_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_ENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_RU_ENTITYLINK"; +CREATE TABLE "ACT_RU_ENTITYLINK" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "CREATE_TIME_" TIMESTAMP(6), + "LINK_TYPE_" NVARCHAR2(255), + "SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "REF_SCOPE_ID_" NVARCHAR2(255), + "REF_SCOPE_TYPE_" NVARCHAR2(255), + "REF_SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "HIERARCHY_TYPE_" NVARCHAR2(255), + "ROOT_SCOPE_ID_" NVARCHAR2(255), + "ROOT_SCOPE_TYPE_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "PARENT_ELEMENT_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_ENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_EVENT_SUBSCR +-- ---------------------------- +-- DROP TABLE "ACT_RU_EVENT_SUBSCR"; +CREATE TABLE "ACT_RU_EVENT_SUBSCR" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "EVENT_TYPE_" NVARCHAR2(255) NOT NULL, + "EVENT_NAME_" NVARCHAR2(255), + "EXECUTION_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "ACTIVITY_ID_" NVARCHAR2(64), + "CONFIGURATION_" NVARCHAR2(255), + "CREATED_" TIMESTAMP(6) NOT NULL, + "PROC_DEF_ID_" NVARCHAR2(64), + "SUB_SCOPE_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(64), + "SCOPE_DEFINITION_ID_" NVARCHAR2(64), + "SCOPE_TYPE_" NVARCHAR2(64), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "LOCK_TIME_" TIMESTAMP(6), + "LOCK_OWNER_" NVARCHAR2(255), + "SCOPE_DEFINITION_KEY_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_EVENT_SUBSCR +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_EXECUTION +-- ---------------------------- +-- DROP TABLE "ACT_RU_EXECUTION"; +CREATE TABLE "ACT_RU_EXECUTION" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "PROC_INST_ID_" NVARCHAR2(64), + "BUSINESS_KEY_" NVARCHAR2(255), + "PARENT_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "SUPER_EXEC_" NVARCHAR2(64), + "ROOT_PROC_INST_ID_" NVARCHAR2(64), + "ACT_ID_" NVARCHAR2(255), + "IS_ACTIVE_" NUMBER(1,0), + "IS_CONCURRENT_" NUMBER(1,0), + "IS_SCOPE_" NUMBER(1,0), + "IS_EVENT_SCOPE_" NUMBER(1,0), + "IS_MI_ROOT_" NUMBER(1,0), + "SUSPENSION_STATE_" NUMBER, + "CACHED_ENT_STATE_" NUMBER, + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "NAME_" NVARCHAR2(255), + "START_ACT_ID_" NVARCHAR2(255), + "START_TIME_" TIMESTAMP(6), + "START_USER_ID_" NVARCHAR2(255), + "LOCK_TIME_" TIMESTAMP(6), + "IS_COUNT_ENABLED_" NUMBER(1,0), + "EVT_SUBSCR_COUNT_" NUMBER, + "TASK_COUNT_" NUMBER, + "JOB_COUNT_" NUMBER, + "TIMER_JOB_COUNT_" NUMBER, + "SUSP_JOB_COUNT_" NUMBER, + "DEADLETTER_JOB_COUNT_" NUMBER, + "VAR_COUNT_" NUMBER, + "ID_LINK_COUNT_" NUMBER, + "CALLBACK_ID_" NVARCHAR2(255), + "CALLBACK_TYPE_" NVARCHAR2(255), + "REFERENCE_ID_" NVARCHAR2(255), + "REFERENCE_TYPE_" NVARCHAR2(255), + "PROPAGATED_STAGE_INST_ID_" NVARCHAR2(255), + "LOCK_OWNER_" NVARCHAR2(255), + "EXTERNAL_WORKER_JOB_COUNT_" NUMBER, + "BUSINESS_STATUS_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_EXECUTION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_EXTERNAL_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_EXTERNAL_JOB"; +CREATE TABLE "ACT_RU_EXTERNAL_JOB" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "CATEGORY_" NVARCHAR2(255), + "TYPE_" NVARCHAR2(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(6), + "LOCK_OWNER_" NVARCHAR2(255), + "EXCLUSIVE_" NUMBER(1,0), + "EXECUTION_ID_" NVARCHAR2(64), + "PROCESS_INSTANCE_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "ELEMENT_ID_" NVARCHAR2(255), + "ELEMENT_NAME_" NVARCHAR2(255), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" NVARCHAR2(64), + "EXCEPTION_MSG_" NVARCHAR2(2000), + "DUEDATE_" TIMESTAMP(6), + "REPEAT_" NVARCHAR2(255), + "HANDLER_TYPE_" NVARCHAR2(255), + "HANDLER_CFG_" NVARCHAR2(2000), + "CUSTOM_VALUES_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "CORRELATION_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_EXTERNAL_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_HISTORY_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_HISTORY_JOB"; +CREATE TABLE "ACT_RU_HISTORY_JOB" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "LOCK_EXP_TIME_" TIMESTAMP(6), + "LOCK_OWNER_" NVARCHAR2(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" NVARCHAR2(64), + "EXCEPTION_MSG_" NVARCHAR2(2000), + "HANDLER_TYPE_" NVARCHAR2(255), + "HANDLER_CFG_" NVARCHAR2(2000), + "CUSTOM_VALUES_ID_" NVARCHAR2(64), + "ADV_HANDLER_CFG_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "SCOPE_TYPE_" NVARCHAR2(255), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_HISTORY_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_IDENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_RU_IDENTITYLINK"; +CREATE TABLE "ACT_RU_IDENTITYLINK" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "GROUP_ID_" NVARCHAR2(255), + "TYPE_" NVARCHAR2(255), + "USER_ID_" NVARCHAR2(255), + "TASK_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_IDENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_JOB"; +CREATE TABLE "ACT_RU_JOB" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" NVARCHAR2(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(6), + "LOCK_OWNER_" NVARCHAR2(255), + "EXCLUSIVE_" NUMBER(1,0), + "EXECUTION_ID_" NVARCHAR2(64), + "PROCESS_INSTANCE_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "ELEMENT_ID_" NVARCHAR2(255), + "ELEMENT_NAME_" NVARCHAR2(255), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" NVARCHAR2(64), + "EXCEPTION_MSG_" NVARCHAR2(2000), + "DUEDATE_" TIMESTAMP(6), + "REPEAT_" NVARCHAR2(255), + "HANDLER_TYPE_" NVARCHAR2(255), + "HANDLER_CFG_" NVARCHAR2(2000), + "CUSTOM_VALUES_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "CATEGORY_" NVARCHAR2(255), + "CORRELATION_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_SUSPENDED_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_SUSPENDED_JOB"; +CREATE TABLE "ACT_RU_SUSPENDED_JOB" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" NVARCHAR2(255) NOT NULL, + "EXCLUSIVE_" NUMBER(1,0), + "EXECUTION_ID_" NVARCHAR2(64), + "PROCESS_INSTANCE_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "ELEMENT_ID_" NVARCHAR2(255), + "ELEMENT_NAME_" NVARCHAR2(255), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" NVARCHAR2(64), + "EXCEPTION_MSG_" NVARCHAR2(2000), + "DUEDATE_" TIMESTAMP(6), + "REPEAT_" NVARCHAR2(255), + "HANDLER_TYPE_" NVARCHAR2(255), + "HANDLER_CFG_" NVARCHAR2(2000), + "CUSTOM_VALUES_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "CATEGORY_" NVARCHAR2(255), + "CORRELATION_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_SUSPENDED_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_TASK +-- ---------------------------- +-- DROP TABLE "ACT_RU_TASK"; +CREATE TABLE "ACT_RU_TASK" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "EXECUTION_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "TASK_DEF_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "NAME_" NVARCHAR2(255), + "PARENT_TASK_ID_" NVARCHAR2(64), + "DESCRIPTION_" NVARCHAR2(2000), + "TASK_DEF_KEY_" NVARCHAR2(255), + "OWNER_" NVARCHAR2(255), + "ASSIGNEE_" NVARCHAR2(255), + "DELEGATION_" NVARCHAR2(64), + "PRIORITY_" NUMBER, + "CREATE_TIME_" TIMESTAMP(6), + "DUE_DATE_" TIMESTAMP(6), + "CATEGORY_" NVARCHAR2(255), + "SUSPENSION_STATE_" NUMBER, + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "FORM_KEY_" NVARCHAR2(255), + "CLAIM_TIME_" TIMESTAMP(6), + "IS_COUNT_ENABLED_" NUMBER(1,0), + "VAR_COUNT_" NUMBER, + "ID_LINK_COUNT_" NUMBER, + "SUB_TASK_COUNT_" NUMBER, + "PROPAGATED_STAGE_INST_ID_" NVARCHAR2(255), + "STATE_" NVARCHAR2(255), + "IN_PROGRESS_TIME_" TIMESTAMP(6), + "IN_PROGRESS_STARTED_BY_" NVARCHAR2(255), + "CLAIMED_BY_" NVARCHAR2(255), + "SUSPENDED_TIME_" TIMESTAMP(6), + "SUSPENDED_BY_" NVARCHAR2(255), + "IN_PROGRESS_DUE_DATE_" TIMESTAMP(6) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_TASK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_TIMER_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_TIMER_JOB"; +CREATE TABLE "ACT_RU_TIMER_JOB" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" NVARCHAR2(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP(6), + "LOCK_OWNER_" NVARCHAR2(255), + "EXCLUSIVE_" NUMBER(1,0), + "EXECUTION_ID_" NVARCHAR2(64), + "PROCESS_INSTANCE_ID_" NVARCHAR2(64), + "PROC_DEF_ID_" NVARCHAR2(64), + "ELEMENT_ID_" NVARCHAR2(255), + "ELEMENT_NAME_" NVARCHAR2(255), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "SCOPE_DEFINITION_ID_" NVARCHAR2(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" NVARCHAR2(64), + "EXCEPTION_MSG_" NVARCHAR2(2000), + "DUEDATE_" TIMESTAMP(6), + "REPEAT_" NVARCHAR2(255), + "HANDLER_TYPE_" NVARCHAR2(255), + "HANDLER_CFG_" NVARCHAR2(2000), + "CUSTOM_VALUES_ID_" NVARCHAR2(64), + "CREATE_TIME_" TIMESTAMP(6), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '', + "CATEGORY_" NVARCHAR2(255), + "CORRELATION_ID_" NVARCHAR2(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_TIMER_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_VARIABLE +-- ---------------------------- +-- DROP TABLE "ACT_RU_VARIABLE"; +CREATE TABLE "ACT_RU_VARIABLE" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" NVARCHAR2(255) NOT NULL, + "NAME_" NVARCHAR2(255) NOT NULL, + "EXECUTION_ID_" NVARCHAR2(64), + "PROC_INST_ID_" NVARCHAR2(64), + "TASK_ID_" NVARCHAR2(64), + "SCOPE_ID_" NVARCHAR2(255), + "SUB_SCOPE_ID_" NVARCHAR2(255), + "SCOPE_TYPE_" NVARCHAR2(255), + "BYTEARRAY_ID_" NVARCHAR2(64), + "DOUBLE_" NUMBER, + "LONG_" NUMBER(19,0), + "TEXT_" NVARCHAR2(2000), + "TEXT2_" NVARCHAR2(2000), + "META_INFO_" NVARCHAR2(2000) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_VARIABLE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_CHANNEL_DEFINITION +-- ---------------------------- +-- DROP TABLE "FLW_CHANNEL_DEFINITION"; +CREATE TABLE "FLW_CHANNEL_DEFINITION" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "VERSION_" NUMBER, + "KEY_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "CREATE_TIME_" TIMESTAMP(3), + "TENANT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_NAME_" VARCHAR2(255 BYTE), + "DESCRIPTION_" VARCHAR2(255 BYTE), + "TYPE_" VARCHAR2(255 BYTE), + "IMPLEMENTATION_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_CHANNEL_DEFINITION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EVENT_DEFINITION +-- ---------------------------- +-- DROP TABLE "FLW_EVENT_DEFINITION"; +CREATE TABLE "FLW_EVENT_DEFINITION" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "VERSION_" NUMBER, + "KEY_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "TENANT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_NAME_" VARCHAR2(255 BYTE), + "DESCRIPTION_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EVENT_DEFINITION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EVENT_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "FLW_EVENT_DEPLOYMENT"; +CREATE TABLE "FLW_EVENT_DEPLOYMENT" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "CATEGORY_" VARCHAR2(255 BYTE), + "DEPLOY_TIME_" TIMESTAMP(3), + "TENANT_ID_" VARCHAR2(255 BYTE), + "PARENT_DEPLOYMENT_ID_" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EVENT_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EVENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "FLW_EVENT_RESOURCE"; +CREATE TABLE "FLW_EVENT_RESOURCE" ( + "ID_" VARCHAR2(255 BYTE) NOT NULL, + "NAME_" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID_" VARCHAR2(255 BYTE), + "RESOURCE_BYTES_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EVENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EV_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "FLW_EV_DATABASECHANGELOG"; +CREATE TABLE "FLW_EV_DATABASECHANGELOG" ( + "ID" VARCHAR2(255 BYTE) NOT NULL, + "AUTHOR" VARCHAR2(255 BYTE) NOT NULL, + "FILENAME" VARCHAR2(255 BYTE) NOT NULL, + "DATEEXECUTED" TIMESTAMP(6) NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR2(10 BYTE) NOT NULL, + "MD5SUM" VARCHAR2(35 BYTE), + "DESCRIPTION" VARCHAR2(255 BYTE), + "COMMENTS" VARCHAR2(255 BYTE), + "TAG" VARCHAR2(255 BYTE), + "LIQUIBASE" VARCHAR2(20 BYTE), + "CONTEXTS" VARCHAR2(255 BYTE), + "LABELS" VARCHAR2(255 BYTE), + "DEPLOYMENT_ID" VARCHAR2(10 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EV_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "FLW_EV_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:30.559500', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:63268f536c469325acef35970312551b', 'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', NULL, NULL, '4.24.0', NULL, NULL, '0436530407'); +INSERT INTO "FLW_EV_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:30.597357', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:dcb58b7dfd6dbda66939123a96985536', 'addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION', NULL, NULL, '4.24.0', NULL, NULL, '0436530407'); +INSERT INTO "FLW_EV_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:30.614363', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '9:d0c05678d57af23ad93699991e3bf4f6', 'customChange', NULL, NULL, '4.24.0', NULL, NULL, '0436530407'); +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "FLW_EV_DATABASECHANGELOGLOCK"; +CREATE TABLE "FLW_EV_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1,0) NOT NULL, + "LOCKGRANTED" TIMESTAMP(6), + "LOCKEDBY" VARCHAR2(255 BYTE) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "FLW_EV_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_RU_BATCH +-- ---------------------------- +-- DROP TABLE "FLW_RU_BATCH"; +CREATE TABLE "FLW_RU_BATCH" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" NVARCHAR2(64) NOT NULL, + "SEARCH_KEY_" NVARCHAR2(255), + "SEARCH_KEY2_" NVARCHAR2(255), + "CREATE_TIME_" TIMESTAMP(6) NOT NULL, + "COMPLETE_TIME_" TIMESTAMP(6), + "STATUS_" NVARCHAR2(255), + "BATCH_DOC_ID_" NVARCHAR2(64), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_RU_BATCH +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_RU_BATCH_PART +-- ---------------------------- +-- DROP TABLE "FLW_RU_BATCH_PART"; +CREATE TABLE "FLW_RU_BATCH_PART" ( + "ID_" NVARCHAR2(64) NOT NULL, + "REV_" NUMBER, + "BATCH_ID_" NVARCHAR2(64), + "TYPE_" NVARCHAR2(64) NOT NULL, + "SCOPE_ID_" NVARCHAR2(64), + "SUB_SCOPE_ID_" NVARCHAR2(64), + "SCOPE_TYPE_" NVARCHAR2(64), + "SEARCH_KEY_" NVARCHAR2(255), + "SEARCH_KEY2_" NVARCHAR2(255), + "CREATE_TIME_" TIMESTAMP(6) NOT NULL, + "COMPLETE_TIME_" TIMESTAMP(6), + "STATUS_" NVARCHAR2(255), + "RESULT_DOC_ID_" NVARCHAR2(64), + "TENANT_ID_" NVARCHAR2(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_RU_BATCH_PART +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Sequence structure for ACT_EVT_LOG_SEQ +-- ---------------------------- +-- DROP SEQUENCE "ACT_EVT_LOG_SEQ"; +CREATE SEQUENCE "ACT_EVT_LOG_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 CACHE 20; + +-- ---------------------------- +-- Sequence structure for ACT_HI_TASK_EVT_LOG_SEQ +-- ---------------------------- +-- DROP SEQUENCE "ACT_HI_TASK_EVT_LOG_SEQ"; +CREATE SEQUENCE "ACT_HI_TASK_EVT_LOG_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 CACHE 20; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_APPDEF +-- ---------------------------- +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "PK_ACT_APP_APPDEF" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_APPDEF +-- ---------------------------- +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013782" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013783" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013784" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013785" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015409" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015410" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015411" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015412" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_APP_APPDEF +-- ---------------------------- +CREATE INDEX "ACT_IDX_APP_DEF_DPLY" + ON "ACT_APP_APPDEF" ("DEPLOYMENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE UNIQUE INDEX "ACT_IDX_APP_DEF_UNIQ" + ON "ACT_APP_APPDEF" ("VERSION_" ASC, "TENANT_ID_" ASC, "KEY_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013786" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013787" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013788" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013789" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013790" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013791" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015398" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015399" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015400" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015401" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015402" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015403" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_APP_DATABASECHANGELOGLO" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013792" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013793" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015395" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015396" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_APP_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013794" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015404" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_APP_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0013795" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015406" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +CREATE INDEX "ACT_IDX_APP_RSRC_DPL" + ON "ACT_APP_DEPLOYMENT_RESOURCE" ("DEPLOYMENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "PK_ACT_CMMN_CASEDEF" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013796" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013797" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013798" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013799" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015429" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015430" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015431" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015432" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +CREATE INDEX "ACT_IDX_CASE_DEF_DPLY" + ON "ACT_CMMN_CASEDEF" ("DEPLOYMENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE UNIQUE INDEX "ACT_IDX_CASE_DEF_UNIQ" + ON "ACT_CMMN_CASEDEF" ("TENANT_ID_" ASC, "KEY_" ASC, "VERSION_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013800" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013801" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013802" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013803" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013804" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013805" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015418" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015419" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015420" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015421" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015422" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015423" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_CMMN_DATABASECHANGELOGL" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013806" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013807" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015415" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015416" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_CMMN_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013808" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015424" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_CMMN_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0013809" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015426" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +CREATE INDEX "ACT_IDX_CMMN_RSRC_DPL" + ON "ACT_CMMN_DEPLOYMENT_RESOURCE" ("DEPLOYMENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_CASE_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0013810" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0013811" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0015459" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0015460" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_CASE_INST_END" + ON "ACT_CMMN_HI_CASE_INST" ("END_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_MIL_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_HI_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013812" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013813" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013814" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013815" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013816" CHECK ("CASE_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013817" CHECK ("CASE_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013818" CHECK ("ELEMENT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015462" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015463" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015464" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015465" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015466" CHECK ("CASE_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015467" CHECK ("CASE_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015468" CHECK ("ELEMENT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_PLAN_ITEM_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013819" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013820" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015470" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015471" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_PLAN_ITEM_INST_CASE" + ON "ACT_CMMN_HI_PLAN_ITEM_INST" ("CASE_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "PK_ACT_CMMN_RU_CASE_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0013821" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0013822" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0015435" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0015436" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_CASE_INST_CASE_DEF" + ON "ACT_CMMN_RU_CASE_INST" ("CASE_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_CASE_INST_PARENT" + ON "ACT_CMMN_RU_CASE_INST" ("PARENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_CASE_INST_REF_ID_" + ON "ACT_CMMN_RU_CASE_INST" ("REFERENCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "PK_ACT_CMMN_RU_MIL_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013823" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013824" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013825" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013826" CHECK ("CASE_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013827" CHECK ("CASE_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013828" CHECK ("ELEMENT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015450" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015451" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015452" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015453" CHECK ("CASE_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015454" CHECK ("CASE_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015455" CHECK ("ELEMENT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_MIL_CASE_DEF" + ON "ACT_CMMN_RU_MIL_INST" ("CASE_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_MIL_CASE_INST" + ON "ACT_CMMN_RU_MIL_INST" ("CASE_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "PK_CMMN_PLAN_ITEM_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013829" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013830" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015439" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015440" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_DEF" + ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("CASE_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_INST" + ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("CASE_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_PLAN_ITEM_STAGE_INST" + ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("STAGE_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "PK_CMMN_SENTRY_PART_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0013831" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0013832" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0015444" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0015445" CHECK ("REV_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_SENTRY_CASE_DEF" + ON "ACT_CMMN_RU_SENTRY_PART_INST" ("CASE_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SENTRY_CASE_INST" + ON "ACT_CMMN_RU_SENTRY_PART_INST" ("CASE_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SENTRY_PLAN_ITEM" + ON "ACT_CMMN_RU_SENTRY_PART_INST" ("PLAN_ITEM_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "PK_ACT_CO_CONTENT_ITEM" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0013833" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0013834" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0015517" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0015518" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +CREATE INDEX "IDX_CONTITEM_PROCID" + ON "ACT_CO_CONTENT_ITEM" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "IDX_CONTITEM_SCOPE" + ON "ACT_CO_CONTENT_ITEM" ("SCOPE_TYPE_" ASC, "SCOPE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "IDX_CONTITEM_TASKID" + ON "ACT_CO_CONTENT_ITEM" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Checks structure for table ACT_CO_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013835" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013836" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013837" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013838" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013839" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013840" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015511" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015512" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015513" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015514" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015515" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015516" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_CO_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013841" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013842" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015508" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015509" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_DE_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013843" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013844" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013845" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013846" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013847" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013848" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015523" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015524" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015525" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015526" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015527" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015528" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_DE_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013849" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013850" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015520" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015521" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "PK_ACT_DE_MODEL" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0013851" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0013852" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0013853" CHECK ("MODEL_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015529" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015530" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015531" CHECK ("MODEL_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_DE_MODEL +-- ---------------------------- +CREATE INDEX "IDX_PROC_MOD_CREATED" + ON "ACT_DE_MODEL" ("CREATED_BY" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "PK_ACT_DE_MODEL_HISTORY" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013854" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013855" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013856" CHECK ("MODEL_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013857" CHECK ("MODEL_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015533" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015534" CHECK ("NAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015535" CHECK ("MODEL_KEY" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015536" CHECK ("MODEL_ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +CREATE INDEX "IDX_PROC_MOD_HISTORY_PROC" + ON "ACT_DE_MODEL_HISTORY" ("MODEL_ID" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "PK_ACT_DE_MODEL_RELATION" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "SYS_C0013858" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "SYS_C0015538" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013859" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013860" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013861" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013862" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013863" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013864" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015476" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015477" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015478" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015479" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015480" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015481" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_DMN_DATABASECHANGELOGLO" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013865" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013866" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015473" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015474" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DECISION +-- ---------------------------- +ALTER TABLE "ACT_DMN_DECISION" ADD CONSTRAINT "PK_ACT_DMN_DECISION_TABLE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DECISION +-- ---------------------------- +ALTER TABLE "ACT_DMN_DECISION" ADD CONSTRAINT "SYS_C0013867" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DECISION" ADD CONSTRAINT "SYS_C0015486" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_DMN_DECISION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_DMN_DEC_UNIQ" + ON "ACT_DMN_DECISION" ("KEY_" ASC, "VERSION_" ASC, "TENANT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_DMN_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013868" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015482" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_ACT_DMN_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0013869" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015484" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "PK_ACT_DMN_HI_DECISION_EXECUTI" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "SYS_C0013870" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "SYS_C0015488" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +CREATE INDEX "ACT_IDX_DMN_INSTANCE_ID" + ON "ACT_DMN_HI_DECISION_EXECUTION" ("INSTANCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_EVT_LOG +-- ---------------------------- +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0015308" PRIMARY KEY ("LOG_NR_"); + +-- ---------------------------- +-- Checks structure for table ACT_EVT_LOG +-- ---------------------------- +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0013871" CHECK ("LOG_NR_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0013872" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0015307" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_FO_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013873" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013874" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013875" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013876" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013877" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013878" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015493" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015494" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015495" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015496" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015497" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015498" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_FO_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013879" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013880" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015490" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015491" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "PK_ACT_FO_FORM_DEFINITION" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "SYS_C0013881" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "SYS_C0015503" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_FORM_DEF_UNIQ" + ON "ACT_FO_FORM_DEFINITION" ("KEY_" ASC, "TENANT_ID_" ASC, "VERSION_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_FO_FORM_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013882" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015499" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_INSTANCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "PK_ACT_FO_FORM_INSTANCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_INSTANCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0013883" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0013884" CHECK ("FORM_DEFINITION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0015505" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0015506" CHECK ("FORM_DEFINITION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "PK_ACT_FO_FORM_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "SYS_C0013885" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "SYS_C0015501" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0015239" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0013886" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0015238" CHECK (GENERATED_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +CREATE INDEX "ACT_IDX_BYTEAR_DEPL" + ON "ACT_GE_BYTEARRAY" ("DEPLOYMENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_GE_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_GE_PROPERTY" ADD CONSTRAINT "SYS_C0015237" PRIMARY KEY ("NAME_"); + +-- ---------------------------- +-- Checks structure for table ACT_GE_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_GE_PROPERTY" ADD CONSTRAINT "SYS_C0013887" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015366" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013888" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013889" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013890" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013891" CHECK ("EXECUTION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013892" CHECK ("ACT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013893" CHECK ("ACT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013894" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015359" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015360" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015361" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015362" CHECK ("EXECUTION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015363" CHECK ("ACT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015364" CHECK ("ACT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015365" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_ACTINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_ACT_INST_END" + ON "ACT_HI_ACTINST" ("END_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_ACT_INST_EXEC" + ON "ACT_HI_ACTINST" ("EXECUTION_ID_" ASC, "ACT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_ACT_INST_PROCINST" + ON "ACT_HI_ACTINST" ("PROC_INST_ID_" ASC, "ACT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_ACT_INST_START" + ON "ACT_HI_ACTINST" ("START_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ATTACHMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0015376" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_ATTACHMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0013895" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0015375" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_COMMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015374" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_COMMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0013896" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0013897" CHECK ("TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015372" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015373" CHECK ("TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_DETAIL +-- ---------------------------- +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015371" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_DETAIL +-- ---------------------------- +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013898" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013899" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013900" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013901" CHECK ("TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015367" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015368" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015369" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015370" CHECK ("TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_DETAIL +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_DETAIL_ACT_INST" + ON "ACT_HI_DETAIL" ("ACT_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_DETAIL_NAME" + ON "ACT_HI_DETAIL" ("NAME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_DETAIL_PROC_INST" + ON "ACT_HI_DETAIL" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_DETAIL_TASK_ID" + ON "ACT_HI_DETAIL" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_DETAIL_TIME" + ON "ACT_HI_DETAIL" ("TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_ENTITYLINK" ADD CONSTRAINT "SYS_C0015241" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_ENTITYLINK" ADD CONSTRAINT "SYS_C0013902" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_ENT_LNK_REF_SCOPE" + ON "ACT_HI_ENTITYLINK" ("REF_SCOPE_ID_" ASC, "REF_SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_ENT_LNK_ROOT_SCOPE" + ON "ACT_HI_ENTITYLINK" ("ROOT_SCOPE_ID_" ASC, "ROOT_SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE" + ON "ACT_HI_ENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE_DEF" + ON "ACT_HI_ENTITYLINK" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_IDENTITYLINK" ADD CONSTRAINT "SYS_C0015243" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_IDENTITYLINK" ADD CONSTRAINT "SYS_C0013903" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_PROCINST" + ON "ACT_HI_IDENTITYLINK" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE" + ON "ACT_HI_IDENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE_DEF" + ON "ACT_HI_IDENTITYLINK" ("SCOPE_TYPE_" ASC, "SCOPE_DEFINITION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SUB_SCOPE" + ON "ACT_HI_IDENTITYLINK" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_TASK" + ON "ACT_HI_IDENTITYLINK" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_USER" + ON "ACT_HI_IDENTITYLINK" ("USER_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015357" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015358" UNIQUE ("PROC_INST_ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013904" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013905" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013906" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013907" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015353" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015354" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015355" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015356" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_PROCINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_PRO_INST_END" + ON "ACT_HI_PROCINST" ("END_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_PRO_I_BUSKEY" + ON "ACT_HI_PROCINST" ("BUSINESS_KEY_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_PRO_SUPER_PROCINST" + ON "ACT_HI_PROCINST" ("SUPER_PROCESS_INSTANCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_TASKINST +-- ---------------------------- +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015274" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_TASKINST +-- ---------------------------- +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0013908" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0013909" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015272" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015273" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_TASKINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_TASK_INST_PROCINST" + ON "ACT_HI_TASKINST" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_TASK_SCOPE" + ON "ACT_HI_TASKINST" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_TASK_SCOPE_DEF" + ON "ACT_HI_TASKINST" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_TASK_SUB_SCOPE" + ON "ACT_HI_TASKINST" ("SCOPE_TYPE_" ASC, "SUB_SCOPE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_TSK_LOG +-- ---------------------------- +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015277" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_TSK_LOG +-- ---------------------------- +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0013910" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0013911" CHECK ("TASK_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0013912" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015275" CHECK ("TASK_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015276" CHECK ("TIME_STAMP_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_VARINST +-- ---------------------------- +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015285" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_VARINST +-- ---------------------------- +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0013913" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0013914" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015283" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015284" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_VARINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_PROCVAR_EXE" + ON "ACT_HI_VARINST" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_PROCVAR_NAME_TYPE" + ON "ACT_HI_VARINST" ("VAR_TYPE_" ASC, "NAME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_PROCVAR_PROC_INST" + ON "ACT_HI_VARINST" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_PROCVAR_TASK_ID" + ON "ACT_HI_VARINST" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_VAR_SCOPE_ID_TYPE" + ON "ACT_HI_VARINST" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_HI_VAR_SUB_ID_TYPE" + ON "ACT_HI_VARINST" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_ID_BYTEARRAY" ADD CONSTRAINT "SYS_C0015378" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_ID_BYTEARRAY" ADD CONSTRAINT "SYS_C0013915" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_GROUP +-- ---------------------------- +ALTER TABLE "ACT_ID_GROUP" ADD CONSTRAINT "SYS_C0015379" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_GROUP +-- ---------------------------- +ALTER TABLE "ACT_ID_GROUP" ADD CONSTRAINT "SYS_C0013916" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_INFO +-- ---------------------------- +ALTER TABLE "ACT_ID_INFO" ADD CONSTRAINT "SYS_C0015382" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_INFO +-- ---------------------------- +ALTER TABLE "ACT_ID_INFO" ADD CONSTRAINT "SYS_C0013917" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0015380" PRIMARY KEY ("USER_ID_", "GROUP_ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0013918" CHECK ("USER_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0013919" CHECK ("GROUP_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +CREATE INDEX "ACT_IDX_MEMB_GROUP" + ON "ACT_ID_MEMBERSHIP" ("GROUP_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_MEMB_USER" + ON "ACT_ID_MEMBERSHIP" ("USER_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015387" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "ACT_UNIQ_PRIV_NAME" UNIQUE ("NAME_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0013920" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0013921" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015385" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015386" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015390" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0013922" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0013923" CHECK ("PRIV_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015388" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015389" CHECK ("PRIV_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +CREATE INDEX "ACT_IDX_PRIV_GROUP" + ON "ACT_ID_PRIV_MAPPING" ("GROUP_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_PRIV_MAPPING" + ON "ACT_ID_PRIV_MAPPING" ("PRIV_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_PRIV_USER" + ON "ACT_ID_PRIV_MAPPING" ("USER_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_ID_PROPERTY" ADD CONSTRAINT "SYS_C0015377" PRIMARY KEY ("NAME_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_ID_PROPERTY" ADD CONSTRAINT "SYS_C0013924" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_TOKEN +-- ---------------------------- +ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0015384" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_TOKEN +-- ---------------------------- +ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0013925" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0015383" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_USER +-- ---------------------------- +ALTER TABLE "ACT_ID_USER" ADD CONSTRAINT "SYS_C0015381" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_USER +-- ---------------------------- +ALTER TABLE "ACT_ID_USER" ADD CONSTRAINT "SYS_C0013926" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015311" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_UNIQ_INFO_PROCDEF" UNIQUE ("PROC_DEF_ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0013927" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0013928" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015309" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015310" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_PROCDEF_INFO +-- ---------------------------- +CREATE INDEX "ACT_IDX_PROCDEF_INFO_JSON" + ON "ACT_PROCDEF_INFO" ("INFO_JSON_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_RE_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015290" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RE_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_RE_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013929" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0015292" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0013930" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0015291" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RE_MODEL +-- ---------------------------- +CREATE INDEX "ACT_IDX_MODEL_DEPLOYMENT" + ON "ACT_RE_MODEL" ("DEPLOYMENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_MODEL_SOURCE" + ON "ACT_RE_MODEL" ("EDITOR_SOURCE_VALUE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_MODEL_SOURCE_EXTRA" + ON "ACT_RE_MODEL" ("EDITOR_SOURCE_EXTRA_VALUE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015306" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "ACT_UNIQ_PROCDEF" UNIQUE ("KEY_", "VERSION_", "DERIVED_VERSION_", "TENANT_ID_") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013931" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013932" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013933" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013934" CHECK ("DERIVED_VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015300" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015301" CHECK ("KEY_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015302" CHECK ("VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015303" CHECK ("DERIVED_VERSION_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015304" CHECK (HAS_START_FORM_KEY_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015305" CHECK (HAS_GRAPHICAL_NOTATION_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015319" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013935" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013936" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013937" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013938" CHECK ("EXECUTION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013939" CHECK ("ACT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013940" CHECK ("ACT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013941" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015312" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015313" CHECK ("PROC_DEF_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015314" CHECK ("PROC_INST_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015315" CHECK ("EXECUTION_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015316" CHECK ("ACT_ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015317" CHECK ("ACT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015318" CHECK ("START_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_ACTINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_RU_ACTI_END" + ON "ACT_RU_ACTINST" ("END_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_ACTI_EXEC" + ON "ACT_RU_ACTINST" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_ACTI_EXEC_ACT" + ON "ACT_RU_ACTINST" ("ACT_ID_" ASC, "EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_ACTI_PROC" + ON "ACT_RU_ACTINST" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_ACTI_PROC_ACT" + ON "ACT_RU_ACTINST" ("ACT_ID_" ASC, "PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_ACTI_START" + ON "ACT_RU_ACTINST" ("START_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_ACTI_TASK" + ON "ACT_RU_ACTINST" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015259" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0013942" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0013943" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015256" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015257" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015258" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_DJOB_CORRELATION_ID" + ON "ACT_RU_DEADLETTER_JOB" ("CORRELATION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_CUSTOM_VAL_ID" + ON "ACT_RU_DEADLETTER_JOB" ("CUSTOM_VALUES_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_EXCEPTION" + ON "ACT_RU_DEADLETTER_JOB" ("EXCEPTION_STACK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_EXECUTION_ID" + ON "ACT_RU_DEADLETTER_JOB" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_PROC_DEF_ID" + ON "ACT_RU_DEADLETTER_JOB" ("PROC_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_PROC_INST_ID" + ON "ACT_RU_DEADLETTER_JOB" ("PROCESS_INSTANCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_SCOPE" + ON "ACT_RU_DEADLETTER_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_SCOPE_DEF" + ON "ACT_RU_DEADLETTER_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_DJOB_SUB_SCOPE" + ON "ACT_RU_DEADLETTER_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_ENTITYLINK" ADD CONSTRAINT "SYS_C0015240" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_ENTITYLINK" ADD CONSTRAINT "SYS_C0013944" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_ENT_LNK_REF_SCOPE" + ON "ACT_RU_ENTITYLINK" ("REF_SCOPE_ID_" ASC, "REF_SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_ENT_LNK_ROOT_SCOPE" + ON "ACT_RU_ENTITYLINK" ("ROOT_SCOPE_ID_" ASC, "ROOT_SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE" + ON "ACT_RU_ENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE_DEF" + ON "ACT_RU_ENTITYLINK" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC, "LINK_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015289" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0013945" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0013946" CHECK ("EVENT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0013947" CHECK ("CREATED_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015286" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015287" CHECK ("EVENT_TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015288" CHECK ("CREATED_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +CREATE INDEX "ACT_IDX_EVENT_SUBSCR" + ON "ACT_RU_EVENT_SUBSCR" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EVENT_SUBSCR_CONFIG_" + ON "ACT_RU_EVENT_SUBSCR" ("CONFIGURATION_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EVENT_SUBSCR_SCOPEREF_" + ON "ACT_RU_EVENT_SUBSCR" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015299" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0013948" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015293" CHECK (IS_ACTIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015294" CHECK (IS_CONCURRENT_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015295" CHECK (IS_SCOPE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015296" CHECK (IS_EVENT_SCOPE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015297" CHECK (IS_MI_ROOT_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015298" CHECK (IS_COUNT_ENABLED_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EXECUTION +-- ---------------------------- +CREATE INDEX "ACT_IDX_EXEC_BUSKEY" + ON "ACT_RU_EXECUTION" ("BUSINESS_KEY_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EXEC_REF_ID_" + ON "ACT_RU_EXECUTION" ("REFERENCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EXEC_ROOT" + ON "ACT_RU_EXECUTION" ("ROOT_PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EXE_PARENT" + ON "ACT_RU_EXECUTION" ("PARENT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EXE_PROCDEF" + ON "ACT_RU_EXECUTION" ("PROC_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EXE_PROCINST" + ON "ACT_RU_EXECUTION" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EXE_SUPER" + ON "ACT_RU_EXECUTION" ("SUPER_EXEC_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014269" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014266" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014267" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014268" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_EJOB_CORRELATION_ID" + ON "ACT_RU_EXTERNAL_JOB" ("CORRELATION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EJOB_CUSTOM_VAL_ID" + ON "ACT_RU_EXTERNAL_JOB" ("CUSTOM_VALUES_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EJOB_EXCEPTION" + ON "ACT_RU_EXTERNAL_JOB" ("EXCEPTION_STACK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EJOB_SCOPE" + ON "ACT_RU_EXTERNAL_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EJOB_SCOPE_DEF" + ON "ACT_RU_EXTERNAL_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_EJOB_SUB_SCOPE" + ON "ACT_RU_EXTERNAL_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_HISTORY_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0015261" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_HISTORY_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0013949" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0015260" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "SYS_C0015242" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "SYS_C0013950" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_ATHRZ_PROCEDEF" + ON "ACT_RU_IDENTITYLINK" ("PROC_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_IDENT_LNK_GROUP" + ON "ACT_RU_IDENTITYLINK" ("GROUP_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE" + ON "ACT_RU_IDENTITYLINK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE_DEF" + ON "ACT_RU_IDENTITYLINK" ("SCOPE_TYPE_" ASC, "SCOPE_DEFINITION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_IDENT_LNK_SUB_SCOPE" + ON "ACT_RU_IDENTITYLINK" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_IDENT_LNK_USER" + ON "ACT_RU_IDENTITYLINK" ("USER_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_IDL_PROCINST" + ON "ACT_RU_IDENTITYLINK" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TSKASS_TASK" + ON "ACT_RU_IDENTITYLINK" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015247" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0013951" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0013952" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015244" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015245" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015246" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_JOB_CORRELATION_ID" + ON "ACT_RU_JOB" ("CORRELATION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_CUSTOM_VAL_ID" + ON "ACT_RU_JOB" ("CUSTOM_VALUES_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_EXCEPTION" + ON "ACT_RU_JOB" ("EXCEPTION_STACK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_EXECUTION_ID" + ON "ACT_RU_JOB" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_PROC_DEF_ID" + ON "ACT_RU_JOB" ("PROC_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_PROC_INST_ID" + ON "ACT_RU_JOB" ("PROCESS_INSTANCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_SCOPE" + ON "ACT_RU_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_SCOPE_DEF" + ON "ACT_RU_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_JOB_SUB_SCOPE" + ON "ACT_RU_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015255" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0013953" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0013954" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015252" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015253" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015254" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_SJOB_CORRELATION_ID" + ON "ACT_RU_SUSPENDED_JOB" ("CORRELATION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_CUSTOM_VAL_ID" + ON "ACT_RU_SUSPENDED_JOB" ("CUSTOM_VALUES_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_EXCEPTION" + ON "ACT_RU_SUSPENDED_JOB" ("EXCEPTION_STACK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_EXECUTION_ID" + ON "ACT_RU_SUSPENDED_JOB" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_PROC_DEF_ID" + ON "ACT_RU_SUSPENDED_JOB" ("PROC_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_PROC_INST_ID" + ON "ACT_RU_SUSPENDED_JOB" ("PROCESS_INSTANCE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_SCOPE" + ON "ACT_RU_SUSPENDED_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_SCOPE_DEF" + ON "ACT_RU_SUSPENDED_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_SJOB_SUB_SCOPE" + ON "ACT_RU_SUSPENDED_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_TASK +-- ---------------------------- +ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0015271" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_TASK +-- ---------------------------- +ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0013955" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0015270" CHECK (IS_COUNT_ENABLED_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_TASK +-- ---------------------------- +CREATE INDEX "ACT_IDX_TASK_CREATE" + ON "ACT_RU_TASK" ("CREATE_TIME_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TASK_EXEC" + ON "ACT_RU_TASK" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TASK_PROCDEF" + ON "ACT_RU_TASK" ("PROC_DEF_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TASK_PROCINST" + ON "ACT_RU_TASK" ("PROC_INST_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TASK_SCOPE" + ON "ACT_RU_TASK" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TASK_SCOPE_DEF" + ON "ACT_RU_TASK" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TASK_SUB_SCOPE" + ON "ACT_RU_TASK" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015251" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0013956" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0013957" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015248" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015249" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015250" CHECK (EXCLUSIVE_ IN (1,0)) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_TJOB_CORRELATION_ID" + ON "ACT_RU_TIMER_JOB" ("CORRELATION_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_CUSTOM_VAL_ID" + ON "ACT_RU_TIMER_JOB" ("CUSTOM_VALUES_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_DUEDATE" + ON "ACT_RU_TIMER_JOB" ("DUEDATE_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_EXCEPTION" + ON "ACT_RU_TIMER_JOB" ("EXCEPTION_STACK_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_EXECUTION_ID" + ON "ACT_RU_TIMER_JOB" ("EXECUTION_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_PROC_DEF_ID" + ON "ACT_RU_TIMER_JOB" ("PROC_DEF_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_PROC_INST_ID" + ON "ACT_RU_TIMER_JOB" ("PROCESS_INSTANCE_ID_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_SCOPE" + ON "ACT_RU_TIMER_JOB" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_SCOPE_DEF" + ON "ACT_RU_TIMER_JOB" ("SCOPE_DEFINITION_ID_" ASC, "SCOPE_TYPE_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_TJOB_SUB_SCOPE" + ON "ACT_RU_TIMER_JOB" ("SUB_SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) + LOGGING + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_VARIABLE +-- ---------------------------- +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015281" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_VARIABLE +-- ---------------------------- +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0013958" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0013959" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0013960" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015278" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015279" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015280" CHECK ("NAME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_VARIABLE +-- ---------------------------- +CREATE INDEX "ACT_IDX_RU_VAR_SCOPE_ID_TYPE" + ON "ACT_RU_VARIABLE" ("SCOPE_ID_" ASC, "SCOPE_TYPE_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_RU_VAR_SUB_ID_TYPE" + ON "ACT_RU_VARIABLE" ("SCOPE_TYPE_" ASC, "SUB_SCOPE_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_VARIABLE_TASK_ID" + ON "ACT_RU_VARIABLE" ("TASK_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_VAR_BYTEARRAY" + ON "ACT_RU_VARIABLE" ("BYTEARRAY_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_VAR_EXE" + ON "ACT_RU_VARIABLE" ("EXECUTION_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); +CREATE INDEX "ACT_IDX_VAR_PROCINST" + ON "ACT_RU_VARIABLE" ("PROC_INST_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + INITIAL 65536 + NEXT 1048576 + MINEXTENTS 1 + MAXEXTENTS 2147483645 + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_CHANNEL_DEFINITION" ADD CONSTRAINT "PK_FLW_CHANNEL_DEFINITION" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_CHANNEL_DEFINITION" ADD CONSTRAINT "SYS_C0014296" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_CHANNEL_DEF_UNIQ" + ON "FLW_CHANNEL_DEFINITION" ("KEY_" ASC, "VERSION_" ASC, "TENANT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEFINITION" ADD CONSTRAINT "PK_FLW_EVENT_DEFINITION" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEFINITION" ADD CONSTRAINT "SYS_C0014294" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_EVENT_DEF_UNIQ" + ON "FLW_EVENT_DEFINITION" ("KEY_" ASC, "VERSION_" ASC, "TENANT_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEPLOYMENT" ADD CONSTRAINT "PK_FLW_EVENT_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_EVENT_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEPLOYMENT" ADD CONSTRAINT "SYS_C0014290" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_RESOURCE +-- ---------------------------- +ALTER TABLE "FLW_EVENT_RESOURCE" ADD CONSTRAINT "PK_FLW_EVENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_EVENT_RESOURCE +-- ---------------------------- +ALTER TABLE "FLW_EVENT_RESOURCE" ADD CONSTRAINT "SYS_C0014292" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Checks structure for table FLW_EV_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014281" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014282" CHECK ("AUTHOR" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014283" CHECK ("FILENAME" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014284" CHECK ("DATEEXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014285" CHECK ("ORDEREXECUTED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014286" CHECK ("EXECTYPE" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_FLW_EV_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0014287" CHECK ("ID" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0014288" CHECK ("LOCKED" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table FLW_RU_BATCH +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014275" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_RU_BATCH +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014272" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014273" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014274" CHECK ("CREATE_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Primary Key structure for table FLW_RU_BATCH_PART +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014279" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_RU_BATCH_PART +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014276" CHECK ("ID_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014277" CHECK ("TYPE_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014278" CHECK ("CREATE_TIME_" IS NOT NULL) NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Indexes structure for table FLW_RU_BATCH_PART +-- ---------------------------- +CREATE INDEX "FLW_IDX_BATCH_PART" + ON "FLW_RU_BATCH_PART" ("BATCH_ID_" ASC) LOCAL + LOGGING + ONLINE + NOSORT + VISIBLE +PCTFREE 10 +INITRANS 2 +STORAGE ( + BUFFER_POOL DEFAULT +); + +-- ---------------------------- +-- Foreign Keys structure for table ACT_APP_APPDEF +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_CASEDEF +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_CHILD" FOREIGN KEY ("MODEL_ID") REFERENCES "ACT_DE_MODEL" ("ID") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_PARENT" FOREIGN KEY ("PARENT_MODEL_ID") REFERENCES "ACT_DE_MODEL" ("ID") NOT DEFERRABLE INITIALLY IMMEDIATE NORELY VALIDATE; + +-- ---------------------------- +-- Foreign Keys structure for table ACT_GE_BYTEARRAY +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_PROCDEF_INFO +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RE_MODEL +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EXECUTION +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_TASK +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_TIMER_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_VARIABLE +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table FLW_RU_BATCH_PART +-- ---------------------------- diff --git a/doc/sql/flowable/flowable.postgres.all.create.sql b/doc/sql/flowable/flowable.postgres.all.create.sql new file mode 100644 index 0000000..ffd65c5 --- /dev/null +++ b/doc/sql/flowable/flowable.postgres.all.create.sql @@ -0,0 +1,3565 @@ +/* + Navicat Premium Data Transfer + + Source Server : postgres_localhost + Source Server Type : PostgreSQL + Source Server Version : 160002 (160002) + Source Host : localhost:5432 + Source Catalog : bladex + Source Schema : public + + Target Server Type : PostgreSQL + Target Server Version : 160002 (160002) + File Encoding : 65001 + + Date: 14/03/2024 23:13:06 +*/ + + +-- ---------------------------- +-- Sequence structure for act_evt_log_log_nr__seq +-- ---------------------------- +DROP SEQUENCE IF EXISTS "act_evt_log_log_nr__seq"; +CREATE SEQUENCE "act_evt_log_log_nr__seq" +INCREMENT 1 +MINVALUE 1 +MAXVALUE 2147483647 +START 1 +CACHE 1; + +-- ---------------------------- +-- Sequence structure for act_hi_tsk_log_id__seq +-- ---------------------------- +DROP SEQUENCE IF EXISTS "act_hi_tsk_log_id__seq"; +CREATE SEQUENCE "act_hi_tsk_log_id__seq" +INCREMENT 1 +MINVALUE 1 +MAXVALUE 2147483647 +START 1 +CACHE 1; + +-- ---------------------------- +-- Table structure for act_app_appdef +-- ---------------------------- +DROP TABLE IF EXISTS "act_app_appdef"; +CREATE TABLE "act_app_appdef" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "version_" int4 NOT NULL, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_name_" varchar(4000) COLLATE "pg_catalog"."default", + "description_" varchar(4000) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_app_appdef +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "act_app_databasechangelog"; +CREATE TABLE "act_app_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_app_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "act_app_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 11:14:44.941879', 1, 'EXECUTED', '9:959783069c0c7ce80320a0617aa48969', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', '', NULL, '3.6.3', NULL, NULL, '4629284892'), ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', '2019-08-01 11:14:44.954037', 2, 'EXECUTED', '9:c05b79a3b00e95136533085718361208', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', '', NULL, '3.6.3', NULL, NULL, '4629284892'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "act_app_databasechangeloglock"; +CREATE TABLE "act_app_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_app_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "act_app_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_deployment +-- ---------------------------- +DROP TABLE IF EXISTS "act_app_deployment"; +CREATE TABLE "act_app_deployment" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default", + "deploy_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_app_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_app_deployment_resource +-- ---------------------------- +DROP TABLE IF EXISTS "act_app_deployment_resource"; +CREATE TABLE "act_app_deployment_resource" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_bytes_" bytea +) +; + +-- ---------------------------- +-- Records of act_app_deployment_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_casedef +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_casedef"; +CREATE TABLE "act_cmmn_casedef" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "version_" int4 NOT NULL, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_name_" varchar(4000) COLLATE "pg_catalog"."default", + "description_" varchar(4000) COLLATE "pg_catalog"."default", + "has_graphical_notation_" bool, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "dgrm_resource_name_" varchar(4000) COLLATE "pg_catalog"."default", + "has_start_form_key_" bool +) +; + +-- ---------------------------- +-- Records of act_cmmn_casedef +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_databasechangelog"; +CREATE TABLE "act_cmmn_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_cmmn_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "act_cmmn_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.726809', 1, 'EXECUTED', '9:d0cc0aaadf0e4ef70c5b412cd05fadc4', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', '', NULL, '3.6.3', NULL, NULL, '4629284549'), ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.745381', 2, 'EXECUTED', '9:8095a5a8a222a100c2d0310cacbda5e7', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', '', NULL, '3.6.3', NULL, NULL, '4629284549'), ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.760777', 3, 'EXECUTED', '9:f031b4f0ae67bc5a640736b379049b12', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', '', NULL, '3.6.3', NULL, NULL, '4629284549'), ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.77726', 4, 'EXECUTED', '9:c484ecfb08719feccac2f80fc962dda9', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', '', NULL, '3.6.3', NULL, NULL, '4629284549'), ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.786077', 5, 'EXECUTED', '9:7343ab247d959e5add9278b5386de833', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', '', NULL, '3.6.3', NULL, NULL, '4629284549'), ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2019-08-01 11:14:44.810331', 6, 'EXECUTED', '9:d73200db684b6cdb748cc03570d5d2e9', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', '', NULL, '3.6.3', NULL, NULL, '4629284549'), ('8', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.540972', 7, 'EXECUTED', '9:eda5e43816221f2d8554bfcc90f1c37e', 'addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('9', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.553043', 8, 'EXECUTED', '9:c34685611779075a73caf8c380f078ea', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('10', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.573999', 9, 'EXECUTED', '9:368e9472ad2348206205170d6c52d58e', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_CASE_INST_REF_ID_, tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE...', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('11', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.583162', 10, 'EXECUTED', '9:e54b50ceb2bcd5355ae4dfb56d9ff3ad', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('12', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.589943', 11, 'EXECUTED', '9:f53f262768d04e74529f43fcd93429b0', 'addColumn tableName=ACT_CMMN_RU_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('13', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.604853', 12, 'EXECUTED', '9:64e7eafbe97997094654e83caea99895', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('14', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.619723', 13, 'EXECUTED', '9:ab7d934abde497eac034701542e0a281', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('16', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.634375', 14, 'EXECUTED', '9:03928d422e510959770e7a9daa5a993f', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('17', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.654827', 15, 'EXECUTED', '9:f30304cf001d6eac78c793ea88cd5781', 'createIndex indexName=ACT_IDX_HI_CASE_INST_END, tableName=ACT_CMMN_HI_CASE_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'), ('18', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', '2024-03-14 23:11:28.677355', 16, 'EXECUTED', '9:d782865087d6c0c3dc033ac20e783008', 'createIndex indexName=ACT_IDX_HI_PLAN_ITEM_INST_CASE, tableName=ACT_CMMN_HI_PLAN_ITEM_INST', '', NULL, '4.24.0', NULL, NULL, '0429088447'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_databasechangeloglock"; +CREATE TABLE "act_cmmn_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_cmmn_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "act_cmmn_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_deployment +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_deployment"; +CREATE TABLE "act_cmmn_deployment" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default", + "deploy_time_" timestamp(6), + "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_cmmn_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_deployment_resource +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_deployment_resource"; +CREATE TABLE "act_cmmn_deployment_resource" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_bytes_" bytea, + "generated_" bool +) +; + +-- ---------------------------- +-- Records of act_cmmn_deployment_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_hi_case_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_hi_case_inst"; +CREATE TABLE "act_cmmn_hi_case_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "business_key_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "parent_id_" varchar(255) COLLATE "pg_catalog"."default", + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "state_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6), + "end_time_" timestamp(6), + "start_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "callback_id_" varchar(255) COLLATE "pg_catalog"."default", + "callback_type_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "reference_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_type_" varchar(255) COLLATE "pg_catalog"."default", + "last_reactivation_time_" timestamp(3), + "last_reactivation_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "business_status_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_cmmn_hi_case_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_hi_mil_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_hi_mil_inst"; +CREATE TABLE "act_cmmn_hi_mil_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "time_stamp_" timestamp(6) NOT NULL, + "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "element_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_cmmn_hi_mil_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_hi_plan_item_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_hi_plan_item_inst"; +CREATE TABLE "act_cmmn_hi_plan_item_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "state_" varchar(255) COLLATE "pg_catalog"."default", + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "is_stage_" bool, + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "item_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "item_definition_type_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "last_available_time_" timestamp(6), + "last_enabled_time_" timestamp(6), + "last_disabled_time_" timestamp(6), + "last_started_time_" timestamp(6), + "last_suspended_time_" timestamp(6), + "completed_time_" timestamp(6), + "occurred_time_" timestamp(6), + "terminated_time_" timestamp(6), + "exit_time_" timestamp(6), + "ended_time_" timestamp(6), + "last_updated_time_" timestamp(6), + "start_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_type_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "entry_criterion_id_" varchar(255) COLLATE "pg_catalog"."default", + "exit_criterion_id_" varchar(255) COLLATE "pg_catalog"."default", + "show_in_overview_" bool, + "extra_value_" varchar(255) COLLATE "pg_catalog"."default", + "derived_case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "last_unavailable_time_" timestamp(3) +) +; + +-- ---------------------------- +-- Records of act_cmmn_hi_plan_item_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_case_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_ru_case_inst"; +CREATE TABLE "act_cmmn_ru_case_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "business_key_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "parent_id_" varchar(255) COLLATE "pg_catalog"."default", + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "state_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6), + "start_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "callback_id_" varchar(255) COLLATE "pg_catalog"."default", + "callback_type_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "lock_time_" timestamp(6), + "is_completeable_" bool, + "reference_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_type_" varchar(255) COLLATE "pg_catalog"."default", + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "last_reactivation_time_" timestamp(3), + "last_reactivation_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "business_status_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_cmmn_ru_case_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_mil_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_ru_mil_inst"; +CREATE TABLE "act_cmmn_ru_mil_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "time_stamp_" timestamp(6) NOT NULL, + "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "element_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_cmmn_ru_mil_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_plan_item_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_ru_plan_item_inst"; +CREATE TABLE "act_cmmn_ru_plan_item_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "is_stage_" bool, + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "state_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "start_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_type_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "item_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "item_definition_type_" varchar(255) COLLATE "pg_catalog"."default", + "is_completeable_" bool, + "is_count_enabled_" bool, + "var_count_" int4, + "sentry_part_inst_count_" int4, + "last_available_time_" timestamp(3), + "last_enabled_time_" timestamp(3), + "last_disabled_time_" timestamp(3), + "last_started_time_" timestamp(3), + "last_suspended_time_" timestamp(3), + "completed_time_" timestamp(3), + "occurred_time_" timestamp(3), + "terminated_time_" timestamp(3), + "exit_time_" timestamp(3), + "ended_time_" timestamp(3), + "entry_criterion_id_" varchar(255) COLLATE "pg_catalog"."default", + "exit_criterion_id_" varchar(255) COLLATE "pg_catalog"."default", + "extra_value_" varchar(255) COLLATE "pg_catalog"."default", + "derived_case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "last_unavailable_time_" timestamp(3) +) +; + +-- ---------------------------- +-- Records of act_cmmn_ru_plan_item_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_cmmn_ru_sentry_part_inst +-- ---------------------------- +DROP TABLE IF EXISTS "act_cmmn_ru_sentry_part_inst"; +CREATE TABLE "act_cmmn_ru_sentry_part_inst" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 NOT NULL, + "case_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "case_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "plan_item_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "on_part_id_" varchar(255) COLLATE "pg_catalog"."default", + "if_part_id_" varchar(255) COLLATE "pg_catalog"."default", + "time_stamp_" timestamp(6) +) +; + +-- ---------------------------- +-- Records of act_cmmn_ru_sentry_part_inst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_co_content_item +-- ---------------------------- +DROP TABLE IF EXISTS "act_co_content_item"; +CREATE TABLE "act_co_content_item" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "mime_type_" varchar(255) COLLATE "pg_catalog"."default", + "task_id_" varchar(255) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "content_store_id_" varchar(255) COLLATE "pg_catalog"."default", + "content_store_name_" varchar(255) COLLATE "pg_catalog"."default", + "field_" varchar(400) COLLATE "pg_catalog"."default", + "content_available_" bool DEFAULT false, + "created_" timestamp(6), + "created_by_" varchar(255) COLLATE "pg_catalog"."default", + "last_modified_" timestamp(6), + "last_modified_by_" varchar(255) COLLATE "pg_catalog"."default", + "content_size_" int8 DEFAULT 0, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_co_content_item +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_co_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "act_co_databasechangelog"; +CREATE TABLE "act_co_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_co_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "act_co_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 11:14:44.385299', 1, 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4629284351'), ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', '2019-08-01 11:14:44.398737', 2, 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', '', NULL, '3.6.3', NULL, NULL, '4629284351'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_co_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "act_co_databasechangeloglock"; +CREATE TABLE "act_co_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_co_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "act_co_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "act_de_databasechangelog"; +CREATE TABLE "act_de_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_de_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "act_de_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 11:15:20.699493', 1, 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', '', NULL, '3.6.3', NULL, NULL, '4629320613'), ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', '2019-08-01 11:15:20.714118', 2, 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', '', NULL, '3.6.3', NULL, NULL, '4629320613'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "act_de_databasechangeloglock"; +CREATE TABLE "act_de_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_de_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "act_de_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_model +-- ---------------------------- +DROP TABLE IF EXISTS "act_de_model"; +CREATE TABLE "act_de_model" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name" varchar(400) COLLATE "pg_catalog"."default" NOT NULL, + "model_key" varchar(400) COLLATE "pg_catalog"."default" NOT NULL, + "description" varchar(4000) COLLATE "pg_catalog"."default", + "model_comment" varchar(4000) COLLATE "pg_catalog"."default", + "created" timestamp(6), + "created_by" varchar(255) COLLATE "pg_catalog"."default", + "last_updated" timestamp(6), + "last_updated_by" varchar(255) COLLATE "pg_catalog"."default", + "version" int4, + "model_editor_json" text COLLATE "pg_catalog"."default", + "model_editor_xml" text COLLATE "pg_catalog"."default", + "thumbnail" bytea, + "model_type" int4, + "tenant_id" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_de_model +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_model_history +-- ---------------------------- +DROP TABLE IF EXISTS "act_de_model_history"; +CREATE TABLE "act_de_model_history" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name" varchar(400) COLLATE "pg_catalog"."default" NOT NULL, + "model_key" varchar(400) COLLATE "pg_catalog"."default" NOT NULL, + "description" varchar(4000) COLLATE "pg_catalog"."default", + "model_comment" varchar(4000) COLLATE "pg_catalog"."default", + "created" timestamp(6), + "created_by" varchar(255) COLLATE "pg_catalog"."default", + "last_updated" timestamp(6), + "last_updated_by" varchar(255) COLLATE "pg_catalog"."default", + "removal_date" timestamp(6), + "version" int4, + "model_editor_json" text COLLATE "pg_catalog"."default", + "model_id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "model_type" int4, + "tenant_id" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_de_model_history +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_de_model_relation +-- ---------------------------- +DROP TABLE IF EXISTS "act_de_model_relation"; +CREATE TABLE "act_de_model_relation" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "parent_model_id" varchar(255) COLLATE "pg_catalog"."default", + "model_id" varchar(255) COLLATE "pg_catalog"."default", + "relation_type" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_de_model_relation +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "act_dmn_databasechangelog"; +CREATE TABLE "act_dmn_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_dmn_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "act_dmn_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.107764', 1, 'EXECUTED', '9:5b36e70aee5a2e42f6e7a62ea5fa681b', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4629284058'), ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.126839', 2, 'EXECUTED', '9:fd13fa3f7af55d2b72f763fc261da30d', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4629284058'), ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.132822', 3, 'EXECUTED', '9:9f30e6a3557d4b4c713dbb2dcc141782', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '3.6.3', NULL, NULL, '4629284058'), ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.140014', 4, 'EXECUTED', '9:41085fbde807dba96104ee75a2fcc4cc', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4629284058'), ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2019-08-01 11:14:44.147178', 5, 'EXECUTED', '9:f00f92f3ef1af3fc1604f0323630f9b1', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', '', NULL, '3.6.3', NULL, NULL, '4629284058'), ('7', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2024-03-14 23:11:27.78874', 6, 'EXECUTED', '9:d24d4c5f44083b4edf1231a7a682a2cd', 'dropIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE; renameTable newTableName=ACT_DMN_DECISION, oldTableName=ACT_DMN_DECISION_TABLE; createIndex indexName=ACT_IDX_DMN_DEC_UNIQ, tableName=ACT_DMN_DECISION', '', NULL, '4.24.0', NULL, NULL, '0429087721'), ('8', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2024-03-14 23:11:27.798456', 7, 'EXECUTED', '9:3998ef0958b46fe9c19458183952d2a0', 'addColumn tableName=ACT_DMN_DECISION', '', NULL, '4.24.0', NULL, NULL, '0429087721'), ('9', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', '2024-03-14 23:11:27.816742', 8, 'EXECUTED', '9:5c9dc65601456faa1aa12f8d3afe0e9e', 'createIndex indexName=ACT_IDX_DMN_INSTANCE_ID, tableName=ACT_DMN_HI_DECISION_EXECUTION', '', NULL, '4.24.0', NULL, NULL, '0429087721'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "act_dmn_databasechangeloglock"; +CREATE TABLE "act_dmn_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_dmn_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "act_dmn_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_decision +-- ---------------------------- +DROP TABLE IF EXISTS "act_dmn_decision"; +CREATE TABLE "act_dmn_decision" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "version_" int4, + "key_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_name_" varchar(255) COLLATE "pg_catalog"."default", + "description_" varchar(255) COLLATE "pg_catalog"."default", + "decision_type_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_dmn_decision +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_deployment +-- ---------------------------- +DROP TABLE IF EXISTS "act_dmn_deployment"; +CREATE TABLE "act_dmn_deployment" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deploy_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_dmn_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_deployment_resource +-- ---------------------------- +DROP TABLE IF EXISTS "act_dmn_deployment_resource"; +CREATE TABLE "act_dmn_deployment_resource" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_bytes_" bytea +) +; + +-- ---------------------------- +-- Records of act_dmn_deployment_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_dmn_hi_decision_execution +-- ---------------------------- +DROP TABLE IF EXISTS "act_dmn_hi_decision_execution"; +CREATE TABLE "act_dmn_hi_decision_execution" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "decision_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6), + "end_time_" timestamp(6), + "instance_id_" varchar(255) COLLATE "pg_catalog"."default", + "execution_id_" varchar(255) COLLATE "pg_catalog"."default", + "activity_id_" varchar(255) COLLATE "pg_catalog"."default", + "failed_" bool DEFAULT false, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "execution_json_" text COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_dmn_hi_decision_execution +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_evt_log +-- ---------------------------- +DROP TABLE IF EXISTS "act_evt_log"; +CREATE TABLE "act_evt_log" ( + "log_nr_" int4 NOT NULL DEFAULT nextval('act_evt_log_log_nr__seq'::regclass), + "type_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "time_stamp_" timestamp(6) NOT NULL, + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "data_" bytea, + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "lock_time_" timestamp(6), + "is_processed_" int2 DEFAULT 0 +) +; + +-- ---------------------------- +-- Records of act_evt_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "act_fo_databasechangelog"; +CREATE TABLE "act_fo_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_fo_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "act_fo_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.257713', 1, 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4629284208'), ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.269617', 2, 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', '', NULL, '3.6.3', NULL, NULL, '4629284208'), ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.276052', 3, 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4629284208'), ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', '2019-08-01 11:14:44.2847', 4, 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', '', NULL, '3.6.3', NULL, NULL, '4629284208'); +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "act_fo_databasechangeloglock"; +CREATE TABLE "act_fo_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_fo_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "act_fo_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_definition +-- ---------------------------- +DROP TABLE IF EXISTS "act_fo_form_definition"; +CREATE TABLE "act_fo_form_definition" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "version_" int4, + "key_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_name_" varchar(255) COLLATE "pg_catalog"."default", + "description_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_fo_form_definition +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_deployment +-- ---------------------------- +DROP TABLE IF EXISTS "act_fo_form_deployment"; +CREATE TABLE "act_fo_form_deployment" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deploy_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_fo_form_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_instance +-- ---------------------------- +DROP TABLE IF EXISTS "act_fo_form_instance"; +CREATE TABLE "act_fo_form_instance" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "form_definition_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "task_id_" varchar(255) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(255) COLLATE "pg_catalog"."default", + "submitted_date_" timestamp(6), + "submitted_by_" varchar(255) COLLATE "pg_catalog"."default", + "form_values_id_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_fo_form_instance +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_fo_form_resource +-- ---------------------------- +DROP TABLE IF EXISTS "act_fo_form_resource"; +CREATE TABLE "act_fo_form_resource" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_bytes_" bytea +) +; + +-- ---------------------------- +-- Records of act_fo_form_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ge_bytearray +-- ---------------------------- +DROP TABLE IF EXISTS "act_ge_bytearray"; +CREATE TABLE "act_ge_bytearray" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(64) COLLATE "pg_catalog"."default", + "bytes_" bytea, + "generated_" bool +) +; + +-- ---------------------------- +-- Records of act_ge_bytearray +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ge_property +-- ---------------------------- +DROP TABLE IF EXISTS "act_ge_property"; +CREATE TABLE "act_ge_property" ( + "name_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "value_" varchar(300) COLLATE "pg_catalog"."default", + "rev_" int4 +) +; + +-- ---------------------------- +-- Records of act_ge_property +-- ---------------------------- +BEGIN; +INSERT INTO "act_ge_property" ("name_", "value_", "rev_") VALUES ('next.dbid', '1', 1), ('cfg.execution-related-entities-count', 'true', 1), ('cfg.task-related-entities-count', 'true', 1), ('common.schema.version', '7.0.1.1', 1), ('identitylink.schema.version', '7.0.1.1', 1), ('entitylink.schema.version', '7.0.1.1', 1), ('eventsubscription.schema.version', '7.0.1.1', 1), ('task.schema.version', '7.0.1.1', 1), ('variable.schema.version', '7.0.1.1', 1), ('job.schema.version', '7.0.1.1', 1), ('batch.schema.version', '7.0.1.1', 1), ('schema.version', '7.0.1.1', 2), ('schema.history', 'upgrade(6.5.0.1->7.0.1.1)', 2); +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_actinst +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_actinst"; +CREATE TABLE "act_hi_actinst" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 DEFAULT 1, + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "act_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "call_proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "act_name_" varchar(255) COLLATE "pg_catalog"."default", + "act_type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "assignee_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6) NOT NULL, + "end_time_" timestamp(6), + "duration_" int8, + "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "transaction_order_" int4 +) +; + +-- ---------------------------- +-- Records of act_hi_actinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_attachment +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_attachment"; +CREATE TABLE "act_hi_attachment" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "description_" varchar(4000) COLLATE "pg_catalog"."default", + "type_" varchar(255) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "url_" varchar(4000) COLLATE "pg_catalog"."default", + "content_id_" varchar(64) COLLATE "pg_catalog"."default", + "time_" timestamp(6) +) +; + +-- ---------------------------- +-- Records of act_hi_attachment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_comment +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_comment"; +CREATE TABLE "act_hi_comment" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "type_" varchar(255) COLLATE "pg_catalog"."default", + "time_" timestamp(6) NOT NULL, + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "action_" varchar(255) COLLATE "pg_catalog"."default", + "message_" varchar(4000) COLLATE "pg_catalog"."default", + "full_msg_" bytea +) +; + +-- ---------------------------- +-- Records of act_hi_comment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_detail +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_detail"; +CREATE TABLE "act_hi_detail" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "act_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "var_type_" varchar(64) COLLATE "pg_catalog"."default", + "rev_" int4, + "time_" timestamp(6) NOT NULL, + "bytearray_id_" varchar(64) COLLATE "pg_catalog"."default", + "double_" float8, + "long_" int8, + "text_" varchar(4000) COLLATE "pg_catalog"."default", + "text2_" varchar(4000) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_hi_detail +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_entitylink +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_entitylink"; +CREATE TABLE "act_hi_entitylink" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "link_type_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "ref_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "ref_scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "ref_scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "hierarchy_type_" varchar(255) COLLATE "pg_catalog"."default", + "root_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "root_scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "parent_element_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_hi_entitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_identitylink +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_identitylink"; +CREATE TABLE "act_hi_identitylink" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "group_id_" varchar(255) COLLATE "pg_catalog"."default", + "type_" varchar(255) COLLATE "pg_catalog"."default", + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_hi_identitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_procinst +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_procinst"; +CREATE TABLE "act_hi_procinst" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 DEFAULT 1, + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "business_key_" varchar(255) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "start_time_" timestamp(6) NOT NULL, + "end_time_" timestamp(6), + "duration_" int8, + "start_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "start_act_id_" varchar(255) COLLATE "pg_catalog"."default", + "end_act_id_" varchar(255) COLLATE "pg_catalog"."default", + "super_process_instance_id_" varchar(64) COLLATE "pg_catalog"."default", + "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "callback_id_" varchar(255) COLLATE "pg_catalog"."default", + "callback_type_" varchar(255) COLLATE "pg_catalog"."default", + "reference_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_type_" varchar(255) COLLATE "pg_catalog"."default", + "propagated_stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "business_status_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_hi_procinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_taskinst +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_taskinst"; +CREATE TABLE "act_hi_taskinst" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 DEFAULT 1, + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_def_key_" varchar(255) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "parent_task_id_" varchar(64) COLLATE "pg_catalog"."default", + "description_" varchar(4000) COLLATE "pg_catalog"."default", + "owner_" varchar(255) COLLATE "pg_catalog"."default", + "assignee_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6) NOT NULL, + "claim_time_" timestamp(6), + "end_time_" timestamp(6), + "duration_" int8, + "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default", + "priority_" int4, + "due_date_" timestamp(6), + "form_key_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "last_updated_time_" timestamp(6), + "propagated_stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "state_" varchar(255) COLLATE "pg_catalog"."default", + "in_progress_time_" timestamp(6), + "in_progress_started_by_" varchar(255) COLLATE "pg_catalog"."default", + "claimed_by_" varchar(255) COLLATE "pg_catalog"."default", + "suspended_time_" timestamp(6), + "suspended_by_" varchar(255) COLLATE "pg_catalog"."default", + "completed_by_" varchar(255) COLLATE "pg_catalog"."default", + "in_progress_due_date_" timestamp(6) +) +; + +-- ---------------------------- +-- Records of act_hi_taskinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_tsk_log +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_tsk_log"; +CREATE TABLE "act_hi_tsk_log" ( + "id_" int4 NOT NULL DEFAULT nextval('act_hi_tsk_log_id__seq'::regclass), + "type_" varchar(64) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "time_stamp_" timestamp(6) NOT NULL, + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "data_" varchar(4000) COLLATE "pg_catalog"."default", + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_hi_tsk_log +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_hi_varinst +-- ---------------------------- +DROP TABLE IF EXISTS "act_hi_varinst"; +CREATE TABLE "act_hi_varinst" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 DEFAULT 1, + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "var_type_" varchar(100) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "bytearray_id_" varchar(64) COLLATE "pg_catalog"."default", + "double_" float8, + "long_" int8, + "text_" varchar(4000) COLLATE "pg_catalog"."default", + "text2_" varchar(4000) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "last_updated_time_" timestamp(6), + "meta_info_" varchar(4000) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_hi_varinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_bytearray +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_bytearray"; +CREATE TABLE "act_id_bytearray" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "bytes_" bytea +) +; + +-- ---------------------------- +-- Records of act_id_bytearray +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_group +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_group"; +CREATE TABLE "act_id_group" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "type_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_id_group +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_info +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_info"; +CREATE TABLE "act_id_info" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "user_id_" varchar(64) COLLATE "pg_catalog"."default", + "type_" varchar(64) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default", + "value_" varchar(255) COLLATE "pg_catalog"."default", + "password_" bytea, + "parent_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_id_info +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_membership +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_membership"; +CREATE TABLE "act_id_membership" ( + "user_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "group_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL +) +; + +-- ---------------------------- +-- Records of act_id_membership +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_priv +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_priv"; +CREATE TABLE "act_id_priv" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL +) +; + +-- ---------------------------- +-- Records of act_id_priv +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_priv_mapping +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_priv_mapping"; +CREATE TABLE "act_id_priv_mapping" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "priv_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "group_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_id_priv_mapping +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_property +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_property"; +CREATE TABLE "act_id_property" ( + "name_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "value_" varchar(300) COLLATE "pg_catalog"."default", + "rev_" int4 +) +; + +-- ---------------------------- +-- Records of act_id_property +-- ---------------------------- +BEGIN; +INSERT INTO "act_id_property" ("name_", "value_", "rev_") VALUES ('schema.version', '7.0.1.1', 1); +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_token +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_token"; +CREATE TABLE "act_id_token" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "token_value_" varchar(255) COLLATE "pg_catalog"."default", + "token_date_" timestamp(6), + "ip_address_" varchar(255) COLLATE "pg_catalog"."default", + "user_agent_" varchar(255) COLLATE "pg_catalog"."default", + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "token_data_" varchar(2000) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_id_token +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_id_user +-- ---------------------------- +DROP TABLE IF EXISTS "act_id_user"; +CREATE TABLE "act_id_user" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "first_" varchar(255) COLLATE "pg_catalog"."default", + "last_" varchar(255) COLLATE "pg_catalog"."default", + "display_name_" varchar(255) COLLATE "pg_catalog"."default", + "email_" varchar(255) COLLATE "pg_catalog"."default", + "pwd_" varchar(255) COLLATE "pg_catalog"."default", + "picture_id_" varchar(64) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_id_user +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_procdef_info +-- ---------------------------- +DROP TABLE IF EXISTS "act_procdef_info"; +CREATE TABLE "act_procdef_info" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "info_json_id_" varchar(64) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_procdef_info +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_re_deployment +-- ---------------------------- +DROP TABLE IF EXISTS "act_re_deployment"; +CREATE TABLE "act_re_deployment" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "deploy_time_" timestamp(6), + "derived_from_" varchar(64) COLLATE "pg_catalog"."default", + "derived_from_root_" varchar(64) COLLATE "pg_catalog"."default", + "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "engine_version_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_re_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_re_model +-- ---------------------------- +DROP TABLE IF EXISTS "act_re_model"; +CREATE TABLE "act_re_model" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "last_update_time_" timestamp(6), + "version_" int4, + "meta_info_" varchar(4000) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(64) COLLATE "pg_catalog"."default", + "editor_source_value_id_" varchar(64) COLLATE "pg_catalog"."default", + "editor_source_extra_value_id_" varchar(64) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_re_model +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_re_procdef +-- ---------------------------- +DROP TABLE IF EXISTS "act_re_procdef"; +CREATE TABLE "act_re_procdef" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "key_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "version_" int4 NOT NULL, + "deployment_id_" varchar(64) COLLATE "pg_catalog"."default", + "resource_name_" varchar(4000) COLLATE "pg_catalog"."default", + "dgrm_resource_name_" varchar(4000) COLLATE "pg_catalog"."default", + "description_" varchar(4000) COLLATE "pg_catalog"."default", + "has_start_form_key_" bool, + "has_graphical_notation_" bool, + "suspension_state_" int4, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "derived_from_" varchar(64) COLLATE "pg_catalog"."default", + "derived_from_root_" varchar(64) COLLATE "pg_catalog"."default", + "derived_version_" int4 NOT NULL DEFAULT 0, + "engine_version_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_re_procdef +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_actinst +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_actinst"; +CREATE TABLE "act_ru_actinst" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4 DEFAULT 1, + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "act_id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "call_proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "act_name_" varchar(255) COLLATE "pg_catalog"."default", + "act_type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "assignee_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6) NOT NULL, + "end_time_" timestamp(6), + "duration_" int8, + "delete_reason_" varchar(4000) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "transaction_order_" int4 +) +; + +-- ---------------------------- +-- Records of act_ru_actinst +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_deadletter_job +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_deadletter_job"; +CREATE TABLE "act_ru_deadletter_job" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "exclusive_" bool, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "element_name_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default", + "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default", + "duedate_" timestamp(6), + "repeat_" varchar(255) COLLATE "pg_catalog"."default", + "handler_type_" varchar(255) COLLATE "pg_catalog"."default", + "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default", + "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "correlation_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_deadletter_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_entitylink +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_entitylink"; +CREATE TABLE "act_ru_entitylink" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "create_time_" timestamp(6), + "link_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "ref_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "ref_scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "ref_scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "hierarchy_type_" varchar(255) COLLATE "pg_catalog"."default", + "root_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "root_scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "parent_element_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_entitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_event_subscr +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_event_subscr"; +CREATE TABLE "act_ru_event_subscr" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "event_type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "event_name_" varchar(255) COLLATE "pg_catalog"."default", + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "activity_id_" varchar(64) COLLATE "pg_catalog"."default", + "configuration_" varchar(255) COLLATE "pg_catalog"."default", + "created_" timestamp(6) NOT NULL, + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_type_" varchar(64) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "lock_time_" timestamp(6), + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_key_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_event_subscr +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_execution +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_execution"; +CREATE TABLE "act_ru_execution" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "business_key_" varchar(255) COLLATE "pg_catalog"."default", + "parent_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "super_exec_" varchar(64) COLLATE "pg_catalog"."default", + "root_proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "act_id_" varchar(255) COLLATE "pg_catalog"."default", + "is_active_" bool, + "is_concurrent_" bool, + "is_scope_" bool, + "is_event_scope_" bool, + "is_mi_root_" bool, + "suspension_state_" int4, + "cached_ent_state_" int4, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "start_act_id_" varchar(255) COLLATE "pg_catalog"."default", + "start_time_" timestamp(6), + "start_user_id_" varchar(255) COLLATE "pg_catalog"."default", + "lock_time_" timestamp(6), + "is_count_enabled_" bool, + "evt_subscr_count_" int4, + "task_count_" int4, + "job_count_" int4, + "timer_job_count_" int4, + "susp_job_count_" int4, + "deadletter_job_count_" int4, + "var_count_" int4, + "id_link_count_" int4, + "callback_id_" varchar(255) COLLATE "pg_catalog"."default", + "callback_type_" varchar(255) COLLATE "pg_catalog"."default", + "reference_id_" varchar(255) COLLATE "pg_catalog"."default", + "reference_type_" varchar(255) COLLATE "pg_catalog"."default", + "propagated_stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "external_worker_job_count_" int4, + "business_status_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_execution +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_external_job +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_external_job"; +CREATE TABLE "act_ru_external_job" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "lock_exp_time_" timestamp(6), + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "exclusive_" bool, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "element_name_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "retries_" int4, + "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default", + "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default", + "duedate_" timestamp(6), + "repeat_" varchar(255) COLLATE "pg_catalog"."default", + "handler_type_" varchar(255) COLLATE "pg_catalog"."default", + "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default", + "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "correlation_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_external_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_history_job +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_history_job"; +CREATE TABLE "act_ru_history_job" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "lock_exp_time_" timestamp(6), + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "retries_" int4, + "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default", + "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default", + "handler_type_" varchar(255) COLLATE "pg_catalog"."default", + "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default", + "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default", + "adv_handler_cfg_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of act_ru_history_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_identitylink +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_identitylink"; +CREATE TABLE "act_ru_identitylink" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "group_id_" varchar(255) COLLATE "pg_catalog"."default", + "type_" varchar(255) COLLATE "pg_catalog"."default", + "user_id_" varchar(255) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_identitylink +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_job +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_job"; +CREATE TABLE "act_ru_job" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "lock_exp_time_" timestamp(6), + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "exclusive_" bool, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "element_name_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "retries_" int4, + "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default", + "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default", + "duedate_" timestamp(6), + "repeat_" varchar(255) COLLATE "pg_catalog"."default", + "handler_type_" varchar(255) COLLATE "pg_catalog"."default", + "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default", + "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "correlation_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_suspended_job +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_suspended_job"; +CREATE TABLE "act_ru_suspended_job" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "exclusive_" bool, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "element_name_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "retries_" int4, + "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default", + "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default", + "duedate_" timestamp(6), + "repeat_" varchar(255) COLLATE "pg_catalog"."default", + "handler_type_" varchar(255) COLLATE "pg_catalog"."default", + "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default", + "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "correlation_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_suspended_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_task +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_task"; +CREATE TABLE "act_ru_task" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "name_" varchar(255) COLLATE "pg_catalog"."default", + "parent_task_id_" varchar(64) COLLATE "pg_catalog"."default", + "description_" varchar(4000) COLLATE "pg_catalog"."default", + "task_def_key_" varchar(255) COLLATE "pg_catalog"."default", + "owner_" varchar(255) COLLATE "pg_catalog"."default", + "assignee_" varchar(255) COLLATE "pg_catalog"."default", + "delegation_" varchar(64) COLLATE "pg_catalog"."default", + "priority_" int4, + "create_time_" timestamp(6), + "due_date_" timestamp(6), + "category_" varchar(255) COLLATE "pg_catalog"."default", + "suspension_state_" int4, + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "form_key_" varchar(255) COLLATE "pg_catalog"."default", + "claim_time_" timestamp(6), + "is_count_enabled_" bool, + "var_count_" int4, + "id_link_count_" int4, + "sub_task_count_" int4, + "propagated_stage_inst_id_" varchar(255) COLLATE "pg_catalog"."default", + "state_" varchar(255) COLLATE "pg_catalog"."default", + "in_progress_time_" timestamp(6), + "in_progress_started_by_" varchar(255) COLLATE "pg_catalog"."default", + "claimed_by_" varchar(255) COLLATE "pg_catalog"."default", + "suspended_time_" timestamp(6), + "suspended_by_" varchar(255) COLLATE "pg_catalog"."default", + "in_progress_due_date_" timestamp(6) +) +; + +-- ---------------------------- +-- Records of act_ru_task +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_timer_job +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_timer_job"; +CREATE TABLE "act_ru_timer_job" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "lock_exp_time_" timestamp(6), + "lock_owner_" varchar(255) COLLATE "pg_catalog"."default", + "exclusive_" bool, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "process_instance_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_def_id_" varchar(64) COLLATE "pg_catalog"."default", + "element_id_" varchar(255) COLLATE "pg_catalog"."default", + "element_name_" varchar(255) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "scope_definition_id_" varchar(255) COLLATE "pg_catalog"."default", + "retries_" int4, + "exception_stack_id_" varchar(64) COLLATE "pg_catalog"."default", + "exception_msg_" varchar(4000) COLLATE "pg_catalog"."default", + "duedate_" timestamp(6), + "repeat_" varchar(255) COLLATE "pg_catalog"."default", + "handler_type_" varchar(255) COLLATE "pg_catalog"."default", + "handler_cfg_" varchar(4000) COLLATE "pg_catalog"."default", + "custom_values_id_" varchar(64) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying, + "category_" varchar(255) COLLATE "pg_catalog"."default", + "correlation_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_timer_job +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for act_ru_variable +-- ---------------------------- +DROP TABLE IF EXISTS "act_ru_variable"; +CREATE TABLE "act_ru_variable" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "type_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "execution_id_" varchar(64) COLLATE "pg_catalog"."default", + "proc_inst_id_" varchar(64) COLLATE "pg_catalog"."default", + "task_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(255) COLLATE "pg_catalog"."default", + "scope_type_" varchar(255) COLLATE "pg_catalog"."default", + "bytearray_id_" varchar(64) COLLATE "pg_catalog"."default", + "double_" float8, + "long_" int8, + "text_" varchar(4000) COLLATE "pg_catalog"."default", + "text2_" varchar(4000) COLLATE "pg_catalog"."default", + "meta_info_" varchar(4000) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of act_ru_variable +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_channel_definition +-- ---------------------------- +DROP TABLE IF EXISTS "flw_channel_definition"; +CREATE TABLE "flw_channel_definition" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "version_" int4, + "key_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(3), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_name_" varchar(255) COLLATE "pg_catalog"."default", + "description_" varchar(255) COLLATE "pg_catalog"."default", + "type_" varchar(255) COLLATE "pg_catalog"."default", + "implementation_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of flw_channel_definition +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ev_databasechangelog +-- ---------------------------- +DROP TABLE IF EXISTS "flw_ev_databasechangelog"; +CREATE TABLE "flw_ev_databasechangelog" ( + "id" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "author" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "filename" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "dateexecuted" timestamp(6) NOT NULL, + "orderexecuted" int4 NOT NULL, + "exectype" varchar(10) COLLATE "pg_catalog"."default" NOT NULL, + "md5sum" varchar(35) COLLATE "pg_catalog"."default", + "description" varchar(255) COLLATE "pg_catalog"."default", + "comments" varchar(255) COLLATE "pg_catalog"."default", + "tag" varchar(255) COLLATE "pg_catalog"."default", + "liquibase" varchar(20) COLLATE "pg_catalog"."default", + "contexts" varchar(255) COLLATE "pg_catalog"."default", + "labels" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id" varchar(10) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of flw_ev_databasechangelog +-- ---------------------------- +BEGIN; +INSERT INTO "flw_ev_databasechangelog" ("id", "author", "filename", "dateexecuted", "orderexecuted", "exectype", "md5sum", "description", "comments", "tag", "liquibase", "contexts", "labels", "deployment_id") VALUES ('1', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-03-14 23:11:27.30292', 1, 'EXECUTED', '9:63268f536c469325acef35970312551b', 'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', '', NULL, '4.24.0', NULL, NULL, '0429087101'), ('2', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-03-14 23:11:27.314602', 2, 'EXECUTED', '9:dcb58b7dfd6dbda66939123a96985536', 'addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION', '', NULL, '4.24.0', NULL, NULL, '0429087101'), ('3', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', '2024-03-14 23:11:27.350248', 3, 'EXECUTED', '9:d0c05678d57af23ad93699991e3bf4f6', 'customChange', '', NULL, '4.24.0', NULL, NULL, '0429087101'); +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ev_databasechangeloglock +-- ---------------------------- +DROP TABLE IF EXISTS "flw_ev_databasechangeloglock"; +CREATE TABLE "flw_ev_databasechangeloglock" ( + "id" int4 NOT NULL, + "locked" bool NOT NULL, + "lockgranted" timestamp(6), + "lockedby" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of flw_ev_databasechangeloglock +-- ---------------------------- +BEGIN; +INSERT INTO "flw_ev_databasechangeloglock" ("id", "locked", "lockgranted", "lockedby") VALUES (1, 'f', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for flw_event_definition +-- ---------------------------- +DROP TABLE IF EXISTS "flw_event_definition"; +CREATE TABLE "flw_event_definition" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "version_" int4, + "key_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_name_" varchar(255) COLLATE "pg_catalog"."default", + "description_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of flw_event_definition +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_event_deployment +-- ---------------------------- +DROP TABLE IF EXISTS "flw_event_deployment"; +CREATE TABLE "flw_event_deployment" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "category_" varchar(255) COLLATE "pg_catalog"."default", + "deploy_time_" timestamp(3), + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default", + "parent_deployment_id_" varchar(255) COLLATE "pg_catalog"."default" +) +; + +-- ---------------------------- +-- Records of flw_event_deployment +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_event_resource +-- ---------------------------- +DROP TABLE IF EXISTS "flw_event_resource"; +CREATE TABLE "flw_event_resource" ( + "id_" varchar(255) COLLATE "pg_catalog"."default" NOT NULL, + "name_" varchar(255) COLLATE "pg_catalog"."default", + "deployment_id_" varchar(255) COLLATE "pg_catalog"."default", + "resource_bytes_" bytea +) +; + +-- ---------------------------- +-- Records of flw_event_resource +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ru_batch +-- ---------------------------- +DROP TABLE IF EXISTS "flw_ru_batch"; +CREATE TABLE "flw_ru_batch" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "type_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "search_key_" varchar(255) COLLATE "pg_catalog"."default", + "search_key2_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6) NOT NULL, + "complete_time_" timestamp(6), + "status_" varchar(255) COLLATE "pg_catalog"."default", + "batch_doc_id_" varchar(64) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of flw_ru_batch +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Table structure for flw_ru_batch_part +-- ---------------------------- +DROP TABLE IF EXISTS "flw_ru_batch_part"; +CREATE TABLE "flw_ru_batch_part" ( + "id_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "rev_" int4, + "batch_id_" varchar(64) COLLATE "pg_catalog"."default", + "type_" varchar(64) COLLATE "pg_catalog"."default" NOT NULL, + "scope_id_" varchar(64) COLLATE "pg_catalog"."default", + "sub_scope_id_" varchar(64) COLLATE "pg_catalog"."default", + "scope_type_" varchar(64) COLLATE "pg_catalog"."default", + "search_key_" varchar(255) COLLATE "pg_catalog"."default", + "search_key2_" varchar(255) COLLATE "pg_catalog"."default", + "create_time_" timestamp(6) NOT NULL, + "complete_time_" timestamp(6), + "status_" varchar(255) COLLATE "pg_catalog"."default", + "result_doc_id_" varchar(64) COLLATE "pg_catalog"."default", + "tenant_id_" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying +) +; + +-- ---------------------------- +-- Records of flw_ru_batch_part +-- ---------------------------- +BEGIN; +COMMIT; + +-- ---------------------------- +-- Alter sequences owned by +-- ---------------------------- +ALTER SEQUENCE "act_evt_log_log_nr__seq" +OWNED BY "act_evt_log"."log_nr_"; +SELECT setval('"act_evt_log_log_nr__seq"', 2, false); + +-- ---------------------------- +-- Alter sequences owned by +-- ---------------------------- +ALTER SEQUENCE "act_hi_tsk_log_id__seq" +OWNED BY "act_hi_tsk_log"."id_"; +SELECT setval('"act_hi_tsk_log_id__seq"', 2, false); + +-- ---------------------------- +-- Indexes structure for table act_app_appdef +-- ---------------------------- +CREATE INDEX "act_idx_app_def_dply" ON "act_app_appdef" USING btree ( + "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE UNIQUE INDEX "act_idx_app_def_uniq" ON "act_app_appdef" USING btree ( + "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "version_" "pg_catalog"."int4_ops" ASC NULLS LAST, + "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_app_appdef +-- ---------------------------- +ALTER TABLE "act_app_appdef" ADD CONSTRAINT "act_app_appdef_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_app_databasechangeloglock +-- ---------------------------- +ALTER TABLE "act_app_databasechangeloglock" ADD CONSTRAINT "act_app_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table act_app_deployment +-- ---------------------------- +ALTER TABLE "act_app_deployment" ADD CONSTRAINT "act_app_deployment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_app_deployment_resource +-- ---------------------------- +CREATE INDEX "act_idx_app_rsrc_dpl" ON "act_app_deployment_resource" USING btree ( + "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_app_deployment_resource +-- ---------------------------- +ALTER TABLE "act_app_deployment_resource" ADD CONSTRAINT "pk_app_deployment_resource" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_casedef +-- ---------------------------- +CREATE INDEX "act_idx_case_def_dply" ON "act_cmmn_casedef" USING btree ( + "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE UNIQUE INDEX "act_idx_case_def_uniq" ON "act_cmmn_casedef" USING btree ( + "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "version_" "pg_catalog"."int4_ops" ASC NULLS LAST, + "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_casedef +-- ---------------------------- +ALTER TABLE "act_cmmn_casedef" ADD CONSTRAINT "act_cmmn_casedef_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_databasechangeloglock +-- ---------------------------- +ALTER TABLE "act_cmmn_databasechangeloglock" ADD CONSTRAINT "act_cmmn_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_deployment +-- ---------------------------- +ALTER TABLE "act_cmmn_deployment" ADD CONSTRAINT "act_cmmn_deployment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_deployment_resource +-- ---------------------------- +CREATE INDEX "act_idx_cmmn_rsrc_dpl" ON "act_cmmn_deployment_resource" USING btree ( + "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_deployment_resource +-- ---------------------------- +ALTER TABLE "act_cmmn_deployment_resource" ADD CONSTRAINT "pk_cmmn_deployment_resource" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_hi_case_inst +-- ---------------------------- +CREATE INDEX "act_idx_hi_case_inst_end" ON "act_cmmn_hi_case_inst" USING btree ( + "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_hi_case_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_hi_case_inst" ADD CONSTRAINT "act_cmmn_hi_case_inst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_hi_mil_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_hi_mil_inst" ADD CONSTRAINT "act_cmmn_hi_mil_inst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_hi_plan_item_inst +-- ---------------------------- +CREATE INDEX "act_idx_hi_plan_item_inst_case" ON "act_cmmn_hi_plan_item_inst" USING btree ( + "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_hi_plan_item_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_hi_plan_item_inst" ADD CONSTRAINT "act_cmmn_hi_plan_item_inst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_ru_case_inst +-- ---------------------------- +CREATE INDEX "act_idx_case_inst_case_def" ON "act_cmmn_ru_case_inst" USING btree ( + "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_case_inst_parent" ON "act_cmmn_ru_case_inst" USING btree ( + "parent_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_case_inst_ref_id_" ON "act_cmmn_ru_case_inst" USING btree ( + "reference_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_ru_case_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_case_inst" ADD CONSTRAINT "act_cmmn_ru_case_inst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_ru_mil_inst +-- ---------------------------- +CREATE INDEX "act_idx_mil_case_def" ON "act_cmmn_ru_mil_inst" USING btree ( + "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_mil_case_inst" ON "act_cmmn_ru_mil_inst" USING btree ( + "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_ru_mil_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_mil_inst" ADD CONSTRAINT "act_cmmn_ru_mil_inst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_ru_plan_item_inst +-- ---------------------------- +CREATE INDEX "act_idx_plan_item_case_def" ON "act_cmmn_ru_plan_item_inst" USING btree ( + "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_plan_item_case_inst" ON "act_cmmn_ru_plan_item_inst" USING btree ( + "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_plan_item_stage_inst" ON "act_cmmn_ru_plan_item_inst" USING btree ( + "stage_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_ru_plan_item_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_plan_item_inst" ADD CONSTRAINT "pk_cmmn_plan_item_inst" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_cmmn_ru_sentry_part_inst +-- ---------------------------- +CREATE INDEX "act_idx_sentry_case_def" ON "act_cmmn_ru_sentry_part_inst" USING btree ( + "case_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_sentry_case_inst" ON "act_cmmn_ru_sentry_part_inst" USING btree ( + "case_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_sentry_plan_item" ON "act_cmmn_ru_sentry_part_inst" USING btree ( + "plan_item_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_cmmn_ru_sentry_part_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "pk_cmmn_sentry_part_inst" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_co_content_item +-- ---------------------------- +CREATE INDEX "idx_contitem_procid" ON "act_co_content_item" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "idx_contitem_scope" ON "act_co_content_item" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "idx_contitem_taskid" ON "act_co_content_item" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_co_content_item +-- ---------------------------- +ALTER TABLE "act_co_content_item" ADD CONSTRAINT "act_co_content_item_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_co_databasechangeloglock +-- ---------------------------- +ALTER TABLE "act_co_databasechangeloglock" ADD CONSTRAINT "act_co_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table act_de_databasechangeloglock +-- ---------------------------- +ALTER TABLE "act_de_databasechangeloglock" ADD CONSTRAINT "act_de_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Indexes structure for table act_de_model +-- ---------------------------- +CREATE INDEX "idx_proc_mod_created" ON "act_de_model" USING btree ( + "created_by" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_de_model +-- ---------------------------- +ALTER TABLE "act_de_model" ADD CONSTRAINT "act_de_model_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Indexes structure for table act_de_model_history +-- ---------------------------- +CREATE INDEX "idx_proc_mod_history_proc" ON "act_de_model_history" USING btree ( + "model_id" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_de_model_history +-- ---------------------------- +ALTER TABLE "act_de_model_history" ADD CONSTRAINT "act_de_model_history_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table act_de_model_relation +-- ---------------------------- +ALTER TABLE "act_de_model_relation" ADD CONSTRAINT "act_de_model_relation_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Primary Key structure for table act_dmn_databasechangeloglock +-- ---------------------------- +ALTER TABLE "act_dmn_databasechangeloglock" ADD CONSTRAINT "act_dmn_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Indexes structure for table act_dmn_decision +-- ---------------------------- +CREATE UNIQUE INDEX "act_idx_dmn_dec_uniq" ON "act_dmn_decision" USING btree ( + "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "version_" "pg_catalog"."int4_ops" ASC NULLS LAST, + "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_dmn_decision +-- ---------------------------- +ALTER TABLE "act_dmn_decision" ADD CONSTRAINT "act_dmn_decision_table_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_dmn_deployment +-- ---------------------------- +ALTER TABLE "act_dmn_deployment" ADD CONSTRAINT "act_dmn_deployment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_dmn_deployment_resource +-- ---------------------------- +ALTER TABLE "act_dmn_deployment_resource" ADD CONSTRAINT "act_dmn_deployment_resource_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_dmn_hi_decision_execution +-- ---------------------------- +CREATE INDEX "act_idx_dmn_instance_id" ON "act_dmn_hi_decision_execution" USING btree ( + "instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_dmn_hi_decision_execution +-- ---------------------------- +ALTER TABLE "act_dmn_hi_decision_execution" ADD CONSTRAINT "act_dmn_hi_decision_execution_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_evt_log +-- ---------------------------- +ALTER TABLE "act_evt_log" ADD CONSTRAINT "act_evt_log_pkey" PRIMARY KEY ("log_nr_"); + +-- ---------------------------- +-- Primary Key structure for table act_fo_databasechangeloglock +-- ---------------------------- +ALTER TABLE "act_fo_databasechangeloglock" ADD CONSTRAINT "act_fo_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Indexes structure for table act_fo_form_definition +-- ---------------------------- +CREATE UNIQUE INDEX "act_idx_form_def_uniq" ON "act_fo_form_definition" USING btree ( + "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "version_" "pg_catalog"."int4_ops" ASC NULLS LAST, + "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_fo_form_definition +-- ---------------------------- +ALTER TABLE "act_fo_form_definition" ADD CONSTRAINT "act_fo_form_definition_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_fo_form_deployment +-- ---------------------------- +ALTER TABLE "act_fo_form_deployment" ADD CONSTRAINT "act_fo_form_deployment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_fo_form_instance +-- ---------------------------- +ALTER TABLE "act_fo_form_instance" ADD CONSTRAINT "act_fo_form_instance_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_fo_form_resource +-- ---------------------------- +ALTER TABLE "act_fo_form_resource" ADD CONSTRAINT "act_fo_form_resource_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ge_bytearray +-- ---------------------------- +CREATE INDEX "act_idx_bytear_depl" ON "act_ge_bytearray" USING btree ( + "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ge_bytearray +-- ---------------------------- +ALTER TABLE "act_ge_bytearray" ADD CONSTRAINT "act_ge_bytearray_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_ge_property +-- ---------------------------- +ALTER TABLE "act_ge_property" ADD CONSTRAINT "act_ge_property_pkey" PRIMARY KEY ("name_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_actinst +-- ---------------------------- +CREATE INDEX "act_idx_hi_act_inst_end" ON "act_hi_actinst" USING btree ( + "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_act_inst_exec" ON "act_hi_actinst" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_act_inst_procinst" ON "act_hi_actinst" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_act_inst_start" ON "act_hi_actinst" USING btree ( + "start_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_hi_actinst +-- ---------------------------- +ALTER TABLE "act_hi_actinst" ADD CONSTRAINT "act_hi_actinst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_hi_attachment +-- ---------------------------- +ALTER TABLE "act_hi_attachment" ADD CONSTRAINT "act_hi_attachment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_hi_comment +-- ---------------------------- +ALTER TABLE "act_hi_comment" ADD CONSTRAINT "act_hi_comment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_detail +-- ---------------------------- +CREATE INDEX "act_idx_hi_detail_act_inst" ON "act_hi_detail" USING btree ( + "act_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_detail_name" ON "act_hi_detail" USING btree ( + "name_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_detail_proc_inst" ON "act_hi_detail" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_detail_task_id" ON "act_hi_detail" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_detail_time" ON "act_hi_detail" USING btree ( + "time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_hi_detail +-- ---------------------------- +ALTER TABLE "act_hi_detail" ADD CONSTRAINT "act_hi_detail_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_entitylink +-- ---------------------------- +CREATE INDEX "act_idx_hi_ent_lnk_ref_scope" ON "act_hi_entitylink" USING btree ( + "ref_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "ref_scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ent_lnk_root_scope" ON "act_hi_entitylink" USING btree ( + "root_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "root_scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ent_lnk_scope" ON "act_hi_entitylink" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ent_lnk_scope_def" ON "act_hi_entitylink" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_hi_entitylink +-- ---------------------------- +ALTER TABLE "act_hi_entitylink" ADD CONSTRAINT "act_hi_entitylink_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_identitylink +-- ---------------------------- +CREATE INDEX "act_idx_hi_ident_lnk_procinst" ON "act_hi_identitylink" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ident_lnk_scope" ON "act_hi_identitylink" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ident_lnk_scope_def" ON "act_hi_identitylink" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ident_lnk_sub_scope" ON "act_hi_identitylink" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ident_lnk_task" ON "act_hi_identitylink" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_ident_lnk_user" ON "act_hi_identitylink" USING btree ( + "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_hi_identitylink +-- ---------------------------- +ALTER TABLE "act_hi_identitylink" ADD CONSTRAINT "act_hi_identitylink_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_procinst +-- ---------------------------- +CREATE INDEX "act_idx_hi_pro_i_buskey" ON "act_hi_procinst" USING btree ( + "business_key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_pro_inst_end" ON "act_hi_procinst" USING btree ( + "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_pro_super_procinst" ON "act_hi_procinst" USING btree ( + "super_process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Uniques structure for table act_hi_procinst +-- ---------------------------- +ALTER TABLE "act_hi_procinst" ADD CONSTRAINT "act_hi_procinst_proc_inst_id__key" UNIQUE ("proc_inst_id_"); + +-- ---------------------------- +-- Primary Key structure for table act_hi_procinst +-- ---------------------------- +ALTER TABLE "act_hi_procinst" ADD CONSTRAINT "act_hi_procinst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_taskinst +-- ---------------------------- +CREATE INDEX "act_idx_hi_task_inst_procinst" ON "act_hi_taskinst" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_task_scope" ON "act_hi_taskinst" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_task_scope_def" ON "act_hi_taskinst" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_task_sub_scope" ON "act_hi_taskinst" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_hi_taskinst +-- ---------------------------- +ALTER TABLE "act_hi_taskinst" ADD CONSTRAINT "act_hi_taskinst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_hi_tsk_log +-- ---------------------------- +ALTER TABLE "act_hi_tsk_log" ADD CONSTRAINT "act_hi_tsk_log_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_hi_varinst +-- ---------------------------- +CREATE INDEX "act_idx_hi_procvar_exe" ON "act_hi_varinst" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_procvar_name_type" ON "act_hi_varinst" USING btree ( + "name_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "var_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_procvar_proc_inst" ON "act_hi_varinst" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_procvar_task_id" ON "act_hi_varinst" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_var_scope_id_type" ON "act_hi_varinst" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_hi_var_sub_id_type" ON "act_hi_varinst" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_hi_varinst +-- ---------------------------- +ALTER TABLE "act_hi_varinst" ADD CONSTRAINT "act_hi_varinst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_bytearray +-- ---------------------------- +ALTER TABLE "act_id_bytearray" ADD CONSTRAINT "act_id_bytearray_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_group +-- ---------------------------- +ALTER TABLE "act_id_group" ADD CONSTRAINT "act_id_group_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_info +-- ---------------------------- +ALTER TABLE "act_id_info" ADD CONSTRAINT "act_id_info_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_id_membership +-- ---------------------------- +CREATE INDEX "act_idx_memb_group" ON "act_id_membership" USING btree ( + "group_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_memb_user" ON "act_id_membership" USING btree ( + "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_id_membership +-- ---------------------------- +ALTER TABLE "act_id_membership" ADD CONSTRAINT "act_id_membership_pkey" PRIMARY KEY ("user_id_", "group_id_"); + +-- ---------------------------- +-- Uniques structure for table act_id_priv +-- ---------------------------- +ALTER TABLE "act_id_priv" ADD CONSTRAINT "act_uniq_priv_name" UNIQUE ("name_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_priv +-- ---------------------------- +ALTER TABLE "act_id_priv" ADD CONSTRAINT "act_id_priv_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_id_priv_mapping +-- ---------------------------- +CREATE INDEX "act_idx_priv_group" ON "act_id_priv_mapping" USING btree ( + "group_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_priv_mapping" ON "act_id_priv_mapping" USING btree ( + "priv_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_priv_user" ON "act_id_priv_mapping" USING btree ( + "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_id_priv_mapping +-- ---------------------------- +ALTER TABLE "act_id_priv_mapping" ADD CONSTRAINT "act_id_priv_mapping_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_property +-- ---------------------------- +ALTER TABLE "act_id_property" ADD CONSTRAINT "act_id_property_pkey" PRIMARY KEY ("name_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_token +-- ---------------------------- +ALTER TABLE "act_id_token" ADD CONSTRAINT "act_id_token_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_id_user +-- ---------------------------- +ALTER TABLE "act_id_user" ADD CONSTRAINT "act_id_user_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_procdef_info +-- ---------------------------- +CREATE INDEX "act_idx_procdef_info_json" ON "act_procdef_info" USING btree ( + "info_json_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_procdef_info_proc" ON "act_procdef_info" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Uniques structure for table act_procdef_info +-- ---------------------------- +ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_uniq_info_procdef" UNIQUE ("proc_def_id_"); + +-- ---------------------------- +-- Primary Key structure for table act_procdef_info +-- ---------------------------- +ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_procdef_info_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_re_deployment +-- ---------------------------- +ALTER TABLE "act_re_deployment" ADD CONSTRAINT "act_re_deployment_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_re_model +-- ---------------------------- +CREATE INDEX "act_idx_model_deployment" ON "act_re_model" USING btree ( + "deployment_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_model_source" ON "act_re_model" USING btree ( + "editor_source_value_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_model_source_extra" ON "act_re_model" USING btree ( + "editor_source_extra_value_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_re_model +-- ---------------------------- +ALTER TABLE "act_re_model" ADD CONSTRAINT "act_re_model_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Uniques structure for table act_re_procdef +-- ---------------------------- +ALTER TABLE "act_re_procdef" ADD CONSTRAINT "act_uniq_procdef" UNIQUE ("key_", "version_", "derived_version_", "tenant_id_"); + +-- ---------------------------- +-- Primary Key structure for table act_re_procdef +-- ---------------------------- +ALTER TABLE "act_re_procdef" ADD CONSTRAINT "act_re_procdef_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_actinst +-- ---------------------------- +CREATE INDEX "act_idx_ru_acti_end" ON "act_ru_actinst" USING btree ( + "end_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_acti_exec" ON "act_ru_actinst" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_acti_exec_act" ON "act_ru_actinst" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_acti_proc" ON "act_ru_actinst" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_acti_proc_act" ON "act_ru_actinst" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "act_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_acti_start" ON "act_ru_actinst" USING btree ( + "start_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_acti_task" ON "act_ru_actinst" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_actinst +-- ---------------------------- +ALTER TABLE "act_ru_actinst" ADD CONSTRAINT "act_ru_actinst_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_deadletter_job +-- ---------------------------- +CREATE INDEX "act_idx_deadletter_job_correlation_id" ON "act_ru_deadletter_job" USING btree ( + "correlation_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_deadletter_job_custom_values_id" ON "act_ru_deadletter_job" USING btree ( + "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_deadletter_job_exception_stack_id" ON "act_ru_deadletter_job" USING btree ( + "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_deadletter_job_execution_id" ON "act_ru_deadletter_job" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_deadletter_job_proc_def_id" ON "act_ru_deadletter_job" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_deadletter_job_process_instance_id" ON "act_ru_deadletter_job" USING btree ( + "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_djob_scope" ON "act_ru_deadletter_job" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_djob_scope_def" ON "act_ru_deadletter_job" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_djob_sub_scope" ON "act_ru_deadletter_job" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_deadletter_job +-- ---------------------------- +ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_ru_deadletter_job_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_entitylink +-- ---------------------------- +CREATE INDEX "act_idx_ent_lnk_ref_scope" ON "act_ru_entitylink" USING btree ( + "ref_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "ref_scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ent_lnk_root_scope" ON "act_ru_entitylink" USING btree ( + "root_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "root_scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ent_lnk_scope" ON "act_ru_entitylink" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ent_lnk_scope_def" ON "act_ru_entitylink" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "link_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_entitylink +-- ---------------------------- +ALTER TABLE "act_ru_entitylink" ADD CONSTRAINT "act_ru_entitylink_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_event_subscr +-- ---------------------------- +CREATE INDEX "act_idx_event_subscr" ON "act_ru_event_subscr" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_event_subscr_config_" ON "act_ru_event_subscr" USING btree ( + "configuration_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_event_subscr_scoperef_" ON "act_ru_event_subscr" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_event_subscr +-- ---------------------------- +ALTER TABLE "act_ru_event_subscr" ADD CONSTRAINT "act_ru_event_subscr_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_execution +-- ---------------------------- +CREATE INDEX "act_idx_exe_parent" ON "act_ru_execution" USING btree ( + "parent_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_exe_procdef" ON "act_ru_execution" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_exe_procinst" ON "act_ru_execution" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_exe_root" ON "act_ru_execution" USING btree ( + "root_proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_exe_super" ON "act_ru_execution" USING btree ( + "super_exec_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_exec_buskey" ON "act_ru_execution" USING btree ( + "business_key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_exec_ref_id_" ON "act_ru_execution" USING btree ( + "reference_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_execution +-- ---------------------------- +ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_ru_execution_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_external_job +-- ---------------------------- +CREATE INDEX "act_idx_ejob_scope" ON "act_ru_external_job" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ejob_scope_def" ON "act_ru_external_job" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ejob_sub_scope" ON "act_ru_external_job" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_external_job_correlation_id" ON "act_ru_external_job" USING btree ( + "correlation_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_external_job_custom_values_id" ON "act_ru_external_job" USING btree ( + "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_external_job_exception_stack_id" ON "act_ru_external_job" USING btree ( + "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_external_job +-- ---------------------------- +ALTER TABLE "act_ru_external_job" ADD CONSTRAINT "act_ru_external_job_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table act_ru_history_job +-- ---------------------------- +ALTER TABLE "act_ru_history_job" ADD CONSTRAINT "act_ru_history_job_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_identitylink +-- ---------------------------- +CREATE INDEX "act_idx_athrz_procedef" ON "act_ru_identitylink" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ident_lnk_group" ON "act_ru_identitylink" USING btree ( + "group_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ident_lnk_scope" ON "act_ru_identitylink" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ident_lnk_scope_def" ON "act_ru_identitylink" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ident_lnk_sub_scope" ON "act_ru_identitylink" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ident_lnk_user" ON "act_ru_identitylink" USING btree ( + "user_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_idl_procinst" ON "act_ru_identitylink" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_tskass_task" ON "act_ru_identitylink" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_identitylink +-- ---------------------------- +ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_ru_identitylink_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_job +-- ---------------------------- +CREATE INDEX "act_idx_job_correlation_id" ON "act_ru_job" USING btree ( + "correlation_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_custom_values_id" ON "act_ru_job" USING btree ( + "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_exception_stack_id" ON "act_ru_job" USING btree ( + "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_execution_id" ON "act_ru_job" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_proc_def_id" ON "act_ru_job" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_process_instance_id" ON "act_ru_job" USING btree ( + "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_scope" ON "act_ru_job" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_scope_def" ON "act_ru_job" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_job_sub_scope" ON "act_ru_job" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_job +-- ---------------------------- +ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_ru_job_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_suspended_job +-- ---------------------------- +CREATE INDEX "act_idx_sjob_scope" ON "act_ru_suspended_job" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_sjob_scope_def" ON "act_ru_suspended_job" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_sjob_sub_scope" ON "act_ru_suspended_job" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_suspended_job_correlation_id" ON "act_ru_suspended_job" USING btree ( + "correlation_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_suspended_job_custom_values_id" ON "act_ru_suspended_job" USING btree ( + "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_suspended_job_exception_stack_id" ON "act_ru_suspended_job" USING btree ( + "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_suspended_job_execution_id" ON "act_ru_suspended_job" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_suspended_job_proc_def_id" ON "act_ru_suspended_job" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_suspended_job_process_instance_id" ON "act_ru_suspended_job" USING btree ( + "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_suspended_job +-- ---------------------------- +ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_ru_suspended_job_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_task +-- ---------------------------- +CREATE INDEX "act_idx_task_create" ON "act_ru_task" USING btree ( + "create_time_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_task_exec" ON "act_ru_task" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_task_procdef" ON "act_ru_task" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_task_procinst" ON "act_ru_task" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_task_scope" ON "act_ru_task" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_task_scope_def" ON "act_ru_task" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_task_sub_scope" ON "act_ru_task" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_task +-- ---------------------------- +ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_ru_task_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_timer_job +-- ---------------------------- +CREATE INDEX "act_idx_timer_job_correlation_id" ON "act_ru_timer_job" USING btree ( + "correlation_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_timer_job_custom_values_id" ON "act_ru_timer_job" USING btree ( + "custom_values_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_timer_job_duedate" ON "act_ru_timer_job" USING btree ( + "duedate_" "pg_catalog"."timestamp_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_timer_job_exception_stack_id" ON "act_ru_timer_job" USING btree ( + "exception_stack_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_timer_job_execution_id" ON "act_ru_timer_job" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_timer_job_proc_def_id" ON "act_ru_timer_job" USING btree ( + "proc_def_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_timer_job_process_instance_id" ON "act_ru_timer_job" USING btree ( + "process_instance_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_tjob_scope" ON "act_ru_timer_job" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_tjob_scope_def" ON "act_ru_timer_job" USING btree ( + "scope_definition_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_tjob_sub_scope" ON "act_ru_timer_job" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_timer_job +-- ---------------------------- +ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_ru_timer_job_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table act_ru_variable +-- ---------------------------- +CREATE INDEX "act_idx_ru_var_scope_id_type" ON "act_ru_variable" USING btree ( + "scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_ru_var_sub_id_type" ON "act_ru_variable" USING btree ( + "sub_scope_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "scope_type_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_var_bytearray" ON "act_ru_variable" USING btree ( + "bytearray_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_var_exe" ON "act_ru_variable" USING btree ( + "execution_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_var_procinst" ON "act_ru_variable" USING btree ( + "proc_inst_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); +CREATE INDEX "act_idx_variable_task_id" ON "act_ru_variable" USING btree ( + "task_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table act_ru_variable +-- ---------------------------- +ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_ru_variable_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table flw_channel_definition +-- ---------------------------- +CREATE UNIQUE INDEX "act_idx_channel_def_uniq" ON "flw_channel_definition" USING btree ( + "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "version_" "pg_catalog"."int4_ops" ASC NULLS LAST, + "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table flw_channel_definition +-- ---------------------------- +ALTER TABLE "flw_channel_definition" ADD CONSTRAINT "FLW_CHANNEL_DEFINITION_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table flw_ev_databasechangeloglock +-- ---------------------------- +ALTER TABLE "flw_ev_databasechangeloglock" ADD CONSTRAINT "flw_ev_databasechangeloglock_pkey" PRIMARY KEY ("id"); + +-- ---------------------------- +-- Indexes structure for table flw_event_definition +-- ---------------------------- +CREATE UNIQUE INDEX "act_idx_event_def_uniq" ON "flw_event_definition" USING btree ( + "key_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST, + "version_" "pg_catalog"."int4_ops" ASC NULLS LAST, + "tenant_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table flw_event_definition +-- ---------------------------- +ALTER TABLE "flw_event_definition" ADD CONSTRAINT "FLW_EVENT_DEFINITION_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table flw_event_deployment +-- ---------------------------- +ALTER TABLE "flw_event_deployment" ADD CONSTRAINT "FLW_EVENT_DEPLOYMENT_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table flw_event_resource +-- ---------------------------- +ALTER TABLE "flw_event_resource" ADD CONSTRAINT "FLW_EVENT_RESOURCE_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Primary Key structure for table flw_ru_batch +-- ---------------------------- +ALTER TABLE "flw_ru_batch" ADD CONSTRAINT "flw_ru_batch_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Indexes structure for table flw_ru_batch_part +-- ---------------------------- +CREATE INDEX "flw_idx_batch_part" ON "flw_ru_batch_part" USING btree ( + "batch_id_" COLLATE "pg_catalog"."default" "pg_catalog"."text_ops" ASC NULLS LAST +); + +-- ---------------------------- +-- Primary Key structure for table flw_ru_batch_part +-- ---------------------------- +ALTER TABLE "flw_ru_batch_part" ADD CONSTRAINT "flw_ru_batch_part_pkey" PRIMARY KEY ("id_"); + +-- ---------------------------- +-- Foreign Keys structure for table act_app_appdef +-- ---------------------------- +ALTER TABLE "act_app_appdef" ADD CONSTRAINT "act_fk_app_def_dply" FOREIGN KEY ("deployment_id_") REFERENCES "act_app_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_app_deployment_resource +-- ---------------------------- +ALTER TABLE "act_app_deployment_resource" ADD CONSTRAINT "act_fk_app_rsrc_dpl" FOREIGN KEY ("deployment_id_") REFERENCES "act_app_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_cmmn_casedef +-- ---------------------------- +ALTER TABLE "act_cmmn_casedef" ADD CONSTRAINT "act_fk_case_def_dply" FOREIGN KEY ("deployment_id_") REFERENCES "act_cmmn_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_cmmn_deployment_resource +-- ---------------------------- +ALTER TABLE "act_cmmn_deployment_resource" ADD CONSTRAINT "act_fk_cmmn_rsrc_dpl" FOREIGN KEY ("deployment_id_") REFERENCES "act_cmmn_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_cmmn_ru_case_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_case_inst" ADD CONSTRAINT "act_fk_case_inst_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_cmmn_ru_mil_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_mil_inst" ADD CONSTRAINT "act_fk_mil_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_cmmn_ru_mil_inst" ADD CONSTRAINT "act_fk_mil_case_inst" FOREIGN KEY ("case_inst_id_") REFERENCES "act_cmmn_ru_case_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_cmmn_ru_plan_item_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_plan_item_inst" ADD CONSTRAINT "act_fk_plan_item_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_cmmn_ru_plan_item_inst" ADD CONSTRAINT "act_fk_plan_item_case_inst" FOREIGN KEY ("case_inst_id_") REFERENCES "act_cmmn_ru_case_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_cmmn_ru_sentry_part_inst +-- ---------------------------- +ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "act_fk_sentry_case_def" FOREIGN KEY ("case_def_id_") REFERENCES "act_cmmn_casedef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "act_fk_sentry_case_inst" FOREIGN KEY ("case_inst_id_") REFERENCES "act_cmmn_ru_case_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_cmmn_ru_sentry_part_inst" ADD CONSTRAINT "act_fk_sentry_plan_item" FOREIGN KEY ("plan_item_inst_id_") REFERENCES "act_cmmn_ru_plan_item_inst" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_de_model_relation +-- ---------------------------- +ALTER TABLE "act_de_model_relation" ADD CONSTRAINT "fk_relation_child" FOREIGN KEY ("model_id") REFERENCES "act_de_model" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_de_model_relation" ADD CONSTRAINT "fk_relation_parent" FOREIGN KEY ("parent_model_id") REFERENCES "act_de_model" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ge_bytearray +-- ---------------------------- +ALTER TABLE "act_ge_bytearray" ADD CONSTRAINT "act_fk_bytearr_depl" FOREIGN KEY ("deployment_id_") REFERENCES "act_re_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_id_membership +-- ---------------------------- +ALTER TABLE "act_id_membership" ADD CONSTRAINT "act_fk_memb_group" FOREIGN KEY ("group_id_") REFERENCES "act_id_group" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_id_membership" ADD CONSTRAINT "act_fk_memb_user" FOREIGN KEY ("user_id_") REFERENCES "act_id_user" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_id_priv_mapping +-- ---------------------------- +ALTER TABLE "act_id_priv_mapping" ADD CONSTRAINT "act_fk_priv_mapping" FOREIGN KEY ("priv_id_") REFERENCES "act_id_priv" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_procdef_info +-- ---------------------------- +ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_fk_info_json_ba" FOREIGN KEY ("info_json_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_procdef_info" ADD CONSTRAINT "act_fk_info_procdef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_re_model +-- ---------------------------- +ALTER TABLE "act_re_model" ADD CONSTRAINT "act_fk_model_deployment" FOREIGN KEY ("deployment_id_") REFERENCES "act_re_deployment" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_re_model" ADD CONSTRAINT "act_fk_model_source" FOREIGN KEY ("editor_source_value_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_re_model" ADD CONSTRAINT "act_fk_model_source_extra" FOREIGN KEY ("editor_source_extra_value_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_deadletter_job +-- ---------------------------- +ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_deadletter_job" ADD CONSTRAINT "act_fk_deadletter_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_event_subscr +-- ---------------------------- +ALTER TABLE "act_ru_event_subscr" ADD CONSTRAINT "act_fk_event_exec" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_execution +-- ---------------------------- +ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_parent" FOREIGN KEY ("parent_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_procdef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_execution" ADD CONSTRAINT "act_fk_exe_super" FOREIGN KEY ("super_exec_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_external_job +-- ---------------------------- +ALTER TABLE "act_ru_external_job" ADD CONSTRAINT "act_fk_external_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_external_job" ADD CONSTRAINT "act_fk_external_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_identitylink +-- ---------------------------- +ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_fk_athrz_procedef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_fk_idl_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_identitylink" ADD CONSTRAINT "act_fk_tskass_task" FOREIGN KEY ("task_id_") REFERENCES "act_ru_task" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_job +-- ---------------------------- +ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_job" ADD CONSTRAINT "act_fk_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_suspended_job +-- ---------------------------- +ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_suspended_job" ADD CONSTRAINT "act_fk_suspended_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_task +-- ---------------------------- +ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_fk_task_exe" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_fk_task_procdef" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_task" ADD CONSTRAINT "act_fk_task_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_timer_job +-- ---------------------------- +ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_custom_values" FOREIGN KEY ("custom_values_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_exception" FOREIGN KEY ("exception_stack_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_execution" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_proc_def" FOREIGN KEY ("proc_def_id_") REFERENCES "act_re_procdef" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_timer_job" ADD CONSTRAINT "act_fk_timer_job_process_instance" FOREIGN KEY ("process_instance_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table act_ru_variable +-- ---------------------------- +ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_fk_var_bytearray" FOREIGN KEY ("bytearray_id_") REFERENCES "act_ge_bytearray" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_fk_var_exe" FOREIGN KEY ("execution_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; +ALTER TABLE "act_ru_variable" ADD CONSTRAINT "act_fk_var_procinst" FOREIGN KEY ("proc_inst_id_") REFERENCES "act_ru_execution" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; + +-- ---------------------------- +-- Foreign Keys structure for table flw_ru_batch_part +-- ---------------------------- +ALTER TABLE "flw_ru_batch_part" ADD CONSTRAINT "flw_fk_batch_part_parent" FOREIGN KEY ("batch_id_") REFERENCES "flw_ru_batch" ("id_") ON DELETE NO ACTION ON UPDATE NO ACTION; diff --git a/doc/sql/flowable/flowable.sqlserver.all.create.sql b/doc/sql/flowable/flowable.sqlserver.all.create.sql new file mode 100644 index 0000000..a4f13dc --- /dev/null +++ b/doc/sql/flowable/flowable.sqlserver.all.create.sql @@ -0,0 +1,5396 @@ +/* + Navicat Premium Data Transfer + + Source Server : sqlserver_localhost + Source Server Type : SQL Server + Source Server Version : 15004355 (15.00.4355) + Source Host : 127.0.0.1:1433 + Source Catalog : bladex + Source Schema : dbo + + Target Server Type : SQL Server + Target Server Version : 15004355 (15.00.4355) + File Encoding : 65001 + + Date: 14/03/2024 23:56:25 +*/ + + +-- ---------------------------- +-- Table structure for ACT_APP_APPDEF +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_APPDEF]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_APP_APPDEF] +GO + +CREATE TABLE [dbo].[ACT_APP_APPDEF] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VERSION_] int NOT NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] varchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] varchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_APP_APPDEF] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_APP_APPDEF +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_APP_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_APP_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[ACT_APP_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TAG] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_APP_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_APP_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_APP_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'flowable', N'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', N'2024-03-14 15:52:53.623', N'1', N'EXECUTED', N'9:959783069c0c7ce80320a0617aa48969', N'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', N'', NULL, N'4.3.5', NULL, NULL, N'1644004287'), (N'3', N'flowable', N'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', N'2024-03-14 15:52:53.627', N'2', N'EXECUTED', N'9:c05b79a3b00e95136533085718361208', N'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', N'', NULL, N'4.3.5', NULL, NULL, N'1644004287') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_APP_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_APP_DEPLOYMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DEPLOYMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_APP_DEPLOYMENT] +GO + +CREATE TABLE [dbo].[ACT_APP_DEPLOYMENT] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOY_TIME_] datetime NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_APP_DEPLOYMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_APP_DEPLOYMENT_RESOURCE]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] +GO + +CREATE TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_BYTES_] varbinary(max) NULL +) +GO + +ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_CASEDEF +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_CASEDEF]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_CASEDEF] +GO + +CREATE TABLE [dbo].[ACT_CMMN_CASEDEF] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VERSION_] int NOT NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] varchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] varchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HAS_GRAPHICAL_NOTATION_] bit NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [DGRM_RESOURCE_NAME_] varchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HAS_START_FORM_KEY_] bit NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_CASEDEF] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_CASEDEF +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[ACT_CMMN_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TAG] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.693', N'1', N'EXECUTED', N'9:d0cc0aaadf0e4ef70c5b412cd05fadc4', N'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'2', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.707', N'2', N'EXECUTED', N'9:8095a5a8a222a100c2d0310cacbda5e7', N'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'3', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.717', N'3', N'EXECUTED', N'9:f031b4f0ae67bc5a640736b379049b12', N'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'4', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.727', N'4', N'EXECUTED', N'9:c484ecfb08719feccac2f80fc962dda9', N'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'6', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.727', N'5', N'EXECUTED', N'9:7343ab247d959e5add9278b5386de833', N'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'7', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.830', N'6', N'EXECUTED', N'9:d73200db684b6cdb748cc03570d5d2e9', N'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'8', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.830', N'7', N'EXECUTED', N'9:eda5e43816221f2d8554bfcc90f1c37e', N'addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'9', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.837', N'8', N'EXECUTED', N'9:c34685611779075a73caf8c380f078ea', N'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'10', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.847', N'9', N'EXECUTED', N'9:368e9472ad2348206205170d6c52d58e', N'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_CASE_INST_REF_ID_, tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE...', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'11', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.850', N'10', N'EXECUTED', N'9:e54b50ceb2bcd5355ae4dfb56d9ff3ad', N'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'12', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.853', N'11', N'EXECUTED', N'9:f53f262768d04e74529f43fcd93429b0', N'addColumn tableName=ACT_CMMN_RU_CASE_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'13', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.857', N'12', N'EXECUTED', N'9:64e7eafbe97997094654e83caea99895', N'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'14', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.867', N'13', N'EXECUTED', N'9:ab7d934abde497eac034701542e0a281', N'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'16', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.870', N'14', N'EXECUTED', N'9:03928d422e510959770e7a9daa5a993f', N'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'17', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:52:53.873', N'15', N'EXECUTED', N'9:f30304cf001d6eac78c793ea88cd5781', N'createIndex indexName=ACT_IDX_HI_CASE_INST_END, tableName=ACT_CMMN_HI_CASE_INST', N'', NULL, N'4.3.5', NULL, NULL, N'1644004724'), (N'18', N'flowable', N'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', N'2024-03-14 15:54:50.283', N'16', N'EXECUTED', N'9:d782865087d6c0c3dc033ac20e783008', N'createIndex indexName=ACT_IDX_HI_PLAN_ITEM_INST_CASE, tableName=ACT_CMMN_HI_PLAN_ITEM_INST', N'', NULL, N'4.24.0', NULL, NULL, N'0431690008') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_DEPLOYMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DEPLOYMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_DEPLOYMENT] +GO + +CREATE TABLE [dbo].[ACT_CMMN_DEPLOYMENT] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOY_TIME_] datetime NULL, + [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_DEPLOYMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] +GO + +CREATE TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_BYTES_] varbinary(max) NULL, + [GENERATED_] bit NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_CASE_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_HI_CASE_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_HI_CASE_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_HI_CASE_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [BUSINESS_KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [STATE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NULL, + [END_TIME_] datetime NULL, + [START_USER_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [REFERENCE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LAST_REACTIVATION_TIME_] datetime NULL, + [LAST_REACTIVATION_USER_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BUSINESS_STATUS_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_HI_CASE_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_HI_CASE_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_MIL_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_HI_MIL_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_HI_MIL_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_HI_MIL_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TIME_STAMP_] datetime NOT NULL, + [CASE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ELEMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_HI_MIL_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_HI_MIL_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_HI_PLAN_ITEM_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [STATE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CASE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [STAGE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IS_STAGE_] bit NULL, + [ELEMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ITEM_DEFINITION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ITEM_DEFINITION_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [LAST_AVAILABLE_TIME_] datetime NULL, + [LAST_ENABLED_TIME_] datetime NULL, + [LAST_DISABLED_TIME_] datetime NULL, + [LAST_STARTED_TIME_] datetime NULL, + [LAST_SUSPENDED_TIME_] datetime NULL, + [COMPLETED_TIME_] datetime NULL, + [OCCURRED_TIME_] datetime NULL, + [TERMINATED_TIME_] datetime NULL, + [EXIT_TIME_] datetime NULL, + [ENDED_TIME_] datetime NULL, + [LAST_UPDATED_TIME_] datetime NULL, + [START_USER_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [ENTRY_CRITERION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXIT_CRITERION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SHOW_IN_OVERVIEW_] bit NULL, + [EXTRA_VALUE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DERIVED_CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LAST_UNAVAILABLE_TIME_] datetime NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_CASE_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_CASE_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_RU_CASE_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_RU_CASE_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [BUSINESS_KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [STATE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NULL, + [START_USER_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [LOCK_TIME_] datetime NULL, + [IS_COMPLETEABLE_] bit NULL, + [REFERENCE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LOCK_OWNER_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LAST_REACTIVATION_TIME_] datetime NULL, + [LAST_REACTIVATION_USER_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BUSINESS_STATUS_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_CASE_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_RU_CASE_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_MIL_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_MIL_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_RU_MIL_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TIME_STAMP_] datetime NOT NULL, + [CASE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ELEMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_RU_MIL_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_PLAN_ITEM_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CASE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [STAGE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IS_STAGE_] bit NULL, + [ELEMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [STATE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [START_USER_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [ITEM_DEFINITION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ITEM_DEFINITION_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IS_COMPLETEABLE_] bit NULL, + [IS_COUNT_ENABLED_] bit NULL, + [VAR_COUNT_] int NULL, + [SENTRY_PART_INST_COUNT_] int NULL, + [LAST_AVAILABLE_TIME_] datetime NULL, + [LAST_ENABLED_TIME_] datetime NULL, + [LAST_DISABLED_TIME_] datetime NULL, + [LAST_STARTED_TIME_] datetime NULL, + [LAST_SUSPENDED_TIME_] datetime NULL, + [COMPLETED_TIME_] datetime NULL, + [OCCURRED_TIME_] datetime NULL, + [TERMINATED_TIME_] datetime NULL, + [EXIT_TIME_] datetime NULL, + [ENDED_TIME_] datetime NULL, + [ENTRY_CRITERION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXIT_CRITERION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXTRA_VALUE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DERIVED_CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LAST_UNAVAILABLE_TIME_] datetime NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CMMN_RU_SENTRY_PART_INST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] +GO + +CREATE TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NOT NULL, + [CASE_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CASE_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PLAN_ITEM_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ON_PART_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IF_PART_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TIME_STAMP_] datetime NULL +) +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CO_CONTENT_ITEM +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CO_CONTENT_ITEM]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CO_CONTENT_ITEM] +GO + +CREATE TABLE [dbo].[ACT_CO_CONTENT_ITEM] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MIME_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTENT_STORE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTENT_STORE_NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FIELD_] varchar(400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTENT_AVAILABLE_] bit DEFAULT 0 NULL, + [CREATED_] datetime NULL, + [CREATED_BY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LAST_MODIFIED_] datetime NULL, + [LAST_MODIFIED_BY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTENT_SIZE_] bigint DEFAULT 0 NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CO_CONTENT_ITEM] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CO_CONTENT_ITEM +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CO_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CO_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CO_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[ACT_CO_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TAG] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CO_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CO_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_CO_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'activiti', N'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', N'2024-03-14 15:52:54.050', N'1', N'EXECUTED', N'8:7644d7165cfe799200a2abdd3419e8b6', N'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', N'', NULL, N'4.3.5', NULL, NULL, N'1644006759'), (N'2', N'flowable', N'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', N'2024-03-14 15:52:54.057', N'2', N'EXECUTED', N'8:fe7b11ac7dbbf9c43006b23bbab60bab', N'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', N'', NULL, N'4.3.5', NULL, NULL, N'1644006759') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_CO_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_CO_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DE_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DE_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[ACT_DE_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE Chinese_PRC_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE Chinese_PRC_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [TAG] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE Chinese_PRC_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DE_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DE_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_DE_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'flowable', N'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', N'2020-07-22 21:25:47.840', N'1', N'EXECUTED', N'8:e70d1d9d3899a734296b2514ccc71501', N'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', N'', NULL, N'3.6.3', NULL, NULL, N'5424402462'), (N'2', N'flowable', N'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', N'2020-07-22 21:25:48.050', N'2', N'EXECUTED', N'8:f08070bcdfbc61d089df76c8f2327d50', N'modifyDataType columnName=created, tableName=ACT_DE_MODEL; modifyDataType columnName=last_updated, tableName=ACT_DE_MODEL; modifyDataType columnName=created, tableName=ACT_DE_MODEL_HISTORY; modifyDataType columnName=last_updated, tableName=ACT_DE_...', N'', NULL, N'3.6.3', NULL, NULL, N'5424402462'), (N'3', N'flowable', N'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', N'2020-07-22 21:25:48.170', N'3', N'EXECUTED', N'8:3a9143bef2e45f2316231cc1369138b6', N'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', N'', NULL, N'3.6.3', NULL, NULL, N'5424402462') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_DE_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_MODEL]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DE_MODEL] +GO + +CREATE TABLE [dbo].[ACT_DE_MODEL] ( + [id] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [name] varchar(400) COLLATE Chinese_PRC_CI_AS NOT NULL, + [model_key] varchar(400) COLLATE Chinese_PRC_CI_AS NOT NULL, + [description] varchar(4000) COLLATE Chinese_PRC_CI_AS NULL, + [model_comment] varchar(4000) COLLATE Chinese_PRC_CI_AS NULL, + [created] datetime2(7) NULL, + [created_by] varchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [last_updated] datetime2(7) NULL, + [last_updated_by] varchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [version] int NULL, + [model_editor_json] varchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [model_editor_xml] varchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [thumbnail] varbinary(max) NULL, + [model_type] int NULL, + [tenant_id] varchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DE_MODEL] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DE_MODEL +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL_HISTORY +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_MODEL_HISTORY]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DE_MODEL_HISTORY] +GO + +CREATE TABLE [dbo].[ACT_DE_MODEL_HISTORY] ( + [id] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [name] varchar(400) COLLATE Chinese_PRC_CI_AS NOT NULL, + [model_key] varchar(400) COLLATE Chinese_PRC_CI_AS NOT NULL, + [description] varchar(4000) COLLATE Chinese_PRC_CI_AS NULL, + [model_comment] varchar(4000) COLLATE Chinese_PRC_CI_AS NULL, + [created] datetime2(7) NULL, + [created_by] varchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [last_updated] datetime2(7) NULL, + [last_updated_by] varchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [removal_date] datetime2(7) NULL, + [version] int NULL, + [model_editor_json] varchar(max) COLLATE Chinese_PRC_CI_AS NULL, + [model_id] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [model_type] int NULL, + [tenant_id] varchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DE_MODEL_HISTORY] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DE_MODEL_HISTORY +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL_RELATION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DE_MODEL_RELATION]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DE_MODEL_RELATION] +GO + +CREATE TABLE [dbo].[ACT_DE_MODEL_RELATION] ( + [id] varchar(255) COLLATE Chinese_PRC_CI_AS NOT NULL, + [parent_model_id] varchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [model_id] varchar(255) COLLATE Chinese_PRC_CI_AS NULL, + [relation_type] varchar(255) COLLATE Chinese_PRC_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DE_MODEL_RELATION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DMN_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[ACT_DMN_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TAG] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DMN_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'activiti', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.923', N'1', N'EXECUTED', N'9:5b36e70aee5a2e42f6e7a62ea5fa681b', N'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'2', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.930', N'2', N'EXECUTED', N'9:fd13fa3f7af55d2b72f763fc261da30d', N'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'3', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.930', N'3', N'EXECUTED', N'9:9f30e6a3557d4b4c713dbb2dcc141782', N'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'4', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.953', N'4', N'EXECUTED', N'9:41085fbde807dba96104ee75a2fcc4cc', N'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'6', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.957', N'5', N'EXECUTED', N'9:f00f92f3ef1af3fc1604f0323630f9b1', N'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'7', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.973', N'6', N'EXECUTED', N'9:d24d4c5f44083b4edf1231a7a682a2cd', N'dropIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE; renameTable newTableName=ACT_DMN_DECISION, oldTableName=ACT_DMN_DECISION_TABLE; createIndex indexName=ACT_IDX_DMN_DEC_UNIQ, tableName=ACT_DMN_DECISION', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'8', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.977', N'7', N'EXECUTED', N'9:3998ef0958b46fe9c19458183952d2a0', N'addColumn tableName=ACT_DMN_DECISION', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973'), (N'9', N'flowable', N'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', N'2024-03-14 15:52:53.980', N'8', N'EXECUTED', N'9:5c9dc65601456faa1aa12f8d3afe0e9e', N'createIndex indexName=ACT_IDX_DMN_INSTANCE_ID, tableName=ACT_DMN_HI_DECISION_EXECUTION', N'', NULL, N'4.3.5', NULL, NULL, N'1644005973') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DMN_DECISION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DECISION]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DMN_DECISION] +GO + +CREATE TABLE [dbo].[ACT_DMN_DECISION] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [VERSION_] int NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DECISION_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DMN_DECISION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DMN_DECISION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DMN_DEPLOYMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DEPLOYMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DMN_DEPLOYMENT] +GO + +CREATE TABLE [dbo].[ACT_DMN_DEPLOYMENT] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOY_TIME_] datetime NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DMN_DEPLOYMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_DEPLOYMENT_RESOURCE]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] +GO + +CREATE TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_BYTES_] varbinary(max) NULL +) +GO + +ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_DMN_HI_DECISION_EXECUTION]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] +GO + +CREATE TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DECISION_DEFINITION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NULL, + [END_TIME_] datetime NULL, + [INSTANCE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACTIVITY_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FAILED_] bit DEFAULT 0 NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_JSON_] varchar(max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_EVT_LOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_EVT_LOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_EVT_LOG] +GO + +CREATE TABLE [dbo].[ACT_EVT_LOG] ( + [LOG_NR_] numeric(19) IDENTITY(1,1) NOT NULL, + [TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TIME_STAMP_] datetime NOT NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DATA_] varbinary(max) NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LOCK_TIME_] datetime NULL, + [IS_PROCESSED_] tinyint DEFAULT 0 NULL +) +GO + +ALTER TABLE [dbo].[ACT_EVT_LOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_EVT_LOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +SET IDENTITY_INSERT [dbo].[ACT_EVT_LOG] ON +GO + +SET IDENTITY_INSERT [dbo].[ACT_EVT_LOG] OFF +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_FO_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_FO_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[ACT_FO_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TAG] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_FO_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_FO_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'activiti', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2024-03-14 15:52:54.000', N'1', N'EXECUTED', N'8:033ebf9380889aed7c453927ecc3250d', N'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', N'', NULL, N'4.3.5', NULL, NULL, N'1644006420'), (N'2', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2024-03-14 15:52:54.007', N'2', N'EXECUTED', N'8:986365ceb40445ce3b27a8e6b40f159b', N'addColumn tableName=ACT_FO_FORM_INSTANCE', N'', NULL, N'4.3.5', NULL, NULL, N'1644006420'), (N'3', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2024-03-14 15:52:54.020', N'3', N'EXECUTED', N'8:abf482518ceb09830ef674e52c06bf15', N'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', N'', NULL, N'4.3.5', NULL, NULL, N'1644006420'), (N'5', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2024-03-14 15:52:54.023', N'4', N'EXECUTED', N'8:b4be732b89e5ca028bdd520c6ad4d446', N'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', N'', NULL, N'4.3.5', NULL, NULL, N'1644006420'), (N'6', N'flowable', N'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', N'2024-03-14 15:52:54.030', N'5', N'EXECUTED', N'8:384bbd364a649b67c3ca1bcb72fe537f', N'createIndex indexName=ACT_IDX_FORM_TASK, tableName=ACT_FO_FORM_INSTANCE; createIndex indexName=ACT_IDX_FORM_PROC, tableName=ACT_FO_FORM_INSTANCE; createIndex indexName=ACT_IDX_FORM_SCOPE, tableName=ACT_FO_FORM_INSTANCE', N'', NULL, N'4.3.5', NULL, NULL, N'1644006420') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_FO_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_DEFINITION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_DEFINITION]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_FO_FORM_DEFINITION] +GO + +CREATE TABLE [dbo].[ACT_FO_FORM_DEFINITION] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [VERSION_] int NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_FO_FORM_DEFINITION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_FO_FORM_DEFINITION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_DEPLOYMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] +GO + +CREATE TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOY_TIME_] datetime NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_INSTANCE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_INSTANCE]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_FO_FORM_INSTANCE] +GO + +CREATE TABLE [dbo].[ACT_FO_FORM_INSTANCE] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FORM_DEFINITION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TASK_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUBMITTED_DATE_] datetime NULL, + [SUBMITTED_BY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FORM_VALUES_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_FO_FORM_INSTANCE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_FO_FORM_INSTANCE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_RESOURCE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_FO_FORM_RESOURCE]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_FO_FORM_RESOURCE] +GO + +CREATE TABLE [dbo].[ACT_FO_FORM_RESOURCE] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_BYTES_] varbinary(max) NULL +) +GO + +ALTER TABLE [dbo].[ACT_FO_FORM_RESOURCE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_FO_FORM_RESOURCE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_GE_BYTEARRAY +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_GE_BYTEARRAY]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_GE_BYTEARRAY] +GO + +CREATE TABLE [dbo].[ACT_GE_BYTEARRAY] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BYTES_] varbinary(max) NULL, + [GENERATED_] tinyint NULL +) +GO + +ALTER TABLE [dbo].[ACT_GE_BYTEARRAY] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_GE_BYTEARRAY +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_GE_PROPERTY +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_GE_PROPERTY]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_GE_PROPERTY] +GO + +CREATE TABLE [dbo].[ACT_GE_PROPERTY] ( + [NAME_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VALUE_] nvarchar(300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REV_] int NULL +) +GO + +ALTER TABLE [dbo].[ACT_GE_PROPERTY] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_GE_PROPERTY +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_GE_PROPERTY] ([NAME_], [VALUE_], [REV_]) VALUES (N'batch.schema.version', N'7.0.1.1', N'1'), (N'cfg.execution-related-entities-count', N'true', N'1'), (N'cfg.task-related-entities-count', N'true', N'1'), (N'common.schema.version', N'7.0.1.1', N'1'), (N'entitylink.schema.version', N'7.0.1.1', N'1'), (N'eventsubscription.schema.version', N'7.0.1.1', N'1'), (N'identitylink.schema.version', N'7.0.1.1', N'1'), (N'job.schema.version', N'7.0.1.1', N'1'), (N'next.dbid', N'1', N'1'), (N'schema.history', N'upgrade(7.0.0.0->7.0.1.1)', N'2'), (N'schema.version', N'7.0.1.1', N'2'), (N'task.schema.version', N'7.0.1.1', N'1'), (N'variable.schema.version', N'7.0.1.1', N'1') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_ACTINST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_ACTINST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_ACTINST] +GO + +CREATE TABLE [dbo].[ACT_HI_ACTINST] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int DEFAULT 1 NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ACT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALL_PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACT_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ASSIGNEE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NOT NULL, + [END_TIME_] datetime NULL, + [TRANSACTION_ORDER_] int NULL, + [DURATION_] numeric(19) NULL, + [DELETE_REASON_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_ACTINST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_ACTINST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_ATTACHMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_ATTACHMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_ATTACHMENT] +GO + +CREATE TABLE [dbo].[ACT_HI_ATTACHMENT] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [URL_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTENT_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TIME_] datetime NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_ATTACHMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_ATTACHMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_COMMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_COMMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_COMMENT] +GO + +CREATE TABLE [dbo].[ACT_HI_COMMENT] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TIME_] datetime NOT NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACTION_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [MESSAGE_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [FULL_MSG_] varbinary(max) NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_COMMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_COMMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_DETAIL +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_DETAIL]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_DETAIL] +GO + +CREATE TABLE [dbo].[ACT_HI_DETAIL] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACT_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VAR_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REV_] int NULL, + [TIME_] datetime NOT NULL, + [BYTEARRAY_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DOUBLE_] float(53) NULL, + [LONG_] numeric(19) NULL, + [TEXT_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TEXT2_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_DETAIL] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_DETAIL +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_ENTITYLINK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_ENTITYLINK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_ENTITYLINK] +GO + +CREATE TABLE [dbo].[ACT_HI_ENTITYLINK] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [LINK_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REF_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REF_SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REF_SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ROOT_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ROOT_SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HIERARCHY_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_ENTITYLINK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_ENTITYLINK +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_IDENTITYLINK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_IDENTITYLINK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_IDENTITYLINK] +GO + +CREATE TABLE [dbo].[ACT_HI_IDENTITYLINK] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [GROUP_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_IDENTITYLINK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_IDENTITYLINK +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_PROCINST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_PROCINST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_PROCINST] +GO + +CREATE TABLE [dbo].[ACT_HI_PROCINST] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int DEFAULT 1 NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [BUSINESS_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [START_TIME_] datetime NOT NULL, + [END_TIME_] datetime NULL, + [DURATION_] numeric(19) NULL, + [START_USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_ACT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [END_ACT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUPER_PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DELETE_REASON_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROPAGATED_STAGE_INST_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BUSINESS_STATUS_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_PROCINST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_PROCINST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_TASKINST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_TASKINST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_TASKINST] +GO + +CREATE TABLE [dbo].[ACT_HI_TASKINST] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int DEFAULT 1 NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_DEF_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROPAGATED_STAGE_INST_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ASSIGNEE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NOT NULL, + [CLAIM_TIME_] datetime NULL, + [END_TIME_] datetime NULL, + [DURATION_] numeric(19) NULL, + [DELETE_REASON_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PRIORITY_] int NULL, + [DUE_DATE_] datetime NULL, + [FORM_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [LAST_UPDATED_TIME_] datetime2(7) NULL, + [STATE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IN_PROGRESS_TIME_] datetime NULL, + [IN_PROGRESS_STARTED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CLAIMED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUSPENDED_TIME_] datetime NULL, + [SUSPENDED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMPLETED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IN_PROGRESS_DUE_DATE_] datetime NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_TASKINST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_TASKINST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_TSK_LOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_TSK_LOG]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_TSK_LOG] +GO + +CREATE TABLE [dbo].[ACT_HI_TSK_LOG] ( + [ID_] numeric(19) IDENTITY(1,1) NOT NULL, + [TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TIME_STAMP_] datetime NOT NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DATA_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_TSK_LOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_TSK_LOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +SET IDENTITY_INSERT [dbo].[ACT_HI_TSK_LOG] ON +GO + +SET IDENTITY_INSERT [dbo].[ACT_HI_TSK_LOG] OFF +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_HI_VARINST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_HI_VARINST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_HI_VARINST] +GO + +CREATE TABLE [dbo].[ACT_HI_VARINST] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int DEFAULT 1 NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VAR_TYPE_] nvarchar(100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BYTEARRAY_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DOUBLE_] float(53) NULL, + [LONG_] numeric(19) NULL, + [TEXT_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TEXT2_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [LAST_UPDATED_TIME_] datetime2(7) NULL, + [META_INFO_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_HI_VARINST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_HI_VARINST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_BYTEARRAY +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_BYTEARRAY]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_BYTEARRAY] +GO + +CREATE TABLE [dbo].[ACT_ID_BYTEARRAY] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BYTES_] varbinary(max) NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_BYTEARRAY] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_BYTEARRAY +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_GROUP +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_GROUP]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_GROUP] +GO + +CREATE TABLE [dbo].[ACT_ID_GROUP] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_GROUP] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_GROUP +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_INFO +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_INFO]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_INFO] +GO + +CREATE TABLE [dbo].[ACT_ID_INFO] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [USER_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [VALUE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PASSWORD_] varbinary(max) NULL, + [PARENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_INFO] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_INFO +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_MEMBERSHIP +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_MEMBERSHIP]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_MEMBERSHIP] +GO + +CREATE TABLE [dbo].[ACT_ID_MEMBERSHIP] ( + [USER_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [GROUP_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_MEMBERSHIP +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_PRIV +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_PRIV]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_PRIV] +GO + +CREATE TABLE [dbo].[ACT_ID_PRIV] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_PRIV] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_PRIV +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_PRIV_MAPPING +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_PRIV_MAPPING]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_PRIV_MAPPING] +GO + +CREATE TABLE [dbo].[ACT_ID_PRIV_MAPPING] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PRIV_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [GROUP_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_PRIV_MAPPING] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_PRIV_MAPPING +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_PROPERTY +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_PROPERTY]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_PROPERTY] +GO + +CREATE TABLE [dbo].[ACT_ID_PROPERTY] ( + [NAME_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VALUE_] nvarchar(300) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REV_] int NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_PROPERTY] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_PROPERTY +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[ACT_ID_PROPERTY] ([NAME_], [VALUE_], [REV_]) VALUES (N'schema.version', N'7.0.1.1', N'1') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_TOKEN +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_TOKEN]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_TOKEN] +GO + +CREATE TABLE [dbo].[ACT_ID_TOKEN] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [TOKEN_VALUE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TOKEN_DATE_] datetime NULL, + [IP_ADDRESS_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [USER_AGENT_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TOKEN_DATA_] nvarchar(2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_TOKEN] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_TOKEN +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_ID_USER +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_ID_USER]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_ID_USER] +GO + +CREATE TABLE [dbo].[ACT_ID_USER] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [FIRST_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LAST_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DISPLAY_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EMAIL_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PWD_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PICTURE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_ID_USER] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_ID_USER +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_PROCDEF_INFO +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_PROCDEF_INFO]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_PROCDEF_INFO] +GO + +CREATE TABLE [dbo].[ACT_PROCDEF_INFO] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [INFO_JSON_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_PROCDEF_INFO] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_PROCDEF_INFO +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RE_DEPLOYMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RE_DEPLOYMENT]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RE_DEPLOYMENT] +GO + +CREATE TABLE [dbo].[ACT_RE_DEPLOYMENT] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [DEPLOY_TIME_] datetime NULL, + [DERIVED_FROM_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DERIVED_FROM_ROOT_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_DEPLOYMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ENGINE_VERSION_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RE_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RE_DEPLOYMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RE_MODEL +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RE_MODEL]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RE_MODEL] +GO + +CREATE TABLE [dbo].[ACT_RE_MODEL] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [LAST_UPDATE_TIME_] datetime NULL, + [VERSION_] int NULL, + [META_INFO_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EDITOR_SOURCE_VALUE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EDITOR_SOURCE_EXTRA_VALUE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RE_MODEL] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RE_MODEL +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RE_PROCDEF +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RE_PROCDEF]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RE_PROCDEF] +GO + +CREATE TABLE [dbo].[ACT_RE_PROCDEF] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CATEGORY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [VERSION_] int NOT NULL, + [DEPLOYMENT_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DGRM_RESOURCE_NAME_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HAS_START_FORM_KEY_] tinyint NULL, + [HAS_GRAPHICAL_NOTATION_] tinyint NULL, + [SUSPENSION_STATE_] tinyint NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [DERIVED_FROM_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DERIVED_FROM_ROOT_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DERIVED_VERSION_] int DEFAULT 0 NOT NULL, + [ENGINE_VERSION_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RE_PROCDEF] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RE_PROCDEF +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_ACTINST +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_ACTINST]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_ACTINST] +GO + +CREATE TABLE [dbo].[ACT_RU_ACTINST] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int DEFAULT 1 NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ACT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALL_PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACT_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [ASSIGNEE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NOT NULL, + [END_TIME_] datetime NULL, + [DURATION_] numeric(19) NULL, + [TRANSACTION_ORDER_] int NULL, + [DELETE_REASON_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_ACTINST] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_ACTINST +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_DEADLETTER_JOB +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_DEADLETTER_JOB]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_DEADLETTER_JOB] +GO + +CREATE TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [EXCLUSIVE_] bit NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CORRELATION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_MSG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DUEDATE_] datetime NULL, + [REPEAT_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_CFG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime2(7) NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_DEADLETTER_JOB +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_ENTITYLINK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_ENTITYLINK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_ENTITYLINK] +GO + +CREATE TABLE [dbo].[ACT_RU_ENTITYLINK] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CREATE_TIME_] datetime NULL, + [LINK_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REF_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REF_SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REF_SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ROOT_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ROOT_SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HIERARCHY_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_ENTITYLINK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_ENTITYLINK +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_EVENT_SUBSCR +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_EVENT_SUBSCR]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_EVENT_SUBSCR] +GO + +CREATE TABLE [dbo].[ACT_RU_EVENT_SUBSCR] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [EVENT_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [EVENT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACTIVITY_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONFIGURATION_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATED_] datetime NOT NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LOCK_TIME_] datetime NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [SCOPE_DEFINITION_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_EVENT_SUBSCR] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_EVENT_SUBSCR +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_EXECUTION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_EXECUTION]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_EXECUTION] +GO + +CREATE TABLE [dbo].[ACT_RU_EXECUTION] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BUSINESS_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUPER_EXEC_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ROOT_PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ACT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IS_ACTIVE_] tinyint NULL, + [IS_CONCURRENT_] tinyint NULL, + [IS_SCOPE_] tinyint NULL, + [IS_EVENT_SCOPE_] tinyint NULL, + [IS_MI_ROOT_] tinyint NULL, + [SUSPENSION_STATE_] tinyint NULL, + [CACHED_ENT_STATE_] int NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_ACT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [START_TIME_] datetime NULL, + [START_USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LOCK_TIME_] datetime NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IS_COUNT_ENABLED_] tinyint NULL, + [EVT_SUBSCR_COUNT_] int NULL, + [TASK_COUNT_] int NULL, + [JOB_COUNT_] int NULL, + [TIMER_JOB_COUNT_] int NULL, + [SUSP_JOB_COUNT_] int NULL, + [DEADLETTER_JOB_COUNT_] int NULL, + [EXTERNAL_WORKER_JOB_COUNT_] int NULL, + [VAR_COUNT_] int NULL, + [ID_LINK_COUNT_] int NULL, + [CALLBACK_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CALLBACK_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [REFERENCE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROPAGATED_STAGE_INST_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BUSINESS_STATUS_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_EXECUTION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_EXECUTION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_EXTERNAL_JOB +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_EXTERNAL_JOB]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_EXTERNAL_JOB] +GO + +CREATE TABLE [dbo].[ACT_RU_EXTERNAL_JOB] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [LOCK_EXP_TIME_] datetime NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCLUSIVE_] bit NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CORRELATION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RETRIES_] int NULL, + [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_MSG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DUEDATE_] datetime NULL, + [REPEAT_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_CFG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime2(7) NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_EXTERNAL_JOB] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_EXTERNAL_JOB +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_HISTORY_JOB +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_HISTORY_JOB]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_HISTORY_JOB] +GO + +CREATE TABLE [dbo].[ACT_RU_HISTORY_JOB] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [LOCK_EXP_TIME_] datetime NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RETRIES_] int NULL, + [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_MSG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_CFG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ADV_HANDLER_CFG_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime2(7) NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_HISTORY_JOB] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_HISTORY_JOB +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_IDENTITYLINK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_IDENTITYLINK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_IDENTITYLINK] +GO + +CREATE TABLE [dbo].[ACT_RU_IDENTITYLINK] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [GROUP_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [USER_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_IDENTITYLINK +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_JOB +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_JOB]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_JOB] +GO + +CREATE TABLE [dbo].[ACT_RU_JOB] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [LOCK_EXP_TIME_] datetime NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCLUSIVE_] bit NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CORRELATION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RETRIES_] int NULL, + [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_MSG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DUEDATE_] datetime NULL, + [REPEAT_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_CFG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime2(7) NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_JOB] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_JOB +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_SUSPENDED_JOB +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_SUSPENDED_JOB]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_SUSPENDED_JOB] +GO + +CREATE TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [EXCLUSIVE_] bit NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CORRELATION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RETRIES_] int NULL, + [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_MSG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DUEDATE_] datetime NULL, + [REPEAT_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_CFG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime2(7) NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_SUSPENDED_JOB +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_TASK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_TASK]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_TASK] +GO + +CREATE TABLE [dbo].[ACT_RU_TASK] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROPAGATED_STAGE_INST_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_DEF_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ASSIGNEE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DELEGATION_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PRIORITY_] int NULL, + [CREATE_TIME_] datetime NULL, + [DUE_DATE_] datetime NULL, + [CATEGORY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUSPENSION_STATE_] int NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL, + [FORM_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CLAIM_TIME_] datetime NULL, + [IS_COUNT_ENABLED_] tinyint NULL, + [VAR_COUNT_] int NULL, + [ID_LINK_COUNT_] int NULL, + [SUB_TASK_COUNT_] int NULL, + [STATE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IN_PROGRESS_TIME_] datetime NULL, + [IN_PROGRESS_STARTED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CLAIMED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUSPENDED_TIME_] datetime NULL, + [SUSPENDED_BY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IN_PROGRESS_DUE_DATE_] datetime NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_TASK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_TASK +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_TIMER_JOB +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_TIMER_JOB]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_TIMER_JOB] +GO + +CREATE TABLE [dbo].[ACT_RU_TIMER_JOB] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [LOCK_EXP_TIME_] datetime NULL, + [LOCK_OWNER_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCLUSIVE_] bit NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROCESS_INSTANCE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_DEF_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [ELEMENT_NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_DEFINITION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CORRELATION_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RETRIES_] int NULL, + [EXCEPTION_STACK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [EXCEPTION_MSG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DUEDATE_] datetime NULL, + [REPEAT_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [HANDLER_CFG_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CUSTOM_VALUES_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime2(7) NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_TIMER_JOB +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for ACT_RU_VARIABLE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[ACT_RU_VARIABLE]') AND type IN ('U')) + DROP TABLE [dbo].[ACT_RU_VARIABLE] +GO + +CREATE TABLE [dbo].[ACT_RU_VARIABLE] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [EXECUTION_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PROC_INST_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TASK_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BYTEARRAY_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DOUBLE_] float(53) NULL, + [LONG_] numeric(19) NULL, + [TEXT_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TEXT2_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [META_INFO_] nvarchar(4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[ACT_RU_VARIABLE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of ACT_RU_VARIABLE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_CHANNEL_DEFINITION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_CHANNEL_DEFINITION]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_CHANNEL_DEFINITION] +GO + +CREATE TABLE [dbo].[FLW_CHANNEL_DEFINITION] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [VERSION_] int NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [IMPLEMENTATION_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[FLW_CHANNEL_DEFINITION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_CHANNEL_DEFINITION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_EVENT_DEFINITION +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_EVENT_DEFINITION]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_EVENT_DEFINITION] +GO + +CREATE TABLE [dbo].[FLW_EVENT_DEFINITION] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [VERSION_] int NULL, + [KEY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[FLW_EVENT_DEFINITION] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_EVENT_DEFINITION +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_EVENT_DEPLOYMENT +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_EVENT_DEPLOYMENT]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_EVENT_DEPLOYMENT] +GO + +CREATE TABLE [dbo].[FLW_EVENT_DEPLOYMENT] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CATEGORY_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOY_TIME_] datetime NULL, + [TENANT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [PARENT_DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[FLW_EVENT_DEPLOYMENT] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_EVENT_DEPLOYMENT +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_EVENT_RESOURCE +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_EVENT_RESOURCE]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_EVENT_RESOURCE] +GO + +CREATE TABLE [dbo].[FLW_EVENT_RESOURCE] ( + [ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [NAME_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID_] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESOURCE_BYTES_] varbinary(max) NULL +) +GO + +ALTER TABLE [dbo].[FLW_EVENT_RESOURCE] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_EVENT_RESOURCE +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_EV_DATABASECHANGELOG +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_EV_DATABASECHANGELOG]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_EV_DATABASECHANGELOG] +GO + +CREATE TABLE [dbo].[FLW_EV_DATABASECHANGELOG] ( + [ID] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [AUTHOR] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [FILENAME] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [DATEEXECUTED] datetime2(3) NOT NULL, + [ORDEREXECUTED] int NOT NULL, + [EXECTYPE] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [MD5SUM] nvarchar(35) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DESCRIPTION] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [COMMENTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TAG] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LIQUIBASE] nvarchar(20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CONTEXTS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [LABELS] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [DEPLOYMENT_ID] nvarchar(10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[FLW_EV_DATABASECHANGELOG] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_EV_DATABASECHANGELOG +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[FLW_EV_DATABASECHANGELOG] ([ID], [AUTHOR], [FILENAME], [DATEEXECUTED], [ORDEREXECUTED], [EXECTYPE], [MD5SUM], [DESCRIPTION], [COMMENTS], [TAG], [LIQUIBASE], [CONTEXTS], [LABELS], [DEPLOYMENT_ID]) VALUES (N'1', N'flowable', N'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', N'2024-03-14 15:52:53.897', N'1', N'EXECUTED', N'9:63268f536c469325acef35970312551b', N'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', N'', NULL, N'4.3.5', NULL, NULL, N'1644005653'), (N'2', N'flowable', N'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', N'2024-03-14 15:52:53.900', N'2', N'EXECUTED', N'9:dcb58b7dfd6dbda66939123a96985536', N'addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION', N'', NULL, N'4.3.5', NULL, NULL, N'1644005653'), (N'3', N'flowable', N'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', N'2024-03-14 15:52:53.903', N'3', N'EXECUTED', N'9:d0c05678d57af23ad93699991e3bf4f6', N'customChange', N'', NULL, N'4.3.5', NULL, NULL, N'1644005653') +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_EV_DATABASECHANGELOGLOCK]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_EV_DATABASECHANGELOGLOCK] +GO + +CREATE TABLE [dbo].[FLW_EV_DATABASECHANGELOGLOCK] ( + [ID] int NOT NULL, + [LOCKED] bit NOT NULL, + [LOCKGRANTED] datetime2(3) NULL, + [LOCKEDBY] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL +) +GO + +ALTER TABLE [dbo].[FLW_EV_DATABASECHANGELOGLOCK] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +BEGIN TRANSACTION +GO + +INSERT INTO [dbo].[FLW_EV_DATABASECHANGELOGLOCK] ([ID], [LOCKED], [LOCKGRANTED], [LOCKEDBY]) VALUES (N'1', N'0', NULL, NULL) +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_RU_BATCH +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_RU_BATCH]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_RU_BATCH] +GO + +CREATE TABLE [dbo].[FLW_RU_BATCH] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [SEARCH_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SEARCH_KEY2_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NOT NULL, + [COMPLETE_TIME_] datetime NULL, + [STATUS_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [BATCH_DOC_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[FLW_RU_BATCH] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_RU_BATCH +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Table structure for FLW_RU_BATCH_PART +-- ---------------------------- +IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[FLW_RU_BATCH_PART]') AND type IN ('U')) + DROP TABLE [dbo].[FLW_RU_BATCH_PART] +GO + +CREATE TABLE [dbo].[FLW_RU_BATCH_PART] ( + [ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [REV_] int NULL, + [BATCH_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, + [SCOPE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SUB_SCOPE_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SCOPE_TYPE_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SEARCH_KEY_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [SEARCH_KEY2_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [CREATE_TIME_] datetime NOT NULL, + [COMPLETE_TIME_] datetime NULL, + [STATUS_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [RESULT_DOC_ID_] nvarchar(64) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, + [TENANT_ID_] nvarchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS DEFAULT '' NULL +) +GO + +ALTER TABLE [dbo].[FLW_RU_BATCH_PART] SET (LOCK_ESCALATION = TABLE) +GO + + +-- ---------------------------- +-- Records of FLW_RU_BATCH_PART +-- ---------------------------- +BEGIN TRANSACTION +GO + +COMMIT +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_APP_APPDEF +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_APP_DEF_DPLY] +ON [dbo].[ACT_APP_APPDEF] ( + [DEPLOYMENT_ID_] ASC +) +GO + +CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_APP_DEF_UNIQ] +ON [dbo].[ACT_APP_APPDEF] ( + [KEY_] ASC, + [VERSION_] ASC, + [TENANT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_APPDEF +-- ---------------------------- +ALTER TABLE [dbo].[ACT_APP_APPDEF] ADD CONSTRAINT [PK_ACT_APP_APPDEF] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_APP_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_APP_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DEPLOYMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_APP_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_APP_RSRC_DPL] +ON [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] ( + [DEPLOYMENT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [PK_APP_DEPLOYMENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_DEF_DPLY] +ON [dbo].[ACT_CMMN_CASEDEF] ( + [DEPLOYMENT_ID_] ASC +) +GO + +CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_CASE_DEF_UNIQ] +ON [dbo].[ACT_CMMN_CASEDEF] ( + [KEY_] ASC, + [VERSION_] ASC, + [TENANT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_CASEDEF] ADD CONSTRAINT [PK_ACT_CMMN_CASEDEF] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_CMMN_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_CMMN_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_CMMN_RSRC_DPL] +ON [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] ( + [DEPLOYMENT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [PK_CMMN_DEPLOYMENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_CASE_INST_END] +ON [dbo].[ACT_CMMN_HI_CASE_INST] ( + [END_TIME_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_HI_CASE_INST] ADD CONSTRAINT [PK_ACT_CMMN_HI_CASE_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_MIL_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_HI_MIL_INST] ADD CONSTRAINT [PK_ACT_CMMN_HI_MIL_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PLAN_ITEM_INST_CASE] +ON [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] ( + [CASE_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_HI_PLAN_ITEM_INST] ADD CONSTRAINT [PK_ACT_CMMN_HI_PLAN_ITEM_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_INST_CASE_DEF] +ON [dbo].[ACT_CMMN_RU_CASE_INST] ( + [CASE_DEF_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_INST_PARENT] +ON [dbo].[ACT_CMMN_RU_CASE_INST] ( + [PARENT_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_CASE_INST_REF_ID_] +ON [dbo].[ACT_CMMN_RU_CASE_INST] ( + [REFERENCE_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_CASE_INST] ADD CONSTRAINT [PK_ACT_CMMN_RU_CASE_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_MIL_CASE_DEF] +ON [dbo].[ACT_CMMN_RU_MIL_INST] ( + [CASE_DEF_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_MIL_CASE_INST] +ON [dbo].[ACT_CMMN_RU_MIL_INST] ( + [CASE_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ADD CONSTRAINT [PK_ACT_CMMN_RU_MIL_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_PLAN_ITEM_CASE_DEF] +ON [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ( + [CASE_DEF_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_PLAN_ITEM_CASE_INST] +ON [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ( + [CASE_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_PLAN_ITEM_STAGE_INST] +ON [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ( + [STAGE_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ADD CONSTRAINT [PK_CMMN_PLAN_ITEM_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_SENTRY_CASE_DEF] +ON [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ( + [CASE_DEF_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SENTRY_CASE_INST] +ON [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ( + [CASE_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SENTRY_PLAN_ITEM] +ON [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ( + [PLAN_ITEM_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [PK_CMMN_SENTRY_PART_INST] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +CREATE NONCLUSTERED INDEX [idx_contitem_taskid] +ON [dbo].[ACT_CO_CONTENT_ITEM] ( + [TASK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [idx_contitem_procid] +ON [dbo].[ACT_CO_CONTENT_ITEM] ( + [PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [idx_contitem_scope] +ON [dbo].[ACT_CO_CONTENT_ITEM] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CO_CONTENT_ITEM] ADD CONSTRAINT [PK_ACT_CO_CONTENT_ITEM] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CO_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_CO_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DE_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_DE_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_DE_MODEL +-- ---------------------------- +CREATE NONCLUSTERED INDEX [idx_proc_mod_created] +ON [dbo].[ACT_DE_MODEL] ( + [created_by] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DE_MODEL] ADD CONSTRAINT [PK_ACT_DE_MODEL] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +CREATE NONCLUSTERED INDEX [idx_proc_mod_history_proc] +ON [dbo].[ACT_DE_MODEL_HISTORY] ( + [model_id] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DE_MODEL_HISTORY] ADD CONSTRAINT [PK_ACT_DE_MODEL_HISTORY] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] ADD CONSTRAINT [PK_ACT_DE_MODEL_RELATION] PRIMARY KEY CLUSTERED ([id]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DMN_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_DMN_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_DMN_DECISION +-- ---------------------------- +CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_DMN_DEC_UNIQ] +ON [dbo].[ACT_DMN_DECISION] ( + [KEY_] ASC, + [VERSION_] ASC, + [TENANT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DECISION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DMN_DECISION] ADD CONSTRAINT [PK_ACT_DMN_DECISION_TABLE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_DMN_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DMN_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [PK_ACT_DMN_DEPLOYMENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_DMN_INSTANCE_ID] +ON [dbo].[ACT_DMN_HI_DECISION_EXECUTION] ( + [INSTANCE_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DMN_HI_DECISION_EXECUTION] ADD CONSTRAINT [PK_ACT_DMN_HI_DECISION_EXECUTION] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Auto increment value for ACT_EVT_LOG +-- ---------------------------- +DBCC CHECKIDENT ('[dbo].[ACT_EVT_LOG]', RESEED, 1) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_EVT_LOG +-- ---------------------------- +ALTER TABLE [dbo].[ACT_EVT_LOG] ADD CONSTRAINT [PK__ACT_EVT___DE8852D86ADC7D73] PRIMARY KEY CLUSTERED ([LOG_NR_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_FO_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_ACT_FO_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_FORM_DEF_UNIQ] +ON [dbo].[ACT_FO_FORM_DEFINITION] ( + [KEY_] ASC, + [VERSION_] ASC, + [TENANT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_FO_FORM_DEFINITION] ADD CONSTRAINT [PK_ACT_FO_FORM_DEFINITION] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_FO_FORM_DEPLOYMENT] ADD CONSTRAINT [PK_ACT_FO_FORM_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_FO_FORM_INSTANCE +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_FORM_TASK] +ON [dbo].[ACT_FO_FORM_INSTANCE] ( + [TASK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_FORM_PROC] +ON [dbo].[ACT_FO_FORM_INSTANCE] ( + [PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_FORM_SCOPE] +ON [dbo].[ACT_FO_FORM_INSTANCE] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_INSTANCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_FO_FORM_INSTANCE] ADD CONSTRAINT [PK_ACT_FO_FORM_INSTANCE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_FO_FORM_RESOURCE] ADD CONSTRAINT [PK_ACT_FO_FORM_RESOURCE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +ALTER TABLE [dbo].[ACT_GE_BYTEARRAY] ADD CONSTRAINT [PK__ACT_GE_B__C4971C0FD30493FA] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_GE_PROPERTY +-- ---------------------------- +ALTER TABLE [dbo].[ACT_GE_PROPERTY] ADD CONSTRAINT [PK__ACT_GE_P__A7BE44DE49135FFB] PRIMARY KEY CLUSTERED ([NAME_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_ACTINST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_START] +ON [dbo].[ACT_HI_ACTINST] ( + [START_TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_END] +ON [dbo].[ACT_HI_ACTINST] ( + [END_TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_PROCINST] +ON [dbo].[ACT_HI_ACTINST] ( + [PROC_INST_ID_] ASC, + [ACT_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ACT_INST_EXEC] +ON [dbo].[ACT_HI_ACTINST] ( + [EXECUTION_ID_] ASC, + [ACT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ACTINST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_ACTINST] ADD CONSTRAINT [PK__ACT_HI_A__C4971C0F2451D6E3] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ATTACHMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_ATTACHMENT] ADD CONSTRAINT [PK__ACT_HI_A__C4971C0F200B2D6C] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_COMMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_COMMENT] ADD CONSTRAINT [PK__ACT_HI_C__C4971C0F2E06F7E2] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_DETAIL +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_PROC_INST] +ON [dbo].[ACT_HI_DETAIL] ( + [PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_ACT_INST] +ON [dbo].[ACT_HI_DETAIL] ( + [ACT_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_TIME] +ON [dbo].[ACT_HI_DETAIL] ( + [TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_NAME] +ON [dbo].[ACT_HI_DETAIL] ( + [NAME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_DETAIL_TASK_ID] +ON [dbo].[ACT_HI_DETAIL] ( + [TASK_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_DETAIL +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_DETAIL] ADD CONSTRAINT [PK__ACT_HI_D__C4971C0F40A48B1A] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ENT_LNK_SCOPE] +ON [dbo].[ACT_HI_ENTITYLINK] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ENT_LNK_REF_SCOPE] +ON [dbo].[ACT_HI_ENTITYLINK] ( + [REF_SCOPE_ID_] ASC, + [REF_SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ENT_LNK_ROOT_SCOPE] +ON [dbo].[ACT_HI_ENTITYLINK] ( + [ROOT_SCOPE_ID_] ASC, + [ROOT_SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_ENT_LNK_SCOPE_DEF] +ON [dbo].[ACT_HI_ENTITYLINK] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_ENTITYLINK] ADD CONSTRAINT [PK__ACT_HI_E__C4971C0FEED8EF51] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_USER] +ON [dbo].[ACT_HI_IDENTITYLINK] ( + [USER_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_SCOPE] +ON [dbo].[ACT_HI_IDENTITYLINK] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_SUB_SCOPE] +ON [dbo].[ACT_HI_IDENTITYLINK] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_SCOPE_DEF] +ON [dbo].[ACT_HI_IDENTITYLINK] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_TASK] +ON [dbo].[ACT_HI_IDENTITYLINK] ( + [TASK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_IDENT_LNK_PROCINST] +ON [dbo].[ACT_HI_IDENTITYLINK] ( + [PROC_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_IDENTITYLINK] ADD CONSTRAINT [PK__ACT_HI_I__C4971C0FA127DE68] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_PROCINST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PRO_INST_END] +ON [dbo].[ACT_HI_PROCINST] ( + [END_TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PRO_I_BUSKEY] +ON [dbo].[ACT_HI_PROCINST] ( + [BUSINESS_KEY_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PRO_SUPER_PROCINST] +ON [dbo].[ACT_HI_PROCINST] ( + [SUPER_PROCESS_INSTANCE_ID_] ASC +) +GO + + +-- ---------------------------- +-- Uniques structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_PROCINST] ADD CONSTRAINT [UQ__ACT_HI_P__C0341572F5DEF7EA] UNIQUE NONCLUSTERED ([PROC_INST_ID_] ASC) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_PROCINST] ADD CONSTRAINT [PK__ACT_HI_P__C4971C0F9DC73153] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_TASKINST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_SCOPE] +ON [dbo].[ACT_HI_TASKINST] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_SUB_SCOPE] +ON [dbo].[ACT_HI_TASKINST] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_SCOPE_DEF] +ON [dbo].[ACT_HI_TASKINST] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_TASK_INST_PROCINST] +ON [dbo].[ACT_HI_TASKINST] ( + [PROC_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_TASKINST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_TASKINST] ADD CONSTRAINT [PK__ACT_HI_T__C4971C0FDDE6C3CA] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Auto increment value for ACT_HI_TSK_LOG +-- ---------------------------- +DBCC CHECKIDENT ('[dbo].[ACT_HI_TSK_LOG]', RESEED, 1) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_TSK_LOG +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_TSK_LOG] ADD CONSTRAINT [PK__ACT_HI_T__C4971C0FE3DE5C63] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_HI_VARINST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_NAME_TYPE] +ON [dbo].[ACT_HI_VARINST] ( + [NAME_] ASC, + [VAR_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_VAR_SCOPE_ID_TYPE] +ON [dbo].[ACT_HI_VARINST] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_VAR_SUB_ID_TYPE] +ON [dbo].[ACT_HI_VARINST] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_PROC_INST] +ON [dbo].[ACT_HI_VARINST] ( + [PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_TASK_ID] +ON [dbo].[ACT_HI_VARINST] ( + [TASK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_HI_PROCVAR_EXE] +ON [dbo].[ACT_HI_VARINST] ( + [EXECUTION_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_VARINST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_HI_VARINST] ADD CONSTRAINT [PK__ACT_HI_V__C4971C0F899A46DE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_BYTEARRAY +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_BYTEARRAY] ADD CONSTRAINT [PK__ACT_ID_B__C4971C0FE3B999DC] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_GROUP +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_GROUP] ADD CONSTRAINT [PK__ACT_ID_G__C4971C0F2B119228] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_INFO +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_INFO] ADD CONSTRAINT [PK__ACT_ID_I__C4971C0F0E8CE406] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] ADD CONSTRAINT [PK__ACT_ID_M__C2371B0F230E010D] PRIMARY KEY CLUSTERED ([USER_ID_], [GROUP_ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Uniques structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_PRIV] ADD CONSTRAINT [ACT_UNIQ_PRIV_NAME] UNIQUE NONCLUSTERED ([NAME_] ASC) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_PRIV] ADD CONSTRAINT [PK__ACT_ID_P__C4971C0F1B9A75B0] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_PRIV_USER] +ON [dbo].[ACT_ID_PRIV_MAPPING] ( + [USER_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_PRIV_GROUP] +ON [dbo].[ACT_ID_PRIV_MAPPING] ( + [GROUP_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_PRIV_MAPPING] ADD CONSTRAINT [PK__ACT_ID_P__C4971C0F113C0DF7] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PROPERTY +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_PROPERTY] ADD CONSTRAINT [PK__ACT_ID_P__A7BE44DE00D2EAEF] PRIMARY KEY CLUSTERED ([NAME_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_TOKEN +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_TOKEN] ADD CONSTRAINT [PK__ACT_ID_T__C4971C0F0C6DA3E7] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_USER +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_USER] ADD CONSTRAINT [PK__ACT_ID_U__C4971C0FFB7FB36B] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_PROCDEF_INFO +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_INFO_PROCDEF] +ON [dbo].[ACT_PROCDEF_INFO] ( + [PROC_DEF_ID_] ASC +) +GO + + +-- ---------------------------- +-- Uniques structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [ACT_UNIQ_INFO_PROCDEF] UNIQUE NONCLUSTERED ([PROC_DEF_ID_] ASC) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [PK__ACT_PROC__C4971C0F74F78A2D] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_DEPLOYMENT +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RE_DEPLOYMENT] ADD CONSTRAINT [PK__ACT_RE_D__C4971C0F364A6578] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_MODEL +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [PK__ACT_RE_M__C4971C0FC6153643] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Uniques structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RE_PROCDEF] ADD CONSTRAINT [ACT_UNIQ_PROCDEF] UNIQUE NONCLUSTERED ([KEY_] ASC, [VERSION_] ASC, [DERIVED_VERSION_] ASC, [TENANT_ID_] ASC) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RE_PROCDEF] ADD CONSTRAINT [PK__ACT_RE_P__C4971C0FF3F16E59] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_ACTINST +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_START] +ON [dbo].[ACT_RU_ACTINST] ( + [START_TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_END] +ON [dbo].[ACT_RU_ACTINST] ( + [END_TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_PROC] +ON [dbo].[ACT_RU_ACTINST] ( + [PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_PROC_ACT] +ON [dbo].[ACT_RU_ACTINST] ( + [PROC_INST_ID_] ASC, + [ACT_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_EXEC] +ON [dbo].[ACT_RU_ACTINST] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_EXEC_ACT] +ON [dbo].[ACT_RU_ACTINST] ( + [EXECUTION_ID_] ASC, + [ACT_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_ACTI_TASK] +ON [dbo].[ACT_RU_ACTINST] ( + [TASK_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_ACTINST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_ACTINST] ADD CONSTRAINT [PK__ACT_RU_A__C4971C0F9AFE0002] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_EXCEPTION_STACK_ID] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [EXCEPTION_STACK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_CUSTOM_VALUES_ID] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [CUSTOM_VALUES_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_CORRELATION_ID] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [CORRELATION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DJOB_SCOPE] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DJOB_SUB_SCOPE] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DJOB_SCOPE_DEF] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_EXECUTION_ID] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_PROCESS_INSTANCE_ID] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [PROCESS_INSTANCE_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_DEADLETTER_JOB_PROC_DEF_ID] +ON [dbo].[ACT_RU_DEADLETTER_JOB] ( + [PROC_DEF_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [PK__ACT_RU_D__C4971C0F802873D8] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_ENT_LNK_SCOPE] +ON [dbo].[ACT_RU_ENTITYLINK] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_ENT_LNK_REF_SCOPE] +ON [dbo].[ACT_RU_ENTITYLINK] ( + [REF_SCOPE_ID_] ASC, + [REF_SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_ENT_LNK_ROOT_SCOPE] +ON [dbo].[ACT_RU_ENTITYLINK] ( + [ROOT_SCOPE_ID_] ASC, + [ROOT_SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_ENT_LNK_SCOPE_DEF] +ON [dbo].[ACT_RU_ENTITYLINK] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC, + [LINK_TYPE_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_ENTITYLINK] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0F1837003C] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_EVENT_SUBSCR_CONFIG_] +ON [dbo].[ACT_RU_EVENT_SUBSCR] ( + [CONFIGURATION_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EVENT_SUBSCR_EXEC_ID] +ON [dbo].[ACT_RU_EVENT_SUBSCR] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EVENT_SUBSCR_SCOPEREF_] +ON [dbo].[ACT_RU_EVENT_SUBSCR] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_EVENT_SUBSCR] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0FD068F467] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EXECUTION +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_BUSKEY] +ON [dbo].[ACT_RU_EXECUTION] ( + [BUSINESS_KEY_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_ROOT] +ON [dbo].[ACT_RU_EXECUTION] ( + [ROOT_PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_REF_ID_] +ON [dbo].[ACT_RU_EXECUTION] ( + [REFERENCE_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_PROC] +ON [dbo].[ACT_RU_EXECUTION] ( + [PROC_DEF_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_PARENT] +ON [dbo].[ACT_RU_EXECUTION] ( + [PARENT_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_SUPER] +ON [dbo].[ACT_RU_EXECUTION] ( + [SUPER_EXEC_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXECUTION_IDANDREV] +ON [dbo].[ACT_RU_EXECUTION] ( + [ID_] ASC, + [REV_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXEC_PROC_INST_ID] +ON [dbo].[ACT_RU_EXECUTION] ( + [PROC_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EXECUTION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0F23EDB8A1] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_EXTERNAL_JOB_EXCEPTION_STACK_ID] +ON [dbo].[ACT_RU_EXTERNAL_JOB] ( + [EXCEPTION_STACK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXTERNAL_JOB_CUSTOM_VALUES_ID] +ON [dbo].[ACT_RU_EXTERNAL_JOB] ( + [CUSTOM_VALUES_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EXTERNAL_JOB_CORRELATION_ID] +ON [dbo].[ACT_RU_EXTERNAL_JOB] ( + [CORRELATION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EJOB_SCOPE] +ON [dbo].[ACT_RU_EXTERNAL_JOB] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EJOB_SUB_SCOPE] +ON [dbo].[ACT_RU_EXTERNAL_JOB] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_EJOB_SCOPE_DEF] +ON [dbo].[ACT_RU_EXTERNAL_JOB] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_EXTERNAL_JOB] ADD CONSTRAINT [PK__ACT_RU_E__C4971C0F34A40685] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_HISTORY_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_HISTORY_JOB] ADD CONSTRAINT [PK__ACT_RU_H__C4971C0F01BB5820] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_USER] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [USER_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_GROUP] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [GROUP_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_SCOPE] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_SUB_SCOPE] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_SCOPE_DEF] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_ATHRZ_PROCEDEF] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [PROC_DEF_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_TASK] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [TASK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_IDENT_LNK_PROCINST] +ON [dbo].[ACT_RU_IDENTITYLINK] ( + [PROC_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [PK__ACT_RU_I__C4971C0F84681884] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_JOB +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_EXCEPTION_STACK_ID] +ON [dbo].[ACT_RU_JOB] ( + [EXCEPTION_STACK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_CUSTOM_VALUES_ID] +ON [dbo].[ACT_RU_JOB] ( + [CUSTOM_VALUES_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_CORRELATION_ID] +ON [dbo].[ACT_RU_JOB] ( + [CORRELATION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_SCOPE] +ON [dbo].[ACT_RU_JOB] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_SUB_SCOPE] +ON [dbo].[ACT_RU_JOB] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_SCOPE_DEF] +ON [dbo].[ACT_RU_JOB] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_EXECUTION_ID] +ON [dbo].[ACT_RU_JOB] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_PROCESS_INSTANCE_ID] +ON [dbo].[ACT_RU_JOB] ( + [PROCESS_INSTANCE_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_JOB_PROC_DEF_ID] +ON [dbo].[ACT_RU_JOB] ( + [PROC_DEF_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [PK__ACT_RU_J__C4971C0FA45441B1] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_EXCEPTION_STACK_ID] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [EXCEPTION_STACK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_CUSTOM_VALUES_ID] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [CUSTOM_VALUES_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_CORRELATION_ID] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [CORRELATION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SJOB_SCOPE] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SJOB_SUB_SCOPE] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SJOB_SCOPE_DEF] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_EXECUTION_ID] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_PROCESS_INSTANCE_ID] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [PROCESS_INSTANCE_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_SUSPENDED_JOB_PROC_DEF_ID] +ON [dbo].[ACT_RU_SUSPENDED_JOB] ( + [PROC_DEF_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [PK__ACT_RU_S__C4971C0F2256B43D] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_TASK +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_CREATE] +ON [dbo].[ACT_RU_TASK] ( + [CREATE_TIME_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_SCOPE] +ON [dbo].[ACT_RU_TASK] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_SUB_SCOPE] +ON [dbo].[ACT_RU_TASK] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_SCOPE_DEF] +ON [dbo].[ACT_RU_TASK] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_EXEC] +ON [dbo].[ACT_RU_TASK] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_PROCINST] +ON [dbo].[ACT_RU_TASK] ( + [PROC_INST_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TASK_PROC_DEF_ID] +ON [dbo].[ACT_RU_TASK] ( + [PROC_DEF_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_TASK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [PK__ACT_RU_T__C4971C0FCFBADCC4] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_EXCEPTION_STACK_ID] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [EXCEPTION_STACK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_CUSTOM_VALUES_ID] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [CUSTOM_VALUES_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_CORRELATION_ID] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [CORRELATION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_DUEDATE] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [DUEDATE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TJOB_SCOPE] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TJOB_SUB_SCOPE] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TJOB_SCOPE_DEF] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [SCOPE_DEFINITION_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_EXECUTION_ID] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_PROCESS_INSTANCE_ID] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [PROCESS_INSTANCE_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_TIMER_JOB_PROC_DEF_ID] +ON [dbo].[ACT_RU_TIMER_JOB] ( + [PROC_DEF_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [PK__ACT_RU_T__C4971C0FE21B8629] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table ACT_RU_VARIABLE +-- ---------------------------- +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_VAR_SCOPE_ID_TYPE] +ON [dbo].[ACT_RU_VARIABLE] ( + [SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_RU_VAR_SUB_ID_TYPE] +ON [dbo].[ACT_RU_VARIABLE] ( + [SUB_SCOPE_ID_] ASC, + [SCOPE_TYPE_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_BA] +ON [dbo].[ACT_RU_VARIABLE] ( + [BYTEARRAY_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_TASK_ID] +ON [dbo].[ACT_RU_VARIABLE] ( + [TASK_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_EXEC] +ON [dbo].[ACT_RU_VARIABLE] ( + [EXECUTION_ID_] ASC +) +GO + +CREATE NONCLUSTERED INDEX [ACT_IDX_VARIABLE_PROCINST] +ON [dbo].[ACT_RU_VARIABLE] ( + [PROC_INST_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_VARIABLE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [PK__ACT_RU_V__C4971C0F1A05E3A9] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_CHANNEL_DEF_UNIQ] +ON [dbo].[FLW_CHANNEL_DEFINITION] ( + [KEY_] ASC, + [VERSION_] ASC, + [TENANT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +ALTER TABLE [dbo].[FLW_CHANNEL_DEFINITION] ADD CONSTRAINT [PK_FLW_CHANNEL_DEFINITION] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +CREATE UNIQUE NONCLUSTERED INDEX [ACT_IDX_EVENT_DEF_UNIQ] +ON [dbo].[FLW_EVENT_DEFINITION] ( + [KEY_] ASC, + [VERSION_] ASC, + [TENANT_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +ALTER TABLE [dbo].[FLW_EVENT_DEFINITION] ADD CONSTRAINT [PK_FLW_EVENT_DEFINITION] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_DEPLOYMENT +-- ---------------------------- +ALTER TABLE [dbo].[FLW_EVENT_DEPLOYMENT] ADD CONSTRAINT [PK_FLW_EVENT_DEPLOYMENT] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[FLW_EVENT_RESOURCE] ADD CONSTRAINT [PK_FLW_EVENT_RESOURCE] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE [dbo].[FLW_EV_DATABASECHANGELOGLOCK] ADD CONSTRAINT [PK_FLW_EV_DATABASECHANGELOGLOCK] PRIMARY KEY CLUSTERED ([ID]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_RU_BATCH +-- ---------------------------- +ALTER TABLE [dbo].[FLW_RU_BATCH] ADD CONSTRAINT [PK__FLW_RU_B__C4971C0FFD4930D4] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Indexes structure for table FLW_RU_BATCH_PART +-- ---------------------------- +CREATE NONCLUSTERED INDEX [FLW_IDX_BATCH_PART] +ON [dbo].[FLW_RU_BATCH_PART] ( + [BATCH_ID_] ASC +) +GO + + +-- ---------------------------- +-- Primary Key structure for table FLW_RU_BATCH_PART +-- ---------------------------- +ALTER TABLE [dbo].[FLW_RU_BATCH_PART] ADD CONSTRAINT [PK__FLW_RU_B__C4971C0F47364816] PRIMARY KEY CLUSTERED ([ID_]) +WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) +ON [PRIMARY] +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_APP_APPDEF +-- ---------------------------- +ALTER TABLE [dbo].[ACT_APP_APPDEF] ADD CONSTRAINT [ACT_FK_APP_DEF_DPLY] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_APP_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_APP_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [ACT_FK_APP_RSRC_DPL] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_APP_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_CASEDEF] ADD CONSTRAINT [ACT_FK_CASE_DEF_DPLY] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_CMMN_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_DEPLOYMENT_RESOURCE] ADD CONSTRAINT [ACT_FK_CMMN_RSRC_DPL] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_CMMN_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_CASE_INST] ADD CONSTRAINT [ACT_FK_CASE_INST_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ADD CONSTRAINT [ACT_FK_MIL_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_MIL_INST] ADD CONSTRAINT [ACT_FK_MIL_CASE_INST] FOREIGN KEY ([CASE_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_CASE_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ADD CONSTRAINT [ACT_FK_PLAN_ITEM_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ADD CONSTRAINT [ACT_FK_PLAN_ITEM_CASE_INST] FOREIGN KEY ([CASE_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_CASE_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [ACT_FK_SENTRY_CASE_DEF] FOREIGN KEY ([CASE_DEF_ID_]) REFERENCES [dbo].[ACT_CMMN_CASEDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [ACT_FK_SENTRY_CASE_INST] FOREIGN KEY ([CASE_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_CASE_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_CMMN_RU_SENTRY_PART_INST] ADD CONSTRAINT [ACT_FK_SENTRY_PLAN_ITEM] FOREIGN KEY ([PLAN_ITEM_INST_ID_]) REFERENCES [dbo].[ACT_CMMN_RU_PLAN_ITEM_INST] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] ADD CONSTRAINT [fk_relation_parent] FOREIGN KEY ([parent_model_id]) REFERENCES [dbo].[ACT_DE_MODEL] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_DE_MODEL_RELATION] ADD CONSTRAINT [fk_relation_child] FOREIGN KEY ([model_id]) REFERENCES [dbo].[ACT_DE_MODEL] ([id]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +ALTER TABLE [dbo].[ACT_GE_BYTEARRAY] ADD CONSTRAINT [ACT_FK_BYTEARR_DEPL] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_RE_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] ADD CONSTRAINT [ACT_FK_MEMB_GROUP] FOREIGN KEY ([GROUP_ID_]) REFERENCES [dbo].[ACT_ID_GROUP] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_ID_MEMBERSHIP] ADD CONSTRAINT [ACT_FK_MEMB_USER] FOREIGN KEY ([USER_ID_]) REFERENCES [dbo].[ACT_ID_USER] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +ALTER TABLE [dbo].[ACT_ID_PRIV_MAPPING] ADD CONSTRAINT [ACT_FK_PRIV_MAPPING] FOREIGN KEY ([PRIV_ID_]) REFERENCES [dbo].[ACT_ID_PRIV] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [ACT_FK_INFO_JSON_BA] FOREIGN KEY ([INFO_JSON_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_PROCDEF_INFO] ADD CONSTRAINT [ACT_FK_INFO_PROCDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RE_MODEL +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [ACT_FK_MODEL_SOURCE] FOREIGN KEY ([EDITOR_SOURCE_VALUE_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [ACT_FK_MODEL_SOURCE_EXTRA] FOREIGN KEY ([EDITOR_SOURCE_EXTRA_VALUE_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RE_MODEL] ADD CONSTRAINT [ACT_FK_MODEL_DEPLOYMENT] FOREIGN KEY ([DEPLOYMENT_ID_]) REFERENCES [dbo].[ACT_RE_DEPLOYMENT] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_DEADLETTER_JOB] ADD CONSTRAINT [ACT_FK_DEADLETTER_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_EVENT_SUBSCR] ADD CONSTRAINT [ACT_FK_EVENT_EXEC] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EXECUTION +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [ACT_FK_EXE_PARENT] FOREIGN KEY ([PARENT_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [ACT_FK_EXE_SUPER] FOREIGN KEY ([SUPER_EXEC_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_EXECUTION] ADD CONSTRAINT [ACT_FK_EXE_PROCDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_EXTERNAL_JOB] ADD CONSTRAINT [ACT_FK_EXTERNAL_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_EXTERNAL_JOB] ADD CONSTRAINT [ACT_FK_EXTERNAL_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [ACT_FK_TSKASS_TASK] FOREIGN KEY ([TASK_ID_]) REFERENCES [dbo].[ACT_RU_TASK] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [ACT_FK_ATHRZ_PROCEDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_IDENTITYLINK] ADD CONSTRAINT [ACT_FK_IDL_PROCINST] FOREIGN KEY ([PROC_INST_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_JOB] ADD CONSTRAINT [ACT_FK_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_SUSPENDED_JOB] ADD CONSTRAINT [ACT_FK_SUSPENDED_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_TASK +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [ACT_FK_TASK_EXE] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [ACT_FK_TASK_PROCINST] FOREIGN KEY ([PROC_INST_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_TASK] ADD CONSTRAINT [ACT_FK_TASK_PROCDEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_EXCEPTION] FOREIGN KEY ([EXCEPTION_STACK_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_CUSTOM_VALUES] FOREIGN KEY ([CUSTOM_VALUES_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_EXECUTION] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_PROCESS_INSTANCE] FOREIGN KEY ([PROCESS_INSTANCE_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_TIMER_JOB] ADD CONSTRAINT [ACT_FK_TIMER_JOB_PROC_DEF] FOREIGN KEY ([PROC_DEF_ID_]) REFERENCES [dbo].[ACT_RE_PROCDEF] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_VARIABLE +-- ---------------------------- +ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [ACT_FK_VAR_BYTEARRAY] FOREIGN KEY ([BYTEARRAY_ID_]) REFERENCES [dbo].[ACT_GE_BYTEARRAY] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [ACT_FK_VAR_EXE] FOREIGN KEY ([EXECUTION_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + +ALTER TABLE [dbo].[ACT_RU_VARIABLE] ADD CONSTRAINT [ACT_FK_VAR_PROCINST] FOREIGN KEY ([PROC_INST_ID_]) REFERENCES [dbo].[ACT_RU_EXECUTION] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + + +-- ---------------------------- +-- Foreign Keys structure for table FLW_RU_BATCH_PART +-- ---------------------------- +ALTER TABLE [dbo].[FLW_RU_BATCH_PART] ADD CONSTRAINT [FLW_FK_BATCH_PART_PARENT] FOREIGN KEY ([BATCH_ID_]) REFERENCES [dbo].[FLW_RU_BATCH] ([ID_]) ON DELETE NO ACTION ON UPDATE NO ACTION +GO + diff --git a/doc/sql/flowable/flowable.yashan.all.create.sql b/doc/sql/flowable/flowable.yashan.all.create.sql new file mode 100644 index 0000000..30159a1 --- /dev/null +++ b/doc/sql/flowable/flowable.yashan.all.create.sql @@ -0,0 +1,4306 @@ +/* + Navicat Premium Data Transfer + + Source Server : ysdb_localhost + Source Server Type : YSDB + Source Server Version : 110200 + Source Host : 127.0.0.1 + Source Schema : BLADEX + + Target Server Type : YSDB + Target Server Version : 110200 + File Encoding : 65001 + + Date: 15/03/2024 01:16:45 +*/ + + +-- ---------------------------- +-- Table structure for ACT_APP_APPDEF +-- ---------------------------- +-- DROP TABLE "ACT_APP_APPDEF"; +CREATE TABLE "ACT_APP_APPDEF" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR(255), + "KEY_" VARCHAR(255) NOT NULL, + "VERSION_" NUMBER NOT NULL, + "CATEGORY_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_NAME_" VARCHAR(4000), + "DESCRIPTION_" VARCHAR(4000), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_APP_APPDEF +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_APP_DATABASECHANGELOG"; +CREATE TABLE "ACT_APP_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_APP_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_APP_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:02.893666', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:959783069c0c7ce80320a0617aa48969', 'createTable tableName=ACT_APP_DEPLOYMENT; createTable tableName=ACT_APP_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_APP_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_APP_RSRC_DPL, referencedTableName=ACT_APP_DEPLOYMENT; createIndex...', NULL, NULL, '3.5.3', NULL, NULL, '9500486764'); +INSERT INTO "ACT_APP_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/app/db/liquibase/flowable-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:03.090284', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:c05b79a3b00e95136533085718361208', 'createIndex indexName=ACT_IDX_APP_DEF_UNIQ, tableName=ACT_APP_APPDEF', NULL, NULL, '3.5.3', NULL, NULL, '9500486764'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_APP_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_APP_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_APP_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_APP_DEPLOYMENT"; +CREATE TABLE "ACT_APP_DEPLOYMENT" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "KEY_" VARCHAR(255), + "DEPLOY_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_APP_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_APP_DEPLOYMENT_RESOURCE"; +CREATE TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_BYTES_" BLOB +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_CASEDEF +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_CASEDEF"; +CREATE TABLE "ACT_CMMN_CASEDEF" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR(255), + "KEY_" VARCHAR(255) NOT NULL, + "VERSION_" NUMBER NOT NULL, + "CATEGORY_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_NAME_" VARCHAR(4000), + "DESCRIPTION_" VARCHAR(4000), + "HAS_GRAPHICAL_NOTATION_" NUMBER(1), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "DGRM_RESOURCE_NAME_" VARCHAR(4000), + "HAS_START_FORM_KEY_" NUMBER(1) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_CASEDEF +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DATABASECHANGELOG"; +CREATE TABLE "ACT_CMMN_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('8', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.302026', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '7', 'EXECUTED', '9:eda5e43816221f2d8554bfcc90f1c37e', 'addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('9', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.333359', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '8', 'EXECUTED', '9:c34685611779075a73caf8c380f078ea', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('10', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.407269', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '9', 'EXECUTED', '9:368e9472ad2348206205170d6c52d58e', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_CASE_INST_REF_ID_, tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE...', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('11', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.459647', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '10', 'EXECUTED', '9:e54b50ceb2bcd5355ae4dfb56d9ff3ad', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('12', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.477268', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '11', 'EXECUTED', '9:f53f262768d04e74529f43fcd93429b0', 'addColumn tableName=ACT_CMMN_RU_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('13', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.505746', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '12', 'EXECUTED', '9:64e7eafbe97997094654e83caea99895', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('14', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.556427', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '13', 'EXECUTED', '9:ab7d934abde497eac034701542e0a281', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('16', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.594593', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '14', 'EXECUTED', '9:03928d422e510959770e7a9daa5a993f', 'addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_HI_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('17', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.612429', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '15', 'EXECUTED', '9:f30304cf001d6eac78c793ea88cd5781', 'createIndex indexName=ACT_IDX_HI_CASE_INST_END, tableName=ACT_CMMN_HI_CASE_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('18', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:34.649692', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '16', 'EXECUTED', '9:d782865087d6c0c3dc033ac20e783008', 'createIndex indexName=ACT_IDX_HI_PLAN_ITEM_INST_CASE, tableName=ACT_CMMN_HI_PLAN_ITEM_INST', NULL, NULL, '4.24.0', NULL, NULL, '0436534181'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:05.572529', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:d0cc0aaadf0e4ef70c5b412cd05fadc4', 'createTable tableName=ACT_CMMN_DEPLOYMENT; createTable tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addForeignKeyConstraint baseTableName=ACT_CMMN_DEPLOYMENT_RESOURCE, constraintName=ACT_FK_CMMN_RSRC_DPL, referencedTableName=ACT_CMMN_DEPLOYMENT; create...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.062159', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:8095a5a8a222a100c2d0310cacbda5e7', 'addColumn tableName=ACT_CMMN_CASEDEF; addColumn tableName=ACT_CMMN_DEPLOYMENT_RESOURCE; addColumn tableName=ACT_CMMN_RU_CASE_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.474729', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '9:f031b4f0ae67bc5a640736b379049b12', 'addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_CASE_INST; createIndex indexName=ACT_IDX_PLAN_ITEM_STAGE_INST, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_PLAN_ITEM_INST; addColumn tableNam...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('4', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.633601', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '9:c484ecfb08719feccac2f80fc962dda9', 'createTable tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_MIL_INST; addColumn tableName=ACT_CMMN_HI_MIL_INST', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('6', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:06.752638', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '5', 'EXECUTED', '9:7343ab247d959e5add9278b5386de833', 'createIndex indexName=ACT_IDX_CASE_DEF_UNIQ, tableName=ACT_CMMN_CASEDEF', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +INSERT INTO "ACT_CMMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('7', 'flowable', 'org/flowable/cmmn/db/liquibase/flowable-cmmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:07.919259', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '6', 'EXECUTED', '9:d73200db684b6cdb748cc03570d5d2e9', 'renameColumn newColumnName=CREATE_TIME_, oldColumnName=START_TIME_, tableName=ACT_CMMN_RU_PLAN_ITEM_INST; renameColumn newColumnName=CREATE_TIME_, oldColumnName=CREATED_TIME_, tableName=ACT_CMMN_HI_PLAN_ITEM_INST; addColumn tableName=ACT_CMMN_RU_P...', NULL, NULL, '3.5.3', NULL, NULL, '9500487786'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_CMMN_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DEPLOYMENT"; +CREATE TABLE "ACT_CMMN_DEPLOYMENT" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "KEY_" VARCHAR(255), + "DEPLOY_TIME_" TIMESTAMP, + "PARENT_DEPLOYMENT_ID_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE"; +CREATE TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_BYTES_" BLOB, + "GENERATED_" NUMBER(1) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_CASE_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_HI_CASE_INST"; +CREATE TABLE "ACT_CMMN_HI_CASE_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "BUSINESS_KEY_" VARCHAR(255), + "NAME_" VARCHAR(255), + "PARENT_ID_" VARCHAR(255), + "CASE_DEF_ID_" VARCHAR(255), + "STATE_" VARCHAR(255), + "START_TIME_" TIMESTAMP, + "END_TIME_" TIMESTAMP, + "START_USER_ID_" VARCHAR(255), + "CALLBACK_ID_" VARCHAR(255), + "CALLBACK_TYPE_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "REFERENCE_ID_" VARCHAR(255), + "REFERENCE_TYPE_" VARCHAR(255), + "LAST_REACTIVATION_TIME_" TIMESTAMP, + "LAST_REACTIVATION_USER_ID_" VARCHAR(255), + "BUSINESS_STATUS_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_HI_CASE_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_MIL_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_HI_MIL_INST"; +CREATE TABLE "ACT_CMMN_HI_MIL_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "TIME_STAMP_" TIMESTAMP NOT NULL, + "CASE_INST_ID_" VARCHAR(255) NOT NULL, + "CASE_DEF_ID_" VARCHAR(255) NOT NULL, + "ELEMENT_ID_" VARCHAR(255) NOT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_HI_MIL_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_HI_PLAN_ITEM_INST"; +CREATE TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "NAME_" VARCHAR(255), + "STATE_" VARCHAR(255), + "CASE_DEF_ID_" VARCHAR(255), + "CASE_INST_ID_" VARCHAR(255), + "STAGE_INST_ID_" VARCHAR(255), + "IS_STAGE_" NUMBER(1), + "ELEMENT_ID_" VARCHAR(255), + "ITEM_DEFINITION_ID_" VARCHAR(255), + "ITEM_DEFINITION_TYPE_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP, + "LAST_AVAILABLE_TIME_" TIMESTAMP, + "LAST_ENABLED_TIME_" TIMESTAMP, + "LAST_DISABLED_TIME_" TIMESTAMP, + "LAST_STARTED_TIME_" TIMESTAMP, + "LAST_SUSPENDED_TIME_" TIMESTAMP, + "COMPLETED_TIME_" TIMESTAMP, + "OCCURRED_TIME_" TIMESTAMP, + "TERMINATED_TIME_" TIMESTAMP, + "EXIT_TIME_" TIMESTAMP, + "ENDED_TIME_" TIMESTAMP, + "LAST_UPDATED_TIME_" TIMESTAMP, + "START_USER_ID_" VARCHAR(255), + "REFERENCE_ID_" VARCHAR(255), + "REFERENCE_TYPE_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "ENTRY_CRITERION_ID_" VARCHAR(255), + "EXIT_CRITERION_ID_" VARCHAR(255), + "SHOW_IN_OVERVIEW_" NUMBER(1), + "EXTRA_VALUE_" VARCHAR(255), + "DERIVED_CASE_DEF_ID_" VARCHAR(255), + "LAST_UNAVAILABLE_TIME_" TIMESTAMP +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_CASE_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_CASE_INST"; +CREATE TABLE "ACT_CMMN_RU_CASE_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "BUSINESS_KEY_" VARCHAR(255), + "NAME_" VARCHAR(255), + "PARENT_ID_" VARCHAR(255), + "CASE_DEF_ID_" VARCHAR(255), + "STATE_" VARCHAR(255), + "START_TIME_" TIMESTAMP, + "START_USER_ID_" VARCHAR(255), + "CALLBACK_ID_" VARCHAR(255), + "CALLBACK_TYPE_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "LOCK_TIME_" TIMESTAMP, + "IS_COMPLETEABLE_" NUMBER(1), + "REFERENCE_ID_" VARCHAR(255), + "REFERENCE_TYPE_" VARCHAR(255), + "LOCK_OWNER_" VARCHAR(255), + "LAST_REACTIVATION_TIME_" TIMESTAMP, + "LAST_REACTIVATION_USER_ID_" VARCHAR(255), + "BUSINESS_STATUS_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_CASE_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_MIL_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_MIL_INST"; +CREATE TABLE "ACT_CMMN_RU_MIL_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "TIME_STAMP_" TIMESTAMP NOT NULL, + "CASE_INST_ID_" VARCHAR(255) NOT NULL, + "CASE_DEF_ID_" VARCHAR(255) NOT NULL, + "ELEMENT_ID_" VARCHAR(255) NOT NULL, + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_MIL_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_PLAN_ITEM_INST"; +CREATE TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "CASE_DEF_ID_" VARCHAR(255), + "CASE_INST_ID_" VARCHAR(255), + "STAGE_INST_ID_" VARCHAR(255), + "IS_STAGE_" NUMBER(1), + "ELEMENT_ID_" VARCHAR(255), + "NAME_" VARCHAR(255), + "STATE_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP, + "START_USER_ID_" VARCHAR(255), + "REFERENCE_ID_" VARCHAR(255), + "REFERENCE_TYPE_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "ITEM_DEFINITION_ID_" VARCHAR(255), + "ITEM_DEFINITION_TYPE_" VARCHAR(255), + "IS_COMPLETEABLE_" NUMBER(1), + "IS_COUNT_ENABLED_" NUMBER(1), + "VAR_COUNT_" NUMBER, + "SENTRY_PART_INST_COUNT_" NUMBER, + "LAST_AVAILABLE_TIME_" TIMESTAMP, + "LAST_ENABLED_TIME_" TIMESTAMP, + "LAST_DISABLED_TIME_" TIMESTAMP, + "LAST_STARTED_TIME_" TIMESTAMP, + "LAST_SUSPENDED_TIME_" TIMESTAMP, + "COMPLETED_TIME_" TIMESTAMP, + "OCCURRED_TIME_" TIMESTAMP, + "TERMINATED_TIME_" TIMESTAMP, + "EXIT_TIME_" TIMESTAMP, + "ENDED_TIME_" TIMESTAMP, + "ENTRY_CRITERION_ID_" VARCHAR(255), + "EXIT_CRITERION_ID_" VARCHAR(255), + "EXTRA_VALUE_" VARCHAR(255), + "DERIVED_CASE_DEF_ID_" VARCHAR(255), + "LAST_UNAVAILABLE_TIME_" TIMESTAMP +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +-- DROP TABLE "ACT_CMMN_RU_SENTRY_PART_INST"; +CREATE TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ( + "ID_" VARCHAR(255) NOT NULL, + "REV_" NUMBER NOT NULL, + "CASE_DEF_ID_" VARCHAR(255), + "CASE_INST_ID_" VARCHAR(255), + "PLAN_ITEM_INST_ID_" VARCHAR(255), + "ON_PART_ID_" VARCHAR(255), + "IF_PART_ID_" VARCHAR(255), + "TIME_STAMP_" TIMESTAMP +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CO_CONTENT_ITEM +-- ---------------------------- +-- DROP TABLE "ACT_CO_CONTENT_ITEM"; +CREATE TABLE "ACT_CO_CONTENT_ITEM" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "MIME_TYPE_" VARCHAR(255), + "TASK_ID_" VARCHAR(255), + "PROC_INST_ID_" VARCHAR(255), + "CONTENT_STORE_ID_" VARCHAR(255), + "CONTENT_STORE_NAME_" VARCHAR(255), + "FIELD_" VARCHAR(400), + "CONTENT_AVAILABLE_" NUMBER(1) DEFAULT 0, + "CREATED_" TIMESTAMP, + "CREATED_BY_" VARCHAR(255), + "LAST_MODIFIED_" TIMESTAMP, + "LAST_MODIFIED_BY_" VARCHAR(255), + "CONTENT_SIZE_" NUMBER(38) DEFAULT 0, + "TENANT_ID_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CO_CONTENT_ITEM +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CO_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_CO_DATABASECHANGELOG"; +CREATE TABLE "ACT_CO_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CO_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_CO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'activiti', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:15.412866', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:7644d7165cfe799200a2abdd3419e8b6', 'createTable tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_taskid, tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_procid, tableName=ACT_CO_CONTENT_ITEM', NULL, NULL, '3.5.3', NULL, NULL, '9500492548'); +INSERT INTO "ACT_CO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/content/db/liquibase/flowable-content-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:59.614707', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:fe7b11ac7dbbf9c43006b23bbab60bab', 'addColumn tableName=ACT_CO_CONTENT_ITEM; createIndex indexName=idx_contitem_scope, tableName=ACT_CO_CONTENT_ITEM', NULL, NULL, '3.5.3', NULL, NULL, '9500492548'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_CO_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_CO_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_CO_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_DE_DATABASECHANGELOG"; +CREATE TABLE "ACT_DE_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DE_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_DE_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 02:21:28.919681', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:e70d1d9d3899a734296b2514ccc71501', 'createTable tableName=ACT_DE_MODEL; createIndex indexName=idx_proc_mod_created, tableName=ACT_DE_MODEL; createTable tableName=ACT_DE_MODEL_HISTORY; createIndex indexName=idx_proc_mod_history_proc, tableName=ACT_DE_MODEL_HISTORY; createTable tableN...', NULL, NULL, '3.6.3', NULL, NULL, '4626087832'); +INSERT INTO "ACT_DE_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'META-INF/liquibase/flowable-modeler-app-db-changelog.xml', TO_TIMESTAMP('2019-08-01 02:21:29.414387', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:3a9143bef2e45f2316231cc1369138b6', 'addColumn tableName=ACT_DE_MODEL; addColumn tableName=ACT_DE_MODEL_HISTORY', NULL, NULL, '3.6.3', NULL, NULL, '4626087832'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_DE_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_DE_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_DE_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL +-- ---------------------------- +-- DROP TABLE "ACT_DE_MODEL"; +CREATE TABLE "ACT_DE_MODEL" ( + "ID" VARCHAR(255) NOT NULL, + "NAME" VARCHAR(400) NOT NULL, + "MODEL_KEY" VARCHAR(400) NOT NULL, + "DESCRIPTION" VARCHAR(4000), + "MODEL_COMMENT" VARCHAR(4000), + "CREATED" TIMESTAMP, + "CREATED_BY" VARCHAR(255), + "LAST_UPDATED" TIMESTAMP, + "LAST_UPDATED_BY" VARCHAR(255), + "VERSION" NUMBER, + "MODEL_EDITOR_JSON" CLOB, + "MODEL_EDITOR_XML" CLOB, + "THUMBNAIL" BLOB, + "MODEL_TYPE" NUMBER, + "TENANT_ID" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DE_MODEL +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL_HISTORY +-- ---------------------------- +-- DROP TABLE "ACT_DE_MODEL_HISTORY"; +CREATE TABLE "ACT_DE_MODEL_HISTORY" ( + "ID" VARCHAR(255) NOT NULL, + "NAME" VARCHAR(400) NOT NULL, + "MODEL_KEY" VARCHAR(400) NOT NULL, + "DESCRIPTION" VARCHAR(4000), + "MODEL_COMMENT" VARCHAR(4000), + "CREATED" TIMESTAMP, + "CREATED_BY" VARCHAR(255), + "LAST_UPDATED" TIMESTAMP, + "LAST_UPDATED_BY" VARCHAR(255), + "REMOVAL_DATE" TIMESTAMP, + "VERSION" NUMBER, + "MODEL_EDITOR_JSON" CLOB, + "MODEL_ID" VARCHAR(255) NOT NULL, + "MODEL_TYPE" NUMBER, + "TENANT_ID" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DE_MODEL_HISTORY +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DE_MODEL_RELATION +-- ---------------------------- +-- DROP TABLE "ACT_DE_MODEL_RELATION"; +CREATE TABLE "ACT_DE_MODEL_RELATION" ( + "ID" VARCHAR(255) NOT NULL, + "PARENT_MODEL_ID" VARCHAR(255), + "MODEL_ID" VARCHAR(255), + "RELATION_TYPE" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DE_MODEL_RELATION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DATABASECHANGELOG"; +CREATE TABLE "ACT_DMN_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('7', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:32.336251', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '6', 'EXECUTED', '9:d24d4c5f44083b4edf1231a7a682a2cd', 'dropIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE; renameTable newTableName=ACT_DMN_DECISION, oldTableName=ACT_DMN_DECISION_TABLE; createIndex indexName=ACT_IDX_DMN_DEC_UNIQ, tableName=ACT_DMN_DECISION', NULL, NULL, '4.24.0', NULL, NULL, '0436532249'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('8', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:32.357741', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '7', 'EXECUTED', '9:3998ef0958b46fe9c19458183952d2a0', 'addColumn tableName=ACT_DMN_DECISION', NULL, NULL, '4.24.0', NULL, NULL, '0436532249'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('9', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:32.370931', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '8', 'EXECUTED', '9:5c9dc65601456faa1aa12f8d3afe0e9e', 'createIndex indexName=ACT_IDX_DMN_INSTANCE_ID, tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '4.24.0', NULL, NULL, '0436532249'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'activiti', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.445285', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:5b36e70aee5a2e42f6e7a62ea5fa681b', 'createTable tableName=ACT_DMN_DEPLOYMENT; createTable tableName=ACT_DMN_DEPLOYMENT_RESOURCE; createTable tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.548377', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:fd13fa3f7af55d2b72f763fc261da30d', 'createTable tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:09.617030', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '9:9f30e6a3557d4b4c713dbb2dcc141782', 'addColumn tableName=ACT_DMN_HI_DECISION_EXECUTION', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('4', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.086703', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '9:41085fbde807dba96104ee75a2fcc4cc', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +INSERT INTO "ACT_DMN_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('6', 'flowable', 'org/flowable/dmn/db/liquibase/flowable-dmn-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.165065', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '5', 'EXECUTED', '9:f00f92f3ef1af3fc1604f0323630f9b1', 'createIndex indexName=ACT_IDX_DEC_TBL_UNIQ, tableName=ACT_DMN_DECISION_TABLE', NULL, NULL, '3.5.3', NULL, NULL, '9500490105'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_DMN_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DECISION +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DECISION"; +CREATE TABLE "ACT_DMN_DECISION" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "VERSION_" NUMBER, + "KEY_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255), + "RESOURCE_NAME_" VARCHAR(255), + "DESCRIPTION_" VARCHAR(255), + "DECISION_TYPE_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DMN_DECISION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DEPLOYMENT"; +CREATE TABLE "ACT_DMN_DEPLOYMENT" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOY_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255), + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DMN_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_DMN_DEPLOYMENT_RESOURCE"; +CREATE TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_BYTES_" BLOB +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +-- DROP TABLE "ACT_DMN_HI_DECISION_EXECUTION"; +CREATE TABLE "ACT_DMN_HI_DECISION_EXECUTION" ( + "ID_" VARCHAR(255) NOT NULL, + "DECISION_DEFINITION_ID_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "START_TIME_" TIMESTAMP, + "END_TIME_" TIMESTAMP, + "INSTANCE_ID_" VARCHAR(255), + "EXECUTION_ID_" VARCHAR(255), + "ACTIVITY_ID_" VARCHAR(255), + "FAILED_" NUMBER(1) DEFAULT 0, + "TENANT_ID_" VARCHAR(255), + "EXECUTION_JSON_" CLOB, + "SCOPE_TYPE_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_EVT_LOG +-- ---------------------------- +-- DROP TABLE "ACT_EVT_LOG"; +CREATE TABLE "ACT_EVT_LOG" ( + "LOG_NR_" NUMBER(19) NOT NULL, + "TYPE_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "EXECUTION_ID_" VARCHAR(64), + "TASK_ID_" VARCHAR(64), + "TIME_STAMP_" TIMESTAMP NOT NULL, + "USER_ID_" VARCHAR(255), + "DATA_" BLOB, + "LOCK_OWNER_" VARCHAR(255), + "LOCK_TIME_" TIMESTAMP, + "IS_PROCESSED_" NUMBER(3) DEFAULT 0 +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_EVT_LOG +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "ACT_FO_DATABASECHANGELOG"; +CREATE TABLE "ACT_FO_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_FO_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'activiti', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:10.875144', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '8:033ebf9380889aed7c453927ecc3250d', 'createTable tableName=ACT_FO_FORM_DEPLOYMENT; createTable tableName=ACT_FO_FORM_RESOURCE; createTable tableName=ACT_FO_FORM_DEFINITION; createTable tableName=ACT_FO_FORM_INSTANCE', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:11.176570', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '8:986365ceb40445ce3b27a8e6b40f159b', 'addColumn tableName=ACT_FO_FORM_INSTANCE', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:13.571387', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '8:abf482518ceb09830ef674e52c06bf15', 'dropColumn columnName=PARENT_DEPLOYMENT_ID_, tableName=ACT_FO_FORM_DEFINITION', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +INSERT INTO "ACT_FO_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('5', 'flowable', 'org/flowable/form/db/liquibase/flowable-form-db-changelog.xml', TO_TIMESTAMP('2019-08-01 01:36:13.675232', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '4', 'EXECUTED', '8:b4be732b89e5ca028bdd520c6ad4d446', 'createIndex indexName=ACT_IDX_FORM_DEF_UNIQ, tableName=ACT_FO_FORM_DEFINITION', NULL, NULL, '3.5.3', NULL, NULL, '9500491442'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "ACT_FO_DATABASECHANGELOGLOCK"; +CREATE TABLE "ACT_FO_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "ACT_FO_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_DEFINITION +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_DEFINITION"; +CREATE TABLE "ACT_FO_FORM_DEFINITION" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "VERSION_" NUMBER, + "KEY_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255), + "RESOURCE_NAME_" VARCHAR(255), + "DESCRIPTION_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_FO_FORM_DEFINITION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_DEPLOYMENT"; +CREATE TABLE "ACT_FO_FORM_DEPLOYMENT" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOY_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255), + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_INSTANCE +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_INSTANCE"; +CREATE TABLE "ACT_FO_FORM_INSTANCE" ( + "ID_" VARCHAR(255) NOT NULL, + "FORM_DEFINITION_ID_" VARCHAR(255) NOT NULL, + "TASK_ID_" VARCHAR(255), + "PROC_INST_ID_" VARCHAR(255), + "PROC_DEF_ID_" VARCHAR(255), + "SUBMITTED_DATE_" TIMESTAMP, + "SUBMITTED_BY_" VARCHAR(255), + "FORM_VALUES_ID_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_FO_FORM_INSTANCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_FO_FORM_RESOURCE +-- ---------------------------- +-- DROP TABLE "ACT_FO_FORM_RESOURCE"; +CREATE TABLE "ACT_FO_FORM_RESOURCE" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_BYTES_" BLOB +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_FO_FORM_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_GE_BYTEARRAY +-- ---------------------------- +-- DROP TABLE "ACT_GE_BYTEARRAY"; +CREATE TABLE "ACT_GE_BYTEARRAY" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "NAME_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(64), + "BYTES_" BLOB, + "GENERATED_" NUMBER(1) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_GE_BYTEARRAY +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_GE_PROPERTY +-- ---------------------------- +-- DROP TABLE "ACT_GE_PROPERTY"; +CREATE TABLE "ACT_GE_PROPERTY" ( + "NAME_" VARCHAR(64) NOT NULL, + "VALUE_" VARCHAR(300), + "REV_" NUMBER +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_GE_PROPERTY +-- ---------------------------- +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('batch.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('common.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('next.dbid', '1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('entitylink.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('identitylink.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('job.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('task.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('variable.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('eventsubscription.schema.version', '7.0.1.1', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('schema.version', '7.0.1.1', '2'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('schema.history', 'upgrade(6.5.0.1->7.0.1.1)', '2'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('cfg.execution-related-entities-count', 'true', '1'); +INSERT INTO "ACT_GE_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('cfg.task-related-entities-count', 'true', '1'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_ACTINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_ACTINST"; +CREATE TABLE "ACT_HI_ACTINST" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "PROC_INST_ID_" VARCHAR(64) NOT NULL, + "EXECUTION_ID_" VARCHAR(64) NOT NULL, + "ACT_ID_" VARCHAR(255) NOT NULL, + "TASK_ID_" VARCHAR(64), + "CALL_PROC_INST_ID_" VARCHAR(64), + "ACT_NAME_" VARCHAR(255), + "ACT_TYPE_" VARCHAR(255) NOT NULL, + "ASSIGNEE_" VARCHAR(255), + "START_TIME_" TIMESTAMP NOT NULL, + "END_TIME_" TIMESTAMP, + "DURATION_" NUMBER(19), + "DELETE_REASON_" VARCHAR(2000), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "TRANSACTION_ORDER_" NUMBER +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_ACTINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_ATTACHMENT +-- ---------------------------- +-- DROP TABLE "ACT_HI_ATTACHMENT"; +CREATE TABLE "ACT_HI_ATTACHMENT" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "USER_ID_" VARCHAR(255), + "NAME_" VARCHAR(255), + "DESCRIPTION_" VARCHAR(2000), + "TYPE_" VARCHAR(255), + "TASK_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "URL_" VARCHAR(2000), + "CONTENT_ID_" VARCHAR(64), + "TIME_" TIMESTAMP +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_ATTACHMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_COMMENT +-- ---------------------------- +-- DROP TABLE "ACT_HI_COMMENT"; +CREATE TABLE "ACT_HI_COMMENT" ( + "ID_" VARCHAR(64) NOT NULL, + "TYPE_" VARCHAR(255), + "TIME_" TIMESTAMP NOT NULL, + "USER_ID_" VARCHAR(255), + "TASK_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "ACTION_" VARCHAR(255), + "MESSAGE_" VARCHAR(2000), + "FULL_MSG_" BLOB +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_COMMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_DETAIL +-- ---------------------------- +-- DROP TABLE "ACT_HI_DETAIL"; +CREATE TABLE "ACT_HI_DETAIL" ( + "ID_" VARCHAR(64) NOT NULL, + "TYPE_" VARCHAR(255) NOT NULL, + "PROC_INST_ID_" VARCHAR(64), + "EXECUTION_ID_" VARCHAR(64), + "TASK_ID_" VARCHAR(64), + "ACT_INST_ID_" VARCHAR(64), + "NAME_" VARCHAR(255) NOT NULL, + "VAR_TYPE_" VARCHAR(64), + "REV_" NUMBER, + "TIME_" TIMESTAMP NOT NULL, + "BYTEARRAY_ID_" VARCHAR(64), + "DOUBLE_" NUMBER, + "LONG_" NUMBER(19), + "TEXT_" VARCHAR(2000), + "TEXT2_" VARCHAR(2000) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_DETAIL +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_ENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_HI_ENTITYLINK"; +CREATE TABLE "ACT_HI_ENTITYLINK" ( + "ID_" VARCHAR(64) NOT NULL, + "LINK_TYPE_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP, + "SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "REF_SCOPE_ID_" VARCHAR(255), + "REF_SCOPE_TYPE_" VARCHAR(255), + "REF_SCOPE_DEFINITION_ID_" VARCHAR(255), + "HIERARCHY_TYPE_" VARCHAR(255), + "ROOT_SCOPE_ID_" VARCHAR(255), + "ROOT_SCOPE_TYPE_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "PARENT_ELEMENT_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_ENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_IDENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_HI_IDENTITYLINK"; +CREATE TABLE "ACT_HI_IDENTITYLINK" ( + "ID_" VARCHAR(64) NOT NULL, + "GROUP_ID_" VARCHAR(255), + "TYPE_" VARCHAR(255), + "USER_ID_" VARCHAR(255), + "TASK_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "PROC_INST_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_IDENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_PROCINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_PROCINST"; +CREATE TABLE "ACT_HI_PROCINST" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_INST_ID_" VARCHAR(64) NOT NULL, + "BUSINESS_KEY_" VARCHAR(255), + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "START_TIME_" TIMESTAMP NOT NULL, + "END_TIME_" TIMESTAMP, + "DURATION_" NUMBER(19), + "START_USER_ID_" VARCHAR(255), + "START_ACT_ID_" VARCHAR(255), + "END_ACT_ID_" VARCHAR(255), + "SUPER_PROCESS_INSTANCE_ID_" VARCHAR(64), + "DELETE_REASON_" VARCHAR(2000), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "NAME_" VARCHAR(255), + "CALLBACK_ID_" VARCHAR(255), + "CALLBACK_TYPE_" VARCHAR(255), + "REFERENCE_ID_" VARCHAR(255), + "REFERENCE_TYPE_" VARCHAR(255), + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255), + "BUSINESS_STATUS_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_PROCINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_TASKINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_TASKINST"; +CREATE TABLE "ACT_HI_TASKINST" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_DEF_ID_" VARCHAR(64), + "TASK_DEF_ID_" VARCHAR(64), + "TASK_DEF_KEY_" VARCHAR(255), + "PROC_INST_ID_" VARCHAR(64), + "EXECUTION_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "PARENT_TASK_ID_" VARCHAR(64), + "NAME_" VARCHAR(255), + "DESCRIPTION_" VARCHAR(2000), + "OWNER_" VARCHAR(255), + "ASSIGNEE_" VARCHAR(255), + "START_TIME_" TIMESTAMP NOT NULL, + "CLAIM_TIME_" TIMESTAMP, + "END_TIME_" TIMESTAMP, + "DURATION_" NUMBER(19), + "DELETE_REASON_" VARCHAR(2000), + "PRIORITY_" NUMBER, + "DUE_DATE_" TIMESTAMP, + "FORM_KEY_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "LAST_UPDATED_TIME_" TIMESTAMP, + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255), + "STATE_" VARCHAR(255), + "IN_PROGRESS_TIME_" TIMESTAMP, + "IN_PROGRESS_STARTED_BY_" VARCHAR(255), + "CLAIMED_BY_" VARCHAR(255), + "SUSPENDED_TIME_" TIMESTAMP, + "SUSPENDED_BY_" VARCHAR(255), + "COMPLETED_BY_" VARCHAR(255), + "IN_PROGRESS_DUE_DATE_" TIMESTAMP +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_TASKINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_TSK_LOG +-- ---------------------------- +-- DROP TABLE "ACT_HI_TSK_LOG"; +CREATE TABLE "ACT_HI_TSK_LOG" ( + "ID_" NUMBER(19) NOT NULL, + "TYPE_" VARCHAR(64), + "TASK_ID_" VARCHAR(64) NOT NULL, + "TIME_STAMP_" TIMESTAMP NOT NULL, + "USER_ID_" VARCHAR(255), + "DATA_" VARCHAR(2000), + "EXECUTION_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_TSK_LOG +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_HI_VARINST +-- ---------------------------- +-- DROP TABLE "ACT_HI_VARINST"; +CREATE TABLE "ACT_HI_VARINST" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_INST_ID_" VARCHAR(64), + "EXECUTION_ID_" VARCHAR(64), + "TASK_ID_" VARCHAR(64), + "NAME_" VARCHAR(255) NOT NULL, + "VAR_TYPE_" VARCHAR(100), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "BYTEARRAY_ID_" VARCHAR(64), + "DOUBLE_" NUMBER, + "LONG_" NUMBER(19), + "TEXT_" VARCHAR(2000), + "TEXT2_" VARCHAR(2000), + "CREATE_TIME_" TIMESTAMP, + "LAST_UPDATED_TIME_" TIMESTAMP, + "META_INFO_" VARCHAR(2000) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_HI_VARINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_BYTEARRAY +-- ---------------------------- +-- DROP TABLE "ACT_ID_BYTEARRAY"; +CREATE TABLE "ACT_ID_BYTEARRAY" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "NAME_" VARCHAR(255), + "BYTES_" BLOB +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_BYTEARRAY +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_GROUP +-- ---------------------------- +-- DROP TABLE "ACT_ID_GROUP"; +CREATE TABLE "ACT_ID_GROUP" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "NAME_" VARCHAR(255), + "TYPE_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_GROUP +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_INFO +-- ---------------------------- +-- DROP TABLE "ACT_ID_INFO"; +CREATE TABLE "ACT_ID_INFO" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "USER_ID_" VARCHAR(64), + "TYPE_" VARCHAR(64), + "KEY_" VARCHAR(255), + "VALUE_" VARCHAR(255), + "PASSWORD_" BLOB, + "PARENT_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_INFO +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_MEMBERSHIP +-- ---------------------------- +-- DROP TABLE "ACT_ID_MEMBERSHIP"; +CREATE TABLE "ACT_ID_MEMBERSHIP" ( + "USER_ID_" VARCHAR(64) NOT NULL, + "GROUP_ID_" VARCHAR(64) NOT NULL +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_MEMBERSHIP +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_PRIV +-- ---------------------------- +-- DROP TABLE "ACT_ID_PRIV"; +CREATE TABLE "ACT_ID_PRIV" ( + "ID_" VARCHAR(64) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_PRIV +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_PRIV_MAPPING +-- ---------------------------- +-- DROP TABLE "ACT_ID_PRIV_MAPPING"; +CREATE TABLE "ACT_ID_PRIV_MAPPING" ( + "ID_" VARCHAR(64) NOT NULL, + "PRIV_ID_" VARCHAR(64) NOT NULL, + "USER_ID_" VARCHAR(255), + "GROUP_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_PRIV_MAPPING +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_PROPERTY +-- ---------------------------- +-- DROP TABLE "ACT_ID_PROPERTY"; +CREATE TABLE "ACT_ID_PROPERTY" ( + "NAME_" VARCHAR(64) NOT NULL, + "VALUE_" VARCHAR(300), + "REV_" NUMBER +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_PROPERTY +-- ---------------------------- +INSERT INTO "ACT_ID_PROPERTY" ("NAME_", "VALUE_", "REV_") VALUES ('schema.version', '7.0.1.1', '1'); +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_TOKEN +-- ---------------------------- +-- DROP TABLE "ACT_ID_TOKEN"; +CREATE TABLE "ACT_ID_TOKEN" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TOKEN_VALUE_" VARCHAR(255), + "TOKEN_DATE_" TIMESTAMP, + "IP_ADDRESS_" VARCHAR(255), + "USER_AGENT_" VARCHAR(255), + "USER_ID_" VARCHAR(255), + "TOKEN_DATA_" VARCHAR(2000) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_TOKEN +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_ID_USER +-- ---------------------------- +-- DROP TABLE "ACT_ID_USER"; +CREATE TABLE "ACT_ID_USER" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "FIRST_" VARCHAR(255), + "LAST_" VARCHAR(255), + "DISPLAY_NAME_" VARCHAR(255), + "EMAIL_" VARCHAR(255), + "PWD_" VARCHAR(255), + "PICTURE_ID_" VARCHAR(64), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_ID_USER +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_PROCDEF_INFO +-- ---------------------------- +-- DROP TABLE "ACT_PROCDEF_INFO"; +CREATE TABLE "ACT_PROCDEF_INFO" ( + "ID_" VARCHAR(64) NOT NULL, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "INFO_JSON_ID_" VARCHAR(64) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_PROCDEF_INFO +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RE_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "ACT_RE_DEPLOYMENT"; +CREATE TABLE "ACT_RE_DEPLOYMENT" ( + "ID_" VARCHAR(64) NOT NULL, + "NAME_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "KEY_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "DEPLOY_TIME_" TIMESTAMP, + "DERIVED_FROM_" VARCHAR(64), + "DERIVED_FROM_ROOT_" VARCHAR(64), + "PARENT_DEPLOYMENT_ID_" VARCHAR(255), + "ENGINE_VERSION_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RE_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RE_MODEL +-- ---------------------------- +-- DROP TABLE "ACT_RE_MODEL"; +CREATE TABLE "ACT_RE_MODEL" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "NAME_" VARCHAR(255), + "KEY_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP, + "LAST_UPDATE_TIME_" TIMESTAMP, + "VERSION_" NUMBER, + "META_INFO_" VARCHAR(2000), + "DEPLOYMENT_ID_" VARCHAR(64), + "EDITOR_SOURCE_VALUE_ID_" VARCHAR(64), + "EDITOR_SOURCE_EXTRA_VALUE_ID_" VARCHAR(64), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RE_MODEL +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RE_PROCDEF +-- ---------------------------- +-- DROP TABLE "ACT_RE_PROCDEF"; +CREATE TABLE "ACT_RE_PROCDEF" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "CATEGORY_" VARCHAR(255), + "NAME_" VARCHAR(255), + "KEY_" VARCHAR(255) NOT NULL, + "VERSION_" NUMBER NOT NULL, + "DEPLOYMENT_ID_" VARCHAR(64), + "RESOURCE_NAME_" VARCHAR(2000), + "DGRM_RESOURCE_NAME_" VARCHAR(4000), + "DESCRIPTION_" VARCHAR(2000), + "HAS_START_FORM_KEY_" NUMBER(1), + "HAS_GRAPHICAL_NOTATION_" NUMBER(1), + "SUSPENSION_STATE_" NUMBER, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "DERIVED_FROM_" VARCHAR(64), + "DERIVED_FROM_ROOT_" VARCHAR(64), + "DERIVED_VERSION_" NUMBER DEFAULT 0 NOT NULL, + "ENGINE_VERSION_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RE_PROCDEF +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_ACTINST +-- ---------------------------- +-- DROP TABLE "ACT_RU_ACTINST"; +CREATE TABLE "ACT_RU_ACTINST" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER DEFAULT 1, + "PROC_DEF_ID_" VARCHAR(64) NOT NULL, + "PROC_INST_ID_" VARCHAR(64) NOT NULL, + "EXECUTION_ID_" VARCHAR(64) NOT NULL, + "ACT_ID_" VARCHAR(255) NOT NULL, + "TASK_ID_" VARCHAR(64), + "CALL_PROC_INST_ID_" VARCHAR(64), + "ACT_NAME_" VARCHAR(255), + "ACT_TYPE_" VARCHAR(255) NOT NULL, + "ASSIGNEE_" VARCHAR(255), + "START_TIME_" TIMESTAMP NOT NULL, + "END_TIME_" TIMESTAMP, + "DURATION_" NUMBER(19), + "DELETE_REASON_" VARCHAR(2000), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "TRANSACTION_ORDER_" NUMBER +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_ACTINST +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_DEADLETTER_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_DEADLETTER_JOB"; +CREATE TABLE "ACT_RU_DEADLETTER_JOB" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" VARCHAR(255) NOT NULL, + "EXCLUSIVE_" NUMBER(1), + "EXECUTION_ID_" VARCHAR(64), + "PROCESS_INSTANCE_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "ELEMENT_ID_" VARCHAR(255), + "ELEMENT_NAME_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "EXCEPTION_STACK_ID_" VARCHAR(64), + "EXCEPTION_MSG_" VARCHAR(2000), + "DUEDATE_" TIMESTAMP, + "REPEAT_" VARCHAR(255), + "HANDLER_TYPE_" VARCHAR(255), + "HANDLER_CFG_" VARCHAR(2000), + "CUSTOM_VALUES_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "CATEGORY_" VARCHAR(255), + "CORRELATION_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_DEADLETTER_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_ENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_RU_ENTITYLINK"; +CREATE TABLE "ACT_RU_ENTITYLINK" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "CREATE_TIME_" TIMESTAMP, + "LINK_TYPE_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "REF_SCOPE_ID_" VARCHAR(255), + "REF_SCOPE_TYPE_" VARCHAR(255), + "REF_SCOPE_DEFINITION_ID_" VARCHAR(255), + "HIERARCHY_TYPE_" VARCHAR(255), + "ROOT_SCOPE_ID_" VARCHAR(255), + "ROOT_SCOPE_TYPE_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "PARENT_ELEMENT_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_ENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_EVENT_SUBSCR +-- ---------------------------- +-- DROP TABLE "ACT_RU_EVENT_SUBSCR"; +CREATE TABLE "ACT_RU_EVENT_SUBSCR" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "EVENT_TYPE_" VARCHAR(255) NOT NULL, + "EVENT_NAME_" VARCHAR(255), + "EXECUTION_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "ACTIVITY_ID_" VARCHAR(64), + "CONFIGURATION_" VARCHAR(255), + "CREATED_" TIMESTAMP NOT NULL, + "PROC_DEF_ID_" VARCHAR(64), + "SUB_SCOPE_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(64), + "SCOPE_DEFINITION_ID_" VARCHAR(64), + "SCOPE_TYPE_" VARCHAR(64), + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "LOCK_TIME_" TIMESTAMP, + "LOCK_OWNER_" VARCHAR(255), + "SCOPE_DEFINITION_KEY_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_EVENT_SUBSCR +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_EXECUTION +-- ---------------------------- +-- DROP TABLE "ACT_RU_EXECUTION"; +CREATE TABLE "ACT_RU_EXECUTION" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "PROC_INST_ID_" VARCHAR(64), + "BUSINESS_KEY_" VARCHAR(255), + "PARENT_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "SUPER_EXEC_" VARCHAR(64), + "ROOT_PROC_INST_ID_" VARCHAR(64), + "ACT_ID_" VARCHAR(255), + "IS_ACTIVE_" NUMBER(1), + "IS_CONCURRENT_" NUMBER(1), + "IS_SCOPE_" NUMBER(1), + "IS_EVENT_SCOPE_" NUMBER(1), + "IS_MI_ROOT_" NUMBER(1), + "SUSPENSION_STATE_" NUMBER, + "CACHED_ENT_STATE_" NUMBER, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "NAME_" VARCHAR(255), + "START_ACT_ID_" VARCHAR(255), + "START_TIME_" TIMESTAMP, + "START_USER_ID_" VARCHAR(255), + "LOCK_TIME_" TIMESTAMP, + "IS_COUNT_ENABLED_" NUMBER(1), + "EVT_SUBSCR_COUNT_" NUMBER, + "TASK_COUNT_" NUMBER, + "JOB_COUNT_" NUMBER, + "TIMER_JOB_COUNT_" NUMBER, + "SUSP_JOB_COUNT_" NUMBER, + "DEADLETTER_JOB_COUNT_" NUMBER, + "VAR_COUNT_" NUMBER, + "ID_LINK_COUNT_" NUMBER, + "CALLBACK_ID_" VARCHAR(255), + "CALLBACK_TYPE_" VARCHAR(255), + "REFERENCE_ID_" VARCHAR(255), + "REFERENCE_TYPE_" VARCHAR(255), + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255), + "LOCK_OWNER_" VARCHAR(255), + "EXTERNAL_WORKER_JOB_COUNT_" NUMBER, + "BUSINESS_STATUS_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_EXECUTION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_EXTERNAL_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_EXTERNAL_JOB"; +CREATE TABLE "ACT_RU_EXTERNAL_JOB" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "CATEGORY_" VARCHAR(255), + "TYPE_" VARCHAR(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP, + "LOCK_OWNER_" VARCHAR(255), + "EXCLUSIVE_" NUMBER(1), + "EXECUTION_ID_" VARCHAR(64), + "PROCESS_INSTANCE_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "ELEMENT_ID_" VARCHAR(255), + "ELEMENT_NAME_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" VARCHAR(64), + "EXCEPTION_MSG_" VARCHAR(2000), + "DUEDATE_" TIMESTAMP, + "REPEAT_" VARCHAR(255), + "HANDLER_TYPE_" VARCHAR(255), + "HANDLER_CFG_" VARCHAR(2000), + "CUSTOM_VALUES_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "CORRELATION_ID_" VARCHAR(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of ACT_RU_EXTERNAL_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_HISTORY_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_HISTORY_JOB"; +CREATE TABLE "ACT_RU_HISTORY_JOB" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "LOCK_EXP_TIME_" TIMESTAMP, + "LOCK_OWNER_" VARCHAR(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" VARCHAR(64), + "EXCEPTION_MSG_" VARCHAR(2000), + "HANDLER_TYPE_" VARCHAR(255), + "HANDLER_CFG_" VARCHAR(2000), + "CUSTOM_VALUES_ID_" VARCHAR(64), + "ADV_HANDLER_CFG_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "SCOPE_TYPE_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_HISTORY_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_IDENTITYLINK +-- ---------------------------- +-- DROP TABLE "ACT_RU_IDENTITYLINK"; +CREATE TABLE "ACT_RU_IDENTITYLINK" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "GROUP_ID_" VARCHAR(255), + "TYPE_" VARCHAR(255), + "USER_ID_" VARCHAR(255), + "TASK_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_IDENTITYLINK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_JOB"; +CREATE TABLE "ACT_RU_JOB" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" VARCHAR(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP, + "LOCK_OWNER_" VARCHAR(255), + "EXCLUSIVE_" NUMBER(1), + "EXECUTION_ID_" VARCHAR(64), + "PROCESS_INSTANCE_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "ELEMENT_ID_" VARCHAR(255), + "ELEMENT_NAME_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" VARCHAR(64), + "EXCEPTION_MSG_" VARCHAR(2000), + "DUEDATE_" TIMESTAMP, + "REPEAT_" VARCHAR(255), + "HANDLER_TYPE_" VARCHAR(255), + "HANDLER_CFG_" VARCHAR(2000), + "CUSTOM_VALUES_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "CATEGORY_" VARCHAR(255), + "CORRELATION_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_SUSPENDED_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_SUSPENDED_JOB"; +CREATE TABLE "ACT_RU_SUSPENDED_JOB" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" VARCHAR(255) NOT NULL, + "EXCLUSIVE_" NUMBER(1), + "EXECUTION_ID_" VARCHAR(64), + "PROCESS_INSTANCE_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "ELEMENT_ID_" VARCHAR(255), + "ELEMENT_NAME_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" VARCHAR(64), + "EXCEPTION_MSG_" VARCHAR(2000), + "DUEDATE_" TIMESTAMP, + "REPEAT_" VARCHAR(255), + "HANDLER_TYPE_" VARCHAR(255), + "HANDLER_CFG_" VARCHAR(2000), + "CUSTOM_VALUES_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "CATEGORY_" VARCHAR(255), + "CORRELATION_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_SUSPENDED_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_TASK +-- ---------------------------- +-- DROP TABLE "ACT_RU_TASK"; +CREATE TABLE "ACT_RU_TASK" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "EXECUTION_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "TASK_DEF_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "NAME_" VARCHAR(255), + "PARENT_TASK_ID_" VARCHAR(64), + "DESCRIPTION_" VARCHAR(2000), + "TASK_DEF_KEY_" VARCHAR(255), + "OWNER_" VARCHAR(255), + "ASSIGNEE_" VARCHAR(255), + "DELEGATION_" VARCHAR(64), + "PRIORITY_" NUMBER, + "CREATE_TIME_" TIMESTAMP, + "DUE_DATE_" TIMESTAMP, + "CATEGORY_" VARCHAR(255), + "SUSPENSION_STATE_" NUMBER, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "FORM_KEY_" VARCHAR(255), + "CLAIM_TIME_" TIMESTAMP, + "IS_COUNT_ENABLED_" NUMBER(1), + "VAR_COUNT_" NUMBER, + "ID_LINK_COUNT_" NUMBER, + "SUB_TASK_COUNT_" NUMBER, + "PROPAGATED_STAGE_INST_ID_" VARCHAR(255), + "STATE_" VARCHAR(255), + "IN_PROGRESS_TIME_" TIMESTAMP, + "IN_PROGRESS_STARTED_BY_" VARCHAR(255), + "CLAIMED_BY_" VARCHAR(255), + "SUSPENDED_TIME_" TIMESTAMP, + "SUSPENDED_BY_" VARCHAR(255), + "IN_PROGRESS_DUE_DATE_" TIMESTAMP +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_TASK +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_TIMER_JOB +-- ---------------------------- +-- DROP TABLE "ACT_RU_TIMER_JOB"; +CREATE TABLE "ACT_RU_TIMER_JOB" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" VARCHAR(255) NOT NULL, + "LOCK_EXP_TIME_" TIMESTAMP, + "LOCK_OWNER_" VARCHAR(255), + "EXCLUSIVE_" NUMBER(1), + "EXECUTION_ID_" VARCHAR(64), + "PROCESS_INSTANCE_ID_" VARCHAR(64), + "PROC_DEF_ID_" VARCHAR(64), + "ELEMENT_ID_" VARCHAR(255), + "ELEMENT_NAME_" VARCHAR(255), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "SCOPE_DEFINITION_ID_" VARCHAR(255), + "RETRIES_" NUMBER, + "EXCEPTION_STACK_ID_" VARCHAR(64), + "EXCEPTION_MSG_" VARCHAR(2000), + "DUEDATE_" TIMESTAMP, + "REPEAT_" VARCHAR(255), + "HANDLER_TYPE_" VARCHAR(255), + "HANDLER_CFG_" VARCHAR(2000), + "CUSTOM_VALUES_ID_" VARCHAR(64), + "CREATE_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255) DEFAULT '', + "CATEGORY_" VARCHAR(255), + "CORRELATION_ID_" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_TIMER_JOB +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for ACT_RU_VARIABLE +-- ---------------------------- +-- DROP TABLE "ACT_RU_VARIABLE"; +CREATE TABLE "ACT_RU_VARIABLE" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255) NOT NULL, + "EXECUTION_ID_" VARCHAR(64), + "PROC_INST_ID_" VARCHAR(64), + "TASK_ID_" VARCHAR(64), + "SCOPE_ID_" VARCHAR(255), + "SUB_SCOPE_ID_" VARCHAR(255), + "SCOPE_TYPE_" VARCHAR(255), + "BYTEARRAY_ID_" VARCHAR(64), + "DOUBLE_" NUMBER, + "LONG_" NUMBER(19), + "TEXT_" VARCHAR(2000), + "TEXT2_" VARCHAR(2000), + "META_INFO_" VARCHAR(2000) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of ACT_RU_VARIABLE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_CHANNEL_DEFINITION +-- ---------------------------- +-- DROP TABLE "FLW_CHANNEL_DEFINITION"; +CREATE TABLE "FLW_CHANNEL_DEFINITION" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "VERSION_" NUMBER, + "KEY_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255), + "RESOURCE_NAME_" VARCHAR(255), + "DESCRIPTION_" VARCHAR(255), + "TYPE_" VARCHAR(255), + "IMPLEMENTATION_" VARCHAR(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_CHANNEL_DEFINITION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EVENT_DEFINITION +-- ---------------------------- +-- DROP TABLE "FLW_EVENT_DEFINITION"; +CREATE TABLE "FLW_EVENT_DEFINITION" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "VERSION_" NUMBER, + "KEY_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "TENANT_ID_" VARCHAR(255), + "RESOURCE_NAME_" VARCHAR(255), + "DESCRIPTION_" VARCHAR(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EVENT_DEFINITION +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EVENT_DEPLOYMENT +-- ---------------------------- +-- DROP TABLE "FLW_EVENT_DEPLOYMENT"; +CREATE TABLE "FLW_EVENT_DEPLOYMENT" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "CATEGORY_" VARCHAR(255), + "DEPLOY_TIME_" TIMESTAMP, + "TENANT_ID_" VARCHAR(255), + "PARENT_DEPLOYMENT_ID_" VARCHAR(255) +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EVENT_DEPLOYMENT +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EVENT_RESOURCE +-- ---------------------------- +-- DROP TABLE "FLW_EVENT_RESOURCE"; +CREATE TABLE "FLW_EVENT_RESOURCE" ( + "ID_" VARCHAR(255) NOT NULL, + "NAME_" VARCHAR(255), + "DEPLOYMENT_ID_" VARCHAR(255), + "RESOURCE_BYTES_" BLOB +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_EVENT_RESOURCE +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EV_DATABASECHANGELOG +-- ---------------------------- +-- DROP TABLE "FLW_EV_DATABASECHANGELOG"; +CREATE TABLE "FLW_EV_DATABASECHANGELOG" ( + "ID" VARCHAR(255) NOT NULL, + "AUTHOR" VARCHAR(255) NOT NULL, + "FILENAME" VARCHAR(255) NOT NULL, + "DATEEXECUTED" TIMESTAMP NOT NULL, + "ORDEREXECUTED" NUMBER NOT NULL, + "EXECTYPE" VARCHAR(10) NOT NULL, + "MD5SUM" VARCHAR(35), + "DESCRIPTION" VARCHAR(255), + "COMMENTS" VARCHAR(255), + "TAG" VARCHAR(255), + "LIQUIBASE" VARCHAR(20), + "CONTEXTS" VARCHAR(255), + "LABELS" VARCHAR(255), + "DEPLOYMENT_ID" VARCHAR(10) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of FLW_EV_DATABASECHANGELOG +-- ---------------------------- +INSERT INTO "FLW_EV_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('1', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:30.559500', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '1', 'EXECUTED', '9:63268f536c469325acef35970312551b', 'createTable tableName=FLW_EVENT_DEPLOYMENT; createTable tableName=FLW_EVENT_RESOURCE; createTable tableName=FLW_EVENT_DEFINITION; createIndex indexName=ACT_IDX_EVENT_DEF_UNIQ, tableName=FLW_EVENT_DEFINITION; createTable tableName=FLW_CHANNEL_DEFIN...', NULL, NULL, '4.24.0', NULL, NULL, '0436530407'); +INSERT INTO "FLW_EV_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('2', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:30.597357', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '2', 'EXECUTED', '9:dcb58b7dfd6dbda66939123a96985536', 'addColumn tableName=FLW_CHANNEL_DEFINITION; addColumn tableName=FLW_CHANNEL_DEFINITION', NULL, NULL, '4.24.0', NULL, NULL, '0436530407'); +INSERT INTO "FLW_EV_DATABASECHANGELOG" ("ID", "AUTHOR", "FILENAME", "DATEEXECUTED", "ORDEREXECUTED", "EXECTYPE", "MD5SUM", "DESCRIPTION", "COMMENTS", "TAG", "LIQUIBASE", "CONTEXTS", "LABELS", "DEPLOYMENT_ID") VALUES ('3', 'flowable', 'org/flowable/eventregistry/db/liquibase/flowable-eventregistry-db-changelog.xml', TO_TIMESTAMP('2024-03-15 01:15:30.614363', 'SYYYY-MM-DD HH24:MI:SS:FF6'), '3', 'EXECUTED', '9:d0c05678d57af23ad93699991e3bf4f6', 'customChange', NULL, NULL, '4.24.0', NULL, NULL, '0436530407'); +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +-- DROP TABLE "FLW_EV_DATABASECHANGELOGLOCK"; +CREATE TABLE "FLW_EV_DATABASECHANGELOGLOCK" ( + "ID" NUMBER NOT NULL, + "LOCKED" NUMBER(1) NOT NULL, + "LOCKGRANTED" TIMESTAMP, + "LOCKEDBY" VARCHAR(255) +) +INITRANS 1 +TABLESPACE "USERS" +STORAGE (INITIAL 65536) ; + +-- ---------------------------- +-- Records of FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +INSERT INTO "FLW_EV_DATABASECHANGELOGLOCK" ("ID", "LOCKED", "LOCKGRANTED", "LOCKEDBY") VALUES ('1', '0', NULL, NULL); +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_RU_BATCH +-- ---------------------------- +-- DROP TABLE "FLW_RU_BATCH"; +CREATE TABLE "FLW_RU_BATCH" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "TYPE_" VARCHAR(64) NOT NULL, + "SEARCH_KEY_" VARCHAR(255), + "SEARCH_KEY2_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP NOT NULL, + "COMPLETE_TIME_" TIMESTAMP, + "STATUS_" VARCHAR(255), + "BATCH_DOC_ID_" VARCHAR(64), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_RU_BATCH +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Table structure for FLW_RU_BATCH_PART +-- ---------------------------- +-- DROP TABLE "FLW_RU_BATCH_PART"; +CREATE TABLE "FLW_RU_BATCH_PART" ( + "ID_" VARCHAR(64) NOT NULL, + "REV_" NUMBER, + "BATCH_ID_" VARCHAR(64), + "TYPE_" VARCHAR(64) NOT NULL, + "SCOPE_ID_" VARCHAR(64), + "SUB_SCOPE_ID_" VARCHAR(64), + "SCOPE_TYPE_" VARCHAR(64), + "SEARCH_KEY_" VARCHAR(255), + "SEARCH_KEY2_" VARCHAR(255), + "CREATE_TIME_" TIMESTAMP NOT NULL, + "COMPLETE_TIME_" TIMESTAMP, + "STATUS_" VARCHAR(255), + "RESULT_DOC_ID_" VARCHAR(64), + "TENANT_ID_" VARCHAR(255) DEFAULT '' +) +LOGGING +NOCOMPRESS +PCTFREE 10 +INITRANS 1 +STORAGE ( + BUFFER_POOL DEFAULT +) +PARALLEL 1 +NOCACHE +DISABLE ROW MOVEMENT +; + +-- ---------------------------- +-- Records of FLW_RU_BATCH_PART +-- ---------------------------- +COMMIT; + +-- ---------------------------- +-- Sequence structure for ACT_EVT_LOG_SEQ +-- ---------------------------- +-- DROP SEQUENCE "ACT_EVT_LOG_SEQ"; +CREATE SEQUENCE "ACT_EVT_LOG_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 CACHE 20; + +-- ---------------------------- +-- Sequence structure for ACT_HI_TASK_EVT_LOG_SEQ +-- ---------------------------- +-- DROP SEQUENCE "ACT_HI_TASK_EVT_LOG_SEQ"; +CREATE SEQUENCE "ACT_HI_TASK_EVT_LOG_SEQ" MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 CACHE 20; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_APPDEF +-- ---------------------------- +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "PK_ACT_APP_APPDEF" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_APPDEF +-- ---------------------------- +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013782" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013783" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013784" CHECK ("KEY_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0013785" CHECK ("VERSION_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015409" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015410" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015411" CHECK ("KEY_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_APPDEF" ADD CONSTRAINT "SYS_C0015412" CHECK ("VERSION_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_APP_APPDEF +-- ---------------------------- +CREATE INDEX "ACT_IDX_APP_DEF_DPLY" + ON "ACT_APP_APPDEF" ("DEPLOYMENT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE UNIQUE INDEX "ACT_IDX_APP_DEF_UNIQ" + ON "ACT_APP_APPDEF" ("VERSION_" , "TENANT_ID_" , "KEY_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Checks structure for table ACT_APP_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013786" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013787" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013788" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013789" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013790" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013791" CHECK ("EXECTYPE" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015398" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015399" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015400" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015401" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015402" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015403" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_APP_DATABASECHANGELOGLO" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013792" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013793" CHECK ("LOCKED" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015395" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015396" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_APP_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013794" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015404" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_APP_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0013795" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_APP_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015406" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- +CREATE INDEX "ACT_IDX_APP_RSRC_DPL" + ON "ACT_APP_DEPLOYMENT_RESOURCE" ("DEPLOYMENT_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "PK_ACT_CMMN_CASEDEF" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013796" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013797" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013798" CHECK ("KEY_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0013799" CHECK ("VERSION_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015429" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015430" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015431" CHECK ("KEY_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_CASEDEF" ADD CONSTRAINT "SYS_C0015432" CHECK ("VERSION_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_CASEDEF +-- ---------------------------- +CREATE INDEX "ACT_IDX_CASE_DEF_DPLY" + ON "ACT_CMMN_CASEDEF" ("DEPLOYMENT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE UNIQUE INDEX "ACT_IDX_CASE_DEF_UNIQ" + ON "ACT_CMMN_CASEDEF" ("TENANT_ID_" , "KEY_" , "VERSION_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013800" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013801" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013802" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013803" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013804" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013805" CHECK ("EXECTYPE" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015418" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015419" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015420" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015421" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015422" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015423" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_CMMN_DATABASECHANGELOGL" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013806" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013807" CHECK ("LOCKED" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015415" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015416" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_CMMN_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013808" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015424" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_CMMN_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0013809" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015426" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +CREATE INDEX "ACT_IDX_CMMN_RSRC_DPL" + ON "ACT_CMMN_DEPLOYMENT_RESOURCE" ("DEPLOYMENT_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_CASE_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0013810" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0013811" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0015459" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_CASE_INST" ADD CONSTRAINT "SYS_C0015460" CHECK ("REV_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_HI_CASE_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_CASE_INST_END" + ON "ACT_CMMN_HI_CASE_INST" ("END_TIME_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_MIL_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_HI_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013812" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013813" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013814" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013815" CHECK ("TIME_STAMP_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013816" CHECK ("CASE_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013817" CHECK ("CASE_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0013818" CHECK ("ELEMENT_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015462" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015463" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015464" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015465" CHECK ("TIME_STAMP_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015466" CHECK ("CASE_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015467" CHECK ("CASE_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_MIL_INST" ADD CONSTRAINT "SYS_C0015468" CHECK ("ELEMENT_ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "PK_ACT_CMMN_HI_PLAN_ITEM_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013819" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013820" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015470" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_HI_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015471" CHECK ("REV_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_HI_PLAN_ITEM_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_PLAN_ITEM_INST_CASE" + ON "ACT_CMMN_HI_PLAN_ITEM_INST" ("CASE_INST_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "PK_ACT_CMMN_RU_CASE_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0013821" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0013822" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0015435" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_CASE_INST" ADD CONSTRAINT "SYS_C0015436" CHECK ("REV_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_CASE_INST_CASE_DEF" + ON "ACT_CMMN_RU_CASE_INST" ("CASE_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_CASE_INST_PARENT" + ON "ACT_CMMN_RU_CASE_INST" ("PARENT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_CASE_INST_REF_ID_" + ON "ACT_CMMN_RU_CASE_INST" ("REFERENCE_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "PK_ACT_CMMN_RU_MIL_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013823" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013824" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013825" CHECK ("TIME_STAMP_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013826" CHECK ("CASE_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013827" CHECK ("CASE_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0013828" CHECK ("ELEMENT_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015450" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015451" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015452" CHECK ("TIME_STAMP_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015453" CHECK ("CASE_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015454" CHECK ("CASE_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_MIL_INST" ADD CONSTRAINT "SYS_C0015455" CHECK ("ELEMENT_ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_MIL_CASE_DEF" + ON "ACT_CMMN_RU_MIL_INST" ("CASE_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_MIL_CASE_INST" + ON "ACT_CMMN_RU_MIL_INST" ("CASE_INST_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "PK_CMMN_PLAN_ITEM_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013829" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0013830" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015439" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_PLAN_ITEM_INST" ADD CONSTRAINT "SYS_C0015440" CHECK ("REV_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_DEF" + ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("CASE_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_PLAN_ITEM_CASE_INST" + ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("CASE_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_PLAN_ITEM_STAGE_INST" + ON "ACT_CMMN_RU_PLAN_ITEM_INST" ("STAGE_INST_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "PK_CMMN_SENTRY_PART_INST" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0013831" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0013832" CHECK ("REV_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0015444" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CMMN_RU_SENTRY_PART_INST" ADD CONSTRAINT "SYS_C0015445" CHECK ("REV_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- +CREATE INDEX "ACT_IDX_SENTRY_CASE_DEF" + ON "ACT_CMMN_RU_SENTRY_PART_INST" ("CASE_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SENTRY_CASE_INST" + ON "ACT_CMMN_RU_SENTRY_PART_INST" ("CASE_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SENTRY_PLAN_ITEM" + ON "ACT_CMMN_RU_SENTRY_PART_INST" ("PLAN_ITEM_INST_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "PK_ACT_CO_CONTENT_ITEM" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0013833" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0013834" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0015517" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_CO_CONTENT_ITEM" ADD CONSTRAINT "SYS_C0015518" CHECK ("NAME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_CO_CONTENT_ITEM +-- ---------------------------- +CREATE INDEX "IDX_CONTITEM_PROCID" + ON "ACT_CO_CONTENT_ITEM" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "IDX_CONTITEM_SCOPE" + ON "ACT_CO_CONTENT_ITEM" ("SCOPE_TYPE_" , "SCOPE_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "IDX_CONTITEM_TASKID" + ON "ACT_CO_CONTENT_ITEM" ("TASK_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Checks structure for table ACT_CO_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013835" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013836" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013837" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013838" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013839" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013840" CHECK ("EXECTYPE" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015511" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015512" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015513" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015514" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015515" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015516" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_CO_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_CO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013841" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013842" CHECK ("LOCKED" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015508" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_CO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015509" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Checks structure for table ACT_DE_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013843" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013844" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013845" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013846" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013847" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013848" CHECK ("EXECTYPE" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015523" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015524" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015525" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015526" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015527" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015528" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_DE_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013849" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013850" CHECK ("LOCKED" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015520" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015521" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "PK_ACT_DE_MODEL" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0013851" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0013852" CHECK ("NAME" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0013853" CHECK ("MODEL_KEY" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015529" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015530" CHECK ("NAME" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL" ADD CONSTRAINT "SYS_C0015531" CHECK ("MODEL_KEY" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_DE_MODEL +-- ---------------------------- +CREATE INDEX "IDX_PROC_MOD_CREATED" + ON "ACT_DE_MODEL" ("CREATED_BY") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "PK_ACT_DE_MODEL_HISTORY" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013854" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013855" CHECK ("NAME" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013856" CHECK ("MODEL_KEY" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0013857" CHECK ("MODEL_ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015533" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015534" CHECK ("NAME" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015535" CHECK ("MODEL_KEY" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_HISTORY" ADD CONSTRAINT "SYS_C0015536" CHECK ("MODEL_ID" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_DE_MODEL_HISTORY +-- ---------------------------- +CREATE INDEX "IDX_PROC_MOD_HISTORY_PROC" + ON "ACT_DE_MODEL_HISTORY" ("MODEL_ID") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "PK_ACT_DE_MODEL_RELATION" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "SYS_C0013858" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "SYS_C0015538" CHECK ("ID" IS NOT NULL) ; + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013859" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013860" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013861" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013862" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013863" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013864" CHECK ("EXECTYPE" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015476" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015477" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015478" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015479" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015480" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015481" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_DMN_DATABASECHANGELOGLO" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013865" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013866" CHECK ("LOCKED" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015473" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015474" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DECISION +-- ---------------------------- +ALTER TABLE "ACT_DMN_DECISION" ADD CONSTRAINT "PK_ACT_DMN_DECISION_TABLE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DECISION +-- ---------------------------- +ALTER TABLE "ACT_DMN_DECISION" ADD CONSTRAINT "SYS_C0013867" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DECISION" ADD CONSTRAINT "SYS_C0015486" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_DMN_DECISION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_DMN_DEC_UNIQ" + ON "ACT_DMN_DECISION" ("KEY_" , "VERSION_" , "TENANT_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_DMN_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013868" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015482" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "PK_ACT_DMN_DEPLOYMENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_DEPLOYMENT_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0013869" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_DEPLOYMENT_RESOURCE" ADD CONSTRAINT "SYS_C0015484" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "PK_ACT_DMN_HI_DECISION_EXECUTI" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "SYS_C0013870" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_DMN_HI_DECISION_EXECUTION" ADD CONSTRAINT "SYS_C0015488" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_DMN_HI_DECISION_EXECUTION +-- ---------------------------- +CREATE INDEX "ACT_IDX_DMN_INSTANCE_ID" + ON "ACT_DMN_HI_DECISION_EXECUTION" ("INSTANCE_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_EVT_LOG +-- ---------------------------- +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0015308" PRIMARY KEY ("LOG_NR_"); + +-- ---------------------------- +-- Checks structure for table ACT_EVT_LOG +-- ---------------------------- +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0013871" CHECK ("LOG_NR_" IS NOT NULL) ; +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0013872" CHECK ("TIME_STAMP_" IS NOT NULL) ; +ALTER TABLE "ACT_EVT_LOG" ADD CONSTRAINT "SYS_C0015307" CHECK ("TIME_STAMP_" IS NOT NULL) ; + +-- ---------------------------- +-- Checks structure for table ACT_FO_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013873" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013874" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013875" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013876" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013877" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0013878" CHECK ("EXECTYPE" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015493" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015494" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015495" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015496" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015497" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0015498" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_ACT_FO_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013879" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0013880" CHECK ("LOCKED" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015490" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "ACT_FO_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0015491" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "PK_ACT_FO_FORM_DEFINITION" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "SYS_C0013881" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_FO_FORM_DEFINITION" ADD CONSTRAINT "SYS_C0015503" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_FO_FORM_DEFINITION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_FORM_DEF_UNIQ" + ON "ACT_FO_FORM_DEFINITION" ("KEY_" , "TENANT_ID_" , "VERSION_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "PK_ACT_FO_FORM_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013882" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_FO_FORM_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015499" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_INSTANCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "PK_ACT_FO_FORM_INSTANCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_INSTANCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0013883" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0013884" CHECK ("FORM_DEFINITION_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0015505" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_FO_FORM_INSTANCE" ADD CONSTRAINT "SYS_C0015506" CHECK ("FORM_DEFINITION_ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_FO_FORM_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "PK_ACT_FO_FORM_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_FO_FORM_RESOURCE +-- ---------------------------- +ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "SYS_C0013885" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_FO_FORM_RESOURCE" ADD CONSTRAINT "SYS_C0015501" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0015239" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0013886" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_GE_BYTEARRAY" ADD CONSTRAINT "SYS_C0015238" CHECK (GENERATED_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_GE_BYTEARRAY +-- ---------------------------- +CREATE INDEX "ACT_IDX_BYTEAR_DEPL" + ON "ACT_GE_BYTEARRAY" ("DEPLOYMENT_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_GE_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_GE_PROPERTY" ADD CONSTRAINT "SYS_C0015237" PRIMARY KEY ("NAME_"); + +-- ---------------------------- +-- Checks structure for table ACT_GE_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_GE_PROPERTY" ADD CONSTRAINT "SYS_C0013887" CHECK ("NAME_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015366" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013888" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013889" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013890" CHECK ("PROC_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013891" CHECK ("EXECUTION_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013892" CHECK ("ACT_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013893" CHECK ("ACT_TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0013894" CHECK ("START_TIME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015359" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015360" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015361" CHECK ("PROC_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015362" CHECK ("EXECUTION_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015363" CHECK ("ACT_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015364" CHECK ("ACT_TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ACTINST" ADD CONSTRAINT "SYS_C0015365" CHECK ("START_TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_ACTINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_ACT_INST_END" + ON "ACT_HI_ACTINST" ("END_TIME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_ACT_INST_EXEC" + ON "ACT_HI_ACTINST" ("EXECUTION_ID_" , "ACT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_ACT_INST_PROCINST" + ON "ACT_HI_ACTINST" ("PROC_INST_ID_" , "ACT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_ACT_INST_START" + ON "ACT_HI_ACTINST" ("START_TIME_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ATTACHMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0015376" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_ATTACHMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0013895" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_ATTACHMENT" ADD CONSTRAINT "SYS_C0015375" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_COMMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015374" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_COMMENT +-- ---------------------------- +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0013896" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0013897" CHECK ("TIME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015372" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_COMMENT" ADD CONSTRAINT "SYS_C0015373" CHECK ("TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_DETAIL +-- ---------------------------- +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015371" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_DETAIL +-- ---------------------------- +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013898" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013899" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013900" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0013901" CHECK ("TIME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015367" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015368" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015369" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_DETAIL" ADD CONSTRAINT "SYS_C0015370" CHECK ("TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_DETAIL +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_DETAIL_ACT_INST" + ON "ACT_HI_DETAIL" ("ACT_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_DETAIL_NAME" + ON "ACT_HI_DETAIL" ("NAME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_DETAIL_PROC_INST" + ON "ACT_HI_DETAIL" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_DETAIL_TASK_ID" + ON "ACT_HI_DETAIL" ("TASK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_DETAIL_TIME" + ON "ACT_HI_DETAIL" ("TIME_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_ENTITYLINK" ADD CONSTRAINT "SYS_C0015241" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_ENTITYLINK" ADD CONSTRAINT "SYS_C0013902" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_ENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_ENT_LNK_REF_SCOPE" + ON "ACT_HI_ENTITYLINK" ("REF_SCOPE_ID_" , "REF_SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_HI_ENT_LNK_ROOT_SCOPE" + ON "ACT_HI_ENTITYLINK" ("ROOT_SCOPE_ID_" , "ROOT_SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE" + ON "ACT_HI_ENTITYLINK" ("SCOPE_ID_" , "SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_ENT_LNK_SCOPE_DEF" + ON "ACT_HI_ENTITYLINK" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_IDENTITYLINK" ADD CONSTRAINT "SYS_C0015243" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_HI_IDENTITYLINK" ADD CONSTRAINT "SYS_C0013903" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_IDENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_PROCINST" + ON "ACT_HI_IDENTITYLINK" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE" + ON "ACT_HI_IDENTITYLINK" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SCOPE_DEF" + ON "ACT_HI_IDENTITYLINK" ("SCOPE_TYPE_" , "SCOPE_DEFINITION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_SUB_SCOPE" + ON "ACT_HI_IDENTITYLINK" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_TASK" + ON "ACT_HI_IDENTITYLINK" ("TASK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_IDENT_LNK_USER" + ON "ACT_HI_IDENTITYLINK" ("USER_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015357" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015358" UNIQUE ("PROC_INST_ID_") ; + +-- ---------------------------- +-- Checks structure for table ACT_HI_PROCINST +-- ---------------------------- +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013904" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013905" CHECK ("PROC_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013906" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0013907" CHECK ("START_TIME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015353" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015354" CHECK ("PROC_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015355" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_PROCINST" ADD CONSTRAINT "SYS_C0015356" CHECK ("START_TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_PROCINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_PRO_INST_END" + ON "ACT_HI_PROCINST" ("END_TIME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_PRO_I_BUSKEY" + ON "ACT_HI_PROCINST" ("BUSINESS_KEY_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_PRO_SUPER_PROCINST" + ON "ACT_HI_PROCINST" ("SUPER_PROCESS_INSTANCE_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_TASKINST +-- ---------------------------- +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015274" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_TASKINST +-- ---------------------------- +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0013908" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0013909" CHECK ("START_TIME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015272" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TASKINST" ADD CONSTRAINT "SYS_C0015273" CHECK ("START_TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_TASKINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_TASK_INST_PROCINST" + ON "ACT_HI_TASKINST" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_TASK_SCOPE" + ON "ACT_HI_TASKINST" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_TASK_SCOPE_DEF" + ON "ACT_HI_TASKINST" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_TASK_SUB_SCOPE" + ON "ACT_HI_TASKINST" ("SCOPE_TYPE_" , "SUB_SCOPE_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_TSK_LOG +-- ---------------------------- +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015277" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_TSK_LOG +-- ---------------------------- +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0013910" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0013911" CHECK ("TASK_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0013912" CHECK ("TIME_STAMP_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015275" CHECK ("TASK_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_TSK_LOG" ADD CONSTRAINT "SYS_C0015276" CHECK ("TIME_STAMP_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_HI_VARINST +-- ---------------------------- +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015285" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_HI_VARINST +-- ---------------------------- +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0013913" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0013914" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015283" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_HI_VARINST" ADD CONSTRAINT "SYS_C0015284" CHECK ("NAME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_HI_VARINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_HI_PROCVAR_EXE" + ON "ACT_HI_VARINST" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_PROCVAR_NAME_TYPE" + ON "ACT_HI_VARINST" ("VAR_TYPE_" , "NAME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_PROCVAR_PROC_INST" + ON "ACT_HI_VARINST" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_PROCVAR_TASK_ID" + ON "ACT_HI_VARINST" ("TASK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_VAR_SCOPE_ID_TYPE" + ON "ACT_HI_VARINST" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_HI_VAR_SUB_ID_TYPE" + ON "ACT_HI_VARINST" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_ID_BYTEARRAY" ADD CONSTRAINT "SYS_C0015378" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_BYTEARRAY +-- ---------------------------- +ALTER TABLE "ACT_ID_BYTEARRAY" ADD CONSTRAINT "SYS_C0013915" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_GROUP +-- ---------------------------- +ALTER TABLE "ACT_ID_GROUP" ADD CONSTRAINT "SYS_C0015379" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_GROUP +-- ---------------------------- +ALTER TABLE "ACT_ID_GROUP" ADD CONSTRAINT "SYS_C0013916" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_INFO +-- ---------------------------- +ALTER TABLE "ACT_ID_INFO" ADD CONSTRAINT "SYS_C0015382" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_INFO +-- ---------------------------- +ALTER TABLE "ACT_ID_INFO" ADD CONSTRAINT "SYS_C0013917" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0015380" PRIMARY KEY ("USER_ID_", "GROUP_ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0013918" CHECK ("USER_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_MEMBERSHIP" ADD CONSTRAINT "SYS_C0013919" CHECK ("GROUP_ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- +CREATE INDEX "ACT_IDX_MEMB_GROUP" + ON "ACT_ID_MEMBERSHIP" ("GROUP_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_MEMB_USER" + ON "ACT_ID_MEMBERSHIP" ("USER_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015387" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "ACT_UNIQ_PRIV_NAME" UNIQUE ("NAME_") ; + +-- ---------------------------- +-- Checks structure for table ACT_ID_PRIV +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0013920" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0013921" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015385" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_PRIV" ADD CONSTRAINT "SYS_C0015386" CHECK ("NAME_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015390" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0013922" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0013923" CHECK ("PRIV_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015388" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_PRIV_MAPPING" ADD CONSTRAINT "SYS_C0015389" CHECK ("PRIV_ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- +CREATE INDEX "ACT_IDX_PRIV_GROUP" + ON "ACT_ID_PRIV_MAPPING" ("GROUP_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_PRIV_MAPPING" + ON "ACT_ID_PRIV_MAPPING" ("PRIV_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_PRIV_USER" + ON "ACT_ID_PRIV_MAPPING" ("USER_ID_") + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_ID_PROPERTY" ADD CONSTRAINT "SYS_C0015377" PRIMARY KEY ("NAME_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_PROPERTY +-- ---------------------------- +ALTER TABLE "ACT_ID_PROPERTY" ADD CONSTRAINT "SYS_C0013924" CHECK ("NAME_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_TOKEN +-- ---------------------------- +ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0015384" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_TOKEN +-- ---------------------------- +ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0013925" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_ID_TOKEN" ADD CONSTRAINT "SYS_C0015383" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_ID_USER +-- ---------------------------- +ALTER TABLE "ACT_ID_USER" ADD CONSTRAINT "SYS_C0015381" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_ID_USER +-- ---------------------------- +ALTER TABLE "ACT_ID_USER" ADD CONSTRAINT "SYS_C0013926" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015311" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "ACT_UNIQ_INFO_PROCDEF" UNIQUE ("PROC_DEF_ID_") ; + +-- ---------------------------- +-- Checks structure for table ACT_PROCDEF_INFO +-- ---------------------------- +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0013927" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0013928" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015309" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_PROCDEF_INFO" ADD CONSTRAINT "SYS_C0015310" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_PROCDEF_INFO +-- ---------------------------- +CREATE INDEX "ACT_IDX_PROCDEF_INFO_JSON" + ON "ACT_PROCDEF_INFO" ("INFO_JSON_ID_") + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_RE_DEPLOYMENT" ADD CONSTRAINT "SYS_C0015290" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RE_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "ACT_RE_DEPLOYMENT" ADD CONSTRAINT "SYS_C0013929" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0015292" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RE_MODEL +-- ---------------------------- +ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0013930" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_MODEL" ADD CONSTRAINT "SYS_C0015291" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RE_MODEL +-- ---------------------------- +CREATE INDEX "ACT_IDX_MODEL_DEPLOYMENT" + ON "ACT_RE_MODEL" ("DEPLOYMENT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_MODEL_SOURCE" + ON "ACT_RE_MODEL" ("EDITOR_SOURCE_VALUE_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_MODEL_SOURCE_EXTRA" + ON "ACT_RE_MODEL" ("EDITOR_SOURCE_EXTRA_VALUE_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015306" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Uniques structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "ACT_UNIQ_PROCDEF" UNIQUE ("KEY_", "VERSION_", "DERIVED_VERSION_", "TENANT_ID_") ; + +-- ---------------------------- +-- Checks structure for table ACT_RE_PROCDEF +-- ---------------------------- +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013931" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013932" CHECK ("KEY_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013933" CHECK ("VERSION_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0013934" CHECK ("DERIVED_VERSION_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015300" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015301" CHECK ("KEY_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015302" CHECK ("VERSION_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015303" CHECK ("DERIVED_VERSION_" IS NOT NULL) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015304" CHECK (HAS_START_FORM_KEY_ IN (1,0)) ; +ALTER TABLE "ACT_RE_PROCDEF" ADD CONSTRAINT "SYS_C0015305" CHECK (HAS_GRAPHICAL_NOTATION_ IN (1,0)) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015319" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_ACTINST +-- ---------------------------- +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013935" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013936" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013937" CHECK ("PROC_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013938" CHECK ("EXECUTION_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013939" CHECK ("ACT_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013940" CHECK ("ACT_TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0013941" CHECK ("START_TIME_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015312" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015313" CHECK ("PROC_DEF_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015314" CHECK ("PROC_INST_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015315" CHECK ("EXECUTION_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015316" CHECK ("ACT_ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015317" CHECK ("ACT_TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_ACTINST" ADD CONSTRAINT "SYS_C0015318" CHECK ("START_TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_ACTINST +-- ---------------------------- +CREATE INDEX "ACT_IDX_RU_ACTI_END" + ON "ACT_RU_ACTINST" ("END_TIME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_ACTI_EXEC" + ON "ACT_RU_ACTINST" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_ACTI_EXEC_ACT" + ON "ACT_RU_ACTINST" ("ACT_ID_" , "EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_ACTI_PROC" + ON "ACT_RU_ACTINST" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_ACTI_PROC_ACT" + ON "ACT_RU_ACTINST" ("ACT_ID_" , "PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_ACTI_START" + ON "ACT_RU_ACTINST" ("START_TIME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_ACTI_TASK" + ON "ACT_RU_ACTINST" ("TASK_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015259" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0013942" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0013943" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015256" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015257" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_DEADLETTER_JOB" ADD CONSTRAINT "SYS_C0015258" CHECK (EXCLUSIVE_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_DJOB_CORRELATION_ID" + ON "ACT_RU_DEADLETTER_JOB" ("CORRELATION_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_DJOB_CUSTOM_VAL_ID" + ON "ACT_RU_DEADLETTER_JOB" ("CUSTOM_VALUES_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_EXCEPTION" + ON "ACT_RU_DEADLETTER_JOB" ("EXCEPTION_STACK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_EXECUTION_ID" + ON "ACT_RU_DEADLETTER_JOB" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_PROC_DEF_ID" + ON "ACT_RU_DEADLETTER_JOB" ("PROC_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_PROC_INST_ID" + ON "ACT_RU_DEADLETTER_JOB" ("PROCESS_INSTANCE_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_SCOPE" + ON "ACT_RU_DEADLETTER_JOB" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_SCOPE_DEF" + ON "ACT_RU_DEADLETTER_JOB" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_DJOB_SUB_SCOPE" + ON "ACT_RU_DEADLETTER_JOB" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_ENTITYLINK" ADD CONSTRAINT "SYS_C0015240" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_ENTITYLINK" ADD CONSTRAINT "SYS_C0013944" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_ENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_ENT_LNK_REF_SCOPE" + ON "ACT_RU_ENTITYLINK" ("REF_SCOPE_ID_" , "REF_SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_ENT_LNK_ROOT_SCOPE" + ON "ACT_RU_ENTITYLINK" ("ROOT_SCOPE_ID_" , "ROOT_SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE" + ON "ACT_RU_ENTITYLINK" ("SCOPE_ID_" , "SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_ENT_LNK_SCOPE_DEF" + ON "ACT_RU_ENTITYLINK" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_" , "LINK_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015289" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0013945" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0013946" CHECK ("EVENT_TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0013947" CHECK ("CREATED_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015286" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015287" CHECK ("EVENT_TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EVENT_SUBSCR" ADD CONSTRAINT "SYS_C0015288" CHECK ("CREATED_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- +CREATE INDEX "ACT_IDX_EVENT_SUBSCR" + ON "ACT_RU_EVENT_SUBSCR" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EVENT_SUBSCR_CONFIG_" + ON "ACT_RU_EVENT_SUBSCR" ("CONFIGURATION_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EVENT_SUBSCR_SCOPEREF_" + ON "ACT_RU_EVENT_SUBSCR" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015299" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_EXECUTION +-- ---------------------------- +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0013948" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015293" CHECK (IS_ACTIVE_ IN (1,0)) ; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015294" CHECK (IS_CONCURRENT_ IN (1,0)) ; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015295" CHECK (IS_SCOPE_ IN (1,0)) ; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015296" CHECK (IS_EVENT_SCOPE_ IN (1,0)) ; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015297" CHECK (IS_MI_ROOT_ IN (1,0)) ; +ALTER TABLE "ACT_RU_EXECUTION" ADD CONSTRAINT "SYS_C0015298" CHECK (IS_COUNT_ENABLED_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EXECUTION +-- ---------------------------- +CREATE INDEX "ACT_IDX_EXEC_BUSKEY" + ON "ACT_RU_EXECUTION" ("BUSINESS_KEY_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EXEC_REF_ID_" + ON "ACT_RU_EXECUTION" ("REFERENCE_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_EXEC_ROOT" + ON "ACT_RU_EXECUTION" ("ROOT_PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EXE_PARENT" + ON "ACT_RU_EXECUTION" ("PARENT_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EXE_PROCDEF" + ON "ACT_RU_EXECUTION" ("PROC_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EXE_PROCINST" + ON "ACT_RU_EXECUTION" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_EXE_SUPER" + ON "ACT_RU_EXECUTION" ("SUPER_EXEC_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014269" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014266" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014267" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_EXTERNAL_JOB" ADD CONSTRAINT "SYS_C0014268" CHECK (EXCLUSIVE_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_EJOB_CORRELATION_ID" + ON "ACT_RU_EXTERNAL_JOB" ("CORRELATION_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_EJOB_CUSTOM_VAL_ID" + ON "ACT_RU_EXTERNAL_JOB" ("CUSTOM_VALUES_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_EJOB_EXCEPTION" + ON "ACT_RU_EXTERNAL_JOB" ("EXCEPTION_STACK_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_EJOB_SCOPE" + ON "ACT_RU_EXTERNAL_JOB" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_EJOB_SCOPE_DEF" + ON "ACT_RU_EXTERNAL_JOB" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_EJOB_SUB_SCOPE" + ON "ACT_RU_EXTERNAL_JOB" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_HISTORY_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0015261" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_HISTORY_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0013949" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_HISTORY_JOB" ADD CONSTRAINT "SYS_C0015260" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "SYS_C0015242" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +ALTER TABLE "ACT_RU_IDENTITYLINK" ADD CONSTRAINT "SYS_C0013950" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- +CREATE INDEX "ACT_IDX_ATHRZ_PROCEDEF" + ON "ACT_RU_IDENTITYLINK" ("PROC_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_IDENT_LNK_GROUP" + ON "ACT_RU_IDENTITYLINK" ("GROUP_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE" + ON "ACT_RU_IDENTITYLINK" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_IDENT_LNK_SCOPE_DEF" + ON "ACT_RU_IDENTITYLINK" ("SCOPE_TYPE_" , "SCOPE_DEFINITION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_IDENT_LNK_SUB_SCOPE" + ON "ACT_RU_IDENTITYLINK" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_IDENT_LNK_USER" + ON "ACT_RU_IDENTITYLINK" ("USER_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_IDL_PROCINST" + ON "ACT_RU_IDENTITYLINK" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_TSKASS_TASK" + ON "ACT_RU_IDENTITYLINK" ("TASK_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015247" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0013951" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0013952" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015244" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015245" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_JOB" ADD CONSTRAINT "SYS_C0015246" CHECK (EXCLUSIVE_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_JOB_CORRELATION_ID" + ON "ACT_RU_JOB" ("CORRELATION_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_JOB_CUSTOM_VAL_ID" + ON "ACT_RU_JOB" ("CUSTOM_VALUES_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_EXCEPTION" + ON "ACT_RU_JOB" ("EXCEPTION_STACK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_EXECUTION_ID" + ON "ACT_RU_JOB" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_PROC_DEF_ID" + ON "ACT_RU_JOB" ("PROC_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_PROC_INST_ID" + ON "ACT_RU_JOB" ("PROCESS_INSTANCE_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_SCOPE" + ON "ACT_RU_JOB" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_SCOPE_DEF" + ON "ACT_RU_JOB" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_JOB_SUB_SCOPE" + ON "ACT_RU_JOB" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015255" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0013953" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0013954" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015252" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015253" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_SUSPENDED_JOB" ADD CONSTRAINT "SYS_C0015254" CHECK (EXCLUSIVE_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_SJOB_CORRELATION_ID" + ON "ACT_RU_SUSPENDED_JOB" ("CORRELATION_ID_") +TABLESPACE "USERS" ONLINE; +CREATE INDEX "ACT_IDX_SJOB_CUSTOM_VAL_ID" + ON "ACT_RU_SUSPENDED_JOB" ("CUSTOM_VALUES_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_EXCEPTION" + ON "ACT_RU_SUSPENDED_JOB" ("EXCEPTION_STACK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_EXECUTION_ID" + ON "ACT_RU_SUSPENDED_JOB" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_PROC_DEF_ID" + ON "ACT_RU_SUSPENDED_JOB" ("PROC_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_PROC_INST_ID" + ON "ACT_RU_SUSPENDED_JOB" ("PROCESS_INSTANCE_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_SCOPE" + ON "ACT_RU_SUSPENDED_JOB" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_SCOPE_DEF" + ON "ACT_RU_SUSPENDED_JOB" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_SJOB_SUB_SCOPE" + ON "ACT_RU_SUSPENDED_JOB" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_TASK +-- ---------------------------- +ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0015271" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_TASK +-- ---------------------------- +ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0013955" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_TASK" ADD CONSTRAINT "SYS_C0015270" CHECK (IS_COUNT_ENABLED_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_TASK +-- ---------------------------- +CREATE INDEX "ACT_IDX_TASK_CREATE" + ON "ACT_RU_TASK" ("CREATE_TIME_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_TASK_EXEC" + ON "ACT_RU_TASK" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_TASK_PROCDEF" + ON "ACT_RU_TASK" ("PROC_DEF_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_TASK_PROCINST" + ON "ACT_RU_TASK" ("PROC_INST_ID_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TASK_SCOPE" + ON "ACT_RU_TASK" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TASK_SCOPE_DEF" + ON "ACT_RU_TASK" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TASK_SUB_SCOPE" + ON "ACT_RU_TASK" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015251" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0013956" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0013957" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015248" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015249" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_TIMER_JOB" ADD CONSTRAINT "SYS_C0015250" CHECK (EXCLUSIVE_ IN (1,0)) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_TIMER_JOB +-- ---------------------------- +CREATE INDEX "ACT_IDX_TJOB_CORRELATION_ID" + ON "ACT_RU_TIMER_JOB" ("CORRELATION_ID_") + +TABLESPACE "USERS"; +CREATE INDEX "ACT_IDX_TJOB_CUSTOM_VAL_ID" + ON "ACT_RU_TIMER_JOB" ("CUSTOM_VALUES_ID_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_DUEDATE" + ON "ACT_RU_TIMER_JOB" ("DUEDATE_") + +TABLESPACE "USERS"; +CREATE INDEX "ACT_IDX_TJOB_EXCEPTION" + ON "ACT_RU_TIMER_JOB" ("EXCEPTION_STACK_ID_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_EXECUTION_ID" + ON "ACT_RU_TIMER_JOB" ("EXECUTION_ID_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_PROC_DEF_ID" + ON "ACT_RU_TIMER_JOB" ("PROC_DEF_ID_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_PROC_INST_ID" + ON "ACT_RU_TIMER_JOB" ("PROCESS_INSTANCE_ID_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_SCOPE" + ON "ACT_RU_TIMER_JOB" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_SCOPE_DEF" + ON "ACT_RU_TIMER_JOB" ("SCOPE_DEFINITION_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ; +CREATE INDEX "ACT_IDX_TJOB_SUB_SCOPE" + ON "ACT_RU_TIMER_JOB" ("SUB_SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ; + +-- ---------------------------- +-- Primary Key structure for table ACT_RU_VARIABLE +-- ---------------------------- +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015281" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table ACT_RU_VARIABLE +-- ---------------------------- +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0013958" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0013959" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0013960" CHECK ("NAME_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015278" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015279" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "ACT_RU_VARIABLE" ADD CONSTRAINT "SYS_C0015280" CHECK ("NAME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table ACT_RU_VARIABLE +-- ---------------------------- +CREATE INDEX "ACT_IDX_RU_VAR_SCOPE_ID_TYPE" + ON "ACT_RU_VARIABLE" ("SCOPE_ID_" , "SCOPE_TYPE_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_RU_VAR_SUB_ID_TYPE" + ON "ACT_RU_VARIABLE" ("SCOPE_TYPE_" , "SUB_SCOPE_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_VARIABLE_TASK_ID" + ON "ACT_RU_VARIABLE" ("TASK_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_VAR_BYTEARRAY" + ON "ACT_RU_VARIABLE" ("BYTEARRAY_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_VAR_EXE" + ON "ACT_RU_VARIABLE" ("EXECUTION_ID_") +TABLESPACE "USERS" ONLINE ; +CREATE INDEX "ACT_IDX_VAR_PROCINST" + ON "ACT_RU_VARIABLE" ("PROC_INST_ID_") +TABLESPACE "USERS" ONLINE ; + +-- ---------------------------- +-- Primary Key structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_CHANNEL_DEFINITION" ADD CONSTRAINT "PK_FLW_CHANNEL_DEFINITION" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_CHANNEL_DEFINITION" ADD CONSTRAINT "SYS_C0014296" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table FLW_CHANNEL_DEFINITION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_CHANNEL_DEF_UNIQ" + ON "FLW_CHANNEL_DEFINITION" ("KEY_" , "VERSION_" , "TENANT_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEFINITION" ADD CONSTRAINT "PK_FLW_EVENT_DEFINITION" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEFINITION" ADD CONSTRAINT "SYS_C0014294" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table FLW_EVENT_DEFINITION +-- ---------------------------- +CREATE UNIQUE INDEX "ACT_IDX_EVENT_DEF_UNIQ" + ON "FLW_EVENT_DEFINITION" ("KEY_" , "VERSION_" , "TENANT_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEPLOYMENT" ADD CONSTRAINT "PK_FLW_EVENT_DEPLOYMENT" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_EVENT_DEPLOYMENT +-- ---------------------------- +ALTER TABLE "FLW_EVENT_DEPLOYMENT" ADD CONSTRAINT "SYS_C0014290" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table FLW_EVENT_RESOURCE +-- ---------------------------- +ALTER TABLE "FLW_EVENT_RESOURCE" ADD CONSTRAINT "PK_FLW_EVENT_RESOURCE" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_EVENT_RESOURCE +-- ---------------------------- +ALTER TABLE "FLW_EVENT_RESOURCE" ADD CONSTRAINT "SYS_C0014292" CHECK ("ID_" IS NOT NULL) ; + +-- ---------------------------- +-- Checks structure for table FLW_EV_DATABASECHANGELOG +-- ---------------------------- +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014281" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014282" CHECK ("AUTHOR" IS NOT NULL) ; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014283" CHECK ("FILENAME" IS NOT NULL) ; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014284" CHECK ("DATEEXECUTED" IS NOT NULL) ; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014285" CHECK ("ORDEREXECUTED" IS NOT NULL) ; +ALTER TABLE "FLW_EV_DATABASECHANGELOG" ADD CONSTRAINT "SYS_C0014286" CHECK ("EXECTYPE" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT "PK_FLW_EV_DATABASECHANGELOGLOC" PRIMARY KEY ("ID"); + +-- ---------------------------- +-- Checks structure for table FLW_EV_DATABASECHANGELOGLOCK +-- ---------------------------- +ALTER TABLE "FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0014287" CHECK ("ID" IS NOT NULL) ; +ALTER TABLE "FLW_EV_DATABASECHANGELOGLOCK" ADD CONSTRAINT "SYS_C0014288" CHECK ("LOCKED" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table FLW_RU_BATCH +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014275" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_RU_BATCH +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014272" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014273" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "FLW_RU_BATCH" ADD CONSTRAINT "SYS_C0014274" CHECK ("CREATE_TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Primary Key structure for table FLW_RU_BATCH_PART +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014279" PRIMARY KEY ("ID_"); + +-- ---------------------------- +-- Checks structure for table FLW_RU_BATCH_PART +-- ---------------------------- +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014276" CHECK ("ID_" IS NOT NULL) ; +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014277" CHECK ("TYPE_" IS NOT NULL) ; +ALTER TABLE "FLW_RU_BATCH_PART" ADD CONSTRAINT "SYS_C0014278" CHECK ("CREATE_TIME_" IS NOT NULL) ; + +-- ---------------------------- +-- Indexes structure for table FLW_RU_BATCH_PART +-- ---------------------------- +CREATE INDEX "FLW_IDX_BATCH_PART" + ON "FLW_RU_BATCH_PART" ("BATCH_ID_") +TABLESPACE "USERS" ONLINE; + +-- ---------------------------- +-- Foreign Keys structure for table ACT_APP_APPDEF +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_APP_DEPLOYMENT_RESOURCE +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_CASEDEF +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_DEPLOYMENT_RESOURCE +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_CASE_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_MIL_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_PLAN_ITEM_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_CMMN_RU_SENTRY_PART_INST +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_DE_MODEL_RELATION +-- ---------------------------- +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_CHILD" FOREIGN KEY ("MODEL_ID") REFERENCES "ACT_DE_MODEL" ("ID") ; +ALTER TABLE "ACT_DE_MODEL_RELATION" ADD CONSTRAINT "FK_RELATION_PARENT" FOREIGN KEY ("PARENT_MODEL_ID") REFERENCES "ACT_DE_MODEL" ("ID") ; + +-- ---------------------------- +-- Foreign Keys structure for table ACT_GE_BYTEARRAY +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_ID_MEMBERSHIP +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_ID_PRIV_MAPPING +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_PROCDEF_INFO +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RE_MODEL +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_DEADLETTER_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EVENT_SUBSCR +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EXECUTION +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_EXTERNAL_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_IDENTITYLINK +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_SUSPENDED_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_TASK +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_TIMER_JOB +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table ACT_RU_VARIABLE +-- ---------------------------- + +-- ---------------------------- +-- Foreign Keys structure for table FLW_RU_BATCH_PART +-- ---------------------------- diff --git a/doc/sql/upgrade/bladex.dameng.upgrade.3.4.0.to.4.0.0.sql b/doc/sql/upgrade/bladex.dameng.upgrade.3.4.0.to.4.0.0.sql new file mode 100644 index 0000000..1535db3 --- /dev/null +++ b/doc/sql/upgrade/bladex.dameng.upgrade.3.4.0.to.4.0.0.sql @@ -0,0 +1,16 @@ +-- ----------------------------------- +-- 修改应用表的授权集合 +-- ----------------------------------- +UPDATE "BLADEX"."BLADE_CLIENT" SET AUTHORIZED_GRANT_TYPES = 'authorization_code,password,refresh_token,captcha,social,register' where ID < 1123598811738675203; + +-- ----------------------------------- +-- 删除可能重复的菜单 +-- ----------------------------------- +DELETE FROM "BLADEX"."BLADE_CLIENT" WHERE "CLIENT_ID" = 'saber3'; +DELETE FROM "BLADEX"."BLADE_CLIENT" WHERE "CLIENT_ID" = 'rider'; + +-- ----------------------------------- +-- 新增客户端记录 +-- ----------------------------------- +INSERT INTO "BLADEX"."BLADE_CLIENT" ("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES ('1123598811738675203', 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', '2024-04-01 00:00:00', '1123598815738675201', '2024-04-01 00:00:00', '1', '0'); +INSERT INTO "BLADEX"."BLADE_CLIENT" ("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES ('1123598811738675204', 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', '2024-04-01 00:00:00', '1123598815738675201', '2024-04-01 00:00:00', '1', '0'); diff --git a/doc/sql/upgrade/bladex.mysql.upgrade.3.4.0.to.4.0.0.sql b/doc/sql/upgrade/bladex.mysql.upgrade.3.4.0.to.4.0.0.sql new file mode 100644 index 0000000..2340f57 --- /dev/null +++ b/doc/sql/upgrade/bladex.mysql.upgrade.3.4.0.to.4.0.0.sql @@ -0,0 +1,16 @@ +-- ----------------------------------- +-- 修改应用表saber的访问地址 +-- ----------------------------------- +UPDATE `blade_client` SET authorized_grant_types = 'authorization_code,password,refresh_token,captcha,social,register' where id < 1123598811738675203; + +-- ----------------------------------- +-- 删除可能重复的菜单 +-- ----------------------------------- +DELETE FROM `blade_client` WHERE client_id = 'saber3'; +DELETE FROM `blade_client` WHERE client_id = 'rider'; + +-- ----------------------------------- +-- 新增模型设计菜单 +-- ----------------------------------- +INSERT INTO `blade_client` (`id`, `client_id`, `client_secret`, `resource_ids`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES (1123598811738675203, 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); +INSERT INTO `blade_client` (`id`, `client_id`, `client_secret`, `resource_ids`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`, `create_user`, `create_dept`, `create_time`, `update_user`, `update_time`, `status`, `is_deleted`) VALUES (1123598811738675204, 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); diff --git a/doc/sql/upgrade/bladex.oracle.upgrade.3.4.0.to.4.0.0.sql b/doc/sql/upgrade/bladex.oracle.upgrade.3.4.0.to.4.0.0.sql new file mode 100644 index 0000000..f9e10c6 --- /dev/null +++ b/doc/sql/upgrade/bladex.oracle.upgrade.3.4.0.to.4.0.0.sql @@ -0,0 +1,16 @@ +-- ----------------------------------- +-- 修改应用表的授权集合 +-- ----------------------------------- +UPDATE "BLADEX"."BLADE_CLIENT" SET AUTHORIZED_GRANT_TYPES = 'authorization_code,password,refresh_token,captcha,social,register' where ID < 1123598811738675203; + +-- ----------------------------------- +-- 删除可能重复的菜单 +-- ----------------------------------- +DELETE FROM "BLADEX"."BLADE_CLIENT" WHERE "CLIENT_ID" = 'saber3'; +DELETE FROM "BLADEX"."BLADE_CLIENT" WHERE "CLIENT_ID" = 'rider'; + +-- ----------------------------------- +-- 新增客户端记录 +-- ----------------------------------- +INSERT INTO "BLADEX"."BLADE_CLIENT" ("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES ('1123598811738675203', 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADEX"."BLADE_CLIENT" ("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES ('1123598811738675204', 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); diff --git a/doc/sql/upgrade/bladex.postgresql.upgrade.3.4.0.to.4.0.0.sql b/doc/sql/upgrade/bladex.postgresql.upgrade.3.4.0.to.4.0.0.sql new file mode 100644 index 0000000..1c77e6b --- /dev/null +++ b/doc/sql/upgrade/bladex.postgresql.upgrade.3.4.0.to.4.0.0.sql @@ -0,0 +1,16 @@ +-- ----------------------------------- +-- 修改应用表的授权集合 +-- ----------------------------------- +UPDATE blade_client SET authorized_grant_types = 'authorization_code,password,refresh_token,captcha,social,register' WHERE client_id = 'saber'; + +-- ----------------------------------- +-- 删除可能重复的菜单 +-- ----------------------------------- +DELETE FROM "blade_client" WHERE "client_id" = 'saber3'; +DELETE FROM "blade_client" WHERE "client_id" = 'rider'; + +-- ----------------------------------- +-- 新增客户端记录 +-- ----------------------------------- +INSERT INTO "blade_client" ("id", "client_id", "client_secret", "resource_ids", "scope", "authorized_grant_types", "web_server_redirect_uri", "authorities", "access_token_validity", "refresh_token_validity", "additional_information", "autoapprove", "create_user", "create_dept", "create_time", "update_user", "update_time", "status", "is_deleted") VALUES (1123598811738675203, 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); +INSERT INTO "blade_client" ("id", "client_id", "client_secret", "resource_ids", "scope", "authorized_grant_types", "web_server_redirect_uri", "authorities", "access_token_validity", "refresh_token_validity", "additional_information", "autoapprove", "create_user", "create_dept", "create_time", "update_user", "update_time", "status", "is_deleted") VALUES (1123598811738675204, 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); diff --git a/doc/sql/upgrade/bladex.sqlserver.upgrade.3.4.0.to.4.0.0.sql b/doc/sql/upgrade/bladex.sqlserver.upgrade.3.4.0.to.4.0.0.sql new file mode 100644 index 0000000..6d12b05 --- /dev/null +++ b/doc/sql/upgrade/bladex.sqlserver.upgrade.3.4.0.to.4.0.0.sql @@ -0,0 +1,16 @@ +-- ----------------------------------- +-- 修改应用表saber的访问地址 +-- ----------------------------------- +UPDATE [dbo].[blade_client] SET [authorized_grant_types] = 'authorization_code,password,refresh_token,captcha,social,register' WHERE id < '1123598811738675203'; + +-- ----------------------------------- +-- 删除可能重复的菜单 +-- ----------------------------------- +DELETE FROM [dbo].[blade_client] WHERE client_id = 'saber3'; +DELETE FROM [dbo].[blade_client] WHERE client_id = 'rider'; + +-- ----------------------------------- +-- 新增模型设计菜单 +-- ----------------------------------- +INSERT INTO [dbo].[blade_client] ([id], [client_id], [client_secret], [resource_ids], [scope], [authorized_grant_types], [web_server_redirect_uri], [authorities], [access_token_validity], [refresh_token_validity], [additional_information], [autoapprove], [create_user], [create_dept], [create_time], [update_user], [update_time], [status], [is_deleted]) VALUES (1123598811738675203, N'saber3', N'saber3_secret', NULL, N'all', N'authorization_code,password,refresh_token,captcha,social,register', N'http://localhost:2888/login', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); +INSERT INTO [dbo].[blade_client] ([id], [client_id], [client_secret], [resource_ids], [scope], [authorized_grant_types], [web_server_redirect_uri], [authorities], [access_token_validity], [refresh_token_validity], [additional_information], [autoapprove], [create_user], [create_dept], [create_time], [update_user], [update_time], [status], [is_deleted]) VALUES (1123598811738675204, N'rider', N'rider_secret', NULL, N'all', N'authorization_code,password,refresh_token,captcha,social,register', N'http://localhost:88', NULL, 3600, 604800, NULL, NULL, 1123598815738675201, 1123598813738675201, '2024-04-01 00:00:00', 1123598815738675201, '2024-04-01 00:00:00', 1, 0); diff --git a/doc/sql/upgrade/bladex.yashandb.upgrade.3.4.0.to.4.0.0.sql b/doc/sql/upgrade/bladex.yashandb.upgrade.3.4.0.to.4.0.0.sql new file mode 100644 index 0000000..44e0025 --- /dev/null +++ b/doc/sql/upgrade/bladex.yashandb.upgrade.3.4.0.to.4.0.0.sql @@ -0,0 +1,16 @@ +-- ----------------------------------- +-- 修改应用表的授权集合 +-- ----------------------------------- +UPDATE "BLADE_CLIENT" SET AUTHORIZED_GRANT_TYPES = 'authorization_code,password,refresh_token,captcha,social,register' where ID < 1123598811738675203; + +-- ----------------------------------- +-- 删除可能重复的菜单 +-- ----------------------------------- +DELETE FROM "BLADE_CLIENT" WHERE "CLIENT_ID" = 'saber3'; +DELETE FROM "BLADE_CLIENT" WHERE "CLIENT_ID" = 'rider'; + +-- ----------------------------------- +-- 新增客户端记录 +-- ----------------------------------- +INSERT INTO "BLADE_CLIENT" ("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES ('1123598811738675203', 'saber3', 'saber3_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:2888/login', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); +INSERT INTO "BLADE_CLIENT" ("ID", "CLIENT_ID", "CLIENT_SECRET", "RESOURCE_IDS", "SCOPE", "AUTHORIZED_GRANT_TYPES", "WEB_SERVER_REDIRECT_URI", "AUTHORITIES", "ACCESS_TOKEN_VALIDITY", "REFRESH_TOKEN_VALIDITY", "ADDITIONAL_INFORMATION", "AUTOAPPROVE", "CREATE_USER", "CREATE_DEPT", "CREATE_TIME", "UPDATE_USER", "UPDATE_TIME", "STATUS", "IS_DELETED") VALUES ('1123598811738675204', 'rider', 'rider_secret', NULL, 'all', 'authorization_code,password,refresh_token,captcha,social,register', 'http://localhost:88', NULL, '3600', '604800', NULL, NULL, '1123598815738675201', '1123598813738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1123598815738675201', TO_DATE('2024-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'), '1', '0'); diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..61b5990 --- /dev/null +++ b/pom.xml @@ -0,0 +1,359 @@ + + + 4.0.0 + + org.springblade + nenghui-uat + jar + 4.0.1.RELEASE + + + nenghui-uat + 4.0.1.RELEASE + + 17 + 3.11.0 + UTF-8 + UTF-8 + + + 192.168.0.188 + admin + admin12345 + blade + 0.42.0 + + + + + + org.springblade.platform + blade-bom + ${bladex.project.version} + pom + import + + + + + + + + org.springblade + blade-core-boot + + + org.springblade + blade-core-cloud + + + + + org.springblade + blade-core-oauth2 + + + + org.springblade + blade-starter-tenant + + + + + + + org.springblade + blade-starter-http + + + org.springblade + blade-starter-api-crypto + + + org.springblade + blade-starter-datascope + + + org.springblade + blade-starter-develop + + + org.springblade + blade-starter-swagger + + + org.springblade + blade-starter-excel + + + org.springblade + blade-starter-social + + + org.springblade + blade-starter-powerjob + + + com.github.xiaoymin + knife4j-openapi3-ui + + + org.springblade + blade-core-auto + provided + + + org.springblade + blade-core-test + test + + + + + + + + + org.springblade + blade-starter-flowable + + + + com.github.whvcse + easy-captcha + + + + com.baomidou + mybatis-plus-generator + + + + org.springblade + blade-starter-oss + + + + org.springblade + blade-starter-sms + + + + com.amazonaws + aws-java-sdk-s3 + + + + io.minio + minio + + + + com.aliyun.oss + aliyun-sdk-oss + + + + com.aliyun + aliyun-java-sdk-core + + + + com.huaweicloud + esdk-obs-java + + + + com.qcloud + cos_api + + + + com.github.qcloudsms + qcloudsms + + + + com.qiniu + qiniu-java-sdk + + + + com.yunpian.sdk + yunpian-java-sdk + + + + org.springblade + blade-starter-liteflow + + + + + + + + + + + + + + org.projectlombok + lombok + provided + + + + + + + + + + + ${bladex.project.id} + + + src/main/resources + + + src/main/java + + **/*.xml + + + + + + + org.springframework.boot + spring-boot-maven-plugin + 3.2.4 + + ${project.build.finalName} + + + + org.projectlombok + lombok + + + + + + + repackage + + + + + + io.fabric8 + docker-maven-plugin + ${docker.fabric.version} + + + ${docker.username} + ${docker.password} + + ${docker.registry.url} + + + ${docker.namespace}/${project.build.finalName}:${project.version} + ${project.name} + + ${project.basedir}/Dockerfile + + + + + ${basedir}/target/${project.build.finalName}.jar + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + maven-compiler-plugin + ${maven.plugin.version} + + ${java.version} + ${java.version} + UTF-8 + + -parameters + + + + + + + + + aliyun-repos + Aliyun Public Repository + https://maven.aliyun.com/repository/public + + false + + + + bladex + BladeX Release Repository + https://center.javablade.com/api/packages/blade/maven + + + + + aliyun-plugin + Aliyun Public Plugin + https://maven.aliyun.com/repository/public + + false + + + + + + + bladex + BladeX Release Repository + https://center.javablade.com/api/packages/blade/maven + + + bladex + BladeX Snapshot Repository + https://center.javablade.com/api/packages/blade/maven + + + + diff --git a/src/main/java/org/springblade/Application.java b/src/main/java/org/springblade/Application.java new file mode 100644 index 0000000..a9644f8 --- /dev/null +++ b/src/main/java/org/springblade/Application.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade; + +import org.springblade.common.constant.CommonConstant; +import org.springblade.core.launch.BladeApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; + +/** + * 启动器 + * + * @author Chill + */ +@EnableScheduling +@EnableRedisHttpSession +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + BladeApplication.run(CommonConstant.APPLICATION_NAME, Application.class, args); + } + +} + diff --git a/src/main/java/org/springblade/common/cache/CacheNames.java b/src/main/java/org/springblade/common/cache/CacheNames.java new file mode 100644 index 0000000..93cf965 --- /dev/null +++ b/src/main/java/org/springblade/common/cache/CacheNames.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.core.tool.utils.StringPool; + +/** + * 缓存名 + * + * @author Chill + */ +public interface CacheNames { + + /** + * 返回拼接后的key + * + * @param cacheKey 缓存key + * @param cacheKeyValue 缓存key值 + * @return tenantKey + */ + static String cacheKey(String cacheKey, String cacheKeyValue) { + return cacheKey.concat(cacheKeyValue); + } + + /** + * 返回租户格式的key + * + * @param tenantId 租户编号 + * @param cacheKey 缓存key + * @param cacheKeyValue 缓存key值 + * @return tenantKey + */ + static String tenantKey(String tenantId, String cacheKey, String cacheKeyValue) { + return tenantId.concat(StringPool.COLON).concat(cacheKey).concat(cacheKeyValue); + } + + /** + * 验证码key + */ + String CAPTCHA_KEY = "blade:auth::blade:captcha:"; + + /** + * 登录失败key + */ + String USER_FAIL_KEY = "blade:user::blade:fail:"; + +} diff --git a/src/main/java/org/springblade/common/cache/DictBizCache.java b/src/main/java/org/springblade/common/cache/DictBizCache.java new file mode 100644 index 0000000..00e417f --- /dev/null +++ b/src/main/java/org/springblade/common/cache/DictBizCache.java @@ -0,0 +1,125 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.common.enums.DictBizEnum; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.service.IDictBizService; + +import java.util.List; + +import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE; + +/** + * 业务字典缓存工具类 + * + * @author Chill + */ +public class DictBizCache { + + private static final String DICT_ID = "dictBiz:id"; + private static final String DICT_VALUE = "dictBiz:value"; + private static final String DICT_LIST = "dictBiz:list"; + + private static final IDictBizService dictService; + + static { + dictService = SpringUtil.getBean(IDictBizService.class); + } + + /** + * 获取字典实体 + * + * @param id 主键 + * @return DictBiz + */ + public static DictBiz getById(Long id) { + String keyPrefix = DICT_ID.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON); + return CacheUtil.get(DICT_CACHE, keyPrefix, id, () -> dictService.getById(id)); + } + + /** + * 获取字典值 + * + * @param code 字典编号枚举 + * @param dictKey Integer型字典键 + * @return String + */ + public static String getValue(DictBizEnum code, Integer dictKey) { + return getValue(code.getName(), dictKey); + } + + /** + * 获取字典值 + * + * @param code 字典编号 + * @param dictKey Integer型字典键 + * @return String + */ + public static String getValue(String code, Integer dictKey) { + String keyPrefix = DICT_VALUE.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON); + return CacheUtil.get(DICT_CACHE, keyPrefix + code + StringPool.COLON, String.valueOf(dictKey), () -> dictService.getValue(code, String.valueOf(dictKey))); + } + + /** + * 获取字典值 + * + * @param code 字典编号枚举 + * @param dictKey String型字典键 + * @return String + */ + public static String getValue(DictBizEnum code, String dictKey) { + return getValue(code.getName(), dictKey); + } + + /** + * 获取字典值 + * + * @param code 字典编号 + * @param dictKey String型字典键 + * @return String + */ + public static String getValue(String code, String dictKey) { + String keyPrefix = DICT_VALUE.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON); + return CacheUtil.get(DICT_CACHE, keyPrefix + code + StringPool.COLON, dictKey, () -> dictService.getValue(code, dictKey)); + } + + /** + * 获取字典集合 + * + * @param code 字典编号 + * @return List + */ + public static List getList(String code) { + String keyPrefix = DICT_LIST.concat(StringPool.DASH).concat(AuthUtil.getTenantId()).concat(StringPool.COLON); + return CacheUtil.get(DICT_CACHE, keyPrefix, code, () -> dictService.getList(code)); + } + +} diff --git a/src/main/java/org/springblade/common/cache/DictCache.java b/src/main/java/org/springblade/common/cache/DictCache.java new file mode 100644 index 0000000..eaa50d1 --- /dev/null +++ b/src/main/java/org/springblade/common/cache/DictCache.java @@ -0,0 +1,152 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.common.enums.DictEnum; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.service.IDictService; + +import java.util.List; +import java.util.Optional; + +import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE; + +/** + * 字典缓存工具类 + * + * @author Chill + */ +public class DictCache { + + private static final String DICT_ID = "dict:id:"; + private static final String DICT_KEY = "dict:key:"; + private static final String DICT_VALUE = "dict:value:"; + private static final String DICT_LIST = "dict:list:"; + + private static final Boolean TENANT_MODE = Boolean.FALSE; + + private static final IDictService dictService; + + static { + dictService = SpringUtil.getBean(IDictService.class); + } + + /** + * 获取字典实体 + * + * @param id 主键 + * @return Dict + */ + public static Dict getById(Long id) { + return CacheUtil.get(DICT_CACHE, DICT_ID, id, () -> dictService.getById(id), TENANT_MODE); + } + + /** + * 获取字典值 + * + * @param code 字典编号枚举 + * @param dictValue 字典值 + * @return String + */ + public static String getKey(DictEnum code, String dictValue) { + return getKey(code.getName(), dictValue); + } + + /** + * 获取字典键 + * + * @param code 字典编号 + * @param dictValue 字典值 + * @return String + */ + public static String getKey(String code, String dictValue) { + return CacheUtil.get(DICT_CACHE, DICT_KEY + code + StringPool.COLON, dictValue, () -> { + List list = getList(code); + Optional key = list.stream().filter( + dict -> dict.getDictValue().equalsIgnoreCase(dictValue) + ).map(Dict::getDictKey).findFirst(); + return key.orElse(StringPool.EMPTY); + }, TENANT_MODE); + } + + /** + * 获取字典值 + * + * @param code 字典编号枚举 + * @param dictKey Integer型字典键 + * @return String + */ + public static String getValue(DictEnum code, Integer dictKey) { + return getValue(code.getName(), dictKey); + } + + /** + * 获取字典值 + * + * @param code 字典编号 + * @param dictKey Integer型字典键 + * @return String + */ + public static String getValue(String code, Integer dictKey) { + return CacheUtil.get(DICT_CACHE, DICT_VALUE + code + StringPool.COLON, String.valueOf(dictKey), () -> dictService.getValue(code, String.valueOf(dictKey)), TENANT_MODE); + } + + /** + * 获取字典值 + * + * @param code 字典编号枚举 + * @param dictKey String型字典键 + * @return String + */ + public static String getValue(DictEnum code, String dictKey) { + return getValue(code.getName(), dictKey); + } + + /** + * 获取字典值 + * + * @param code 字典编号 + * @param dictKey String型字典键 + * @return String + */ + public static String getValue(String code, String dictKey) { + return CacheUtil.get(DICT_CACHE, DICT_VALUE + code + StringPool.COLON, dictKey, () -> dictService.getValue(code, dictKey), TENANT_MODE); + } + + /** + * 获取字典集合 + * + * @param code 字典编号 + * @return List + */ + public static List getList(String code) { + return CacheUtil.get(DICT_CACHE, DICT_LIST, code, () -> dictService.getList(code), TENANT_MODE); + } + +} diff --git a/src/main/java/org/springblade/common/cache/ParamCache.java b/src/main/java/org/springblade/common/cache/ParamCache.java new file mode 100644 index 0000000..9198450 --- /dev/null +++ b/src/main/java/org/springblade/common/cache/ParamCache.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.modules.system.pojo.entity.Param; +import org.springblade.modules.system.service.IParamService; + +import static org.springblade.core.cache.constant.CacheConstant.PARAM_CACHE; + +/** + * 参数缓存工具类 + * + * @author Chill + */ +public class ParamCache { + + private static final String PARAM_ID = "param:id:"; + private static final String PARAM_VALUE = "param:value:"; + + private static final IParamService paramService; + + static { + paramService = SpringUtil.getBean(IParamService.class); + } + + /** + * 获取参数实体 + * + * @param id 主键 + * @return Param + */ + public static Param getById(Long id) { + return CacheUtil.get(PARAM_CACHE, PARAM_ID, id, () -> paramService.getById(id)); + } + + /** + * 获取参数配置 + * + * @param paramKey 参数值 + * @return String + */ + public static String getValue(String paramKey) { + return CacheUtil.get(PARAM_CACHE, PARAM_VALUE, paramKey, () -> paramService.getValue(paramKey)); + } + +} diff --git a/src/main/java/org/springblade/common/cache/RegionCache.java b/src/main/java/org/springblade/common/cache/RegionCache.java new file mode 100644 index 0000000..62d3fa7 --- /dev/null +++ b/src/main/java/org/springblade/common/cache/RegionCache.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.service.IRegionService; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 行政区划缓存工具类 + * + * @author Chill + */ +public class RegionCache { + public static final String MAIN_CODE = "00"; + public static final int PROVINCE_LEVEL = 1; + public static final int CITY_LEVEL = 2; + public static final int DISTRICT_LEVEL = 3; + public static final int TOWN_LEVEL = 4; + public static final int VILLAGE_LEVEL = 5; + + private static final String REGION_CODE = "region:code:"; + + private static final IRegionService regionService; + + static { + regionService = SpringUtil.getBean(IRegionService.class); + } + + /** + * 获取行政区划实体 + * + * @param code 区划编号 + * @return Param + */ + public static Region getByCode(String code) { + return CacheUtil.get(SYS_CACHE, REGION_CODE, code, () -> regionService.getById(code)); + } + +} diff --git a/src/main/java/org/springblade/common/cache/SysCache.java b/src/main/java/org/springblade/common/cache/SysCache.java new file mode 100644 index 0000000..7be39a0 --- /dev/null +++ b/src/main/java/org/springblade/common/cache/SysCache.java @@ -0,0 +1,326 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.*; +import org.springblade.modules.system.service.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 系统缓存 + * + * @author Chill + */ +public class SysCache { + private static final String MENU_ID = "menu:id:"; + private static final String DEPT_ID = "dept:id:"; + private static final String DEPT_NAME = "dept:name:"; + private static final String DEPT_NAME_FUZZY = "dept:nameFuzzy:"; + private static final String DEPT_NAME_ID = "deptName:id:"; + private static final String DEPT_NAMES_ID = "deptNames:id:"; + private static final String DEPT_CHILD_ID = "deptChild:id:"; + private static final String DEPT_CHILDIDS_ID = "deptChildIds:id:"; + private static final String POST_ID = "post:id:"; + private static final String POST_NAME = "post:name:"; + private static final String POST_NAME_FUZZY = "post:nameFuzzy:"; + private static final String POST_NAME_ID = "postName:id:"; + private static final String POST_NAMES_ID = "postNames:id:"; + private static final String ROLE_ID = "role:id:"; + private static final String ROLE_NAME = "role:name:"; + private static final String ROLE_NAME_ID = "roleName:id:"; + private static final String ROLE_NAMES_ID = "roleNames:id:"; + private static final String ROLE_ALIAS_ID = "roleAlias:id:"; + private static final String ROLE_ALIASES_ID = "roleAliases:id:"; + public static final String TENANT_ID = "tenant:id:"; + public static final String TENANT_TENANT_ID = "tenant:tenantId:"; + public static final String TENANT_PACKAGE_ID = "tenant:packageId:"; + + private static final IMenuService menuService; + private static final IDeptService deptService; + private static final IPostService postService; + private static final IRoleService roleService; + private static final ITenantService tenantService; + private static final ITenantPackageService tenantPackageService; + + static { + menuService = SpringUtil.getBean(IMenuService.class); + deptService = SpringUtil.getBean(IDeptService.class); + postService = SpringUtil.getBean(IPostService.class); + roleService = SpringUtil.getBean(IRoleService.class); + tenantService = SpringUtil.getBean(ITenantService.class); + tenantPackageService = SpringUtil.getBean(ITenantPackageService.class); + } + + /** + * 获取菜单 + * + * @param id 主键 + * @return 菜单 + */ + public static Menu getMenu(Long id) { + return CacheUtil.get(SYS_CACHE, MENU_ID, id, () -> menuService.getById(id)); + } + + /** + * 获取部门 + * + * @param id 主键 + * @return 部门 + */ + public static Dept getDept(Long id) { + return CacheUtil.get(SYS_CACHE, DEPT_ID, id, () -> deptService.getById(id)); + } + + /** + * 获取部门id + * + * @param tenantId 租户id + * @param deptNames 部门名 + * @return 部门id + */ + public static String getDeptIds(String tenantId, String deptNames) { + return CacheUtil.get(SYS_CACHE, DEPT_NAME, tenantId + StringPool.DASH + deptNames, () -> deptService.getDeptIds(tenantId, deptNames)); + } + + /** + * 获取部门id + * + * @param tenantId 租户id + * @param deptNames 部门名模糊查询 + * @return 部门id + */ + public static String getDeptIdsByFuzzy(String tenantId, String deptNames) { + return CacheUtil.get(SYS_CACHE, DEPT_NAME_FUZZY, tenantId + StringPool.DASH + deptNames, () -> deptService.getDeptIdsByFuzzy(tenantId, deptNames)); + } + + /** + * 获取部门名 + * + * @param id 主键 + * @return 部门名 + */ + public static String getDeptName(Long id) { + return CacheUtil.get(SYS_CACHE, DEPT_NAME_ID, id, () -> deptService.getById(id).getDeptName()); + } + + + /** + * 获取部门名集合 + * + * @param deptIds 主键集合 + * @return 部门名 + */ + public static List getDeptNames(String deptIds) { + return CacheUtil.get(SYS_CACHE, DEPT_NAMES_ID, deptIds, () -> deptService.getDeptNames(deptIds)); + } + + /** + * 获取子部门集合 + * + * @param deptId 主键 + * @return 子部门 + */ + public static List getDeptChild(Long deptId) { + return CacheUtil.get(SYS_CACHE, DEPT_CHILD_ID, deptId, () -> deptService.getDeptChild(deptId)); + } + + /** + * 获取子部门ID集合 + * + * @param deptId 主键 + * @return 子部门ID + */ + public static List getDeptChildIds(Long deptId) { + if (deptId == null) { + return null; + } + List deptIdList = CacheUtil.get(SYS_CACHE, DEPT_CHILDIDS_ID, deptId, List.class); + if (deptIdList == null) { + deptIdList = new ArrayList<>(); + List deptChild = getDeptChild(deptId); + if (deptChild != null) { + List collect = deptChild.stream().map(Dept::getId).collect(Collectors.toList()); + deptIdList.addAll(collect); + } + deptIdList.add(deptId); + CacheUtil.put(SYS_CACHE, DEPT_CHILDIDS_ID, deptId, deptIdList); + } + return deptIdList; + } + + /** + * 获取岗位 + * + * @param id 主键 + * @return + */ + public static Post getPost(Long id) { + return CacheUtil.get(SYS_CACHE, POST_ID, id, () -> postService.getById(id)); + } + + /** + * 获取岗位id + * + * @param tenantId 租户id + * @param postNames 岗位名 + * @return + */ + public static String getPostIds(String tenantId, String postNames) { + return CacheUtil.get(SYS_CACHE, POST_NAME, tenantId + StringPool.DASH + postNames, () -> postService.getPostIds(tenantId, postNames)); + } + + /** + * 获取岗位id + * + * @param tenantId 租户id + * @param postNames 岗位名模糊查询 + * @return + */ + public static String getPostIdsByFuzzy(String tenantId, String postNames) { + return CacheUtil.get(SYS_CACHE, POST_NAME_FUZZY, tenantId + StringPool.DASH + postNames, () -> postService.getPostIdsByFuzzy(tenantId, postNames)); + } + + /** + * 获取岗位名 + * + * @param id 主键 + * @return 岗位名 + */ + public static String getPostName(Long id) { + return CacheUtil.get(SYS_CACHE, POST_NAME_ID, id, () -> postService.getById(id).getPostName()); + } + + /** + * 获取岗位名集合 + * + * @param postIds 主键集合 + * @return 岗位名 + */ + public static List getPostNames(String postIds) { + return CacheUtil.get(SYS_CACHE, POST_NAMES_ID, postIds, () -> postService.getPostNames(postIds)); + } + + /** + * 获取角色 + * + * @param id 主键 + * @return Role + */ + public static Role getRole(Long id) { + return CacheUtil.get(SYS_CACHE, ROLE_ID, id, () -> roleService.getById(id)); + } + + /** + * 获取角色id + * + * @param tenantId 租户id + * @param roleNames 角色名 + * @return + */ + public static String getRoleIds(String tenantId, String roleNames) { + return CacheUtil.get(SYS_CACHE, ROLE_NAME, tenantId + StringPool.DASH + roleNames, () -> roleService.getRoleIds(tenantId, roleNames)); + } + + /** + * 获取角色名 + * + * @param id 主键 + * @return 角色名 + */ + public static String getRoleName(Long id) { + return CacheUtil.get(SYS_CACHE, ROLE_NAME_ID, id, () -> roleService.getById(id).getRoleName()); + } + + /** + * 获取角色名集合 + * + * @param roleIds 主键集合 + * @return 角色名 + */ + public static List getRoleNames(String roleIds) { + return CacheUtil.get(SYS_CACHE, ROLE_NAMES_ID, roleIds, () -> roleService.getRoleNames(roleIds)); + } + + /** + * 获取角色别名 + * + * @param id 主键 + * @return 角色别名 + */ + public static String getRoleAlias(Long id) { + return CacheUtil.get(SYS_CACHE, ROLE_ALIAS_ID, id, () -> roleService.getById(id).getRoleAlias()); + } + + /** + * 获取角色别名集合 + * + * @param roleIds 主键集合 + * @return 角色别名 + */ + public static List getRoleAliases(String roleIds) { + return CacheUtil.get(SYS_CACHE, ROLE_ALIASES_ID, roleIds, () -> roleService.getRoleAliases(roleIds)); + } + + /** + * 获取租户 + * + * @param id 主键 + * @return Tenant + */ + public static Tenant getTenant(Long id) { + return CacheUtil.get(SYS_CACHE, TENANT_ID, id, () -> tenantService.getById(id), Boolean.FALSE); + } + + /** + * 获取租户 + * + * @param tenantId 租户id + * @return Tenant + */ + public static Tenant getTenant(String tenantId) { + return CacheUtil.get(SYS_CACHE, TENANT_TENANT_ID, tenantId, () -> tenantService.getByTenantId(tenantId), Boolean.FALSE); + } + + /** + * 获取租户产品包 + * + * @param tenantId 租户id + * @return Tenant + */ + public static TenantPackage getTenantPackage(String tenantId) { + Tenant tenant = getTenant(tenantId); + return CacheUtil.get(SYS_CACHE, TENANT_PACKAGE_ID, tenantId, () -> tenantPackageService.getById(tenant.getPackageId()), Boolean.FALSE); + } + +} diff --git a/src/main/java/org/springblade/common/cache/UserCache.java b/src/main/java/org/springblade/common/cache/UserCache.java new file mode 100644 index 0000000..26ec013 --- /dev/null +++ b/src/main/java/org/springblade/common/cache/UserCache.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.cache; + +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IUserService; + +import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE; +import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX; + +/** + * 系统缓存 + * + * @author Chill + */ +public class UserCache { + private static final String USER_CACHE_ID = "user:id:"; + private static final String USER_CACHE_ACCOUNT = "user:account:"; + + private static final IUserService userService; + + static { + userService = SpringUtil.getBean(IUserService.class); + } + + /** + * 根据任务用户id获取用户信息 + * + * @param taskUserId 任务用户id + * @return + */ + public static User getUserByTaskUser(String taskUserId) { + Long userId = Func.toLong(StringUtil.removePrefix(taskUserId, TASK_USR_PREFIX)); + return getUser(userId); + } + + /** + * 获取用户 + * + * @param userId 用户id + * @return + */ + public static User getUser(Long userId) { + return CacheUtil.get(USER_CACHE, USER_CACHE_ID, userId, () -> userService.getById(userId)); + } + + /** + * 获取用户 + * + * @param tenantId 租户id + * @param account 账号名 + * @return + */ + public static User getUser(String tenantId, String account) { + return CacheUtil.get(USER_CACHE, USER_CACHE_ACCOUNT, tenantId + StringPool.DASH + account, () -> userService.userByAccount(tenantId, account)); + } + +} diff --git a/src/main/java/org/springblade/common/config/BladeConfiguration.java b/src/main/java/org/springblade/common/config/BladeConfiguration.java new file mode 100644 index 0000000..73975e2 --- /dev/null +++ b/src/main/java/org/springblade/common/config/BladeConfiguration.java @@ -0,0 +1,95 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.config; + + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.oauth2.endpoint.OAuth2SocialEndpoint; +import org.springblade.core.oauth2.endpoint.OAuth2TokenEndPoint; +import org.springblade.core.secure.registry.SecureRegistry; +import org.springblade.core.tool.utils.StringPool; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +/** + * Blade配置 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +public class BladeConfiguration implements WebMvcConfigurer { + + /** + * 安全框架配置 + */ + @Bean + public SecureRegistry secureRegistry() { + SecureRegistry secureRegistry = new SecureRegistry(); + secureRegistry.setEnabled(true); + secureRegistry.excludePathPatterns("/blade-auth/**"); + secureRegistry.excludePathPatterns("/blade-system/tenant/info"); + secureRegistry.excludePathPatterns("/blade-flow/process/resource-view"); + secureRegistry.excludePathPatterns("/blade-flow/process/diagram-view"); + secureRegistry.excludePathPatterns("/blade-flow/manager/check-upload"); + secureRegistry.excludePathPatterns("/doc.html"); + secureRegistry.excludePathPatterns("/swagger-ui.html"); + secureRegistry.excludePathPatterns("/static/**"); + secureRegistry.excludePathPatterns("/blade-auth/**"); + secureRegistry.excludePathPatterns("/open/**"); + secureRegistry.excludePathPatterns("/swagger-resources/**"); + secureRegistry.excludePathPatterns("/druid/**"); + return secureRegistry; + } + + /** + * 跨域配置 + */ + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/**") + .allowedOriginPatterns("*") + .allowedHeaders("*") + .allowedMethods("*") + .maxAge(3600) + .allowCredentials(true); + } + + /** + * 给OAuth2服务端添加前缀 + */ + @Override + public void configurePathMatch(PathMatchConfigurer configurer) { + configurer.addPathPrefix(StringPool.SLASH + AppConstant.APPLICATION_AUTH_NAME, + c -> c.isAnnotationPresent(RestController.class) && ( + OAuth2TokenEndPoint.class.equals(c) || OAuth2SocialEndpoint.class.equals(c)) + ); + } + +} diff --git a/src/main/java/org/springblade/common/config/BladeHandlerConfiguration.java b/src/main/java/org/springblade/common/config/BladeHandlerConfiguration.java new file mode 100644 index 0000000..87f1619 --- /dev/null +++ b/src/main/java/org/springblade/common/config/BladeHandlerConfiguration.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ + +package org.springblade.common.config; + +import lombok.AllArgsConstructor; +import org.springblade.common.handler.BladeScopeModelHandler; +import org.springblade.core.datascope.handler.ScopeModelHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.core.JdbcTemplate; + +/** + * Blade处理器自动配置 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AllArgsConstructor +public class BladeHandlerConfiguration { + + private final JdbcTemplate jdbcTemplate; + + @Bean + public ScopeModelHandler scopeModelHandler() { + return new BladeScopeModelHandler(jdbcTemplate); + } + +} diff --git a/src/main/java/org/springblade/common/config/BladeLogConfiguration.java b/src/main/java/org/springblade/common/config/BladeLogConfiguration.java new file mode 100644 index 0000000..384f3ab --- /dev/null +++ b/src/main/java/org/springblade/common/config/BladeLogConfiguration.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ + +package org.springblade.common.config; + +import lombok.AllArgsConstructor; +import org.springblade.common.event.ApiLogListener; +import org.springblade.common.event.ErrorLogListener; +import org.springblade.common.event.UsualLogListener; +import org.springblade.core.launch.props.BladeProperties; +import org.springblade.core.launch.server.ServerInfo; +import org.springblade.modules.system.service.ILogService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 日志工具自动配置 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AllArgsConstructor +public class BladeLogConfiguration { + + private final ILogService logService; + private final ServerInfo serverInfo; + private final BladeProperties bladeProperties; + + @Bean(name = "apiLogListener") + public ApiLogListener apiLogListener() { + return new ApiLogListener(logService, serverInfo, bladeProperties); + } + + @Bean(name = "errorEventListener") + public ErrorLogListener errorEventListener() { + return new ErrorLogListener(logService, serverInfo, bladeProperties); + } + + @Bean(name = "usualEventListener") + public UsualLogListener usualEventListener() { + return new UsualLogListener(logService, serverInfo, bladeProperties); + } + +} diff --git a/src/main/java/org/springblade/common/config/BladePreviewConfiguration.java b/src/main/java/org/springblade/common/config/BladePreviewConfiguration.java new file mode 100644 index 0000000..e32306d --- /dev/null +++ b/src/main/java/org/springblade/common/config/BladePreviewConfiguration.java @@ -0,0 +1,26 @@ +package org.springblade.common.config; + +import org.springblade.common.filter.PreviewFilter; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 演示配置类 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnProperty(value = "blade.preview.enabled", havingValue = "true") +public class BladePreviewConfiguration { + + /** + * 演示模式配置 + */ + @Bean + public PreviewFilter previewFilter() { + return new PreviewFilter(); + } + + +} diff --git a/src/main/java/org/springblade/common/config/BladeReportConfiguration.java b/src/main/java/org/springblade/common/config/BladeReportConfiguration.java new file mode 100644 index 0000000..3615648 --- /dev/null +++ b/src/main/java/org/springblade/common/config/BladeReportConfiguration.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.config; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Configuration; + +/** + * 报表配置类 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@ConditionalOnProperty(value = "report.enabled", havingValue = "true", matchIfMissing = true) +public class BladeReportConfiguration { + + /** + * 自定义报表可选数据源 + */ +// @Bean +// public ReportDataSource reportDataSource(DataSource dataSource) { +// return new ReportDataSource(dataSource); +// } + +} diff --git a/src/main/java/org/springblade/common/config/SwaggerConfiguration.java b/src/main/java/org/springblade/common/config/SwaggerConfiguration.java new file mode 100644 index 0000000..abe164f --- /dev/null +++ b/src/main/java/org/springblade/common/config/SwaggerConfiguration.java @@ -0,0 +1,104 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.config; + +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springdoc.core.models.GroupedOpenApi; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Swagger配置类 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AllArgsConstructor +@ConditionalOnProperty(value = "swagger.enabled", havingValue = "true", matchIfMissing = true) +public class SwaggerConfiguration { + + @Bean + public GroupedOpenApi authApi() { + return GroupedOpenApi.builder() + .group("授权模块") + .packagesToScan(AppConstant.BASE_PACKAGES + ".core.oauth2", AppConstant.BASE_PACKAGES + ".modules.auth") + .build(); + } + + @Bean + public GroupedOpenApi sysApi() { + return GroupedOpenApi.builder() + .group("系统模块") + .packagesToScan(AppConstant.BASE_PACKAGES + ".modules.system", AppConstant.BASE_PACKAGES + ".modules.resource") + .build(); + } + + @Bean + public GroupedOpenApi operationApi() { + return GroupedOpenApi.builder() + .group("运维模块") + .packagesToScan(AppConstant.BASE_PACKAGES + ".modules.operation", AppConstant.BASE_PACKAGES + ".modules.partner") + .build(); + } + + @Bean + public GroupedOpenApi orderApi() { + return GroupedOpenApi.builder() + .group("工单管理") + .packagesToScan(AppConstant.BASE_PACKAGES + ".modules.order") + .build(); + } + + @Bean + public GroupedOpenApi fittingApplyApi() { + return GroupedOpenApi.builder() + .group("物料申请模块") + .packagesToScan(AppConstant.BASE_PACKAGES + ".modules.fitting", AppConstant.BASE_PACKAGES + ".modules.material") + .build(); + } + + @Bean + public GroupedOpenApi nhApi() { + return GroupedOpenApi.builder() + .group("监控模块") + .packagesToScan(AppConstant.BASE_PACKAGES + ".modules.nh") + .build(); + } + + + @Bean + public GroupedOpenApi flowApi() { + // 创建并返回GroupedOpenApi对象 + return GroupedOpenApi.builder() + .group("工作流模块") + .packagesToScan(AppConstant.BASE_PACKAGES + ".modules.flowable", AppConstant.BASE_PACKAGES + ".modules.apply") + .build(); + } + + +} diff --git a/src/main/java/org/springblade/common/constant/CommonConstant.java b/src/main/java/org/springblade/common/constant/CommonConstant.java new file mode 100644 index 0000000..204198d --- /dev/null +++ b/src/main/java/org/springblade/common/constant/CommonConstant.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.constant; + +import org.springblade.core.launch.constant.AppConstant; + +/** + * 通用常量 + * + * @author Chill + */ +public interface CommonConstant { + + /** + * app name + */ + String APPLICATION_NAME = AppConstant.APPLICATION_NAME_PREFIX + "api"; + + /** + * sword 系统名 + */ + String SWORD_NAME = "sword"; + + /** + * saber 系统名 + */ + String SABER_NAME = "saber"; + + /** + * 顶级父节点id + */ + Long TOP_PARENT_ID = 0L; + + /** + * 顶级父节点名称 + */ + String TOP_PARENT_NAME = "顶级"; + + /** + * 未封存状态值 + */ + Integer NOT_SEALED_ID = 0; + + /** + * 默认密码 + */ + String DEFAULT_PASSWORD = "123456"; + + /** + * 默认密码参数值 + */ + String DEFAULT_PARAM_PASSWORD = "account.initPassword"; + + /** + * 默认排序字段 + */ + String SORT_FIELD = "sort"; + + /** + * 数据权限类型 + */ + Integer DATA_SCOPE_CATEGORY = 1; + + /** + * 接口权限类型 + */ + Integer API_SCOPE_CATEGORY = 2; + + +} diff --git a/src/main/java/org/springblade/common/constant/DictConstant.java b/src/main/java/org/springblade/common/constant/DictConstant.java new file mode 100644 index 0000000..fe41cd3 --- /dev/null +++ b/src/main/java/org/springblade/common/constant/DictConstant.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.constant; + +/** + * 字典常量. + * + * @author zhuangqian + */ +public interface DictConstant { + + String SEX_CODE = "sex"; + + String NOTICE_CODE = "notice"; + + String MENU_CATEGORY_CODE = "menu_category"; + + String BUTTON_FUNC_CODE = "button_func"; + + String YES_NO_CODE = "yes_no"; + + String FLOW_CATEGORY_CODE = "flow_category"; + +} diff --git a/src/main/java/org/springblade/common/constant/LauncherConstant.java b/src/main/java/org/springblade/common/constant/LauncherConstant.java new file mode 100644 index 0000000..66ddf59 --- /dev/null +++ b/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -0,0 +1,102 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.constant; + +import org.springblade.core.launch.constant.AppConstant; + +/** + * 启动常量 + * + * @author Chill + */ +public interface LauncherConstant { + + /** + * sentinel dev 地址 + */ + String SENTINEL_DEV_ADDR = "127.0.0.1:8858"; + + /** + * sentinel prod 地址 + */ + String SENTINEL_PROD_ADDR = "10.211.55.5:8858"; + + /** + * sentinel test 地址 + */ + String SENTINEL_TEST_ADDR = "172.30.0.58:8858"; + + /** + * elk dev 地址 + */ + String ELK_DEV_ADDR = "127.0.0.1:9000"; + + /** + * elk prod 地址 + */ + String ELK_PROD_ADDR = "172.30.0.58:9000"; + + /** + * elk test 地址 + */ + String ELK_TEST_ADDR = "172.30.0.58:9000"; + + /** + * 动态获取sentinel地址 + * + * @param profile 环境变量 + * @return addr + */ + static String sentinelAddr(String profile) { + switch (profile) { + case (AppConstant.PROD_CODE): + return SENTINEL_PROD_ADDR; + case (AppConstant.TEST_CODE): + return SENTINEL_TEST_ADDR; + default: + return SENTINEL_DEV_ADDR; + } + } + + /** + * 动态获取elk地址 + * + * @param profile 环境变量 + * @return addr + */ + static String elkAddr(String profile) { + switch (profile) { + case (AppConstant.PROD_CODE): + return ELK_PROD_ADDR; + case (AppConstant.TEST_CODE): + return ELK_TEST_ADDR; + default: + return ELK_DEV_ADDR; + } + } + + +} diff --git a/src/main/java/org/springblade/common/constant/MonitorConstants.java b/src/main/java/org/springblade/common/constant/MonitorConstants.java new file mode 100644 index 0000000..0c0c4e8 --- /dev/null +++ b/src/main/java/org/springblade/common/constant/MonitorConstants.java @@ -0,0 +1,39 @@ +package org.springblade.common.constant; + +public class MonitorConstants { + + + /** + * 状态 0、正常 1、关闭 2、屏蔽 3、删除 + */ + public static String NORMAL = "0"; + + public static String CLOSE = "1"; + + public static String SHIELD = "2"; + + public static String DELETE = "3"; + + public static String ALARM_ST_NOT_CONFIRMED = "1"; + public static String ALARM_ST_UNHANDLED = "2"; + public static String ALARM_ST_HANDLING = "3"; + public static String ALARM_ST_SOLVED = "4"; + + /** + * 未关闭 + */ + public static String ALARM_CLOSE_NO = "1"; + /** + * 已关闭 + */ + public static String ALARM_CLOSE_YES = "2"; + + /** + * 告警类型:1故障、2告警、3提示、4建议 level'; + */ + public static String ALARM_TYPE_FAULT = "1"; + public static String ALARM_TYPE_WARN = "2"; + public static String ALARM_TYPE_TIPS = "3"; + public static String ALARM_TYPE_ADVICE = "4"; + +} diff --git a/src/main/java/org/springblade/common/constant/NhConstants.java b/src/main/java/org/springblade/common/constant/NhConstants.java new file mode 100644 index 0000000..8c24bef --- /dev/null +++ b/src/main/java/org/springblade/common/constant/NhConstants.java @@ -0,0 +1,38 @@ +package org.springblade.common.constant; + +/** + * 通用常量信息 + * sadasd + * @author ruoyi + */ +public class NhConstants +{ + + public static final String HQ_ID = "101"; + + public static final String SYS_TYPE_GINLONG = "0"; + public static final String SYS_TYPE_AISWEI = "1"; + public static final String SYS_TYPE_GOODWE = "2"; + public static final String SYS_TYPE_SAJ = "5"; + + public static final int STATION_STATUS_NORMAL = 1; + public static final int STATION_STATUS_WARN = 2; + public static final int STATION_STATUS_ONLINE = 3; + + //低效电站状态 + public static final int INEFFICIENT_STATION_STATION_TODO = 0; + //已转运维 + public static final int INEFFICIENT_STATION_STATION_DONE = 0; + + /** + * 直流 + */ + public static final String UAP_TYPE_DC = "1"; + /** + * 交流 + */ + public static final String UAP_TYPE_AC = "2"; + + public static final String UAP_LIST_TEMP_KEY = "UAP_LIST_TEMP_KEY"; + +} diff --git a/src/main/java/org/springblade/common/constant/TenantConstant.java b/src/main/java/org/springblade/common/constant/TenantConstant.java new file mode 100644 index 0000000..177a333 --- /dev/null +++ b/src/main/java/org/springblade/common/constant/TenantConstant.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.constant; + +import java.util.Arrays; +import java.util.List; + +/** + * 租户常量 + * + * @author Chill + */ +public interface TenantConstant { + + /** + * 租户默认密码KEY + */ + String PASSWORD_KEY = "tenant.default.password"; + + /** + * 租户默认账号额度KEY + */ + String ACCOUNT_NUMBER_KEY = "tenant.default.accountNumber"; + + /** + * 租户默认菜单集合KEY + */ + String ACCOUNT_MENU_CODE_KEY = "tenant.default.menuCode"; + + /** + * 租户默认密码 + */ + String DEFAULT_PASSWORD = "123456"; + + /** + * 租户授权码默认16位密钥 + */ + String DES_KEY = "0000000000000000"; + + /** + * 租户默认账号额度 + */ + Integer DEFAULT_ACCOUNT_NUMBER = -1; + + /** + * 租户默认菜单集合 + */ + List MENU_CODES = Arrays.asList( + "desk", "flow", "work", "monitor", "resource", "role", "user", "dept", "dictbiz", "topmenu" + ); + +} diff --git a/src/main/java/org/springblade/common/enums/DictBizEnum.java b/src/main/java/org/springblade/common/enums/DictBizEnum.java new file mode 100644 index 0000000..cce9f84 --- /dev/null +++ b/src/main/java/org/springblade/common/enums/DictBizEnum.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 业务字典枚举类 + * + * @author Chill + */ +@Getter +@AllArgsConstructor +public enum DictBizEnum { + + /** + * 测试 + */ + TEST("test"), + ; + + final String name; + +} diff --git a/src/main/java/org/springblade/common/enums/DictEnum.java b/src/main/java/org/springblade/common/enums/DictEnum.java new file mode 100644 index 0000000..4fe1f1b --- /dev/null +++ b/src/main/java/org/springblade/common/enums/DictEnum.java @@ -0,0 +1,133 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 系统字典枚举类 + * + * @author Chill + */ +@Getter +@AllArgsConstructor +public enum DictEnum { + + /** + * 物料类型 + */ + WL_TYPE("wl_type"), + BRAND("device_brand"), + /** + * 工单状态 + */ + ORDER_STATUS("order_status"), + ORDER_TYPE("order_type"), + + /** + * 方案类型 + */ + SETTING_PLAN_TYPE("setting_plan_type"), + /** + * 备案方式 + */ + SETTING_RECORD_TYPE("setting_record_type"), + /** + * 客户类型 + */ + SETTING_CUSTOMER_TYPE("setting_customer_type"), + /** + * 电站状态 + */ + POWER_STATION_STATUS("power_station_status"), + /** + * 性别 + */ + SEX("sex"), + /** + * 通知类型 + */ + NOTICE("notice"), + /** + * 菜单类型 + */ + MENU_CATEGORY("menu_category"), + /** + * 按钮功能 + */ + BUTTON_FUNC("button_func"), + /** + * 是否 + */ + YES_NO("yes_no"), + /** + * 流程类型 + */ + FLOW("flow"), + /** + * 机构类型 + */ + ORG_CATEGORY("org_category"), + /** + * 数据权限 + */ + DATA_SCOPE_TYPE("data_scope_type"), + /** + * 接口权限 + */ + API_SCOPE_TYPE("api_scope_type"), + /** + * 权限类型 + */ + SCOPE_CATEGORY("scope_category"), + /** + * 对象存储类型 + */ + OSS("oss"), + /** + * 短信服务类型 + */ + SMS("sms"), + /** + * 岗位类型 + */ + POST_CATEGORY("post_category"), + /** + * 行政区划 + */ + REGION("region"), + /** + * 用户平台 + */ + USER_TYPE("user_type"), + + DEVICE_BRAND("device_brand"), + ; + + final String name; + +} diff --git a/src/main/java/org/springblade/common/enums/SysType.java b/src/main/java/org/springblade/common/enums/SysType.java new file mode 100644 index 0000000..bb53099 --- /dev/null +++ b/src/main/java/org/springblade/common/enums/SysType.java @@ -0,0 +1,29 @@ +package org.springblade.common.enums; + +import org.springblade.common.constant.NhConstants; + +public class SysType { + + private final String sysType; + + public SysType(String sysType) { + this.sysType = sysType; + } + + public String getName() { + switch (sysType) { + case NhConstants.SYS_TYPE_GINLONG: + return "锦浪"; + case NhConstants.SYS_TYPE_GOODWE: + return "固德威"; + case NhConstants.SYS_TYPE_AISWEI: + return "爱士惟"; + } + return "X"; + } + + @Override + public String toString() { + return getName(); + } +} diff --git a/src/main/java/org/springblade/common/event/ApiLogListener.java b/src/main/java/org/springblade/common/event/ApiLogListener.java new file mode 100644 index 0000000..cd1c7f3 --- /dev/null +++ b/src/main/java/org/springblade/common/event/ApiLogListener.java @@ -0,0 +1,69 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ + +package org.springblade.common.event; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.launch.props.BladeProperties; +import org.springblade.core.launch.server.ServerInfo; +import org.springblade.core.log.constant.EventConstant; +import org.springblade.core.log.event.ApiLogEvent; +import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.utils.LogAbstractUtil; +import org.springblade.modules.system.service.ILogService; +import org.springframework.context.event.EventListener; +import org.springframework.core.annotation.Order; +import org.springframework.scheduling.annotation.Async; + +import java.util.Map; + + +/** + * 异步监听日志事件 + * + * @author Chill + */ +@Slf4j +@AllArgsConstructor +public class ApiLogListener { + + private final ILogService logService; + private final ServerInfo serverInfo; + private final BladeProperties bladeProperties; + + + @Async + @Order + @EventListener(ApiLogEvent.class) + public void saveApiLog(ApiLogEvent event) { + Map source = (Map) event.getSource(); + LogApi logApi = (LogApi) source.get(EventConstant.EVENT_LOG); + LogAbstractUtil.addOtherInfoToLog(logApi, bladeProperties, serverInfo); + logService.saveApiLog(logApi); + } + +} diff --git a/src/main/java/org/springblade/common/event/ErrorLogListener.java b/src/main/java/org/springblade/common/event/ErrorLogListener.java new file mode 100644 index 0000000..6b22a6d --- /dev/null +++ b/src/main/java/org/springblade/common/event/ErrorLogListener.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.event; + + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.launch.props.BladeProperties; +import org.springblade.core.launch.server.ServerInfo; +import org.springblade.core.log.constant.EventConstant; +import org.springblade.core.log.event.ErrorLogEvent; +import org.springblade.core.log.model.LogError; +import org.springblade.core.log.utils.LogAbstractUtil; +import org.springblade.modules.system.service.ILogService; +import org.springframework.context.event.EventListener; +import org.springframework.core.annotation.Order; +import org.springframework.scheduling.annotation.Async; + +import java.util.Map; + +/** + * 异步监听错误日志事件 + * + * @author Chill + */ +@Slf4j +@AllArgsConstructor +public class ErrorLogListener { + + private final ILogService logService; + private final ServerInfo serverInfo; + private final BladeProperties bladeProperties; + + @Async + @Order + @EventListener(ErrorLogEvent.class) + public void saveErrorLog(ErrorLogEvent event) { + try { + Map source = (Map) event.getSource(); + LogError logError = (LogError) source.get(EventConstant.EVENT_LOG); + LogAbstractUtil.addOtherInfoToLog(logError, bladeProperties, serverInfo); + logService.saveErrorLog(logError); + } catch (Exception e) { + // 可以根据需要进行更多的异常处理,例如发送警报等 + log.error("保存错误日志时发生异常", e); + } + } +} diff --git a/src/main/java/org/springblade/common/event/UsualLogListener.java b/src/main/java/org/springblade/common/event/UsualLogListener.java new file mode 100644 index 0000000..ee682ab --- /dev/null +++ b/src/main/java/org/springblade/common/event/UsualLogListener.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.event; + + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.launch.props.BladeProperties; +import org.springblade.core.launch.server.ServerInfo; +import org.springblade.core.log.constant.EventConstant; +import org.springblade.core.log.event.UsualLogEvent; +import org.springblade.core.log.model.LogUsual; +import org.springblade.core.log.utils.LogAbstractUtil; +import org.springblade.modules.system.service.ILogService; +import org.springframework.context.event.EventListener; +import org.springframework.core.annotation.Order; +import org.springframework.scheduling.annotation.Async; + +import java.util.Map; + +/** + * 异步监听日志事件 + * + * @author Chill + */ +@Slf4j +@AllArgsConstructor +public class UsualLogListener { + + private final ILogService logService; + private final ServerInfo serverInfo; + private final BladeProperties bladeProperties; + + @Async + @Order + @EventListener(UsualLogEvent.class) + public void saveUsualLog(UsualLogEvent event) { + Map source = (Map) event.getSource(); + LogUsual logUsual = (LogUsual) source.get(EventConstant.EVENT_LOG); + LogAbstractUtil.addOtherInfoToLog(logUsual, bladeProperties, serverInfo); + logService.saveUsualLog(logUsual); + } + +} diff --git a/src/main/java/org/springblade/common/filter/LoggingInterceptor.java b/src/main/java/org/springblade/common/filter/LoggingInterceptor.java new file mode 100644 index 0000000..ce65b3c --- /dev/null +++ b/src/main/java/org/springblade/common/filter/LoggingInterceptor.java @@ -0,0 +1,34 @@ +package org.springblade.common.filter; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpRequest; +import org.springframework.http.client.ClientHttpRequestExecution; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.ClientHttpResponse; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.util.stream.Collectors; + +public class LoggingInterceptor implements ClientHttpRequestInterceptor { + + static Logger LOGGER = LoggerFactory.getLogger(LoggingInterceptor.class); + private static final boolean debug = false; + + @Override + public ClientHttpResponse intercept(HttpRequest req, byte[] reqBody, ClientHttpRequestExecution ex) throws IOException { + if (debug) { + LOGGER.debug("Request body: {}", new String(reqBody, StandardCharsets.UTF_8)); + } + ClientHttpResponse response = ex.execute(req, reqBody); + InputStreamReader isr = new InputStreamReader(response.getBody(), StandardCharsets.UTF_8); + String body = new BufferedReader(isr).lines().collect(Collectors.joining("\n")); + if (debug) { + LOGGER.debug("Response body: {}", body); + } + return response; + } +} diff --git a/src/main/java/org/springblade/common/filter/PreviewFilter.java b/src/main/java/org/springblade/common/filter/PreviewFilter.java new file mode 100644 index 0000000..411aa94 --- /dev/null +++ b/src/main/java/org/springblade/common/filter/PreviewFilter.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.filter; + +import jakarta.servlet.*; +import jakarta.servlet.http.HttpServletRequest; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +/** + * 演示过滤器 + * + * @author Chill + */ +public class PreviewFilter implements Filter { + + private static final List KEYS = new ArrayList<>(); + + static { + KEYS.add("notice"); + KEYS.add("process"); + KEYS.add("work"); + KEYS.add("token"); + } + + + @Override + public void init(FilterConfig filterConfig) { + } + + + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { + + HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; + String path = httpServletRequest.getServletPath(); + String method = httpServletRequest.getMethod(); + + String get = "GET"; + if (method.equals(get) || KEYS.stream().anyMatch(path::contains)) { + filterChain.doFilter(servletRequest, servletResponse); + } else { + throw new RuntimeException("演示环境暂时无法操作!"); + } + + } + + @Override + public void destroy() { + } +} diff --git a/src/main/java/org/springblade/common/handler/BladeScopeModelHandler.java b/src/main/java/org/springblade/common/handler/BladeScopeModelHandler.java new file mode 100644 index 0000000..6a50397 --- /dev/null +++ b/src/main/java/org/springblade/common/handler/BladeScopeModelHandler.java @@ -0,0 +1,130 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.handler; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.datascope.constant.DataScopeConstant; +import org.springblade.core.datascope.handler.ScopeModelHandler; +import org.springblade.core.datascope.model.DataScopeModel; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * BladeScopeModelHandler + * + * @author Chill + */ +//若开启动态数据源功能,则加上@Master注解指定权限数据库为主库 +//@Master +@RequiredArgsConstructor +public class BladeScopeModelHandler implements ScopeModelHandler { + + private static final String SCOPE_CACHE_CODE = "dataScope:code:"; + private static final String SCOPE_CACHE_CLASS = "dataScope:class:"; + private static final String DEPT_CACHE_ANCESTORS = "dept:ancestors:"; + private static final DataScopeModel SEARCHED_DATA_SCOPE_MODEL = new DataScopeModel(Boolean.TRUE); + + private final JdbcTemplate jdbcTemplate; + + /** + * 获取数据权限 + * + * @param mapperId 数据权限mapperId + * @param roleId 用户角色集合 + * @return DataScopeModel + */ + @Override + public DataScopeModel getDataScopeByMapper(String mapperId, String roleId) { + List args = new ArrayList<>(Collections.singletonList(mapperId)); + List roleIds = Func.toLongList(roleId); + args.addAll(roleIds); + // 增加searched字段防止未配置的参数重复读库导致缓存击穿 + // 后续若有新增配置则会清空缓存重新加载 + DataScopeModel dataScope = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CLASS, mapperId + StringPool.COLON + roleId, DataScopeModel.class, Boolean.FALSE); + if (dataScope == null || !dataScope.getSearched()) { + List list = jdbcTemplate.query(DataScopeConstant.dataByMapper(roleIds.size()), args.toArray(), new BeanPropertyRowMapper<>(DataScopeModel.class)); + if (CollectionUtil.isNotEmpty(list)) { + dataScope = list.iterator().next(); + dataScope.setSearched(Boolean.TRUE); + } else { + dataScope = SEARCHED_DATA_SCOPE_MODEL; + } + CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CLASS, mapperId + StringPool.COLON + roleId, dataScope, Boolean.FALSE); + } + return StringUtil.isNotBlank(dataScope.getResourceCode()) ? dataScope : null; + } + + /** + * 获取数据权限 + * + * @param code 数据权限资源编号 + * @return DataScopeModel + */ + @Override + public DataScopeModel getDataScopeByCode(String code) { + DataScopeModel dataScope = CacheUtil.get(SYS_CACHE, SCOPE_CACHE_CODE, code, DataScopeModel.class, Boolean.FALSE); + // 增加searched字段防止未配置的参数重复读库导致缓存击穿 + // 后续若有新增配置则会清空缓存重新加载 + if (dataScope == null || !dataScope.getSearched()) { + List list = jdbcTemplate.query(DataScopeConstant.DATA_BY_CODE, new Object[]{code}, new BeanPropertyRowMapper<>(DataScopeModel.class)); + if (CollectionUtil.isNotEmpty(list)) { + dataScope = list.iterator().next(); + dataScope.setSearched(Boolean.TRUE); + } else { + dataScope = SEARCHED_DATA_SCOPE_MODEL; + } + CacheUtil.put(SYS_CACHE, SCOPE_CACHE_CODE, code, dataScope, Boolean.FALSE); + } + return StringUtil.isNotBlank(dataScope.getResourceCode()) ? dataScope : null; + } + + /** + * 获取部门子级 + * + * @param deptId 部门id + * @return deptIds + */ + @Override + public List getDeptAncestors(Long deptId) { + List ancestors = CacheUtil.get(SYS_CACHE, DEPT_CACHE_ANCESTORS, deptId, List.class); + if (CollectionUtil.isEmpty(ancestors)) { + ancestors = jdbcTemplate.queryForList(DataScopeConstant.DATA_BY_DEPT, new Object[]{deptId}, Long.class); + CacheUtil.put(SYS_CACHE, DEPT_CACHE_ANCESTORS, deptId, ancestors); + } + return ancestors; + } +} diff --git a/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java b/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java new file mode 100644 index 0000000..a0752ec --- /dev/null +++ b/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java @@ -0,0 +1,53 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.common.launch; + +import org.springblade.common.constant.LauncherConstant; +import org.springblade.core.auto.service.AutoService; +import org.springblade.core.launch.service.LauncherService; +import org.springblade.core.launch.utils.PropsUtil; +import org.springframework.boot.builder.SpringApplicationBuilder; + +import java.util.Properties; + +/** + * 启动参数拓展 + * + * @author smallchil + */ +@AutoService(LauncherService.class) +public class LauncherServiceImpl implements LauncherService { + + @Override + public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) { + Properties props = System.getProperties(); + PropsUtil.setProperty(props, "spring.cloud.sentinel.transport.dashboard", LauncherConstant.sentinelAddr(profile)); + PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false"); + // 开启elk日志 + //PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile)); + } + +} diff --git a/src/main/java/org/springblade/common/utils/AsyncTaskRunner.java b/src/main/java/org/springblade/common/utils/AsyncTaskRunner.java new file mode 100644 index 0000000..7cda1ef --- /dev/null +++ b/src/main/java/org/springblade/common/utils/AsyncTaskRunner.java @@ -0,0 +1,9 @@ +package org.springblade.common.utils; + +import java.util.List; + +public interface AsyncTaskRunner { + + void run(List runnables); + +} diff --git a/src/main/java/org/springblade/common/utils/CommonUtil.java b/src/main/java/org/springblade/common/utils/CommonUtil.java new file mode 100644 index 0000000..1e2b88a --- /dev/null +++ b/src/main/java/org/springblade/common/utils/CommonUtil.java @@ -0,0 +1,374 @@ +package org.springblade.common.utils; + +import cn.hutool.core.math.MathUtil; +import com.google.common.collect.Maps; +import org.apache.commons.compress.utils.Lists; +import org.springblade.core.http.util.HttpUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.DigestUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springframework.util.ReflectionUtils; + +import java.lang.reflect.Field; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.*; +import java.time.temporal.TemporalAdjusters; +import java.util.*; + +/** + * 通用工具类 + * + * @author Chill + */ +public class CommonUtil { + + public static Double sum(Double num1, Double num2) { + Double sum = 0D; + if(num1!=null){ + sum = sum+num1; + } + if(num2!=null){ + sum = sum+num2; + } + return sum; + } + + public static int getDaysInCurrentMonth() { + // 获取当前日期 + LocalDate currentDate = LocalDate.now(); + // 获取当前月的最后一天 + LocalDate lastDayOfMonth = currentDate.with(TemporalAdjusters.lastDayOfMonth()); + // 返回当前月的天数 + return lastDayOfMonth.getDayOfMonth(); + } + + public static List splitOutStationIds(String outStationIds) { + if(StringUtil.isBlank(outStationIds)) return null; + String[] arr = outStationIds.split(","); + return Arrays.asList(arr); + } + + public static List retainNum(List list, int num) { + List result = Lists.newArrayList(); + if(CollectionUtil.isEmpty(list)){ + return list; + } + for(Object item : list){ + if(item instanceof Double){ + String formattedValue = String.format("%."+num+"f", item); + result.add(formattedValue); + }else{ + result.add(item); + } + }; + return result; + } + + public static Double retainDoubleNum(Double e, int num) { + String formattedValue = String.format("%."+num+"f", e); + return Double.parseDouble(formattedValue); + } + + public static boolean monthBeginLessThanDays(int days, Date baseDate) { + int date = baseDate.getDate(); + return date <= days; + } + public static boolean yearBeginLessThanDays(int days, Date baseDate) { + Calendar c = Calendar.getInstance(); + c.setTime(baseDate); + return c.get(Calendar.DAY_OF_YEAR) <= days; + } + + public static List hourListFrom0() { + List ret = new ArrayList<>(); + for (int i = 0; i < 24; i++) { + ret.add(String.format("%d:00", i)); + } + return ret; + } + + public static List hourListFrom1() { + List ret = new ArrayList<>(); + for (int i = 0; i < 24; i++) { + ret.add(String.format("%02d", i + 1)); + } + return ret; + } + + public static Double getDoubleByFile(Class clazz, MonitorInverterDailyStatEntity entity, String key) { + Double ret=null; + try{ + Field field = clazz.getDeclaredField(key); + field.setAccessible(true); + + Object value = field.get(entity); + return (Double) value; + }catch (Exception e){ + e.printStackTrace(); + } + + return ret; + } + + public static List repeatNum(int ticks, Double val) { + List ret = new ArrayList<>(); + for (int i = 0; i < ticks; i++) { + ret.add(val); + } + return ret; + } + + public static String queryWeather(String area){ + String host = "https://weather01.market.alicloudapi.com"; + String path = "/area-to-weather"; + String method = "GET"; + String appcode = "84f9472ee67349189cd5f61c1805a430"; + Map headers = Maps.newHashMap(); + //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105 + headers.put("Authorization", "APPCODE " + appcode); + Map querys = Maps.newHashMap(); + querys.put("area", area); + querys.put("need3HourForcast", "0"); + querys.put("needAlarm", "0"); + querys.put("needHourData", "0"); + querys.put("needIndex", "0"); + querys.put("needMoreDay", "0"); + return HttpUtil.get(host+path,headers,querys); + } + + public static String queryWeatherByMonth(String area,String month){ + String host = "https://weather01.market.alicloudapi.com"; + String path = "/weatherhistory"; + String method = "GET"; + String appcode = "84f9472ee67349189cd5f61c1805a430"; + Map headers = Maps.newHashMap(); + //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105 + headers.put("Authorization", "APPCODE " + appcode); + Map querys = Maps.newHashMap(); + querys.put("area", area); + querys.put("month", month); + return HttpUtil.get(host+path,headers,querys); + } + + public static void reflectSetField(Object r, String fieldName, Object value) { + try{ + Field field= r.getClass().getDeclaredField(fieldName); + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field, r,value); + }catch (Exception e){ + e.printStackTrace(); + } + } + public static Object reflectGetField(Object r, String fieldName) { + try{ + Field field= r.getClass().getDeclaredField(fieldName); + ReflectionUtils.makeAccessible(field); + return ReflectionUtils.getField(field, r); + }catch (Exception e){ + + } + return null; + } + + public static BigDecimal getPreHourMax(Map resMap, int hour) { + BigDecimal max = BigDecimal.ZERO; + for(int i=(hour-1); i>0; i--){ + BigDecimal bigDecimal = new BigDecimal(resMap.get("h" + i).toString()); + if(bigDecimal!=null && bigDecimal.compareTo(max) > 0){ + max = bigDecimal; + } + } + return max; + } + + public static String assembleIUData(String ukey,String iKey,int max,Object detail){ + List list = Lists.newArrayList(); + for(int i=1;i<=max;i++){ + Object iPvObj = CommonUtil.reflectGetField(detail,iKey+i); + Object uPvObj = CommonUtil.reflectGetField(detail,ukey+i); + if(iPvObj==null||uPvObj==null){ + break; + } + if(iPvObj.equals(0d) && uPvObj.equals(0d)){ + break; + } + list.add(uPvObj+":"+iPvObj); + } + return String.join("|", list); + } + + public static void copyFieldToOther(Object sourceObj,String sourceField,Object toObj,String toField){ + Object sourceVal = CommonUtil.reflectGetField(sourceObj,sourceField); + CommonUtil.reflectSetField(toObj,toField,sourceVal); + } + + /** + * @param start + * @return + */ + public static String calDuringToNow(Date start){ + + String today = DateUtil.format(new Date(),"yyyyMMdd"); + Date startDate = DateUtil.parse(today+"080000","yyyyMMddHHmmss"); + + if(start==null){ + start = startDate; + } + + if(start.after(startDate)){ + startDate = start; + } + + Long now = System.currentTimeMillis(); + Long startTime = startDate.getTime(); + long during = (now - startTime)/1000; + return convertDuring(during); + } + + public static String convertDuring(Long during){ + if(during==null){ + return ""; + } + long day = during/(24*3600); + during = during%(24*3600); + long hour = during/3600; + during = during%(3600); + long min = during/60; + + StringBuilder sb = new StringBuilder(); + if(day>0){ + sb.append(day+"天"); + } + if(hour>0){ + sb.append(hour+"时"); + } + if(min>0){ + sb.append(min+"分"); + } + return sb.toString(); + } + + public static int getVendorIndex(Map ctx){ + if(ctx.containsKey("index")){ + int index = (int) ctx.get("index"); + return index; + }else{ + return 1; + } + } + + public static Map getCtx(int i){ + Map ctx = Maps.newHashMap(); + ctx.put("index",i); + return ctx; + } + + public static List assembleIdsList(List list,int size) { + List result = Lists.newArrayList(); + int page = list.size()/size; + if(list.size()%size>0){ + page++; + } + for(int i=0;i=list.size()){ + last = list.size(); + } + List sublist = list.subList(i*size,last); + result.add(StringUtil.join(sublist,",")); + } + return result; + } + + public static Double round(Double number,int precision) { + BigDecimal bigDecimal = new BigDecimal(number); + // 四舍五入到两位有效数字 + bigDecimal = bigDecimal.round(new java.math.MathContext(precision, RoundingMode.HALF_UP)); + // 转换回double类型 + return bigDecimal.doubleValue(); + } + + public static Double setScale(Double number,int precision) { + BigDecimal bigDecimal = new BigDecimal(number); + // 四舍五入到两位有效数字 + bigDecimal = bigDecimal.setScale(precision,RoundingMode.HALF_UP); + // 转换回double类型 + return bigDecimal.doubleValue(); + } + public static boolean isOutTime(Long time,int min){ + if(time==null) return true; + + long during = System.currentTimeMillis() - time; + //超过15分钟 + if(during>min*60*1000){ + return true; + } + + return false; + } + + public static Date getNowHour(){ + // 获取当前日期和时间 + LocalDateTime now = LocalDateTime.now(); + int c = now.getMinute()/15; + // 获取当前小时的整点时间 + LocalTime currentHour = LocalTime.of(now.getHour(), c*15); + LocalDateTime currentHourDateTime = LocalDateTime.of(now.toLocalDate(), currentHour); + // 将LocalDateTime转换为ZonedDateTime + ZonedDateTime zonedDateTime = currentHourDateTime.atZone(ZoneId.systemDefault()); + Instant instant = zonedDateTime.toInstant(); + // 将Instant转换为Date + Date date = Date.from(instant); + return date; + } + + public static String genSign(Map paramMap){ + TreeMap treeMap = Maps.newTreeMap(); + paramMap.forEach((key, value) -> { + treeMap.put(key, value); + }); + return genSign(treeMap); + } + + /** + * Generate Sign + * @return String + */ + public static String genSign(TreeMap paramMap) { + StringBuilder data = new StringBuilder(); + paramMap.forEach((key, value) -> { + if (StringUtil.isNotBlank(data.toString())) { + data.append(","); + } + data.append(key).append("=").append(value); + }); + try { + return DigestUtil.sha256Hex(data.toString()); + } catch (Exception e) { + return null; + } + } + + public static void main(String[] args) { +// { +// "aqiLevel": "1", +// "wind_direction": "无持续风向", +// "aqi": "40", +// "wind_power": "微风", +// "area": "丽江", +// "time": "20160101", +// "min_temperature": "1", +// "max_temperature": "15", +// "aqiInfo": "优", +// "weather": "多云" +// }, +// System.out.println(queryWeatherByMonth("合肥","202405")); +// System.out.println(DateUtil.formatDateTime(getNowHour())); + TreeMap paramMap = Maps.newTreeMap(); + paramMap.put("appId", "123456789"); + System.out.println(genSign(paramMap)); + } +} diff --git a/src/main/java/org/springblade/common/utils/ListUtils.java b/src/main/java/org/springblade/common/utils/ListUtils.java new file mode 100644 index 0000000..39461c7 --- /dev/null +++ b/src/main/java/org/springblade/common/utils/ListUtils.java @@ -0,0 +1,47 @@ +package org.springblade.common.utils; + +import cn.hutool.core.collection.CollectionUtil; + +import java.util.Collection; +import java.util.Iterator; +import java.util.List; + +public class ListUtils { + + public static boolean isEqualList(final Collection list1, final Collection list2) { + if (list1 == list2) { + return true; + } + if (list1 == null || list2 == null || list1.size() != list2.size()) { + return false; + } + + Iterator it1 = list1.iterator(); + Iterator it2 = list2.iterator(); + Object obj1, obj2; + + while (it1.hasNext() && it2.hasNext()) { + obj1 = it1.next(); + obj2 = it2.next(); + + if (!(obj1 == null ? obj2 == null : obj1.equals(obj2))) { + return false; + } + } + + return !(it1.hasNext() || it2.hasNext()); + } + + public static List> maxParts(List all, int maxParts) { + int partSize = all.size() / maxParts; + if (partSize == 0) { + partSize = 1; + } + return CollectionUtil.split(all ,partSize); + } + + public static List> split(List all, int size) { + return org.apache.commons.collections4.ListUtils.partition(all, size); + } + +} diff --git a/src/main/java/org/springblade/common/utils/MonitorTask.java b/src/main/java/org/springblade/common/utils/MonitorTask.java new file mode 100644 index 0000000..1359580 --- /dev/null +++ b/src/main/java/org/springblade/common/utils/MonitorTask.java @@ -0,0 +1,35 @@ +package org.springblade.common.utils; + +import java.util.Date; +import java.util.Objects; + +public class MonitorTask { + private final String taskId; + private final Date requestTime; + + public MonitorTask(String taskId) { + this.taskId = taskId; + this.requestTime = new Date(); + } + + public String getTaskId() { + return taskId; + } + + public Date getRequestTime() { + return requestTime; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + MonitorTask that = (MonitorTask) o; + return Objects.equals(taskId, that.taskId); + } + + @Override + public int hashCode() { + return Objects.hash(taskId); + } +} diff --git a/src/main/java/org/springblade/common/utils/MultiAsyncTaskRunner.java b/src/main/java/org/springblade/common/utils/MultiAsyncTaskRunner.java new file mode 100644 index 0000000..4a02b8b --- /dev/null +++ b/src/main/java/org/springblade/common/utils/MultiAsyncTaskRunner.java @@ -0,0 +1,60 @@ +package org.springblade.common.utils; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.CountDownLatch; + +public class MultiAsyncTaskRunner implements AsyncTaskRunner { + + private final Runnable taskCleaner; + private volatile boolean run; + private static final Logger log = LoggerFactory.getLogger(MultiAsyncTaskRunner.class); + + public MultiAsyncTaskRunner(String taskId, Runnable taskCleaner) { + this.taskCleaner = taskCleaner; + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + if (!run) { + log.error("task might hang, task.id: {}", taskId, new Exception()); + taskCleaner.run(); + } + } + }, 30 * 1000); + } + + @Override + public void run(List runnableList) { + run = true; + if (CollectionUtils.isEmpty(runnableList)) { + taskCleaner.run(); + return; + } + CountDownLatch latch = new CountDownLatch(runnableList.size()); + for (Runnable runnable : runnableList) { + new Thread(new Runnable() { + @Override + public void run() { + try { + runnable.run(); + } finally { + latch.countDown(); + } + } + }).start(); + } + try { + latch.await(); + } catch (InterruptedException e) { + // ignore + } finally { + taskCleaner.run(); + } + } +} diff --git a/src/main/java/org/springblade/common/utils/NopTaskRunner.java b/src/main/java/org/springblade/common/utils/NopTaskRunner.java new file mode 100644 index 0000000..680abd5 --- /dev/null +++ b/src/main/java/org/springblade/common/utils/NopTaskRunner.java @@ -0,0 +1,9 @@ +package org.springblade.common.utils; + +import java.util.List; + +public class NopTaskRunner implements AsyncTaskRunner { + @Override + public void run(List runnables) { + } +} diff --git a/src/main/java/org/springblade/common/utils/TaskControl.java b/src/main/java/org/springblade/common/utils/TaskControl.java new file mode 100644 index 0000000..a60a962 --- /dev/null +++ b/src/main/java/org/springblade/common/utils/TaskControl.java @@ -0,0 +1,97 @@ +package org.springblade.common.utils; + +import cn.hutool.core.util.RandomUtil; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.tool.utils.DateUtil; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; + +public class TaskControl { + + private static final Map tasks = new HashMap<>(); + private static final Map asyncTasks = new HashMap<>(); + private static final Logger log = LoggerFactory.getLogger(TaskControl.class); + private static final Object singleTaskLock = new Object(); + private static final Object asyncSingleTaskLock = new Object(); + + // 创建一个固定大小的线程池 + public static final ExecutorService executor = Executors.newFixedThreadPool(10); + + public static void runTask(String taskId, Runnable runnable) { + executor.submit(runnable); + } + + public static void newSingleInstanceTask(String taskId, Runnable runnable) { + synchronized (singleTaskLock) { + MonitorTask monitorTask = tasks.get(taskId); + if (monitorTask != null) { + log.info("task is still running, id:{}, req.time:{}", taskId, DateUtil.format(monitorTask.getRequestTime(), "yyyy-MM-dd HH:mm")); + } else { + tasks.put(taskId, new MonitorTask(taskId)); + } + } + try { + runnable.run(); + } finally { + synchronized (singleTaskLock) { + tasks.remove(taskId); + } + } + } + + public static AsyncTaskRunner newSingleInstanceTask(String taskId) { + synchronized (asyncSingleTaskLock) { + MonitorTask task = asyncTasks.get(taskId); + if (task != null) { + return new NopTaskRunner(); + } + asyncTasks.put(taskId, new MonitorTask(taskId)); + return new MultiAsyncTaskRunner(taskId, new Runnable() { + @Override + public void run() { + synchronized (asyncSingleTaskLock) { + asyncTasks.remove(taskId); + } + } + }); + } + } + + +// public static void main(String[] args) { +// // 创建一个固定大小为4的线程池 +// ExecutorService executor = Executors.newFixedThreadPool(10); +// +// // 提交任务到线程池 +// for (int i = 0; i < 100; i++) { +// int finalI = i; // 用于在lambda表达式中捕获变量 +// executor.submit(() -> { +// try { +// Thread.sleep(RandomUtil.randomInt(500,3000)); +// } catch (InterruptedException e) { +// throw new RuntimeException(e); +// } +// System.out.println("Task " + finalI + " executed by " + Thread.currentThread().getName()); +// }); +// } +// +// // 关闭线程池,不再接受新任务,等待现有任务完成 +// executor.shutdown(); +// try { +// // 等待线程池关闭,最多等待1分钟 +// if (!executor.awaitTermination(60, TimeUnit.SECONDS)) { +// // 超时后,尝试立即关闭所有正在执行的任务 +// executor.shutdownNow(); +// } +// } catch (InterruptedException e) { +// // 线程被中断时的处理 +// executor.shutdownNow(); +// } +// } + +} diff --git a/src/main/java/org/springblade/common/utils/UnitUtil.java b/src/main/java/org/springblade/common/utils/UnitUtil.java new file mode 100644 index 0000000..b684920 --- /dev/null +++ b/src/main/java/org/springblade/common/utils/UnitUtil.java @@ -0,0 +1,88 @@ +package org.springblade.common.utils; + +public class UnitUtil { + + public static Double convEnergy(Double val, String unit) { + if (unit == null || val == null) { + return null; + } + String s = unit.toLowerCase(); + switch (s) { + case "kwh": + return val; + case "mwh": + return val * 1000; + case "gwh": + return val * 1000 * 1000; + case "twh": + return val * 1000 * 1000 * 1000; + case "pwh": + return val * 1000 * 1000 * 1000 * 1000; + } + throw new RuntimeException("invalid unit: " + unit); + } + + public static Double convPower(Double val, String unit) { + if (unit == null || val == null) { + return null; + } + String s = unit.toLowerCase(); + if (s.endsWith("p")) { + s = s.substring(0, s.length() - 1); + } + switch (s) { + case "w": + return val / 1000; + case "kw": + return val; + case "mw": + return val * 1000; + case "gw": + return val * 1000 * 1000; + case "tw": + return val * 1000 * 1000 * 1000; + case "pw": + return val * 1000 * 1000 * 1000 * 1000; + } + throw new RuntimeException("invalid unit: " + unit); + } + + public static Double convVa(Double v, String unit) { + if (unit == null || v == null) { + return null; + } + String s = unit.toLowerCase(); + if (s.endsWith("w")) { + return convPower(v, unit); + } + switch (s) { + case "va": + return v; + case "kva": + return v * 1000; + case "mva": + return v * 1000 * 1000; + case "gva": + return v * 1000 * 1000 * 1000; + } + throw new RuntimeException("invalid unit: " + unit); + } + + public static Double convHz(Double fac, String facStr) { + if (facStr == null || fac == null) { + return null; + } + String s = facStr.toLowerCase(); + switch (s) { + case "hz": + return fac; + case "khz": + return fac * 1000; + case "mhz": + return fac * 1000 * 1000; + case "ghz": + return fac * 1000 * 1000 * 1000; + } + throw new RuntimeException("invalid unit: " + facStr); + } +} diff --git a/src/main/java/org/springblade/flow/business/controller/WorkController.java b/src/main/java/org/springblade/flow/business/controller/WorkController.java new file mode 100644 index 0000000..f59adc9 --- /dev/null +++ b/src/main/java/org/springblade/flow/business/controller/WorkController.java @@ -0,0 +1,155 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.business.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.flowable.engine.TaskService; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.flow.business.service.FlowBusinessService; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.utils.TaskUtil; +import org.springblade.flow.engine.entity.FlowProcess; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springframework.web.bind.annotation.*; + +/** + * 流程事务通用接口 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_FLOW_NAME + "/work") +@Tag(name = "流程事务通用接口", description = "流程事务通用接口") +public class WorkController { + + private final TaskService taskService; + private final FlowEngineService flowEngineService; + private final FlowBusinessService flowBusinessService; + + /** + * 发起事务列表页 + */ + @GetMapping("start-list") + @ApiOperationSupport(order = 1) + @Operation(summary = "发起事务列表页", description = "传入流程类型") + public R> startList(@Parameter(description = "流程类型") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) { + IPage pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, mode); + return R.data(pages); + } + + /** + * 待签事务列表页 + */ + @GetMapping("claim-list") + @ApiOperationSupport(order = 2) + @Operation(summary = "待签事务列表页", description = "传入流程信息") + public R> claimList(@Parameter(description = "流程信息") BladeFlow bladeFlow, Query query) { + IPage pages = flowBusinessService.selectClaimPage(Condition.getPage(query), bladeFlow); + return R.data(pages); + } + + /** + * 待办事务列表页 + */ + @GetMapping("todo-list") + @ApiOperationSupport(order = 3) + @Operation(summary = "待办事务列表页", description = "传入流程信息") + public R> todoList(@Parameter(description = "流程信息") BladeFlow bladeFlow, Query query) { + IPage pages = flowBusinessService.selectTodoPage(Condition.getPage(query), bladeFlow); + return R.data(pages); + } + + /** + * 已发事务列表页 + */ + @GetMapping("send-list") + @ApiOperationSupport(order = 4) + @Operation(summary = "已发事务列表页", description = "传入流程信息") + public R> sendList(@Parameter(description = "流程信息") BladeFlow bladeFlow, Query query) { + IPage pages = flowBusinessService.selectSendPage(Condition.getPage(query), bladeFlow); + return R.data(pages); + } + + /** + * 办结事务列表页 + */ + @GetMapping("done-list") + @ApiOperationSupport(order = 5) + @Operation(summary = "办结事务列表页", description = "传入流程信息") + public R> doneList(@Parameter(description = "流程信息") BladeFlow bladeFlow, Query query) { + IPage pages = flowBusinessService.selectDonePage(Condition.getPage(query), bladeFlow); + return R.data(pages); + } + + /** + * 签收事务 + * + * @param taskId 任务id + */ + @PostMapping("claim-task") + @ApiOperationSupport(order = 6) + @Operation(summary = "签收事务", description = "传入流程信息") + public R claimTask(@Parameter(description = "任务id") String taskId) { + taskService.claim(taskId, TaskUtil.getTaskUser()); + return R.success("签收事务成功"); + } + + /** + * 完成任务 + * + * @param flow 请假信息 + */ + @PostMapping("complete-task") + @ApiOperationSupport(order = 7) + @Operation(summary = "完成任务", description = "传入流程信息") + public R completeTask(@Parameter(description = "任务信息") @RequestBody BladeFlow flow) { + return R.status(flowBusinessService.completeTask(flow)); + } + + /** + * 删除任务 + * + * @param taskId 任务id + * @param reason 删除原因 + */ + @PostMapping("delete-task") + @ApiOperationSupport(order = 8) + @Operation(summary = "删除任务", description = "传入流程信息") + public R deleteTask(@Parameter(description = "任务id") String taskId, @Parameter(description = "删除原因") String reason) { + taskService.deleteTask(taskId, reason); + return R.success("删除任务成功"); + } + +} diff --git a/src/main/java/org/springblade/flow/business/service/FlowBusinessService.java b/src/main/java/org/springblade/flow/business/service/FlowBusinessService.java new file mode 100644 index 0000000..95446bf --- /dev/null +++ b/src/main/java/org/springblade/flow/business/service/FlowBusinessService.java @@ -0,0 +1,89 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.business.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.flow.core.entity.BladeFlow; + +import java.util.List; + +/** + * 流程业务类 + * + * @author Chill + */ +public interface FlowBusinessService { + + /** + * 流程待签列表 + * + * @param page 分页工具 + * @param bladeFlow 流程类 + * @return + */ + IPage selectClaimPage(IPage page, BladeFlow bladeFlow); + + /** + * 流程待办列表 + * + * @param page 分页工具 + * @param bladeFlow 流程类 + * @return + */ + IPage selectTodoPage(IPage page, BladeFlow bladeFlow); + + /** + * 流程已发列表 + * + * @param page 分页工具 + * @param bladeFlow 流程类 + * @return + */ + IPage selectSendPage(IPage page, BladeFlow bladeFlow); + + /** + * 流程办结列表 + * + * @param page 分页工具 + * @param bladeFlow 流程类 + * @return + */ + IPage selectDonePage(IPage page, BladeFlow bladeFlow); + + /** + * 完成任务 + * + * @param leave 请假信息 + * @return boolean + */ + boolean completeTask(BladeFlow leave); + + /** + * 获取某个流程事务下已完成的任务 + */ +// List findHidTask(String processInstanceId); + +} diff --git a/src/main/java/org/springblade/flow/business/service/IFlowService.java b/src/main/java/org/springblade/flow/business/service/IFlowService.java new file mode 100644 index 0000000..8458d68 --- /dev/null +++ b/src/main/java/org/springblade/flow/business/service/IFlowService.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.business.service; + +import org.springblade.flow.core.entity.BladeFlow; + +import java.util.Map; + +/** + * 工作流调用接口. + * + * @author Chill + */ +public interface IFlowService { + + /** + * 开启流程 + * + * @param processDefinitionId 流程id + * @param businessKey 业务key + * @param variables 参数 + * @return BladeFlow + */ + BladeFlow startProcessInstanceById(String processDefinitionId, String businessKey, Map variables); + + /** + * 开启流程 + * + * @param processDefinitionKey 流程标识 + * @param businessKey 业务key + * @param variables 参数 + * @return BladeFlow + */ + BladeFlow startProcessInstanceByKey(String processDefinitionKey, String businessKey, Map variables); + + /** + * 完成任务 + * + * @param taskId 任务id + * @param processInstanceId 流程实例id + * @param comment 评论 + * @param variables 参数 + * @return R + */ + boolean completeTask(String taskId, String processInstanceId, String comment, Map variables); + + /** + * 获取流程变量 + * + * @param taskId 任务id + * @param variableName 变量名 + * @return R + */ + Object taskVariable(String taskId, String variableName); + + /** + * 获取流程变量集合 + * + * @param taskId 任务id + * @return R + */ + Map taskVariables(String taskId); +} diff --git a/src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java b/src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java new file mode 100644 index 0000000..ed3cbaa --- /dev/null +++ b/src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java @@ -0,0 +1,343 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.business.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.AllArgsConstructor; +import org.flowable.engine.HistoryService; +import org.flowable.engine.TaskService; +import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.history.HistoricProcessInstanceQuery; +import org.flowable.task.api.TaskQuery; +import org.flowable.task.api.history.HistoricTaskInstance; +import org.flowable.task.api.history.HistoricTaskInstanceQuery; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.flow.business.service.FlowBusinessService; +import org.springblade.flow.core.constant.ProcessConstant; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.utils.TaskUtil; +import org.springblade.flow.engine.constant.FlowEngineConstant; +import org.springblade.flow.engine.entity.FlowProcess; +import org.springblade.flow.engine.utils.FlowCache; +import org.springframework.stereotype.Service; + +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +/** + * 流程业务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class FlowBusinessServiceImpl implements FlowBusinessService { + + private final TaskService taskService; + private final HistoryService historyService; + + @Override + public IPage selectClaimPage(IPage page, BladeFlow bladeFlow) { + String taskUser = TaskUtil.getTaskUser(); + String taskGroup = TaskUtil.getCandidateGroup(); + List flowList = new LinkedList<>(); + + // 个人等待签收的任务 + TaskQuery claimUserQuery = taskService.createTaskQuery().taskCandidateUser(taskUser) + .includeProcessVariables().active().orderByTaskCreateTime().desc(); + // 定制流程等待签收的任务 + TaskQuery claimRoleWithTenantIdQuery = taskService.createTaskQuery().taskTenantId(AuthUtil.getTenantId()).taskCandidateGroupIn(Func.toStrList(taskGroup)) + .includeProcessVariables().active().orderByTaskCreateTime().desc(); + // 通用流程等待签收的任务 + TaskQuery claimRoleWithoutTenantIdQuery = taskService.createTaskQuery().taskWithoutTenantId().taskCandidateGroupIn(Func.toStrList(taskGroup)) + .includeProcessVariables().active().orderByTaskCreateTime().desc(); + + // 构建列表数据 + buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM); + buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM); + buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM); + + // 计算总数 + long count = claimUserQuery.count() + claimRoleWithTenantIdQuery.count() + claimRoleWithoutTenantIdQuery.count(); + // 设置页数 + page.setSize(count); + // 设置总数 + page.setTotal(count); + // 设置数据 + page.setRecords(flowList); + return page; + } + + @Override + public IPage selectTodoPage(IPage page, BladeFlow bladeFlow) { + String taskUser = TaskUtil.getTaskUser(); + List flowList = new LinkedList<>(); + + // 已签收的任务 + TaskQuery todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active() + .includeProcessVariables().orderByTaskCreateTime().desc(); + + // 构建列表数据 + buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO); + + // 计算总数 + long count = todoQuery.count(); + // 设置页数 + page.setSize(count); + // 设置总数 + page.setTotal(count); + // 设置数据 + page.setRecords(flowList); + return page; + } + + @Override + public IPage selectSendPage(IPage page, BladeFlow bladeFlow) { + String taskUser = TaskUtil.getTaskUser(); + List flowList = new LinkedList<>(); + + HistoricProcessInstanceQuery historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).orderByProcessInstanceStartTime().desc(); + + if (bladeFlow.getCategory() != null) { + historyQuery.processDefinitionCategory(bladeFlow.getCategory()); + } + if (bladeFlow.getProcessDefinitionName() != null) { + historyQuery.processDefinitionName(bladeFlow.getProcessDefinitionName()); + } + if (bladeFlow.getBeginDate() != null) { + historyQuery.startedAfter(bladeFlow.getBeginDate()); + } + if (bladeFlow.getEndDate() != null) { + historyQuery.startedBefore(bladeFlow.getEndDate()); + } + + // 查询列表 + List historyList = historyQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize())); + + historyList.forEach(historicProcessInstance -> { + BladeFlow flow = new BladeFlow(); + // historicProcessInstance + flow.setCreateTime(historicProcessInstance.getStartTime()); + flow.setEndTime(historicProcessInstance.getEndTime()); + flow.setVariables(historicProcessInstance.getProcessVariables()); + String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); + if (businessKey.length > 1) { + flow.setBusinessTable(businessKey[0]); + flow.setBusinessId(businessKey[1]); + } + flow.setHistoryActivityName(historicProcessInstance.getName()); + flow.setProcessInstanceId(historicProcessInstance.getId()); + flow.setHistoryProcessInstanceId(historicProcessInstance.getId()); + // ProcessDefinition + FlowProcess processDefinition = FlowCache.getProcessDefinition(historicProcessInstance.getProcessDefinitionId()); + flow.setProcessDefinitionId(processDefinition.getId()); + flow.setProcessDefinitionName(processDefinition.getName()); + flow.setProcessDefinitionVersion(processDefinition.getVersion()); + flow.setProcessDefinitionKey(processDefinition.getKey()); + flow.setCategory(processDefinition.getCategory()); + flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); + flow.setProcessInstanceId(historicProcessInstance.getId()); + // HistoricTaskInstance + List historyTasks = historyService.createHistoricTaskInstanceQuery().processInstanceId(historicProcessInstance.getId()).orderByHistoricTaskInstanceEndTime().desc().list(); + if (Func.isNotEmpty(historyTasks)) { + HistoricTaskInstance historyTask = historyTasks.iterator().next(); + flow.setTaskId(historyTask.getId()); + flow.setTaskName(historyTask.getName()); + flow.setTaskDefinitionKey(historyTask.getTaskDefinitionKey()); + } + // Status + if (historicProcessInstance.getEndActivityId() != null) { + flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED); + } else { + flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED); + } + flow.setStatus(FlowEngineConstant.STATUS_FINISH); + flowList.add(flow); + }); + + // 计算总数 + long count = historyQuery.count(); + // 设置总数 + page.setTotal(count); + page.setRecords(flowList); + return page; + } + + @Override + public IPage selectDonePage(IPage page, BladeFlow bladeFlow) { + String taskUser = TaskUtil.getTaskUser(); + List flowList = new LinkedList<>(); + + HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished() + .includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc(); + + if (bladeFlow.getCategory() != null) { + doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); + } + if (bladeFlow.getProcessDefinitionName() != null) { + doneQuery.processDefinitionName(bladeFlow.getProcessDefinitionName()); + } + if (bladeFlow.getBeginDate() != null) { + doneQuery.taskCompletedAfter(bladeFlow.getBeginDate()); + } + if (bladeFlow.getEndDate() != null) { + doneQuery.taskCompletedBefore(bladeFlow.getEndDate()); + } + + // 查询列表 + List doneList = doneQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize())); + doneList.forEach(historicTaskInstance -> { + BladeFlow flow = new BladeFlow(); + flow.setTaskId(historicTaskInstance.getId()); + flow.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey()); + flow.setTaskName(historicTaskInstance.getName()); + flow.setAssignee(historicTaskInstance.getAssignee()); + flow.setCreateTime(historicTaskInstance.getCreateTime()); + flow.setExecutionId(historicTaskInstance.getExecutionId()); + flow.setHistoryTaskEndTime(historicTaskInstance.getEndTime()); + flow.setVariables(historicTaskInstance.getProcessVariables()); + + FlowProcess processDefinition = FlowCache.getProcessDefinition(historicTaskInstance.getProcessDefinitionId()); + flow.setProcessDefinitionId(processDefinition.getId()); + flow.setProcessDefinitionName(processDefinition.getName()); + flow.setProcessDefinitionKey(processDefinition.getKey()); + flow.setProcessDefinitionVersion(processDefinition.getVersion()); + flow.setCategory(processDefinition.getCategory()); + flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); + + flow.setProcessInstanceId(historicTaskInstance.getProcessInstanceId()); + flow.setHistoryProcessInstanceId(historicTaskInstance.getProcessInstanceId()); + HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance((historicTaskInstance.getProcessInstanceId())); + if (Func.isNotEmpty(historicProcessInstance)) { + String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); + flow.setBusinessTable(businessKey[0]); + flow.setBusinessId(businessKey[1]); + if (historicProcessInstance.getEndActivityId() != null) { + flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED); + } else { + flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED); + } + } + flow.setStatus(FlowEngineConstant.STATUS_FINISH); + flowList.add(flow); + }); + // 计算总数 + long count = doneQuery.count(); + // 设置总数 + page.setTotal(count); + page.setRecords(flowList); + return page; + } + + @Override + public boolean completeTask(BladeFlow flow) { + String taskId = flow.getTaskId(); + String processInstanceId = flow.getProcessInstanceId(); + String comment = Func.toStr(flow.getComment(), ProcessConstant.PASS_COMMENT); + // 增加评论 + if (StringUtil.isNoneBlank(processInstanceId, comment)) { + taskService.addComment(taskId, processInstanceId, comment); + } + // 创建变量 + Map variables = flow.getVariables(); + if (variables == null) { + variables = Kv.create(); + } + variables.put(ProcessConstant.PASS_KEY, flow.isPass()); + // 完成任务 + taskService.complete(taskId, variables); + return true; + } + + + /** + * 构建流程 + * + * @param bladeFlow 流程通用类 + * @param flowList 流程列表 + * @param taskQuery 任务查询类 + * @param status 状态 + */ + private void buildFlowTaskList(BladeFlow bladeFlow, List flowList, TaskQuery taskQuery, String status) { + if (bladeFlow.getCategory() != null) { + taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory())); + } + if (bladeFlow.getProcessDefinitionName() != null) { + taskQuery.processDefinitionName(bladeFlow.getProcessDefinitionName()); + } + if (bladeFlow.getBeginDate() != null) { + taskQuery.taskCreatedAfter(bladeFlow.getBeginDate()); + } + if (bladeFlow.getEndDate() != null) { + taskQuery.taskCreatedBefore(bladeFlow.getEndDate()); + } + taskQuery.list().forEach(task -> { + BladeFlow flow = new BladeFlow(); + flow.setTaskId(task.getId()); + flow.setTaskDefinitionKey(task.getTaskDefinitionKey()); + flow.setTaskName(task.getName()); + flow.setAssignee(task.getAssignee()); + flow.setCreateTime(task.getCreateTime()); + flow.setClaimTime(task.getClaimTime()); + flow.setExecutionId(task.getExecutionId()); + flow.setVariables(task.getProcessVariables()); + + HistoricProcessInstance historicProcessInstance = getHistoricProcessInstance(task.getProcessInstanceId()); + if (Func.isNotEmpty(historicProcessInstance)) { + String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); + flow.setBusinessTable(businessKey[0]); + flow.setBusinessId(businessKey[1]); + } + + FlowProcess processDefinition = FlowCache.getProcessDefinition(task.getProcessDefinitionId()); + flow.setCategory(processDefinition.getCategory()); + flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); + flow.setProcessDefinitionId(processDefinition.getId()); + flow.setProcessDefinitionName(processDefinition.getName()); + flow.setProcessDefinitionKey(processDefinition.getKey()); + flow.setProcessDefinitionVersion(processDefinition.getVersion()); + flow.setProcessInstanceId(task.getProcessInstanceId()); + flow.setStatus(status); + flowList.add(flow); + }); + } + + /** + * 获取历史流程 + * + * @param processInstanceId 流程实例id + * @return HistoricProcessInstance + */ + private HistoricProcessInstance getHistoricProcessInstance(String processInstanceId) { + return historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + } + +} diff --git a/src/main/java/org/springblade/flow/business/service/impl/FlowServiceImpl.java b/src/main/java/org/springblade/flow/business/service/impl/FlowServiceImpl.java new file mode 100644 index 0000000..7727350 --- /dev/null +++ b/src/main/java/org/springblade/flow/business/service/impl/FlowServiceImpl.java @@ -0,0 +1,106 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.business.service.impl; + +import lombok.AllArgsConstructor; +import org.flowable.engine.IdentityService; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.TaskService; +import org.flowable.engine.runtime.ProcessInstance; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.flow.business.service.IFlowService; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.utils.TaskUtil; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 流程实现类 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +public class FlowServiceImpl implements IFlowService { + + private final RuntimeService runtimeService; + private final IdentityService identityService; + private final TaskService taskService; + + @Override + public BladeFlow startProcessInstanceById(String processDefinitionId, String businessKey, Map variables) { + // 设置流程启动用户 + identityService.setAuthenticatedUserId(TaskUtil.getTaskUser()); + // 开启流程 + ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, businessKey, variables); + // 组装流程通用类 + BladeFlow flow = new BladeFlow(); + flow.setProcessInstanceId(processInstance.getId()); + return flow; + } + + @Override + public BladeFlow startProcessInstanceByKey(String processDefinitionKey, String businessKey, Map variables) { + // 设置流程启动用户 + identityService.setAuthenticatedUserId(TaskUtil.getTaskUser()); + // 开启流程 + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, businessKey, variables); + // 组装流程通用类 + BladeFlow flow = new BladeFlow(); + flow.setProcessInstanceId(processInstance.getId()); + return flow; + } + + @Override + public boolean completeTask(String taskId, String processInstanceId, String comment, Map variables) { + // 增加评论 + if (StringUtil.isNoneBlank(processInstanceId, comment)) { + taskService.addComment(taskId, processInstanceId, comment); + } + // 非空判断 + if (Func.isEmpty(variables)) { + variables = Kv.create(); + } + // 完成任务 + taskService.complete(taskId, variables); + return true; + } + + @Override + public Object taskVariable(String taskId, String variableName) { + return R.data(taskService.getVariable(taskId, variableName)); + } + + @Override + public Map taskVariables(String taskId) { + return taskService.getVariables(taskId); + } + +} diff --git a/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java b/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java new file mode 100644 index 0000000..3ce297f --- /dev/null +++ b/src/main/java/org/springblade/flow/core/constant/ProcessConstant.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.core.constant; + +/** + * 流程常量. + * + * @author Chill + */ +public interface ProcessConstant { + + /** + * 请假流程标识 + */ + String LEAVE_KEY = "Leave"; + + /** + * 报销流程标识 + */ + String EXPENSE_KEY = "Expense"; + + /** + * 同意标识 + */ + String PASS_KEY = "pass"; + + /** + * 同意代号 + */ + String PASS_ALIAS = "ok"; + + /** + * 同意默认批复 + */ + String PASS_COMMENT = "同意"; + + /** + * 驳回默认批复 + */ + String NOT_PASS_COMMENT = "驳回"; + + /** + * 创建人变量名 + */ + String TASK_VARIABLE_CREATE_USER = "createUser"; + +} diff --git a/src/main/java/org/springblade/flow/core/entity/BladeFlow.java b/src/main/java/org/springblade/flow/core/entity/BladeFlow.java new file mode 100644 index 0000000..056360c --- /dev/null +++ b/src/main/java/org/springblade/flow/core/entity/BladeFlow.java @@ -0,0 +1,190 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.core.entity; + +import lombok.Data; +import org.springblade.flow.core.constant.ProcessConstant; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.Map; + +/** + * 工作流通用实体类 + * + * @author Chill + */ +@Data +public class BladeFlow implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务编号 + */ + private String taskId; + /** + * 任务名称 + */ + private String taskName; + /** + * 任务定义Key + */ + private String taskDefinitionKey; + /** + * 任务执行人编号 + */ + private String assignee; + /** + * 任务执行人名称 + */ + private String assigneeName; + /** + * 流程分类 + */ + private String category; + /** + * 流程分类名 + */ + private String categoryName; + /** + * 创建时间 + */ + private Date createTime; + /** + * 结束时间 + */ + private Date endTime; + /** + * 签收时间 + */ + private Date claimTime; + /** + * 历史任务结束时间 + */ + private Date historyTaskEndTime; + /** + * 执行ID + */ + private String executionId; + /** + * 流程实例ID + */ + private String processInstanceId; + /** + * 流程ID + */ + private String processDefinitionId; + /** + * 流程标识 + */ + private String processDefinitionKey; + /** + * 流程名 + */ + private String processDefinitionName; + /** + * 流程版本 + */ + private int processDefinitionVersion; + /** + * 流程说明 + */ + private String processDefinitionDesc; + /** + * 流程简图名 + */ + private String processDefinitionDiagramResName; + /** + * 流程重命名 + */ + private String processDefinitionResName; + /** + * 历史任务流程实例ID 查看流程图会用到 + */ + private String historyProcessInstanceId; + /** + * 流程实例是否结束 + */ + private String processIsFinished; + /** + * 历史活动ID + */ + private String historyActivityId; + /** + * 历史活动流程 + */ + private String historyActivityName; + /** + * 历史活动耗时 + */ + private String historyActivityDurationTime; + /** + * 业务绑定Table + */ + private String businessTable; + /** + * 业务绑定ID + */ + private String businessId; + /** + * 任务状态 + */ + private String status; + /** + * 任务意见 + */ + private String comment; + /** + * 是否通过 + */ + private boolean isPass; + /** + * 是否通过代号 + */ + private String flag; + /** + * 开始查询日期 + */ + private Date beginDate; + /** + * 结束查询日期 + */ + private Date endDate; + /** + * 流程参数 + */ + private Map variables; + + /** + * 获取是否通过 + */ + public boolean isPass() { + return ProcessConstant.PASS_ALIAS.equals(flag) || ProcessConstant.PASS_COMMENT.equals(comment); + } + +} diff --git a/src/main/java/org/springblade/flow/core/entity/FlowEntity.java b/src/main/java/org/springblade/flow/core/entity/FlowEntity.java new file mode 100644 index 0000000..760803d --- /dev/null +++ b/src/main/java/org/springblade/flow/core/entity/FlowEntity.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.core.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +/** + * FlowEntity + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class FlowEntity extends BaseEntity { + + @TableField(exist = false) + private BladeFlow flow; + + public BladeFlow getFlow() { + if (flow == null) { + flow = new BladeFlow(); + } + return flow; + } + +} diff --git a/src/main/java/org/springblade/flow/core/enums/FlowModeEnum.java b/src/main/java/org/springblade/flow/core/enums/FlowModeEnum.java new file mode 100644 index 0000000..2435c10 --- /dev/null +++ b/src/main/java/org/springblade/flow/core/enums/FlowModeEnum.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.core.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 流程类型枚举 + * + * @author Chill + */ +@Getter +@AllArgsConstructor +public enum FlowModeEnum { + + /** + * 通用流程 + */ + COMMON("common", 1), + + /** + * 定制流程 + */ + CUSTOM("custom", 2), + ; + + final String name; + final int mode; + +} diff --git a/src/main/java/org/springblade/flow/core/utils/FlowUtil.java b/src/main/java/org/springblade/flow/core/utils/FlowUtil.java new file mode 100644 index 0000000..f1bdf54 --- /dev/null +++ b/src/main/java/org/springblade/flow/core/utils/FlowUtil.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.core.utils; + +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.flow.core.constant.ProcessConstant; + +import java.util.HashMap; +import java.util.Map; + +/** + * 工作流工具类 + * + * @author Chill + */ +public class FlowUtil { + + /** + * 定义流程key对应的表名 + */ + private final static Map BUSINESS_TABLE = new HashMap<>(); + + static { + BUSINESS_TABLE.put(ProcessConstant.LEAVE_KEY, "blade_process_leave"); + } + + /** + * 通过流程key获取业务表名 + * + * @param key 流程key + */ + public static String getBusinessTable(String key) { + String businessTable = BUSINESS_TABLE.get(key); + if (Func.isEmpty(businessTable)) { + return StringPool.EMPTY; + } + return businessTable; + } + + /** + * 获取业务标识 + * + * @param businessTable 业务表 + * @param businessId 业务表主键 + * @return businessKey + */ + public static String getBusinessKey(String businessTable, String businessId) { + return StringUtil.format("{}:{}", businessTable, businessId); + } + +} diff --git a/src/main/java/org/springblade/flow/core/utils/TaskUtil.java b/src/main/java/org/springblade/flow/core/utils/TaskUtil.java new file mode 100644 index 0000000..2b2fdd4 --- /dev/null +++ b/src/main/java/org/springblade/flow/core/utils/TaskUtil.java @@ -0,0 +1,80 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.core.utils; + +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; + +import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX; + +/** + * 工作流任务工具类 + * + * @author Chill + */ +public class TaskUtil { + + /** + * 获取任务用户格式 + * + * @return taskUser + */ + public static String getTaskUser() { + return StringUtil.format("{}{}", TASK_USR_PREFIX, AuthUtil.getUserId()); + } + + /** + * 获取任务用户格式 + * + * @param userId 用户id + * @return taskUser + */ + public static String getTaskUser(String userId) { + return StringUtil.format("{}{}", TASK_USR_PREFIX, userId); + } + + + /** + * 获取用户主键 + * + * @param taskUser 任务用户 + * @return userId + */ + public static Long getUserId(String taskUser) { + return Func.toLong(StringUtil.removePrefix(taskUser, TASK_USR_PREFIX)); + } + + /** + * 获取用户组格式 + * + * @return candidateGroup + */ + public static String getCandidateGroup() { + return AuthUtil.getUserRole(); + } + +} diff --git a/src/main/java/org/springblade/flow/demo/leave/controller/LeaveController.java b/src/main/java/org/springblade/flow/demo/leave/controller/LeaveController.java new file mode 100644 index 0000000..0e81a5c --- /dev/null +++ b/src/main/java/org/springblade/flow/demo/leave/controller/LeaveController.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.demo.leave.controller; + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.UserCache; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.flow.demo.leave.entity.ProcessLeave; +import org.springblade.flow.demo.leave.service.ILeaveService; +import org.springframework.web.bind.annotation.*; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@RequestMapping(AppConstant.APPLICATION_DESK_NAME + "/process/leave") +@AllArgsConstructor +public class LeaveController { + + private final ILeaveService leaveService; + + /** + * 详情 + * + * @param businessId 主键 + */ + @GetMapping("detail") + public R detail(Long businessId) { + ProcessLeave detail = leaveService.getById(businessId); + detail.getFlow().setAssigneeName(UserCache.getUser(detail.getCreateUser()).getName()); + return R.data(detail); + } + + /** + * 新增或修改 + * + * @param leave 请假信息 + */ + @PostMapping("start-process") + public R startProcess(@RequestBody ProcessLeave leave) { + return R.status(leaveService.startProcess(leave)); + } + +} diff --git a/src/main/java/org/springblade/flow/demo/leave/entity/ProcessLeave.java b/src/main/java/org/springblade/flow/demo/leave/entity/ProcessLeave.java new file mode 100644 index 0000000..d7bf1bb --- /dev/null +++ b/src/main/java/org/springblade/flow/demo/leave/entity/ProcessLeave.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.demo.leave.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.flow.core.entity.FlowEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 请假流程实体类 + * + * @author Chill + */ +@Data +@TableName("blade_process_leave") +@EqualsAndHashCode(callSuper = true) +public class ProcessLeave extends FlowEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程定义id + */ + private String processDefinitionId; + /** + * 流程实例id + */ + private String processInstanceId; + /** + * 请假开始时间 + */ + private Date startTime; + /** + * 请假结束时间 + */ + private Date endTime; + /** + * 请假理由 + */ + private String reason; + /** + * 审批人 + */ + private String taskUser; + /** + * 流程申请时间 + */ + private Date applyTime; + +} diff --git a/src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.java b/src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.java new file mode 100644 index 0000000..4311ce2 --- /dev/null +++ b/src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.demo.leave.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.flow.demo.leave.entity.ProcessLeave; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface LeaveMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.xml b/src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.xml new file mode 100644 index 0000000..64ad626 --- /dev/null +++ b/src/main/java/org/springblade/flow/demo/leave/mapper/LeaveMapper.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/main/java/org/springblade/flow/demo/leave/service/ILeaveService.java b/src/main/java/org/springblade/flow/demo/leave/service/ILeaveService.java new file mode 100644 index 0000000..ea61012 --- /dev/null +++ b/src/main/java/org/springblade/flow/demo/leave/service/ILeaveService.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.demo.leave.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.flow.demo.leave.entity.ProcessLeave; + +/** + * 服务类 + * + * @author Chill + */ +public interface ILeaveService extends BaseService { + + /** + * 开启流程 + * + * @param leave 请假实体 + * @return boolean + */ + boolean startProcess(ProcessLeave leave); + +} diff --git a/src/main/java/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.java b/src/main/java/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.java new file mode 100644 index 0000000..4c336cd --- /dev/null +++ b/src/main/java/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.java @@ -0,0 +1,256 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.demo.leave.service.impl; + +import com.google.gson.Gson; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.TaskService; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.task.api.Task; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.flow.business.service.IFlowService; +import org.springblade.flow.core.constant.ProcessConstant; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.utils.FlowUtil; +import org.springblade.flow.core.utils.TaskUtil; +import org.springblade.flow.demo.leave.entity.ProcessLeave; +import org.springblade.flow.demo.leave.mapper.LeaveMapper; +import org.springblade.flow.demo.leave.service.ILeaveService; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springblade.modules.flowable.examineInfo.service.impl.ExamineInfoServiceImpl; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefReq; +import org.springblade.modules.flowable.processForm.service.impl.ProcessDefAuditStepServiceImpl; +import org.springblade.modules.flowable.processForm.utils.FormUtils; +import org.springblade.modules.operation.service.impl.PlatformEmployeeServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 服务实现类 + * + * @author Chill + */ +@Slf4j +@Service +@AllArgsConstructor +public class LeaveServiceImpl extends BaseServiceImpl implements ILeaveService { + + private final IFlowService flowService; + + private final TaskService taskService; + + private final FlowEngineService flowEngineService; + + @Autowired + private ProcessDefAuditStepServiceImpl auditStepService; + + @Autowired + private PlatformEmployeeServiceImpl employeeService; + + @Autowired + private ExamineInfoServiceImpl examineInfoService; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean startProcess(ProcessLeave leave) { + String businessTable = FlowUtil.getBusinessTable(ProcessConstant.LEAVE_KEY); + if (Func.isEmpty(businessTable)) { + throw new ServiceException("流程启动失败,未找到相关业务表"); + } + if (Func.isEmpty(leave.getId())) { + // 保存leave + leave.setApplyTime(DateUtil.now()); + save(leave); + // 启动流程 + Kv variables = Kv.create() + .set(ProcessConstant.TASK_VARIABLE_CREATE_USER, AuthUtil.getUserName()) + .set("taskUser", TaskUtil.getTaskUser(leave.getTaskUser())) + .set("days", DateUtil.between(leave.getStartTime(), leave.getEndTime()).toDays()); + BladeFlow flow = flowService.startProcessInstanceById(leave.getProcessDefinitionId(), FlowUtil.getBusinessKey(businessTable, String.valueOf(leave.getId())), variables); + if (Func.isNotEmpty(flow)) { + log.debug("流程已启动,流程ID:" + flow.getProcessInstanceId()); + // 返回流程id写入leave + leave.setProcessInstanceId(flow.getProcessInstanceId()); + updateById(leave); + } else { + throw new ServiceException("开启流程失败"); + } + } else { + + updateById(leave); + } + return true; + } + + + @Transactional(rollbackFor = Exception.class) + public String startProcessFlowable(String applicationId, ProcessDefReq processDef, String formId, Date submitTime, String UserName, String content, String processInsName, String province, String city){ + log.info(" >>>>>>>>>>>>启动流程 startProcessFlowable {applicationId}:{},formId:{};" ,applicationId,formId); + Map map=new HashMap<>(); + map.put("applicationId",applicationId); + map.put("formId",formId); + map.put("reject","1"); + String processDefId= processDef.getId(); + List auditItems = auditStepService.findListByDefId(processDefId); + Random rand = new Random(); + String oneAuditUseId=""; + for(ProcessDefAuditStepEntity r:auditItems){ + List emps=new ArrayList<>(); + String userId=""; + if("1".equals(r.getAuditType())){ // 1平台角色 2 平台员工 + //根据角色,获取角色员工(要根据员工的数据权限分配) + emps=employeeService.findEmpUserId(r.getRoleId(),province,city,""); + }else{ + String str=r.getEmpUserId(); + //获取符合数据权限的员工id + String ifOrder="1"; + if("3".equals(r.getAuditMethod())){ //3 依次审批 那么不需要排序 + ifOrder=""; + } + emps=employeeService.getFitUserEmpId(str,province,city,"",ifOrder); + } + if(emps==null || emps.size()==0){ + throw new RuntimeException(r.getItemName()+" 该节点没有符合审批设置的员工审批,不能启动流程!"); + } + if("1".equals(r.getAuditMethod())||"2".equals(r.getAuditMethod())||"3".equals(r.getAuditMethod())){ //1 或签 2会签 3 依次审批 + map.put("assigneeList"+r.getSort(),emps); + }else{ //任意人 + int i=rand.nextInt(emps.size()); + userId=emps.get(i); + map.put("assignee"+r.getSort(),userId); + } + if(r.getSort()==1){ + if(StringUtil.isNotBlank(userId)){ + oneAuditUseId=userId; + }else { + oneAuditUseId=String.join(",",emps); + } + } + } + processDef.setOneAuditUseId(oneAuditUseId); + log.info(">>>>>>>>>>>>startProcessFlowable map:{}",new Gson().toJson(map)); + BladeFlow flow= flowService.startProcessInstanceByKey("Process_"+processDefId,formId,map); + if (Func.isNotEmpty(flow)) { + log.debug("流程已启动,流程ID:" + flow.getProcessInstanceId()); + //log.info( " >>>> 流程提交成功.流程Id为:" + flow.getProcessInstanceId()); + String str=UserName+",提交表单"+(StringUtil.isNotBlank(content)?";"+content:""); + //保存流程的过程信息 + examineInfoService.saveExamineInfo(applicationId,str,submitTime,UserName,formId); + // 返回流程id写入leave + return flow.getProcessInstanceId(); + + } else { + throw new ServiceException("开启流程失败"); + } + + //log.info(" >>>>>>>>>> 流程启动成功 startProcessFlowable service "); + //return ""; + } + + + /** + * 流程审批通过 + * @param content 审核备注 + * @param applicationId 当前申请的id + * @param currentUser 当前用户 + */ + @Transactional(rollbackFor = Exception.class) + public void approveTask(Task task, String content, String applicationId, BladeUser currentUser, String formId){ + Date date=new Date(); + log.info(">>>>>>>>>>>>>>>>>applicationId:{},task:{}",applicationId,task); + + String UserName = currentUser.getUserName(); + String type=";"; + if (!"编辑后提交".equals(content)) { + type=",同意 ;"; + } + String str = UserName + type+ (StringUtil.isNotBlank(content) ?content : ""); + //保存流程的过程信息 + examineInfoService.saveExamineInfo(applicationId,str,date,UserName,formId); + if (task != null) { + taskService.claim(task.getId(),currentUser.getUserId().toString()); //领取任务 + log.info(UserName+" >>>>>> 审批流程通过 {task} :" +task.getId()); + taskService.setOwner(task.getId(),UserName); + Map map =new HashMap<>(); + map.put("approve", true); + map.put("reject","1"); + taskService.complete(task.getId(),map); + } + + } + + /** + * 驳回一个流程 + * @param content 审核备注 + * @param applicationId 当前申请的id + * @param currentUser 当前用户 + */ + @Transactional(rollbackFor = Exception.class) + public void rejectTask(Task task, String content, String applicationId, BladeUser currentUser,String formId,String createBy){ + log.info(">>>>>>>>>>>>>>>>rejectTask taskId:{},applicationId:{}",task.getId(),applicationId); + String UserName = currentUser.getNickName(); + + Date date=new Date(); + String str=UserName+",驳回"+(StringUtil.isNotBlank(content)?";"+content:""); + examineInfoService.saveExamineInfo(applicationId,str,date,UserName,formId); + taskService.claim(task.getId(),currentUser.getUserId().toString()); //领取任务 + log.info(" >>>>>> 审批流程驳回 {task} :" +task); + Map map = new HashMap<>(); + map.put("approve",false); + map.put("reject","2"); + map.put("assigneeUserId",createBy); + taskService.complete(task.getId(), map); + } + + public void deleteApplication(String applicationId,String processInstanceId,String UserName,String status,String formId){ + log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>删除申请 deleteApplication applicationId:{};processInstanceId:{}",applicationId,processInstanceId); + //删除任务 + if("2".equals(status) || "3".equals(status)){ //处理中的申请 才删除流程 + List taskList=taskService.createTaskQuery().processInstanceId(processInstanceId).list(); + if(taskList.size()>0){ + log.info(">>>>>>>>>>>>> 开始删除任务 {} ",processInstanceId); + //删除任务 + flowEngineService.deleteProcessInstance(processInstanceId,"删除任务!"); + log.info(">>>>>>>>>>> 删除任务成功 "); + } + } + //保存流程的过程信息 + examineInfoService.saveExamineInfo(applicationId,UserName +" (撤销申请)",new Date(),UserName,formId); + } + +} diff --git a/src/main/java/org/springblade/flow/engine/config/FlowableConfiguration.java b/src/main/java/org/springblade/flow/engine/config/FlowableConfiguration.java new file mode 100644 index 0000000..7453305 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/config/FlowableConfiguration.java @@ -0,0 +1,53 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.config; + +import lombok.AllArgsConstructor; +import org.flowable.spring.SpringProcessEngineConfiguration; +import org.flowable.spring.boot.EngineConfigurationConfigurer; +import org.flowable.spring.boot.FlowableProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +/** + * Flowable配置类 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AllArgsConstructor +@EnableConfigurationProperties(FlowableProperties.class) +public class FlowableConfiguration implements EngineConfigurationConfigurer { + private final FlowableProperties flowableProperties; + + @Override + public void configure(SpringProcessEngineConfiguration engineConfiguration) { + engineConfiguration.setActivityFontName(flowableProperties.getActivityFontName()); + engineConfiguration.setLabelFontName(flowableProperties.getLabelFontName()); + engineConfiguration.setAnnotationFontName(flowableProperties.getAnnotationFontName()); + } + +} diff --git a/src/main/java/org/springblade/flow/engine/constant/BondApplyConstant.java b/src/main/java/org/springblade/flow/engine/constant/BondApplyConstant.java new file mode 100644 index 0000000..b0599b5 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/constant/BondApplyConstant.java @@ -0,0 +1,23 @@ +package org.springblade.flow.engine.constant; + +public class BondApplyConstant { + + public static String APPLYSTATUS_ZERO="0";//0.暂存 + + public static String APPLYSTATUS_ONE="1";//1.审核中 + + public static String APPLYSTATUS_TWO="2";//2.驳回 + + public static String APPLYSTATUS_THREE="3";//3.正常 + + public static String APPLYSTATUS_FOUR="4";//4 取消 + + + + public static final String TYPE_ONE = "1"; //审批 + public static final String TYPE_TWO = "2"; //驳回 + public static final String TYPE_THREE = "3"; //抄送 + public static final String TYPE_FOUR = "4"; //转发 + + +} diff --git a/src/main/java/org/springblade/flow/engine/constant/FlowEngineConstant.java b/src/main/java/org/springblade/flow/engine/constant/FlowEngineConstant.java new file mode 100644 index 0000000..ed2396b --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/constant/FlowEngineConstant.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.constant; + +/** + * 流程常量. + * + * @author zhuangqian + */ +public interface FlowEngineConstant { + + String FLOWABLE_BASE_PACKAGES = "org.flowable.ui"; + + String SUFFIX = ".bpmn20.xml"; + + String ACTIVE = "active"; + + String SUSPEND = "suspend"; + + String STATUS_TODO = "todo"; + + String STATUS_CLAIM = "claim"; + + String STATUS_SEND = "send"; + + String STATUS_DONE = "done"; + + String STATUS_FINISHED = "finished"; + + String STATUS_UNFINISHED = "unfinished"; + + String STATUS_FINISH = "finish"; + + String START_EVENT = "startEvent"; + + String END_EVENT = "endEvent"; + +} diff --git a/src/main/java/org/springblade/flow/engine/controller/FlowFollowController.java b/src/main/java/org/springblade/flow/engine/controller/FlowFollowController.java new file mode 100644 index 0000000..3eb7b84 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/controller/FlowFollowController.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.flow.engine.entity.FlowExecution; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springframework.web.bind.annotation.*; + +/** + * 流程状态控制器 + * + * @author Chill + */ +@NonDS +@RestController +@RequestMapping(AppConstant.APPLICATION_FLOW_NAME + "/follow") +@AllArgsConstructor +@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) +@Hidden +public class FlowFollowController { + + private final FlowEngineService flowEngineService; + + /** + * 流程状态列表 + */ + @GetMapping("list") + @ApiOperationSupport(order = 1) + @Operation(summary = "分页", description = "传入notice") + public R> list(Query query, @Parameter(description = "流程实例id") String processInstanceId, @Parameter(description = "流程key") String processDefinitionKey) { + IPage pages = flowEngineService.selectFollowPage(Condition.getPage(query), processInstanceId, processDefinitionKey); + return R.data(pages); + } + + /** + * 删除流程实例 + */ + @PostMapping("delete-process-instance") + @ApiOperationSupport(order = 2) + @Operation(summary = "删除", description = "传入主键集合") + public R deleteProcessInstance(@Parameter(description = "流程实例id") @RequestParam String processInstanceId, @Parameter(description = "删除原因") @RequestParam String deleteReason) { + boolean temp = flowEngineService.deleteProcessInstance(processInstanceId, deleteReason); + return R.status(temp); + } + +} diff --git a/src/main/java/org/springblade/flow/engine/controller/FlowManagerController.java b/src/main/java/org/springblade/flow/engine/controller/FlowManagerController.java new file mode 100644 index 0000000..73f4a19 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/controller/FlowManagerController.java @@ -0,0 +1,134 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.flow.engine.constant.FlowEngineConstant; +import org.springblade.flow.engine.entity.FlowProcess; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; +import java.util.Objects; + +/** + * 流程管理接口 + * + * @author Chill + */ +@NonDS +@RestController +@RequestMapping(AppConstant.APPLICATION_FLOW_NAME + "/manager") +@AllArgsConstructor +@Tag(name = "流程管理接口", description = "流程管理接口") +@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) +@Hidden +public class FlowManagerController { + + private final FlowEngineService flowEngineService; + + /** + * 分页 + */ + @GetMapping("list") + @ApiOperationSupport(order = 1) + @Operation(summary = "分页", description = "传入流程类型") + public R> list(@Parameter(description = "流程类型") String category, Query query, @RequestParam(required = false, defaultValue = "1") Integer mode) { + IPage pages = flowEngineService.selectProcessPage(Condition.getPage(query), category, mode); + return R.data(pages); + } + + /** + * 变更流程状态 + * + * @param state 状态 + * @param processId 流程id + */ + @PostMapping("change-state") + @ApiOperationSupport(order = 2) + @Operation(summary = "变更流程状态", description = "传入state,processId") + public R changeState(@RequestParam String state, @RequestParam String processId) { + String msg = flowEngineService.changeState(state, processId); + return R.success(msg); + } + + /** + * 删除部署流程 + * + * @param deploymentIds 部署流程id集合 + */ + @PostMapping("delete-deployment") + @ApiOperationSupport(order = 3) + @Operation(summary = "删除部署流程", description = "部署流程id集合") + public R deleteDeployment(String deploymentIds) { + return R.status(flowEngineService.deleteDeployment(deploymentIds)); + } + + /** + * 检查流程文件格式 + * + * @param file 流程文件 + */ + @PostMapping("check-upload") + @ApiOperationSupport(order = 4) + @Operation(summary = "上传部署流程文件", description = "传入文件") + public R checkUpload(@RequestParam MultipartFile file) { + boolean temp = Objects.requireNonNull(file.getOriginalFilename()).endsWith(FlowEngineConstant.SUFFIX); + return R.data(Kv.create().set("name", file.getOriginalFilename()).set("success", temp)); + } + + /** + * 上传部署流程文件 + * + * @param files 流程文件 + * @param category 类型 + */ + @PostMapping("deploy-upload") + @ApiOperationSupport(order = 5) + @Operation(summary = "上传部署流程文件", description = "传入文件") + public R deployUpload(@RequestParam List files, + @RequestParam String category, + @RequestParam(required = false, defaultValue = "") String tenantIds) { + return R.status(flowEngineService.deployUpload(files, category, Func.toStrList(tenantIds))); + } + +} diff --git a/src/main/java/org/springblade/flow/engine/controller/FlowModelController.java b/src/main/java/org/springblade/flow/engine/controller/FlowModelController.java new file mode 100644 index 0000000..977a025 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/controller/FlowModelController.java @@ -0,0 +1,131 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.flow.engine.entity.FlowModel; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * 流程模型控制器 + * + * @author Chill + */ +@NonDS +@RestController +@RequestMapping(AppConstant.APPLICATION_FLOW_NAME + "/model") +@AllArgsConstructor +@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) +@Hidden +public class FlowModelController { + + private final FlowEngineService flowEngineService; + + /** + * 分页 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "modelKey", description = "模型标识", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "模型名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 1) + @Operation(summary = "分页", description = "传入notice") + public R> list(@Parameter(hidden = true) @RequestParam Map flow, Query query) { + IPage pages = flowEngineService.page(Condition.getPage(query), Condition.getQueryWrapper(flow, FlowModel.class) + .select("id,model_key modelKey,name,description,version,created,last_updated lastUpdated") + .orderByDesc("last_updated")); + return R.data(pages); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 2) + @Operation(summary = "删除", description = "传入主键集合") + public R remove(@Parameter(description = "主键集合") @RequestParam String ids) { + boolean temp = flowEngineService.removeByIds(Func.toStrList(ids)); + return R.status(temp); + } + + /** + * 部署 + */ + @PostMapping("/deploy") + @ApiOperationSupport(order = 3) + @Operation(summary = "部署", description = "传入模型id和分类") + public R deploy(@Parameter(description = "模型id") @RequestParam String modelId, + @Parameter(description = "工作流分类") @RequestParam String category, + @Parameter(description = "租户ID") @RequestParam(required = false, defaultValue = "") String tenantIds) { + boolean temp = flowEngineService.deployModel(modelId, category, Func.toStrList(tenantIds)); + return R.status(temp); + } + + @PostMapping("submit") + @ApiOperationSupport(order = 4) + @Operation(summary = "保存/编辑") + @Parameters({ + @Parameter(name = "id", description = "模型id"), + @Parameter(name = "name", description = "模型名称", required = true), + @Parameter(name = "modelKey", description = "模型key", required = true), + @Parameter(name = "description", description = "模型描述"), + @Parameter(name = "xml", description = "模型xml", required = true), + }) + public R submit(@RequestBody @Parameter(hidden = true) FlowModel model) { + return R.data(flowEngineService.submitModel(model)); + } + + @GetMapping("detail") + @Operation(summary = "详情") + @ApiOperationSupport(order = 5) + @Parameters({ + @Parameter(name = "id", description = "模型id", required = true), + }) + public R detail(String id) { + return R.data(flowEngineService.getById(id)); + } + +} diff --git a/src/main/java/org/springblade/flow/engine/controller/FlowProcessController.java b/src/main/java/org/springblade/flow/engine/controller/FlowProcessController.java new file mode 100644 index 0000000..23fca86 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/controller/FlowProcessController.java @@ -0,0 +1,107 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.controller; + +import io.swagger.v3.oas.annotations.Hidden; +import jakarta.servlet.http.HttpServletResponse; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 流程通用控制器 + * + * @author Chill + */ +@NonDS +@Slf4j +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_FLOW_NAME + "/process") +@Hidden +public class FlowProcessController { + + private static final String IMAGE_NAME = "image"; + private final FlowEngineService flowEngineService; + + /** + * 获取流转历史列表 + * + * @param processInstanceId 流程实例id + * @param startActivityId 开始节点id + * @param endActivityId 结束节点id + */ + @GetMapping(value = "history-flow-list") + public R> historyFlowList(@RequestParam String processInstanceId, String startActivityId, String endActivityId) { + return R.data(flowEngineService.historyFlowList(processInstanceId, startActivityId, endActivityId)); + } + + /** + * 流程节点进程图 + * + * @param processDefinitionId 流程id + * @param processInstanceId 流程实例id + */ + @GetMapping(value = "model-view") + public R modelView(String processDefinitionId, String processInstanceId) { + return R.data(flowEngineService.modelView(processDefinitionId, processInstanceId)); + } + + /** + * 流程节点进程图 + * + * @param processInstanceId 流程实例id + * @param httpServletResponse http响应 + */ + @GetMapping(value = "diagram-view") + public void diagramView(String processInstanceId, HttpServletResponse httpServletResponse) { + flowEngineService.diagramView(processInstanceId, httpServletResponse); + } + + /** + * 流程图展示 + * + * @param processDefinitionId 流程id + * @param processInstanceId 实例id + * @param resourceType 资源类型 + * @param response 响应 + */ + @GetMapping("resource-view") + public void resourceView(@RequestParam String processDefinitionId, String processInstanceId, @RequestParam(defaultValue = IMAGE_NAME) String resourceType, HttpServletResponse response) { + flowEngineService.resourceView(processDefinitionId, processInstanceId, resourceType, response); + } + +} diff --git a/src/main/java/org/springblade/flow/engine/entity/FlowExecution.java b/src/main/java/org/springblade/flow/engine/entity/FlowExecution.java new file mode 100644 index 0000000..500cfe8 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/entity/FlowExecution.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.entity; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 运行实体类 + * + * @author Chill + */ +@Data +public class FlowExecution implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private String id; + private String name; + private String startUserId; + private String startUser; + private Date startTime; + private String taskDefinitionId; + private String taskDefinitionKey; + private String category; + private String categoryName; + private String processInstanceId; + private String processDefinitionId; + private String processDefinitionKey; + private String activityId; + private int suspensionState; + private String executionId; + +} diff --git a/src/main/java/org/springblade/flow/engine/entity/FlowModel.java b/src/main/java/org/springblade/flow/engine/entity/FlowModel.java new file mode 100644 index 0000000..2b83594 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/entity/FlowModel.java @@ -0,0 +1,69 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * 流程模型 + * + * @author Chill + */ +@Data +@TableName("ACT_DE_MODEL") +public class FlowModel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + public static final int MODEL_TYPE_BPMN = 0; + public static final int MODEL_TYPE_FORM = 2; + public static final int MODEL_TYPE_APP = 3; + public static final int MODEL_TYPE_DECISION_TABLE = 4; + public static final int MODEL_TYPE_CMMN = 5; + + private String id; + private String name; + private String modelKey; + private String description; + private Date created; + private Date lastUpdated; + private String createdBy; + private String lastUpdatedBy; + private Integer version; + private String modelEditorJson; + private String modelComment; + private Integer modelType; + private String tenantId; + private byte[] thumbnail; + private String modelEditorXml; + +} diff --git a/src/main/java/org/springblade/flow/engine/entity/FlowProcess.java b/src/main/java/org/springblade/flow/engine/entity/FlowProcess.java new file mode 100644 index 0000000..843600d --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/entity/FlowProcess.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.entity; + +import lombok.Data; +import lombok.NoArgsConstructor; +import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntityImpl; +import org.springblade.flow.engine.utils.FlowCache; + +import java.io.Serializable; +import java.util.Date; + +/** + * FlowProcess + * + * @author Chill + */ +@Data +@NoArgsConstructor +public class FlowProcess implements Serializable { + + private String id; + private String tenantId; + private String name; + private String key; + private String category; + private String categoryName; + private Integer version; + private String deploymentId; + private String resourceName; + private String diagramResourceName; + private Integer suspensionState; + private Date deploymentTime; + + public FlowProcess(ProcessDefinitionEntityImpl entity) { + if (entity != null) { + this.id = entity.getId(); + this.tenantId = entity.getTenantId(); + this.name = entity.getName(); + this.key = entity.getKey(); + this.category = entity.getCategory(); + this.categoryName = FlowCache.getCategoryName(entity.getCategory()); + this.version = entity.getVersion(); + this.deploymentId = entity.getDeploymentId(); + this.resourceName = entity.getResourceName(); + this.diagramResourceName = entity.getDiagramResourceName(); + this.suspensionState = entity.getSuspensionState(); + } + } + +} diff --git a/src/main/java/org/springblade/flow/engine/mapper/FlowMapper.java b/src/main/java/org/springblade/flow/engine/mapper/FlowMapper.java new file mode 100644 index 0000000..233bdb6 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/mapper/FlowMapper.java @@ -0,0 +1,55 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.flow.engine.entity.FlowModel; + +import java.util.List; + +/** + * FlowMapper. + * + * @author Chill + */ +public interface FlowMapper extends BaseMapper { + + /** + * 自定义分页 + * @param page + * @param flowModel + * @return + */ + List selectFlowPage(IPage page, FlowModel flowModel); + + /** + * 获取模型 + * @param parentModelId + * @return + */ + List findByParentModelId(String parentModelId); +} diff --git a/src/main/java/org/springblade/flow/engine/mapper/FlowMapper.xml b/src/main/java/org/springblade/flow/engine/mapper/FlowMapper.xml new file mode 100644 index 0000000..a7af970 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/mapper/FlowMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/flow/engine/service/FlowEngineService.java b/src/main/java/org/springblade/flow/engine/service/FlowEngineService.java new file mode 100644 index 0000000..ab803c1 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/service/FlowEngineService.java @@ -0,0 +1,174 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.engine.entity.FlowExecution; +import org.springblade.flow.engine.entity.FlowModel; +import org.springblade.flow.engine.entity.FlowProcess; +import org.springframework.web.multipart.MultipartFile; + +import jakarta.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + +/** + * FlowEngineService + * + * @author Chill + */ +public interface FlowEngineService extends IService { + + /** + * 自定义分页 + * + * @param page 分页工具 + * @param flowModel 流程模型 + * @return + */ + IPage selectFlowPage(IPage page, FlowModel flowModel); + + /** + * 流程管理列表 + * + * @param page 分页工具 + * @param category 分类 + * @param mode 形态 + * @return + */ + IPage selectProcessPage(IPage page, String category, Integer mode); + + /** + * 流程管理列表 + * + * @param page 分页工具 + * @param processInstanceId 流程实例id + * @param processDefinitionKey 流程key + * @return + */ + IPage selectFollowPage(IPage page, String processInstanceId, String processDefinitionKey); + + /** + * 获取流转历史列表 + * + * @param processInstanceId 流程实例id + * @param startActivityId 开始节点id + * @param endActivityId 结束节点id + * @return + */ + List historyFlowList(String processInstanceId, String startActivityId, String endActivityId); + + /** + * 变更流程状态 + * + * @param state 状态 + * @param processId 流程ID + * @return + */ + String changeState(String state, String processId); + + /** + * 删除部署流程 + * + * @param deploymentIds 部署流程id集合 + * @return + */ + boolean deleteDeployment(String deploymentIds); + + /** + * 上传部署流程 + * + * @param files 流程配置文件 + * @param category 流程分类 + * @param tenantIdList 租户id集合 + * @return + */ + boolean deployUpload(List files, String category, List tenantIdList); + + /** + * 部署流程 + * + * @param modelId 模型id + * @param category 分类 + * @param tenantIdList 租户id集合 + * @return + */ + boolean deployModel(String modelId, String category, List tenantIdList); + + /** + * 删除流程实例 + * + * @param processInstanceId 流程实例id + * @param deleteReason 删除原因 + * @return + */ + boolean deleteProcessInstance(String processInstanceId, String deleteReason); + + /** + * 保存/更新模型 + * + * @param model 模型 + * @return 模型 + */ + FlowModel submitModel(FlowModel model); + + /** + * 流程节点进程图 + * + * @param processDefinitionId + * @param processInstanceId + * @return + */ + Map modelView(String processDefinitionId, String processInstanceId); + + /** + * 流程节点进程图 + * + * @param processInstanceId + * @param httpServletResponse + */ + void diagramView(String processInstanceId, HttpServletResponse httpServletResponse); + + /** + * 流程图展示 + * + * @param processDefinitionId + * @param processInstanceId + * @param resourceType + * @param response + */ + void resourceView(String processDefinitionId, String processInstanceId, String resourceType, HttpServletResponse response); + + /** + * 获取XML + * + * @param model + * @return + */ + byte[] getModelEditorXML(FlowModel model); +} diff --git a/src/main/java/org/springblade/flow/engine/service/impl/ApplicationDetailService.java b/src/main/java/org/springblade/flow/engine/service/impl/ApplicationDetailService.java new file mode 100644 index 0000000..04e2e2c --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/service/impl/ApplicationDetailService.java @@ -0,0 +1,167 @@ +package org.springblade.flow.engine.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import jodd.util.StringUtil; +import lombok.extern.slf4j.Slf4j; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; +import org.springblade.common.constant.MonitorConstants; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.flow.engine.constant.BondApplyConstant; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.apply.operationSiteApply.service.impl.OperationSiteApplyServiceImpl; +import org.springblade.modules.flowable.examineInfo.service.impl.ExamineInfoServiceImpl; +import org.springblade.modules.flowable.processForm.utils.FormUtils; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class ApplicationDetailService { + + @Autowired + private ExamineInfoServiceImpl examineInfoService; + + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteApplyServiceImpl siteApplyService; + @Autowired + public TaskService taskService; + + @Autowired + private RuntimeService runtimeService; + + + public void createTaskChangeTaskName(String applicationId,String formId,String taskName,String userId,String processInstanceId){ + log.info(">>>>>>>>>>>>>>>>>createTaskChangeTaskName>>>>formId:{},applicationId:{},taskName{}",formId,applicationId,taskName); + try{ + log.info(">>>>>>>>>>>>>>>>>createTaskChangeTaskName"); + if(FormUtils.AGENT_ADMISSION_APPLICATION.equals(formId)){ //运维商准入申请 + OperationSiteApplyEntity apply = siteApplyService.getById(applicationId); + if(apply!=null){ + apply.setTaskName(taskName); + apply.setOperateUserIds(apply.getOperateUserIds()+","+userId); + siteApplyService.updateById(apply); + } + } + }catch (Exception e){ + log.error(">>>>>>>>>>>审核通过 后执行错误 editApplyStatus Exeception:{}",e); + e.printStackTrace(); + } + } + + //驳回到提交节点 + @Transactional(rollbackFor = Exception.class) + public void editApplyStatus(String processInstanceId){ + String applicationId = (String)runtimeService.getVariable(processInstanceId, "applicationId"); + Object formId = runtimeService.getVariable(processInstanceId, "formId"); + log.info("editApplyStatus-----{applicationId}:----- "+applicationId+"---------{formId}-----------"+formId); + + if(FormUtils.AGENT_ADMISSION_APPLICATION.equals(formId)){ //代理商准入申请 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(OperationSiteApplyEntity::getId, applicationId) + .eq(OperationSiteApplyEntity::getStatus, BondApplyConstant.APPLYSTATUS_ONE) + .set(OperationSiteApplyEntity::getStatus, BondApplyConstant.APPLYSTATUS_TWO) + .set(OperationSiteApplyEntity::getTaskName,"审核不通过"); + if(!siteApplyService.update(updateWrapper)){ + throw new ServiceException("驳回失败,更新数据错误"); + } + } + + //Db.update(" UPDATE `crm_item_manage` SET current_task_name=? WHERE process_instance_id=? ","驳回至提交节点",processInstanceId); + } + + /** + * 现有库存量 代理商的实时库存总额 A + * 安装未验收 安装验收下对应电站的物料 B + * 并网未验收 电站并网、上传合同、合同签署、并网验收下的物料 C + * 未入库订单 平台端代理商订单下待审批、待匹配、待发货订单以及代理商端待收货订单的物料汇总 D + * 退货未入库 发起电站的退货,尚未入库的物料汇总 E + * + * + * 授信额增额 申请给代理商的授信额增额 + * 授信额减额 申请给代理商的授信额减额 + * 说明: + * 1、标准授信额: 保证金 *系数+增+减额 + * 2、可授信额上限: 保证金*系数+增额+减额 + * 3、标准授信额余额=标准授信额-A-B-D-E + * 4、可授信额上限余额=可授信额上限-A-B-C-D-E + */ + @Transactional(rollbackFor = Exception.class) + public void endProcess(String processInstanceId){ + String applicationId = (String)runtimeService.getVariable(processInstanceId, "applicationId"); + String formId = (String)runtimeService.getVariable(processInstanceId, "formId"); + log.info("endProcess-----{applicationId}:----- "+applicationId+"---------{formId}-----------"+formId); + BladeUser currentUser = AuthUtil.getUser(); + String userName= currentUser.getNickName(); + String ccUserId=""; + try{ + if(FormUtils.AGENT_ADMISSION_APPLICATION.equals(formId)){ //代理商准入申请 + OperationSiteApplyEntity apply = siteApplyService.getById(applicationId); + apply.setStatus(BondApplyConstant.APPLYSTATUS_THREE); + apply.setTaskName("已完成"); + + //添加site 和user 表数据 + String siteId = siteService.saveSite(apply); + apply.setSiteId(siteId); + //获取流程审批,最后一级的抄送人 + ccUserId=siteApplyService.getLastAuditStep(apply.getProcessDefId()); + apply.setOperateUserIds(apply.getOperateUserIds()+","+ccUserId); + + siteApplyService.updateById(apply); + + } + + if(StringUtil.isNotBlank(ccUserId)){ + log.info(">>>>>>>>>>>>>>>>OneTaskCompleteListener ccUserId:{}",ccUserId); + String[] userids = ccUserId.split(","); + for(String id:userids){ + log.info("----oneTaskCompleteListener 抄送id:{}",id); + Task ta = taskService.newTask(); + ta.setName("抄送"); + ta.setCategory(BondApplyConstant.TYPE_THREE); + ta.setAssignee(id); + ta.setFormKey(formId); + ta.setParentTaskId(processInstanceId); + ta.setTenantId(applicationId); + taskService.saveTask(ta); + Map mapc=new HashMap<>(); + mapc.put("applicationId",applicationId); + mapc.put("formId",formId); + mapc.put("processInstanceId",processInstanceId); + taskService.setVariables(ta.getId(),mapc); + } + } + }catch (Exception e){ + log.error(">>>>>>>>>>>>审核通过后执行错误 endProcess Exeception:{}",e); + log.info(">>>>>审核通过后执行错误 endProcess formId:{} ; applicationId {}: ;",formId, applicationId); + e.printStackTrace(); + throw new ServiceException("请刷新稍后再试!"); + } + log.info(">>>>>>>>>>>>>>>>>>>>>审批完成 formId:{}",formId); + //保存流程的过程信息 + examineInfoService.saveExamineInfo(applicationId,userName+"(审批完成)",new Date(),userName,formId); + //Db.update("UPDATE `crm_item_manage` SET end_time=?,status='2',current_task_name='已完成' WHERE process_instance_id=? AND STATUS='1' ",date,processInstanceId); + log.info(">>>>>>>>>>>>>>审批完成 "); + } + + + + +} diff --git a/src/main/java/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.java b/src/main/java/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.java new file mode 100644 index 0000000..72411aa --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.java @@ -0,0 +1,646 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.node.ObjectNode; +import jakarta.servlet.http.HttpServletResponse; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.BpmnModel; +import org.flowable.bpmn.model.Process; +import org.flowable.common.engine.impl.util.IoUtil; +import org.flowable.common.engine.impl.util.io.StringStreamSource; +import org.flowable.editor.language.json.converter.BpmnJsonConverter; +import org.flowable.editor.language.json.converter.BpmnJsonConverterContext; +import org.flowable.editor.language.json.converter.CustomBpmnJsonConverterContext; +import org.flowable.engine.*; +import org.flowable.engine.history.HistoricActivityInstance; +import org.flowable.engine.history.HistoricProcessInstance; +import org.flowable.engine.impl.persistence.entity.ExecutionEntityImpl; +import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntityImpl; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.ProcessDefinition; +import org.flowable.engine.repository.ProcessDefinitionQuery; +import org.flowable.engine.runtime.ProcessInstance; +import org.flowable.engine.runtime.ProcessInstanceQuery; +import org.flowable.engine.task.Comment; +import org.flowable.image.ProcessDiagramGenerator; +import org.flowable.task.api.history.HistoricTaskInstance; +import org.flowable.task.api.history.HistoricTaskInstanceQuery; +import org.springblade.common.cache.UserCache; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.*; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.core.enums.FlowModeEnum; +import org.springblade.flow.core.utils.TaskUtil; +import org.springblade.flow.engine.constant.FlowEngineConstant; +import org.springblade.flow.engine.entity.FlowExecution; +import org.springblade.flow.engine.entity.FlowModel; +import org.springblade.flow.engine.entity.FlowProcess; +import org.springblade.flow.engine.mapper.FlowMapper; +import org.springblade.flow.engine.service.FlowEngineService; +import org.springblade.flow.engine.utils.FlowCache; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; +import org.springblade.modules.flowable.processForm.service.impl.ProcessDefAuditStepServiceImpl; +import org.springblade.modules.flowable.processForm.wrapper.ProcessDefAuditStepWrapper; +import org.springblade.modules.nh.wrapper.AlarmCodeWrapper; +import org.springblade.modules.system.pojo.entity.User; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.*; + +/** + * 工作流服务实现类 + * + * @author Chill + */ +@Slf4j +@Service +@AllArgsConstructor +public class FlowEngineServiceImpl extends ServiceImpl implements FlowEngineService { + private static final String ALREADY_IN_STATE = "already in state"; + private static final String USR_TASK = "userTask"; + private static final String IMAGE_NAME = "image"; + private static final String XML_NAME = "xml"; + private static final Integer INT_1024 = 1024; + private static final BpmnJsonConverter BPMN_JSON_CONVERTER = new BpmnJsonConverter(); + private static final BpmnXMLConverter BPMN_XML_CONVERTER = new BpmnXMLConverter(); + private final ObjectMapper objectMapper; + private final RepositoryService repositoryService; + private final RuntimeService runtimeService; + private final HistoryService historyService; + private final TaskService taskService; + private final ProcessEngine processEngine; + private final ProcessDefAuditStepServiceImpl stepService; + + @Override + public IPage selectFlowPage(IPage page, FlowModel flowModel) { + return page.setRecords(baseMapper.selectFlowPage(page, flowModel)); + } + + @Override + public IPage selectProcessPage(IPage page, String category, Integer mode) { + ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery().latestVersion().orderByProcessDefinitionKey().asc(); + // 通用流程 + if (mode == FlowModeEnum.COMMON.getMode()) { + processDefinitionQuery.processDefinitionWithoutTenantId(); + } + // 定制流程 + else if (!AuthUtil.isAdministrator()) { + processDefinitionQuery.processDefinitionTenantId(AuthUtil.getTenantId()); + } + if (StringUtils.isNotEmpty(category)) { + processDefinitionQuery.processDefinitionCategory(category); + } + List processDefinitionList = processDefinitionQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize())); + List flowProcessList = new ArrayList<>(); + processDefinitionList.forEach(processDefinition -> { + String deploymentId = processDefinition.getDeploymentId(); + Deployment deployment = repositoryService.createDeploymentQuery().deploymentId(deploymentId).singleResult(); + FlowProcess flowProcess = new FlowProcess((ProcessDefinitionEntityImpl) processDefinition); + flowProcess.setDeploymentTime(deployment.getDeploymentTime()); + flowProcessList.add(flowProcess); + }); + page.setTotal(processDefinitionQuery.count()); + page.setRecords(flowProcessList); + return page; + } + + @Override + public IPage selectFollowPage(IPage page, String processInstanceId, String processDefinitionKey) { + ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery(); + if (StringUtil.isNotBlank(processInstanceId)) { + processInstanceQuery.processInstanceId(processInstanceId); + } + if (StringUtil.isNotBlank(processDefinitionKey)) { + processInstanceQuery.processDefinitionKey(processDefinitionKey); + } + List flowList = new ArrayList<>(); + List procInsList = processInstanceQuery.listPage(Func.toInt((page.getCurrent() - 1) * page.getSize()), Func.toInt(page.getSize())); + procInsList.forEach(processInstance -> { + ExecutionEntityImpl execution = (ExecutionEntityImpl) processInstance; + FlowExecution flowExecution = new FlowExecution(); + flowExecution.setId(execution.getId()); + flowExecution.setName(execution.getName()); + flowExecution.setStartUserId(execution.getStartUserId()); + User taskUser = UserCache.getUserByTaskUser(execution.getStartUserId()); + if (taskUser != null) { + flowExecution.setStartUser(taskUser.getName()); + } + flowExecution.setStartTime(execution.getStartTime()); + flowExecution.setExecutionId(execution.getId()); + flowExecution.setProcessInstanceId(execution.getProcessInstanceId()); + flowExecution.setProcessDefinitionId(execution.getProcessDefinitionId()); + flowExecution.setProcessDefinitionKey(execution.getProcessDefinitionKey()); + flowExecution.setSuspensionState(execution.getSuspensionState()); + FlowProcess processDefinition = FlowCache.getProcessDefinition(execution.getProcessDefinitionId()); + flowExecution.setCategory(processDefinition.getCategory()); + flowExecution.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); + flowList.add(flowExecution); + }); + page.setTotal(processInstanceQuery.count()); + page.setRecords(flowList); + return page; + } + + @Override + public List historyFlowList(String processInstanceId, String startActivityId, String endActivityId) { + List flowList = new LinkedList<>(); + List historicActivityInstanceList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().orderByHistoricActivityInstanceEndTime().asc().list(); + boolean start = false; + Map activityMap = new HashMap<>(16); + for (int i = 0; i < historicActivityInstanceList.size(); i++) { + HistoricActivityInstance historicActivityInstance = historicActivityInstanceList.get(i); + // 过滤开始节点前的节点 + if (StringUtil.isNotBlank(startActivityId) && startActivityId.equals(historicActivityInstance.getActivityId())) { + start = true; + } + if (StringUtil.isNotBlank(startActivityId) && !start) { + continue; + } + // 显示开始节点和结束节点,并且执行人不为空的任务 + if (StringUtils.equals(USR_TASK, historicActivityInstance.getActivityType()) + || FlowEngineConstant.START_EVENT.equals(historicActivityInstance.getActivityType()) + || FlowEngineConstant.END_EVENT.equals(historicActivityInstance.getActivityType())) { + // 给节点增加序号 + activityMap.computeIfAbsent(historicActivityInstance.getActivityId(), k -> activityMap.size()); + BladeFlow flow = new BladeFlow(); + flow.setHistoryActivityId(historicActivityInstance.getActivityId()); + flow.setHistoryActivityName(historicActivityInstance.getActivityName()); + flow.setCreateTime(historicActivityInstance.getStartTime()); + flow.setEndTime(historicActivityInstance.getEndTime()); + String durationTime = DateUtil.secondToTime(Func.toLong(historicActivityInstance.getDurationInMillis(), 0L) / 1000); + flow.setHistoryActivityDurationTime(durationTime); + // 获取流程发起人名称 + if (FlowEngineConstant.START_EVENT.equals(historicActivityInstance.getActivityType())) { + List processInstanceList = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).orderByProcessInstanceStartTime().asc().list(); + if (!processInstanceList.isEmpty()) { + if (StringUtil.isNotBlank(processInstanceList.get(0).getStartUserId())) { + String taskUser = processInstanceList.get(0).getStartUserId(); + User user = UserCache.getUser(TaskUtil.getUserId(taskUser)); + if (user != null) { + flow.setAssignee(historicActivityInstance.getAssignee()); + flow.setAssigneeName(user.getName()); + } + } + } + } + // 获取任务执行人名称 + if (StringUtil.isNotBlank(historicActivityInstance.getAssignee())) { + User user = UserCache.getUser(TaskUtil.getUserId(historicActivityInstance.getAssignee())); + if (user != null) { + flow.setAssignee(historicActivityInstance.getAssignee()); + flow.setAssigneeName(user.getName()); + } + } + // 获取意见评论内容 + if (StringUtil.isNotBlank(historicActivityInstance.getTaskId())) { + List commentList = taskService.getTaskComments(historicActivityInstance.getTaskId()); + if (!commentList.isEmpty()) { + flow.setComment(commentList.get(0).getFullMessage()); + } + } + flowList.add(flow); + } + // 过滤结束节点后的节点 + if (StringUtils.isNotBlank(endActivityId) && endActivityId.equals(historicActivityInstance.getActivityId())) { + boolean temp = false; + Integer activityNum = activityMap.get(historicActivityInstance.getActivityId()); + // 该活动节点,后续节点是否在结束节点之前,在后续节点中是否存在 + for (int j = i + 1; j < historicActivityInstanceList.size(); j++) { + HistoricActivityInstance hi = historicActivityInstanceList.get(j); + Integer activityNumA = activityMap.get(hi.getActivityId()); + boolean numberTemp = activityNumA != null && activityNumA < activityNum; + boolean equalsTemp = StringUtils.equals(hi.getActivityId(), historicActivityInstance.getActivityId()); + if (numberTemp || equalsTemp) { + temp = true; + } + } + if (!temp) { + break; + } + } + } + return flowList; + } + + public List findHidTask(String processInstanceId) { + List flowList = new LinkedList<>(); + HistoricTaskInstanceQuery doneQuery = historyService.createHistoricTaskInstanceQuery().finished() + .includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc(); + if(StringUtil.isNotBlank(processInstanceId)){ + doneQuery.processInstanceId(processInstanceId); + } + List doneList = doneQuery.list(); + doneList.forEach(historicTaskInstance -> { + BladeFlow flow = new BladeFlow(); + flow.setTaskId(historicTaskInstance.getId()); + flow.setTaskDefinitionKey(historicTaskInstance.getTaskDefinitionKey()); + flow.setTaskName(historicTaskInstance.getName()); + flow.setAssignee(historicTaskInstance.getAssignee()); + flow.setCreateTime(historicTaskInstance.getCreateTime()); + flow.setExecutionId(historicTaskInstance.getExecutionId()); + flow.setHistoryTaskEndTime(historicTaskInstance.getEndTime()); + flow.setVariables(historicTaskInstance.getProcessVariables()); + + FlowProcess processDefinition = FlowCache.getProcessDefinition(historicTaskInstance.getProcessDefinitionId()); + flow.setProcessDefinitionId(processDefinition.getId()); + flow.setProcessDefinitionName(processDefinition.getName()); + flow.setProcessDefinitionKey(processDefinition.getKey()); + flow.setProcessDefinitionVersion(processDefinition.getVersion()); + flow.setCategory(processDefinition.getCategory()); + flow.setCategoryName(FlowCache.getCategoryName(processDefinition.getCategory())); + + flow.setProcessInstanceId(historicTaskInstance.getProcessInstanceId()); + flow.setHistoryProcessInstanceId(historicTaskInstance.getProcessInstanceId()); + HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(historicTaskInstance.getProcessInstanceId()).singleResult(); + if (Func.isNotEmpty(historicProcessInstance)) { + String[] businessKey = Func.toStrArray(StringPool.COLON, historicProcessInstance.getBusinessKey()); + if(businessKey.length>1){ + flow.setBusinessTable(businessKey[0]); + flow.setBusinessId(businessKey[1]); + }else{ + flow.setBusinessId(businessKey[0]); + } + if (historicProcessInstance.getEndActivityId() != null) { + flow.setProcessIsFinished(FlowEngineConstant.STATUS_FINISHED); + } else { + flow.setProcessIsFinished(FlowEngineConstant.STATUS_UNFINISHED); + } + } + flow.setStatus(FlowEngineConstant.STATUS_FINISH); + flowList.add(flow); + }); + return flowList; + } + + public List findBladeFlowList(String processInstanceId,String defId){ + List list = findHidTask(processInstanceId); + List staspList = stepService.findListByDefId(defId); + List flaList = ProcessDefAuditStepWrapper.build().listVO(staspList); + flaList.forEach(processInstance -> { + processInstance.setStatus("1"); + if(list!=null){ +//customer_Task_53927ec0c63243e296468c63a24f64a1 + for(BladeFlow bl:list){ + if(bl.getTaskDefinitionKey().contains(processInstance.getId())){ + processInstance.setStatus("2"); + processInstance.setEndTime(bl.getHistoryTaskEndTime()); + } + + } + + } + }); + return flaList; + } + + + + @Override + public String changeState(String state, String processId) { + try { + if (state.equals(FlowEngineConstant.ACTIVE)) { + repositoryService.activateProcessDefinitionById(processId, true, null); + return StringUtil.format("激活ID为 [{}] 的流程成功", processId); + } else if (state.equals(FlowEngineConstant.SUSPEND)) { + repositoryService.suspendProcessDefinitionById(processId, true, null); + return StringUtil.format("挂起ID为 [{}] 的流程成功", processId); + } else { + return "暂无流程变更"; + } + } catch (Exception e) { + if (e.getMessage().contains(ALREADY_IN_STATE)) { + return StringUtil.format("ID为 [{}] 的流程已是此状态,无需操作", processId); + } + return e.getMessage(); + } + } + + @Override + public boolean deleteDeployment(String deploymentIds) { + Func.toStrList(deploymentIds).forEach(deploymentId -> repositoryService.deleteDeployment(deploymentId, true)); + return true; + } + + @Override + public boolean deployUpload(List files, String category, List tenantIdList) { + files.forEach(file -> { + try { + String fileName = file.getOriginalFilename(); + InputStream fileInputStream = file.getInputStream(); + byte[] bytes = FileUtil.copyToByteArray(fileInputStream); + if (Func.isNotEmpty(tenantIdList)) { + tenantIdList.forEach(tenantId -> { + Deployment deployment = repositoryService.createDeployment().addBytes(fileName, bytes).tenantId(tenantId).deploy(); + deploy(deployment, category); + }); + } else { + Deployment deployment = repositoryService.createDeployment().addBytes(fileName, bytes).deploy(); + deploy(deployment, category); + } + } catch (IOException e) { + e.printStackTrace(); + } + }); + return true; + } + + @Override + public boolean deployModel(String modelId, String category, List tenantIdList) { + FlowModel model = this.getById(modelId); + if (model == null) { + throw new ServiceException("未找到模型 id: " + modelId); + } + byte[] bytes = getBpmnXML(model); + String processName = model.getName(); + if (!StringUtil.endsWithIgnoreCase(processName, FlowEngineConstant.SUFFIX)) { + processName += FlowEngineConstant.SUFFIX; + } + String finalProcessName = processName; + if (Func.isNotEmpty(tenantIdList)) { + tenantIdList.forEach(tenantId -> { + Deployment deployment = repositoryService.createDeployment().addBytes(finalProcessName, bytes).name(model.getName()).key(model.getModelKey()).tenantId(tenantId).deploy(); + deploy(deployment, category); + }); + } else { + Deployment deployment = repositoryService.createDeployment().addBytes(finalProcessName, bytes).name(model.getName()).key(model.getModelKey()).deploy(); + deploy(deployment, category); + } + return true; + } + + @Override + public boolean deleteProcessInstance(String processInstanceId, String deleteReason) { + runtimeService.deleteProcessInstance(processInstanceId, deleteReason); + return true; + } + + private void deploy(Deployment deployment, String category) { + log.debug("流程部署--------deploy: " + deployment + " 分类---------->" + category); + List list = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).list(); + StringBuilder logBuilder = new StringBuilder(500); + List logArgs = new ArrayList<>(); + // 设置流程分类 + for (ProcessDefinition processDefinition : list) { + if (StringUtil.isNotBlank(category)) { + repositoryService.setProcessDefinitionCategory(processDefinition.getId(), category); + } + logBuilder.append("部署成功,流程ID={} \n"); + logArgs.add(processDefinition.getId()); + } + if (list.isEmpty()) { + throw new ServiceException("部署失败,未找到流程"); + } else { + log.info(logBuilder.toString(), logArgs.toArray()); + } + } + + @Override + public FlowModel submitModel(FlowModel model) { + FlowModel flowModel = new FlowModel(); + flowModel.setId(model.getId()); + flowModel.setVersion(Func.toInt(model.getVersion(), 0) + 1); + flowModel.setName(model.getName()); + flowModel.setModelKey(model.getModelKey()); + flowModel.setModelType(FlowModel.MODEL_TYPE_BPMN); + flowModel.setCreatedBy(TaskUtil.getTaskUser()); + flowModel.setDescription(model.getDescription()); + flowModel.setLastUpdated(Calendar.getInstance().getTime()); + flowModel.setLastUpdatedBy(TaskUtil.getTaskUser()); + flowModel.setTenantId(AuthUtil.getTenantId()); + flowModel.setModelEditorXml(model.getModelEditorXml()); + if (StringUtil.isBlank(model.getId())) { + flowModel.setCreated(Calendar.getInstance().getTime()); + } + if (StringUtil.isNotBlank(model.getModelEditorXml())) { + flowModel.setModelEditorJson(getBpmnJson(model.getModelEditorXml())); + } + this.saveOrUpdate(flowModel); + return flowModel; + } + + @Override + public Map modelView(String processDefinitionId, String processInstanceId) { + Map result = new HashMap<>(); + // 节点标记 + if (StringUtil.isNotBlank(processInstanceId)) { + result.put("flow", this.historyFlowList(processInstanceId, null, null)); + HistoricProcessInstance processInstance = historyService.createHistoricProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + processDefinitionId = processInstance.getProcessDefinitionId(); + } + BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); + // 流程图展示 + result.put("xml", new String(new BpmnXMLConverter().convertToXML(bpmnModel))); + return result; + } + + @Override + public void diagramView(String processInstanceId, HttpServletResponse httpServletResponse) { + // 获得当前活动的节点 + String processDefinitionId; + // 如果流程已经结束,则得到结束节点 + if (this.isFinished(processInstanceId)) { + HistoricProcessInstance pi = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + processDefinitionId = pi.getProcessDefinitionId(); + } else { + // 如果流程没有结束,则取当前活动节点 + // 根据流程实例ID获得当前处于活动状态的ActivityId合集 + ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + processDefinitionId = pi.getProcessDefinitionId(); + } + List highLightedActivities = new ArrayList<>(); + + // 获得活动的节点 + List highLightedActivityList = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId).orderByHistoricActivityInstanceStartTime().asc().list(); + + for (HistoricActivityInstance tempActivity : highLightedActivityList) { + String activityId = tempActivity.getActivityId(); + highLightedActivities.add(activityId); + } + + List flows = new ArrayList<>(); + // 获取流程图 + BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinitionId); + ProcessEngineConfiguration engConf = processEngine.getProcessEngineConfiguration(); + + ProcessDiagramGenerator diagramGenerator = engConf.getProcessDiagramGenerator(); + InputStream in = diagramGenerator.generateDiagram(bpmnModel, "bmp", highLightedActivities, flows, engConf.getActivityFontName(), + engConf.getLabelFontName(), engConf.getAnnotationFontName(), engConf.getClassLoader(), 1.0, true); + OutputStream out = null; + byte[] buf = new byte[1024]; + int length; + try { + out = httpServletResponse.getOutputStream(); + while ((length = in.read(buf)) != -1) { + out.write(buf, 0, length); + } + } catch (IOException e) { + log.error("操作异常", e); + } finally { + IoUtil.closeSilently(out); + IoUtil.closeSilently(in); + } + } + + @Override + public void resourceView(String processDefinitionId, String processInstanceId, String resourceType, HttpServletResponse response) { + if (StringUtil.isAllBlank(processDefinitionId, processInstanceId)) { + return; + } + if (StringUtil.isBlank(processDefinitionId)) { + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult(); + processDefinitionId = processInstance.getProcessDefinitionId(); + } + ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult(); + String resourceName = ""; + if (resourceType.equals(IMAGE_NAME)) { + resourceName = processDefinition.getDiagramResourceName(); + } else if (resourceType.equals(XML_NAME)) { + resourceName = processDefinition.getResourceName(); + } + try { + InputStream resourceAsStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), resourceName); + byte[] b = new byte[1024]; + int len; + while ((len = resourceAsStream.read(b, 0, INT_1024)) != -1) { + response.getOutputStream().write(b, 0, len); + } + } catch (Exception exception) { + exception.printStackTrace(); + } + } + + @Override + public byte[] getModelEditorXML(FlowModel model) { + return getBpmnXML(model); + } + + /** + * 是否已完结 + * + * @param processInstanceId 流程实例id + * @return bool + */ + private boolean isFinished(String processInstanceId) { + return historyService.createHistoricProcessInstanceQuery().finished() + .processInstanceId(processInstanceId).count() > 0; + } + + + /** + * xml转bpmn json + * + * @param xml xml + * @return json + */ + private String getBpmnJson(String xml) { + return BPMN_JSON_CONVERTER.convertToJson(getBpmnModel(xml)).toString(); + } + + /** + * xml转bpmnModel + * + * @param xml xml + * @return bpmnModel + */ + private BpmnModel getBpmnModel(String xml) { + return BPMN_XML_CONVERTER.convertToBpmnModel(new StringStreamSource(xml), false, false); + } + + private byte[] getBpmnXML(FlowModel model) { + BpmnModel bpmnModel = getBpmnModel(model); + return getBpmnXML(bpmnModel); + } + + private byte[] getBpmnXML(BpmnModel bpmnModel) { + for (Process process : bpmnModel.getProcesses()) { + if (StringUtils.isNotEmpty(process.getId())) { + char firstCharacter = process.getId().charAt(0); + if (Character.isDigit(firstCharacter)) { + process.setId("a" + process.getId()); + } + } + } + return BPMN_XML_CONVERTER.convertToXML(bpmnModel); + } + + private BpmnModel getBpmnModel(FlowModel model) { + BpmnModel bpmnModel; + try { + Map formMap = new HashMap<>(16); + Map decisionTableMap = new HashMap<>(16); + + List referencedModels = baseMapper.findByParentModelId(model.getId()); + for (FlowModel childModel : referencedModels) { + if (FlowModel.MODEL_TYPE_FORM == childModel.getModelType()) { + formMap.put(childModel.getId(), childModel); + + } else if (FlowModel.MODEL_TYPE_DECISION_TABLE == childModel.getModelType()) { + decisionTableMap.put(childModel.getId(), childModel); + } + } + bpmnModel = getBpmnModel(model, formMap, decisionTableMap); + } catch (Exception e) { + log.error("Could not generate BPMN 2.0 model for {}", model.getId(), e); + throw new ServiceException("Could not generate BPMN 2.0 model"); + } + return bpmnModel; + } + + private BpmnModel getBpmnModel(FlowModel model, Map formMap, Map decisionTableMap) { + try { + ObjectNode editorJsonNode = (ObjectNode) objectMapper.readTree(model.getModelEditorJson()); + Map formKeyMap = new HashMap<>(16); + for (FlowModel formModel : formMap.values()) { + formKeyMap.put(formModel.getId(), formModel.getModelKey()); + } + Map decisionTableKeyMap = new HashMap<>(16); + for (FlowModel decisionTableModel : decisionTableMap.values()) { + decisionTableKeyMap.put(decisionTableModel.getId(), decisionTableModel.getModelKey()); + } + BpmnJsonConverterContext converterContext = new CustomBpmnJsonConverterContext(formKeyMap, decisionTableKeyMap); + return BPMN_JSON_CONVERTER.convertToBpmnModel(editorJsonNode, converterContext); + } catch (Exception e) { + log.error("Could not generate BPMN 2.0 model for {}", model.getId(), e); + throw new ServiceException("Could not generate BPMN 2.0 model"); + } + } + +} diff --git a/src/main/java/org/springblade/flow/engine/utils/FlowCache.java b/src/main/java/org/springblade/flow/engine/utils/FlowCache.java new file mode 100644 index 0000000..2af34a3 --- /dev/null +++ b/src/main/java/org/springblade/flow/engine/utils/FlowCache.java @@ -0,0 +1,89 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.flow.engine.utils; + +import org.flowable.engine.RepositoryService; +import org.flowable.engine.impl.persistence.entity.ProcessDefinitionEntityImpl; +import org.flowable.engine.repository.ProcessDefinition; +import org.springblade.common.cache.DictCache; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.flow.engine.entity.FlowProcess; + +/** + * 流程缓存 + * + * @author Chill + */ +public class FlowCache { + + private static final String FLOW_CACHE = "flow:process"; + private static final String FLOW_DEFINITION_ID = "definition:id"; + private static RepositoryService repositoryService; + + private static RepositoryService getRepositoryService() { + if (repositoryService == null) { + repositoryService = SpringUtil.getBean(RepositoryService.class); + } + return repositoryService; + } + + /** + * 获得流程定义对象 + * + * @param processDefinitionId 流程对象id + * @return + */ + public static FlowProcess getProcessDefinition(String processDefinitionId) { + return CacheUtil.get(FLOW_CACHE, FLOW_DEFINITION_ID, processDefinitionId, () -> { + ProcessDefinition processDefinition = getRepositoryService().createProcessDefinitionQuery().processDefinitionId(processDefinitionId).singleResult(); + ProcessDefinitionEntityImpl processDefinitionEntity = BeanUtil.copyProperties(processDefinition, ProcessDefinitionEntityImpl.class); + return new FlowProcess(processDefinitionEntity); + }); + } + + /** + * 获取流程类型名 + * + * @param category 流程类型 + * @return + */ + public static String getCategoryName(String category) { + if (Func.isEmpty(category)) { + return StringPool.EMPTY; + } + String[] categoryArr = category.split(StringPool.UNDERSCORE); + if (categoryArr.length <= 1) { + return StringPool.EMPTY; + } else { + return DictCache.getValue(category.split(StringPool.UNDERSCORE)[0], Func.toInt(category.split(StringPool.UNDERSCORE)[1])); + } + } + +} diff --git a/src/main/java/org/springblade/job/controller/JobInfoController.java b/src/main/java/org/springblade/job/controller/JobInfoController.java new file mode 100644 index 0000000..93094f3 --- /dev/null +++ b/src/main/java/org/springblade/job/controller/JobInfoController.java @@ -0,0 +1,165 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.job.pojo.entity.JobInfo; +import org.springblade.job.service.IJobInfoService; +import org.springblade.job.pojo.vo.JobInfoVO; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * 任务信息表 控制器 + * + * @author BladeX + */ +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_JOB_NAME + "/job-info") +@Tag(name = "任务信息表", description = "任务信息表接口") +public class JobInfoController extends BladeController { + + private final IJobInfoService jobInfoService; + + /** + * 任务信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入jobInfo") + public R detail(JobInfo jobInfo) { + JobInfo detail = jobInfoService.getOne(Condition.getQueryWrapper(jobInfo)); + return R.data(detail); + } + + /** + * 任务信息表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入jobInfo") + public R> list(@Parameter(hidden = true) @RequestParam Map jobInfo, Query query) { + IPage pages = jobInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(jobInfo, JobInfo.class)); + return R.data(pages); + } + + /** + * 任务信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入jobInfo") + public R> page(JobInfoVO jobInfo, Query query) { + IPage pages = jobInfoService.selectJobInfoPage(Condition.getPage(query), jobInfo); + return R.data(pages); + } + + /** + * 任务信息表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入jobInfo") + public R save(@Valid @RequestBody JobInfo jobInfo) { + return R.status(jobInfoService.save(jobInfo)); + } + + /** + * 任务信息表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入jobInfo") + public R update(@Valid @RequestBody JobInfo jobInfo) { + return R.status(jobInfoService.updateById(jobInfo)); + } + + /** + * 任务信息表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入jobInfo") + public R submit(@Valid @RequestBody JobInfo jobInfo) { + return R.status(jobInfoService.submitAndSync(jobInfo)); + } + + /** + * 任务信息表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(jobInfoService.removeAndSync(Func.toLongList(ids))); + } + + /** + * 任务信息表 变更状态 + */ + @PostMapping("/change") + @ApiOperationSupport(order = 8) + @Operation(summary = "变更状态", description = "传入id与status") + public R change(@Parameter(description = "主键", required = true) @RequestParam Long id, @Parameter(description = "是否启用", required = true) @RequestParam Integer enable) { + return R.status(jobInfoService.changeServerJob(id, enable)); + } + + /** + * 运行服务 + */ + @PostMapping("run") + @ApiOperationSupport(order = 9) + @Operation(summary = "运行服务", description = "传入jobInfoId") + public R run(@Parameter(description = "主键", required = true) @RequestParam Long id) { + return R.status(jobInfoService.runServerJob(id)); + } + + + /** + * 任务信息数据同步 + */ + @PostMapping("sync") + @ApiOperationSupport(order = 10) + @Operation(summary = "任务信息数据同步", description = "任务信息数据同步") + public R sync() { + return R.status(jobInfoService.sync()); + } + +} diff --git a/src/main/java/org/springblade/job/controller/JobServerController.java b/src/main/java/org/springblade/job/controller/JobServerController.java new file mode 100644 index 0000000..f75a62b --- /dev/null +++ b/src/main/java/org/springblade/job/controller/JobServerController.java @@ -0,0 +1,163 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.job.pojo.entity.JobServer; +import org.springblade.job.service.IJobServerService; +import org.springblade.job.pojo.vo.JobServerVO; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 任务服务表 控制器 + * + * @author BladeX + */ +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_JOB_NAME + "/job-server") +@Tag(name = "任务服务表", description = "任务服务表接口") +public class JobServerController extends BladeController { + + private final IJobServerService jobServerService; + + /** + * 任务服务表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入jobServer") + public R detail(JobServer jobServer) { + JobServer detail = jobServerService.getOne(Condition.getQueryWrapper(jobServer)); + return R.data(detail); + } + + /** + * 任务服务表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入jobServer") + public R> list(@Parameter(hidden = true) @RequestParam Map jobServer, Query query) { + IPage pages = jobServerService.page(Condition.getPage(query), Condition.getQueryWrapper(jobServer, JobServer.class)); + return R.data(pages); + } + + /** + * 任务服务表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入jobServer") + public R> page(JobServerVO jobServer, Query query) { + IPage pages = jobServerService.selectJobServerPage(Condition.getPage(query), jobServer); + return R.data(pages); + } + + /** + * 任务服务表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入jobServer") + public R save(@Valid @RequestBody JobServer jobServer) { + return R.status(jobServerService.save(jobServer)); + } + + /** + * 任务服务表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入jobServer") + public R update(@Valid @RequestBody JobServer jobServer) { + return R.status(jobServerService.updateById(jobServer)); + } + + /** + * 任务服务表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入jobServer") + public R submit(@Valid @RequestBody JobServer jobServer) { + return R.status(jobServerService.submitAndSync(jobServer)); + } + + /** + * 任务服务表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(jobServerService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 应用服务信息 列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @Operation(summary = "应用服务信息", description = "应用服务信息") + public R select() { + List list = jobServerService.list(); + list.forEach(jobServer -> jobServer.setJobAppName( + jobServer.getJobAppName() + StringPool.COLON + StringPool.SPACE + StringPool.LEFT_BRACKET + + jobServer.getJobServerName() + StringPool.SPACE + StringPool.DASH + StringPool.SPACE + jobServer.getJobServerUrl() + StringPool.RIGHT_BRACKET) + ); + return R.data(list); + } + + /** + * 任务服务数据同步 + */ + @PostMapping("sync") + @ApiOperationSupport(order = 9) + @Operation(summary = "任务服务数据同步", description = "任务服务数据同步") + public R sync() { + jobServerService.list().forEach(jobServerService::sync); + return R.success("同步完毕"); + } + + +} diff --git a/src/main/java/org/springblade/job/mapper/JobInfoMapper.java b/src/main/java/org/springblade/job/mapper/JobInfoMapper.java new file mode 100644 index 0000000..3d6ed2b --- /dev/null +++ b/src/main/java/org/springblade/job/mapper/JobInfoMapper.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.job.pojo.entity.JobInfo; +import org.springblade.job.pojo.vo.JobInfoVO; + +import java.util.List; + +/** + * 任务信息表 Mapper 接口 + * + * @author BladeX + */ +public interface JobInfoMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param jobInfo + * @return + */ + List selectJobInfoPage(IPage page, JobInfoVO jobInfo); + +} diff --git a/src/main/java/org/springblade/job/mapper/JobInfoMapper.xml b/src/main/java/org/springblade/job/mapper/JobInfoMapper.xml new file mode 100644 index 0000000..0c29c51 --- /dev/null +++ b/src/main/java/org/springblade/job/mapper/JobInfoMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/job/mapper/JobServerMapper.java b/src/main/java/org/springblade/job/mapper/JobServerMapper.java new file mode 100644 index 0000000..f37adbb --- /dev/null +++ b/src/main/java/org/springblade/job/mapper/JobServerMapper.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.job.pojo.entity.JobServer; +import org.springblade.job.pojo.vo.JobServerVO; + +import java.util.List; + +/** + * 任务服务表 Mapper 接口 + * + * @author BladeX + */ +public interface JobServerMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param jobServer + * @return + */ + List selectJobServerPage(IPage page, JobServerVO jobServer); + +} diff --git a/src/main/java/org/springblade/job/mapper/JobServerMapper.xml b/src/main/java/org/springblade/job/mapper/JobServerMapper.xml new file mode 100644 index 0000000..fd8715f --- /dev/null +++ b/src/main/java/org/springblade/job/mapper/JobServerMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/job/pojo/dto/JobDTO.java b/src/main/java/org/springblade/job/pojo/dto/JobDTO.java new file mode 100644 index 0000000..e0aad43 --- /dev/null +++ b/src/main/java/org/springblade/job/pojo/dto/JobDTO.java @@ -0,0 +1,56 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.pojo.dto; + +import lombok.Data; +import org.springblade.job.pojo.entity.JobInfo; +import org.springblade.job.pojo.entity.JobServer; +import tech.powerjob.client.PowerJobClient; + +/** + * 任务数据DTO + * + * @author Chill + */ +@Data +public class JobDTO { + + /** + * 任务信息类 + */ + private JobInfo jobInfo; + + /** + * 任务服务类 + */ + private JobServer jobServer; + + /** + * 任务客户端类 + */ + private PowerJobClient powerJobClient; + +} diff --git a/src/main/java/org/springblade/job/pojo/entity/JobInfo.java b/src/main/java/org/springblade/job/pojo/entity/JobInfo.java new file mode 100644 index 0000000..dff61dc --- /dev/null +++ b/src/main/java/org/springblade/job/pojo/entity/JobInfo.java @@ -0,0 +1,202 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 任务信息表 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_job_info") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "任务信息表") +public class JobInfo extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务服务ID + */ + @Schema(description = "任务服务ID") + private Long jobServerId; + /** + * 任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID + */ + @Schema(description = "任务 ID,可选,null 代表创建任务,否则填写需要修改的任务 ID") + private Long jobId; + /** + * 任务名称 + */ + @Schema(description = "任务名称") + private String jobName; + /** + * 任务描述 + */ + @Schema(description = "任务描述") + private String jobDescription; + /** + * 任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段 + */ + @Schema(description = "任务参数,Processor#process 方法入参 TaskContext 对象的 jobParams 字段") + private String jobParams; + /** + * 时间表达式类型,枚举值 + */ + @Schema(description = "时间表达式类型,枚举值") + private Integer timeExpressionType; + /** + * 时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式 + */ + @Schema(description = "时间表达式,填写类型由 timeExpressionType 决定,比如 CRON 需要填写 CRON 表达式") + private String timeExpression; + /** + * 执行类型,枚举值 + */ + @Schema(description = "执行类型,枚举值") + private Integer executeType; + /** + * 处理器类型,枚举值 + */ + @Schema(description = "处理器类型,枚举值") + private Integer processorType; + /** + * 处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo + */ + @Schema(description = "处理器参数,填写类型由 processorType 决定,如Java 处理器需要填写全限定类名,如:com.github.kfcfans.oms.processors.demo.MapReduceProcessorDemo") + private String processorInfo; + /** + * 最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例) + */ + @Schema(description = "最大实例数,该任务同时执行的数量(任务和实例就像是类和对象的关系,任务被调度执行后被称为实例)") + private Integer maxInstanceNum; + /** + * 单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量 + */ + @Schema(description = "单机线程并发数,表示该实例执行过程中每个Worker 使用的线程数量") + private Integer concurrency; + /** + * 任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败 + */ + @Schema(description = "任务实例运行时间限制,0 代表无任何限制,超时会被打断并判定为执行失败") + private Long instanceTimeLimit; + /** + * instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用 + */ + @Schema(description = "instanceRetryNum 任务实例重试次数,整个任务失败时重试,代价大,不推荐使用") + private Integer instanceRetryNum; + /** + * taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用 + */ + @Schema(description = "taskRetryNum Task 重试次数,每个子 Task 失败后单独重试,代价小,推荐使用") + private Integer taskRetryNum; + /** + * minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制 + */ + @Schema(description = "minCpuCores 最小可用 CPU 核心数,CPU 可用核心数小于该值的 Worker 将不会执行该任务,0 代表无任何限制") + private BigDecimal minCpuCores; + /** + * 最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制 + */ + @Schema(description = "最小内存大小(GB),可用内存小于该值的Worker 将不会执行该任务,0 代表无任何限制") + private BigDecimal minMemorySpace; + /** + * 最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制 + */ + @Schema(description = "最小磁盘大小(GB),可用磁盘空间小于该值的Worker 将不会执行该任务,0 代表无任何限制") + private BigDecimal minDiskSpace; + /** + * 指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器 + */ + @Schema(description = "指定机器执行,设置该参数后只有列表中的机器允许执行该任务,空代表不指定机器") + private String designatedWorkers; + /** + * 最大执行机器数量,限定调动执行的机器数量,0代表无限制 + */ + @Schema(description = "最大执行机器数量,限定调动执行的机器数量,0代表无限制") + private Integer maxWorkerCount; + /** + * 接收报警的用户 ID 列表 + */ + @Schema(description = "接收报警的用户 ID 列表") + private String notifyUserIds; + /** + * 是否启用该任务,未启用的任务不会被调度 + */ + @Schema(description = "是否启用该任务,未启用的任务不会被调度") + private Integer enable; + /** + * 调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST) + */ + @Schema(description = "调度策略,枚举,目前支持随机(RANDOM)和 健康度优先(HEALTH_FIRST)") + private Integer dispatchStrategy; + /** + * lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围) + */ + @Schema(description = "lifecycle 生命周期(预留,用于指定定时调度任务的生效时间范围)") + private String lifecycle; + /** + * 错误阈值,0代表不限制 + */ + @Schema(description = "错误阈值,0代表不限制") + private Integer alertThreshold; + /** + * 统计的窗口长度(s),0代表不限制 + */ + @Schema(description = "统计的窗口长度(s),0代表不限制") + private Integer statisticWindowLen; + /** + * 沉默时间窗口(s),0代表不限制 + */ + @Schema(description = "沉默时间窗口(s),0代表不限制") + private Integer silenceWindowLen; + /** + * 日志配置 + */ + @Schema(description = "日志配置") + private Integer logType; + /** + * 日志配置 + */ + @Schema(description = "日志级别") + private Integer logLevel; + /** + * 扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段) + */ + @Schema(description = "扩展字段(供开发者使用,用于功能扩展,powerjob 自身不会使用该字段)") + private String extra; + +} diff --git a/src/main/java/org/springblade/job/pojo/entity/JobServer.java b/src/main/java/org/springblade/job/pojo/entity/JobServer.java new file mode 100644 index 0000000..f9ca3e6 --- /dev/null +++ b/src/main/java/org/springblade/job/pojo/entity/JobServer.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 任务服务表 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_job_server") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "任务服务表") +public class JobServer extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务服务名称 + */ + @Schema(description = "任务服务名称") + private String jobServerName; + /** + * 任务服务器地址 + */ + @Schema(description = "任务服务器地址") + private String jobServerUrl; + /** + * 任务应用名称 + */ + @Schema(description = "任务应用名称") + private String jobAppName; + /** + * 任务应用密码 + */ + @Schema(description = "任务应用密码") + private String jobAppPassword; + /** + * 任务备注 + */ + @Schema(description = "任务备注") + private String jobRemark; + +} diff --git a/src/main/java/org/springblade/job/pojo/vo/JobInfoVO.java b/src/main/java/org/springblade/job/pojo/vo/JobInfoVO.java new file mode 100644 index 0000000..2bd952f --- /dev/null +++ b/src/main/java/org/springblade/job/pojo/vo/JobInfoVO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.job.pojo.entity.JobInfo; + +import java.io.Serial; + +/** + * 任务信息表 视图实体类 + * + * @author BladeX + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JobInfoVO extends JobInfo { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/job/pojo/vo/JobServerVO.java b/src/main/java/org/springblade/job/pojo/vo/JobServerVO.java new file mode 100644 index 0000000..34d7302 --- /dev/null +++ b/src/main/java/org/springblade/job/pojo/vo/JobServerVO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.job.pojo.entity.JobServer; + +import java.io.Serial; + +/** + * 任务服务表 视图实体类 + * + * @author BladeX + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class JobServerVO extends JobServer { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/job/processor/ProcessorDemo.java b/src/main/java/org/springblade/job/processor/ProcessorDemo.java new file mode 100644 index 0000000..e1c492f --- /dev/null +++ b/src/main/java/org/springblade/job/processor/ProcessorDemo.java @@ -0,0 +1,35 @@ +package org.springblade.job.processor; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; +import tech.powerjob.worker.log.OmsLogger; + + +// 支持 SpringBean 的形式 +@Slf4j +@Component +public class ProcessorDemo implements BasicProcessor { + + @Override + public ProcessResult process(TaskContext context) { + + // 在线日志功能,可以直接在控制台查看任务日志,非常便捷 + OmsLogger omsLogger = context.getOmsLogger(); + omsLogger.info("BasicProcessorDemo start to process, current JobParams is {}.", context.getJobParams()); + + // TaskContext为任务的上下文信息,包含了在控制台录入的任务元数据,常用字段为 + // jobParams(任务参数,在控制台录入),instanceParams(任务实例参数,通过 OpenAPI 触发的任务实例才可能存在该参数) + + // 进行实际处理... + log.info("============== ProcessorDemo#process =============="); + log.info("hello blade"); + log.info("============== ProcessorDemo#process =============="); + + // 返回结果,该结果会被持久化到数据库,在前端页面直接查看,极为方便 + return new ProcessResult(true, "result is success"); + } + +} diff --git a/src/main/java/org/springblade/job/service/IJobInfoService.java b/src/main/java/org/springblade/job/service/IJobInfoService.java new file mode 100644 index 0000000..d6aa575 --- /dev/null +++ b/src/main/java/org/springblade/job/service/IJobInfoService.java @@ -0,0 +1,88 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.job.pojo.entity.JobInfo; +import org.springblade.job.pojo.vo.JobInfoVO; + +import java.util.List; + +/** + * 任务信息表 服务类 + * + * @author BladeX + */ +public interface IJobInfoService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param jobInfo + * @return + */ + IPage selectJobInfoPage(IPage page, JobInfoVO jobInfo); + + /** + * 保存并同步 + * + * @return + */ + Boolean submitAndSync(JobInfo jobInfo); + + /** + * 删除并同步 + * + * @return + */ + Boolean removeAndSync(List ids); + + /** + * 启用禁用服务 + * + * @param id 任务服务ID + * @param enable 是否启用 + * @return + */ + Boolean changeServerJob(Long id, Integer enable); + + /** + * 运行服务 + * + * @param id 任务服务ID + * @return + */ + Boolean runServerJob(Long id); + + /** + * 数据同步 + * + * @return + */ + Boolean sync(); + +} diff --git a/src/main/java/org/springblade/job/service/IJobServerService.java b/src/main/java/org/springblade/job/service/IJobServerService.java new file mode 100644 index 0000000..f8b055a --- /dev/null +++ b/src/main/java/org/springblade/job/service/IJobServerService.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.job.pojo.entity.JobServer; +import org.springblade.job.pojo.vo.JobServerVO; + +/** + * 任务服务表 服务类 + * + * @author BladeX + */ +public interface IJobServerService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param jobServer + * @return + */ + IPage selectJobServerPage(IPage page, JobServerVO jobServer); + + /** + * 保存并同步 + * + * @param jobServer + * @return + */ + Boolean submitAndSync(JobServer jobServer); + + /** + * 同步数据 + * + * @param jobServer + * @return + */ + Boolean sync(JobServer jobServer); + +} diff --git a/src/main/java/org/springblade/job/service/impl/JobInfoServiceImpl.java b/src/main/java/org/springblade/job/service/impl/JobInfoServiceImpl.java new file mode 100644 index 0000000..576e4c1 --- /dev/null +++ b/src/main/java/org/springblade/job/service/impl/JobInfoServiceImpl.java @@ -0,0 +1,344 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.powerjob.constant.PowerJobConstant; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.utils.ConvertUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.job.pojo.dto.JobDTO; +import org.springblade.job.pojo.entity.JobInfo; +import org.springblade.job.pojo.entity.JobServer; +import org.springblade.job.mapper.JobInfoMapper; +import org.springblade.job.service.IJobInfoService; +import org.springblade.job.service.IJobServerService; +import org.springblade.job.pojo.vo.JobInfoVO; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import tech.powerjob.client.PowerJobClient; +import tech.powerjob.common.enums.DispatchStrategy; +import tech.powerjob.common.enums.ExecuteType; +import tech.powerjob.common.enums.ProcessorType; +import tech.powerjob.common.enums.TimeExpressionType; +import tech.powerjob.common.model.AlarmConfig; +import tech.powerjob.common.model.LifeCycle; +import tech.powerjob.common.model.LogConfig; +import tech.powerjob.common.request.http.SaveJobInfoRequest; +import tech.powerjob.common.response.JobInfoDTO; +import tech.powerjob.common.response.ResultDTO; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 任务信息表 服务实现类 + * + * @author BladeX + */ +@Service +@AllArgsConstructor +public class JobInfoServiceImpl extends BaseServiceImpl implements IJobInfoService { + private final IJobServerService jobServerService; + + @Override + public IPage selectJobInfoPage(IPage page, JobInfoVO jobInfo) { + return page.setRecords(baseMapper.selectJobInfoPage(page, jobInfo)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean submitAndSync(JobInfo jobInfo) { + //获取应用分组服务端信息 + JobServer jobServer = jobServerService.getById(jobInfo.getJobServerId()); + //构建Job客户端 + PowerJobClient client = new PowerJobClient(jobServer.getJobServerUrl(), jobServer.getJobAppName(), jobServer.getJobAppPassword()); + SaveJobInfoRequest request = convertToServer(jobInfo); + //获取上传结果 + ResultDTO result = client.saveJob(request); + if (result.isSuccess()) { + jobInfo.setJobId(result.getData()); + return this.saveOrUpdate(jobInfo); + } else { + throw new ServiceException(result.getMessage()); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean removeAndSync(List ids) { + ids.forEach(id -> { + JobDTO jobDTO = JobData(id); + if (Func.isNotEmpty(jobDTO)) { + JobInfo jobInfo = jobDTO.getJobInfo(); + PowerJobClient powerJobClient = jobDTO.getPowerJobClient(); + //删除服务数据 + ResultDTO result = powerJobClient.deleteJob(jobInfo.getJobId()); + if (result.isSuccess()) { + this.removeById(id); + } else { + throw new ServiceException(result.getMessage()); + } + } + }); + return true; + } + + @Override + public Boolean changeServerJob(Long id, Integer enable) { + JobDTO jobDTO = JobData(id); + if (Func.isNotEmpty(jobDTO)) { + JobInfo jobInfo = jobDTO.getJobInfo(); + PowerJobClient powerJobClient = jobDTO.getPowerJobClient(); + //更换服务端状态 + ResultDTO result = (enable == PowerJobConstant.JOB_ENABLED) ? + powerJobClient.enableJob(jobInfo.getJobId()) : + powerJobClient.disableJob(jobInfo.getJobId()); + //删除客户端数据 + if (result.isSuccess()) { + return this.update(Wrappers.update().lambda().set(JobInfo::getEnable, enable).eq(JobInfo::getId, id)); + } else { + throw new ServiceException(result.getMessage()); + } + } + return false; + } + + @Override + public Boolean runServerJob(Long id) { + JobDTO jobDTO = JobData(id); + if (Func.isNotEmpty(jobDTO)) { + JobInfo jobInfo = jobDTO.getJobInfo(); + PowerJobClient powerJobClient = jobDTO.getPowerJobClient(); + ResultDTO result = powerJobClient.runJob(jobInfo.getJobId()); + return result.isSuccess(); + } + return false; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean sync() { + //任务信息列表 + List jobInfos = this.list(); + //任务服务列表 + List jobServers = jobServerService.list(); + //按应用分组 + Map> jobGroups = jobInfos.stream().collect(Collectors.groupingBy(JobInfo::getJobServerId)); + //处理服务端数据下载 + jobServers.forEach(jobServer -> { + //构建Job客户端 + PowerJobClient client = new PowerJobClient(jobServer.getJobServerUrl(), jobServer.getJobAppName(), jobServer.getJobAppPassword()); + //从服务端获取数据 + List serverInfoList = Optional.ofNullable(client.fetchAllJob()) + .filter(ResultDTO::isSuccess) + .map(ResultDTO::getData) + .orElseGet(ArrayList::new); + //获取客户端数据 + List localInfoList = jobGroups.get(jobServer.getId()); + //处理需要从服务端下载的数据 + List jobInfoDTOList = serverInfoList.stream() + .filter(serverData -> serverData.getStatus() != PowerJobConstant.JOB_DELETED) + .filter(serverData -> Func.isEmpty(localInfoList) || localInfoList.stream().noneMatch(localData -> Func.equalsSafe(localData.getJobId(), serverData.getId()))) + .collect(Collectors.toList()); + List dataToDownload = convertToLocalList(jobInfoDTOList, jobServer.getId()); + //调用本地Service保存数据 + this.saveBatch(dataToDownload); + }); + //处理客户端数据上传 + jobGroups.forEach((jobServerId, localInfoList) -> { + //获取应用分组服务端信息 + JobServer jobServer = jobServers.stream().filter(js -> Func.equalsSafe(js.getId(), jobServerId)) + .findFirst().orElseThrow(() -> new ServiceException(PowerJobConstant.JOB_SYNC_ALERT)); + //构建Job客户端 + PowerJobClient client = new PowerJobClient(jobServer.getJobServerUrl(), jobServer.getJobAppName(), jobServer.getJobAppPassword()); + //处理需要上传到服务端的数据 + localInfoList.forEach(localData -> { + //转换数据格式 + SaveJobInfoRequest data = convertToServer(localData); + //调用OpenAPI接口上传数据 + ResultDTO saveResult = client.saveJob(data); + if (saveResult.isSuccess()) { + //更新服务端JobId至客户端 + this.update(Wrappers.update().lambda().set(JobInfo::getJobId, saveResult.getData()).eq(JobInfo::getId, localData.getId())); + } else { + throw new RuntimeException(saveResult.getMessage()); + } + }); + }); + return true; + } + + /** + * 获取Job数据集合 + * + * @param jobInfoId 服务信息ID + * @return PowerJobClient + */ + public JobDTO JobData(Long jobInfoId) { + //构建DTO类 + JobDTO jobDTO = new JobDTO(); + //获取任务信息 + JobInfo jobInfo = this.getById(jobInfoId); + jobDTO.setJobInfo(jobInfo); + if (Func.isEmpty(jobInfo.getJobId())) { + throw new ServiceException(PowerJobConstant.JOB_SYNC_ALERT); + } + if (Func.isNotEmpty(jobInfo.getJobServerId())) { + //获取应用分组服务端信息 + JobServer jobServer = jobServerService.getById(jobInfo.getJobServerId()); + jobDTO.setJobServer(jobServer); + //构建Job客户端 + PowerJobClient powerJobClient = new PowerJobClient(jobServer.getJobServerUrl(), jobServer.getJobAppName(), jobServer.getJobAppPassword()); + jobDTO.setPowerJobClient(powerJobClient); + return jobDTO; + } + return null; + } + + /** + * 服务端Job列表转换 + * + * @param jobInfoList 本地任务信息列表 + * @return List + */ + public List convertToServerList(List jobInfoList) { + return jobInfoList.stream().map(this::convertToServer).collect(Collectors.toList()); + } + + /** + * 本地Job列表转换 + * + * @param jobInfoDTOList 服务端任务信息列表 + * @return List + */ + public List convertToLocalList(List jobInfoDTOList, Long jobServerId) { + return jobInfoDTOList.stream().map(jobInfoDTO -> convertToLocal(jobInfoDTO, jobServerId)).collect(Collectors.toList()); + } + + /** + * 服务端Job单个转换 + * + * @param jobInfo 本地任务信息 + * @return SaveJobInfoRequest + */ + public SaveJobInfoRequest convertToServer(JobInfo jobInfo) { + SaveJobInfoRequest saveJobInfoRequest = new SaveJobInfoRequest(); + if (Func.toLong(jobInfo.getJobId()) > 0L) { + saveJobInfoRequest.setId(jobInfo.getJobId()); + } + saveJobInfoRequest.setJobName(jobInfo.getJobName()); + saveJobInfoRequest.setJobDescription(jobInfo.getJobDescription()); + saveJobInfoRequest.setJobParams(jobInfo.getJobParams()); + saveJobInfoRequest.setTimeExpressionType(TimeExpressionType.of(jobInfo.getTimeExpressionType())); + saveJobInfoRequest.setTimeExpression(jobInfo.getTimeExpression()); + saveJobInfoRequest.setExecuteType(ExecuteType.of(jobInfo.getExecuteType())); + saveJobInfoRequest.setProcessorType(ProcessorType.of(jobInfo.getProcessorType())); + saveJobInfoRequest.setProcessorInfo(jobInfo.getProcessorInfo()); + saveJobInfoRequest.setMaxInstanceNum(jobInfo.getMaxInstanceNum()); + saveJobInfoRequest.setConcurrency(jobInfo.getConcurrency()); + saveJobInfoRequest.setInstanceTimeLimit(jobInfo.getInstanceTimeLimit()); + saveJobInfoRequest.setInstanceRetryNum(jobInfo.getInstanceRetryNum()); + saveJobInfoRequest.setTaskRetryNum(jobInfo.getTaskRetryNum()); + saveJobInfoRequest.setMinCpuCores(jobInfo.getMinCpuCores().doubleValue()); + saveJobInfoRequest.setMinMemorySpace(jobInfo.getMinMemorySpace().doubleValue()); + saveJobInfoRequest.setMinDiskSpace(jobInfo.getMinDiskSpace().doubleValue()); + saveJobInfoRequest.setDesignatedWorkers(jobInfo.getDesignatedWorkers()); + saveJobInfoRequest.setMaxWorkerCount(jobInfo.getMaxWorkerCount()); + saveJobInfoRequest.setNotifyUserIds(Func.toLongList(jobInfo.getNotifyUserIds())); + saveJobInfoRequest.setEnable(jobInfo.getEnable() == 1); + saveJobInfoRequest.setDispatchStrategy(DispatchStrategy.of(jobInfo.getDispatchStrategy())); + saveJobInfoRequest.setAlarmConfig(new AlarmConfig(jobInfo.getAlertThreshold(), jobInfo.getStatisticWindowLen(), jobInfo.getSilenceWindowLen())); + saveJobInfoRequest.setLogConfig(new LogConfig().setLevel(jobInfo.getLogLevel()).setType(jobInfo.getLogType())); + if (Func.isNotEmpty(jobInfo.getLifecycle())) { + LifeCycle lifeCycle = new LifeCycle(); + String[] lifeCycleArr = Func.toStrArray(jobInfo.getLifecycle()); + lifeCycle.setStart(DateUtil.parse(lifeCycleArr[0], DateUtil.PATTERN_DATETIME).getTime()); + lifeCycle.setEnd(DateUtil.parse(lifeCycleArr[1], DateUtil.PATTERN_DATETIME).getTime()); + saveJobInfoRequest.setLifeCycle(lifeCycle); + } + saveJobInfoRequest.setExtra(jobInfo.getExtra()); + return saveJobInfoRequest; + } + + /** + * 本地Job单个转换 + * + * @param jobInfoDTO 服务端任务信息 + * @return SaveJobInfoRequest + */ + public JobInfo convertToLocal(JobInfoDTO jobInfoDTO, Long jobServerId) { + JobInfo jobInfo = new JobInfo(); + jobInfo.setJobServerId(jobServerId); + jobInfo.setJobId(jobInfoDTO.getId()); + jobInfo.setJobName(jobInfoDTO.getJobName()); + jobInfo.setJobDescription(jobInfoDTO.getJobDescription()); + jobInfo.setJobParams(jobInfoDTO.getJobParams()); + jobInfo.setTimeExpressionType(jobInfoDTO.getTimeExpressionType()); + jobInfo.setTimeExpression(jobInfoDTO.getTimeExpression()); + jobInfo.setExecuteType(jobInfoDTO.getExecuteType()); + jobInfo.setProcessorType(jobInfoDTO.getProcessorType()); + jobInfo.setProcessorInfo(jobInfoDTO.getProcessorInfo()); + jobInfo.setMaxInstanceNum(jobInfoDTO.getMaxInstanceNum()); + jobInfo.setConcurrency(jobInfoDTO.getConcurrency()); + jobInfo.setInstanceTimeLimit(jobInfoDTO.getInstanceTimeLimit()); + jobInfo.setInstanceRetryNum(jobInfoDTO.getInstanceRetryNum()); + jobInfo.setTaskRetryNum(jobInfoDTO.getTaskRetryNum()); + jobInfo.setMinCpuCores(ConvertUtil.convert(jobInfoDTO.getMinCpuCores(), BigDecimal.class)); + jobInfo.setMinMemorySpace(ConvertUtil.convert(jobInfoDTO.getMinMemorySpace(), BigDecimal.class)); + jobInfo.setMinDiskSpace(ConvertUtil.convert(jobInfoDTO.getMinDiskSpace(), BigDecimal.class)); + jobInfo.setDesignatedWorkers(jobInfoDTO.getDesignatedWorkers()); + jobInfo.setMaxWorkerCount(jobInfoDTO.getMaxWorkerCount()); + jobInfo.setNotifyUserIds(jobInfoDTO.getNotifyUserIds()); + jobInfo.setEnable(jobInfoDTO.getStatus()); + jobInfo.setDispatchStrategy(jobInfoDTO.getDispatchStrategy()); + if (Func.isNotEmpty(jobInfoDTO.getLifecycle()) && !Func.equalsSafe(jobInfoDTO.getLifecycle(), StringPool.EMPTY_JSON)) { + LifeCycle lifeCycle = JsonUtil.parse(jobInfoDTO.getLifecycle(), LifeCycle.class); + String start = DateUtil.format(new Date(lifeCycle.getStart()), DateUtil.PATTERN_DATETIME); + String end = DateUtil.format(new Date(lifeCycle.getEnd()), DateUtil.PATTERN_DATETIME); + jobInfo.setLifecycle(start + StringPool.COMMA + end); + } + if (Func.isNotEmpty(jobInfoDTO.getAlarmConfig())) { + jobInfo.setAlertThreshold(jobInfoDTO.getAlarmConfig().getAlertThreshold()); + jobInfo.setStatisticWindowLen(jobInfoDTO.getAlarmConfig().getStatisticWindowLen()); + jobInfo.setSilenceWindowLen(jobInfoDTO.getAlarmConfig().getSilenceWindowLen()); + } + if (Func.isNotEmpty(jobInfoDTO.getLogConfig())) { + jobInfo.setLogType(jobInfoDTO.getLogConfig().getType()); + jobInfo.setLogLevel(jobInfoDTO.getLogConfig().getLevel()); + } + jobInfo.setExtra(jobInfoDTO.getExtra()); + return jobInfo; + } + +} diff --git a/src/main/java/org/springblade/job/service/impl/JobServerServiceImpl.java b/src/main/java/org/springblade/job/service/impl/JobServerServiceImpl.java new file mode 100644 index 0000000..65c6aa7 --- /dev/null +++ b/src/main/java/org/springblade/job/service/impl/JobServerServiceImpl.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.job.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.fasterxml.jackson.core.type.TypeReference; +import org.springblade.core.http.util.HttpUtil; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.job.pojo.entity.JobServer; +import org.springblade.job.mapper.JobServerMapper; +import org.springblade.job.service.IJobServerService; +import org.springblade.job.pojo.vo.JobServerVO; +import org.springframework.stereotype.Service; +import tech.powerjob.common.response.ResultDTO; + +/** + * 任务服务表 服务实现类 + * + * @author BladeX + */ +@Service +public class JobServerServiceImpl extends BaseServiceImpl implements IJobServerService { + + @Override + public IPage selectJobServerPage(IPage page, JobServerVO jobServer) { + return page.setRecords(baseMapper.selectJobServerPage(page, jobServer)); + } + + @Override + public Boolean submitAndSync(JobServer jobServer) { + if (Func.isEmpty(jobServer.getId())) { + this.sync(jobServer); + } + return this.saveOrUpdate(jobServer); + } + + @Override + public Boolean sync(JobServer jobServer) { + Kv appInfo = Kv.create().set("appName", jobServer.getJobAppName()).set("password", jobServer.getJobAppPassword()); + String data = HttpUtil.postJson(jobServer.getJobServerUrl() + "/appInfo/save", JsonUtil.toJson(appInfo)); + ResultDTO result = JsonUtil.parse(data, new TypeReference>() {}); + return result.isSuccess(); + } + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.java new file mode 100644 index 0000000..be81d63 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.java @@ -0,0 +1,176 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.flow.engine.service.impl.FlowEngineServiceImpl; +import org.springblade.modules.apply.operationSiteApply.pojo.dto.OperationSiteApplyDTO; +import org.springblade.modules.apply.operationSiteApply.pojo.vo.ApplyVo; +import org.springblade.modules.flowable.examineInfo.service.IExamineInfoService; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; +import org.springblade.modules.flowable.processForm.service.impl.ProcessDefAuditStepServiceImpl; +import org.springblade.modules.flowable.processForm.utils.FormUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.apply.operationSiteApply.pojo.vo.OperationSiteApplyVO; +import org.springblade.modules.apply.operationSiteApply.excel.OperationSiteApplyExcel; +import org.springblade.modules.apply.operationSiteApply.wrapper.OperationSiteApplyWrapper; +import org.springblade.modules.apply.operationSiteApply.service.IOperationSiteApplyService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 运维商准入申请表 控制器 + * + * @author lzp + * @since 2024-08-09 + */ +@RestController +@AllArgsConstructor +@RequestMapping("blade-operationSiteApply/operationSiteApply") +@Tag(name = "运维商准入申请表", description = "运维商准入申请表接口") +public class OperationSiteApplyController extends BladeController { + + private final IOperationSiteApplyService operationSiteApplyService; + + private final IExamineInfoService examineInfoService; + + @Autowired + private FlowEngineServiceImpl flowEngineService; + + /** + * 运维商准入申请表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationSiteApply") + public R detail(OperationSiteApplyEntity operationSiteApply) { + OperationSiteApplyEntity detail = operationSiteApplyService.getOne(Condition.getQueryWrapper(operationSiteApply)); + OperationSiteApplyVO vo = OperationSiteApplyWrapper.build().entityVO(detail); + vo.setExamineInfoList(examineInfoService.findExamineInfo(detail.getId(), FormUtils.AGENT_ADMISSION_APPLICATION)); + List flow = flowEngineService.findBladeFlowList(detail.getProcessInstanceId(),detail.getProcessDefId()); + vo.setBladeFlowList(flow); + return R.data(vo); + } + /** + * 运维商准入申请表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationSiteApply") + public R> page(OperationSiteApplyDTO req, Query query) { + IPage pages = operationSiteApplyService.selectOperationSiteApplyPage(Condition.getPage(query), req); + return R.data(pages); + } + + /** + * 运维商准入申请表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增/编辑", description = "传入operationSiteApply") + public R save(@Valid @RequestBody OperationSiteApplyEntity operationSiteApply) { + return R.status(operationSiteApplyService.saveApply(operationSiteApply)); + } + +/* *//** + * 运维商准入申请表 修改 + *//* + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationSiteApply") + public R update(@Valid @RequestBody OperationSiteApplyEntity operationSiteApply) { + return R.status(operationSiteApplyService.updateById(operationSiteApply)); + }*/ + + /** + * 运维商准入申请表 新增或修改 + */ + @PostMapping("/examineSiteApply") + @ApiOperationSupport(order = 6) + @Operation(summary = "审核通过", description = "传入") + public R examineSiteApply(@Valid @RequestBody ApplyVo vo) { + return R.status(operationSiteApplyService.examineSiteApply(vo.getId(), vo.getTaskId(), vo.getContent())); + } + + /** + * 删除 + */ + @GetMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "id",description = "主键id",required = true) @RequestParam String id) { + return R.status(operationSiteApplyService.deleteSiteApply(id)); + } + + //审核驳回 + @PostMapping("/rejectTask") + @ApiOperationSupport(order = 6) + @Operation(summary = "审核驳回", description = "传入") + public R rejectTask(@Valid @RequestBody ApplyVo vo){ + + return R.status(operationSiteApplyService.rejectTask(vo.getId(), vo.getTaskId(), vo.getContent())); + } + + + + /** + * 导出数据 + */ + @GetMapping("/export-operationSiteApply") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationSiteApply") + public void exportOperationSiteApply(@Parameter(hidden = true) @RequestParam Map operationSiteApply, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(operationSiteApply, OperationSiteApplyEntity.class); + + List list = operationSiteApplyService.exportOperationSiteApply(queryWrapper); + ExcelUtil.export(response, "运维商准入申请表数据" + DateUtil.time(), "运维商准入申请表数据表", list, OperationSiteApplyExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.java new file mode 100644 index 0000000..299615e --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.java @@ -0,0 +1,121 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.excel; + + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 运维商准入申请表 Excel实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationSiteApplyExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 登录账号 + */ + @ColumnWidth(20) + @ExcelProperty("登录账号") + private String loginName; + + /** + * 运维商名称 + */ + @ColumnWidth(20) + @ExcelProperty("运维商名称") + private String name; + /** + * 联系人 + */ + @ColumnWidth(20) + @ExcelProperty("联系人") + private String contacts; + /** + * 省 + */ + @ColumnWidth(20) + @ExcelProperty("省") + private String province; + /** + * 市 + */ + @ColumnWidth(20) + @ExcelProperty("市") + private String city; + /** + * 区县 + */ + @ColumnWidth(20) + @ExcelProperty("区县") + private String area; + /** + * 详细地址 + */ + @ColumnWidth(20) + @ExcelProperty("详细地址") + private String address; + /** + * 业务联系电话 + */ + @ColumnWidth(20) + @ExcelProperty("业务联系电话") + private String mobile; + + /** + * 保证金金额 + */ + @ColumnWidth(20) + @ExcelProperty("申请时间") + private Date createTime; + + /** + * 备注 + */ + @ColumnWidth(20) + @ExcelProperty("备注") + private String remarks; + + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.java new file mode 100644 index 0000000..033d626 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.mapper; + +import org.springblade.modules.apply.operationSiteApply.pojo.dto.OperationSiteApplyDTO; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.apply.operationSiteApply.pojo.vo.OperationSiteApplyVO; +import org.springblade.modules.apply.operationSiteApply.excel.OperationSiteApplyExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 运维商准入申请表 Mapper 接口 + * + * @author lzp + * @since 2024-08-09 + */ +public interface OperationSiteApplyMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param req + * @return + */ + List selectOperationSiteApplyPage(IPage page, @Param("req") OperationSiteApplyDTO req); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSiteApply(@Param("ew") Wrapper queryWrapper); + + Long findApplyLoginName(String loginName,String id); + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml b/src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml new file mode 100644 index 0000000..6f10f37 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.java new file mode 100644 index 0000000..19fdda8 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.pojo.dto; + +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 运维商准入申请表 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteApplyDTO extends OperationSiteApplyEntity { + @Serial + private static final long serialVersionUID = 1L; + + private Long userId; + + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.java new file mode 100644 index 0000000..3b2be92 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.java @@ -0,0 +1,222 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 运维商准入申请表 实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@TableName("sf_operation_site_apply") +@Schema(description = "OperationSiteApply对象") +public class OperationSiteApplyEntity implements Serializable { + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 登录账号 + */ + @Schema(description = "登录账号") + private String loginName; + /** + * 登录密码 + */ + @Schema(description = "登录密码") + private String password; + /** + * 运维商名称 + */ + @Schema(description = "运维商名称") + private String name; + /** + * 联系人 + */ + @Schema(description = "联系人") + private String contacts; + /** + * 省 + */ + @Schema(description = "省") + private String province; + /** + * 市 + */ + @Schema(description = "市") + private String city; + /** + * 区县 + */ + @Schema(description = "区县") + private String area; + + @Schema(description = "省代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String provinceCode; + @Schema(description = "市代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String cityCode; + @Schema(description = "区县代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String areaCode; + /** + * 详细地址 + */ + @Schema(description = "详细地址") + private String address; + /** + * 业务联系电话 + */ + @Schema(description = "业务联系电话") + private String mobile; + /** + * 相关资质图片地址 + */ + @Schema(description = "相关资质图片地址") + private String licenseImg; + /** + * 结算方式 1.单次结算 2.包月结算 + */ + @Schema(description = "结算方式 1.单次结算 2.包月结算") + private String setType; + /** + * 保证金金额 + */ + @Schema(description = "保证金金额") + private BigDecimal earnestMoney; + /** + * 缴纳保证金 1.是 2.否 默认否 + */ + @Schema(description = "缴纳保证金 1.是 2.否 默认否") + private String payTheDeposit; + /** + * 运维状态 (0:正常 1:删除;3.禁用) + */ + @Schema(description = " 运维状态 (0:正常 1:删除;3.禁用)") + private String siteStatus; + + /** + * 状态 状态 0.暂存 1.审核中 2.驳回 3.正常 4 取消 + */ + @Schema(description = " 状态 0.暂存 1.审核中 2.驳回 3.正常 4 取消") + private String status; + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + /** + * 创建人user_id + */ + @Schema(description = "创建人user_id") + private String createBy; + @Schema(description = "创建时间") + private Date createTime; + /** + * 创建人姓名 + */ + @Schema(description = "创建人姓名") + private String creator; + /** + * 创建人user_id + */ + @Schema(description = "创建人user_id") + private String updateBy; + /** + * 更新人姓名 + */ + @Schema(description = "更新人姓名") + private String updater; + /** + * 流程实例id + */ + @Schema(description = "流程实例id") + private String processInstanceId; + /** + * 部门id + */ + @Schema(description = "部门id") + private String departmentId; + /** + * 部门名称 + */ + @Schema(description = "部门名称") + private String departmentName; + /** + * + */ + @Schema(description = "") + private String taskId; + /** + * + */ + @Schema(description = "") + private String taskName; + /** + * 审核备注 + */ + @Schema(description = "审核备注") + private String content; + /** + * 流程设置的id + */ + @Schema(description = "流程设置的id") + private String processDefId; + /** + * 操作审批人的id + */ + @Schema(description = "操作审批人的id") + private String operateUserIds; + /** + * 供应商id + */ + @Schema(description = "运维商id") + private String siteId; + /** + * 审核备注 + */ + @Schema(description = "审核备注") + private String examineOpinion; + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/ApplyVo.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/ApplyVo.java new file mode 100644 index 0000000..5f26f64 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/ApplyVo.java @@ -0,0 +1,22 @@ +package org.springblade.modules.apply.operationSiteApply.pojo.vo; + +import lombok.Data; +import org.hibernate.validator.constraints.NotBlank; +@Data +public class ApplyVo { + + @NotBlank(message = "id不能为空!") + private String id; + + private String content; + + private String taskId; + @Override + public String toString() { + return "UserApplyVo{" + + "id='" + id + '\'' + + ", content='" + content + '\'' + + ", taskId='" + taskId + '\'' + + '}'; + } +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.java new file mode 100644 index 0000000..ef8691e --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.flow.core.entity.BladeFlow; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.flowable.examineInfo.pojo.vo.ExamineInfoVO; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; + +import java.io.Serial; +import java.util.List; + +/** + * 运维商准入申请表 视图实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteApplyVO extends OperationSiteApplyEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "是否有审核权限 1.有 ") + private String audit; + @Schema(description = "是否有查看权限 1.有 其他则无") + private String lookAuth; + @Schema(description = "流程操作记录") + List examineInfoList; + @Schema(description = "流程节点") + List bladeFlowList; + + @Schema(description = "审核次数") + private Long shCount; + + + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.java new file mode 100644 index 0000000..739e242 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.apply.operationSiteApply.pojo.dto.OperationSiteApplyDTO; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.apply.operationSiteApply.pojo.vo.OperationSiteApplyVO; +import org.springblade.modules.apply.operationSiteApply.excel.OperationSiteApplyExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 运维商准入申请表 服务类 + * + * @author lzp + * @since 2024-08-09 + */ +public interface IOperationSiteApplyService extends IService { + /** + * 自定义分页 + * + * @param page + * @param apply + * @return + */ + IPage selectOperationSiteApplyPage(IPage page, OperationSiteApplyDTO apply); + + + boolean saveApply(OperationSiteApplyEntity operationSiteApply); + + + boolean examineSiteApply(String id, String taskId, String content); + + + boolean deleteSiteApply(String id); + + boolean rejectTask(String id,String taskId,String content); + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSiteApply(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.java new file mode 100644 index 0000000..a1154a9 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.java @@ -0,0 +1,231 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jodd.util.StringUtil; +import org.apache.commons.lang.StringUtils; +import org.apache.http.client.utils.DateUtils; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.flow.demo.leave.service.impl.LeaveServiceImpl; +import org.springblade.modules.apply.operationSiteApply.pojo.dto.OperationSiteApplyDTO; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.apply.operationSiteApply.pojo.vo.OperationSiteApplyVO; +import org.springblade.modules.apply.operationSiteApply.excel.OperationSiteApplyExcel; +import org.springblade.modules.apply.operationSiteApply.mapper.OperationSiteApplyMapper; +import org.springblade.modules.apply.operationSiteApply.service.IOperationSiteApplyService; +import org.springblade.modules.flowable.processForm.mapper.ProcessDefAuditStepMapper; +import org.springblade.modules.flowable.processForm.mapper.ProcessDefMapper; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefReq; +import org.springblade.modules.flowable.processForm.utils.FormUtils; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.service.IRegionService; +import org.springblade.modules.system.service.impl.UserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 运维商准入申请表 服务实现类 + * + * @author lzp + * @since 2024-08-09 + */ +@Service +public class OperationSiteApplyServiceImpl extends ServiceImpl implements IOperationSiteApplyService { + @Autowired + UserServiceImpl userService; + + @Autowired + ProcessDefMapper processDefMapper; + @Autowired + ProcessDefAuditStepMapper stepMapper; + + @Autowired + LeaveServiceImpl leaveService; + + @Autowired + TaskService taskService; + + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + private IRegionService regionService; + @Override + public IPage selectOperationSiteApplyPage(IPage page, OperationSiteApplyDTO operationSiteApply) { + BladeUser user = AuthUtil.getUser(); + operationSiteApply.setUserId(user.getUserId()); + return page.setRecords(baseMapper.selectOperationSiteApplyPage(page, operationSiteApply)); + } + + @Override + public boolean saveApply(OperationSiteApplyEntity entry) { + BladeUser user = AuthUtil.getUser(); + + Date date = new Date(); + + if(StringUtil.isBlank(entry.getSiteId())){ + String loginName = entry.getLoginName().trim(); + entry.setLoginName(loginName); + if(userService.userByAccount(user.getTenantId(), entry.getLoginName()) != null){ + throw new ServiceException("登录账号已存在!"); + } + if(getBaseMapper().findApplyLoginName(loginName,entry.getId())>0){ + throw new ServiceException("登录账号已存在!"); + } + + } + Region region = new Region(); + if(StringUtil.isBlank(entry.getProvinceCode())){ + region.setProvinceName(entry.getProvince()); + region.setRegionLevel(1); + Region detail = regionService.getOne(Condition.getQueryWrapper(region)); + if(detail!= null){ + entry.setProvinceCode(detail.getProvinceCode()); + } + } + if(StringUtil.isBlank(entry.getCityCode())){ + region.setCityName(entry.getCity()); + region.setRegionLevel(2); + Region citys = regionService.getOne(Condition.getQueryWrapper(region)); + if(citys!= null){ + entry.setCityCode(citys.getCityCode()); + } + } + + if(StringUtil.isBlank(entry.getAreaCode())){ + region.setDistrictName(entry.getArea()); + region.setRegionLevel(3); + Region distr = regionService.getOne(Condition.getQueryWrapper(region)); + if(distr!= null){ + entry.setAreaCode(distr.getDistrictCode()); + } + } + + entry.setStatus("1"); + if(StringUtil.isBlank(entry.getId())){ + entry.setDepartmentId(user.getDeptId()); + entry.setDepartmentName(user.getNickName()); + entry.setCreator(user.getNickName()); + entry.setCreateBy(user.getUserId().toString()); + entry.setCreateTime(date); + + entry.setId(IdUtil.randomUUID().replaceAll("-", "")); + //提交流程 + ProcessDefReq rd = processDefMapper.getDefByFormId(FormUtils.AGENT_ADMISSION_APPLICATION); + if(rd == null){ + throw new RuntimeException("流程未定义,不可发布申请"); + } + //启动流程 + String processName="代理商准入申请-"+user.getUserName()+'-'+ DateUtils.formatDate(date,"yyyy-MM-dd HH:mm:ss")+"("+entry.getName()+")"; + String processInstanceId=leaveService.startProcessFlowable(entry.getId(),rd, FormUtils.AGENT_ADMISSION_APPLICATION,date,user.getNickName(),entry.getRemarks(),processName,entry.getProvince(),entry.getCity()); + entry.setProcessInstanceId(processInstanceId); + entry.setProcessDefId(rd.getId()); + String taskName=stepMapper.getOneStepTaskName(rd.getId()); + entry.setTaskName(taskName); + entry.setOperateUserIds(user.getUserId().toString()); + return save(entry); + }else if(StringUtil.isNotBlank(entry.getProcessInstanceId())){ + boolean upche = updateById(entry); + Task task = taskService.createTaskQuery().processInstanceId(entry.getProcessInstanceId()).taskAssignee(user.getUserId().toString()).singleResult(); + leaveService.approveTask(task,"编辑后提交",entry.getId(),user, FormUtils.AGENT_ADMISSION_APPLICATION); + return upche; + } + return false; + } + + /** + * 审核通过 + */ + @Override + public boolean examineSiteApply(String id, String taskId, String content){ + log.debug(">>>>>>>>>>>>>examineDistributionGoodsApprove id:"+id+",task:"+taskId); + BladeUser user = AuthUtil.getUser(); + OperationSiteApplyEntity apply=getById(id); + apply.setContent(content); + boolean check = updateById(apply); + Task task = taskService.createTaskQuery().processInstanceId(apply.getProcessInstanceId()).taskAssignee(user.getUserId().toString()).singleResult(); + leaveService.approveTask(task,content,apply.getId(),user, FormUtils.AGENT_ADMISSION_APPLICATION); + return check; + } + + @Override + public boolean deleteSiteApply(String id) { + OperationSiteApplyEntity apply=getById(id); + if("0".equals(apply.getStatus()) && "2".equals(apply.getStatus())){ + throw new ServiceException("当前信息不满足删除条件"); + } + apply.setStatus("4"); + + BladeUser user = AuthUtil.getUser(); + //删除流程 + if(StringUtil.isNotBlank(apply.getProcessInstanceId())){ + leaveService.deleteApplication(apply.getId(),apply.getProcessInstanceId(),user.getUserName(),"2",FormUtils.AGENT_ADMISSION_APPLICATION); + } + return updateById(apply); + } + + @Override + public boolean rejectTask(String id, String taskId, String content) { + //log.info(">>>>>>>>>>>>>rejectTask id:{},task:{}",id,taskId); + BladeUser user = AuthUtil.getUser(); + OperationSiteApplyEntity apply=getById(id); + apply.setContent(content); + boolean check =updateById(apply); + Task task=taskService.createTaskQuery().processInstanceId(apply.getProcessInstanceId()).taskAssignee(user.getUserId().toString()).singleResult();; + leaveService.rejectTask(task,content,id,user,FormUtils.AGENT_ADMISSION_APPLICATION,apply.getCreateBy()); + return check; + } + + + @Override + public List exportOperationSiteApply(Wrapper queryWrapper) { + List operationSiteApplyList = baseMapper.exportOperationSiteApply(queryWrapper); + + return operationSiteApplyList; + } + + public String getLastAuditStep(String depId){ + return stepMapper.getLastAuditStep(depId); + } + +} diff --git a/src/main/java/org/springblade/modules/apply/operationSiteApply/wrapper/OperationSiteApplyWrapper.java b/src/main/java/org/springblade/modules/apply/operationSiteApply/wrapper/OperationSiteApplyWrapper.java new file mode 100644 index 0000000..1a04002 --- /dev/null +++ b/src/main/java/org/springblade/modules/apply/operationSiteApply/wrapper/OperationSiteApplyWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.apply.operationSiteApply.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.apply.operationSiteApply.pojo.vo.OperationSiteApplyVO; +import java.util.Objects; + +/** + * 运维商准入申请表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-09 + */ +public class OperationSiteApplyWrapper extends BaseEntityWrapper { + + public static OperationSiteApplyWrapper build() { + return new OperationSiteApplyWrapper(); + } + + @Override + public OperationSiteApplyVO entityVO(OperationSiteApplyEntity operationSiteApply) { + OperationSiteApplyVO operationSiteApplyVO = Objects.requireNonNull(BeanUtil.copyProperties(operationSiteApply, OperationSiteApplyVO.class)); + + //User createUser = UserCache.getUser(operationSiteApply.getCreateUser()); + //User updateUser = UserCache.getUser(operationSiteApply.getUpdateUser()); + //operationSiteApplyVO.setCreateUserName(createUser.getName()); + //operationSiteApplyVO.setUpdateUserName(updateUser.getName()); + + return operationSiteApplyVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/auth/config/BladeAuthConfiguration.java b/src/main/java/org/springblade/modules/auth/config/BladeAuthConfiguration.java new file mode 100644 index 0000000..038ec4d --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/config/BladeAuthConfiguration.java @@ -0,0 +1,56 @@ +package org.springblade.modules.auth.config; + +import org.springblade.core.jwt.props.JwtProperties; +import org.springblade.core.oauth2.config.OAuth2AutoConfiguration; +import org.springblade.core.oauth2.handler.AuthorizationHandler; +import org.springblade.core.oauth2.handler.PasswordHandler; +import org.springblade.core.oauth2.handler.TokenHandler; +import org.springblade.core.oauth2.service.OAuth2ClientService; +import org.springblade.core.oauth2.service.OAuth2UserService; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tenant.BladeTenantProperties; +import org.springblade.modules.auth.handler.BladeAuthorizationHandler; +import org.springblade.modules.auth.handler.BladePasswordHandler; +import org.springblade.modules.auth.handler.BladeTokenHandler; +import org.springblade.modules.auth.service.BladeClientDetailService; +import org.springblade.modules.auth.service.BladeUserDetailService; +import org.springblade.modules.system.service.IUserService; +import org.springframework.boot.autoconfigure.AutoConfigureBefore; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.core.JdbcTemplate; + +/** + * BladeAuthConfiguration + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AutoConfigureBefore(OAuth2AutoConfiguration.class) +public class BladeAuthConfiguration { + @Bean + public AuthorizationHandler authorizationHandler(BladeRedis bladeRedis, BladeTenantProperties tenantProperties) { + return new BladeAuthorizationHandler(bladeRedis, tenantProperties); + } + + @Bean + public PasswordHandler passwordHandler() { + return new BladePasswordHandler(); + } + + @Bean + public TokenHandler tokenHandler(JwtProperties jwtProperties) { + return new BladeTokenHandler(jwtProperties); + } + + @Bean + public OAuth2ClientService oAuth2ClientService(JdbcTemplate jdbcTemplate) { + return new BladeClientDetailService(jdbcTemplate); + } + + @Bean + public OAuth2UserService oAuth2UserService(IUserService userService) { + return new BladeUserDetailService(userService); + } + +} diff --git a/src/main/java/org/springblade/modules/auth/constant/BladeAuthConstant.java b/src/main/java/org/springblade/modules/auth/constant/BladeAuthConstant.java new file mode 100644 index 0000000..90cfae8 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/constant/BladeAuthConstant.java @@ -0,0 +1,22 @@ +package org.springblade.modules.auth.constant; + +/** + * AuthorizationConstant + * + * @author Chill + */ +public interface BladeAuthConstant { + + /** + * 是否开启注册参数key + */ + String REGISTER_USER_VALUE = "account.registerUser"; + /** + * 账号锁定错误次数参数key + */ + String FAIL_COUNT_VALUE = "account.failCount"; + /** + * 账号锁定默认错误次数 + */ + Integer FAIL_COUNT = 5; +} diff --git a/src/main/java/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.java b/src/main/java/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.java new file mode 100644 index 0000000..54cc576 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.java @@ -0,0 +1,173 @@ +package org.springblade.modules.auth.endpoint; + +import com.wf.captcha.SpecCaptcha; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import java.time.Duration; +import java.util.UUID; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.jwt.JwtUtil; +import org.springblade.core.jwt.props.JwtProperties; +import org.springblade.core.oauth2.granter.TokenGranter; +import org.springblade.core.oauth2.granter.TokenGranterFactory; +import org.springblade.core.oauth2.handler.AuthorizationHandler; +import org.springblade.core.oauth2.handler.TokenHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.provider.OAuth2Token; +import org.springblade.core.oauth2.provider.OAuth2Validation; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.utils.OAuth2ExceptionUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.support.Kv; +import org.springblade.modules.system.mapper.UserMapper; +import org.springblade.modules.system.pojo.entity.User; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Tag( + name = "用户授权认证", + description = "1 - OAuth2授权认证端点" +) +public class MiniAppOauth2EndPoint { + private final BladeRedis bladeRedis; + private final JwtProperties jwtProperties; + private final TokenGranterFactory granterFactory; + private final AuthorizationHandler authorizationHandler; + private final TokenHandler tokenHandler; + private final UserMapper userMapper; + + @PostMapping({"/oauth/miniapp/token"}) + @Operation( + summary = "获取Token", + description = "OAuth2认证接口", + parameters = {@Parameter( + in = ParameterIn.QUERY, + name = "username", + description = "账号", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "password", + description = "密码", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "grant_type", + description = "授权类型", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "refresh_token", + description = "刷新token", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "scope", + description = "权限范围", + schema = @Schema( + type = "string" + ) + )} + ) + public R token() { + try{ + OAuth2Request request = OAuth2Request.create().buildArgs(); + TokenGranter tokenGranter = this.granterFactory.create(request.getGrantType()); + OAuth2User user = tokenGranter.user(request); + if(!"6".equals(user.getDeptId()) && !"roleAll".equals(user.getAccount())){ + throw new IllegalArgumentException("当前账号无权限登录"); + } + User us = userMapper.findUserById(Long.parseLong(user.getUserId())); + if(us.getStatus() != 0){ + throw new IllegalArgumentException("当前账号无权限登录"); + } + OAuth2Validation validation = this.authorizationHandler.authValidation(user, request); + if (!validation.isSuccess()) { + this.authorizationHandler.authFailure(user, request, validation); + OAuth2ExceptionUtil.throwFromCode(validation.getCode()); + } + + OAuth2Token token = tokenGranter.token(user, request); + OAuth2Token enhanceToken = this.tokenHandler.enhance(user, token, request); + this.authorizationHandler.authSuccessful(user, request); + return R.data(enhanceToken.getArgs()); + }catch (Exception e){ + return R.fail(e.getMessage()); + } + + } + + @GetMapping({"/oauth/miniapp/logout"}) + @Operation( + summary = "退出登录" + ) + public Kv logout() { + BladeUser user = AuthUtil.getUser(); + if (user != null && this.jwtProperties.getState()) { + OAuth2Request request = OAuth2Request.create().buildHeaderArgs(); + String token = JwtUtil.getToken(request.getToken()); + JwtUtil.removeAccessToken(user.getTenantId(), user.getClientId(), String.valueOf(user.getUserId()), token); + } + + return Kv.create().set("success", "true").set("msg", "success"); + } + + @GetMapping({"/oauth/miniapp/captcha"}) + @Operation( + summary = "获取验证码" + ) + public Kv captcha() { + SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5); + String verCode = specCaptcha.text().toLowerCase(); + String key = UUID.randomUUID().toString(); + this.bladeRedis.setEx("blade:auth::blade:captcha:" + key, verCode, Duration.ofMinutes(30L)); + return Kv.create().set("key", key).set("image", specCaptcha.toBase64()); + } + + @GetMapping({"/oauth/miniapp/clear-cache"}) + @Operation( + summary = "清除缓存" + ) + public Kv clearCache() { + CacheUtil.clear("blade:biz"); + CacheUtil.clear("blade:user"); + CacheUtil.clear("blade:dict"); + CacheUtil.clear("blade:flow"); + CacheUtil.clear("blade:sys"); + CacheUtil.clear("blade:param"); + CacheUtil.clear("blade:resource"); + CacheUtil.clear("blade:menu"); + CacheUtil.clear("blade:dict", Boolean.FALSE); + CacheUtil.clear("blade:menu", Boolean.FALSE); + CacheUtil.clear("blade:sys", Boolean.FALSE); + CacheUtil.clear("blade:param", Boolean.FALSE); + return Kv.create().set("success", "true").set("msg", "success"); + } + + public MiniAppOauth2EndPoint(final BladeRedis bladeRedis, final JwtProperties jwtProperties, final TokenGranterFactory granterFactory, final AuthorizationHandler authorizationHandler, final TokenHandler tokenHandler, UserMapper userMapper) { + this.bladeRedis = bladeRedis; + this.jwtProperties = jwtProperties; + this.granterFactory = granterFactory; + this.authorizationHandler = authorizationHandler; + this.tokenHandler = tokenHandler; + this.userMapper = userMapper; + } +} diff --git a/src/main/java/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.java b/src/main/java/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.java new file mode 100644 index 0000000..04de602 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.java @@ -0,0 +1,175 @@ +package org.springblade.modules.auth.endpoint; + +import com.wf.captcha.SpecCaptcha; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import java.time.Duration; +import java.util.UUID; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.jwt.JwtUtil; +import org.springblade.core.jwt.props.JwtProperties; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.oauth2.granter.TokenGranter; +import org.springblade.core.oauth2.granter.TokenGranterFactory; +import org.springblade.core.oauth2.handler.AuthorizationHandler; +import org.springblade.core.oauth2.handler.TokenHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.provider.OAuth2Token; +import org.springblade.core.oauth2.provider.OAuth2Validation; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.utils.OAuth2ExceptionUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.support.Kv; +import org.springblade.modules.system.mapper.UserMapper; +import org.springblade.modules.system.pojo.entity.User; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Tag( + name = "用户授权认证", + description = "1 - OAuth2授权认证端点" +) +@RequestMapping("blade-auth") +public class SysOAuth2EndPoint { + private final BladeRedis bladeRedis; + private final JwtProperties jwtProperties; + private final TokenGranterFactory granterFactory; + private final AuthorizationHandler authorizationHandler; + private final TokenHandler tokenHandler; + + private final UserMapper userMapper; + + @PostMapping({"/oauth2/token"}) + @Operation( + summary = "获取Token", + description = "OAuth2认证接口", + parameters = {@Parameter( + in = ParameterIn.QUERY, + name = "username", + description = "账号", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "password", + description = "密码", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "grant_type", + description = "授权类型", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "refresh_token", + description = "刷新token", + schema = @Schema( + type = "string" + ) + ), @Parameter( + in = ParameterIn.QUERY, + name = "scope", + description = "权限范围", + schema = @Schema( + type = "string" + ) + )} + ) + public ResponseEntity token() { + OAuth2User user =null; + TokenGranter tokenGranter=null; + OAuth2Request request = OAuth2Request.create().buildArgs(); + try { + tokenGranter = this.granterFactory.create(request.getGrantType()); + user = tokenGranter.user(request); + }catch (Exception e){ + throw new ServiceException(e.getMessage()); + } + if(!AuthUtil.isAdmin()){ + User us = userMapper.findUserById(Long.parseLong(user.getUserId())); + if(us.getStatus() != 0 || "6".equals(user.getDeptId())){ + throw new ServiceException("当前账号无权限登录"); + } + } + OAuth2Validation validation = this.authorizationHandler.authValidation(user, request); + if (!validation.isSuccess()) { + this.authorizationHandler.authFailure(user, request, validation); + OAuth2ExceptionUtil.throwFromCode(validation.getCode()); + } + + OAuth2Token token = tokenGranter.token(user, request); + OAuth2Token enhanceToken = this.tokenHandler.enhance(user, token, request); + this.authorizationHandler.authSuccessful(user, request); + return ResponseEntity.ok(enhanceToken.getArgs()); + } + + @GetMapping({"/oauth2/logout"}) + @Operation( + summary = "退出登录" + ) + public Kv logout() { + BladeUser user = AuthUtil.getUser(); + if (user != null && this.jwtProperties.getState()) { + OAuth2Request request = OAuth2Request.create().buildHeaderArgs(); + String token = JwtUtil.getToken(request.getToken()); + JwtUtil.removeAccessToken(user.getTenantId(), user.getClientId(), String.valueOf(user.getUserId()), token); + } + + return Kv.create().set("success", "true").set("msg", "success"); + } + + @GetMapping({"/oauth2/captcha"}) + @Operation( + summary = "获取验证码" + ) + public Kv captcha() { + SpecCaptcha specCaptcha = new SpecCaptcha(130, 48, 5); + String verCode = specCaptcha.text().toLowerCase(); + String key = UUID.randomUUID().toString(); + this.bladeRedis.setEx("blade:auth::blade:captcha:" + key, verCode, Duration.ofMinutes(30L)); + return Kv.create().set("key", key).set("image", specCaptcha.toBase64()); + } + + @GetMapping({"/oauth2/clear-cache"}) + @Operation( + summary = "清除缓存" + ) + public Kv clearCache() { + CacheUtil.clear("blade:biz"); + CacheUtil.clear("blade:user"); + CacheUtil.clear("blade:dict"); + CacheUtil.clear("blade:flow"); + CacheUtil.clear("blade:sys"); + CacheUtil.clear("blade:param"); + CacheUtil.clear("blade:resource"); + CacheUtil.clear("blade:menu"); + CacheUtil.clear("blade:dict", Boolean.FALSE); + CacheUtil.clear("blade:menu", Boolean.FALSE); + CacheUtil.clear("blade:sys", Boolean.FALSE); + CacheUtil.clear("blade:param", Boolean.FALSE); + return Kv.create().set("success", "true").set("msg", "success"); + } + + public SysOAuth2EndPoint(final BladeRedis bladeRedis, final JwtProperties jwtProperties, final TokenGranterFactory granterFactory, final AuthorizationHandler authorizationHandler, final TokenHandler tokenHandler, UserMapper userMapper) { + this.bladeRedis = bladeRedis; + this.jwtProperties = jwtProperties; + this.granterFactory = granterFactory; + this.authorizationHandler = authorizationHandler; + this.tokenHandler = tokenHandler; + this.userMapper = userMapper; + } +} diff --git a/src/main/java/org/springblade/modules/auth/granter/CaptchaTokenGranter.java b/src/main/java/org/springblade/modules/auth/granter/CaptchaTokenGranter.java new file mode 100644 index 0000000..0ad15c1 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/granter/CaptchaTokenGranter.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.granter; + +import org.springblade.core.oauth2.constant.OAuth2TokenConstant; +import org.springblade.core.oauth2.exception.UserInvalidException; +import org.springblade.core.oauth2.granter.PasswordTokenGranter; +import org.springblade.core.oauth2.handler.PasswordHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.service.OAuth2ClientService; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.service.OAuth2UserService; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.stereotype.Component; + +/** + * CaptchaTokenGranter + * + * @author BladeX + */ +@Component +public class CaptchaTokenGranter extends PasswordTokenGranter { + + private final BladeRedis bladeRedis; + + public CaptchaTokenGranter(OAuth2ClientService clientService, OAuth2UserService userService, PasswordHandler passwordHandler, BladeRedis bladeRedis) { + super(clientService, userService, passwordHandler); + this.bladeRedis = bladeRedis; + } + + @Override + public String type() { + return CAPTCHA; + } + + @Override + public OAuth2User user(OAuth2Request request) { + // 获取验证码信息 + String key = request.getCaptchaKey(); + String code = request.getCaptchaCode(); + // 获取验证码 + String redisCode = bladeRedis.get(OAuth2TokenConstant.CAPTCHA_CACHE_KEY + key); + // 判断验证码 + if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) { + throw new UserInvalidException(OAuth2TokenConstant.CAPTCHA_NOT_CORRECT); + } + return super.user(request); + } +} diff --git a/src/main/java/org/springblade/modules/auth/granter/RegisterTokenGranter.java b/src/main/java/org/springblade/modules/auth/granter/RegisterTokenGranter.java new file mode 100644 index 0000000..b967df1 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/granter/RegisterTokenGranter.java @@ -0,0 +1,139 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.granter; + +import org.jetbrains.annotations.NotNull; +import org.springblade.common.cache.ParamCache; +import org.springblade.core.oauth2.exception.ExceptionCode; +import org.springblade.core.oauth2.exception.UserInvalidException; +import org.springblade.core.oauth2.granter.AbstractTokenGranter; +import org.springblade.core.oauth2.handler.PasswordHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.service.OAuth2Client; +import org.springblade.core.oauth2.service.OAuth2ClientService; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.service.OAuth2UserService; +import org.springblade.core.oauth2.service.impl.OAuth2UserDetail; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.auth.provider.UserType; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IUserService; +import org.springframework.stereotype.Component; + +import java.util.Collections; +import java.util.function.Predicate; + +import static org.springblade.modules.auth.constant.BladeAuthConstant.REGISTER_USER_VALUE; + +/** + * RegisterTokenGranter + * + * @author BladeX + */ +@Component +public class RegisterTokenGranter extends AbstractTokenGranter { + + private final IUserService service; + + public RegisterTokenGranter(OAuth2ClientService clientService, OAuth2UserService userService, PasswordHandler passwordHandler, IUserService service) { + super(clientService, userService, passwordHandler); + this.service = service; + } + + @Override + public String type() { + return REGISTER; + } + + @Override + public OAuth2User user(OAuth2Request request) { + // 校验注册功能是否开启 + Boolean registerOpen = Func.toBoolean(ParamCache.getValue(REGISTER_USER_VALUE), false); + if (!registerOpen) { + throw new UserInvalidException("注册功能暂未开启,请联系管理员"); + } + + // 用户注册信息 + User user = new User(); + user.setUserType(UserType.WEB.getCategory()); + user.setTenantId(request.getTenantId()); + user.setAccount(request.getUsername()); + user.setPassword(request.getPassword()); + user.setName(request.getName()); + user.setRealName(request.getName()); + user.setPhone(request.getPhone()); + user.setEmail(request.getEmail()); + + // 校验用户格式 + validateUser(user); + + // 执行用户注册 + if (service.registerUser(user)) { + // 构建oauth2所需用户信息 + return convertOAuth2UserDetail(user, client(request)); + } + throw new UserInvalidException(ExceptionCode.INVALID_USER.getMessage()); + } + + private void validateUser(User user) { + Predicate isNameValid = name -> name.matches("^([\\u4e00-\\u9fa5]{2,20}|[a-zA-Z]{2,10})$"); + Predicate isUsernameValid = username -> username.matches("^(?=.*[a-zA-Z])[a-zA-Z0-9_\\-@]{3,20}$"); + Predicate isPasswordValid = password -> password.matches("^(?=.*[0-9])(?=.*[a-zA-Z])[\\w@-]{6,45}$"); + Predicate isPhoneValid = phone -> phone.matches("^1[3-9]\\d{9}$"); + Predicate isEmailValid = email -> email.matches("^[A-Za-z0-9+_.-]+@(.+)$"); + if (!isNameValid.test(user.getName())) { + throw new UserInvalidException("用户姓名长度必须在2-10之间,且仅能设置纯中文或纯英文"); + } + if (!isUsernameValid.test(user.getAccount())) { + throw new UserInvalidException("用户账号长度必须在3-20之间,且需要包含英文,可额外携带数字、下划线、横杠、@"); + } + if (!isPhoneValid.test(user.getPhone())) { + throw new UserInvalidException("手机号格式不正确"); + } + if (!isEmailValid.test(user.getEmail())) { + throw new UserInvalidException("邮箱格式不正确"); + } + if (!isPasswordValid.test(user.getPassword())) { + throw new UserInvalidException("密码长度格式不符合要求"); + } + } + + @NotNull + private OAuth2UserDetail convertOAuth2UserDetail(User user, OAuth2Client client) { + OAuth2UserDetail userDetail = new OAuth2UserDetail(); + userDetail.setUserId(String.valueOf(user.getId())); + userDetail.setTenantId(user.getTenantId()); + userDetail.setName(user.getName()); + userDetail.setRealName(user.getName()); + userDetail.setAccount(user.getAccount()); + userDetail.setPassword(user.getPassword()); + userDetail.setPhone(user.getPhone()); + userDetail.setEmail(user.getEmail()); + userDetail.setAuthorities(Collections.singletonList(REGISTER)); + userDetail.setClient(client); + return userDetail; + } +} diff --git a/src/main/java/org/springblade/modules/auth/granter/SocialTokenGranter.java b/src/main/java/org/springblade/modules/auth/granter/SocialTokenGranter.java new file mode 100644 index 0000000..1c6dfb3 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/granter/SocialTokenGranter.java @@ -0,0 +1,111 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.granter; + +import me.zhyd.oauth.model.AuthCallback; +import me.zhyd.oauth.model.AuthResponse; +import me.zhyd.oauth.model.AuthUser; +import me.zhyd.oauth.request.AuthRequest; +import org.springblade.core.oauth2.exception.OAuth2ErrorCode; +import org.springblade.core.oauth2.granter.AbstractTokenGranter; +import org.springblade.core.oauth2.handler.PasswordHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.service.OAuth2ClientService; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.service.OAuth2UserService; +import org.springblade.core.oauth2.utils.OAuth2ExceptionUtil; +import org.springblade.core.social.props.SocialProperties; +import org.springblade.core.social.utils.SocialUtil; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.auth.utils.TokenUtil; +import org.springblade.modules.system.pojo.entity.UserInfo; +import org.springblade.modules.system.pojo.entity.UserOauth; +import org.springblade.modules.system.service.IUserService; +import org.springframework.stereotype.Component; + +import java.util.Objects; + +/** + * SocialTokenGranter + * + * @author Chill + */ +@Component +public class SocialTokenGranter extends AbstractTokenGranter { + + + private static final Integer AUTH_SUCCESS_CODE = 2000; + + private final IUserService userService; + private final SocialProperties socialProperties; + + + public SocialTokenGranter(OAuth2ClientService clientService, OAuth2UserService oAuth2UserService, PasswordHandler passwordHandler, IUserService userService, SocialProperties socialProperties) { + super(clientService, oAuth2UserService, passwordHandler); + this.userService = userService; + this.socialProperties = socialProperties; + } + + @Override + public String type() { + return SOCIAL; + } + + @Override + public OAuth2User user(OAuth2Request request) { + String tenantId = request.getTenantId(); + // 开放平台来源 + String sourceParameter = request.getSource(); + // 匹配是否有别名定义 + String source = socialProperties.getAlias().getOrDefault(sourceParameter, sourceParameter); + // 开放平台授权码 + String code = request.getCode(); + // 开放平台状态吗 + String state = request.getState(); + + // 获取开放平台授权数据 + AuthRequest authRequest = SocialUtil.getAuthRequest(source, socialProperties); + AuthCallback authCallback = new AuthCallback(); + authCallback.setCode(code); + authCallback.setState(state); + AuthResponse authResponse = authRequest.login(authCallback); + AuthUser authUser = null; + if (authResponse.getCode() == AUTH_SUCCESS_CODE) { + authUser = (AuthUser) authResponse.getData(); + } else { + OAuth2ExceptionUtil.throwFromCode(OAuth2ErrorCode.INVALID_USER); + } + + // 组装数据 + UserOauth userOauth = Objects.requireNonNull(BeanUtil.copyProperties(authUser, UserOauth.class)); + userOauth.setSource(authUser.getSource()); + userOauth.setTenantId(tenantId); + userOauth.setUuid(authUser.getUuid()); + UserInfo userInfo = userService.userInfo(userOauth); + return TokenUtil.convertUser(userInfo, request); + } + +} diff --git a/src/main/java/org/springblade/modules/auth/handler/BladeAuthorizationHandler.java b/src/main/java/org/springblade/modules/auth/handler/BladeAuthorizationHandler.java new file mode 100644 index 0000000..e14619a --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/handler/BladeAuthorizationHandler.java @@ -0,0 +1,200 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.handler; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.cache.CacheNames; +import org.springblade.common.cache.ParamCache; +import org.springblade.common.cache.SysCache; +import org.springblade.common.constant.TenantConstant; +import org.springblade.core.oauth2.exception.ExceptionCode; +import org.springblade.core.oauth2.handler.AbstractAuthorizationHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.provider.OAuth2Validation; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tenant.BladeTenantProperties; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.DesUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Tenant; + +import java.time.Duration; +import java.util.Date; + +import static org.springblade.modules.auth.constant.BladeAuthConstant.FAIL_COUNT; +import static org.springblade.modules.auth.constant.BladeAuthConstant.FAIL_COUNT_VALUE; + +/** + * AbstractAuthorizationHandler + * + * @author BladeX + */ +@Slf4j +@RequiredArgsConstructor +public class BladeAuthorizationHandler extends AbstractAuthorizationHandler { + + private final BladeRedis bladeRedis; + private final BladeTenantProperties tenantProperties; + + /** + * 认证校验 + * + * @param user 用户信息 + * @param request 请求信息 + * @return boolean + */ + @Override + public OAuth2Validation authValidation(OAuth2User user, OAuth2Request request) { + // 密码模式、刷新token模式、验证码模式需要校验租户状态 + if (request.isPassword() || request.isRefreshToken() || request.isCaptchaCode()) { + // 租户校验 + OAuth2Validation tenantValidation = validateTenant(user.getTenantId()); + if (!tenantValidation.isSuccess()) { + return tenantValidation; + } + // 判断登录是否锁定 + OAuth2Validation failCountValidation = validateFailCount(user.getTenantId(), user.getAccount()); + if (!failCountValidation.isSuccess()) { + return failCountValidation; + } + } + return super.authValidation(user, request); + } + + /** + * 认证成功回调 + * + * @param user 用户信息 + */ + @Override + public void authSuccessful(OAuth2User user, OAuth2Request request) { + // 清空错误锁定次数 + delFailCount(user.getTenantId(), user.getAccount()); + + log.info("用户:{},认证成功", user.getAccount()); + } + + /** + * 认证失败回调 + * + * @param user 用户信息 + * @param validation 失败信息 + */ + @Override + public void authFailure(OAuth2User user, OAuth2Request request, OAuth2Validation validation) { + // 增加错误锁定次数 + addFailCount(user.getTenantId(), user.getAccount()); + + log.error("用户:{},认证失败,失败原因:{}", user.getAccount(), validation.getMessage()); + } + + /** + * 租户授权校验 + * + * @param tenantId 租户id + * @return OAuth2Validation + */ + private OAuth2Validation validateTenant(String tenantId) { + // 租户校验 + Tenant tenant = SysCache.getTenant(tenantId); + if (tenant == null) { + return buildValidationFailure(ExceptionCode.USER_TENANT_NOT_FOUND); + } + // 租户授权时间校验 + Date expireTime = tenant.getExpireTime(); + if (tenantProperties.getLicense()) { + String licenseKey = tenant.getLicenseKey(); + String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY); + expireTime = JsonUtil.parse(decrypt, Tenant.class).getExpireTime(); + } + if (expireTime != null && expireTime.before(DateUtil.now())) { + return buildValidationFailure(ExceptionCode.UNAUTHORIZED_USER_TENANT); + } + return new OAuth2Validation(); + } + + /** + * 判断登录是否锁定 + * + * @param tenantId 租户id + * @param account 账号 + * @return OAuth2Validation + */ + private OAuth2Validation validateFailCount(String tenantId, String account) { + int cnt = getFailCount(tenantId, account); + int failCount = Func.toInt(ParamCache.getValue(FAIL_COUNT_VALUE), FAIL_COUNT); + if (cnt >= failCount) { + return buildValidationFailure(ExceptionCode.USER_TOO_MANY_FAILS); + } + return new OAuth2Validation(); + } + + /** + * 获取账号错误次数 + * + * @param tenantId 租户id + * @param username 账号 + * @return int + */ + private int getFailCount(String tenantId, String username) { + return Func.toInt(bladeRedis.get(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username)), 0); + } + + /** + * 设置账号错误次数 + * + * @param tenantId 租户id + * @param username 账号 + */ + private void addFailCount(String tenantId, String username) { + int count = getFailCount(tenantId, username); + bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username), count + 1, Duration.ofMinutes(30)); + } + + /** + * 设置账号错误次数 + * + * @param tenantId 租户id + * @param username 账号 + * @param count 次数 + */ + private void setFailCount(String tenantId, String username, int count) { + bladeRedis.setEx(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username), count + 1, Duration.ofMinutes(30)); + } + + /** + * 清空账号错误次数 + * + * @param tenantId 租户id + * @param username 账号 + */ + private void delFailCount(String tenantId, String username) { + bladeRedis.del(CacheNames.tenantKey(tenantId, CacheNames.USER_FAIL_KEY, username)); + } +} diff --git a/src/main/java/org/springblade/modules/auth/handler/BladePasswordHandler.java b/src/main/java/org/springblade/modules/auth/handler/BladePasswordHandler.java new file mode 100644 index 0000000..e0446ea --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/handler/BladePasswordHandler.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.handler; + +import org.springblade.core.oauth2.handler.OAuth2PasswordHandler; + +/** + * BladePasswordHandler + * + * @author BladeX + */ +public class BladePasswordHandler extends OAuth2PasswordHandler { + + /** + * 判断密码是否匹配 + * + * @param rawPassword 请求时提交的原密码 + * @param encodedPassword 数据库加密后的密码 + * @return boolean + */ + @Override + public boolean matches(String rawPassword, String encodedPassword) { + return super.matches(rawPassword, encodedPassword); + } + + /** + * 加密密码规则 + * + * @param rawPassword 密码 + * @return 加密后的密码 + */ + @Override + public String encode(String rawPassword) { + return super.encode(rawPassword); + } +} diff --git a/src/main/java/org/springblade/modules/auth/handler/BladeTokenHandler.java b/src/main/java/org/springblade/modules/auth/handler/BladeTokenHandler.java new file mode 100644 index 0000000..5202ccc --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/handler/BladeTokenHandler.java @@ -0,0 +1,34 @@ +package org.springblade.modules.auth.handler; + +import org.springblade.core.jwt.props.JwtProperties; +import org.springblade.core.launch.constant.TokenConstant; +import org.springblade.core.oauth2.handler.OAuth2TokenHandler; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.provider.OAuth2Token; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.tool.support.Kv; + +/** + * BladeTokenHandler + * + * @author BladeX + */ +public class BladeTokenHandler extends OAuth2TokenHandler { + + public BladeTokenHandler(JwtProperties properties) { + super(properties); + } + + @Override + public OAuth2Token enhance(OAuth2User user, OAuth2Token token, OAuth2Request request) { + // 父类令牌状态配置 + OAuth2Token enhanceToken = super.enhance(user, token, request); + + // 令牌统一处理,增加或删减字段 + Kv args = enhanceToken.getArgs(); + args.set(TokenConstant.USER_NAME, user.getAccount()); + + // 返回令牌 + return enhanceToken; + } +} diff --git a/src/main/java/org/springblade/modules/auth/provider/UserType.java b/src/main/java/org/springblade/modules/auth/provider/UserType.java new file mode 100644 index 0000000..86dec69 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/provider/UserType.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.provider; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 用户类型枚举 + * + * @author Chill + */ +@Getter +@AllArgsConstructor +public enum UserType { + + /** + * web + */ + WEB("web", 1), + + /** + * app + */ + APP("app", 2), + + /** + * other + */ + OTHER("other", 3), + ; + + final String name; + final int category; + + public static UserType of(String name) { + return Arrays.stream(UserType.values()) + .filter(userEnum -> userEnum.getName().equalsIgnoreCase(name != null ? name : "web")) + .findFirst() + .orElse(UserType.WEB); // 在没有找到匹配项时返回默认值 + } +} diff --git a/src/main/java/org/springblade/modules/auth/service/BladeClientDetailService.java b/src/main/java/org/springblade/modules/auth/service/BladeClientDetailService.java new file mode 100644 index 0000000..20e0058 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/service/BladeClientDetailService.java @@ -0,0 +1,37 @@ +package org.springblade.modules.auth.service; + +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.service.OAuth2Client; +import org.springblade.core.oauth2.service.impl.OAuth2ClientDetailService; +import org.springframework.jdbc.core.JdbcTemplate; + +/** + * BladeClientDetailService + * + * @author Chill + */ +public class BladeClientDetailService extends OAuth2ClientDetailService { + public BladeClientDetailService(JdbcTemplate jdbcTemplate) { + super(jdbcTemplate); + } + + @Override + public OAuth2Client loadByClientId(String clientId) { + return super.loadByClientId(clientId); + } + + @Override + public OAuth2Client loadByClientId(String clientId, OAuth2Request request) { + return super.loadByClientId(clientId, request); + } + + @Override + public boolean validateClient(OAuth2Client client, String clientId, String clientSecret) { + return super.validateClient(client, clientId, clientSecret); + } + + @Override + public boolean validateGranter(OAuth2Client client, String grantType) { + return super.validateGranter(client, grantType); + } +} diff --git a/src/main/java/org/springblade/modules/auth/service/BladeUserDetailService.java b/src/main/java/org/springblade/modules/auth/service/BladeUserDetailService.java new file mode 100644 index 0000000..6bbe825 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/service/BladeUserDetailService.java @@ -0,0 +1,62 @@ +package org.springblade.modules.auth.service; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.service.OAuth2UserService; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.auth.provider.UserType; +import org.springblade.modules.auth.utils.TokenUtil; +import org.springblade.modules.system.pojo.entity.UserInfo; +import org.springblade.modules.system.service.IUserService; + +import java.util.Optional; + +/** + * BladeUserDetailService + * + * @author Chill + */ +@RequiredArgsConstructor +public class BladeUserDetailService implements OAuth2UserService { + private final IUserService userService; + + @Override + public OAuth2User loadByUserId(String userId, OAuth2Request request) { + // 获取用户参数 + String userType = Optional.ofNullable(request.getUserType()) + .filter(s -> !StringUtil.isBlank(s)) + .orElse(UserType.WEB.getName()); + + // 获取用户信息 + UserInfo userInfo = userService.userInfo(Func.toLong(userId), UserType.of(userType)); + + // 构建oauth2用户信息 + return TokenUtil.convertUser(userInfo, request); + } + + @Override + public OAuth2User loadByUsername(String username, OAuth2Request request) { + // 获取用户参数 + String userType = Optional.ofNullable(request.getUserType()) + .filter(s -> !StringUtil.isBlank(s)) + .orElse(UserType.WEB.getName()); + String tenantId = request.getTenantId(); + + // 获取用户信息 + UserInfo userInfo = userService.userInfo(tenantId, username, UserType.of(userType)); + + // 构建oauth2用户信息 + return TokenUtil.convertUser(userInfo, request); + } + + @Override + public boolean validateUser(OAuth2User user) { + return Optional.ofNullable(user) + .filter(u -> u.getUserId() != null && !u.getUserId().isEmpty()) // 检查userId不为空 + .filter(u -> u.getAuthorities() != null && !u.getAuthorities().isEmpty()) // 检查authorities不为空 + .isPresent(); // 如果上述条件都满足,则返回true,否则返回false + } + +} diff --git a/src/main/java/org/springblade/modules/auth/utils/TokenUtil.java b/src/main/java/org/springblade/modules/auth/utils/TokenUtil.java new file mode 100644 index 0000000..235c314 --- /dev/null +++ b/src/main/java/org/springblade/modules/auth/utils/TokenUtil.java @@ -0,0 +1,83 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.auth.utils; + +import org.springblade.core.oauth2.provider.OAuth2Request; +import org.springblade.core.oauth2.service.OAuth2User; +import org.springblade.core.oauth2.service.impl.OAuth2UserDetail; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.pojo.entity.UserInfo; + +/** + * 认证工具类 + * + * @author Chill + */ +public class TokenUtil { + + /** + * 系统用户转换为OAuth2标准用户 + * + * @param userInfo 用户信息 + * @param request 请求信息 + * @return OAuth2User + */ + public static OAuth2User convertUser(UserInfo userInfo, OAuth2Request request) { + // 为空则返回null + if (userInfo == null) { + return null; + } + User user = userInfo.getUser(); + String userDept = request.getUserDept(); + String userRole = request.getUserRole(); + // 多部门情况下指定单部门 + if (Func.isNotEmpty(userDept) && user.getDeptId().contains(userDept)) { + user.setDeptId(userDept); + } + // 多角色情况下指定单角色 + if (Func.isNotEmpty(userRole) && user.getRoleId().contains(userRole)) { + user.setRoleId(userRole); + } + // 构建oauth2所需用户信息 + OAuth2UserDetail userDetail = new OAuth2UserDetail(); + userDetail.setUserId(String.valueOf(user.getId())); + userDetail.setTenantId(user.getTenantId()); + userDetail.setName(user.getName()); + userDetail.setRealName(user.getRealName()); + userDetail.setAccount(user.getAccount()); + userDetail.setPassword(user.getPassword()); + userDetail.setDeptId(user.getDeptId()); + userDetail.setPostId(user.getPostId()); + userDetail.setRoleId(user.getRoleId()); + userDetail.setRoleName(Func.join(userInfo.getRoles())); + userDetail.setAvatar(user.getAvatar()); + userDetail.setAuthorities(userInfo.getRoles()); + userDetail.setDetail(userInfo.getDetail()); + return userDetail; + } + +} diff --git a/src/main/java/org/springblade/modules/desk/controller/DashBoardController.java b/src/main/java/org/springblade/modules/desk/controller/DashBoardController.java new file mode 100644 index 0000000..b0b57e4 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/controller/DashBoardController.java @@ -0,0 +1,212 @@ +package org.springblade.modules.desk.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.support.Kv; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 首页 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@RequestMapping(AppConstant.APPLICATION_DESK_NAME) +@AllArgsConstructor +@Tag(name = "首页", description = "首页") +public class DashBoardController { + + /** + * 活跃用户 + */ + @GetMapping("/dashboard/activities") + @ApiOperationSupport(order = 1) + @Operation(summary = "活跃用户", description = "活跃用户") + public R activities() { + List> list = new ArrayList<>(); + + Map map1 = new HashMap<>(16); + map1.put("id", "trend-1"); + map1.put("updatedAt", "2019-01-01"); + map1.put("user", Kv.create().set("name", "曲丽丽").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png")); + map1.put("group", Kv.create().set("name", "高逼格设计天团").set("link", "http://github.com/")); + map1.put("project", Kv.create().set("name", "六月迭代").set("link", "http://github.com/")); + map1.put("template", "在 @{group} 新建项目 @{project}"); + list.add(map1); + + Map map2 = new HashMap<>(16); + map2.put("id", "trend-2"); + map2.put("updatedAt", "2019-01-01"); + map2.put("user", Kv.create().set("name", "付小小").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png")); + map2.put("group", Kv.create().set("name", "高逼格设计天团").set("link", "http://github.com/")); + map2.put("project", Kv.create().set("name", "七月月迭代").set("link", "http://github.com/")); + map2.put("template", "在 @{group} 新建项目 @{project}"); + list.add(map2); + + return R.data(list); + } + + /** + * 用户信息 + */ + @GetMapping("/dashboard/info") + @ApiOperationSupport(order = 2) + @Operation(summary = "用户信息", description = "用户信息") + public R info() { + Map map = new HashMap<>(16); + map.put("id", "trend-1"); + map.put("updatedAt", "2019-01-01"); + map.put("user", Kv.create().set("name", "曲丽丽").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png")); + map.put("group", Kv.create().set("name", "高逼格设计天团").set("link", "http://github.com/")); + map.put("project", Kv.create().set("name", "六月迭代").set("link", "http://github.com/")); + map.put("template", "在 @{group} 新建项目 @{project}"); + return R.data(map); + } + + /** + * 签名信息 + */ + @PostMapping("/dashboard/sign") + @ApiOperationSupport(order = 3) + @Operation(summary = "签名信息", description = "签名信息") + public R sign() { + Map map = new HashMap<>(16); + map.put("user", Kv.create().set("name", "曲丽丽").set("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png")); + return R.data(map); + } + + /** + * 获取消息 + */ + @GetMapping("/notice/notices") + @ApiOperationSupport(order = 4) + @Operation(summary = "消息", description = "消息") + public R notices() { + List> list = new ArrayList<>(); + Map map1 = new HashMap<>(16); + map1.put("logo", "https://spring.io/img/homepage/icon-spring-framework.svg"); + map1.put("title", "SpringBoot"); + map1.put("description", "现在的web项目几乎都会用到spring框架,而要使用spring难免需要配置大量的xml配置文件,而 springboot的出现解 决了这一问题,一个项目甚至不用部署到服务器上直接开跑,真像springboot所说:“just run”。"); + map1.put("member", "Chill"); + map1.put("href", "http://spring.io/projects/spring-boot"); + list.add(map1); + + Map map2 = new HashMap<>(16); + map2.put("logo", "https://spring.io/img/homepage/icon-spring-cloud.svg"); + map2.put("title", "SpringCloud"); + map2.put("description", "SpringCloud是基于SpringBoot的一整套实现微服务的框架。他提供了微服务开发所需的配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等组件。"); + map2.put("member", "Chill"); + map2.put("href", "http://spring.io/projects/spring-cloud"); + list.add(map2); + + Map map3 = new HashMap<>(16); + map3.put("logo", "https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1546359961068&di=05ff9406e6675ca9a58a525a7e7950b9&imgtype=jpg&src=http%3A%2F%2Fimg0.imgtn.bdimg.com%2Fit%2Fu%3D575314515%2C4268715674%26fm%3D214%26gp%3D0.jpg"); + map3.put("title", "Mybatis"); + map3.put("description", "MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。"); + map3.put("member", "Chill"); + map3.put("href", "http://www.mybatis.org/mybatis-3/getting-started.html"); + list.add(map3); + + Map map4 = new HashMap<>(16); + map4.put("logo", "https://gw.alipayobjects.com/zos/rmsportal/kZzEzemZyKLKFsojXItE.png"); + map4.put("title", "React"); + map4.put("description", "React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。"); + map4.put("member", "Chill"); + map4.put("href", "https://reactjs.org/"); + list.add(map4); + + Map map5 = new HashMap<>(16); + map5.put("logo", "https://gw.alipayobjects.com/zos/rmsportal/dURIMkkrRFpPgTuzkwnB.png"); + map5.put("title", "Ant Design"); + map5.put("description", "蚂蚁金服体验技术部经过大量的项目实践和总结,沉淀出设计语言 Ant Design,这可不单纯只是设计原则、控件规范和视觉尺寸,还配套有前端代码实现方案。也就是说采用Ant Design后,UI设计和前端界面研发可同步完成,效率大大提升。"); + map5.put("member", "Chill"); + map5.put("href", "https://ant.design/docs/spec/introduce-cn"); + list.add(map5); + + Map map6 = new HashMap<>(16); + map6.put("logo", "https://gw.alipayobjects.com/zos/rmsportal/sfjbOqnsXXJgNCjCzDBL.png"); + map6.put("title", "Ant Design Pro"); + map6.put("description", "Ant Design Pro 是一个企业级开箱即用的中后台前端/设计解决方案。符合阿里追求的'敏捷的前端+强大的中台'的思想。"); + map6.put("member", "Chill"); + map6.put("href", "https://pro.ant.design"); + list.add(map6); + + return R.data(list); + } + + /** + * 获取我的消息 + */ + @GetMapping("/notice/my-notices") + @ApiOperationSupport(order = 5) + @Operation(summary = "消息", description = "消息") + public R myNotices() { + List> list = new ArrayList<>(); + Map map1 = new HashMap<>(16); + map1.put("id", "000000001"); + map1.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/ThXAXghbEsBCCSDihZxY.png"); + map1.put("title", "你收到了 14 份新周报"); + map1.put("datetime", "2018-08-09"); + map1.put("type", "notification"); + list.add(map1); + + Map map2 = new HashMap<>(16); + map2.put("id", "000000002"); + map2.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/OKJXDXrmkNshAMvwtvhu.png"); + map2.put("title", "你推荐的 曲妮妮 已通过第三轮面试"); + map2.put("datetime", "2018-08-08"); + map2.put("type", "notification"); + list.add(map2); + + + Map map3 = new HashMap<>(16); + map3.put("id", "000000003"); + map3.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg"); + map3.put("title", "曲丽丽 评论了你"); + map3.put("description", "描述信息描述信息描述信息"); + map3.put("datetime", "2018-08-07"); + map3.put("type", "message"); + map3.put("clickClose", "true"); + list.add(map3); + + + Map map4 = new HashMap<>(16); + map4.put("id", "000000004"); + map4.put("avatar", "https://gw.alipayobjects.com/zos/rmsportal/fcHMVNCjPOsbUGdEduuv.jpeg"); + map4.put("title", "朱偏右 回复了你"); + map4.put("description", "这种模板用于提醒谁与你发生了互动,左侧放『谁』的头像"); + map4.put("type", "message"); + map4.put("datetime", "2018-08-07"); + map4.put("clickClose", "true"); + list.add(map4); + + + Map map5 = new HashMap<>(16); + map5.put("id", "000000005"); + map5.put("title", "任务名称"); + map5.put("description", "任务需要在 2018-01-12 20:00 前启动"); + map5.put("extra", "未开始"); + map5.put("status", "todo"); + map5.put("type", "event"); + list.add(map5); + + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/desk/controller/NoticeController.java b/src/main/java/org/springblade/modules/desk/controller/NoticeController.java new file mode 100644 index 0000000..e56e0cc --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/controller/NoticeController.java @@ -0,0 +1,151 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.desk.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import com.github.xiaoymin.knife4j.annotations.ApiSort; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.TenantDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.desk.pojo.entity.Notice; +import org.springblade.modules.desk.service.INoticeService; +import org.springblade.modules.desk.pojo.vo.NoticeVO; +import org.springblade.modules.desk.wrapper.NoticeWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +/** + * 控制器 + * + * @author Chill + */ +@TenantDS +@RestController +@RequestMapping(AppConstant.APPLICATION_DESK_NAME + "/notice") +@AllArgsConstructor +@ApiSort(2) +@Tag(name = "用户博客", description = "博客接口") +public class NoticeController extends BladeController { + + private final INoticeService noticeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入notice") + public R detail(Notice notice) { + Notice detail = noticeService.getOne(Condition.getQueryWrapper(notice)); + return R.data(NoticeWrapper.build().entityVO(detail)); + } + + /** + * 分页 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "category", description = "公告类型", in = ParameterIn.QUERY, schema = @Schema(type = "integer")), + @Parameter(name = "title", description = "公告标题", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入notice") + public R> list(@Parameter(hidden = true) @RequestParam Map notice, Query query) { + NoticeWrapper.build().noticeQuery(notice); + IPage pages = noticeService.page(Condition.getPage(query), Condition.getQueryWrapper(notice, Notice.class)); + return R.data(NoticeWrapper.build().pageVO(pages)); + } + + /** + * 多表联合查询自定义分页 + */ + @GetMapping("/page") + @Parameters({ + @Parameter(name = "category", description = "公告类型", in = ParameterIn.QUERY, schema = @Schema(type = "integer")), + @Parameter(name = "title", description = "公告标题", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入notice") + public R> page(@Parameter(hidden = true) NoticeVO notice, Query query) { + IPage pages = noticeService.selectNoticePage(Condition.getPage(query), notice); + return R.data(pages); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入notice") + public R save(@RequestBody Notice notice) { + return R.status(noticeService.save(notice)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入notice") + public R update(@RequestBody Notice notice) { + return R.status(noticeService.updateById(notice)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入notice") + public R submit(@RequestBody Notice notice) { + return R.status(noticeService.saveOrUpdate(notice)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入notice") + public R remove(@Parameter(description = "主键集合") @RequestParam String ids) { + boolean temp = noticeService.deleteLogic(Func.toLongList(ids)); + return R.status(temp); + } + +} diff --git a/src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.java b/src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.java new file mode 100644 index 0000000..12845f9 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.desk.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.desk.pojo.entity.Notice; +import org.springblade.modules.desk.pojo.vo.NoticeVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface NoticeMapper extends BaseMapper { + + /** + * 前N条数据 + * + * @param number 数量 + * @return List + */ + List topList(Integer number); + + /** + * 自定义分页 + * + * @param page 分页 + * @param notice 实体 + * @return List + */ + List selectNoticePage(IPage page, NoticeVO notice); + +} diff --git a/src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.xml b/src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.xml new file mode 100644 index 0000000..8b0f22d --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/mapper/NoticeMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/desk/pojo/entity/Notice.java b/src/main/java/org/springblade/modules/desk/pojo/entity/Notice.java new file mode 100644 index 0000000..0bceb33 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/pojo/entity/Notice.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.desk.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("blade_notice") +@Schema(description = "公告实体类") +public class Notice extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 标题 + */ + @Schema(description = "标题") + private String title; + + /** + * 通知类型 + */ + @Schema(description = "通知类型") + private Integer category; + + /** + * 发布日期 + */ + @Schema(description = "发布日期") + private Date releaseTime; + + /** + * 内容 + */ + @Schema(description = "内容") + private String content; + + +} diff --git a/src/main/java/org/springblade/modules/desk/pojo/vo/NoticeVO.java b/src/main/java/org/springblade/modules/desk/pojo/vo/NoticeVO.java new file mode 100644 index 0000000..b77fdd0 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/pojo/vo/NoticeVO.java @@ -0,0 +1,24 @@ +package org.springblade.modules.desk.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.desk.pojo.entity.Notice; + +/** + * 通知公告视图类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "公告实体VO") +public class NoticeVO extends Notice { + + @Schema(description = "通知类型名") + private String categoryName; + + @Schema(description = "租户编号") + private String tenantId; + +} diff --git a/src/main/java/org/springblade/modules/desk/service/INoticeService.java b/src/main/java/org/springblade/modules/desk/service/INoticeService.java new file mode 100644 index 0000000..28b72a9 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/service/INoticeService.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.desk.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.desk.pojo.entity.Notice; +import org.springblade.modules.desk.pojo.vo.NoticeVO; + +/** + * 服务类 + * + * @author Chill + */ +public interface INoticeService extends BaseService { + + /** + * 自定义分页 + * @param page + * @param notice + * @return + */ + IPage selectNoticePage(IPage page, NoticeVO notice); + +} diff --git a/src/main/java/org/springblade/modules/desk/service/impl/NoticeServiceImpl.java b/src/main/java/org/springblade/modules/desk/service/impl/NoticeServiceImpl.java new file mode 100644 index 0000000..8b1d6f5 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/service/impl/NoticeServiceImpl.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.desk.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.modules.desk.pojo.entity.Notice; +import org.springblade.modules.desk.mapper.NoticeMapper; +import org.springblade.modules.desk.service.INoticeService; +import org.springblade.modules.desk.pojo.vo.NoticeVO; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class NoticeServiceImpl extends BaseServiceImpl implements INoticeService { + + @Override + public IPage selectNoticePage(IPage page, NoticeVO notice) { + // 若不使用mybatis-plus自带的分页方法,则不会自动带入tenantId,所以我们需要自行注入 + notice.setTenantId(AuthUtil.getTenantId()); + return page.setRecords(baseMapper.selectNoticePage(page, notice)); + } + +} diff --git a/src/main/java/org/springblade/modules/desk/wrapper/NoticeWrapper.java b/src/main/java/org/springblade/modules/desk/wrapper/NoticeWrapper.java new file mode 100644 index 0000000..52c7da4 --- /dev/null +++ b/src/main/java/org/springblade/modules/desk/wrapper/NoticeWrapper.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.desk.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.desk.pojo.entity.Notice; +import org.springblade.modules.desk.pojo.vo.NoticeVO; + +import java.util.Map; +import java.util.Objects; + +/** + * Notice包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class NoticeWrapper extends BaseEntityWrapper { + + public static NoticeWrapper build() { + return new NoticeWrapper(); + } + + @Override + public NoticeVO entityVO(Notice notice) { + NoticeVO noticeVO = Objects.requireNonNull(BeanUtil.copyProperties(notice, NoticeVO.class)); + String dictValue = DictCache.getValue(DictEnum.NOTICE, noticeVO.getCategory()); + noticeVO.setCategoryName(dictValue); + return noticeVO; + } + + /** + * 查询条件处理 + */ + public void noticeQuery(Map notice) { + // 此场景仅在 pg数据库 map类型传参的情况下需要处理,entity传参已经包含数据类型,则无需关心 + // 针对 pg数据库 int类型字段查询需要强转的处理示例 + String searchKey = "category"; + if (Func.isNotEmpty(notice.get(searchKey))) { + // 数据库字段为int类型,设置"="查询,具体查询参数请见 @org.springblade.core.mp.support.SqlKeyword + notice.put(searchKey.concat("_equal"), Func.toInt(notice.get(searchKey))); + // 默认"like"查询,pg数据库 场景会报错,所以将其删除 + notice.remove(searchKey); + } + } + +} diff --git a/src/main/java/org/springblade/modules/develop/controller/CodeController.java b/src/main/java/org/springblade/modules/develop/controller/CodeController.java new file mode 100644 index 0000000..5024439 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/controller/CodeController.java @@ -0,0 +1,207 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.develop.constant.DevelopConstant; +import org.springblade.develop.support.BladeCodeGenerator; +import org.springblade.modules.develop.pojo.entity.Code; +import org.springblade.modules.develop.pojo.entity.Datasource; +import org.springblade.modules.develop.pojo.entity.Model; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; +import org.springblade.modules.develop.service.ICodeService; +import org.springblade.modules.develop.service.IDatasourceService; +import org.springblade.modules.develop.service.IModelPrototypeService; +import org.springblade.modules.develop.service.IModelService; +import org.springframework.web.bind.annotation.*; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_DEVELOP_NAME + "/code") +@Tag(name = "代码生成", description = "代码生成") +@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) +public class CodeController extends BladeController { + + private final ICodeService codeService; + private final IDatasourceService datasourceService; + private final IModelService modelService; + private final IModelPrototypeService modelPrototypeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入code") + public R detail(Code code) { + Code detail = codeService.getOne(Condition.getQueryWrapper(code)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "codeName", description = "模块名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "tableName", description = "表名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "modelName", description = "实体名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入code") + public R> list(@Parameter(hidden = true) @RequestParam Map code, Query query) { + IPage pages = codeService.page(Condition.getPage(query), Condition.getQueryWrapper(code, Code.class)); + return R.data(pages); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增或修改", description = "传入code") + public R submit(@Valid @RequestBody Code code) { + return R.status(codeService.submit(code)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 4) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(codeService.removeByIds(Func.toLongList(ids))); + } + + /** + * 复制 + */ + @PostMapping("/copy") + @ApiOperationSupport(order = 5) + @Operation(summary = "复制", description = "传入id") + public R copy(@Parameter(description = "主键", required = true) @RequestParam Long id) { + Code code = codeService.getById(id); + code.setId(null); + code.setCodeName(code.getCodeName() + "-copy"); + return R.status(codeService.save(code)); + } + + /** + * 代码生成 + */ + @PostMapping("/gen-code") + @ApiOperationSupport(order = 6) + @Operation(summary = "代码生成", description = "传入ids") + public R genCode(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + Collection codes = codeService.listByIds(Func.toLongList(ids)); + codes.forEach(code -> { + BladeCodeGenerator generator = new BladeCodeGenerator(); + // 设置基础模型 + Model model = modelService.getById(code.getModelId()); + generator.setModelCode(model.getModelCode()); + generator.setModelClass(model.getModelClass()); + // 设置模型集合 + List prototypes = modelPrototypeService.prototypeList(model.getId()); + generator.setModel(JsonUtil.readMap(JsonUtil.toJson(model))); + generator.setPrototypes(JsonUtil.readListMap(JsonUtil.toJson(prototypes))); + if (StringUtil.isNotBlank(code.getSubModelId()) && StringUtil.equals(code.getTemplateType(), DevelopConstant.TEMPLATE_SUB)) { + Model subModel = modelService.getById(Func.toLong(code.getSubModelId())); + List subPrototypes = modelPrototypeService.prototypeList(subModel.getId()); + generator.setSubModel(JsonUtil.readMap(JsonUtil.toJson(subModel))); + generator.setSubPrototypes(JsonUtil.readListMap(JsonUtil.toJson(subPrototypes))); + } + // 设置数据源 + Datasource datasource = datasourceService.getById(model.getDatasourceId()); + generator.setDriverName(datasource.getDriverClass()); + generator.setUrl(datasource.getUrl()); + generator.setUsername(datasource.getUsername()); + generator.setPassword(datasource.getPassword()); + // 设置基础配置 + generator.setCodeStyle(code.getCodeStyle()); + generator.setCodeName(code.getCodeName()); + generator.setServiceName(code.getServiceName()); + generator.setPackageName(code.getPackageName()); + generator.setPackageDir(code.getApiPath()); + generator.setPackageWebDir(code.getWebPath()); + generator.setTablePrefix(Func.toStrArray(code.getTablePrefix())); + generator.setIncludeTables(Func.toStrArray(code.getTableName())); + // 设置模版信息 + generator.setTemplateType(code.getTemplateType()); + generator.setAuthor(code.getAuthor()); + generator.setSubModelId(code.getSubModelId()); + generator.setSubFkId(code.getSubFkId()); + generator.setTreeId(code.getTreeId()); + generator.setTreePid(code.getTreePid()); + generator.setTreeName(code.getTreeName()); + // 设置是否继承基础业务字段 + generator.setHasSuperEntity(code.getBaseMode() == 2); + // 设置是否开启包装器模式 + generator.setHasWrapper(code.getWrapMode() == 2); + // 设置是否开启远程调用模式 + generator.setHasFeign(code.getFeignMode() == 2); + // 设置控制器服务名前缀 + generator.setHasServiceName(Boolean.TRUE); + // 启动代码生成 + generator.run(); + }); + return R.success("代码生成成功"); + } + +} diff --git a/src/main/java/org/springblade/modules/develop/controller/DatasourceController.java b/src/main/java/org/springblade/modules/develop/controller/DatasourceController.java new file mode 100644 index 0000000..6823896 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/controller/DatasourceController.java @@ -0,0 +1,140 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.develop.pojo.entity.Datasource; +import org.springblade.modules.develop.service.IDatasourceService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 数据源配置表 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_DEVELOP_NAME + "/datasource") +@Tag(name = "数据源配置表", description = "数据源配置表接口") +public class DatasourceController extends BladeController { + + private final IDatasourceService datasourceService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入datasource") + public R detail(Datasource datasource) { + Datasource detail = datasourceService.getOne(Condition.getQueryWrapper(datasource)); + return R.data(detail); + } + + /** + * 分页 数据源配置表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入datasource") + public R> list(Datasource datasource, Query query) { + IPage pages = datasourceService.page(Condition.getPage(query), Condition.getQueryWrapper(datasource)); + return R.data(pages); + } + + /** + * 新增 数据源配置表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入datasource") + public R save(@Valid @RequestBody Datasource datasource) { + return R.status(datasourceService.save(datasource)); + } + + /** + * 修改 数据源配置表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入datasource") + public R update(@Valid @RequestBody Datasource datasource) { + return R.status(datasourceService.updateById(datasource)); + } + + /** + * 新增或修改 数据源配置表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入datasource") + public R submit(@Valid @RequestBody Datasource datasource) { + if (StringUtil.isNotBlank(datasource.getUrl())) { + datasource.setUrl(datasource.getUrl().replace("&", "&")); + } + return R.status(datasourceService.saveOrUpdate(datasource)); + } + + + /** + * 删除 数据源配置表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(datasourceService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 数据源列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @Operation(summary = "下拉数据源", description = "查询列表") + public R> select() { + List list = datasourceService.list(); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/develop/controller/ModelController.java b/src/main/java/org/springblade/modules/develop/controller/ModelController.java new file mode 100644 index 0000000..b0420e2 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/controller/ModelController.java @@ -0,0 +1,260 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.generator.config.DataSourceConfig; +import com.baomidou.mybatisplus.generator.config.StrategyConfig; +import com.baomidou.mybatisplus.generator.config.builder.ConfigBuilder; +import com.baomidou.mybatisplus.generator.config.po.TableInfo; +import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.develop.pojo.entity.Datasource; +import org.springblade.modules.develop.pojo.entity.Model; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; +import org.springblade.modules.develop.service.IDatasourceService; +import org.springblade.modules.develop.service.IModelPrototypeService; +import org.springblade.modules.develop.service.IModelService; +import org.springframework.web.bind.annotation.*; + +import java.util.Iterator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 数据模型表 控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_DEVELOP_NAME + "/model") +@Tag(name = "数据模型表", description = "数据模型表接口") +public class ModelController extends BladeController { + + private final IModelService modelService; + private final IModelPrototypeService modelPrototypeService; + private final IDatasourceService datasourceService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入model") + public R detail(Model model) { + Model detail = modelService.getOne(Condition.getQueryWrapper(model)); + return R.data(detail); + } + + /** + * 分页 数据模型表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入model") + public R> list(Model model, Query query) { + IPage pages = modelService.page(Condition.getPage(query), Condition.getQueryWrapper(model)); + return R.data(pages); + } + + /** + * 新增 数据模型表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增", description = "传入model") + public R save(@Valid @RequestBody Model model) { + return R.status(modelService.save(model)); + } + + /** + * 修改 数据模型表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 4) + @Operation(summary = "修改", description = "传入model") + public R update(@Valid @RequestBody Model model) { + return R.status(modelService.updateById(model)); + } + + /** + * 新增或修改 数据模型表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入model") + public R submit(@Valid @RequestBody Model model) { + boolean temp = modelService.saveOrUpdate(model); + if (temp) { + return R.data(model); + } else { + return R.status(Boolean.FALSE); + } + } + + /** + * 删除 数据模型表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(modelService.delete(Func.toLongList(ids))); + } + + /** + * 模型列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 7) + @Operation(summary = "模型列表", description = "模型列表") + public R> select() { + List list = modelService.list(); + list.forEach(model -> model.setModelName(model.getModelTable() + StringPool.COLON + StringPool.SPACE + model.getModelName())); + return R.data(list); + } + + /** + * 获取物理表列表 + */ + @GetMapping("/table-list") + @ApiOperationSupport(order = 8) + @Operation(summary = "物理表列表", description = "传入datasourceId") + public R> tableList(Long datasourceId) { + Datasource datasource = datasourceService.getById(datasourceId); + ConfigBuilder config = getConfigBuilder(datasource); + List tableInfoList = config.getTableInfoList().stream() + .filter(tableInfo -> !StringUtil.startsWithIgnoreCase(tableInfo.getName(), "ACT_")) + .map(tableInfo -> tableInfo.setComment(tableInfo.getName() + StringPool.COLON + tableInfo.getComment())) + .collect(Collectors.toList()); + return R.data(tableInfoList); + } + + /** + * 获取物理表信息 + */ + @GetMapping("/table-info") + @ApiOperationSupport(order = 9) + @Operation(summary = "物理表信息", description = "传入model信息") + public R tableInfo(Long modelId, String tableName, Long datasourceId) { + if (StringUtil.isBlank(tableName)) { + Model model = modelService.getById(modelId); + tableName = model.getModelTable(); + } + TableInfo tableInfo = getTableInfo(tableName, datasourceId); + return R.data(tableInfo); + } + + /** + * 获取字段信息 + */ + @GetMapping("/model-prototype") + @ApiOperationSupport(order = 10) + @Operation(summary = "物理表字段信息", description = "传入modelId与datasourceId") + public R modelPrototype(Long modelId, Long datasourceId) { + List modelPrototypeList = modelPrototypeService.list(Wrappers.query().lambda().eq(ModelPrototype::getModelId, modelId)); + if (modelPrototypeList.size() > 0) { + return R.data(modelPrototypeList); + } + Model model = modelService.getById(modelId); + String tableName = model.getModelTable(); + TableInfo tableInfo = getTableInfo(tableName, datasourceId); + if (tableInfo != null) { + return R.data(tableInfo.getFields()); + } else { + return R.fail("未获得相关表信息"); + } + } + + /** + * 获取表信息 + * + * @param tableName 表名 + * @param datasourceId 数据源主键 + */ + private TableInfo getTableInfo(String tableName, Long datasourceId) { + Datasource datasource = datasourceService.getById(datasourceId); + ConfigBuilder config = getConfigBuilder(datasource, tableName); + List tableInfoList = config.getTableInfoList(); + TableInfo tableInfo = null; + Iterator iterator = tableInfoList.stream().filter(table -> table.getName().equals(tableName)).collect(Collectors.toList()).iterator(); + if (iterator.hasNext()) { + tableInfo = iterator.next(); + if (tableName.contains(StringPool.UNDERSCORE)) { + tableInfo.setEntityName(tableInfo.getEntityName().replace(StringUtil.firstCharToUpper(tableName.split(StringPool.UNDERSCORE)[0]), StringPool.EMPTY)); + } else { + tableInfo.setEntityName(StringUtil.firstCharToUpper(tableName)); + } + } + return tableInfo; + } + + /** + * 获取表配置信息 + * + * @param datasource 数据源信息 + */ + private ConfigBuilder getConfigBuilder(Datasource datasource) { + return getConfigBuilder(datasource, null); + } + + /** + * 获取表配置信息 + * + * @param datasource 数据源信息 + * @param tableName 表名 + */ + private ConfigBuilder getConfigBuilder(Datasource datasource, String tableName) { + StrategyConfig.Builder builder = new StrategyConfig.Builder(); + if (StringUtil.isNotBlank(tableName)) { + builder.addInclude(tableName); + } + StrategyConfig strategyConfig = builder.entityBuilder() + .naming(NamingStrategy.underline_to_camel) + .columnNaming(NamingStrategy.underline_to_camel).build(); + DataSourceConfig datasourceConfig = new DataSourceConfig.Builder( + datasource.getUrl(), datasource.getUsername(), datasource.getPassword() + ).build(); + return new ConfigBuilder(null, datasourceConfig, strategyConfig, null, null, null); + } + + +} diff --git a/src/main/java/org/springblade/modules/develop/controller/ModelPrototypeController.java b/src/main/java/org/springblade/modules/develop/controller/ModelPrototypeController.java new file mode 100644 index 0000000..ed39b43 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/controller/ModelPrototypeController.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; +import org.springblade.modules.develop.service.IModelPrototypeService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 数据原型表 控制器 + * + * @author Chill + */ +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_DEVELOP_NAME + "/model-prototype") +@Tag(name = "数据原型表", description = "数据原型表接口") +public class ModelPrototypeController extends BladeController { + + private final IModelPrototypeService modelPrototypeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入modelPrototype") + public R detail(ModelPrototype modelPrototype) { + ModelPrototype detail = modelPrototypeService.getOne(Condition.getQueryWrapper(modelPrototype)); + return R.data(detail); + } + + /** + * 分页 数据原型表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入modelPrototype") + public R> list(ModelPrototype modelPrototype, Query query) { + IPage pages = modelPrototypeService.page(Condition.getPage(query), Condition.getQueryWrapper(modelPrototype)); + return R.data(pages); + } + + /** + * 新增 数据原型表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入modelPrototype") + public R save(@Valid @RequestBody ModelPrototype modelPrototype) { + return R.status(modelPrototypeService.save(modelPrototype)); + } + + /** + * 修改 数据原型表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入modelPrototype") + public R update(@Valid @RequestBody ModelPrototype modelPrototype) { + return R.status(modelPrototypeService.updateById(modelPrototype)); + } + + /** + * 新增或修改 数据原型表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入modelPrototype") + public R submit(@Valid @RequestBody ModelPrototype modelPrototype) { + return R.status(modelPrototypeService.saveOrUpdate(modelPrototype)); + } + + /** + * 批量新增或修改 数据原型表 + */ + @PostMapping("/submit-list") + @ApiOperationSupport(order = 7) + @Operation(summary = "批量新增或修改", description = "传入modelPrototype集合") + public R submitList(@Valid @RequestBody List modelPrototypes) { + return R.status(modelPrototypeService.submitList(modelPrototypes)); + } + + /** + * 删除 数据原型表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 8) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(modelPrototypeService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 数据原型列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 9) + @Operation(summary = "数据原型列表", description = "数据原型列表") + public R> select(@Parameter(description = "数据模型Id", required = true) @RequestParam Long modelId) { + List list = modelPrototypeService.list(Wrappers.query().lambda().eq(ModelPrototype::getModelId, modelId)); + list.forEach(prototype -> prototype.setJdbcComment(prototype.getJdbcName() + StringPool.COLON + StringPool.SPACE + prototype.getJdbcComment())); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/develop/mapper/CodeMapper.java b/src/main/java/org/springblade/modules/develop/mapper/CodeMapper.java new file mode 100644 index 0000000..9c533ca --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/CodeMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.develop.pojo.entity.Code; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface CodeMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/develop/mapper/CodeMapper.xml b/src/main/java/org/springblade/modules/develop/mapper/CodeMapper.xml new file mode 100644 index 0000000..ea66830 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/CodeMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.java b/src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.java new file mode 100644 index 0000000..534f03e --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.develop.pojo.entity.Datasource; + +/** + * 数据源配置表 Mapper 接口 + * + * @author Chill + */ +public interface DatasourceMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.xml b/src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.xml new file mode 100644 index 0000000..7a443dd --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/DatasourceMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/develop/mapper/ModelMapper.java b/src/main/java/org/springblade/modules/develop/mapper/ModelMapper.java new file mode 100644 index 0000000..e06980a --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/ModelMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.develop.pojo.entity.Model; + +/** + * 数据模型表 Mapper 接口 + * + * @author Chill + */ +public interface ModelMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/develop/mapper/ModelMapper.xml b/src/main/java/org/springblade/modules/develop/mapper/ModelMapper.xml new file mode 100644 index 0000000..3265bfb --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/ModelMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.java b/src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.java new file mode 100644 index 0000000..7c927ec --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; + +/** + * 数据原型表 Mapper 接口 + * + * @author Chill + */ +public interface ModelPrototypeMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml b/src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml new file mode 100644 index 0000000..4c6ac56 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/develop/pojo/dto/ModelDTO.java b/src/main/java/org/springblade/modules/develop/pojo/dto/ModelDTO.java new file mode 100644 index 0000000..ffdd2c2 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/pojo/dto/ModelDTO.java @@ -0,0 +1,53 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.develop.pojo.entity.Model; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; + +import java.io.Serial; +import java.util.List; + +/** + * 代码模型DTO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ModelDTO extends Model { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 代码建模原型 + */ + private List prototypes; + +} diff --git a/src/main/java/org/springblade/modules/develop/pojo/entity/Code.java b/src/main/java/org/springblade/modules/develop/pojo/entity/Code.java new file mode 100644 index 0000000..4a0c121 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/pojo/entity/Code.java @@ -0,0 +1,190 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_code") +@Schema(description = "Code对象") +public class Code implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 数据模型主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "数据模型主键") + private Long modelId; + + /** + * 模块名称 + */ + @Schema(description = "服务名称") + private String serviceName; + + /** + * 模块名称 + */ + @Schema(description = "模块名称") + private String codeName; + + /** + * 表名 + */ + @Schema(description = "表名") + private String tableName; + + /** + * 实体名 + */ + @Schema(description = "表前缀") + private String tablePrefix; + + /** + * 主键名 + */ + @Schema(description = "主键名") + private String pkName; + + /** + * 后端包名 + */ + @Schema(description = "后端包名") + private String packageName; + + /** + * 模版类型 + */ + @Schema(description = "模版类型") + private String templateType; + + /** + * 作者信息 + */ + @Schema(description = "作者信息") + private String author; + + /** + * 子表模型主键 + */ + @Schema(description = "子表模型主键") + private String subModelId; + + /** + * 子表绑定外键 + */ + @Schema(description = "子表绑定外键") + private String subFkId; + + /** + * 树主键字段 + */ + @Schema(description = "树主键字段") + private String treeId; + + /** + * 树父主键字段 + */ + @Schema(description = "树父主键字段") + private String treePid; + + /** + * 树名称字段 + */ + @Schema(description = "树名称字段") + private String treeName; + + /** + * 基础业务模式 + */ + @Schema(description = "基础业务模式") + private Integer baseMode; + + /** + * 包装器模式 + */ + @Schema(description = "包装器模式") + private Integer wrapMode; + + /** + * 远程调用模式 + */ + @Schema(description = "远程调用模式") + private Integer feignMode; + + /** + * 代码风格 + */ + @Schema(description = "代码风格") + private String codeStyle; + + /** + * 后端路径 + */ + @Schema(description = "后端路径") + private String apiPath; + + /** + * 前端路径 + */ + @Schema(description = "前端路径") + private String webPath; + + /** + * 是否已删除 + */ + @TableLogic + @Schema(description = "是否已删除") + private Integer isDeleted; + + +} diff --git a/src/main/java/org/springblade/modules/develop/pojo/entity/Datasource.java b/src/main/java/org/springblade/modules/develop/pojo/entity/Datasource.java new file mode 100644 index 0000000..26c756e --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/pojo/entity/Datasource.java @@ -0,0 +1,92 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 数据源配置表实体类 + * + * @author Chill + */ +@Data +@TableName("blade_datasource") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "数据源配置表") +public class Datasource extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 数据源类型 + */ + @Schema(description = "数据源类型") + private Integer category; + /** + * 名称 + */ + @Schema(description = "名称") + private String name; + /** + * 驱动类 + */ + @Schema(description = "驱动类") + private String driverClass; + /** + * 连接地址 + */ + @Schema(description = "连接地址") + private String url; + /** + * 用户名 + */ + @Schema(description = "用户名") + private String username; + /** + * 密码 + */ + @Schema(description = "密码") + private String password; + /** + * 分库分表配置 + */ + @Schema(description = "分库分表配置") + private String shardingConfig; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/develop/pojo/entity/Model.java b/src/main/java/org/springblade/modules/develop/pojo/entity/Model.java new file mode 100644 index 0000000..89b2655 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/pojo/entity/Model.java @@ -0,0 +1,85 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 数据模型表实体类 + * + * @author Chill + */ +@Data +@TableName("blade_model") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "数据模型表") +public class Model extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 数据源主键 + */ + @Schema(description = "数据源主键") + @JsonSerialize(using = ToStringSerializer.class) + private Long datasourceId; + /** + * 模型名称 + */ + @Schema(description = "模型名称") + private String modelName; + /** + * 模型编号 + */ + @Schema(description = "模型编号") + private String modelCode; + /** + * 物理表名 + */ + @Schema(description = "物理表名") + private String modelTable; + /** + * 模型类名 + */ + @Schema(description = "模型类名") + private String modelClass; + /** + * 模型备注 + */ + @Schema(description = "模型备注") + private String modelRemark; + + +} diff --git a/src/main/java/org/springblade/modules/develop/pojo/entity/ModelPrototype.java b/src/main/java/org/springblade/modules/develop/pojo/entity/ModelPrototype.java new file mode 100644 index 0000000..032ec22 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/pojo/entity/ModelPrototype.java @@ -0,0 +1,130 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 数据原型表实体类 + * + * @author Chill + */ +@Data +@TableName("blade_model_prototype") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "数据原型表") +public class ModelPrototype extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 模型主键 + */ + @Schema(description = "模型主键") + @JsonSerialize(using = ToStringSerializer.class) + private Long modelId; + /** + * 物理列名 + */ + @Schema(description = "物理列名") + private String jdbcName; + /** + * 物理类型 + */ + @Schema(description = "物理类型") + private String jdbcType; + /** + * 注释说明 + */ + @Schema(description = "注释说明") + private String jdbcComment; + /** + * 实体列名 + */ + @Schema(description = "实体列名") + private String propertyName; + /** + * 实体类型 + */ + @Schema(description = "实体类型") + private String propertyType; + /** + * 实体类型引用 + */ + @Schema(description = "实体类型引用") + private String propertyEntity; + /** + * 列表显示 + */ + @Schema(description = "列表显示") + private Integer isList; + /** + * 表单显示 + */ + @Schema(description = "表单显示") + private Integer isForm; + /** + * 独占一行 + */ + @Schema(description = "独占一行") + private Integer isRow; + /** + * 组件类型 + */ + @Schema(description = "组件类型") + private String componentType; + /** + * 字典编码 + */ + @Schema(description = "字典编码") + private String dictCode; + /** + * 是否必填 + */ + @Schema(description = "是否必填") + private Integer isRequired; + /** + * 查询配置 + */ + @Schema(description = "查询配置") + private Integer isQuery; + /** + * 查询类型 + */ + @Schema(description = "查询类型") + private String queryType; + + +} diff --git a/src/main/java/org/springblade/modules/develop/service/ICodeService.java b/src/main/java/org/springblade/modules/develop/service/ICodeService.java new file mode 100644 index 0000000..2f04371 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/ICodeService.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.develop.pojo.entity.Code; + +/** + * 服务类 + * + * @author Chill + */ +public interface ICodeService extends IService { + + /** + * 提交 + * + * @param code + * @return + */ + boolean submit(Code code); + +} diff --git a/src/main/java/org/springblade/modules/develop/service/IDatasourceService.java b/src/main/java/org/springblade/modules/develop/service/IDatasourceService.java new file mode 100644 index 0000000..dc3a8b7 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/IDatasourceService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.develop.pojo.entity.Datasource; + +/** + * 数据源配置表 服务类 + * + * @author Chill + */ +public interface IDatasourceService extends BaseService { + +} diff --git a/src/main/java/org/springblade/modules/develop/service/IModelPrototypeService.java b/src/main/java/org/springblade/modules/develop/service/IModelPrototypeService.java new file mode 100644 index 0000000..b77f8ce --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/IModelPrototypeService.java @@ -0,0 +1,56 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; + +import java.util.List; + +/** + * 数据原型表 服务类 + * + * @author Chill + */ +public interface IModelPrototypeService extends BaseService { + + /** + * 批量提交 + * + * @param modelPrototypes 原型集合 + * @return boolean + */ + boolean submitList(List modelPrototypes); + + /** + * 原型列表 + * + * @param modelId 模型ID + * @return List + */ + List prototypeList(Long modelId); + +} diff --git a/src/main/java/org/springblade/modules/develop/service/IModelService.java b/src/main/java/org/springblade/modules/develop/service/IModelService.java new file mode 100644 index 0000000..8474868 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/IModelService.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.develop.pojo.entity.Model; + +import java.util.List; + +/** + * 数据模型表 服务类 + * + * @author Chill + */ +public interface IModelService extends BaseService { + + /** + * 删除模型 + * + * @param ids 主键集合 + * @return boolean + */ + boolean delete(List ids); + +} diff --git a/src/main/java/org/springblade/modules/develop/service/impl/CodeServiceImpl.java b/src/main/java/org/springblade/modules/develop/service/impl/CodeServiceImpl.java new file mode 100644 index 0000000..19d1bd2 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/impl/CodeServiceImpl.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.modules.develop.pojo.entity.Code; +import org.springblade.modules.develop.mapper.CodeMapper; +import org.springblade.modules.develop.service.ICodeService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class CodeServiceImpl extends ServiceImpl implements ICodeService { + + @Override + public boolean submit(Code code) { + code.setIsDeleted(BladeConstant.DB_NOT_DELETED); + return saveOrUpdate(code); + } + +} diff --git a/src/main/java/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.java b/src/main/java/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.java new file mode 100644 index 0000000..d538b40 --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.develop.pojo.entity.Datasource; +import org.springblade.modules.develop.mapper.DatasourceMapper; +import org.springblade.modules.develop.service.IDatasourceService; +import org.springframework.stereotype.Service; + +/** + * 数据源配置表 服务实现类 + * + * @author Chill + */ +@Service +public class DatasourceServiceImpl extends BaseServiceImpl implements IDatasourceService { + +} diff --git a/src/main/java/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.java b/src/main/java/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.java new file mode 100644 index 0000000..2ec7aaf --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; +import org.springblade.modules.develop.mapper.ModelPrototypeMapper; +import org.springblade.modules.develop.service.IModelPrototypeService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 数据原型表 服务实现类 + * + * @author Chill + */ +@Service +public class ModelPrototypeServiceImpl extends BaseServiceImpl implements IModelPrototypeService { + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submitList(List modelPrototypes) { + modelPrototypes.forEach(modelPrototype -> { + if (modelPrototype.getId() == null) { + this.save(modelPrototype); + } else { + this.updateById(modelPrototype); + } + }); + return true; + } + + @Override + public List prototypeList(Long modelId) { + return this.list(Wrappers.lambdaQuery().eq(ModelPrototype::getModelId, modelId)); + } + +} diff --git a/src/main/java/org/springblade/modules/develop/service/impl/ModelServiceImpl.java b/src/main/java/org/springblade/modules/develop/service/impl/ModelServiceImpl.java new file mode 100644 index 0000000..56049df --- /dev/null +++ b/src/main/java/org/springblade/modules/develop/service/impl/ModelServiceImpl.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.develop.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.develop.pojo.entity.Code; +import org.springblade.modules.develop.pojo.entity.Model; +import org.springblade.modules.develop.pojo.entity.ModelPrototype; +import org.springblade.modules.develop.mapper.ModelMapper; +import org.springblade.modules.develop.service.ICodeService; +import org.springblade.modules.develop.service.IModelPrototypeService; +import org.springblade.modules.develop.service.IModelService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 数据模型表 服务实现类 + * + * @author Chill + */ +@Service +@RequiredArgsConstructor +public class ModelServiceImpl extends BaseServiceImpl implements IModelService { + + private final IModelPrototypeService modelPrototypeService; + private final ICodeService codeService; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean delete(List ids) { + boolean modelTemp = this.deleteLogic(ids); + if (modelTemp) { + if (modelPrototypeService.count(Wrappers.lambdaQuery().in(ModelPrototype::getModelId, ids)) > 0) { + boolean prototypeTemp = modelPrototypeService.remove(Wrappers.lambdaQuery().in(ModelPrototype::getModelId, ids)); + if (!prototypeTemp) { + throw new ServiceException("删除数据模型成功,关联数据原型删除失败"); + } + } + if (codeService.count(Wrappers.lambdaQuery().in(Code::getModelId, ids)) > 0) { + boolean codeTemp = codeService.remove(Wrappers.lambdaQuery().in(Code::getModelId, ids)); + if (!codeTemp) { + throw new ServiceException("删除数据模型成功,关联代码生成配置删除失败"); + } + } + } + return true; + } +} diff --git a/src/main/java/org/springblade/modules/fitting/constant/FittingConstant.java b/src/main/java/org/springblade/modules/fitting/constant/FittingConstant.java new file mode 100644 index 0000000..e0c301a --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/constant/FittingConstant.java @@ -0,0 +1,49 @@ +package org.springblade.modules.fitting.constant; + +public class FittingConstant { + public static final String EXAMINE_ONE="1"; + + public static final String EXAMINE_TWO="2"; + + /** + *申请状态:0.待运营商审核 1.待一级审核 2.待二级审核 3.待出库 4.运维商待收件 5.已完成 6.申请已取消 7.审核驳回 8.待出库 9.待领取 默认0 + */ + public static final String STATUS_APPLY_ZERO="0"; + public static final String STATUS_APPLY_ONE="1"; + public static final String STATUS_APPLY_TWO="2"; + public static final String STATUS_APPLY_THREE="3"; + public static final String STATUS_APPLY_FOUR="4"; + public static final String STATUS_APPLY_FIVE="5"; + public static final String STATUS_APPLY_SIX="6"; + public static final String STATUS_APPLY_BACK="7"; + public static final String STATUS_APPLY_ENGHT="8"; + public static final String STATUS_APPLY_NINE="9"; + + /** + * 是否提交平台审核 1.是 2.否 + */ + public static final String IS_PLATFORM_ONE="1"; + public static final String IS_PLATFORM_TWO="2"; + + /** + * 审核结果 examineType + */ + public static final String EXAMINE_TYPE_ONE="1"; + public static final String EXAMINE_TYPE_TWO="2"; + + + //工单物料使用 状态 0使用 1删除 + public static final String STATUS_USER="0"; + public static final String STATUS_DELETE="1"; + + + /** + *keep_from 出入库类型:1.入库 2.出库 3.调整库存(通过公司库存页面编辑调整库存数量) 4.工单使用 5.使用删除 + */ + public static final String KEEP_FORM_IN="1"; + public static final String KEEP_FORM_OUT="2"; + public static final String KEEP_FORM_CHANGE="3"; + public static final String KEEP_FORM_ORDER_USE="4"; + public static final String KEEP_FORM_ORDER_DELETE="5"; + +} diff --git a/src/main/java/org/springblade/modules/fitting/controller/OperationOrderMaterialController.java b/src/main/java/org/springblade/modules/fitting/controller/OperationOrderMaterialController.java new file mode 100644 index 0000000..445ae93 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/controller/OperationOrderMaterialController.java @@ -0,0 +1,181 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.fitting.pojo.dto.OperationOrderMaterialDTO; +import org.springblade.modules.fitting.pojo.vo.AddOrderFittingUseVo; +import org.springblade.modules.fitting.pojo.vo.OrderUseFittingDetailVo; +import org.springblade.modules.fitting.service.IPlatformFittingApplyService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.vo.OperationOrderMaterialVO; +import org.springblade.modules.fitting.excel.OperationOrderMaterialExcel; +import org.springblade.modules.fitting.wrapper.OperationOrderMaterialWrapper; +import org.springblade.modules.fitting.service.IOperationOrderMaterialService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; + +import java.util.HashMap; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工单备件使用表 控制器 + * + * @author BladeX + * @since 2024-08-27 + */ +@RestController +@AllArgsConstructor +@RequestMapping("blade-operationOrderMaterial/operationOrderMaterial") +@Tag(name = "工单备件使用表", description = "工单备件使用表接口") +public class OperationOrderMaterialController extends BladeController { + + private final IOperationOrderMaterialService operationOrderMaterialService; + + private final IPlatformFittingApplyService fittingApplyService; + + /** + * 工单备件使用表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationOrderMaterial") + public R detail(OperationOrderMaterialEntity operationOrderMaterial) { + OperationOrderMaterialEntity detail = operationOrderMaterialService.getOne(Condition.getQueryWrapper(operationOrderMaterial)); + return R.data(OperationOrderMaterialWrapper.build().entityVO(detail)); + } + + /** + * 工单物料申请、物料使用列表 + */ + @GetMapping("/materialListRelateOrder") + @ApiOperationSupport(order = 3) + @Operation(summary = "工单物料申请、物料使用列表", description = "传入orderId 工单id") + public R materialListRelateOrder(String orderId) { + List userFitting=operationOrderMaterialService.getOrderUserdFitting(orderId); + Map resultMap=new HashMap<>(); + resultMap.put("useFitting",userFitting); + List applyFitting=operationOrderMaterialService.getOrderApplyFitting(orderId); + resultMap.put("applyFitting",applyFitting); + return R.data(resultMap); + } + + /** + * 物料使用删除 + */ + @GetMapping("deleteUserFitting") + @ApiOperationSupport(order = 4) + @Operation(summary = "物料使用删除", description = "传入物料使用的id") + public R deleteUserFitting(String id){ + return R.status(operationOrderMaterialService.deleteUserFitting(id)); + } + + /** + * 物料申请删除 + */ + @GetMapping("deleteApplyFitting") + @ApiOperationSupport(order = 4) + @Operation(summary = "物料申请删除", description = "传入物料申请的id") + public R deleteApplyFitting(String id){ + return R.status(fittingApplyService.deleteApplyFitting(id)); + } + + /** + * 工单备件使用表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationOrderMaterial") + public R> page(OperationOrderMaterialVO operationOrderMaterial, Query query) { + IPage pages = operationOrderMaterialService.selectOperationOrderMaterialPage(Condition.getPage(query), operationOrderMaterial); + return R.data(pages); + } + + /** + * 工单备件使用,使用扣的都是工程师的库存 + */ + @PostMapping("/orderFittingUse") + @ApiOperationSupport(order = 4) + @Operation(summary = "工单备件使用", description = "传入operationOrderMaterial") + public R orderFittingUse(@Valid @RequestBody AddOrderFittingUseVo fittingUseVo) { + return R.status(operationOrderMaterialService.orderFittingUse(fittingUseVo)); + } + + /** + * 工程师已用物料列表 + */ + @GetMapping("getEmpUseFittingList") + @ApiOperationSupport(order = 8) + @Operation(summary = "工程师已用物料列表", description = "smallConditon 可以作为查询条件,engineerId 工程师 userId") + public R getEmpUseFittingList(@RequestParam Map params, Query query){ + Map resultMap=new HashMap<>(); + List list=operationOrderMaterialService.getEmpUseFittingList(Condition.getPage(query),params); + resultMap.put("records",list); + return R.data(resultMap); + } + /** + * 工程师已用物料详情 + */ + @GetMapping("getOrderUseFittingDetail") + @ApiOperationSupport(order = 9) + @Operation(summary = "工程师已用物料详情") + public R getOrderUseFittingDetail(String id){ + OrderUseFittingDetailVo useFittingDetailVo= operationOrderMaterialService.getOrderUseFittingDetail(id); + return R.data(useFittingDetailVo); + } + + /** + * 工程师可用物料详情 + */ + @GetMapping("getOrderCanUseFittingDetail") + @ApiOperationSupport(order = 9) + @Operation(summary = "工程师可用物料详情") + public R getOrderCanUseFittingDetail(String materialId,String empUserId){ + OrderUseFittingDetailVo useFittingDetailVo= operationOrderMaterialService.getOrderCanUseFittingDetail(materialId,empUserId); + return R.data(useFittingDetailVo); + } + +} diff --git a/src/main/java/org/springblade/modules/fitting/controller/PlatformFittingApplyController.java b/src/main/java/org/springblade/modules/fitting/controller/PlatformFittingApplyController.java new file mode 100644 index 0000000..81b10dd --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/controller/PlatformFittingApplyController.java @@ -0,0 +1,313 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.controller; + +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.fitting.pojo.dto.BhMaterialDTO; +import org.springblade.modules.fitting.pojo.vo.*; +import org.springblade.modules.fitting.pojo.dto.ApplyDto; +import org.springblade.modules.fitting.pojo.vo.AddFittingApplyVo; +import org.springblade.modules.fitting.pojo.vo.FittingApplyDetailVo; +import org.springblade.modules.fitting.pojo.vo.SiteToExamineVo; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.service.impl.MaterialServiceImpl; +import org.springblade.modules.system.pojo.vo.MenuVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.excel.PlatformFittingApplyExcel; +import org.springblade.modules.fitting.wrapper.PlatformFittingApplyWrapper; +import org.springblade.modules.fitting.service.IPlatformFittingApplyService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 服务商向平台备件申请领用记录表 控制器 + * + * @author lzp + * @since 2024-08-24 + */ +@RestController +@AllArgsConstructor +@RequestMapping("blade-platformFittingApply/platformFittingApply") +@Tag(name = "服务商向平台备件申请领用记录表", description = "服务商向平台备件申请领用记录表接口") +public class PlatformFittingApplyController extends BladeController { + + private final IPlatformFittingApplyService platformFittingApplyService; + + @Autowired + MaterialServiceImpl materialService; + /** + * 服务商向平台备件申请领用记录表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "物料申请详情", description = "传入platformFittingApply") + public R detail(String id) { + FittingApplyDetailVo detailVo=platformFittingApplyService.getFittingApplyDetailById(id); + return R.data(detailVo); + } + + + /** + * 服务商向平台备件申请领用记录表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入platformFittingApply") + public R> page(PlatformFittingApplyVO platformFittingApply, Query query) { + IPage pages = platformFittingApplyService.selectPlatformFittingApplyPage(Condition.getPage(query), platformFittingApply); + return R.data(pages); + } + + /** + * 服务商向平台备件申请领用记录表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增物料申请", description = "传入platformFittingApply") + public R save(@Valid @RequestBody AddFittingApplyVo addFittingApplyVo) { + return R.status(platformFittingApplyService.saveFittingApply(addFittingApplyVo)); + } + + /** + * 服务商向平台备件申请领用记录表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改物料申请", description = "传入platformFittingApply") + public R update(@Valid @RequestBody AddFittingApplyVo addFittingApplyVo) { + return R.status(platformFittingApplyService.editFittingApply(addFittingApplyVo)); + } + + /** + * 新增备货申请 + */ + @PostMapping(value = "addfittingBh") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增备货申请") + public R addfittingBh(@Valid @RequestBody AddBhVo addBhVo){ + return R.status(platformFittingApplyService.fittingBh(addBhVo)); + } + + /** + * 编辑备货申请 + */ + @PostMapping(value = "editFittingBh") + @ApiOperationSupport(order = 6) + @Operation(summary = "编辑备货申请") + public R editFittingBh(@Valid @RequestBody OperaAddFittingBatchVo batchVo){ + return R.status(platformFittingApplyService.editFittingBh(batchVo)); + } + + /** + * 删除物料申请 + */ + @GetMapping(value = "deleteMaterialApply") + @ApiOperationSupport(order = 6) + @Operation(summary = "删除物料申请", description = "传入 applyId 申请的id") + public R deleteMaterialApply(String applyId){ + return R.data(platformFittingApplyService.deleteApplyFitting(applyId)); + } + + /** + * 备货申请页面根据 物料编码 、物料名称 获取物料信息 + */ + @GetMapping(value = "getMaterialListByCodeOrName") + @ApiOperationSupport(order = 6) + @Operation(summary = "备货申请页面根据 物料编码 、物料名称 获取物料信息", description = "") + public R getMaterialListByCodeOrName(ChooseMaterialListVo conditonVo){ + List list=platformFittingApplyService.getMaterialListByCodeOrName(conditonVo); + return R.data(list); + } + + + /** + * 物料申请的时候,获取规格下拉 + */ + @GetMapping(value = "getMaterialSpecList") + @ApiOperationSupport(order = 6) + @Operation(summary = "物料申请页面,获取规格下拉") + public R getMaterialSpecList(String materialType){ + List specs=platformFittingApplyService.getMaterialSpecList(materialType); + return R.data(specs); + } + + /** + * 物料申请的时候,根据物料代码,检索物料信息 + */ + @GetMapping(value = "getMaterialDetailByMaterialCode") + @ApiOperationSupport(order = 6) + @Operation(summary = "根据物料代码,检索物料信息", description = "传入platformFittingApply") + public R getMaterialDetailByMaterialCode(String materialCode){ + MaterialDTO materialEntity=materialService.getMaterialDetailByCode(materialCode); + return R.data(materialEntity); + } + + /** + * 导出数据 + */ + @GetMapping("/export-platformFittingApply") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入platformFittingApply") + public void exportPlatformFittingApply(@Parameter(hidden = true) @RequestParam Map platformFittingApply, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(platformFittingApply, PlatformFittingApplyEntity.class); + + //queryWrapper.lambda().eq(PlatformFittingApplyEntity::getSiteId, BladeConstant.DB_NOT_DELETED); + List list = platformFittingApplyService.exportPlatformFittingApply(queryWrapper); + ExcelUtil.export(response, "服务商向平台备件申请领用记录表数据" + DateUtil.time(), "服务商向平台备件申请领用记录表数据表", list, PlatformFittingApplyExcel.class); + } + + @GetMapping("/toExamine") + @ApiOperationSupport(order = 9) + @Operation(summary = "一、二级审核", description = "") + @Parameters({ + @Parameter(name = "category", description = "公告类型", in = ParameterIn.QUERY, schema = @Schema(type = "integer")), + @Parameter(name = "title", description = "公告标题", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + public R toExamine(@Parameter(name = "id",description = "主键id", required = true) @RequestParam String id, @Parameter(name = "remarks" ,description = "审核备注") @RequestParam String remarks, @Parameter(name = "type",description = "状态值 1.一级 2.二级", required = true) @RequestParam String type,@Parameter(name = "examineType",description = "审核类型,1.通过 2.驳回",required = true) String examineType) { + //@Parameter(name = "主键id", required = true) @RequestParam String id,@Parameter(name = "状态值", required = true) @RequestParam String status) + return R.status(platformFittingApplyService.toExamine(id, remarks, type,examineType)); + } + + /** + * 运维商审核 + */ + @PostMapping("/siteToExamine") + @ApiOperationSupport(order = 10) + @Operation(summary = "运维商审核", description = "传入platformFittingApply") + public R siteToExamine(@Valid @RequestBody SiteToExamineVo vo) { + + return R.status(platformFittingApplyService.siteToExamine(vo)); + } + + /** + * 发货 + */ + @GetMapping("/sendOutGoods") + @Parameters({ + @Parameter(name = "id", description = "申请单号id", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "code", description = "物流单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "物流名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 11) + @Operation(summary = "平台发货", description = "传入send") + public R sendOutGoods(@Parameter(hidden = true) @RequestParam Map sendmap) { + + return R.status(platformFittingApplyService.sendOutGoods(sendmap)); + } + + /** + * 签收 + */ + @GetMapping("/siteSignFor") + @Parameters({ + @Parameter(name = "id", description = "申请单号id", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + }) + @ApiOperationSupport(order = 12) + @Operation(summary = "签收", description = "id") + public R siteSignFor(String id){ + + return R.status(platformFittingApplyService.siteSignFor(id)); + } + + /** + * 运维商出库 + */ + @GetMapping("/siteOutbound") + @Parameters({ + @Parameter(name = "id", description = "申请单号id", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + }) + @ApiOperationSupport(order = 12) + @Operation(summary = "运维商出库", description = "id") + public R siteOutbound(String id){ + return R.status(platformFittingApplyService.siteOutbound(id)); + } + + + /** + * 工程师领取 + */ + @GetMapping("/empReceiveMate") + @Parameters({ + @Parameter(name = "id", description = "申请单号id", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + }) + @ApiOperationSupport(order = 12) + @Operation(summary = "领取", description = "id") + public R empReceiveMate(String id){ + return R.status(platformFittingApplyService.empReceiveMate(id)); + } + + /** + * 小程序表头统计 + */ + @GetMapping("/findHomeFittingCount") + @ApiOperationSupport(order = 13) + @Operation(summary = "小程序表头统计", description = "") + public R findHomeFittingCount(){ + return R.data(platformFittingApplyService.findHomeFittingCount()); + } + + + + @GetMapping(value = "/auditFittingMatchingMaterial") + @ApiOperationSupport(order =14) + @Operation(summary = "运营商审核的时候匹配物料") + @Parameters({ + @Parameter(name = "materialCode", description = "物料代码", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "materialType", description = "物料类型名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "materialSpec", description = "物料规格", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + public R> auditFittingMatchingMaterial(@RequestParam Map params){ + List list=platformFittingApplyService.auditFittingMatchingMaterial(params); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.java b/src/main/java/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.java new file mode 100644 index 0000000..4bf5779 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.java @@ -0,0 +1,128 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工单备件使用表 Excel实体类 + * + * @author BladeX + * @since 2024-08-27 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationOrderMaterialExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 服务商id + */ + @ColumnWidth(20) + @ExcelProperty("服务商id") + private String siteId; + /** + * 关联工单id + */ + @ColumnWidth(20) + @ExcelProperty("关联工单id") + private String orderId; + /** + * 物料归属 1物料甲供 2自备物料 + */ + @ColumnWidth(20) + @ExcelProperty("物料归属 1物料甲供 2自备物料") + private String materialFrom; + /** + * 物料id + */ + @ColumnWidth(20) + @ExcelProperty("物料id") + private String materialId; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String materialName; + /** + * 物料代码 + */ + @ColumnWidth(20) + @ExcelProperty("物料代码") + private String materialCode; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String materialType; + /** + * 物料规格 + */ + @ColumnWidth(20) + @ExcelProperty("物料规格") + private String materialSpec; + /** + * 使用数量 + */ + @ColumnWidth(20) + @ExcelProperty("使用数量") + private Integer userAmount; + /** + * 添加人userId + */ + @ColumnWidth(20) + @ExcelProperty("添加人userId") + private String createBy; + /** + * 添加人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("添加人姓名") + private String createName; + /** + * 修改人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("修改人姓名") + private String updateName; + +} diff --git a/src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.java b/src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.java new file mode 100644 index 0000000..47f15f5 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.java @@ -0,0 +1,285 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.excel; + + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 服务商向平台备件申请领用记录表 Excel实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PlatformFittingApplyExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 申请编号,生成规则:yyMMddHHmmssSSS + */ + @ColumnWidth(20) + @ExcelProperty("申请编号,生成规则:yyMMddHHmmssSSS") + private String number; + /** + * 运维商id + */ + @ColumnWidth(20) + @ExcelProperty("运维商id") + private String siteId; + /** + * 运维商名称 + */ + @ColumnWidth(20) + @ExcelProperty("运维商名称") + private String siteName; + /** + * 申请人id + */ + @ColumnWidth(20) + @ExcelProperty("申请人id") + private String applicantId; + /** + * 申请人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("申请人姓名") + private String applicantName; + /** + * 申请人角色类型:0服务商 + */ + @ColumnWidth(20) + @ExcelProperty("申请人角色类型:0服务商 ") + private String applicantType; + /** + * 申请备注 + */ + @ColumnWidth(20) + @ExcelProperty("申请备注") + private String applyMarks; + /** + * 审核备注 + */ + @ColumnWidth(20) + @ExcelProperty("审核备注") + private String factoryMarks; + /** + * 出库备注 + */ + @ColumnWidth(20) + @ExcelProperty("出库备注") + private String outFittingMarks; + /** + * 出库确认人 + */ + @ColumnWidth(20) + @ExcelProperty("出库确认人") + private String confirmor; + /** + * 出库确认人 user_id + */ + @ColumnWidth(20) + @ExcelProperty("出库确认人 user_id") + private String confirmorId; + /** + * 旧件返还标记:0无需返还 1需要返还,默认0 + */ + @ColumnWidth(20) + @ExcelProperty("旧件返还标记:0无需返还 1需要返还,默认0") + private String oldFittingFlag; + /** + * 申请备件id + */ + @ColumnWidth(20) + @ExcelProperty("申请备件id") + private String fittingId; + /** + * 备件条码 + */ + @ColumnWidth(20) + @ExcelProperty("备件条码") + private String fittingCode; + /** + * 备件型号 + */ + @ColumnWidth(20) + @ExcelProperty("备件型号") + private String fittingVersion; + /** + * 备件名称 + */ + @ColumnWidth(20) + @ExcelProperty("备件名称") + private String fittingName; + /** + * 申请的备件描述图片地址 + */ + @ColumnWidth(20) + @ExcelProperty("申请的备件描述图片地址") + private String fittingImg; + /** + * 备件申请数目 + */ + @ColumnWidth(20) + @ExcelProperty("备件申请数目") + private BigDecimal applyNum; + /** + * 备件审核数量 + */ + @ColumnWidth(20) + @ExcelProperty("备件审核数量") + private BigDecimal fittingAuditNum; + /** + * 审核时间 + */ + @ColumnWidth(20) + @ExcelProperty("审核时间") + private Date confirmTime; + /** + * 出库时间 + */ + @ColumnWidth(20) + @ExcelProperty("出库时间") + private Date outFittingTime; + /** + * 确认收货时间(入库时间) + */ + @ColumnWidth(20) + @ExcelProperty("确认收货时间(入库时间)") + private Date sendTime; + /** + * 确认入库人id + */ + @ColumnWidth(20) + @ExcelProperty("确认入库人id") + private String confirmStorageId; + /** + * 确认入库人 + */ + @ColumnWidth(20) + @ExcelProperty("确认入库人") + private String confirmStorage; + /** + * 物流名称 + */ + @ColumnWidth(20) + @ExcelProperty("物流名称") + private String logisticsNames; + /** + * 物流单号 + */ + @ColumnWidth(20) + @ExcelProperty("物流单号") + private String logisticsNumber; + /** + * 备件签收时间/取消时间/删除时间 + */ + @ColumnWidth(20) + @ExcelProperty("备件签收时间/取消时间/删除时间") + private Date endTime; + /** + * 创建人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("创建人姓名") + private String creator; + /** + * 更新人 + */ + @ColumnWidth(20) + @ExcelProperty("更新人") + private String updateName; + /** + * 收货人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("收货人姓名") + private String deliveryName; + /** + * 收货联系方式 + */ + @ColumnWidth(20) + @ExcelProperty("收货联系方式") + private String deliveryMobile; + /** + * 收货详细地址 + */ + @ColumnWidth(20) + @ExcelProperty("收货详细地址") + private String deliveryAddress; + /** + * 拒绝理由 + */ + @ColumnWidth(20) + @ExcelProperty("拒绝理由") + private String refuseReason; + /** + * 审核人 + */ + @ColumnWidth(20) + @ExcelProperty("审核人") + private String auditor; + /** + * 审核人 user_id + */ + @ColumnWidth(20) + @ExcelProperty("审核人 user_id") + private String auditorId; + /** + * 适用机型 + */ + @ColumnWidth(20) + @ExcelProperty("适用机型") + private String suitPrinter; + /** + * 服务商价格 + */ + @ColumnWidth(20) + @ExcelProperty("服务商价格") + private BigDecimal sitePrice; + /** + * 零售价格(用户价格) + */ + @ColumnWidth(20) + @ExcelProperty("零售价格(用户价格)") + private BigDecimal customerPrice; + +} diff --git a/src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyMsgExcel.java b/src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyMsgExcel.java new file mode 100644 index 0000000..a24c898 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/excel/PlatformFittingApplyMsgExcel.java @@ -0,0 +1,80 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 平台备件申请领用记录的操作详情表 Excel实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PlatformFittingApplyMsgExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 关联的申请记录id + */ + @ColumnWidth(20) + @ExcelProperty("关联的申请记录id") + private String fittingApplyId; + /** + * 运维商id + */ + @ColumnWidth(20) + @ExcelProperty("运维商id") + private String siteId; + /** + * 操作详情 + */ + @ColumnWidth(20) + @ExcelProperty("操作详情") + private String message; + /** + * 操作人 + */ + @ColumnWidth(20) + @ExcelProperty("操作人") + private String createName; + +} diff --git a/src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.java b/src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.java new file mode 100644 index 0000000..4feb6e8 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.mapper; + +import org.springblade.modules.fitting.pojo.dto.OperationOrderMaterialDTO; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.vo.OperationOrderMaterialVO; +import org.springblade.modules.fitting.excel.OperationOrderMaterialExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.fitting.pojo.vo.OrderUseFittingDetailVo; + +import java.util.List; +import java.util.Map; + +/** + * 工单备件使用表 Mapper 接口 + * + * @author BladeX + * @since 2024-08-27 + */ +public interface OperationOrderMaterialMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderMaterial + * @return + */ + List selectOperationOrderMaterialPage(IPage page, OperationOrderMaterialVO operationOrderMaterial); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderMaterial(@Param("ew") Wrapper queryWrapper); + + List getOrderUserdFitting(@Param("orderId") String orderId); + + List getOrderApplyFitting(@Param("orderId") String orderId); + + + List getEmpUseFittingList(IPage page,@Param("vo") Map params); + + + OrderUseFittingDetailVo getOrderUseFittingDetail(@Param("id")String id); + + OrderUseFittingDetailVo getOrderCanUseFittingDetail(@Param("materialId") String materialId, @Param("empUserId") String empUserId); +} diff --git a/src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml b/src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml new file mode 100644 index 0000000..feed11e --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.java b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.java new file mode 100644 index 0000000..8d6e1aa --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.java @@ -0,0 +1,81 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.mapper; + +import org.springblade.modules.fitting.pojo.dto.BhMaterialDTO; +import org.springblade.modules.fitting.pojo.dto.ApplyDto; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.pojo.vo.*; +import org.springblade.modules.fitting.excel.PlatformFittingApplyExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + +/** + * 服务商向平台备件申请领用记录表 Mapper 接口 + * + * @author lzp + * @since 2024-08-24 + */ +public interface PlatformFittingApplyMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param apply + * @return + */ + List selectPlatformFittingApplyPage(IPage page, PlatformFittingApplyVO apply); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportPlatformFittingApply(@Param("ew") Wrapper queryWrapper); + + FittingApplyDetailVo getFittingApplyDetailById(@Param("id") String id); + + MaterialStockVo getEmpMaterialStock(@Param("empUserId") String empUserId, @Param("materialId") String materialId); + + MaterialStockVo getOperationStock(@Param("companyId") String companyId,@Param("materialId") String materialId); + + + List getMaterialSpecList(@Param("materialType") String materialType); + + + List getMaterialListByCodeOrName(@Param("vo") ChooseMaterialListVo conditonVo); + + ApplyDto findHomeFittingCount(@Param("applicantId") String applicantId); + + List auditFittingMatchingMaterial(@Param("vo")Map params); +} diff --git a/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml new file mode 100644 index 0000000..7fad28e --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and site_id=#{apply.siteId} + + + and fitting_code like concat('%',#{apply.fittingCode},'%') + + + and fitting_version like concat('%',#{apply.fittingVersion},'%') + + + and fitting_name like concat('%',#{apply.fittingName},'%') + + + and fitting_brand like concat('%',#{apply.fittingBrand},'%') + + + + and site_name like concat('%',#{apply.siteName},'%') + + + and power_station_code like concat('%',#{apply.powerStationCode},'%') + + + and order_number like concat('%',#{apply.orderNumber},'%') + + + and customer_name like concat('%',#{apply.customerName},'%') + + + and applicant_type=#{apply.applicantType} + + + and applicant_id=#{apply.applicantId} + + + + and applicant_name like concat('%',#{apply.applicantName},'%') + + + + and create_time >= concat(#{apply.createTimeSta}, ' 00:00:00') + + + and create_time <= concat(#{apply.createTimeEnd}, ' 23:59:59') + + + and confirm_time >= concat(#{apply.confirmTimeSta}, ' 00:00:00') + + + and confirm_time <= concat(#{apply.confirmTimeEnd}, ' 23:59:59') + + + and confirm_time_two >= concat(#{apply.confirmTimeTwoSta}, ' 00:00:00') + + + and confirm_time_two <= concat(#{apply.confirmTimeTwoEnd}, ' 23:59:59') + + + and status in + + #{item} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.java b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.java new file mode 100644 index 0000000..94899db --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.mapper; + +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyMsgEntity; +import org.springblade.modules.fitting.pojo.vo.PlatformFittingApplyMsgVO; +import org.springblade.modules.fitting.excel.PlatformFittingApplyMsgExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 平台备件申请领用记录的操作详情表 Mapper 接口 + * + * @author lzp + * @since 2024-08-24 + */ +public interface PlatformFittingApplyMsgMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param platformFittingApplyMsg + * @return + */ + List selectPlatformFittingApplyMsgPage(IPage page, PlatformFittingApplyMsgVO platformFittingApplyMsg); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportPlatformFittingApplyMsg(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.xml b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.xml new file mode 100644 index 0000000..d300763 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/fitting/pojo/dto/ApplyDto.java b/src/main/java/org/springblade/modules/fitting/pojo/dto/ApplyDto.java new file mode 100644 index 0000000..57837cd --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/dto/ApplyDto.java @@ -0,0 +1,19 @@ +package org.springblade.modules.fitting.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class ApplyDto { + @Schema(description = "全部") + private Long allCount; + @Schema(description = "待审核") + private Long dshCount; + @Schema(description = "待出库") + private Long dckCount; + @Schema(description = "待领取") + private Long dlqCount; + @Schema(description = "已完成") + private Long endCount; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.java b/src/main/java/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.java new file mode 100644 index 0000000..8ddc869 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.java @@ -0,0 +1,49 @@ +package org.springblade.modules.fitting.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class BhMaterialDTO { + + @Schema(description = "物料id") + private String materialId; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String materialName; + /** + * 物料代码 + */ + @Schema(description = "物料代码") + private String materialCode; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String materialType; + + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String materialModel; + /** + * 物料规格 + */ + @Schema(description = "物料规格") + private String materialSpec; + + /** + * 库存数量 + */ + @Schema(description = "库存数量") + private Integer stockAmount; + + /** + * 申请数量 + */ + @Schema(description = "申请数量") + private Integer applyNum; +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.java b/src/main/java/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.java new file mode 100644 index 0000000..11b0509 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单备件使用表 数据传输对象实体类 + * + * @author BladeX + * @since 2024-08-27 + */ +@Data +public class OperationOrderMaterialDTO{ + + @Schema(description = "物料使用的id/物料申请的id") + private String id; + + private String orderId; + + @Schema(description = "物料归属 1物料甲供 2自备物料") + private String materialFrom; + + @Schema(description = "物料id") + private String materialId; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String materialName; + /** + * 物料代码 + */ + @Schema(description = "物料代码") + private String materialCode; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String materialType; + /** + * 物料规格 + */ + @Schema(description = "物料规格") + private String materialSpec; + /** + * 使用数量 + */ + @Schema(description = "使用数量/申请数量") + private Integer amount; + + @Schema(description = "备件申请的状态:0.待运营商审核 1.待一级审核 2.待二级审核 3.待出库 4.待收件 5.已完成 6.申请已取消 7.审核驳回 默认0") + private String status; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.java b/src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.java new file mode 100644 index 0000000..239e331 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.dto; + +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商向平台备件申请领用记录表 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformFittingApplyDTO extends PlatformFittingApplyEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyMsgDTO.java b/src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyMsgDTO.java new file mode 100644 index 0000000..91e5135 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyMsgDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.dto; + +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyMsgEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 平台备件申请领用记录的操作详情表 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformFittingApplyMsgDTO extends PlatformFittingApplyMsgEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/entity/OperationOrderMaterialEntity.java b/src/main/java/org/springblade/modules/fitting/pojo/entity/OperationOrderMaterialEntity.java new file mode 100644 index 0000000..484d7e9 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/entity/OperationOrderMaterialEntity.java @@ -0,0 +1,136 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 工单备件使用表 实体类 + * + * @author BladeX + * @since 2024-08-27 + */ +@Data +@TableName("sf_operation_order_material") +@Schema(description = "OperationOrderMaterial对象") +public class OperationOrderMaterialEntity implements Serializable { + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + /** + * 关联工单id + */ + @Schema(description = "关联工单id") + private String orderId; + /** + * 物料归属 1物料甲供 2自备物料 + */ + @Schema(description = "物料归属 1物料甲供 2自备物料") + private String materialFrom; + /** + * 物料id + */ + @Schema(description = "物料id") + private String materialId; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String materialName; + /** + * 物料代码 + */ + @Schema(description = "物料代码") + private String materialCode; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String materialType; + /** + * 物料规格 + */ + @Schema(description = "物料规格") + private String materialSpec; + /** + * 使用数量 + */ + @Schema(description = "使用数量") + private Integer userAmount; + + @Schema(description = "工程师userId") + private String empUserId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + /** + * 添加人userId + */ + @Schema(description = "添加人userId") + private String createBy; + /** + * 添加人姓名 + */ + @Schema(description = "添加人姓名") + private String createName; + + @Schema(description = "状态 0使用 1删除") + private String status; + + @Schema(description = "修改时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + /** + * 修改人姓名 + */ + @Schema(description = "修改人姓名") + private String updateName; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.java b/src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.java new file mode 100644 index 0000000..44093f0 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.java @@ -0,0 +1,318 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 服务商向平台备件申请领用记录表 实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@TableName("crm_platform_fitting_apply") +@Schema(description = "PlatformFittingApply对象") +public class PlatformFittingApplyEntity implements Serializable { + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * 申请编号,生成规则:yyMMddHHmmssSSS + */ + @Schema(description = "申请编号,生成规则:yyMMddHHmmssSSS") + private String number; + /** + * 运维商id + */ + @Schema(description = "运维商id") + private String siteId; + /** + * 运维商名称 + */ + @Schema(description = "运维商名称") + private String siteName; + /** + * 申请人id + */ + @Schema(description = "申请人id") + private String applicantId; + /** + * 申请人姓名 + */ + @Schema(description = "申请人姓名") + private String applicantName; + /** + * 申请人角色类型:0服务商 + */ + @Schema(description = "申请人角色类型:0服务商 ") + private String applicantType; + /** + * 申请备注 + */ + @Schema(description = "申请备注") + private String applyMarks; + /** + * 审核备注 + */ + @Schema(description = "审核备注(运维商审核)") + private String factoryMarks; + + @Schema(description = "申请状态:0.待运营商审核 1.待一级审核 2.待二级审核 3.待平台发货 4.运维商待收件 5.已完成 6.申请已取消 7.审核驳回 8.待出库 9.待领取 默认0") + private String status; + /** + * 出库备注 + */ + @Schema(description = "出库备注") + private String outFittingMarks; + /** + * 出库确认人 + */ + @Schema(description = "出库确认人") + private String confirmor; + /** + * 出库确认人 user_id + */ + @Schema(description = "出库确认人 user_id") + private String confirmorId; + /** + * 旧件返还标记:0无需返还 1需要返还,默认0 + */ + @Schema(description = "旧件返还标记:0无需返还 1需要返还,默认0") + private String oldFittingFlag; + /** + * 申请备件id + */ + @Schema(description = "申请备件id") + private String fittingId; + /** + * 备件条码 + */ + @Schema(description = "备件条码") + private String fittingCode; + /** + * 备件型号 + */ + @Schema(description = "备件类型名称") + private String fittingVersion; + /** + * 备件名称 + */ + @Schema(description = "备件名称") + private String fittingName; + + /** + * 物料单位 + */ + @Schema(description = "物料单位") + private String fittingUnit; + /** + * 物料品牌 + */ + @Schema(description = "物料品牌") + private String fittingBrand; + /** + * 物料规格 + */ + @Schema(description = "物料规格") + private String fittingPower; + /** + * 业主姓名 + */ + @Schema(description = "业主姓名") + private String customerName; + + + + /** + * 申请的备件描述图片地址 + */ + @Schema(description = "申请的备件描述图片地址") + private String fittingImg; + /** + * 备件申请数目 + */ + @Schema(description = "备件申请数目") + private Integer applyNum; + /** + * 备件审核数量 + */ + @Schema(description = "备件审核数量") + private BigDecimal fittingAuditNum; + + /** + * 运维商审核时间 + */ + @Schema(description = "运维商审核时间") + private Date confirmSiteTime; + /** + * 审核时间 + */ + @Schema(description = "一级审核时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date confirmTime; + + @Schema(description = "二级审核时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date confirmTimeTwo; + /** + * 出库时间 + */ + @Schema(description = "出库时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date outFittingTime; + /** + * 确认收货时间(入库时间) + */ + @Schema(description = "确认收货时间(入库时间)") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date sendTime; + /** + * 确认入库人id + */ + @Schema(description = "确认入库人id") + private String confirmStorageId; + /** + * 确认入库人 + */ + @Schema(description = "确认入库人") + private String confirmStorage; + /** + * 物流名称 + */ + @Schema(description = "物流名称") + private String logisticsNames; + /** + * 物流单号 + */ + @Schema(description = "物流单号") + private String logisticsNumber; + /** + * 备件签收时间/取消时间/删除时间 + */ + @Schema(description = "备件签收时间/取消时间/删除时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + /** + * 创建人姓名 + */ + @Schema(description = "创建人姓名") + private String creator; + /** + * 更新人 + */ + @Schema(description = "更新人") + private String updateName; + + @Schema(description = "更新时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + /** + * 收货人姓名 + */ + @Schema(description = "收货人姓名") + private String deliveryName; + /** + * 收货联系方式 + */ + @Schema(description = "收货联系方式") + private String deliveryMobile; + /** + * 收货详细地址 + */ + @Schema(description = "收货详细地址") + private String deliveryAddress; + /** + * 拒绝理由 + */ + @Schema(description = "审核备注") + private String refuseReason; + + @Schema(description = "二级审核备注") + private String refuseReasonTwo; + /** + * 审核人 + */ + @Schema(description = "审核人") + private String auditor; + @Schema(description = "一级审核人") + private String auditorOne; + @Schema(description = "二审核人") + private String auditorTwo; + /** + * 审核人 user_id + */ + @Schema(description = "审核人 user_id") + private String auditorId; + /** + * 适用机型 + */ + @Schema(description = "适用机型") + private String suitPrinter; + + private Date createTime; + /** + * 服务商价格 + */ + @Schema(description = "服务商价格") + private BigDecimal sitePrice; + /** + * 零售价格(用户价格) + */ + @Schema(description = "零售价格(用户价格)") + private BigDecimal customerPrice; + + @Schema(description = "是否提交平台审核 1.是 2.否") + private String isPlatform; + + @Schema(description = "提交类型 1.工程师 2.运维商") + private String submitType; + @Schema(description = "电站编码") + private String powerStationCode; + @Schema(description = "电站内网id") + private String entryId; + @Schema(description = "工单编码") + private String orderNumber; + + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyMsgEntity.java b/src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyMsgEntity.java new file mode 100644 index 0000000..16d06b4 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyMsgEntity.java @@ -0,0 +1,83 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 平台备件申请领用记录的操作详情表 实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@TableName("crm_platform_fitting_apply_msg") +@Schema(description = "PlatformFittingApplyMsg对象") +public class PlatformFittingApplyMsgEntity implements Serializable { + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 关联的申请记录id + */ + @Schema(description = "关联的申请记录id") + private String fittingApplyId; + /** + * 运维商id + */ + @Schema(description = "运维商id") + private String siteId; + /** + * 操作详情 + */ + @Schema(description = "操作详情") + private String message; + /** + * 操作人 + */ + @Schema(description = "操作人") + private String createName; + + private Date createTime; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/AddBhVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/AddBhVo.java new file mode 100644 index 0000000..c889ded --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/AddBhVo.java @@ -0,0 +1,17 @@ +package org.springblade.modules.fitting.pojo.vo; + +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.io.Serial; +import java.util.List; + +@Data +public class AddBhVo { + + @Serial + private static final long serialVersionUID = 1L; + + @NotEmpty(message = "备货的物料不能为空") + List fittingApplyVos; +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.java new file mode 100644 index 0000000..9bb4788 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.java @@ -0,0 +1,48 @@ +package org.springblade.modules.fitting.pojo.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.math.BigDecimal; + +@Data +public class AddFittingApplyVo { + + @Schema(description = "编辑的时候使用") + private String id; + + @Schema(description = "pc申请时,选择的服务工程师") + private String empUserId; + + @Schema(description = "物料申请时关联的工单id") + private String orderId; + + @Schema(description = "物料代码") + private String materialCode; + + @Schema(description = "物料名称") + private String materialName; + + @Schema(description = "物料类型") + @NotBlank(message = "物料类型不能为空") + private String fittingVersion; + + @Schema(description = "物料规格") + @NotBlank(message = "物料规格不能为空") + private String materialSpec; + + @Schema(description = "备件申请数量") + private Integer applyNum; + + @Schema(description = "申请备注") + private String applyMarks; + + @Schema(description = "服务工程师id") + private String empId; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/AddOrderFittingUseVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/AddOrderFittingUseVo.java new file mode 100644 index 0000000..d361a2a --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/AddOrderFittingUseVo.java @@ -0,0 +1,25 @@ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + +@Data +public class AddOrderFittingUseVo { + + @Schema(description = "关联工单id") + @NotBlank(message = "工单id不能为空") + private String orderId; + + @Schema(description = "物料归属 1物料甲供 2自备物料") + @NotBlank(message = "物料归属不能为空") + private String materialFrom; + + @Schema(description = "使用的物料信息") + @NotEmpty(message = "物料信息不能为空!") + private List userMaterila; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.java new file mode 100644 index 0000000..f6dafd3 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.java @@ -0,0 +1,17 @@ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class ChooseMaterialListVo { + + @Schema(description = "物料编码") + private String materialCode; + + @Schema(description = "物料名称") + private String materialName; + + @Schema(description = "运营商id") + private String siteId; +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/FittingApplyDetailVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/FittingApplyDetailVo.java new file mode 100644 index 0000000..20ad612 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/FittingApplyDetailVo.java @@ -0,0 +1,73 @@ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class FittingApplyDetailVo { + + @Schema(description = "备件申请的id") + private String id; + + @Schema(description = "工程师姓名") + private String empName; + + private String applicantId; + + private String fittingId; + + private String siteId; + + @Schema(description = "运维服务商名称") + private String siteName; + + @Schema(description = "电站编码") + private String powerStationCode; + + @Schema(description = "工单编号") + private String orderNumber; + + @Schema(description = "业主姓名") + private String customerName; + + @Schema(description = "物料代码") + private String fittingCode; + + @Schema(description = "物料名称") + private String fittingName; + + @Schema(description = "物料类型") + private String fittingVersion; + + @Schema(description = "申请数量") + private BigDecimal applyNum; + + @Schema(description = "当前库存") + private Integer currentStock; + + @Schema(description = "是否提交平台申请 1.是 2.否") + private String isPlatform; + + @Schema(description = "申请类型:1.工程师申请 2.运维商备货申请 ") + private String applicantType; + + @Schema(description = "申请备注") + private String applyMarks; + + @Schema(description = "物料规格") + private String fittingPower; + + @Schema(description = "一级审核备注") + private String refuseReason; + + @Schema(description = "二级审核备注") + private String refuseReasonTwo; + + @Schema(description = "运维商审核备注") + private String factoryMarks; + + private String status; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.java new file mode 100644 index 0000000..0738c2b --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.java @@ -0,0 +1,15 @@ +package org.springblade.modules.fitting.pojo.vo; + +import lombok.Data; + +@Data +public class MaterialStockVo { + + private String materialId; + + private Integer stock; + + private String operationId; + + private String engineerId; +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/OperaAddFittingBatchVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/OperaAddFittingBatchVo.java new file mode 100644 index 0000000..99b4418 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/OperaAddFittingBatchVo.java @@ -0,0 +1,25 @@ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class OperaAddFittingBatchVo { + + @NotBlank(message = "编辑的时候用,申请的id") + private String applyId; + + @NotBlank(message = "物料id不能为空") + private String materialId; + + @NotNull(message = "申请的物料数量不能为空") + private Integer applyNum; + + @Schema(description = "申请备注") + private String applyMarks; +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/OperationOrderMaterialVO.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/OperationOrderMaterialVO.java new file mode 100644 index 0000000..8c5191b --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/OperationOrderMaterialVO.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单备件使用表 视图实体类 + * + * @author BladeX + * @since 2024-08-27 + */ +@Data +public class OperationOrderMaterialVO { + + @Schema(description = "物料id") + private String materialId; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String materialName; + /** + * 物料代码 + */ + @Schema(description = "物料代码") + private String materialCode; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String materialType; + + @Schema(description = "物料规格") + private String materialSpec; + + @Schema(description = "使用数量") + @NotNull(message = "物料数量不能为空") + private Integer userAmount; +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/OrderUseFittingDetailVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/OrderUseFittingDetailVo.java new file mode 100644 index 0000000..8c0b83f --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/OrderUseFittingDetailVo.java @@ -0,0 +1,65 @@ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class OrderUseFittingDetailVo { + + @Schema(description = "物料使用的id") + private String id; + + @Schema(description = "物料归属 1物料甲供 2自备物料") + private String materialFrom; + + @Schema(description = "工单编号") + private String orderNumber; + + @Schema(description = "电站编码") + private String powerStationCode; + + @Schema(description = "用户姓名") + private String customerName; + + @Schema(description = "安装地址") + private String customerAddress; + + @Schema(description = "使用时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date userTime; + + @Schema(description = "物料id") + private String materialId; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String materialName; + /** + * 物料代码 + */ + @Schema(description = "物料代码") + private String materialCode; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String materialType; + + + @Schema(description = "物料规格") + private String materialSpec; + + @Schema(description = "使用数量") + private Integer userAmount; + + @Schema(description = "库存数量") + private String stock; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.java new file mode 100644 index 0000000..ac3bbe8 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.vo; + +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyMsgEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 平台备件申请领用记录的操作详情表 视图实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformFittingApplyMsgVO extends PlatformFittingApplyMsgEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.java new file mode 100644 index 0000000..bae158b --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商向平台备件申请领用记录表 视图实体类 + * + * @author lzp + * @since 2024-08-24 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformFittingApplyVO extends PlatformFittingApplyEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "创建时间--开始") + private String createTimeSta; + + @Schema(description = "创建时间--结束") + private String createTimeEnd; + + @Schema(description = "一级审核时间--开始") + private String confirmTimeSta; + + @Schema(description = "一级审核时间--结束") + private String confirmTimeEnd; + + @Schema(description = "审核时间--开始") + private String confirmTimeTwoSta; + + @Schema(description = "审核时间--结束") + private String confirmTimeTwoEnd; + +} diff --git a/src/main/java/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.java b/src/main/java/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.java new file mode 100644 index 0000000..6a5fa85 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.java @@ -0,0 +1,28 @@ +package org.springblade.modules.fitting.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +@Data +public class SiteToExamineVo { + @NotEmpty(message = "主键id不能为空") + @Schema(description = "主键id") + private String id; + /*@NotEmpty(message = "物料编码不能为空") + @Schema(description = "物料编码")*/ + private String fittingCode; + /*@NotEmpty(message = "物料id不能为空") + @Schema(description = "物料id")*/ + private String fittingId; + + @Schema(description = "是否提交平台审核 1.是 2.否") + private String isPlatform; + + @Schema(description = "审核备注(运维商审核)") + private String factoryMarks; + @NotEmpty(message = "审核类型不能为空") + @Schema(description = "审核类型,1.通过 2.驳回") + private String examineType; + +} diff --git a/src/main/java/org/springblade/modules/fitting/service/IOperationOrderMaterialService.java b/src/main/java/org/springblade/modules/fitting/service/IOperationOrderMaterialService.java new file mode 100644 index 0000000..2c565b7 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/service/IOperationOrderMaterialService.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.fitting.pojo.dto.OperationOrderMaterialDTO; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.vo.AddOrderFittingUseVo; +import org.springblade.modules.fitting.pojo.vo.OperationOrderMaterialVO; +import org.springblade.modules.fitting.excel.OperationOrderMaterialExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.fitting.pojo.vo.OrderUseFittingDetailVo; +import org.springblade.modules.material.pojo.vo.MaterialEngineerVO; + +import java.util.List; +import java.util.Map; + +/** + * 工单备件使用表 服务类 + * + * @author BladeX + * @since 2024-08-27 + */ +public interface IOperationOrderMaterialService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationOrderMaterial + * @return + */ + IPage selectOperationOrderMaterialPage(IPage page, OperationOrderMaterialVO operationOrderMaterial); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderMaterial(Wrapper queryWrapper); + + + List getOrderUserdFitting(String orderId); + + List getOrderApplyFitting(String orderId); + + //删除工单备件使用 + boolean deleteUserFitting(String id); + + //工单备件使用 + boolean orderFittingUse(AddOrderFittingUseVo fittingUseVo); + + //已使用物料列表 + List getEmpUseFittingList(IPage page ,Map params); + + OrderUseFittingDetailVo getOrderUseFittingDetail(String id); + + OrderUseFittingDetailVo getOrderCanUseFittingDetail(String materialId,String empUserId); + +} diff --git a/src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.java b/src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.java new file mode 100644 index 0000000..0115614 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyMsgEntity; +import org.springblade.modules.fitting.pojo.vo.PlatformFittingApplyMsgVO; +import org.springblade.modules.fitting.excel.PlatformFittingApplyMsgExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 平台备件申请领用记录的操作详情表 服务类 + * + * @author lzp + * @since 2024-08-24 + */ +public interface IPlatformFittingApplyMsgService extends IService { + /** + * 自定义分页 + * + * @param page + * @param platformFittingApplyMsg + * @return + */ + IPage selectPlatformFittingApplyMsgPage(IPage page, PlatformFittingApplyMsgVO platformFittingApplyMsg); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportPlatformFittingApplyMsg(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyService.java b/src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyService.java new file mode 100644 index 0000000..ac62989 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/service/IPlatformFittingApplyService.java @@ -0,0 +1,105 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.tool.api.R; +import org.springblade.modules.fitting.pojo.dto.BhMaterialDTO; +import org.springblade.modules.fitting.pojo.dto.ApplyDto; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.pojo.vo.*; +import org.springblade.modules.fitting.excel.PlatformFittingApplyExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; +import java.util.Map; + +/** + * 服务商向平台备件申请领用记录表 服务类 + * + * @author lzp + * @since 2024-08-24 + */ +public interface IPlatformFittingApplyService extends IService { + /** + * 自定义分页 + * + * @param page + * @param platformFittingApply + * @return + */ + IPage selectPlatformFittingApplyPage(IPage page, PlatformFittingApplyVO platformFittingApply); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportPlatformFittingApply(Wrapper queryWrapper); + + /** + * 平台审核 + */ + boolean toExamine(String id ,String remarks,String type,String examineType); + + //新增物料申请 + boolean saveFittingApply(AddFittingApplyVo addFittingApplyVo); + + //编辑物料申请 + boolean editFittingApply(AddFittingApplyVo addFittingApplyVo); + + boolean siteToExamine(SiteToExamineVo vo); + + boolean fittingBh(AddBhVo addBhVo); + + boolean editFittingBh(OperaAddFittingBatchVo batchVo); + + FittingApplyDetailVo getFittingApplyDetailById(String id); + + + List getMaterialSpecList(String materialType); + + //删除申请的物料 + boolean deleteApplyFitting(String id); + + boolean sendOutGoods(Map maps); + + List getMaterialListByCodeOrName(ChooseMaterialListVo conditonVo); + boolean siteSignFor(String id); + + boolean siteOutbound(String id); + + boolean empReceiveMate(String id); + + ApplyDto findHomeFittingCount(); + + List auditFittingMatchingMaterial(Map params); + +} diff --git a/src/main/java/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.java b/src/main/java/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.java new file mode 100644 index 0000000..5d2c273 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.java @@ -0,0 +1,261 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.fitting.constant.FittingConstant; +import org.springblade.modules.fitting.pojo.dto.OperationOrderMaterialDTO; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.vo.AddOrderFittingUseVo; +import org.springblade.modules.fitting.pojo.vo.OperationOrderMaterialVO; +import org.springblade.modules.fitting.excel.OperationOrderMaterialExcel; +import org.springblade.modules.fitting.mapper.OperationOrderMaterialMapper; +import org.springblade.modules.fitting.pojo.vo.OrderUseFittingDetailVo; +import org.springblade.modules.fitting.service.IOperationOrderMaterialService; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.service.impl.MaterialEngineerServiceImpl; +import org.springblade.modules.material.service.impl.MaterialOutboundServiceImpl; +import org.springblade.modules.material.service.impl.MaterialServiceImpl; +import org.springblade.modules.operation.pojo.vo.OperationSiteEmployeeVO; +import org.springblade.modules.operation.service.IOperationSiteEmployeeService; +import org.springblade.modules.operation.service.impl.OperationSiteEmployeeServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.service.impl.OperationOrderServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 工单备件使用表 服务实现类 + * + * @author BladeX + * @since 2024-08-27 + */ +@Service +public class OperationOrderMaterialServiceImpl extends ServiceImpl implements IOperationOrderMaterialService { + + Logger logger= LoggerFactory.getLogger(getClass()); + + @Autowired + private OperationOrderServiceImpl orderService; + + @Autowired + private MaterialServiceImpl materialService; + + @Autowired + private MaterialEngineerServiceImpl engineerService; + + @Autowired + private OperationSiteEmployeeServiceImpl siteEmployeeService; + + @Autowired + private MaterialOutboundServiceImpl materialOutboundService; + + @Override + public IPage selectOperationOrderMaterialPage(IPage page, OperationOrderMaterialVO operationOrderMaterial) { + return page.setRecords(baseMapper.selectOperationOrderMaterialPage(page, operationOrderMaterial)); + } + + + @Override + public List exportOperationOrderMaterial(Wrapper queryWrapper) { + List operationOrderMaterialList = baseMapper.exportOperationOrderMaterial(queryWrapper); + return operationOrderMaterialList; + } + + //获取工单使用的备件 + @Override + public List getOrderUserdFitting(String orderId) { + List useFitting=baseMapper.getOrderUserdFitting(orderId); + return useFitting; + } + + @Override + public List getOrderApplyFitting(String orderId) { + List applyFitting=baseMapper.getOrderApplyFitting(orderId); + return applyFitting; + } + + //删除使用的物料--1、工单待审核、审核驳回时,可删除使用物料; + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteUserFitting(String id) { + BladeUser user = AuthUtil.getUser(); + OperationOrderMaterialEntity materialEntity=getById(id); + //判断工单状态 + OperationOrderEntity orderEntity= orderService.getById(materialEntity.getOrderId()); + if(!OrderConstants.ORDER_STATUS_SERVICE.equals(orderEntity.getStatus()) && !OrderConstants.ORDER_STATUS_CALL.equals(orderEntity.getStatus())){ + throw new ServiceException("工单待审核、审核驳回时,可删除使用物料"); + } + Date date=new Date(); + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(OperationOrderMaterialEntity::getId,id); + updateWrapper.set(OperationOrderMaterialEntity::getStatus, FittingConstant.STATUS_DELETE); + updateWrapper.set(OperationOrderMaterialEntity::getUpdateName,user.getNickName()); + updateWrapper.set(OperationOrderMaterialEntity::getUpdateTime,date); + if("1".equals(materialEntity.getMaterialFrom())){ //甲供物料 + //返回库存 + MaterialEngineerEntity engineerEntity=engineerService.getEngineerStock(materialEntity.getEmpUserId(),materialEntity.getMaterialId()); + engineerEntity.setStock(engineerEntity.getStock()+materialEntity.getUserAmount()); + engineerEntity.setUpdateTime(date); + engineerEntity.setUpdateUser(user.getUserId()); + engineerService.updateById(engineerEntity); + MaterialEntity material=materialService.getById(materialEntity.getMaterialId()); + //生成入库记录 + materialOutboundService.saveEmpMaterialInVsOut(materialEntity,material,"1",user,FittingConstant.KEEP_FORM_ORDER_DELETE,orderEntity.getId()); + } + return update(updateWrapper); + } + + //保存物料使用 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean orderFittingUse(AddOrderFittingUseVo fittingUseVo) { + BladeUser user = AuthUtil.getUser(); + OperationOrderEntity orderEntity= orderService.getById(fittingUseVo.getOrderId()); + if(!OrderConstants.ORDER_STATUS_SERVICE.equals(orderEntity.getStatus()) && !OrderConstants.ORDER_STATUS_CALL.equals(orderEntity.getStatus())){ + throw new ServiceException("工单服务中和待审核,可以添加物料使用!"); + } + List materialVOS=fittingUseVo.getUserMaterila(); + Date date=new Date(); + int i=1; + Map map=new HashMap<>(); + OperationSiteEmployeeVO employeeVO=siteEmployeeService.getSiteEmployee(orderEntity.getEmployeId()); + logger.info("...orderFittingUse empId:{},employeeVo:{}",orderEntity.getEmployeId(),employeeVO); + if(employeeVO==null){ + throw new ServiceException("未找到工单工程师!"); + } + for(OperationOrderMaterialVO materialVO:materialVOS){ + OperationOrderMaterialEntity orderMaterial=new OperationOrderMaterialEntity(); + orderMaterial.setOrderId(fittingUseVo.getOrderId()); + orderMaterial.setSiteId(orderEntity.getSiteId()); + orderMaterial.setMaterialFrom(fittingUseVo.getMaterialFrom()); + MaterialDTO materialEntity = null; + if("1".equals(fittingUseVo.getMaterialFrom())){ //物料归属 1物料甲供 2自备物料 + if(StringUtil.isBlank(materialVO.getMaterialId())){ + throw new ServiceException("第"+i+"物料,是甲供物料,物料id不能为空!"); + } + materialEntity=materialService.getMaterialById(materialVO.getMaterialId()); + if(materialEntity ==null){ + throw new ServiceException("第"+i+"物料,未找到物料信息!"); + } + orderMaterial.setMaterialId(materialVO.getMaterialId()); + orderMaterial.setMaterialName(materialEntity.getName()); + orderMaterial.setMaterialCode(materialEntity.getCode()); + orderMaterial.setMaterialType(materialEntity.getMaterialType()); + orderMaterial.setMaterialSpec(materialEntity.getPower()); + MaterialEngineerEntity engineerEntity; + if(map.get(materialVO.getMaterialId())!=null){ + engineerEntity=map.get(materialVO.getMaterialId()); + }else { + //处理物料库存 + engineerEntity=engineerService.getEngineerStock(employeeVO.getUserId().toString(),materialVO.getMaterialId()); + } + logger.info("orderFittingUse engineerEntity :{}",engineerEntity); + if(engineerEntity==null || engineerEntity.getStock() e : map.entrySet()){ + MaterialEngineerEntity engineerEntity=e.getValue(); + if(!engineerService.updateById(engineerEntity)){ + throw new ServiceException("保存库存变动信息失败!"); + } + } + return true; + } + + @Override + public List getEmpUseFittingList(IPage page ,Map params) { + List list=baseMapper.getEmpUseFittingList(page,params); + return list; + } + + @Override + public OrderUseFittingDetailVo getOrderUseFittingDetail(String id) { + OrderUseFittingDetailVo detailVo= baseMapper.getOrderUseFittingDetail(id); + return detailVo; + } + + @Override + public OrderUseFittingDetailVo getOrderCanUseFittingDetail(String materialId, String empUserId) { + OrderUseFittingDetailVo detailVo= baseMapper.getOrderCanUseFittingDetail(materialId,empUserId); + return detailVo; + } + + +} diff --git a/src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyMsgServiceImpl.java b/src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyMsgServiceImpl.java new file mode 100644 index 0000000..861e1c1 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyMsgServiceImpl.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyMsgEntity; +import org.springblade.modules.fitting.pojo.vo.PlatformFittingApplyMsgVO; +import org.springblade.modules.fitting.excel.PlatformFittingApplyMsgExcel; +import org.springblade.modules.fitting.mapper.PlatformFittingApplyMsgMapper; +import org.springblade.modules.fitting.service.IPlatformFittingApplyMsgService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.Date; +import java.util.List; + +/** + * 平台备件申请领用记录的操作详情表 服务实现类 + * + * @author lzp + * @since 2024-08-24 + */ +@Service +public class PlatformFittingApplyMsgServiceImpl extends ServiceImpl implements IPlatformFittingApplyMsgService { + + @Override + public IPage selectPlatformFittingApplyMsgPage(IPage page, PlatformFittingApplyMsgVO platformFittingApplyMsg) { + return page.setRecords(baseMapper.selectPlatformFittingApplyMsgPage(page, platformFittingApplyMsg)); + } + + + @Override + public List exportPlatformFittingApplyMsg(Wrapper queryWrapper) { + List platformFittingApplyMsgList = baseMapper.exportPlatformFittingApplyMsg(queryWrapper); + //platformFittingApplyMsgList.forEach(platformFittingApplyMsg -> { + // platformFittingApplyMsg.setTypeName(DictCache.getValue(DictEnum.YES_NO, PlatformFittingApplyMsg.getType())); + //}); + return platformFittingApplyMsgList; + } + + + public void saveMsg(String applyId,String siteId,String message,String create_name){ + PlatformFittingApplyMsgEntity entity = new PlatformFittingApplyMsgEntity(); + entity.setFittingApplyId(applyId); + entity.setSiteId(siteId); + entity.setMessage(message); + entity.setCreateName(create_name); + entity.setCreateTime(new Date()); + save(entity); + + } + +} diff --git a/src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.java b/src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.java new file mode 100644 index 0000000..fe3b473 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.java @@ -0,0 +1,656 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.fitting.constant.FittingConstant; +import org.springblade.modules.fitting.pojo.dto.BhMaterialDTO; +import org.springblade.modules.fitting.pojo.dto.ApplyDto; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.pojo.vo.*; +import org.springblade.modules.fitting.excel.PlatformFittingApplyExcel; +import org.springblade.modules.fitting.mapper.PlatformFittingApplyMapper; +import org.springblade.modules.fitting.service.IPlatformFittingApplyService; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.service.IMaterialService; +import org.springblade.modules.material.service.impl.*; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.service.impl.MaterialServiceImpl; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.mapper.OperationOrderMapper; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.service.impl.OperationOrderServiceImpl; +import org.springblade.modules.order.utils.PlantformUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 服务商向平台备件申请领用记录表 服务实现类 + * + * @author lzp + * @since 2024-08-24 + */ +@Service +public class PlatformFittingApplyServiceImpl extends ServiceImpl implements IPlatformFittingApplyService { + + Logger logger= LoggerFactory.getLogger(getClass()); + @Autowired + PlatformFittingApplyMsgServiceImpl msgService; + + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + + @Autowired + MaterialServiceImpl materialService; + + @Autowired + OperationOrderMapper operationOrderMapper; + + @Autowired + MaterialOutboundServiceImpl outboundService; + + @Autowired + MaterialOperationServiceImpl operationService; + + @Autowired + MaterialEngineerServiceImpl engineerService; + + @Override + public FittingApplyDetailVo getFittingApplyDetailById(String id) { + FittingApplyDetailVo vo= baseMapper.getFittingApplyDetailById(id); + //计算物料的当前库存 + MaterialStockVo stock; + if("1".equals(vo.getApplicantType())){ //1.工程师 + stock= baseMapper.getEmpMaterialStock(vo.getApplicantId(),vo.getFittingId()); + }else{ //运营商 + stock= baseMapper.getOperationStock(vo.getSiteId(),vo.getFittingId()); + } + if(stock==null){ + vo.setCurrentStock(0); + }else{ + vo.setCurrentStock(stock.getStock()); + } + return vo; + } + + @Override + public List getMaterialSpecList(String materialType) { + return baseMapper.getMaterialSpecList(materialType); + } + + @Override + public IPage selectPlatformFittingApplyPage(IPage page, PlatformFittingApplyVO platformFittingApply) { + BladeUser user = AuthUtil.getUser(); + //3.服务商 4.平台员工 5.服务商人员 + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + platformFittingApply.setSiteId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo!=null){ + platformFittingApply.setSiteId(authVo.getSiteId()); + } + }else if("6".equals(user.getDeptId())){ + platformFittingApply.setApplicantId(user.getUserId().toString()); + } + + return page.setRecords(baseMapper.selectPlatformFittingApplyPage(page, platformFittingApply)); + } + + + @Override + public List exportPlatformFittingApply(Wrapper queryWrapper) { + List platformFittingApplyList = baseMapper.exportPlatformFittingApply(queryWrapper); + return platformFittingApplyList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean toExamine(String id, String remarks, String type,String examineType) { + BladeUser user = AuthUtil.getUser(); + PlatformFittingApplyEntity entity = getById(id); + //申请状态:0.待运营商审核 1.待一级审核 2.待二级审核 3.待出库 4.待收件 5.已完成 6.申请已取消 7.审核驳回 默认0 + String mens = ""; + if(FittingConstant.EXAMINE_ONE.equals(type)){ + //一级审核 + if(!FittingConstant.STATUS_APPLY_ONE.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + if(FittingConstant.EXAMINE_TYPE_ONE.equals(examineType)){ + entity.setStatus(FittingConstant.STATUS_APPLY_TWO); + mens = "一级审核通过"; + }else{ + entity.setStatus(FittingConstant.STATUS_APPLY_BACK); + mens = "一级审核驳回"; + } + entity.setRefuseReason(remarks); + entity.setAuditorOne(user.getNickName()); + entity.setConfirmTime(new Date()); + }else if(FittingConstant.EXAMINE_TWO.equals(type)){ + //二级审核 + if(!FittingConstant.STATUS_APPLY_TWO.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + if(FittingConstant.EXAMINE_TYPE_ONE.equals(examineType)){ + entity.setStatus(FittingConstant.STATUS_APPLY_THREE); + mens = "二级审核通过"; + }else{ + entity.setStatus(FittingConstant.STATUS_APPLY_BACK); + mens = "二级审核驳回"; + } + entity.setRefuseReasonTwo(remarks); + entity.setAuditorTwo(user.getNickName()); + entity.setConfirmTimeTwo(new Date()); + + } + + msgService.saveMsg(entity.getId(),entity.getSiteId(),mens,user.getNickName()); + return updateById(entity); + } + + //新增物料申请 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveFittingApply(AddFittingApplyVo addFittingApplyVo) { + logger.info(">>>>>>>>>>>>>saveFittingApply addFittingApplyVo:{},code:{},type:{}",addFittingApplyVo.getMaterialSpec(),addFittingApplyVo.getMaterialCode(),addFittingApplyVo.getFittingVersion() ); + BladeUser user = AuthUtil.getUser(); + PlatformFittingApplyEntity entity =new PlatformFittingApplyEntity(); + logger.info(".....saveFittingApply departId:{}",user.getDeptId()); + OperationSiteEntity site=null; + if("3".equals(user.getDeptId()) || "5".equals(user.getDeptId())){ //运营商、运营商员工 申请的时候,必须输入物料代码,物料名称 + if("3".equals(user.getDeptId())){ + site = siteService.findSiteByUserId(user.getUserId()); + }else { + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + site = siteService.getById(emp.getSiteId()); + } + if(StringUtil.isBlank(addFittingApplyVo.getEmpId())){ + throw new ServiceException("工程师不能为空!"); + } + entity.setSiteId(site.getId()); + entity.setSiteName(site.getName()); + OperationSiteEmployeeEntity emp = employeeMapper.selectById(addFittingApplyVo.getEmpId()); + entity.setApplicantId(emp.getUserId().toString()); + entity.setApplicantName(emp.getName()); + entity.setSubmitType("2"); + + }else if("6".equals(user.getDeptId())){//工程师 + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + site = siteService.getById(emp.getSiteId()); + entity.setSiteId(site.getId()); + entity.setSiteName(site.getName()); + entity.setApplicantId(user.getUserId().toString()); + entity.setApplicantName(user.getNickName()); + entity.setSubmitType("1"); + } + if(StringUtil.isBlank(addFittingApplyVo.getOrderId())){ //没有缴纳保证金的,只有关联工单可以申请物料,不关联工单不可以申请物料 + if(site!=null && "2".equals(site.getPayTheDeposit())){ //未缴纳保证金 + throw new ServiceException("运营商未缴纳保证金,不能申请物料!"); + } + } + if(StringUtil.isNotBlank(addFittingApplyVo.getMaterialCode())){ + MaterialDTO materialEntity=materialService.getMaterialDetailByCode(addFittingApplyVo.getMaterialCode()); + if(materialEntity==null){ + throw new ServiceException("没有匹配到该 "+addFittingApplyVo.getMaterialCode()+" 物料编码的物料!"); + } + entity.setFittingId(materialEntity.getId().toString()); + entity.setFittingCode(materialEntity.getCode()); + entity.setFittingVersion(materialEntity.getMaterialType()); + entity.setFittingPower(materialEntity.getPower()); + entity.setFittingName(materialEntity.getName()); + entity.setFittingBrand(materialEntity.getBrand()); + entity.setFittingUnit(materialEntity.getUnit()); + entity.setCustomerPrice(BigDecimal.valueOf(materialEntity.getRetailPrice())); + }else{ + entity.setFittingName(addFittingApplyVo.getMaterialName()); + entity.setFittingVersion(addFittingApplyVo.getFittingVersion()); + entity.setFittingPower(addFittingApplyVo.getMaterialSpec()); + } + if(StringUtil.isNotBlank(addFittingApplyVo.getOrderId())){ + OperationOrderEntity order = operationOrderMapper.getOrderDetail(addFittingApplyVo.getOrderId()); + entity.setOrderNumber(order.getNumber()); + entity.setPowerStationCode(order.getPowerStationCode()); + entity.setEntryId(order.getEntryId()); + entity.setCustomerName(order.getCustomerName()); + } + entity.setApplicantType("1"); + String number = PlantformUtils.getFittingApplyNumber(); + entity.setNumber(number); + entity.setApplyMarks(addFittingApplyVo.getApplyMarks()); + entity.setApplyNum(addFittingApplyVo.getApplyNum()); + entity.setCreateTime(new Date()); + entity.setStatus(FittingConstant.STATUS_APPLY_ZERO); + entity.setCreator(user.getNickName()); + + if (!save(entity)) { + throw new ServiceException("保存物料申请失败!"); + } + msgService.saveMsg(entity.getId(),entity.getSiteId(),"新增物料申请",user.getNickName()); + return true; + } + + //编辑物料申请 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editFittingApply(AddFittingApplyVo addFittingApplyVo) { + logger.info(">>>>>>>>>>>>>editFittingApply id:{} addFittingApplyVo:{},code:{},type:{}",addFittingApplyVo.getId(),addFittingApplyVo.getMaterialSpec(),addFittingApplyVo.getMaterialCode(),addFittingApplyVo.getFittingVersion() ); + BladeUser user = AuthUtil.getUser(); + PlatformFittingApplyEntity entity = getById(addFittingApplyVo.getId()); + if(!FittingConstant.STATUS_APPLY_BACK.equals(entity.getStatus())){ + throw new ServiceException("物料申请的状态不支持编辑操作!"); + } + if(StringUtil.isNotBlank(addFittingApplyVo.getMaterialCode())){ + MaterialEntity materialEntity=materialService.getByMaterialCode(addFittingApplyVo.getMaterialCode()); + if(materialEntity==null){ + throw new ServiceException("没有匹配到该 "+addFittingApplyVo.getMaterialCode()+" 物料编码的物料!"); + } + entity.setFittingId(materialEntity.getId().toString()); + entity.setFittingCode(materialEntity.getCode()); + entity.setFittingName(materialEntity.getName()); + entity.setFittingBrand(materialEntity.getBrand()); + entity.setFittingUnit(materialEntity.getUnit()); + entity.setCustomerPrice(BigDecimal.valueOf(materialEntity.getRetailPrice())); + }else{ + entity.setFittingName(addFittingApplyVo.getMaterialName()); + entity.setFittingVersion(addFittingApplyVo.getFittingVersion()); + entity.setFittingPower(addFittingApplyVo.getMaterialSpec()); + } + entity.setFittingVersion(addFittingApplyVo.getFittingVersion()); + entity.setFittingPower(addFittingApplyVo.getMaterialSpec()); + entity.setStatus(FittingConstant.STATUS_APPLY_ZERO); + + entity.setApplyMarks(addFittingApplyVo.getApplyMarks()); + entity.setApplyNum(addFittingApplyVo.getApplyNum()); + entity.setUpdateName(user.getNickName()); + entity.setUpdateTime(new Date()); + msgService.saveMsg(entity.getId(),entity.getSiteId(),"编辑物料申请",user.getNickName()); + return updateById(entity); + } + + //备货申请 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean fittingBh(AddBhVo addBhVo) { + List addFittingApplyVos=addBhVo.getFittingApplyVos(); + BladeUser user = AuthUtil.getUser(); + OperationSiteEntity site; + if("3".equals(user.getDeptId())){ + site = siteService.findSiteByUserId(user.getUserId()); + }else { + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + site = siteService.getById(emp.getSiteId()); + } + if("2".equals(site.getPayTheDeposit())){ //未缴纳保证金 + throw new ServiceException("运营商未缴纳保证金,不能为自己申请物料!"); + } + for(OperaAddFittingBatchVo applyVo:addFittingApplyVos){ + PlatformFittingApplyEntity entity =new PlatformFittingApplyEntity(); + entity.setSiteId(site.getId()); + entity.setSiteName(site.getName()); + entity.setApplicantId(user.getUserId().toString()); + entity.setApplicantName(user.getNickName()); + entity.setApplicantType("2"); + entity.setApplyMarks(applyVo.getApplyMarks()); + //根据物料代码 匹配物料信息库里面的物料 + MaterialDTO materialEntity=materialService.getMaterialById(applyVo.getMaterialId()); + + entity.setFittingId(materialEntity.getId().toString()); + entity.setFittingCode(materialEntity.getCode()); + entity.setFittingVersion(materialEntity.getMaterialType()); + entity.setFittingName(materialEntity.getName()); + entity.setFittingPower(materialEntity.getPower()); + entity.setFittingBrand(materialEntity.getBrand()); + entity.setFittingUnit(materialEntity.getUnit()); + entity.setApplyNum(applyVo.getApplyNum()); + entity.setCustomerPrice(BigDecimal.valueOf(materialEntity.getRetailPrice())); + entity.setSubmitType("2"); + entity.setStatus(FittingConstant.STATUS_APPLY_ZERO); + entity.setCreateTime(new Date()); + entity.setCreator(user.getNickName()); + if (!save(entity)) { + throw new ServiceException("保存物料申请失败!"); + } + msgService.saveMsg(entity.getId(),entity.getSiteId(),"新增备货申请",user.getNickName()); + } + return true; + } + + //编辑备货申请 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editFittingBh(OperaAddFittingBatchVo batchVo) { + BladeUser user = AuthUtil.getUser(); + PlatformFittingApplyEntity entity = getById(batchVo.getApplyId()); + if(!FittingConstant.STATUS_APPLY_BACK.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + entity.setApplyNum(batchVo.getApplyNum()); + entity.setUpdateName(user.getNickName()); + entity.setUpdateTime(new Date()); + entity.setStatus(FittingConstant.STATUS_APPLY_ZERO); + msgService.saveMsg(entity.getId(),entity.getSiteId(),"编辑备货申请", user.getNickName()); + return updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean siteToExamine(SiteToExamineVo vo) { + PlatformFittingApplyEntity entity = getById(vo.getId()); + if(!FittingConstant.STATUS_APPLY_ZERO.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + BladeUser user = AuthUtil.getUser(); + + String message = ""; + entity.setAuditor(user.getNickName()); + entity.setAuditorId(user.getUserId().toString()); + entity.setUpdateName(user.getNickName()); + entity.setUpdateTime(new Date()); + entity.setConfirmSiteTime(new Date()); + entity.setFactoryMarks(vo.getFactoryMarks()); + if(FittingConstant.EXAMINE_TYPE_ONE.equals(vo.getExamineType())) { + if(StringUtil.isBlank(vo.getFittingId())){ + throw new ServiceException("物料编码不能为空!"); + } + MaterialDTO materialEntity=materialService.getMaterialDetailByCode(vo.getFittingCode()); + if(materialEntity==null){ + throw new ServiceException("没有匹配到该 "+vo.getFittingCode()+" 物料编码的物料!"); + } + entity.setFittingId(materialEntity.getId().toString()); + entity.setFittingCode(vo.getFittingCode()); + entity.setFittingName(materialEntity.getName()); + entity.setIsPlatform(vo.getIsPlatform()); + entity.setFittingBrand(materialEntity.getBrand()); + entity.setFittingUnit(materialEntity.getUnit()); + if (FittingConstant.IS_PLATFORM_ONE.equals(vo.getIsPlatform())) { + entity.setStatus(FittingConstant.STATUS_APPLY_ONE); + } else { + entity.setStatus(FittingConstant.STATUS_APPLY_ENGHT); + } + message = "审核通过"; + }else{ + message = "审核驳回"; + entity.setStatus(FittingConstant.STATUS_APPLY_BACK); + } + msgService.saveMsg(entity.getId(),entity.getSiteId(),message, user.getNickName()); + return updateById(entity); + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean sendOutGoods(Map maps) { + PlatformFittingApplyEntity entity = getById(maps.get("id").toString()); + BladeUser user = AuthUtil.getUser(); + entity.setLogisticsNames(maps.get("name").toString()); + entity.setLogisticsNumber(maps.get("code").toString()); + entity.setStatus(FittingConstant.STATUS_APPLY_FOUR); + entity.setConfirmor(user.getNickName()); + entity.setConfirmorId(user.getUserId().toString()); + MaterialEntity materialEntity=materialService.getByMaterialCode(entity.getFittingCode()); + if(materialEntity==null){ + throw new ServiceException("没有匹配到该 "+entity.getFittingCode()+" 物料编码的物料!"); + } + if(materialEntity.getStock()< entity.getApplyNum()){ + throw new ServiceException(entity.getFittingName()+" 物料库存不足!"); + } + materialEntity.setStock(materialEntity.getStock()-entity.getApplyNum()); + materialEntity.setFreezeAmount(materialEntity.getFreezeAmount()+ entity.getApplyNum()); + materialService.updateById(materialEntity); + return updateById(entity); + } + + + //申请待审核以及审核驳回时,可删除物料申请; + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteApplyFitting(String id) { + logger.info("deleteApplyFitting id:{}",id); + BladeUser user = AuthUtil.getUser(); + PlatformFittingApplyEntity entity = getById(id); + if(!FittingConstant.STATUS_APPLY_ZERO.equals(entity.getStatus()) && !FittingConstant.STATUS_APPLY_BACK.equals(entity.getStatus()) ){ + throw new ServiceException("物料申请待审核及审核驳回时,才可删除物料申请;"); + } + entity.setStatus(FittingConstant.STATUS_APPLY_SIX); + entity.setUpdateName(user.getNickName()); + entity.setUpdateTime(new Date()); + msgService.saveMsg(entity.getId(),entity.getSiteId(),"删除物料申请",user.getNickName()); + return updateById(entity); + } + + //备货申请时 根据物料名称 或者代码 获取物料信息 + @Override + public List getMaterialListByCodeOrName(ChooseMaterialListVo conditonVo) { + BladeUser user = AuthUtil.getUser(); + OperationSiteEntity site; + if("3".equals(user.getDeptId())){ + site = siteService.findSiteByUserId(user.getUserId()); + }else { + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + site = siteService.getById(emp.getSiteId()); + } + if(site!=null){ + conditonVo.setSiteId(site.getId()); + } + List list=baseMapper.getMaterialListByCodeOrName(conditonVo); + return list; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean siteSignFor(String id) { + PlatformFittingApplyEntity entity = getById(id); + if(!FittingConstant.STATUS_APPLY_FOUR.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + //applicant_type 申请类型:1.工程师申请 2.运维商备货申请 + if(FittingConstant.EXAMINE_ONE.equals(entity.getApplicantType())){ + entity.setStatus(FittingConstant.STATUS_APPLY_ENGHT); + }else{ + entity.setStatus(FittingConstant.STATUS_APPLY_FIVE); + } + BladeUser user = AuthUtil.getUser(); + entity.setSendTime(new Date()); + entity.setConfirmStorageId(user.getUserId().toString()); + entity.setConfirmStorage(user.getNickName()); + entity.setEndTime(new Date()); + MaterialEntity materialEntity=materialService.getByMaterialCode(entity.getFittingCode()); + materialEntity.setFreezeAmount(materialEntity.getFreezeAmount()-entity.getApplyNum()); + if(materialEntity.getFreezeAmount()<0){ + throw new ServiceException("物料冻结库存数量不足!"); + } + OperationSiteEntity site = siteService.getById(entity.getSiteId()); + + materialService.updateById(materialEntity); + //生成平台出库记录 + outboundService.saveMaterialOutbound(entity,materialEntity,"2","0",user,"3","平台",FittingConstant.KEEP_FORM_OUT); + //运维商添加库存 + MaterialOperationEntity siteMater = operationService.findByMateId(entity.getFittingId(),entity.getSiteId()); + if(siteMater ==null){ + siteMater = new MaterialOperationEntity(); + siteMater.setMaterialId(materialEntity.getId()); + siteMater.setCompanyId(entity.getSiteId()); + siteMater.setOperationId(entity.getSiteId()); + siteMater.setOperationName(entity.getSiteName()); + siteMater.setCode(materialEntity.getCode()); + siteMater.setName(materialEntity.getName()); + siteMater.setType(materialEntity.getType()); + siteMater.setModel(materialEntity.getModel()); + siteMater.setPower(materialEntity.getPower()); + siteMater.setRetailPrice(materialEntity.getRetailPrice()); + siteMater.setDescription(materialEntity.getDescription()); + siteMater.setBrand(materialEntity.getBrand()); + siteMater.setStock(entity.getApplyNum()); + siteMater.setCreateUser(user.getUserId()); + siteMater.setCreateTime(new Date()); + siteMater.setIsDeleted(0); + siteMater.setFreezeAmount(0); + }else{ + siteMater.setStock(siteMater.getStock()+entity.getApplyNum()); + } + if(!updateById(entity)){ + throw new ServiceException("保存申请信息失败!"); + } + //生成运维上入库记录 + outboundService.saveMaterialOutbound(entity,materialEntity,"1",site.getId(),user,"2",site.getName(),FittingConstant.KEEP_FORM_IN); + msgService.saveMsg(entity.getId(),site.getId(),"签收", user.getNickName()); + return operationService.saveOrUpdate(siteMater); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean siteOutbound(String id) { + PlatformFittingApplyEntity entity = getById(id); + if(!FittingConstant.STATUS_APPLY_ENGHT.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + BladeUser user = AuthUtil.getUser(); + entity.setStatus(FittingConstant.STATUS_APPLY_NINE); + entity.setConfirmor(user.getNickName()); + entity.setConfirmorId(user.getUserId().toString()); + entity.setOutFittingTime(new Date()); + if(!updateById(entity)){ + throw new ServiceException("出库失败!"); + } + MaterialOperationEntity siteMater = operationService.findByMateId(entity.getFittingId(),entity.getSiteId()); + if(siteMater==null){ + throw new ServiceException(entity.getFittingName()+",运营商物料库存不足"); + } + + siteMater.setFreezeAmount(siteMater.getFreezeAmount()+entity.getApplyNum()); + siteMater.setStock(siteMater.getStock()-entity.getApplyNum()); + if(siteMater.getStock()<0){ + throw new ServiceException(entity.getFittingName()+",物料库存不足"); + } + if(!operationService.updateById(siteMater)){ + throw new ServiceException("出库保存物料信息失败!"); + } + return true; + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean empReceiveMate(String id) { + PlatformFittingApplyEntity entity = getById(id); + if(!FittingConstant.STATUS_APPLY_NINE.equals(entity.getStatus())){ + throw new ServiceException("单据状态发生改变,请刷新再试"); + } + entity.setStatus(FittingConstant.STATUS_APPLY_FIVE); + BladeUser user = AuthUtil.getUser(); + entity.setSendTime(new Date()); + entity.setConfirmStorageId(user.getUserId().toString()); + entity.setConfirmStorage(user.getNickName()); + entity.setEndTime(new Date()); + MaterialOperationEntity siteStock = operationService.findByMateId(entity.getFittingId(),entity.getSiteId()); + siteStock.setFreezeAmount(siteStock.getFreezeAmount()-entity.getApplyNum()); + if(siteStock.getFreezeAmount()<0){ + throw new ServiceException("物料冻结库存数量不足!"); + } + MaterialEntity materialEntity=materialService.getByMaterialCode(entity.getFittingCode()); + boolean fg=operationService.updateById(siteStock); + if(!fg){ + throw new ServiceException("保存库存信息失败!"); + } + OperationSiteEntity site = siteService.getById(entity.getSiteId()); + //生成运维商出库记录 + outboundService.saveMaterialOutbound(entity,materialEntity,"2",site.getId(),user,"2",site.getName(),FittingConstant.KEEP_FORM_OUT); + //工程师添加库存 + MaterialEngineerEntity empStock = engineerService.getEngineerStock(entity.getApplicantId(),entity.getFittingId()); + if(empStock ==null){ + empStock = new MaterialEngineerEntity(); + empStock.setMaterialId(materialEntity.getId()); + empStock.setOperationId(entity.getSiteId()); + empStock.setOperationName(site.getName()); + empStock.setEngineerId(Long.valueOf(entity.getApplicantId())); + empStock.setEngineerName(entity.getApplicantName()); + empStock.setCode(materialEntity.getCode()); + empStock.setName(materialEntity.getName()); + empStock.setType(materialEntity.getType()); + empStock.setModel(materialEntity.getModel()); + empStock.setPower(materialEntity.getPower()); + empStock.setDescription(materialEntity.getDescription()); + empStock.setBrand(materialEntity.getBrand()); + empStock.setStock(entity.getApplyNum()); + empStock.setCreateUser(user.getUserId()); + empStock.setCreateTime(new Date()); + empStock.setIsDeleted(0); + }else{ + empStock.setStock(empStock.getStock()+entity.getApplyNum()); + } + if(!engineerService.saveOrUpdate(empStock)){ + throw new ServiceException("保存工程师库存信息失败!"); + } + //生成工程师入库记录 + outboundService.saveMaterialOutbound(entity,materialEntity,"1",site.getId(),user,"1",entity.getApplicantName(),FittingConstant.KEEP_FORM_IN); + msgService.saveMsg(entity.getId(),site.getId(),"工程师领取", user.getNickName()); + return updateById(entity); + + } + + @Override + public ApplyDto findHomeFittingCount() { + BladeUser user = AuthUtil.getUser(); + //3.服务商 4.平台员工 5.服务商人员 + String appId = user.getUserId().toString(); + return getBaseMapper().findHomeFittingCount(appId); + } + + @Override + public List auditFittingMatchingMaterial(Map params) { + List list=baseMapper.auditFittingMatchingMaterial(params); + return list; + } + + +} diff --git a/src/main/java/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.java b/src/main/java/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.java new file mode 100644 index 0000000..912800c --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.vo.OperationOrderMaterialVO; +import java.util.Objects; + +/** + * 工单备件使用表 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2024-08-27 + */ +public class OperationOrderMaterialWrapper extends BaseEntityWrapper { + + public static OperationOrderMaterialWrapper build() { + return new OperationOrderMaterialWrapper(); + } + + @Override + public OperationOrderMaterialVO entityVO(OperationOrderMaterialEntity operationOrderMaterial) { + OperationOrderMaterialVO operationOrderMaterialVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderMaterial, OperationOrderMaterialVO.class)); + + //User createUser = UserCache.getUser(operationOrderMaterial.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderMaterial.getUpdateUser()); + //operationOrderMaterialVO.setCreateUserName(createUser.getName()); + //operationOrderMaterialVO.setUpdateUserName(updateUser.getName()); + + return operationOrderMaterialVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.java b/src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.java new file mode 100644 index 0000000..68635c7 --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyMsgEntity; +import org.springblade.modules.fitting.pojo.vo.PlatformFittingApplyMsgVO; +import java.util.Objects; + +/** + * 平台备件申请领用记录的操作详情表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-24 + */ +public class PlatformFittingApplyMsgWrapper extends BaseEntityWrapper { + + public static PlatformFittingApplyMsgWrapper build() { + return new PlatformFittingApplyMsgWrapper(); + } + + @Override + public PlatformFittingApplyMsgVO entityVO(PlatformFittingApplyMsgEntity platformFittingApplyMsg) { + PlatformFittingApplyMsgVO platformFittingApplyMsgVO = Objects.requireNonNull(BeanUtil.copyProperties(platformFittingApplyMsg, PlatformFittingApplyMsgVO.class)); + + //User createUser = UserCache.getUser(platformFittingApplyMsg.getCreateUser()); + //User updateUser = UserCache.getUser(platformFittingApplyMsg.getUpdateUser()); + //platformFittingApplyMsgVO.setCreateUserName(createUser.getName()); + //platformFittingApplyMsgVO.setUpdateUserName(updateUser.getName()); + + return platformFittingApplyMsgVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyWrapper.java b/src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyWrapper.java new file mode 100644 index 0000000..68cd90e --- /dev/null +++ b/src/main/java/org/springblade/modules/fitting/wrapper/PlatformFittingApplyWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.fitting.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.pojo.vo.PlatformFittingApplyVO; +import java.util.Objects; + +/** + * 服务商向平台备件申请领用记录表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-24 + */ +public class PlatformFittingApplyWrapper extends BaseEntityWrapper { + + public static PlatformFittingApplyWrapper build() { + return new PlatformFittingApplyWrapper(); + } + + @Override + public PlatformFittingApplyVO entityVO(PlatformFittingApplyEntity platformFittingApply) { + PlatformFittingApplyVO platformFittingApplyVO = Objects.requireNonNull(BeanUtil.copyProperties(platformFittingApply, PlatformFittingApplyVO.class)); + + //User createUser = UserCache.getUser(platformFittingApply.getCreateUser()); + //User updateUser = UserCache.getUser(platformFittingApply.getUpdateUser()); + //platformFittingApplyVO.setCreateUserName(createUser.getName()); + //platformFittingApplyVO.setUpdateUserName(updateUser.getName()); + + return platformFittingApplyVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/controller/ExamineInfoController.java b/src/main/java/org/springblade/modules/flowable/examineInfo/controller/ExamineInfoController.java new file mode 100644 index 0000000..fc6b3cd --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/controller/ExamineInfoController.java @@ -0,0 +1,135 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import org.springblade.modules.flowable.examineInfo.pojo.vo.ExamineInfoVO; +import org.springblade.modules.flowable.examineInfo.wrapper.ExamineInfoWrapper; +import org.springblade.modules.flowable.examineInfo.service.IExamineInfoService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 审批明细记录表 控制器 + * + * @author lzp + * @since 2024-08-09 + */ +@RestController +@AllArgsConstructor +@RequestMapping("blade-examineInfo/examineInfo") +@Tag(name = "审批明细记录表", description = "审批明细记录表接口") +public class ExamineInfoController extends BladeController { + + private final IExamineInfoService examineInfoService; + + /** + * 审批明细记录表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入examineInfo") + public R detail(ExamineInfoEntity examineInfo) { + ExamineInfoEntity detail = examineInfoService.getOne(Condition.getQueryWrapper(examineInfo)); + return R.data(ExamineInfoWrapper.build().entityVO(detail)); + } + /** + * 审批明细记录表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入examineInfo") + public R> list(@Parameter(hidden = true) @RequestParam Map examineInfo, Query query) { + IPage pages = examineInfoService.page(Condition.getPage(query), Condition.getQueryWrapper(examineInfo, ExamineInfoEntity.class)); + return R.data(ExamineInfoWrapper.build().pageVO(pages)); + } + + /** + * 审批明细记录表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入examineInfo") + public R> page(ExamineInfoVO examineInfo, Query query) { + IPage pages = examineInfoService.selectExamineInfoPage(Condition.getPage(query), examineInfo); + return R.data(pages); + } + + /** + * 审批明细记录表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入examineInfo") + public R save(@Valid @RequestBody ExamineInfoEntity examineInfo) { + return R.status(examineInfoService.save(examineInfo)); + } + + /** + * 审批明细记录表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入examineInfo") + public R update(@Valid @RequestBody ExamineInfoEntity examineInfo) { + return R.status(examineInfoService.updateById(examineInfo)); + } + + /** + * 审批明细记录表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入examineInfo") + public R submit(@Valid @RequestBody ExamineInfoEntity examineInfo) { + return R.status(examineInfoService.saveOrUpdate(examineInfo)); + } + + + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.java b/src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.java new file mode 100644 index 0000000..43f7c5d --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.mapper; + +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import org.springblade.modules.flowable.examineInfo.pojo.vo.ExamineInfoVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 审批明细记录表 Mapper 接口 + * + * @author lzp + * @since 2024-08-09 + */ +public interface ExamineInfoMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param examineInfo + * @return + */ + List selectExamineInfoPage(IPage page, ExamineInfoVO examineInfo); + + List findExamineInfo(String applyId,String formTypeId); + + + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml b/src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml new file mode 100644 index 0000000..e6710bf --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.java b/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.java new file mode 100644 index 0000000..17aca17 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.pojo.dto; + +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 审批明细记录表 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ExamineInfoDTO extends ExamineInfoEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.java b/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.java new file mode 100644 index 0000000..66b90da --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.java @@ -0,0 +1,88 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 审批明细记录表 实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@TableName("crm_examine_info") +@Schema(description = "ExamineInfo对象") +public class ExamineInfoEntity implements Serializable { + + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 申请流程 id 每个表的id + */ + @Schema(description = "申请流程 id 每个表的id") + private String formId; + /** + * 操作内容 + */ + @Schema(description = "操作内容") + private String detail; + /** + * 操作时间 + */ + @Schema(description = "操作时间") + private Date operateTime; + /** + * 操作人 + */ + @Schema(description = "操作人") + private String operateName; + /** + * 流程表单id + */ + @Schema(description = "流程表单id") + private String formTypeId; + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/vo/ExamineInfoVO.java b/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/vo/ExamineInfoVO.java new file mode 100644 index 0000000..817e664 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/pojo/vo/ExamineInfoVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.pojo.vo; + +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 审批明细记录表 视图实体类 + * + * @author lzp + * @since 2024-08-09 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ExamineInfoVO extends ExamineInfoEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.java b/src/main/java/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.java new file mode 100644 index 0000000..79144d2 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import org.springblade.modules.flowable.examineInfo.pojo.vo.ExamineInfoVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 审批明细记录表 服务类 + * + * @author lzp + * @since 2024-08-09 + */ +public interface IExamineInfoService extends IService { + /** + * 自定义分页 + * + * @param page + * @param examineInfo + * @return + */ + IPage selectExamineInfoPage(IPage page, ExamineInfoVO examineInfo); + + + List findExamineInfo(String applyId,String formTypeId); + + + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.java b/src/main/java/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.java new file mode 100644 index 0000000..9004402 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import org.springblade.modules.flowable.examineInfo.pojo.vo.ExamineInfoVO; +import org.springblade.modules.flowable.examineInfo.mapper.ExamineInfoMapper; +import org.springblade.modules.flowable.examineInfo.service.IExamineInfoService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.Date; +import java.util.List; + +/** + * 审批明细记录表 服务实现类 + * + * @author lzp + * @since 2024-08-09 + */ +@Service +public class ExamineInfoServiceImpl extends ServiceImpl implements IExamineInfoService { + + @Override + public IPage selectExamineInfoPage(IPage page, ExamineInfoVO examineInfo) { + return page.setRecords(baseMapper.selectExamineInfoPage(page, examineInfo)); + } + + @Override + public List findExamineInfo(String applyId, String formTypeId) { + return baseMapper.findExamineInfo(applyId, formTypeId); + } + + public void saveExamineInfo(String formId, String detail, Date operateTime, String operateName, String formTypeId){ + ExamineInfoEntity info=new ExamineInfoEntity(); + info.setFormId(formId); + info.setDetail(detail); + info.setOperateName(operateName); + info.setOperateTime(operateTime); + info.setFormId(formId); + info.setFormTypeId(formTypeId); + save(info); + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/examineInfo/wrapper/ExamineInfoWrapper.java b/src/main/java/org/springblade/modules/flowable/examineInfo/wrapper/ExamineInfoWrapper.java new file mode 100644 index 0000000..df5b5ee --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/examineInfo/wrapper/ExamineInfoWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.examineInfo.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.flowable.examineInfo.pojo.entity.ExamineInfoEntity; +import org.springblade.modules.flowable.examineInfo.pojo.vo.ExamineInfoVO; +import java.util.Objects; + +/** + * 审批明细记录表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-09 + */ +public class ExamineInfoWrapper extends BaseEntityWrapper { + + public static ExamineInfoWrapper build() { + return new ExamineInfoWrapper(); + } + + @Override + public ExamineInfoVO entityVO(ExamineInfoEntity examineInfo) { + ExamineInfoVO examineInfoVO = Objects.requireNonNull(BeanUtil.copyProperties(examineInfo, ExamineInfoVO.class)); + + //User createUser = UserCache.getUser(examineInfo.getCreateUser()); + //User updateUser = UserCache.getUser(examineInfo.getUpdateUser()); + //examineInfoVO.setCreateUserName(createUser.getName()); + //examineInfoVO.setUpdateUserName(updateUser.getName()); + + return examineInfoVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/controller/ProcessDefController.java b/src/main/java/org/springblade/modules/flowable/processForm/controller/ProcessDefController.java new file mode 100644 index 0000000..6f07297 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/controller/ProcessDefController.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.hibernate.validator.constraints.NotBlank; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.flowable.processForm.pojo.dto.ProcessDefDTO; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.AddProcessVo; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefVO; +import org.springblade.modules.flowable.processForm.wrapper.ProcessDefWrapper; +import org.springblade.modules.flowable.processForm.service.IProcessDefService; +import org.springblade.core.boot.ctrl.BladeController; + +import java.util.Map; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 控制器 + * + * @author lzp + * @since 2024-08-02 + */ +@RestController +@AllArgsConstructor +@RequestMapping("blade-processDef/processDef") +@Tag(name = "流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。", description = "流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。接口") +public class ProcessDefController extends BladeController { + + private final IProcessDefService processDefService; + + /** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入processDef") + public R detail(@Parameter(name = "id",description = "主键id",required = true) @RequestParam String id) { + ProcessDefDTO detail = processDefService.getProcessForm(id); + return R.data(detail); + } + + + /** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入processDef") + public R> page(ProcessDefVO processDef, Query query) { + IPage pages = processDefService.selectProcessDefPage(Condition.getPage(query), processDef); + return R.data(pages); + } + + /** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入processDef") + public R save(@Valid @RequestBody AddProcessVo req) { + return processDefService.saveProcessDef(req); + } + + /** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入processDef") + public R update(@Valid @RequestBody AddProcessVo processDef) { + return processDefService.updateProcessDef(processDef); + } + + /** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 新增或修改 + */ + @GetMapping("/findFromDefList") + @ApiOperationSupport(order = 6) + @Operation(summary = "获取流程表单") + public R findFromDefList() { + return R.data(processDefService.findFromDefList()); + } + + /** + * 禁用/启用 + */ + @GetMapping("/changeProcessStatus") + @ApiOperationSupport(order = 6) + @Operation(summary = "启用/禁用/删除 流程") + public R changeProcessStatus(@Parameter(name = "processId",description = "流程id",required = true) @RequestParam String processId, @Parameter(name = "type",description = "type=1 禁用 type=0 启用 type=2 删除",required = true) @RequestParam String type){ + + return R.status(processDefService.changeProcessStatus(processId,type)); + } + + /** + * 查询当前人员是否有新增流程权限 + */ + @GetMapping("/findUserProcess") + @ApiOperationSupport(order = 7) + @Operation(summary = "查询当前人员是否有新增流程权限") + public R findUserProcess(@Parameter(name = "formId",description = "流程表单id",required = true) @RequestParam String formId){ + return R.data(processDefService.findUserProcess(formId)); + } + + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.java b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.java new file mode 100644 index 0000000..3b52cbc --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.java @@ -0,0 +1,170 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 Excel实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class ProcessDefAuditStepExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 存当前任务名称(例如:1级审批) + */ + @ColumnWidth(20) + @ExcelProperty("存当前任务名称(例如:1级审批)") + private String name; + /** + * 可见字段,使用逗号分隔,存code。 + */ + @ColumnWidth(20) + @ExcelProperty("可见字段,使用逗号分隔,存code。") + private String visibleFields; + /** + * 可编辑字段,使用逗号分隔,存code。 + */ + @ColumnWidth(20) + @ExcelProperty("可编辑字段,使用逗号分隔,存code。") + private String operateFields; + /** + * 审批角色(审批人类型是平台角色的时候存角色) + */ + @ColumnWidth(20) + @ExcelProperty("审批角色(审批人类型是平台角色的时候存角色)") + private String roleId; + /** + * 节点名称 + */ + @ColumnWidth(20) + @ExcelProperty("节点名称") + private String itemName; + /** + * 审批人类型 1平台角色 2 平台员工 + */ + @ColumnWidth(20) + @ExcelProperty("审批人类型 1平台角色 2 平台员工 ") + private String auditType; + /** + * 角色名称 + */ + @ColumnWidth(20) + @ExcelProperty("角色名称") + private String roleName; + /** + * 可审批员工(审批人类型是平台员工的时候存用户id) + */ + @ColumnWidth(20) + @ExcelProperty("可审批员工(审批人类型是平台员工的时候存用户id)") + private String empUserId; + /** + * 审批方式 1 或签 2会签 3 依次审批 4 任意人 + */ + @ColumnWidth(20) + @ExcelProperty("审批方式 1 或签 2会签 3 依次审批 4 任意人") + private String auditMethod; + /** + * 驳回至某一个节点的id + */ + @ColumnWidth(20) + @ExcelProperty("驳回至某一个节点的id") + private String rejectStepId; + /** + * 驳回节点类型(0:提交节点,1:审核节点) + */ + @ColumnWidth(20) + @ExcelProperty("驳回节点类型(0:提交节点,1:审核节点)") + private String rejectStepType; + /** + * 驳回节点名称 + */ + @ColumnWidth(20) + @ExcelProperty("驳回节点名称") + private String rejectStepName; + /** + * 抄送人员id(多个用逗号隔开) + */ + @ColumnWidth(20) + @ExcelProperty("抄送人员id(多个用逗号隔开)") + private String ccUserId; + /** + * 审批提示 + */ + @ColumnWidth(20) + @ExcelProperty("审批提示") + private String auditNote; + /** + * 可跨部门(0 否 1是) + */ + @ColumnWidth(20) + @ExcelProperty("可跨部门(0 否 1是)") + private String transDepartment; + /** + * 流程模板id + */ + @ColumnWidth(20) + @ExcelProperty("流程模板id") + private String procDefId; + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String createBy; + /** + * 审批顺序(小的排在前面) + */ + @ColumnWidth(20) + @ExcelProperty("审批顺序(小的排在前面)") + private Integer sort; + /** + * 审批状态 + */ + @ColumnWidth(20) + @ExcelProperty("审批状态") + private String stepName; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.java b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.java new file mode 100644 index 0000000..0f04fa2 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 Excel实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class ProcessDefExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 流程名称 + */ + @ColumnWidth(20) + @ExcelProperty("流程名称") + private String name; + /** + * 表单id + */ + @ColumnWidth(20) + @ExcelProperty("表单id") + private String formId; + /** + * 流程描述 + */ + @ColumnWidth(20) + @ExcelProperty("流程描述") + private String description; + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String createBy; + /** + * 每个流程都有一个唯一key标识,可以写死。 + */ + @ColumnWidth(20) + @ExcelProperty("每个流程都有一个唯一key标识,可以写死。") + private String keyValue; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.java b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.java new file mode 100644 index 0000000..821c024 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.java @@ -0,0 +1,80 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 Excel实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class ProcessDefLatestExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String createBy; + /** + * 每个流程都有一个唯一key标识,可以写死。 + */ + @ColumnWidth(20) + @ExcelProperty("每个流程都有一个唯一key标识,可以写死。") + private String keyValue; + /** + * 流程id + */ + @ColumnWidth(20) + @ExcelProperty("流程id") + private String processDefId; + /** + * 角色id + */ + @ColumnWidth(20) + @ExcelProperty("角色id") + private String roleId; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.java b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.java new file mode 100644 index 0000000..2800b83 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.java @@ -0,0 +1,110 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 流程中的提交步骤(或者称为一个任务)。 Excel实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class ProcessDefSubmitStepExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 可见字段,使用逗号分隔,存code。 + */ + @ColumnWidth(20) + @ExcelProperty("可见字段,使用逗号分隔,存code。") + private String visibleFields; + /** + * 可编辑字段,使用逗号分隔,存code。 + */ + @ColumnWidth(20) + @ExcelProperty("可编辑字段,使用逗号分隔,存code。") + private String operateFields; + /** + * 节点名称 + */ + @ColumnWidth(20) + @ExcelProperty("节点名称") + private String itemName; + /** + * 提交人类型 1平台角色 2 平台员工 3 代理商 + */ + @ColumnWidth(20) + @ExcelProperty("提交人类型 1平台角色 2 平台员工 3 代理商") + private String submitType; + /** + * 可提交角色(提交人类型是平台角色的时候存角色) + */ + @ColumnWidth(20) + @ExcelProperty("可提交角色(提交人类型是平台角色的时候存角色)") + private String roleId; + /** + * 可提交员工(提交人类型是平台员工的时候存用户id) + */ + @ColumnWidth(20) + @ExcelProperty("可提交员工(提交人类型是平台员工的时候存用户id)") + private String empUserId; + /** + * 角色名称 + */ + @ColumnWidth(20) + @ExcelProperty("角色名称") + private String roleName; + /** + * 流程模板id + */ + @ColumnWidth(20) + @ExcelProperty("流程模板id") + private String procDefId; + /** + * 创建人id + */ + @ColumnWidth(20) + @ExcelProperty("创建人id") + private String createBy; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.java b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.java new file mode 100644 index 0000000..2b829c1 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 流程表单 Excel实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class ProcessFormExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 表单名称 + */ + @ColumnWidth(20) + @ExcelProperty("表单名称") + private String name; + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String createBy; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.java b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.java new file mode 100644 index 0000000..9eb2ca2 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.mapper; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefAuditStepExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 Mapper 接口 + * + * @author lzp + * @since 2024-08-02 + */ +public interface ProcessDefAuditStepMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param processDefAuditStep + * @return + */ + List selectProcessDefAuditStepPage(IPage page, ProcessDefAuditStepVO processDefAuditStep); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportProcessDefAuditStep(@Param("ew") Wrapper queryWrapper); + + + List findListByDefId(String defId); + + String getOneStepTaskName(String defId); + + String getLastAuditStep(String defId); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml new file mode 100644 index 0000000..a20e77b --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.java b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.java new file mode 100644 index 0000000..a53e3c8 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.java @@ -0,0 +1,58 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.mapper; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefLatestEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefLatestVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefLatestExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 Mapper 接口 + * + * @author lzp + * @since 2024-08-02 + */ +public interface ProcessDefLatestMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param processDefLatest + * @return + */ + List selectProcessDefLatestPage(IPage page, ProcessDefLatestVO processDefLatest); + + + ProcessDefLatestVO findDefLatesByFormId(String formId); + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.xml b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.xml new file mode 100644 index 0000000..5525dc9 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.java b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.java new file mode 100644 index 0000000..62528ad --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.mapper; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefReq; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 Mapper 接口 + * + * @author lzp + * @since 2024-08-02 + */ +public interface ProcessDefMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param processDef + * @return + */ + List selectProcessDefPage(IPage page, ProcessDefVO processDef); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportProcessDef(@Param("ew") Wrapper queryWrapper); + + ProcessDefVO getDefById(String id); + + boolean updateStatus(@Param("type") String type,@Param("id") String id); + + ProcessDefReq getDefByFormId(String formId); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml new file mode 100644 index 0000000..eeb4bc3 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + update crm_process_def set is_deleted=#{type} where id=#{id} + + + + + diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.java b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.java new file mode 100644 index 0000000..b31bd63 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.mapper; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefSubmitStepVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefSubmitStepExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 流程中的提交步骤(或者称为一个任务)。 Mapper 接口 + * + * @author lzp + * @since 2024-08-02 + */ +public interface ProcessDefSubmitStepMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param processDefSubmitStep + * @return + */ + List selectProcessDefSubmitStepPage(IPage page, ProcessDefSubmitStepVO processDefSubmitStep); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportProcessDefSubmitStep(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml new file mode 100644 index 0000000..e77c5c4 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.java b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.java new file mode 100644 index 0000000..fb4659c --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.mapper; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessFormVO; +import org.springblade.modules.flowable.processForm.excel.ProcessFormExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 流程表单 Mapper 接口 + * + * @author lzp + * @since 2024-08-02 + */ +public interface ProcessFormMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param processForm + * @return + */ + List selectProcessFormPage(IPage page, ProcessFormVO processForm); + + + /** + * 获取未添加的表单 + * @return + */ + List findFromDefList(); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml new file mode 100644 index 0000000..d5b66f7 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.java new file mode 100644 index 0000000..8f1c88b --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.util.Date; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessDefAuditStepDTO extends ProcessDefAuditStepEntity { + @Serial + private static final long serialVersionUID = 1L; +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefDTO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefDTO.java new file mode 100644 index 0000000..9f3e44c --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefDTO.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefVO; + +import java.io.Serial; +import java.util.List; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +public class ProcessDefDTO { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "流程基本信息") + private ProcessDefVO def; + @Schema(description = "流程中的提交步骤") + private ProcessDefSubmitStepEntity submitStep; + @Schema(description = "审核步骤") + private List steps; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefLatestDTO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefLatestDTO.java new file mode 100644 index 0000000..de786f3 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefLatestDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.dto; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefLatestEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessDefLatestDTO extends ProcessDefLatestEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.java new file mode 100644 index 0000000..241934c --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.dto; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 流程中的提交步骤(或者称为一个任务)。 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessDefSubmitStepDTO extends ProcessDefSubmitStepEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.java new file mode 100644 index 0000000..0515f87 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.dto; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 流程表单 数据传输对象实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessFormDTO extends ProcessFormEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefAuditStepEntity.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefAuditStepEntity.java new file mode 100644 index 0000000..9d3a7e6 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefAuditStepEntity.java @@ -0,0 +1,168 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@TableName("crm_process_def_audit_step") +@Schema(description = "ProcessDefAuditStep对象") +public class ProcessDefAuditStepEntity implements Serializable { + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * 存当前任务名称(例如:1级审批) + */ + @Schema(description = "存当前任务名称(例如:1级审批)") + private String name; + /** + * 可见字段,使用逗号分隔,存code。 + */ + @Schema(description = "可见字段,使用逗号分隔,存code。") + private String visibleFields; + /** + * 可编辑字段,使用逗号分隔,存code。 + */ + @Schema(description = "可编辑字段,使用逗号分隔,存code。") + private String operateFields; + /** + * 审批角色(审批人类型是平台角色的时候存角色) + */ + @Schema(description = "审批角色(审批人类型是平台角色的时候存角色)") + private String roleId; + /** + * 节点名称 + */ + @Schema(description = "节点名称") + private String itemName; + /** + * 审批人类型 1平台角色 2 平台员工 + */ + @Schema(description = "审批人类型 1平台角色 2 平台员工 ") + private String auditType; + /** + * 角色名称 + */ + @Schema(description = "角色名称") + private String roleName; + /** + * 可审批员工(审批人类型是平台员工的时候存用户id) + */ + @Schema(description = "可审批员工(审批人类型是平台员工的时候存用户id)") + private String empUserId; + /** + * 审批方式 1 或签 2会签 3 依次审批 4 任意人 + */ + @Schema(description = "审批方式 1 或签 2会签 3 依次审批 4 任意人") + private String auditMethod; + /** + * 驳回至某一个节点的id + */ + @Schema(description = "驳回至某一个节点的id") + private String rejectStepId; + /** + * 驳回节点类型(0:提交节点,1:审核节点) + */ + @Schema(description = "驳回节点类型(0:提交节点,1:审核节点)") + private String rejectStepType; + /** + * 驳回节点名称 + */ + @Schema(description = "驳回节点名称") + private String rejectStepName; + /** + * 抄送人员id(多个用逗号隔开) + */ + @Schema(description = "抄送人员id(多个用逗号隔开)") + private String ccUserId; + /** + * 审批提示 + */ + @Schema(description = "审批提示") + private String auditNote; + /** + * 可跨部门(0 否 1是) + */ + @Schema(description = "可跨部门(0 否 1是)") + private String transDepartment; + /** + * 流程模板id + */ + @Schema(description = "流程模板id") + private String procDefId; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String createBy; + /** + * 审批顺序(小的排在前面) + */ + @Schema(description = "审批顺序(小的排在前面)") + private Integer sort; + /** + * 审批状态 + */ + @Schema(description = "审批状态") + private String stepName; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @Schema( + description = "创建时间" + ) + private Date createTime; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefEntity.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefEntity.java new file mode 100644 index 0000000..f80123d --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefEntity.java @@ -0,0 +1,116 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@TableName("crm_process_def") +@Schema(description = "ProcessDef对象") +public class ProcessDefEntity implements Serializable { + + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 流程名称 + */ + @Schema(description = "流程名称",requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "流程名称不能为空") + private String name; + /** + * 表单id + */ + @Schema(description = "表单id",requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "流程表单id不能为空") + private String formId; + /** + * 流程描述 + */ + @Schema(description = "流程描述",requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "流程描述不能为空") + private String description; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String createBy; + /** + * 每个流程都有一个唯一key标识,可以写死。 + */ + @Schema(description = "每个流程都有一个唯一key标识,可以写死。") + private String keyValue; + + @TableLogic + @Schema( + description = "是否已删除 0:启动,1:禁用 2 删除" + ) + private Integer isDeleted; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @Schema( + description = "创建时间" + ) + private Date createTime; + + private String createName; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.java new file mode 100644 index 0000000..c9d5fe3 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.java @@ -0,0 +1,92 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@TableName("crm_process_def_latest") +@Schema(description = "ProcessDefLatest对象") +public class ProcessDefLatestEntity implements Serializable { + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String createBy; + /** + * 每个流程都有一个唯一key标识,可以写死。 + */ + @Schema(description = "每个流程都有一个唯一key标识,可以写死。") + private String keyValue; + /** + * 流程id + */ + @Schema(description = "流程id") + private String processDefId; + /** + * 角色id + */ + @Schema(description = "角色id") + private String roleId; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @Schema( + description = "创建时间" + ) + private Date createTime; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.java new file mode 100644 index 0000000..ba8382b --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.java @@ -0,0 +1,117 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 流程中的提交步骤(或者称为一个任务)。 实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@TableName("crm_process_def_submit_step") +@Schema(description = "ProcessDefSubmitStep对象") +public class ProcessDefSubmitStepEntity implements Serializable { + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * 可见字段,使用逗号分隔,存code。 + */ + @Schema(description = "可见字段,使用逗号分隔,存code。") + private String visibleFields; + /** + * 可编辑字段,使用逗号分隔,存code。 + */ + @Schema(description = "可编辑字段,使用逗号分隔,存code。") + private String operateFields; + /** + * 节点名称 + */ + @Schema(description = "节点名称") + private String itemName; + /** + * 提交人类型 1平台角色 2 平台员工 3 代理商 + */ + @Schema(description = "提交人类型 1平台角色 2 平台员工 3 代理商") + private String submitType; + /** + * 可提交角色(提交人类型是平台角色的时候存角色) + */ + @Schema(description = "可提交角色(提交人类型是平台角色的时候存角色)") + private String roleId; + /** + * 可提交员工(提交人类型是平台员工的时候存用户id) + */ + @Schema(description = "可提交员工(提交人类型是平台员工的时候存用户id)") + private String empUserId; + /** + * 角色名称 + */ + @Schema(description = "角色名称") + private String roleName; + /** + * 流程模板id + */ + @Schema(description = "流程模板id") + private String procDefId; + /** + * 创建人id + */ + @Schema(description = "创建人id") + private String createBy; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @Schema( + description = "创建时间" + ) + private Date createTime; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.java new file mode 100644 index 0000000..355e67d --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.java @@ -0,0 +1,69 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 流程表单 实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@TableName("crm_process_form") +@Schema(description = "ProcessForm对象") +public class ProcessFormEntity implements Serializable { + + private String id; + + /** + * 表单名称 + */ + @Schema(description = "表单名称") + private String name; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String createBy; + + private Date createTime; + + private Integer isDeleted; + + + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/AddProcessVo.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/AddProcessVo.java new file mode 100644 index 0000000..8ea6869 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/AddProcessVo.java @@ -0,0 +1,22 @@ +package org.springblade.modules.flowable.processForm.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; + +import java.util.List; + +@Data +public class AddProcessVo { + @Schema(description = "流程id") + private String processId; + @Schema(description = "流程基本信息") + private ProcessDefEntity def; + @Schema(description = "流程中的提交步骤") + private ProcessDefSubmitStepEntity submitStep; + @Schema(description = "审核步骤") + private List steps; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefAuditStepVO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefAuditStepVO.java new file mode 100644 index 0000000..1806da2 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefAuditStepVO.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.util.Date; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 视图实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessDefAuditStepVO extends ProcessDefAuditStepEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "任务审批时间") + private Date endTime; + @Schema(description = "审批状态 1.未审批 2.已审批") + private String status; +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefLatestVO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefLatestVO.java new file mode 100644 index 0000000..bc73146 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefLatestVO.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.vo; + + +import lombok.Data; +import java.io.Serial; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 视图实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +public class ProcessDefLatestVO { + @Serial + private static final long serialVersionUID = 1L; + + private String id; + + private String keyValue; + + private String isDeleted; + + private String name; + + private String formId; + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefReq.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefReq.java new file mode 100644 index 0000000..2cd789a --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefReq.java @@ -0,0 +1,25 @@ +package org.springblade.modules.flowable.processForm.pojo.vo; + +import lombok.Data; + +@Data +public class ProcessDefReq { + + + private String id; + + private String name; + + private String formId; + + private String roleName; + + private String oneAuditUseId; + + private String roleId; + + private String submitType; + + private String empUserId; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.java new file mode 100644 index 0000000..4e2ba9e --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.vo; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 流程中的提交步骤(或者称为一个任务)。 视图实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessDefSubmitStepVO extends ProcessDefSubmitStepEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.java new file mode 100644 index 0000000..6b0cccb --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.java @@ -0,0 +1,113 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.vo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotEmpty; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.util.Date; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 视图实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +public class ProcessDefVO { + @Serial + private static final long serialVersionUID = 1L; + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 流程名称 + */ + @Schema(description = "流程名称",requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + /** + * 表单id + */ + @Schema(description = "表单id",requiredMode = Schema.RequiredMode.REQUIRED) + private String formId; + + private String formName; + + /** + * 流程描述 + */ + @Schema(description = "流程描述",requiredMode = Schema.RequiredMode.REQUIRED) + private String description; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String createBy; + /** + * 每个流程都有一个唯一key标识,可以写死。 + */ + @Schema(description = "每个流程都有一个唯一key标识,可以写死。") + private String keyValue; + + @TableLogic + @Schema( + description = "是否已删除 0:启动,1:禁用 2 删除" + ) + private Integer isDeleted; + + @DateTimeFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @JsonFormat( + pattern = "yyyy-MM-dd HH:mm:ss" + ) + @Schema( + description = "创建时间" + ) + private Date createTime; + @Schema( + description = "创建人" + ) + private String createName; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.java b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.java new file mode 100644 index 0000000..f8b509e --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.pojo.vo; + +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 流程表单 视图实体类 + * + * @author lzp + * @since 2024-08-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ProcessFormVO extends ProcessFormEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.java b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.java new file mode 100644 index 0000000..7c43310 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefAuditStepExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 服务类 + * + * @author lzp + * @since 2024-08-02 + */ +public interface IProcessDefAuditStepService extends IService { + /** + * 自定义分页 + * + * @param page + * @param processDefAuditStep + * @return + */ + IPage selectProcessDefAuditStepPage(IPage page, ProcessDefAuditStepVO processDefAuditStep); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportProcessDefAuditStep(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.java b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.java new file mode 100644 index 0000000..b5cf8db --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefLatestEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefLatestVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefLatestExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 服务类 + * + * @author lzp + * @since 2024-08-02 + */ +public interface IProcessDefLatestService extends IService { + /** + * 自定义分页 + * + * @param page + * @param processDefLatest + * @return + */ + IPage selectProcessDefLatestPage(IPage page, ProcessDefLatestVO processDefLatest); + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefService.java b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefService.java new file mode 100644 index 0000000..fa7334b --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefService.java @@ -0,0 +1,81 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.tool.api.R; +import org.springblade.modules.flowable.processForm.pojo.dto.ProcessDefDTO; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.AddProcessVo; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 服务类 + * + * @author lzp + * @since 2024-08-02 + */ +public interface IProcessDefService extends IService { + + + ProcessDefDTO getProcessForm(String id); + + /** + * 自定义分页 + * + * @param page + * @param processDef + * @return + */ + IPage selectProcessDefPage(IPage page, ProcessDefVO processDef); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportProcessDef(Wrapper queryWrapper); + + + R saveProcessDef(AddProcessVo req); + + R updateProcessDef(AddProcessVo req); + + List findFromDefList(); + + boolean changeProcessStatus(String id,String type); + + String findUserProcess(String formId); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.java b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.java new file mode 100644 index 0000000..f449820 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefSubmitStepVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefSubmitStepExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 流程中的提交步骤(或者称为一个任务)。 服务类 + * + * @author lzp + * @since 2024-08-02 + */ +public interface IProcessDefSubmitStepService extends IService { + /** + * 自定义分页 + * + * @param page + * @param processDefSubmitStep + * @return + */ + IPage selectProcessDefSubmitStepPage(IPage page, ProcessDefSubmitStepVO processDefSubmitStep); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportProcessDefSubmitStep(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessFormService.java b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessFormService.java new file mode 100644 index 0000000..eee8b7c --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/IProcessFormService.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessFormVO; +import org.springblade.modules.flowable.processForm.excel.ProcessFormExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 流程表单 服务类 + * + * @author lzp + * @since 2024-08-02 + */ +public interface IProcessFormService extends IService { + /** + * 自定义分页 + * + * @param page + * @param processForm + * @return + */ + IPage selectProcessFormPage(IPage page, ProcessFormVO processForm); + + + /** + * + * + * @return + */ + List findFromDefList(); + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.java b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.java new file mode 100644 index 0000000..6d04e38 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefAuditStepExcel; +import org.springblade.modules.flowable.processForm.mapper.ProcessDefAuditStepMapper; +import org.springblade.modules.flowable.processForm.service.IProcessDefAuditStepService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.List; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 服务实现类 + * + * @author lzp + * @since 2024-08-02 + */ +@Service +public class ProcessDefAuditStepServiceImpl extends ServiceImpl implements IProcessDefAuditStepService { + + @Override + public IPage selectProcessDefAuditStepPage(IPage page, ProcessDefAuditStepVO processDefAuditStep) { + return page.setRecords(baseMapper.selectProcessDefAuditStepPage(page, processDefAuditStep)); + } + + + @Override + public List exportProcessDefAuditStep(Wrapper queryWrapper) { + List processDefAuditStepList = baseMapper.exportProcessDefAuditStep(queryWrapper); + return processDefAuditStepList; + } + + public List findListByDefId(String defId){ + return baseMapper.findListByDefId(defId); + } + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.java b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.java new file mode 100644 index 0000000..1a6d75a --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefLatestEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefLatestVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefLatestExcel; +import org.springblade.modules.flowable.processForm.mapper.ProcessDefLatestMapper; +import org.springblade.modules.flowable.processForm.service.IProcessDefLatestService; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.List; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 服务实现类 + * + * @author lzp + * @since 2024-08-02 + */ +@Service +public class ProcessDefLatestServiceImpl extends ServiceImpl implements IProcessDefLatestService { + + @Override + public IPage selectProcessDefLatestPage(IPage page, ProcessDefLatestVO processDefLatest) { + return page.setRecords(baseMapper.selectProcessDefLatestPage(page, processDefLatest)); + } + + ProcessDefLatestVO findDefLatesByFormId(String formId){ + return baseMapper.findDefLatesByFormId(formId); + } + + ProcessDefLatestEntity findProcessDefLatest(String keyValue){ + return baseMapper.selectOne(Wrappers.query().lambda().eq(ProcessDefLatestEntity::getKeyValue,keyValue)); + } + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefServiceImpl.java b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefServiceImpl.java new file mode 100644 index 0000000..4c8ab03 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefServiceImpl.java @@ -0,0 +1,556 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.common.collect.Maps; +import jodd.util.StringUtil; +import me.zhyd.oauth.model.AuthUser; +import org.apache.commons.lang.StringUtils; +import org.flowable.bpmn.converter.BpmnXMLConverter; +import org.flowable.bpmn.model.*; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.repository.Deployment; +import org.flowable.validation.ProcessValidator; +import org.flowable.validation.ProcessValidatorFactory; +import org.flowable.validation.ValidationError; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.modules.flowable.processForm.pojo.dto.ProcessDefDTO; +import org.springblade.modules.flowable.processForm.pojo.entity.*; +import org.springblade.modules.flowable.processForm.pojo.vo.AddProcessVo; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefLatestVO; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefReq; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefExcel; +import org.springblade.modules.flowable.processForm.mapper.ProcessDefMapper; +import org.springblade.modules.flowable.processForm.service.IProcessDefService; +import org.springblade.modules.flowable.processForm.utils.FormUtils; +import org.springblade.modules.flowable.processForm.utils.GuardUtils; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.order.utils.PlantformUtils; +import org.springblade.modules.system.pojo.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 服务实现类 + * + * @author lzp + * @since 2024-08-02 + */ +@Service +public class ProcessDefServiceImpl extends ServiceImpl implements IProcessDefService { + + @Autowired + private ProcessDefLatestServiceImpl latestService; + + @Autowired + private ProcessDefSubmitStepServiceImpl submitStepService; + + @Autowired + private ProcessDefAuditStepServiceImpl auditStepService; + + @Autowired + private ProcessFormServiceImpl formService; + + @Autowired + RepositoryService repositoryService; + + + + @Override + public ProcessDefDTO getProcessForm(String id) { + + ProcessDefDTO vo = new ProcessDefDTO(); + ProcessDefVO defEntity = baseMapper.getDefById(id); + vo.setDef(defEntity); + ProcessDefSubmitStepEntity submitStep = submitStepService.fingByFromId(defEntity.getId()); + vo.setSubmitStep(submitStep); + List list = auditStepService.findListByDefId(defEntity.getId()); + vo.setSteps(list); + return vo; + } + + @Override + public IPage selectProcessDefPage(IPage page, ProcessDefVO processDef) { + return page.setRecords(baseMapper.selectProcessDefPage(page, processDef)); + } + + + + + @Override + public List exportProcessDef(Wrapper queryWrapper) { + List processDefList = baseMapper.exportProcessDef(queryWrapper); + //processDefList.forEach(processDef -> { + // processDef.setTypeName(DictCache.getValue(DictEnum.YES_NO, ProcessDef.getType())); + //}); + return processDefList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R saveProcessDef(AddProcessVo req) { + ProcessDefEntity def = req.getDef(); + + ProcessDefSubmitStepEntity submitStep = req.getSubmitStep(); + + ProcessDefLatestVO latest = latestService.findDefLatesByFormId(def.getFormId()); + if(latest!=null && !"2".equals(latest.getIsDeleted())){ + return R.fail("该表单流程已存在,请勿重复添加!"); + } + if("1".equals(submitStep.getSubmitType()) && StringUtils.isBlank(submitStep.getRoleId())){ + return R.fail("提交人角色id不能为空!"); + }else if("2".equals(submitStep.getSubmitType()) && StringUtils.isBlank(submitStep.getEmpUserId())){ + return R.fail("提交人的员工不能为空!"); + } + Date date=new Date(); + + BladeUser user = AuthUtil.getUser(); + def.setCreateTime(date); + def.setCreateBy(user.getUserId().toString()); + def.setIsDeleted(0); + def.setCreateName(user.getNickName()); + ProcessDefLatestEntity defLatest; + if(latest!=null){ + def.setKeyValue(latest.getKeyValue()); + defLatest=latestService.findProcessDefLatest(latest.getKeyValue()); + }else{ + def.setKeyValue(PlantformUtils.getSiteNumber()); + defLatest=new ProcessDefLatestEntity(); + defLatest.setCreateTime(date); + defLatest.setCreateBy(user.getUserId().toString()); + defLatest.setKeyValue(def.getKeyValue()); + } + if(!save(def)){ + return R.fail("保存失败!请稍后再试"); + } + defLatest.setProcessDefId(def.getId()); + if(StringUtils.isNotBlank(defLatest.getId())){ + latestService.updateById(defLatest); + }else{ + latestService.save(defLatest); + } + Map map= Maps.newHashMap(); //放每个节点 的名称和id 用于驳回设置中保存返回的节点id + submitStep.setCreateTime(date); + submitStep.setProcDefId(def.getId()); + submitStep.setCreateBy(user.getUserId().toString()); + submitStepService.save(submitStep); + List steps=req.getSteps(); + if(FormUtils.SUPPLY_ORDER_APPLICATION.equals(def.getFormId()) && steps.size()<2){ + return R.fail("订单申请的流程设置必须超过2级节点!"); + } + // try { + int count=1; + for(ProcessDefAuditStepEntity step:steps){ + GuardUtils.notBlank(step.getName(),"第"+ count +"个审批的 节点名称不能为空!"); + GuardUtils.notBlank(step.getAuditType(),"第"+ count +"个审批,审批人角色类型不能为空!"); + GuardUtils.notBlank(step.getAuditMethod(),"第"+ count +"个审批,审批方式不能为空"); + if("1".equals(step.getAuditType())){ + GuardUtils.notBlank(step.getRoleId(),"审批人角色id不能为空!"); + }else if("2".equals(step.getAuditType())){ + GuardUtils.notBlank(step.getEmpUserId(),"审批人的员工不能为空!"); + } + step.setId(IdUtil.randomUUID().replaceAll("-", "")); + step.setProcDefId(def.getId()); + step.setCreateBy(user.getUserId().toString()); + step.setCreateTime(date); + step.setTransDepartment("0"); + step.setStepName(step.getName()); + step.setSort(count); + map.put(step.getItemName(),step); + count++; + String rejectName=step.getRejectStepId(); + if(StringUtils.isNotBlank(rejectName)){ + ProcessDefAuditStepEntity stepq=map.get(rejectName); + if(FormUtils.STEPONE.equals(rejectName)){ + step.setRejectStepId(submitStep.getId()); + step.setRejectStepName(FormUtils.STEPONE); + step.setRejectStepType("0"); + }else if(stepq != null){ + step.setRejectStepId(stepq.getId()); + step.setRejectStepName(stepq.getName()); + step.setRejectStepType("1"); + } + }else{ + throw new ServiceException("未找到驳回节点!"+rejectName); + } + } + /* }catch (Exception e){ + log.error("添加流程解析错误:{}",e); + return R.fail(e.getMessage()); + }*/ + if(!auditStepService.saveBatch(steps)){ + throw new ServiceException("保存失败,请稍后再试!"); + } + saveProcess(def,steps); + + return R.status(true); + } + + @Override + public R updateProcessDef(AddProcessVo req) { + + String processId=req.getProcessId(); + ProcessDefEntity def = req.getDef(); + + ProcessDefSubmitStepEntity submitStep = req.getSubmitStep(); + if("1".equals(submitStep.getSubmitType()) && StringUtils.isBlank(submitStep.getRoleId())){ + return R.fail("提交人角色id不能为空!"); + }else if("2".equals(submitStep.getSubmitType()) && StringUtils.isBlank(submitStep.getEmpUserId())){ + return R.fail("提交人的员工不能为空!"); + } + + //获得该表单之前的流程 + ProcessDefEntity oldDef=this.getById(processId); + Date date=new Date(); + BladeUser user = AuthUtil.getUser(); + def.setCreateTime(date); + def.setCreateBy(user.getUserId().toString()); + def.setIsDeleted(oldDef.getIsDeleted()); + def.setCreateName(user.getNickName()); + def.setKeyValue(oldDef.getKeyValue()); + if(!this.save(def)){ + return R.fail("保存失败!稍后再试"); + } + submitStep.setCreateTime(date); + submitStep.setProcDefId(def.getId()); + submitStep.setCreateBy(user.getUserId().toString()); + submitStepService.save(submitStep); + Map map=new HashMap<>(); //放每个节点 的名称和id 用于驳回设置中保存返回的节点id + List steps=req.getSteps(); + int count=1; + + for(ProcessDefAuditStepEntity step:steps){ + + GuardUtils.notBlank(step.getName(),"第"+ count +"个审批的 节点名称不能为空!"); + GuardUtils.notBlank(step.getAuditType(),"第"+ count +"个审批,审批人角色类型不能为空!"); + GuardUtils.notBlank(step.getAuditMethod(),"第"+ count +"个审批,审批方式不能为空"); + if("1".equals(step.getAuditType())){ + GuardUtils.notBlank(step.getRoleId(),"审批人角色id不能为空!"); + }else if("2".equals(step.getAuditType())){ + GuardUtils.notBlank(step.getEmpUserId(),"审批人的员工不能为空!"); + } + step.setSort(count); + step.setId(IdUtil.randomUUID().replaceAll("-", "")); + step.setProcDefId(def.getId()); + step.setCreateBy(user.getUserId().toString()); + step.setCreateTime(date); + step.setTransDepartment("0"); + step.setStepName(step.getName()); + map.put(step.getItemName(),step); + count++; + String rejectName=step.getRejectStepId(); + if(StringUtil.isNotBlank(rejectName)){ + ProcessDefAuditStepEntity stepq=map.get(rejectName); + if(FormUtils.STEPONE.equals(rejectName)){ + step.setRejectStepId(submitStep.getId()); + step.setRejectStepName(FormUtils.STEPONE); + step.setRejectStepType("0"); + }else if(stepq != null){ + step.setRejectStepId(stepq.getId()); + step.setRejectStepName(stepq.getName()); + step.setRejectStepType("1"); + } + } + } + ProcessDefLatestEntity defLatest=latestService.findProcessDefLatest(oldDef.getKeyValue()); + defLatest.setProcessDefId(def.getId()); + if(!latestService.updateById(defLatest)){ + throw new ServiceException("保存失败,请稍后再试"); + } + + if(!auditStepService.saveBatch(steps)){ + throw new ServiceException("保存失败,请稍后再试"); + } + + saveProcess(def,steps); + return R.status(true); + } + + + @Override + public List findFromDefList() { + return formService.findFromDefList(); + } + + @Override + public boolean changeProcessStatus(String id, String type) { + boolean defEntity = baseMapper.updateStatus(type,id); + return defEntity; + + } + + @Override + public String findUserProcess(String formId) { + BladeUser user = AuthUtil.getUser(); + ProcessDefReq submitRecord = baseMapper.getDefByFormId(formId); + if(submitRecord!=null){ + //(3.服务商 4.平台员工 5.服务商人员 6.工程师) + String submitType=submitRecord.getSubmitType();// 提交人类型 1平台角色 2 平台员工 3 代理商 + if("3".equals(submitType)){ + if("6".equals(user.getDeptId()) ||"5".equals(user.getDeptId())){ + return "200"; + } + }else if("1".equals(submitType)){ + if(user.getRoleId().contains(submitRecord.getRoleId())){ + return "200"; + } + }else if("2".equals(submitType)){ + if(submitRecord.getEmpUserId().contains(user.getUserId().toString()) && "4".equals(user.getDeptId())){ + return "200"; + } + } + } + return "201"; + } + + + public void saveProcess(ProcessDefEntity def,List auditSteps){ + + StartEvent startEvent = new StartEvent(); + startEvent.setId("start_event"); + startEvent.setName("开始事件"); + + EndEvent endEvent = new EndEvent(); + endEvent.setId("end_event"); + endEvent.setName("结束事件"); + + FlowableListener endListener = new FlowableListener(); + endListener.setEvent("end"); + endListener.setImplementationType("delegateExpression"); + endListener.setImplementation("${myListener}"); + + List listeners = new ArrayList<>(); + listeners.add(endListener); + endEvent.setExecutionListeners(listeners); + + + FlowableListener rejectStart=new FlowableListener(); + rejectStart.setEvent("create"); + rejectStart.setImplementationType("delegateExpression"); + rejectStart.setImplementation("${rejectStartListener}"); + List listener2 = new ArrayList<>(); + listener2.add(rejectStart); + + FlowableListener oneTaskCompleteTask=new FlowableListener(); + oneTaskCompleteTask.setEvent("create"); + oneTaskCompleteTask.setImplementationType("delegateExpression"); + oneTaskCompleteTask.setImplementation("${oneTaskCompleteListener}"); + List listener3=new ArrayList<>(); + listener3.add(oneTaskCompleteTask); + + /*FlowableListener oneTaskFinishTask=new FlowableListener(); + oneTaskFinishTask.setEvent("complete"); + oneTaskFinishTask.setImplementationType("delegateExpression"); + oneTaskFinishTask.setImplementation("${oneTaskFinishListener}"); + listener3.add(oneTaskFinishTask);*/ + + EndEvent rejectEvent = new EndEvent(); + rejectEvent.setId("reject_event"); + rejectEvent.setName("拒绝事件"); + + org.flowable.bpmn.model.Process p = new org.flowable.bpmn.model.Process(); + p.setName(def.getName()); + p.setId("Process_"+def.getId()); + + p.addFlowElement(startEvent); + p.addFlowElement(endEvent); + p.addFlowElement(rejectEvent); + + ExclusiveGateway gwser = new ExclusiveGateway(); + gwser.setId("gwser1"); + gwser.setName("gwser1"); + p.addFlowElement(gwser); + + String gwId=""; + String StepId=""; + ExclusiveGateway gw1=null; + /* SequenceFlow flow_gwser_task1=null;*/ + String task1=""; + UserTask task1F= new UserTask(); + for(int i=0;i<=auditSteps.size();i++) { + + if (i == auditSteps.size()) { + + + SequenceFlow flow_gw_end = new SequenceFlow(gwId, endEvent.getId()); + SequenceFlow flow_gw_reject = new SequenceFlow(gwId, StepId);//审核不通过,跳转到设置好的驳回节点 + // SequenceFlow flow_gw_StepId = new SequenceFlow(gwId, StepId);//拒绝到达的节点 + flow_gw_end.setConditionExpression("${approve}"); + flow_gw_reject.setConditionExpression("${!approve}"); + gw1.setOutgoingFlows(Arrays.asList(flow_gw_end, flow_gw_reject)); + p.addFlowElement(flow_gw_end); + p.addFlowElement(flow_gw_reject); + break; + } + + ProcessDefAuditStepEntity co = auditSteps.get(i); + String role_id = co.getRoleId(); + String name = co.getStepName(); + String id = co.getId(); + UserTask task = new UserTask(); + task.setId("customer_Task_"+id); + task.setName(name); + task.setFormKey(def.getFormId()); + //这一级存上一级的抄送id + if(i>0){ + ProcessDefAuditStepEntity coNext = auditSteps.get(i-1); + task.setOwner(coNext.getCcUserId()); + } + task.setCategory(FormUtils.TYPE_ONE); + p.addFlowElement(task); + task.setTaskListeners(listener3); + + ExclusiveGateway gw = new ExclusiveGateway(); + gw.setId("GATEWAY_" + i); + gw.setName("GATEWAY_" + i); + + if("1".equals(co.getAuditMethod())|| "2".equals(co.getAuditMethod()) || "3".equals(co.getAuditMethod()) ){ //会签 . 依次审批 //或签 + MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics=new MultiInstanceLoopCharacteristics(); + if("2".equals(co.getAuditMethod()) || "1".equals(co.getAuditMethod())){ + multiInstanceLoopCharacteristics.setSequential(false); + }else { + multiInstanceLoopCharacteristics.setSequential(true); + } + //设置审批人参数 + multiInstanceLoopCharacteristics.setInputDataItem("assigneeList"+co.getSort()); + multiInstanceLoopCharacteristics.setElementVariable("assignee"); + if("1".equals(co.getAuditMethod())){ + multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfCompletedInstances==1}"); + }else { + multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfCompletedInstances==nrOfInstances || !approve}"); + + } + task.setAssignee("${assignee}"); + + task.setLoopCharacteristics(multiInstanceLoopCharacteristics); + }else if("4".equals(co.getAuditMethod())){ //任意人 + task.setAssignee("${assignee"+co.getSort()+"}"); + } + + if (i == 0) { + task1=task.getId(); + SequenceFlow flow_start_sertask = new SequenceFlow(startEvent.getId(), gwser.getId()); + SequenceFlow flow_gwser_task1 = new SequenceFlow(gwser.getId(), task.getId()); + //直接到最后一个节点 + // CrmProcessDefAuditStep lastStep = auditSteps.get(auditSteps.size()-1); + // SequenceFlow flow_gwser_task4 = new SequenceFlow(gwser.getId(), "customer_Task_"+lastStep.getId()); + // flow_gwser_task1.setConditionExpression("${service}"); + // flow_gwser_task4.setConditionExpression("${!service}"); + // gwser.setOutgoingFlows(Arrays.asList(flow_gwser_task1, flow_gwser_task4)); + + // p.addFlowElement(flow_start_sertask); + /* SequenceFlow flow_start_task1 = new SequenceFlow(gwser.getId(), task.getId());*/ + SequenceFlow flow_task_gw = new SequenceFlow(task.getId(), gw.getId()); + p.addFlowElement(flow_gwser_task1); + p.addFlowElement(flow_task_gw); + // p.addFlowElement(flow_gwser_task4); + p.addFlowElement(flow_start_sertask); + } else { + SequenceFlow flow_gw_task = new SequenceFlow(gwId, task.getId()); + SequenceFlow flow_gw_event = new SequenceFlow(gwId, StepId); + // SequenceFlow flow_gw_StepId = new SequenceFlow(gwId, StepId);//拒绝到达的节点 + + flow_gw_task.setConditionExpression("${approve}"); + // flow_gw_StepId.setConditionExpression("${back}");//驳回到某一节点 + flow_gw_event.setConditionExpression("${!approve}"); + gw1.setOutgoingFlows(Arrays.asList(flow_gw_event,flow_gw_task)); + SequenceFlow flow_task_gw2 = new SequenceFlow(task.getId(), gw.getId()); + + p.addFlowElement(flow_gw_task); + p.addFlowElement(flow_task_gw2); + p.addFlowElement(flow_gw_event); + // p.addFlowElement(flow_gw_StepId); + } + if("0".equals(co.getRejectStepType())){ + /* StepId = startEvent.getId();*/ + + if(StringUtil.isBlank(task1F.getId())){ + task1F.setId("customer_Task_"+co.getRejectStepId()); + task1F.setName("驳回"); + task1F.setFormKey(def.getFormId()); + task1F.setCategory(FormUtils.TYPE_TWO); + task1F.setAssignee("${assigneeUserId}"); + task1F.setTaskListeners(listener2); + p.addFlowElement(task1F); + + + SequenceFlow flow_gw_task = new SequenceFlow(task1F.getId(), task1); + flow_gw_task.setConditionExpression("${approve}"); + p.addFlowElement(flow_gw_task); + } + StepId=task1F.getId(); + }else{ + StepId = "customer_Task_"+co.getRejectStepId(); + } + gwId= gw.getId(); + gw1 = gw; + p.addFlowElement(gw); + System.out.println("StepId: "+StepId); + + } + + BpmnModel bpmnModel = new BpmnModel(); + bpmnModel.addProcess(p); + + ProcessValidatorFactory processValidatorFactory = new ProcessValidatorFactory(); + ProcessValidator defaultProcessValidator = processValidatorFactory.createDefaultProcessValidator(); +//        // 验证失败信息的封装ValidationError + List validate = defaultProcessValidator.validate(bpmnModel); + System.out.println(validate); + /* if (validate.size() > 0) { + throw new RuntimeException("流程有误,请检查后重试"); + }*/ + + BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); + byte[] convertToXML = bpmnXMLConverter.convertToXML(bpmnModel); + String bytes = new String(convertToXML); + System.out.println(bytes); + Deployment deploy = repositoryService.createDeployment() + .name(def.getName()) + .key(def.getId()) + .addString( p.getId()+".bpmn20.xml", bytes) + .deploy(); + + } + + + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefSubmitStepServiceImpl.java b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefSubmitStepServiceImpl.java new file mode 100644 index 0000000..dc4ee84 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessDefSubmitStepServiceImpl.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefSubmitStepVO; +import org.springblade.modules.flowable.processForm.excel.ProcessDefSubmitStepExcel; +import org.springblade.modules.flowable.processForm.mapper.ProcessDefSubmitStepMapper; +import org.springblade.modules.flowable.processForm.service.IProcessDefSubmitStepService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.List; + +/** + * 流程中的提交步骤(或者称为一个任务)。 服务实现类 + * + * @author lzp + * @since 2024-08-02 + */ +@Service +public class ProcessDefSubmitStepServiceImpl extends ServiceImpl implements IProcessDefSubmitStepService { + + @Override + public IPage selectProcessDefSubmitStepPage(IPage page, ProcessDefSubmitStepVO processDefSubmitStep) { + return page.setRecords(baseMapper.selectProcessDefSubmitStepPage(page, processDefSubmitStep)); + } + + + @Override + public List exportProcessDefSubmitStep(Wrapper queryWrapper) { + List processDefSubmitStepList = baseMapper.exportProcessDefSubmitStep(queryWrapper); + //processDefSubmitStepList.forEach(processDefSubmitStep -> { + // processDefSubmitStep.setTypeName(DictCache.getValue(DictEnum.YES_NO, ProcessDefSubmitStep.getType())); + //}); + return processDefSubmitStepList; + } + + + public ProcessDefSubmitStepEntity fingByFromId(String defId){ + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessDefSubmitStepEntity :: getProcDefId,defId); + return getOne(wrapper); + } + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.java b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.java new file mode 100644 index 0000000..92af98d --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.java @@ -0,0 +1,60 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessFormVO; +import org.springblade.modules.flowable.processForm.mapper.ProcessFormMapper; +import org.springblade.modules.flowable.processForm.service.IProcessFormService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 流程表单 服务实现类 + * + * @author lzp + * @since 2024-08-02 + */ +@Service +public class ProcessFormServiceImpl extends ServiceImpl implements IProcessFormService { + + @Override + public IPage selectProcessFormPage(IPage page, ProcessFormVO processForm) { + return page.setRecords(baseMapper.selectProcessFormPage(page, processForm)); + } + + + @Override + public List findFromDefList() { + List processFormList = baseMapper.findFromDefList(); + + return processFormList; + } + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/utils/FormUtils.java b/src/main/java/org/springblade/modules/flowable/processForm/utils/FormUtils.java new file mode 100644 index 0000000..6572ed4 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/utils/FormUtils.java @@ -0,0 +1,43 @@ +package org.springblade.modules.flowable.processForm.utils; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +public class FormUtils { + + public static final String STEPONE="提交节点"; + + private static Logger logger = LoggerFactory.getLogger(FormUtils.class); + + public static final String AGENT_ADMISSION_APPLICATION= "01"; //运维商准入申请 + + public static final String SUPPLY_ORDER_APPLICATION = "08"; //订单申请 + + /** + * 所有的变更审核 要走待办事项审批流程,默认审批人为原审核人员。 + * 以设计审核为例,查询电站最近一次的设计审核/设计变更审核人,然后本次设计变更审核人设置为查询结果。 + * + * 设计变更审核 查询的是设计审核/设计变更审核人; + * 客户信息变更审核 查询的是档案审核/客户信息变更审核人; + * 勘测信息变更审核 查询的是设计审核/勘测信息变更审核人; + * 完工信息变更审核 查询的是安装验收/完工信息变更审核人; + * 物料信息变更审核 查询的是安装验收/物料信息变更审核人。 + */ + public static final String ENTRY_CHANGE_KCBG="95"; //勘测变更 + public static final String ENTRY_CHANGE_WGBG="96"; //完工变更 + public static final String ENTRY_CHANGE_SJBG="97"; //设计变更 + public static final String ENTRY_CHANGE_KHXXBG="98"; //客户信息变更 + public static final String ENTRY_CHANGE_WLXXBG="99"; //物料变更 + public static final String ENTRY_CHANGE_BWXXBG="100"; //并网信息变更 + + + + public static final String TYPE_ONE = "1"; //审批 + public static final String TYPE_TWO = "2"; //驳回 + public static final String TYPE_THREE = "3"; //抄送 + public static final String TYPE_FOUR = "4"; //转发 + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/utils/GuardUtils.java b/src/main/java/org/springblade/modules/flowable/processForm/utils/GuardUtils.java new file mode 100644 index 0000000..bdb396b --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/utils/GuardUtils.java @@ -0,0 +1,49 @@ +package org.springblade.modules.flowable.processForm.utils; + +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.log.exception.ServiceException; + +public class GuardUtils { + + public static void notBlank(String val, String msg) { + if (StringUtils.isBlank(val)) { + throw new ServiceException(msg); + } + } + + public static void notNull(Object val, String msg) { + if (val == null) { + throw new ServiceException(msg); + } + } + + public static void in(String[] validValues, String val, String msg) { + for (String v : validValues) { + if (val.equals(v)) { + return; + } + } + + throw new ServiceException(msg); + } + + public static void in(int[] validValues, int val, String msg) { + for (int v : validValues) { + if (val == v) { + return; + } + } + + throw new ServiceException(msg); + } + + public static void in(long[] validValues, long val, String msg) { + for (long v : validValues) { + if (val == v) { + return; + } + } + + throw new ServiceException(msg); + } +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefAuditStepWrapper.java b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefAuditStepWrapper.java new file mode 100644 index 0000000..e8e4107 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefAuditStepWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefAuditStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefAuditStepVO; +import java.util.Objects; + +/** + * 流程中的一个审核步骤(或者称为一个任务)。 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-02 + */ +public class ProcessDefAuditStepWrapper extends BaseEntityWrapper { + + public static ProcessDefAuditStepWrapper build() { + return new ProcessDefAuditStepWrapper(); + } + + @Override + public ProcessDefAuditStepVO entityVO(ProcessDefAuditStepEntity processDefAuditStep) { + ProcessDefAuditStepVO processDefAuditStepVO = Objects.requireNonNull(BeanUtil.copyProperties(processDefAuditStep, ProcessDefAuditStepVO.class)); + + //User createUser = UserCache.getUser(processDefAuditStep.getCreateUser()); + //User updateUser = UserCache.getUser(processDefAuditStep.getUpdateUser()); + //processDefAuditStepVO.setCreateUserName(createUser.getName()); + //processDefAuditStepVO.setUpdateUserName(updateUser.getName()); + + return processDefAuditStepVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefLatestWrapper.java b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefLatestWrapper.java new file mode 100644 index 0000000..2e92db1 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefLatestWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefLatestEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefLatestVO; +import java.util.Objects; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-02 + */ +public class ProcessDefLatestWrapper extends BaseEntityWrapper { + + public static ProcessDefLatestWrapper build() { + return new ProcessDefLatestWrapper(); + } + + @Override + public ProcessDefLatestVO entityVO(ProcessDefLatestEntity processDefLatest) { + ProcessDefLatestVO processDefLatestVO = Objects.requireNonNull(BeanUtil.copyProperties(processDefLatest, ProcessDefLatestVO.class)); + + //User createUser = UserCache.getUser(processDefLatest.getCreateUser()); + //User updateUser = UserCache.getUser(processDefLatest.getUpdateUser()); + //processDefLatestVO.setCreateUserName(createUser.getName()); + //processDefLatestVO.setUpdateUserName(updateUser.getName()); + + return processDefLatestVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefSubmitStepWrapper.java b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefSubmitStepWrapper.java new file mode 100644 index 0000000..16b8309 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefSubmitStepWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefSubmitStepEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefSubmitStepVO; +import java.util.Objects; + +/** + * 流程中的提交步骤(或者称为一个任务)。 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-02 + */ +public class ProcessDefSubmitStepWrapper extends BaseEntityWrapper { + + public static ProcessDefSubmitStepWrapper build() { + return new ProcessDefSubmitStepWrapper(); + } + + @Override + public ProcessDefSubmitStepVO entityVO(ProcessDefSubmitStepEntity processDefSubmitStep) { + ProcessDefSubmitStepVO processDefSubmitStepVO = Objects.requireNonNull(BeanUtil.copyProperties(processDefSubmitStep, ProcessDefSubmitStepVO.class)); + + //User createUser = UserCache.getUser(processDefSubmitStep.getCreateUser()); + //User updateUser = UserCache.getUser(processDefSubmitStep.getUpdateUser()); + //processDefSubmitStepVO.setCreateUserName(createUser.getName()); + //processDefSubmitStepVO.setUpdateUserName(updateUser.getName()); + + return processDefSubmitStepVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.java b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.java new file mode 100644 index 0000000..2203002 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessDefEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessDefVO; +import java.util.Objects; + +/** + * 流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-02 + */ +public class ProcessDefWrapper extends BaseEntityWrapper { + + public static ProcessDefWrapper build() { + return new ProcessDefWrapper(); + } + + @Override + public ProcessDefVO entityVO(ProcessDefEntity processDef) { + ProcessDefVO processDefVO = Objects.requireNonNull(BeanUtil.copyProperties(processDef, ProcessDefVO.class)); + + //User createUser = UserCache.getUser(processDef.getCreateUser()); + //User updateUser = UserCache.getUser(processDef.getUpdateUser()); + //processDefVO.setCreateUserName(createUser.getName()); + //processDefVO.setUpdateUserName(updateUser.getName()); + + return processDefVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessFormWrapper.java b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessFormWrapper.java new file mode 100644 index 0000000..9ff5ad8 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/processForm/wrapper/ProcessFormWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.flowable.processForm.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.flowable.processForm.pojo.entity.ProcessFormEntity; +import org.springblade.modules.flowable.processForm.pojo.vo.ProcessFormVO; +import java.util.Objects; + +/** + * 流程表单 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-08-02 + */ +public class ProcessFormWrapper extends BaseEntityWrapper { + + public static ProcessFormWrapper build() { + return new ProcessFormWrapper(); + } + + @Override + public ProcessFormVO entityVO(ProcessFormEntity processForm) { + ProcessFormVO processFormVO = Objects.requireNonNull(BeanUtil.copyProperties(processForm, ProcessFormVO.class)); + + //User createUser = UserCache.getUser(processForm.getCreateUser()); + //User updateUser = UserCache.getUser(processForm.getUpdateUser()); + //processFormVO.setCreateUserName(createUser.getName()); + //processFormVO.setUpdateUserName(updateUser.getName()); + + return processFormVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/flowable/tasks/MyListener.java b/src/main/java/org/springblade/modules/flowable/tasks/MyListener.java new file mode 100644 index 0000000..85ea8d2 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/tasks/MyListener.java @@ -0,0 +1,31 @@ +package org.springblade.modules.flowable.tasks; + +import org.flowable.engine.delegate.DelegateExecution; +import org.flowable.engine.delegate.ExecutionListener; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.flow.engine.service.impl.ApplicationDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component("myListener") +public class MyListener implements ExecutionListener { + + private static Logger logger = LoggerFactory.getLogger(MyListener.class); + + + @Autowired + private ApplicationDetailService detailService; + + + @Override + public void notify(DelegateExecution execution) { + logger.info("notify exec of task start"); + String processInstanceId=execution.getProcessInstanceId(); + logger.info(" >>>>>> 审批完成的流程Id processInstanceId : {}"+processInstanceId); + execution.setVariable("execVar", "hello"); + logger.info(" >>>>>>>> execution: {}: " +execution.getVariable("applicationId")); + //审批完成后 申请的修改 + detailService.endProcess(processInstanceId); + } +} diff --git a/src/main/java/org/springblade/modules/flowable/tasks/OneTaskCompleteListener.java b/src/main/java/org/springblade/modules/flowable/tasks/OneTaskCompleteListener.java new file mode 100644 index 0000000..38e8bc3 --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/tasks/OneTaskCompleteListener.java @@ -0,0 +1,83 @@ +package org.springblade.modules.flowable.tasks; + +import org.flowable.engine.RuntimeService; +import org.flowable.engine.TaskService; +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.api.Task; +import org.flowable.task.service.delegate.DelegateTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.flow.engine.service.impl.ApplicationDetailService; +import org.springblade.modules.flowable.processForm.utils.FormUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +//创建任务的时候 +@Component("oneTaskCompleteListener") +public class OneTaskCompleteListener implements TaskListener { + private static Logger logger = LoggerFactory.getLogger(OneTaskCompleteListener.class); + + @Autowired + public TaskService taskService; + + @Autowired + private RuntimeService runtimeService; + + @Autowired + private ApplicationDetailService detailService; + + @Autowired + BladeRedis bladeRedis; + + @Override + public void notify(DelegateTask delegateTask) { + logger.info("notify exec of oneTaskCompleteListener"); + String processInstanceId=delegateTask.getProcessInstanceId(); + logger.info(">>>创建任务的时候 oneTaskCompleteListener:{}",processInstanceId); + String name=delegateTask.getName(); + String formId=delegateTask.getFormKey(); + String ccUserId=delegateTask.getOwner(); + String assignee=delegateTask.getAssignee(); + logger.info(">>>>>>>>>>>>processInstanceId:{},name:{},formId:{},{}",processInstanceId,name,formId,delegateTask.getId()); + String applicationId = (String)runtimeService.getVariable(processInstanceId, "applicationId"); + String userId=assignee; + if(StringUtil.isNotBlank(ccUserId)){ + userId+=","+ccUserId; + } + logger.info(">>>>>>>>>>>>>>>>>userId :{}",userId); + detailService.createTaskChangeTaskName(applicationId,formId,name,userId,processInstanceId); + logger.info(">>>>>>>>>>>>ccuserId:{}",ccUserId); + //判断上一级任务,有没有抄送任务 + if(StringUtil.isNotBlank(ccUserId)){ + String ifCC =bladeRedis.get(processInstanceId+"_"+name); + if(!"1".equals(ifCC)){ + logger.info(">>>>>>>>>>>>>>>>OneTaskCompleteListener ccUserId:{}",ccUserId); + String[] userids = ccUserId.split(","); + for(String id:userids){ + logger.info("----oneTaskCompleteListener 抄送id:{}",id); + Task ta = taskService.newTask(); + ta.setName("抄送"); + ta.setCategory(FormUtils.TYPE_THREE); + ta.setAssignee(id); + ta.setFormKey(formId); + ta.setParentTaskId(processInstanceId); + ta.setTenantId(applicationId); + logger.info("除了提交时抄送的parentTaskId:"+delegateTask.getId()); + taskService.saveTask(ta); + Map mapc=new HashMap<>(); + mapc.put("applicationId",applicationId); + /* mapc.put("formId",formId); + mapc.put("processInstanceId",processInstanceId);*/ + taskService.setVariables(ta.getId(),mapc); + bladeRedis.setEx(processInstanceId+"_"+name,"1",60L); + } + } + + } + } +} diff --git a/src/main/java/org/springblade/modules/flowable/tasks/RejectStartListener.java b/src/main/java/org/springblade/modules/flowable/tasks/RejectStartListener.java new file mode 100644 index 0000000..327d0fc --- /dev/null +++ b/src/main/java/org/springblade/modules/flowable/tasks/RejectStartListener.java @@ -0,0 +1,28 @@ +package org.springblade.modules.flowable.tasks; + + + +import org.flowable.engine.delegate.TaskListener; +import org.flowable.task.service.delegate.DelegateTask; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.flow.engine.service.impl.ApplicationDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component("rejectStartListener") +public class RejectStartListener implements TaskListener { + + private static Logger logger = LoggerFactory.getLogger(RejectStartListener.class); + + @Autowired + private ApplicationDetailService detailService; + + @Override + public void notify(DelegateTask execution) { + logger.info("notify exec of RejectStartListener"); + String processInstanceId=execution.getProcessInstanceId(); + logger.info(" >>>>>> 审批驳回到提交节点的流程Id processInstanceId : {}"+processInstanceId); + detailService.editApplyStatus(processInstanceId); + } +} diff --git a/src/main/java/org/springblade/modules/material/controller/MaterialController.java b/src/main/java/org/springblade/modules/material/controller/MaterialController.java new file mode 100644 index 0000000..5035f5b --- /dev/null +++ b/src/main/java/org/springblade/modules/material/controller/MaterialController.java @@ -0,0 +1,316 @@ +package org.springblade.modules.material.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.fitting.constant.FittingConstant; +import org.springblade.modules.flowable.processForm.utils.GuardUtils; +import org.springblade.modules.material.excel.MaterialImporter; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.EmpGetFittingOutVo; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.pojo.vo.MaterialVO; +import org.springblade.modules.material.service.IMaterialOutboundService; +import org.springblade.modules.material.service.IMaterialService; +import org.springblade.modules.material.wrapper.MaterialWrapper; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import org.springblade.modules.nh.excel.InefficientSettingImporter; +import org.springblade.modules.nh.excel.MaterialExcel; +import org.springblade.modules.order.pojo.vo.SelectVo; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 物料库存 控制器 + * + * @author cswang + * @since 2024-08-25 + */ +@RestController +@AllArgsConstructor +@RequestMapping("wl/material") +@Tag(name = "物料库存", description = "物料库存接口") +public class MaterialController extends BladeController { + + private final IMaterialService materialService; + + private final IMaterialOutboundService outboundService; + /** + * 物料库存 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入material") + public R detail(MaterialEntity material) { + MaterialEntity detail = materialService.getOne(Condition.getQueryWrapper(material)); + return R.data(MaterialWrapper.build().entityVO(detail)); + } + /** + * 物料库存 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入material") + public R> list(@Parameter(hidden = true) @RequestParam Map material, Query query) { + query.setDescs("status"); + + IPage pages = materialService.page(Condition.getPage(query), Condition.getQueryWrapper(material, MaterialEntity.class)); + return R.data(MaterialWrapper.build().pageVO(pages)); + } + + /** + * 物料库存 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入material") + public R> page(MaterialVO material, Query query) { + IPage pages = materialService.selectMaterialPage(Condition.getPage(query), material); + return R.data(pages); + } + + /** + * 物料库存 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入material") + public R save(@Valid @RequestBody MaterialEntity material) { + GuardUtils.notBlank(material.getCode(), "物料编码不能为空"); + GuardUtils.notBlank(material.getName(), "物料名称不能为空"); + GuardUtils.notBlank(material.getType(), "物料类型不能为空"); + GuardUtils.notBlank(material.getModel(), "物料型号不能为空"); + GuardUtils.notBlank(material.getPower(), "物料规格不能为空"); + GuardUtils.notBlank(material.getBrand(), "物料品牌不能为空"); + GuardUtils.notNull(material.getStock(),"库存不能为空"); + MaterialEntity entity = materialService.getByMaterialCode(material.getCode()); + if(entity!= null){ + throw new ServiceException("物料编码已存在"); + } + material.setCompanyId(-1L); + if(material.getRetailPrice()== null){ + material.setRetailPrice(0.0); + } + BladeUser user = AuthUtil.getUser(); + boolean check =materialService.save(material); + if(material.getStock()>0){ + //添加入库明细 + outboundService.saveMateInkeep(material,"1",user, FittingConstant.KEEP_FORM_IN); + + } + return R.status(check); + } + + /** + * 物料库存 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入material") + public R update(@Valid @RequestBody MaterialEntity material) { + + GuardUtils.notBlank(material.getName(), "物料名称不能为空"); + GuardUtils.notBlank(material.getType(), "物料类型不能为空"); + GuardUtils.notBlank(material.getModel(), "物料型号不能为空"); + GuardUtils.notBlank(material.getPower(), "物料规格不能为空"); + GuardUtils.notBlank(material.getBrand(), "物料品牌不能为空"); + return R.status(materialService.updateById(material)); + } + + /** + * 物料库存 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入material") + public R submit(@Valid @RequestBody MaterialEntity material) { + if(material.getId()!=null){ + material.setStock(null); + }else{ + GuardUtils.notBlank(material.getCode(), "物料编码不能为空"); + GuardUtils.notNull(material.getStock(),"库存不能为空"); + MaterialEntity entity = materialService.getByMaterialCode(material.getCode()); + if(entity!= null){ + throw new ServiceException("物料编码已存在"); + } + + if(material.getRetailPrice()== null){ + material.setRetailPrice(0.0); + } + } + GuardUtils.notBlank(material.getName(), "物料名称不能为空"); + GuardUtils.notBlank(material.getType(), "物料类型不能为空"); + GuardUtils.notBlank(material.getModel(), "物料型号不能为空"); + GuardUtils.notBlank(material.getPower(), "物料规格不能为空"); + GuardUtils.notBlank(material.getBrand(), "物料品牌不能为空"); + material.setCompanyId(-1L); + + BladeUser user = AuthUtil.getUser(); + boolean check =materialService.saveOrUpdate(material); + + if(material.getStock() != null&& material.getStock()>0){ + //添加入库明细 + outboundService.saveMateInkeep(material,"1",user, FittingConstant.KEEP_FORM_IN); + } + + return R.status(check); + //return R.status(materialService.saveOrUpdate(material)); + } + + /** + * 物料库存 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(MaterialEntity::getId,Func.toLongList(ids)) + .eq(MaterialEntity::getStatus,"0") + .set(MaterialEntity::getIsDeleted,1); + return R.status(materialService.update(updateWrapper)); + } + + /** + * 设置物料状态 + */ + @PostMapping("/setStatus") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R setStatus(@Parameter(name = "主键集合", required = true) @RequestParam String ids, + @Parameter(required = true) @RequestParam String status) { + List idList = Func.toLongList(ids); + if("0".equals(status)){ + for(Long id:idList){ + MaterialEntity entity =materialService.getById(id); + if(entity.getStock()>0){ + return R.fail("该物料存在库存,不可禁用"); + } + } + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(MaterialEntity::getId,idList) + .set(MaterialEntity::getStatus,status); + return R.status(materialService.update(updateWrapper)); + } + + @PostMapping("/setStock") + @ApiOperationSupport(order = 7) + @Operation(summary = "调整库存", description = "") + public R setStock(@Parameter(name = "主键集合", required = true) @RequestParam Long id, + @Parameter(required = true) @RequestParam Integer newStock, + @Parameter(required = true) @RequestParam String reason) { + MaterialEntity entity = materialService.getById(id); + + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(MaterialEntity::getId,id) + .set(MaterialEntity::getStock,newStock); + materialService.update(updateWrapper); + + MaterialOutboundEntity outbound = new MaterialOutboundEntity(); + BeanUtil.copyProperties(entity,outbound); + outbound.setMaterialId(id); + outbound.setId(null); + outbound.setOutType("3"); + outbound.setKeepType("3"); + outbound.setCompanyId("-1"); + if(newStock > entity.getStock()){ + outbound.setOutDirect("1"); + outbound.setKeepFrom("1"); + }else{ + outbound.setOutDirect("2"); + outbound.setKeepFrom("2"); + } + int count = Math.abs(newStock-entity.getStock()); + outbound.setOutCount(count); + outbound.setOutAmount(count*entity.getRetailPrice()); + outbound.setRemarks(reason); + outboundService.save(outbound); + + return R.success("设置成功"); + } + + /** + * 导出数据 + */ + @GetMapping("/export-material") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入material") + public void exportMaterial(@Parameter(hidden = true) @RequestParam Map material, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(material, MaterialEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(Material::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(MaterialEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialService.exportMaterial(queryWrapper); + ExcelUtil.export(response, "物料库存数据" + DateUtil.time(), "物料库存数据表", list, MaterialExcel.class); + } + + + /** + * 导入 + */ + @PostMapping("import-material") + @ApiOperationSupport(order = 12) + @Operation(summary = "导入用户", description = "传入excel") + public R importUser(MultipartFile file) { + MaterialImporter importer = new MaterialImporter(materialService,false); + ExcelUtil.save(file, importer, MaterialExcel.class); + return R.success("操作成功"); + } + + /** + * 导出模板 + */ + @GetMapping("export-template") + @ApiOperationSupport(order = 14) + @Operation(summary = "导出模板") + public void exportUser(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "物料数据模板", "物料数据表", list, MaterialExcel.class); + } + + //工程师领取出库 + @PostMapping(value = "empGetFittingOut") + @ApiOperationSupport(order = 15) + @Operation(summary = "工程师领取出库") + public R empGetFittingOut(@Valid @RequestBody EmpGetFittingOutVo empGetFittingOutVo){ + return R.status(materialService.empGetFittingOut(empGetFittingOutVo)); + } + + //根据工单编码模糊查询出工单 + @GetMapping(value = "getOrderListByNumber") + @ApiOperationSupport(order = 16) + @Operation(summary = "根据工单编码模糊查询出工单") + public R> getOrderListByNumber(String number){ + List list=materialService.getOrderListByNumber(number); + return R.data(list); + } +} diff --git a/src/main/java/org/springblade/modules/material/controller/MaterialEngineerController.java b/src/main/java/org/springblade/modules/material/controller/MaterialEngineerController.java new file mode 100644 index 0000000..ee30aa4 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/controller/MaterialEngineerController.java @@ -0,0 +1,209 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.EmpStockConditionVo; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerVO; +import org.springblade.modules.material.excel.MaterialEngineerExcel; +import org.springblade.modules.material.wrapper.MaterialEngineerWrapper; +import org.springblade.modules.material.service.IMaterialEngineerService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; + +import java.util.HashMap; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工程师库存 控制器 + * + * @author cswang + * @since 2024-08-25 + */ +@RestController +@AllArgsConstructor +@RequestMapping("wl/materialEngineer") +@Tag(name = "工程师库存", description = "工程师库存接口") +public class MaterialEngineerController extends BladeController { + + private final IMaterialEngineerService materialEngineerService; + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + /** + * 工程师库存 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入materialEngineer") + public R detail(MaterialEngineerEntity materialEngineer) { + MaterialEngineerEntity detail = materialEngineerService.getOne(Condition.getQueryWrapper(materialEngineer)); + return R.data(MaterialEngineerWrapper.build().entityVO(detail)); + } + /** + * 工程师库存 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入materialEngineer") + public R> list(@Parameter(hidden = true) @RequestParam Map materialEngineer, Query query) { + BladeUser user = AuthUtil.getUser(); + //3.服务商 4.平台员工 5.服务商人员 + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialEngineer, MaterialEngineerEntity.class); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialEngineerEntity :: getOperationId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + return R.data(null); + } + queryWrapper.lambda().eq(MaterialEngineerEntity :: getOperationId,authVo.getSiteId()); + } + + + IPage pages = materialEngineerService.page(Condition.getPage(query), queryWrapper); + return R.data(MaterialEngineerWrapper.build().pageVO(pages)); + } + + /** + * 工程师库存 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入materialEngineer") + public R> page(MaterialEngineerVO materialEngineer, Query query) { + IPage pages = materialEngineerService.selectMaterialEngineerPage(Condition.getPage(query), materialEngineer); + return R.data(pages); + } + + /** + * 工程师库存 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入materialEngineer") + public R save(@Valid @RequestBody MaterialEngineerEntity materialEngineer) { + return R.status(materialEngineerService.save(materialEngineer)); + } + + /** + * 工程师库存 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入materialEngineer") + public R update(@Valid @RequestBody MaterialEngineerEntity materialEngineer) { + return R.status(materialEngineerService.updateById(materialEngineer)); + } + + /** + * 工程师库存 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入materialEngineer") + public R submit(@Valid @RequestBody MaterialEngineerEntity materialEngineer) { + return R.status(materialEngineerService.saveOrUpdate(materialEngineer)); + } + + /** + * 工程师库存 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(materialEngineerService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-materialEngineer") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入materialEngineer") + public void exportMaterialEngineer(@Parameter(hidden = true) @RequestParam Map materialEngineer, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialEngineer, MaterialEngineerEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(MaterialEngineer::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(MaterialEngineerEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialEngineerService.exportMaterialEngineer(queryWrapper); + ExcelUtil.export(response, "工程师库存数据" + DateUtil.time(), "工程师库存数据表", list, MaterialEngineerExcel.class); + } + + + /** + * 工程师库存 + */ + @GetMapping("/engineerStockList") + @ApiOperationSupport(order = 3) + @Operation(summary = "工程师库存--可用物料") + public R engineerStockList(@RequestParam Map params, Query query) { + Map resultMap=new HashMap<>(); + List list=materialEngineerService.engineerStockList(Condition.getPage(query),params); + resultMap.put("records",list); + if(params.get("current")!=null){ //为了pc这边分页用的 + Long count=materialEngineerService.countEngineerStockList(params); + resultMap.put("total",count); + } + return R.data(resultMap); + } + +} diff --git a/src/main/java/org/springblade/modules/material/controller/MaterialEngineerOutboundController.java b/src/main/java/org/springblade/modules/material/controller/MaterialEngineerOutboundController.java new file mode 100644 index 0000000..cc72ef3 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/controller/MaterialEngineerOutboundController.java @@ -0,0 +1,208 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.material.excel.MaterialOutboundExcel; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.service.IMaterialOutboundService; +import org.springblade.modules.material.wrapper.MaterialOutboundWrapper; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.system.service.IUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerOutboundVO; +import org.springblade.modules.material.excel.MaterialEngineerOutboundExcel; +import org.springblade.modules.material.wrapper.MaterialEngineerOutboundWrapper; +import org.springblade.modules.material.service.IMaterialEngineerOutboundService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工程师库存明细 控制器 + * + * @author AlexWang + * @since 2024-09-04 + */ +@RestController +@AllArgsConstructor +@RequestMapping("wl/materialEngineerOutbound") +@Tag(name = "工程师库存明细", description = "工程师库存明细接口") +public class MaterialEngineerOutboundController extends BladeController { + + private final IMaterialEngineerOutboundService materialEngineerOutboundService; + private final IUserService userService; + + private final IMaterialOutboundService materialOutboundService; + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + /** + * 工程师库存明细 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入materialEngineerOutbound") + public R detail(MaterialEngineerOutboundEntity materialEngineerOutbound) { + MaterialEngineerOutboundEntity detail = materialEngineerOutboundService.getOne(Condition.getQueryWrapper(materialEngineerOutbound)); + return R.data(MaterialEngineerOutboundWrapper.build().entityVO(detail)); + } + /** + * 工程师库存明细 分页 + */ +/* + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入materialEngineerOutbound") + public R> list(@Parameter(hidden = true) @RequestParam Map materialEngineerOutbound, Query query) { + BladeUser user = AuthUtil.getUser(); + query.setDescs("id"); + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialEngineerOutbound, MaterialOutboundEntity.class); + queryWrapper.lambda().eq(MaterialOutboundEntity :: getKeepType,"1"); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialOutboundEntity:: getCompanyId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + return R.data(null); + } + queryWrapper.lambda().eq(MaterialOutboundEntity :: getCompanyId,authVo.getSiteId()); + } + + IPage pages = materialOutboundService.page(Condition.getPage(query),queryWrapper); + IPage pageVO = MaterialOutboundWrapper.build().pageVO(pages); + for(MaterialOutboundVO vo : pageVO.getRecords()){ + vo.setCreateName(userService.getById(vo.getCreateUser()).getName()); + if(vo.getAllowUser()!=null){ + vo.setAllowName(userService.getById(vo.getAllowUser()).getName()); + } + } + return R.data(pageVO); + } +*/ + + /** + * 工程师库存明细 自定义分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入materialEngineerOutbound") + public R> page(MaterialOutboundVO materialEngineerOutbound, Query query) { + BladeUser user = AuthUtil.getUser(); + + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + materialEngineerOutbound.setCompanyId(site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + return R.data(null); + } + materialEngineerOutbound.setCompanyId(authVo.getSiteId()); + } + + IPage pages = materialEngineerOutboundService.findMaterialOutbound(Condition.getPage(query), materialEngineerOutbound); + return R.data(pages); + } + + + + /** + * 导出数据 + */ + @GetMapping("/export-materialEngineerOutbound") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入materialEngineerOutbound") + public void exportMaterialEngineerOutbound(@Parameter(hidden = true) @RequestParam Map materialEngineerOutbound, BladeUser bladeUser, HttpServletResponse response) { + BladeUser user = AuthUtil.getUser(); + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialEngineerOutbound, MaterialOutboundEntity.class); + queryWrapper.lambda().eq(MaterialOutboundEntity :: getKeepType,"1"); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialOutboundEntity:: getCompanyId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + authVo = new EmpAuthVo(); + } + queryWrapper.lambda().eq(MaterialOutboundEntity :: getCompanyId,authVo.getSiteId()); + } + queryWrapper.lambda().eq(MaterialOutboundEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialEngineerOutboundService.exportMaterialEngineerOutbound(queryWrapper); + ExcelUtil.export(response, "工程师库存明细数据" + DateUtil.time(), "工程师库存明细数据表", list, MaterialEngineerOutboundExcel.class); + } + + + /*QueryWrapper queryWrapper = Condition.getQueryWrapper(materialEngineerOutbound, MaterialOutboundEntity.class); + queryWrapper.lambda().eq(MaterialOutboundEntity :: getKeepType,"1"); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialOutboundEntity:: getCompanyId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + authVo = new EmpAuthVo(); + } + queryWrapper.lambda().eq(MaterialOutboundEntity :: getCompanyId,authVo.getSiteId()); + } + queryWrapper.lambda().eq(MaterialOutboundEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialOutboundService.exportMaterialOutbound(queryWrapper);*/ + + +} diff --git a/src/main/java/org/springblade/modules/material/controller/MaterialOperationController.java b/src/main/java/org/springblade/modules/material/controller/MaterialOperationController.java new file mode 100644 index 0000000..fed9f18 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/controller/MaterialOperationController.java @@ -0,0 +1,187 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationVO; +import org.springblade.modules.material.excel.MaterialOperationExcel; +import org.springblade.modules.material.wrapper.MaterialOperationWrapper; +import org.springblade.modules.material.service.IMaterialOperationService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 运维商库存 控制器 + * + * @author cswang + * @since 2024-08-25 + */ +@RestController +@AllArgsConstructor +@RequestMapping("wl/materialOperation") +@Tag(name = "运维商库存", description = "运维商库存接口") +public class MaterialOperationController extends BladeController { + + private final IMaterialOperationService materialOperationService; + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + /** + * 运维商库存 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入materialOperation") + public R detail(MaterialOperationEntity materialOperation) { + MaterialOperationEntity detail = materialOperationService.getOne(Condition.getQueryWrapper(materialOperation)); + return R.data(MaterialOperationWrapper.build().entityVO(detail)); + } + /** + * 运维商库存 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入materialOperation") + public R> list(@Parameter(hidden = true) @RequestParam Map materialOperation, Query query) { + + BladeUser user = AuthUtil.getUser(); + //3.服务商 4.平台员工 5.服务商人员 + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialOperation, MaterialOperationEntity.class); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialOperationEntity :: getOperationId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + return R.data(null); + } + queryWrapper.lambda().eq(MaterialOperationEntity :: getOperationId,authVo.getSiteId()); + } + IPage pages = materialOperationService.page(Condition.getPage(query), queryWrapper); + return R.data(MaterialOperationWrapper.build().pageVO(pages)); + } + + /** + * 运维商库存 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入materialOperation") + public R> page(MaterialOperationVO materialOperation, Query query) { + IPage pages = materialOperationService.selectMaterialOperationPage(Condition.getPage(query), materialOperation); + return R.data(pages); + } + + /** + * 运维商库存 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入materialOperation") + public R save(@Valid @RequestBody MaterialOperationEntity materialOperation) { + return R.status(materialOperationService.save(materialOperation)); + } + + /** + * 运维商库存 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入materialOperation") + public R update(@Valid @RequestBody MaterialOperationEntity materialOperation) { + return R.status(materialOperationService.updateById(materialOperation)); + } + + /** + * 运维商库存 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入materialOperation") + public R submit(@Valid @RequestBody MaterialOperationEntity materialOperation) { + return R.status(materialOperationService.saveOrUpdate(materialOperation)); + } + + /** + * 运维商库存 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(materialOperationService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-materialOperation") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入materialOperation") + public void exportMaterialOperation(@Parameter(hidden = true) @RequestParam Map materialOperation, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialOperation, MaterialOperationEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(MaterialOperation::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(MaterialOperationEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialOperationService.exportMaterialOperation(queryWrapper); + ExcelUtil.export(response, "运维商库存数据" + DateUtil.time(), "运维商库存数据表", list, MaterialOperationExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/material/controller/MaterialOperationOutboundController.java b/src/main/java/org/springblade/modules/material/controller/MaterialOperationOutboundController.java new file mode 100644 index 0000000..1ac32c2 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/controller/MaterialOperationOutboundController.java @@ -0,0 +1,222 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.material.excel.MaterialOutboundExcel; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerOutboundVO; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.service.IMaterialOutboundService; +import org.springblade.modules.material.wrapper.MaterialEngineerOutboundWrapper; +import org.springblade.modules.material.wrapper.MaterialOutboundWrapper; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.system.service.IUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationOutboundVO; +import org.springblade.modules.material.excel.MaterialOperationOutboundExcel; +import org.springblade.modules.material.wrapper.MaterialOperationOutboundWrapper; +import org.springblade.modules.material.service.IMaterialOperationOutboundService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 运维商库存明细 控制器 + * + * @author AlexWang + * @since 2024-09-04 + */ +@RestController +@AllArgsConstructor +@RequestMapping("wl/materialOperationOutbound") +@Tag(name = "运维商库存明细", description = "运维商库存明细接口") +public class MaterialOperationOutboundController extends BladeController { + + private final IMaterialOperationOutboundService materialOperationOutboundService; + + private final IMaterialOutboundService materialOutboundService; + + private final IUserService userService; + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + /** + * 运维商库存明细 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入materialOperationOutbound") + public R detail(MaterialOperationOutboundEntity materialOperationOutbound) { + MaterialOperationOutboundEntity detail = materialOperationOutboundService.getOne(Condition.getQueryWrapper(materialOperationOutbound)); + return R.data(MaterialOperationOutboundWrapper.build().entityVO(detail)); + } + /** + * 运维商库存明细 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入materialOperationOutbound") + public R> list(@Parameter(hidden = true) @RequestParam Map materialOperationOutbound, Query query) { + BladeUser user = AuthUtil.getUser(); + query.setDescs("id"); + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialOperationOutbound, MaterialOutboundEntity.class); + queryWrapper.lambda().eq(MaterialOutboundEntity :: getKeepType,"2"); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialOutboundEntity:: getCompanyId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + return R.data(null); + } + queryWrapper.lambda().eq(MaterialOutboundEntity :: getCompanyId,authVo.getSiteId()); + } + + IPage pages = materialOutboundService.page(Condition.getPage(query),queryWrapper); + IPage pageVO = MaterialOutboundWrapper.build().pageVO(pages); + for(MaterialOutboundVO vo : pageVO.getRecords()){ + vo.setCreateName(userService.getById(vo.getCreateUser()).getName()); + if(vo.getAllowUser()!=null){ + vo.setAllowName(userService.getById(vo.getAllowUser()).getName()); + } + } + return R.data(pageVO); + } + + /** + * 运维商库存明细 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入materialOperationOutbound") + public R> page(MaterialOperationOutboundVO materialOperationOutbound, Query query) { + IPage pages = materialOperationOutboundService.selectMaterialOperationOutboundPage(Condition.getPage(query), materialOperationOutbound); + return R.data(pages); + } + + /** + * 运维商库存明细 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入materialOperationOutbound") + public R save(@Valid @RequestBody MaterialOperationOutboundEntity materialOperationOutbound) { + return R.status(materialOperationOutboundService.save(materialOperationOutbound)); + } + + /** + * 运维商库存明细 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入materialOperationOutbound") + public R update(@Valid @RequestBody MaterialOperationOutboundEntity materialOperationOutbound) { + return R.status(materialOperationOutboundService.updateById(materialOperationOutbound)); + } + + /** + * 运维商库存明细 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入materialOperationOutbound") + public R submit(@Valid @RequestBody MaterialOperationOutboundEntity materialOperationOutbound) { + return R.status(materialOperationOutboundService.saveOrUpdate(materialOperationOutbound)); + } + + /** + * 运维商库存明细 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(materialOperationOutboundService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + + @GetMapping("/export-materialOperationOutbound") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入materialOperationOutbound") + public void exportMaterialOperationOutbound(@Parameter(hidden = true) @RequestParam Map materialOperationOutbound, BladeUser bladeUser, HttpServletResponse response) { + BladeUser user = AuthUtil.getUser(); + + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialOperationOutbound, MaterialOutboundEntity.class); + queryWrapper.lambda().eq(MaterialOutboundEntity :: getKeepType,"2"); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(MaterialOutboundEntity:: getCompanyId,site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo==null){ + + } + queryWrapper.lambda().eq(MaterialOutboundEntity :: getCompanyId,authVo.getSiteId()); + } + + + queryWrapper.lambda().eq(MaterialOutboundEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialOutboundService.exportMaterialOutbound(queryWrapper); + ExcelUtil.export(response, "运维商库存明细数据" + DateUtil.time(), "运维商库存明细数据表", list, MaterialOutboundExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/material/controller/MaterialOutboundController.java b/src/main/java/org/springblade/modules/material/controller/MaterialOutboundController.java new file mode 100644 index 0000000..61fdbd6 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/controller/MaterialOutboundController.java @@ -0,0 +1,173 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.service.IUserService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.excel.MaterialOutboundExcel; +import org.springblade.modules.material.wrapper.MaterialOutboundWrapper; +import org.springblade.modules.material.service.IMaterialOutboundService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 出库明细 控制器 + * + * @author cswang + * @since 2024-08-25 + */ +@RestController +@AllArgsConstructor +@RequestMapping("wl/materialOutbound") +@Tag(name = "出库明细", description = "出库明细接口") +public class MaterialOutboundController extends BladeController { + + private final IMaterialOutboundService materialOutboundService; + private final IUserService userService; + + /** + * 出库明细 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入materialOutbound") + public R detail(MaterialOutboundEntity materialOutbound) { + MaterialOutboundEntity detail = materialOutboundService.getOne(Condition.getQueryWrapper(materialOutbound)); + return R.data(MaterialOutboundWrapper.build().entityVO(detail)); + } + /** + * 出库明细 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入materialOutbound") + public R> list(@Parameter(hidden = true) @RequestParam Map materialOutbound, Query query) { + query.setDescs("id"); + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialOutbound, MaterialOutboundEntity.class); + queryWrapper.lambda().eq(MaterialOutboundEntity :: getKeepType,"3"); + IPage pages = materialOutboundService.page(Condition.getPage(query),queryWrapper); + IPage pageVO = MaterialOutboundWrapper.build().pageVO(pages); + for(MaterialOutboundVO vo : pageVO.getRecords()){ + vo.setCreateName(userService.getById(vo.getCreateUser()).getName()); + if(vo.getAllowUser()!=null){ + vo.setAllowName(userService.getById(vo.getAllowUser()).getName()); + } + } + return R.data(pageVO); + } + + /** + * 出库明细 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入materialOutbound") + public R> page(MaterialOutboundVO materialOutbound, Query query) { + IPage pages = materialOutboundService.selectMaterialOutboundPage(Condition.getPage(query), materialOutbound); + return R.data(pages); + } + + /** + * 出库明细 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入materialOutbound") + public R save(@Valid @RequestBody MaterialOutboundEntity materialOutbound) { + return R.status(materialOutboundService.save(materialOutbound)); + } + + /** + * 出库明细 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入materialOutbound") + public R update(@Valid @RequestBody MaterialOutboundEntity materialOutbound) { + return R.status(materialOutboundService.updateById(materialOutbound)); + } + + /** + * 出库明细 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入materialOutbound") + public R submit(@Valid @RequestBody MaterialOutboundEntity materialOutbound) { + return R.status(materialOutboundService.saveOrUpdate(materialOutbound)); + } + + /** + * 出库明细 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(materialOutboundService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-materialOutbound") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入materialOutbound") + public void exportMaterialOutbound(@Parameter(hidden = true) @RequestParam Map materialOutbound, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(materialOutbound, MaterialOutboundEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(MaterialOutbound::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(MaterialOutboundEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = materialOutboundService.exportMaterialOutbound(queryWrapper); + ExcelUtil.export(response, "出库明细数据" + DateUtil.time(), "出库明细数据表", list, MaterialOutboundExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/material/excel/MaterialEngineerExcel.java b/src/main/java/org/springblade/modules/material/excel/MaterialEngineerExcel.java new file mode 100644 index 0000000..f2a1a1b --- /dev/null +++ b/src/main/java/org/springblade/modules/material/excel/MaterialEngineerExcel.java @@ -0,0 +1,85 @@ +package org.springblade.modules.material.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工程师库存 Excel实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaterialEngineerExcel implements Serializable { + + @ColumnWidth(20) + @ExcelProperty("运维商名称") + private String operationName; + + @ColumnWidth(20) + @ExcelProperty("工程师名称") + private String engineerName; + /** + * 物料编码 + */ + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String code; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String name; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String typeStr; + /** + * 物料型号 + */ + @ColumnWidth(20) + @ExcelProperty("物料型号") + private String model; + /** + * 功率(KW) + */ + @ColumnWidth(20) + @ExcelProperty("规格") + private String power; +// /** +// * 零售价 +// */ +// @ColumnWidth(20) +// @ExcelProperty("零售价") +// private Double retailPrice; + /** + * 物料描述 + */ + @ColumnWidth(20) + @ExcelProperty("物料描述") + private String description; + + @ColumnWidth(20) + @ExcelProperty("物料品牌") + private String brandStr; + + @ColumnWidth(20) + @ExcelProperty("物料库存") + private Integer stock; + +} diff --git a/src/main/java/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.java b/src/main/java/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.java new file mode 100644 index 0000000..879dafd --- /dev/null +++ b/src/main/java/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.java @@ -0,0 +1,181 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.excel; + + +import lombok.Data; + +import java.util.Date; +import java.lang.Double; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工程师库存明细 Excel实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaterialEngineerOutboundExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + + + /** + * 运维上名称 + */ + @ColumnWidth(20) + @ExcelProperty("运维商名称") + private String operationName; + + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private String engineerName; + /** + * 物料编码 + */ + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String code; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String name; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String type; + /** + * 物料型号 + */ + @ColumnWidth(20) + @ExcelProperty("物料型号") + private String model; + /** + * 功率(KW) + */ + @ColumnWidth(20) + @ExcelProperty("功率(KW)") + private String power; + /** + * 物料描述 + */ + @ColumnWidth(20) + @ExcelProperty("物料描述") + private String description; + /** + * 设备sn码 + */ + @ColumnWidth(20) + @ExcelProperty("设备sn码") + private String brand; + /** + * 设备库存数量 + */ + @ColumnWidth(20) + @ExcelProperty("设备库存数量") + private Integer stock; + /** + * 质保状态(1、在保 0过保) + */ + @ColumnWidth(20) + @ExcelProperty("质保状态(1、在保 0过保)") + private String unit; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("是否已删除") + private Integer isDeleted; + /** + * 明细类型 + */ + @ColumnWidth(20) + @ExcelProperty("明细类型") + private String outType; + /** + * 1进 2出 + */ + @ColumnWidth(20) + @ExcelProperty("1进 2出") + private String outDirect; + /** + * 明细数量 + */ + @ColumnWidth(20) + @ExcelProperty("明细数量") + private Integer outCount; + /** + * 出入库总额 + */ + @ColumnWidth(20) + @ExcelProperty("出入库总额") + private Double outAmount; + /** + * 审核人 + */ + @ColumnWidth(20) + @ExcelProperty("审核人") + private Long allowUser; + /** + * 审核时间 + */ + @ColumnWidth(20) + @ExcelProperty("审核时间") + private Date allowTime; + /** + * 关联单号id + */ + @ColumnWidth(20) + @ExcelProperty("关联单号id") + private String applyId; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/material/excel/MaterialImporter.java b/src/main/java/org/springblade/modules/material/excel/MaterialImporter.java new file mode 100644 index 0000000..a1d2fb5 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/excel/MaterialImporter.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.excel; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.excel.support.ExcelImporter; +import org.springblade.modules.material.service.IMaterialService; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import org.springblade.modules.nh.excel.MaterialExcel; +import org.springblade.modules.nh.service.IInefficientSettingService; + +import java.util.List; + +/** + * 用户数据导入类 + * + * @author Chill + */ +@RequiredArgsConstructor +public class MaterialImporter implements ExcelImporter { + + private final IMaterialService service; + private final Boolean isCovered; + + @Override + public void save(List data) { + service.importMaterial(data, isCovered); + } +} diff --git a/src/main/java/org/springblade/modules/material/excel/MaterialOperationExcel.java b/src/main/java/org/springblade/modules/material/excel/MaterialOperationExcel.java new file mode 100644 index 0000000..3f0cf48 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/excel/MaterialOperationExcel.java @@ -0,0 +1,91 @@ +package org.springblade.modules.material.excel; + + +import lombok.Data; + +import java.lang.Double; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 运维商库存 Excel实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaterialOperationExcel implements Serializable { + + /** + * 物料编码 + */ + @ColumnWidth(20) + @ExcelProperty("运维商名称") + private String operationName; + + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String code; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String name; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String typeStr; + /** + * 物料型号 + */ + @ColumnWidth(20) + @ExcelProperty("物料型号") + private String model; + /** + * 功率(KW) + */ + @ColumnWidth(20) + @ExcelProperty("规格") + private String power; + + /** + * 零售价 + */ +// @ColumnWidth(20) +// @ExcelProperty("成本价") +// private Double costPrice; + + /** + * 零售价 + */ + @ColumnWidth(20) + @ExcelProperty("零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @ColumnWidth(20) + @ExcelProperty("物料描述") + private String description; + + @ColumnWidth(20) + @ExcelProperty("物料品牌") + private String brandStr; + + @ColumnWidth(20) + @ExcelProperty("物料库存") + private Integer stock; + +} diff --git a/src/main/java/org/springblade/modules/material/excel/MaterialOperationOutboundExcel.java b/src/main/java/org/springblade/modules/material/excel/MaterialOperationOutboundExcel.java new file mode 100644 index 0000000..dbe1715 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/excel/MaterialOperationOutboundExcel.java @@ -0,0 +1,207 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.excel; + + +import lombok.Data; + +import java.lang.Double; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 运维商库存明细 Excel实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaterialOperationOutboundExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 公司物料id + */ + @ColumnWidth(20) + @ExcelProperty("公司物料id") + private Long materialId; + /** + * 所属公司 + */ + @ColumnWidth(20) + @ExcelProperty("所属公司") + private String companyId; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private String operationId; + /** + * 运维上名称 + */ + @ColumnWidth(20) + @ExcelProperty("运维上名称") + private String operationName; + /** + * 物料编码 + */ + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String code; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String name; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String type; + /** + * 物料型号 + */ + @ColumnWidth(20) + @ExcelProperty("物料型号") + private String model; + /** + * 功率(KW) + */ + @ColumnWidth(20) + @ExcelProperty("功率(KW)") + private String power; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double costPrice; + /** + * 零售价 + */ + @ColumnWidth(20) + @ExcelProperty("零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @ColumnWidth(20) + @ExcelProperty("物料描述") + private String description; + /** + * 设备sn码 + */ + @ColumnWidth(20) + @ExcelProperty("设备sn码") + private String brand; + /** + * 设备库存数量 + */ + @ColumnWidth(20) + @ExcelProperty("设备库存数量") + private Integer stock; + /** + * 冻结数量 + */ + @ColumnWidth(20) + @ExcelProperty("冻结数量") + private Integer freezeAmount; + /** + * 质保状态(1、在保 0过保) + */ + @ColumnWidth(20) + @ExcelProperty("质保状态(1、在保 0过保)") + private String unit; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("是否已删除") + private Integer isDeleted; + /** + * 明细类型 + */ + @ColumnWidth(20) + @ExcelProperty("明细类型") + private String outType; + /** + * 1进 2出 + */ + @ColumnWidth(20) + @ExcelProperty("1进 2出") + private String outDirect; + /** + * 明细数量 + */ + @ColumnWidth(20) + @ExcelProperty("明细数量") + private Integer outCount; + /** + * 出入库总额 + */ + @ColumnWidth(20) + @ExcelProperty("出入库总额") + private Double outAmount; + /** + * 审核人 + */ + @ColumnWidth(20) + @ExcelProperty("审核人") + private Long allowUser; + /** + * 审核时间 + */ + @ColumnWidth(20) + @ExcelProperty("审核时间") + private Date allowTime; + /** + * 关联单号id + */ + @ColumnWidth(20) + @ExcelProperty("关联单号id") + private String applyId; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/material/excel/MaterialOutboundExcel.java b/src/main/java/org/springblade/modules/material/excel/MaterialOutboundExcel.java new file mode 100644 index 0000000..b233a12 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/excel/MaterialOutboundExcel.java @@ -0,0 +1,140 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.excel; + + +import lombok.Data; + +import java.lang.Double; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 出库明细 Excel实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaterialOutboundExcel implements Serializable { + + /** + * 物料编码 + */ + @ColumnWidth(20) + @ExcelProperty("运维商名称") + private String operationName; + + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String code; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String name; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String typeStr; + /** + * 物料型号 + */ + @ColumnWidth(20) + @ExcelProperty("物料型号") + private String model; + /** + * 功率(KW) + */ + @ColumnWidth(20) + @ExcelProperty("规格") + private String power; + + /** + * 零售价 + */ +// @ColumnWidth(20) +// @ExcelProperty("成本价") +// private Double costPrice; + + /** + * 零售价 + */ + @ColumnWidth(20) + @ExcelProperty("零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @ColumnWidth(20) + @ExcelProperty("物料描述") + private String description; + + @ColumnWidth(20) + @ExcelProperty("物料品牌") + private String brandStr; + + @ColumnWidth(20) + @ExcelProperty("物料库存") + private Integer stock; + /** + * 明细类型 + */ + @ColumnWidth(20) + @ExcelProperty("明细类型") + private String outType; + /** + * 明细数量 + */ + @ColumnWidth(20) + @ExcelProperty("明细数量") + private Integer outCount; + /** + * 出入库总额 + */ + @ColumnWidth(20) + @ExcelProperty("出入库总额") + private Double outAmount; + /** + * 审核时间 + */ + @ColumnWidth(20) + @ExcelProperty("审核时间") + private Date allowTime; + +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.java b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.java new file mode 100644 index 0000000..219aea7 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.mapper; + +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerVO; +import org.springblade.modules.material.excel.MaterialEngineerExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + +/** + * 工程师库存 Mapper 接口 + * + * @author cswang + * @since 2024-08-25 + */ +public interface MaterialEngineerMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param materialEngineer + * @return + */ + List selectMaterialEngineerPage(IPage page, MaterialEngineerVO materialEngineer); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialEngineer(@Param("ew") Wrapper queryWrapper); + + + List engineerStockList(IPage page, @Param("vo") Map params); + + Long countEngineerStockList(@Param("vo") Map params); +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.xml b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.xml new file mode 100644 index 0000000..f96f286 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AND e.engineer_id=#{vo.engineerId} + + + AND e.engineer_id=(SELECT user_id FROM `sf_operation_site_employee` WHERE id=#{vo.empId}) + + + AND (e.name LIKE concat('%',#{vo.smallConditon},'%') + or e.code LIKE concat('%',#{vo.smallConditon},'%') ) + + + diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.java b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.java new file mode 100644 index 0000000..8ea16aa --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.mapper; + +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerOutboundVO; +import org.springblade.modules.material.excel.MaterialEngineerOutboundExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; + +import java.util.List; + +/** + * 工程师库存明细 Mapper 接口 + * + * @author AlexWang + * @since 2024-09-04 + */ +public interface MaterialEngineerOutboundMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param materialEngineerOutbound + * @return + */ + List findMaterialOutbound(IPage page, MaterialOutboundVO materialEngineerOutbound); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialEngineerOutbound(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml new file mode 100644 index 0000000..14eebed --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialMapper.java b/src/main/java/org/springblade/modules/material/mapper/MaterialMapper.java new file mode 100644 index 0000000..58034cf --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialMapper.java @@ -0,0 +1,77 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.mapper; + +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.vo.MaterialVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.vo.MaterialVO; +import org.springblade.modules.nh.excel.MaterialExcel; +import org.springblade.modules.order.pojo.vo.SelectVo; + +import java.util.List; +import java.util.Map; + +/** + * 物料库存 Mapper 接口 + * + * @author cswang + * @since 2024-08-25 + */ +public interface MaterialMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param material + * @return + */ + List selectMaterialPage(IPage page, MaterialVO material); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @returnß + */ + List exportMaterial(@Param("ew") Wrapper queryWrapper); + + + MaterialDTO getMaterialById(@Param("materialId") String materialId); + + MaterialDTO getMaterialDetailByCode(@Param("materialCode") String materialCode); + + + List getOrderListByNumber(@Param("number") String number,@Param("siteId")String siteId); +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialMapper.xml b/src/main/java/org/springblade/modules/material/mapper/MaterialMapper.xml new file mode 100644 index 0000000..842fa6c --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.java b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.java new file mode 100644 index 0000000..f93b143 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.mapper; + +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationVO; +import org.springblade.modules.material.excel.MaterialOperationExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 运维商库存 Mapper 接口 + * + * @author cswang + * @since 2024-08-25 + */ +public interface MaterialOperationMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param materialOperation + * @return + */ + List selectMaterialOperationPage(IPage page, MaterialOperationVO materialOperation); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialOperation(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.xml b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.xml new file mode 100644 index 0000000..97d30c7 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.java b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.java new file mode 100644 index 0000000..e43f7b1 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.mapper; + +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationOutboundVO; +import org.springblade.modules.material.excel.MaterialOperationOutboundExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 运维商库存明细 Mapper 接口 + * + * @author AlexWang + * @since 2024-09-04 + */ +public interface MaterialOperationOutboundMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param materialOperationOutbound + * @return + */ + List selectMaterialOperationOutboundPage(IPage page, MaterialOperationOutboundVO materialOperationOutbound); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialOperationOutbound(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.xml b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.xml new file mode 100644 index 0000000..98693c4 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.java b/src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.java new file mode 100644 index 0000000..7b0f839 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.mapper; + +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.excel.MaterialOutboundExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 出库明细 Mapper 接口 + * + * @author cswang + * @since 2024-08-25 + */ +public interface MaterialOutboundMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param materialOutbound + * @return + */ + List selectMaterialOutboundPage(IPage page, MaterialOutboundVO materialOutbound); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialOutbound(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml b/src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml new file mode 100644 index 0000000..7e47ec1 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/material/pojo/dto/MaterialDTO.java b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialDTO.java new file mode 100644 index 0000000..8f60e76 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialDTO.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 物料库存 数据传输对象实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialDTO extends MaterialEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "物料类型名称") + private String materialType; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerDTO.java b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerDTO.java new file mode 100644 index 0000000..361da3b --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.dto; + +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工程师库存 数据传输对象实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialEngineerDTO extends MaterialEngineerEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerOutboundDTO.java b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerOutboundDTO.java new file mode 100644 index 0000000..edc99d3 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialEngineerOutboundDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.dto; + +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工程师库存明细 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialEngineerOutboundDTO extends MaterialEngineerOutboundEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationDTO.java b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationDTO.java new file mode 100644 index 0000000..8ad493a --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.dto; + +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 运维商库存 数据传输对象实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialOperationDTO extends MaterialOperationEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.java b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.java new file mode 100644 index 0000000..aac924c --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.dto; + +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 运维商库存明细 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialOperationOutboundDTO extends MaterialOperationOutboundEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.java b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.java new file mode 100644 index 0000000..108b510 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.dto; + +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 出库明细 数据传输对象实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialOutboundDTO extends MaterialOutboundEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerEntity.java b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerEntity.java new file mode 100644 index 0000000..f8f2151 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerEntity.java @@ -0,0 +1,133 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 工程师库存 实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@TableName("sf_material_engineer") +@Schema(description = "MaterialEngineer对象") +public class MaterialEngineerEntity extends BaseEntity { + + /** + * 公司物料id + */ + @Schema(description = "公司物料id") + private Long materialId; + /** + * 所属公司 + */ + @Schema(description = "所属公司") + private Long companyId; + /** + * + */ + @Schema(description = "") + private String operationId; + /** + * 运维上名称 + */ + @Schema(description = "运维上名称") + private String operationName; + /** + * + */ + @Schema(description = "") + private Long engineerId; + /** + * + */ + @Schema(description = "") + private String engineerName; + /** + * 物料编码 + */ + @Schema(description = "物料编码") + private String code; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String name; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String type; + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String model; + /** + * 功率(KW) + */ + @Schema(description = "功率(KW)") + private String power; + /** + * 物料描述 + */ + @Schema(description = "物料描述") + private String description; + /** + * 设备sn码 + */ + @Schema(description = "设备sn码") + private String brand; + /** + * 设备库存数量 + */ + @Schema(description = "设备库存数量") + private Integer stock; + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "质保状态(1、在保 0过保)") + private String unit; + /** + * 是否已删除 + */ + @Schema(description = "是否已删除") + private Integer isDeleted; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.java b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.java new file mode 100644 index 0000000..96f8ceb --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.java @@ -0,0 +1,169 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import java.lang.Double; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 工程师库存明细 实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@TableName("sf_material_engineer_outbound") +@Schema(description = "MaterialEngineerOutbound对象") +public class MaterialEngineerOutboundEntity extends BaseEntity { + + /** + * 公司物料id + */ + @Schema(description = "公司物料id") + private Long materialId; + /** + * 所属公司 + */ + @Schema(description = "所属公司") + private Long companyId; + /** + * + */ + @Schema(description = "") + private String operationId; + /** + * 运维上名称 + */ + @Schema(description = "运维上名称") + private String operationName; + /** + * + */ + @Schema(description = "") + private Long engineerId; + /** + * + */ + @Schema(description = "") + private String engineerName; + /** + * 物料编码 + */ + @Schema(description = "物料编码") + private String code; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String name; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String type; + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String model; + /** + * 功率(KW) + */ + @Schema(description = "功率(KW)") + private String power; + /** + * 物料描述 + */ + @Schema(description = "物料描述") + private String description; + /** + * 设备sn码 + */ + @Schema(description = "设备sn码") + private String brand; + /** + * 设备库存数量 + */ + @Schema(description = "设备库存数量") + private Integer stock; + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "质保状态(1、在保 0过保)") + private String unit; + /** + * 明细类型 + */ + @Schema(description = "明细类型") + private String outType; + /** + * 1进 2出 + */ + @Schema(description = "1进 2出") + private String outDirect; + /** + * 明细数量 + */ + @Schema(description = "明细数量") + private Integer outCount; + /** + * 出入库总额 + */ + @Schema(description = "出入库总额") + private Double outAmount; + /** + * 审核人 + */ + @Schema(description = "审核人") + private Long allowUser; + /** + * 审核时间 + */ + @Schema(description = "审核时间") + private Date allowTime; + /** + * 关联单号id + */ + @Schema(description = "关联单号id") + private String applyId; + /** + * + */ + @Schema(description = "") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEntity.java b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEntity.java new file mode 100644 index 0000000..649853f --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialEntity.java @@ -0,0 +1,112 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 物料库存 实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@TableName("sf_material") +@Schema(description = "Material对象") +public class MaterialEntity extends BaseEntity { + + /** + * 所属公司 + */ + @Schema(description = "所属公司") + private Long companyId; + /** + * 物料编码 + */ + @Schema(description = "物料编码") + private String code; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String name; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String type; + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String model; + /** + * 功率(KW) + */ + @Schema(description = "功率(KW)") + private String power; + /** + * 零售价 + */ + @Schema(description = "零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @Schema(description = "物料描述") + private String description; + /** + * 设备sn码 + */ + @Schema(description = "品牌") + private String brand; + /** + * 库存数量 + */ + @Schema(description = "库存数量") + private Integer stock; + @Schema(description = "冻结数量") + private Integer freezeAmount; + + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "单位") + private String unit; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.java b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.java new file mode 100644 index 0000000..03a5cfe --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.java @@ -0,0 +1,132 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 运维商库存 实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@TableName("sf_material_operation") +@Schema(description = "MaterialOperation对象") +public class MaterialOperationEntity extends BaseEntity { + + /** + * 公司物料id + */ + @Schema(description = "公司物料id") + private Long materialId; + /** + * 所属公司 + */ + @Schema(description = "所属公司") + private String companyId; + /** + * + */ + @Schema(description = "") + private String operationId; + /** + * 运维上名称 + */ + @Schema(description = "运维上名称") + private String operationName; + /** + * 物料编码 + */ + @Schema(description = "物料编码") + private String code; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String name; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String type; + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String model; + /** + * 功率(KW) + */ + @Schema(description = "功率(KW)") + private String power; + /** + * + */ + @Schema(description = "") + private Double costPrice; + /** + * 零售价 + */ + @Schema(description = "零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @Schema(description = "物料描述") + private String description; + /** + * 设备sn码 + */ + @Schema(description = "设备sn码") + private String brand; + /** + * 库存数量 + */ + @Schema(description = "库存数量") + private Integer stock; + + @Schema(description = "冻结数量") + private Integer freezeAmount; + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "质保状态(1、在保 0过保)") + private String unit; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.java b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.java new file mode 100644 index 0000000..7bdec11 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.java @@ -0,0 +1,174 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 运维商库存明细 实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@TableName("sf_material_operation_outbound") +@Schema(description = "MaterialOperationOutbound对象") +public class MaterialOperationOutboundEntity extends BaseEntity { + + /** + * 公司物料id + */ + @Schema(description = "公司物料id") + private Long materialId; + /** + * 所属公司 + */ + @Schema(description = "所属公司") + private String companyId; + /** + * + */ + @Schema(description = "") + private String operationId; + /** + * 运维上名称 + */ + @Schema(description = "运维上名称") + private String operationName; + /** + * 物料编码 + */ + @Schema(description = "物料编码") + private String code; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String name; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String type; + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String model; + /** + * 功率(KW) + */ + @Schema(description = "功率(KW)") + private String power; + /** + * + */ + @Schema(description = "") + private Double costPrice; + /** + * 零售价 + */ + @Schema(description = "零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @Schema(description = "物料描述") + private String description; + /** + * 设备sn码 + */ + @Schema(description = "设备sn码") + private String brand; + /** + * 设备库存数量 + */ + @Schema(description = "设备库存数量") + private Integer stock; + /** + * 冻结数量 + */ + @Schema(description = "冻结数量") + private Integer freezeAmount; + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "质保状态(1、在保 0过保)") + private String unit; + /** + * 明细类型 + */ + @Schema(description = "明细类型") + private String outType; + /** + * 1进 2出 + */ + @Schema(description = "1进 2出") + private String outDirect; + /** + * 明细数量 + */ + @Schema(description = "明细数量") + private Integer outCount; + /** + * 出入库总额 + */ + @Schema(description = "出入库总额") + private Double outAmount; + /** + * 审核人 + */ + @Schema(description = "审核人") + private Long allowUser; + /** + * 审核时间 + */ + @Schema(description = "审核时间") + private Date allowTime; + /** + * 关联单号id + */ + @Schema(description = "关联单号id") + private String applyId; + /** + * + */ + @Schema(description = "") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.java b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.java new file mode 100644 index 0000000..5ac5651 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.java @@ -0,0 +1,162 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 出库明细 实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@TableName("sf_material_outbound") +@Schema(description = "MaterialOutbound对象") +public class MaterialOutboundEntity extends BaseEntity { + + /** + * 公司物料id + */ + @Schema(description = "公司物料id") + private Long materialId; + + @Schema(description = "类型:1.工程师 2.运维商 3.平台") + private String keepType; + + @Schema(description = "所属工程师userId") + private String empUserId; + /** + * 所属公司 + */ + @Schema(description = "记录所属(平台 0 运营商:运营商siteId,工程师,这里保存的是运营商id)") + private String companyId; + + @Schema(description = "出入库类型:1.入库 2.出库 3.调整库存(通过公司库存页面编辑调整库存数量) 4.工单使用 5.使用删除") + private String keepFrom; + + @Schema(description = "归属人姓名") + private String relateName; + /** + * 物料编码 + */ + @Schema(description = "物料编码") + private String code; + /** + * 物料名称 + */ + @Schema(description = "物料名称") + private String name; + /** + * 物料类型 + */ + @Schema(description = "物料类型") + private String type; + /** + * 物料型号 + */ + @Schema(description = "物料型号") + private String model; + /** + * 功率(KW) + */ + @Schema(description = "功率(KW)") + private String power; + /** + * 零售价 + */ + @Schema(description = "零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @Schema(description = "物料描述") + private String description; + /** + * 设备sn码 + */ + @Schema(description = "设备sn码") + private String brand; + /** + * 设备条码 + */ + @Schema(description = "库存") + private Integer stock; + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "质保状态(1、在保 0过保)") + private String unit; + /** + * 明细类型 + */ + @Schema(description = "明细类型") + private String outType; + /** + * 方向 + */ + @Schema(description = "1进库 2出库") + private String outDirect; + /** + * 明细数量 + */ + @Schema(description = "明细数量") + private Integer outCount; + /** + * 出入库总额 + */ + @Schema(description = "出入库总额") + private Double outAmount; + /** + * 审核人 + */ + @Schema(description = "审核人") + private Long allowUser; + /** + * 审核时间 + */ + @Schema(description = "审核时间") + private Date allowTime; + + private String applyId; + + private String remarks; + + @Schema(description = "关联工单id") + private String relateOrderId; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.java b/src/main/java/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.java new file mode 100644 index 0000000..9af4dd0 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.java @@ -0,0 +1,22 @@ +package org.springblade.modules.material.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; + +@Data +public class EmpFittingDetailVo { + + @NotBlank(message = "物料id不能为空") + private String materialId; + + @NotNull(message = "申请的物料数量不能为空") + private Integer applyNum; + + @Schema(description = "申请备注") + private String applyMarks; + + @Schema(description = "关联工单id") + private String relateOrderId; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.java b/src/main/java/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.java new file mode 100644 index 0000000..29c5b87 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.java @@ -0,0 +1,17 @@ +package org.springblade.modules.material.pojo.vo; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; + +import java.util.List; + +@Data +public class EmpGetFittingOutVo { + + @NotBlank(message = "服务工程师id不能为空!") + private String empUserId; + + @NotEmpty(message = "领取的物料不能为空") + private List detailVoList; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.java b/src/main/java/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.java new file mode 100644 index 0000000..5f4a976 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.java @@ -0,0 +1,23 @@ +package org.springblade.modules.material.pojo.vo; + +import lombok.Data; + +import java.io.Serial; + +@Data +public class EmpStockConditionVo { + + @Serial + private static final long serialVersionUID = 1L; + + + private String engineerId; + + private String empId; + + private String smallConditon; + + private Integer size; + + private Integer current; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.java b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.java new file mode 100644 index 0000000..de8f738 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.vo; + +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工程师库存明细 视图实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialEngineerOutboundVO extends MaterialEngineerOutboundEntity { + @Serial + private static final long serialVersionUID = 1L; + + private String createName; + private String allowName; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.java b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.java new file mode 100644 index 0000000..2b4d025 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.vo; + +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工程师库存 视图实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialEngineerVO extends MaterialEngineerEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.java b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.java new file mode 100644 index 0000000..20fae2f --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.java @@ -0,0 +1,48 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.vo; + +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 运维商库存明细 视图实体类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialOperationOutboundVO extends MaterialOperationOutboundEntity { + @Serial + private static final long serialVersionUID = 1L; + + private String createName; + private String allowName; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationVO.java b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationVO.java new file mode 100644 index 0000000..832a4a7 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOperationVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.vo; + +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 运维商库存 视图实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialOperationVO extends MaterialOperationEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOutboundVO.java b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOutboundVO.java new file mode 100644 index 0000000..8257f1d --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialOutboundVO.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.User; + +import java.io.Serial; + +/** + * 出库明细 视图实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialOutboundVO extends MaterialOutboundEntity { + @Serial + private static final long serialVersionUID = 1L; + + private String createName; + private String allowName; + @Schema(description = "工单编号") + private String orderNumber; + + @Schema(description = "电站编号") + private String powerStationCode; + @Schema(description = "安装地址") + private String address; + + @Schema(description = "业主名称") + private String customerName; + + @Schema(description = "运营商名称") + private String siteName; +} diff --git a/src/main/java/org/springblade/modules/material/pojo/vo/MaterialVO.java b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialVO.java new file mode 100644 index 0000000..df1db6e --- /dev/null +++ b/src/main/java/org/springblade/modules/material/pojo/vo/MaterialVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.pojo.vo; + +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 物料库存 视图实体类 + * + * @author cswang + * @since 2024-08-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MaterialVO extends MaterialEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/material/service/IMaterialEngineerOutboundService.java b/src/main/java/org/springblade/modules/material/service/IMaterialEngineerOutboundService.java new file mode 100644 index 0000000..4fd4b8e --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/IMaterialEngineerOutboundService.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerOutboundVO; +import org.springblade.modules.material.excel.MaterialEngineerOutboundExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; + +import java.util.List; + +/** + * 工程师库存明细 服务类 + * + * @author AlexWang + * @since 2024-09-04 + */ +public interface IMaterialEngineerOutboundService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param materialEngineerOutbound + * @return + */ + IPage findMaterialOutbound(IPage page, MaterialOutboundVO materialEngineerOutbound); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialEngineerOutbound(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/service/IMaterialEngineerService.java b/src/main/java/org/springblade/modules/material/service/IMaterialEngineerService.java new file mode 100644 index 0000000..dcdf665 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/IMaterialEngineerService.java @@ -0,0 +1,47 @@ +package org.springblade.modules.material.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Condition; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerVO; +import org.springblade.modules.material.excel.MaterialEngineerExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + +/** + * 工程师库存 服务类 + * + * @author cswang + * @since 2024-08-25 + */ +public interface IMaterialEngineerService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param materialEngineer + * @return + */ + IPage selectMaterialEngineerPage(IPage page, MaterialEngineerVO materialEngineer); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialEngineer(Wrapper queryWrapper); + + + List engineerStockList(IPage page,Map params); + + Long countEngineerStockList(Map params); + + //获取工程师物料库存 + MaterialEngineerEntity getEngineerStock(String engineerUserId,String materialId); + +} diff --git a/src/main/java/org/springblade/modules/material/service/IMaterialOperationOutboundService.java b/src/main/java/org/springblade/modules/material/service/IMaterialOperationOutboundService.java new file mode 100644 index 0000000..fd3c17e --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/IMaterialOperationOutboundService.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationOutboundVO; +import org.springblade.modules.material.excel.MaterialOperationOutboundExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 运维商库存明细 服务类 + * + * @author AlexWang + * @since 2024-09-04 + */ +public interface IMaterialOperationOutboundService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param materialOperationOutbound + * @return + */ + IPage selectMaterialOperationOutboundPage(IPage page, MaterialOperationOutboundVO materialOperationOutbound); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialOperationOutbound(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/service/IMaterialOperationService.java b/src/main/java/org/springblade/modules/material/service/IMaterialOperationService.java new file mode 100644 index 0000000..b639ac1 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/IMaterialOperationService.java @@ -0,0 +1,37 @@ +package org.springblade.modules.material.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationVO; +import org.springblade.modules.material.excel.MaterialOperationExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 运维商库存 服务类 + * + * @author cswang + * @since 2024-08-25 + */ +public interface IMaterialOperationService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param materialOperation + * @return + */ + IPage selectMaterialOperationPage(IPage page, MaterialOperationVO materialOperation); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialOperation(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/material/service/IMaterialOutboundService.java b/src/main/java/org/springblade/modules/material/service/IMaterialOutboundService.java new file mode 100644 index 0000000..c39dd60 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/IMaterialOutboundService.java @@ -0,0 +1,50 @@ +package org.springblade.modules.material.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.secure.BladeUser; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.excel.MaterialOutboundExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 出库明细 服务类 + * + * @author cswang + * @since 2024-08-25 + */ +public interface IMaterialOutboundService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param materialOutbound + * @return + */ + IPage selectMaterialOutboundPage(IPage page, MaterialOutboundVO materialOutbound); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterialOutbound(Wrapper queryWrapper); + + void saveMateInkeep(MaterialEntity materialEntity, String out_direct, BladeUser user, String keepForm); + + boolean saveEmpMaterialInVsOut(OperationOrderMaterialEntity orderMaterialEntity, MaterialEntity materialEntity, String out_direct, BladeUser user, String keepForm,String orderId); + + boolean saveMaterialOutbound(PlatformFittingApplyEntity apply, MaterialEntity materialEntity, String out_direct, String companyId, BladeUser user, String keepType, String relateName, String keepForm); + + public void savekeep(MaterialDTO materialEntity, String out_direct, BladeUser user, String keepForm, String keepType, + String siteId, String empUseId, String relateName, Integer amount, String orderId, String remarks); +} diff --git a/src/main/java/org/springblade/modules/material/service/IMaterialService.java b/src/main/java/org/springblade/modules/material/service/IMaterialService.java new file mode 100644 index 0000000..ec957d3 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/IMaterialService.java @@ -0,0 +1,50 @@ +package org.springblade.modules.material.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.vo.EmpGetFittingOutVo; +import org.springblade.modules.material.pojo.vo.MaterialVO; +import org.springblade.modules.nh.excel.MaterialExcel; +import org.springblade.modules.order.pojo.vo.SelectVo; + +import java.util.List; + +/** + * 物料库存 服务类 + * + * @author cswang + * @since 2024-08-25 + */ +public interface IMaterialService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param material + * @return + */ + IPage selectMaterialPage(IPage page, MaterialVO material); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMaterial(Wrapper queryWrapper); + + + MaterialEntity getByMaterialCode(String materialCode); + + void importMaterial(List data, Boolean isCovered); + + MaterialDTO getMaterialDetailByCode(String materialCode); + + boolean empGetFittingOut(EmpGetFittingOutVo empGetFittingOutVo); + + List getOrderListByNumber(String number); +} diff --git a/src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.java b/src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.java new file mode 100644 index 0000000..58e3c33 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerOutboundVO; +import org.springblade.modules.material.excel.MaterialEngineerOutboundExcel; +import org.springblade.modules.material.mapper.MaterialEngineerOutboundMapper; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.service.IMaterialEngineerOutboundService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; + +/** + * 工程师库存明细 服务实现类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Service +public class MaterialEngineerOutboundServiceImpl extends BaseServiceImpl implements IMaterialEngineerOutboundService { + + @Override + public IPage findMaterialOutbound(IPage page, MaterialOutboundVO materialEngineerOutbound){ + return page.setRecords(baseMapper.findMaterialOutbound(page, materialEngineerOutbound)); + } + + + @Override + public List exportMaterialEngineerOutbound(Wrapper queryWrapper) { + List materialEngineerOutboundList = baseMapper.exportMaterialEngineerOutbound(queryWrapper); + //materialEngineerOutboundList.forEach(materialEngineerOutbound -> { + // materialEngineerOutbound.setTypeName(DictCache.getValue(DictEnum.YES_NO, MaterialEngineerOutbound.getType())); + //}); + return materialEngineerOutboundList; + } + +} diff --git a/src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerServiceImpl.java b/src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerServiceImpl.java new file mode 100644 index 0000000..6d0a98f --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/impl/MaterialEngineerServiceImpl.java @@ -0,0 +1,106 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerVO; +import org.springblade.modules.material.excel.MaterialEngineerExcel; +import org.springblade.modules.material.mapper.MaterialEngineerMapper; +import org.springblade.modules.material.service.IMaterialEngineerService; +import org.springblade.modules.operation.constant.SourceConstants; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import javax.management.Query; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 工程师库存 服务实现类 + * + * @author cswang + * @since 2024-08-25 + */ +@Service +public class MaterialEngineerServiceImpl extends BaseServiceImpl implements IMaterialEngineerService { + + @Override + public IPage selectMaterialEngineerPage(IPage page, MaterialEngineerVO materialEngineer) { + return page.setRecords(baseMapper.selectMaterialEngineerPage(page, materialEngineer)); + } + + + @Override + public List exportMaterialEngineer(Wrapper queryWrapper) { + List materialEngineerList = this.list(queryWrapper); + List excelList = new ArrayList<>(); + materialEngineerList.forEach(material -> { + MaterialEngineerExcel excel = new MaterialEngineerExcel(); + BeanUtil.copyProperties(material,excel); + excel.setBrandStr(DictCache.getValue(DictEnum.BRAND, material.getBrand())); + excel.setTypeStr(DictCache.getValue(DictEnum.WL_TYPE, material.getType())); + excelList.add(excel); +// materialEngineer.setTypeName(DictCache.getValue(DictEnum.YES_NO, MaterialEngineer.getType())); + }); + return excelList; + } + + @Override + public List engineerStockList(IPage page, Map params) { + if(params.get("engineerId")==null && params.get("empId")==null){ //engineerId 工程师userId,empId 员工表id + throw new ServiceException("工程师id不能为空"); + } + List list=baseMapper.engineerStockList(page,params); + return list; + } + + @Override + public Long countEngineerStockList(Map params) { + Long count=baseMapper.countEngineerStockList(params); + return count; + } + + + //获取工程师库存 + @Override + public MaterialEngineerEntity getEngineerStock(String engineerUserId, String materialId) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialEngineerEntity::getEngineerId,engineerUserId); + queryWrapper.eq(MaterialEngineerEntity::getMaterialId,materialId); + queryWrapper.eq(MaterialEngineerEntity::getIsDeleted, SourceConstants.ZERO); + return getOne(queryWrapper); + } + +} diff --git a/src/main/java/org/springblade/modules/material/service/impl/MaterialOperationOutboundServiceImpl.java b/src/main/java/org/springblade/modules/material/service/impl/MaterialOperationOutboundServiceImpl.java new file mode 100644 index 0000000..1db5686 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/impl/MaterialOperationOutboundServiceImpl.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationOutboundVO; +import org.springblade.modules.material.excel.MaterialOperationOutboundExcel; +import org.springblade.modules.material.mapper.MaterialOperationOutboundMapper; +import org.springblade.modules.material.service.IMaterialOperationOutboundService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; + +/** + * 运维商库存明细 服务实现类 + * + * @author AlexWang + * @since 2024-09-04 + */ +@Service +public class MaterialOperationOutboundServiceImpl extends BaseServiceImpl implements IMaterialOperationOutboundService { + + @Override + public IPage selectMaterialOperationOutboundPage(IPage page, MaterialOperationOutboundVO materialOperationOutbound) { + return page.setRecords(baseMapper.selectMaterialOperationOutboundPage(page, materialOperationOutbound)); + } + + + @Override + public List exportMaterialOperationOutbound(Wrapper queryWrapper) { + List materialOperationOutboundList = baseMapper.exportMaterialOperationOutbound(queryWrapper); + //materialOperationOutboundList.forEach(materialOperationOutbound -> { + // materialOperationOutbound.setTypeName(DictCache.getValue(DictEnum.YES_NO, MaterialOperationOutbound.getType())); + //}); + return materialOperationOutboundList; + } + +} diff --git a/src/main/java/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.java b/src/main/java/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.java new file mode 100644 index 0000000..039771d --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.excel.MaterialEngineerExcel; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationVO; +import org.springblade.modules.material.excel.MaterialOperationExcel; +import org.springblade.modules.material.mapper.MaterialOperationMapper; +import org.springblade.modules.material.service.IMaterialOperationService; +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.ArrayList; +import java.util.List; + +/** + * 运维商库存 服务实现类 + * + * @author cswang + * @since 2024-08-25 + */ +@Service +public class MaterialOperationServiceImpl extends BaseServiceImpl implements IMaterialOperationService { + + @Override + public IPage selectMaterialOperationPage(IPage page, MaterialOperationVO materialOperation) { + return page.setRecords(baseMapper.selectMaterialOperationPage(page, materialOperation)); + } + + + @Override + public List exportMaterialOperation(Wrapper queryWrapper) { + List materialEngineerList = this.list(queryWrapper); + List excelList = new ArrayList<>(); + materialEngineerList.forEach(material -> { + MaterialOperationExcel excel = new MaterialOperationExcel(); + BeanUtil.copyProperties(material,excel); + excel.setBrandStr(DictCache.getValue(DictEnum.BRAND, material.getBrand())); + excel.setTypeStr(DictCache.getValue(DictEnum.WL_TYPE, material.getType())); + excelList.add(excel); +// materialEngineer.setTypeName(DictCache.getValue(DictEnum.YES_NO, MaterialEngineer.getType())); + }); + return excelList; + } + + public MaterialOperationEntity findByMateId(String mateId,String siteId){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialOperationEntity::getMaterialId,mateId).eq(MaterialOperationEntity::getCompanyId,siteId); + return getOne(queryWrapper); + } + + +} diff --git a/src/main/java/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.java b/src/main/java/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.java new file mode 100644 index 0000000..c94dcea --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.java @@ -0,0 +1,213 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service.impl; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.material.excel.MaterialOperationExcel; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import org.springblade.modules.material.excel.MaterialOutboundExcel; +import org.springblade.modules.material.mapper.MaterialOutboundMapper; +import org.springblade.modules.material.service.IMaterialOutboundService; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 出库明细 服务实现类 + * + * @author cswang + * @since 2024-08-25 + */ +@Service +public class MaterialOutboundServiceImpl extends BaseServiceImpl implements IMaterialOutboundService { + + @Override + public IPage selectMaterialOutboundPage(IPage page, MaterialOutboundVO materialOutbound) { + return page.setRecords(baseMapper.selectMaterialOutboundPage(page, materialOutbound)); + } + + + @Override + public List exportMaterialOutbound(Wrapper queryWrapper) { + List materialEngineerList = this.list(queryWrapper); + List excelList = new ArrayList<>(); + materialEngineerList.forEach(material -> { + MaterialOutboundExcel excel = new MaterialOutboundExcel(); + BeanUtil.copyProperties(material,excel); + excel.setBrandStr(DictCache.getValue(DictEnum.BRAND, material.getBrand())); + excel.setTypeStr(DictCache.getValue(DictEnum.WL_TYPE, material.getType())); + excel.setOutType(DictCache.getValue("wl_out_type", material.getOutType())); + excelList.add(excel); +// materialEngineer.setTypeName(DictCache.getValue(DictEnum.YES_NO, MaterialEngineer.getType())); + }); + return excelList; + } + + @Override + public boolean saveMaterialOutbound(PlatformFittingApplyEntity apply, MaterialEntity materialEntity,String out_direct,String companyId, BladeUser user,String keepType,String relateName,String keepForm){ + MaterialOutboundEntity entity = new MaterialOutboundEntity(); + entity.setCreateTime(new Date()); + entity.setCreateUser(user.getUserId()); + entity.setIsDeleted(0); + entity.setMaterialId(materialEntity.getId()); + entity.setCompanyId(companyId); + entity.setRelateName(relateName); + entity.setCode(materialEntity.getCode()); + entity.setName(materialEntity.getName()); + entity.setType(materialEntity.getType()); + entity.setModel(materialEntity.getModel()); + entity.setPower(materialEntity.getPower()); + entity.setRetailPrice(materialEntity.getRetailPrice()); + entity.setDescription(materialEntity.getDescription()); + entity.setBrand(materialEntity.getBrand()); + entity.setStock(apply.getApplyNum()); + entity.setOutCount(apply.getApplyNum()); + entity.setOutDirect(out_direct); + entity.setOutType(out_direct); + entity.setOutAmount(apply.getApplyNum()*materialEntity.getRetailPrice()); + entity.setApplyId(apply.getId()); + entity.setKeepType(keepType); + entity.setKeepFrom(keepForm); + return save(entity); + } + + @Override + public boolean saveEmpMaterialInVsOut(OperationOrderMaterialEntity orderMaterialEntity, MaterialEntity materialEntity, String out_direct, BladeUser user,String keepForm,String orderId){ + MaterialOutboundEntity entity = new MaterialOutboundEntity(); + entity.setKeepType("1"); //类型:1.工程师 2.运维商 + entity.setEmpUserId(orderMaterialEntity.getEmpUserId()); + entity.setCreateTime(new Date()); + entity.setCreateUser(user.getUserId()); + entity.setIsDeleted(0); + entity.setMaterialId(materialEntity.getId()); + entity.setCompanyId(orderMaterialEntity.getSiteId()); + entity.setCode(materialEntity.getCode()); + entity.setName(materialEntity.getName()); + entity.setType(materialEntity.getType()); + entity.setModel(materialEntity.getModel()); + entity.setPower(materialEntity.getPower()); + entity.setRetailPrice(materialEntity.getRetailPrice()); + entity.setDescription(materialEntity.getDescription()); + entity.setBrand(materialEntity.getBrand()); + entity.setStock(orderMaterialEntity.getUserAmount()); + entity.setOutCount(orderMaterialEntity.getUserAmount()); + entity.setOutDirect(out_direct); + entity.setOutType(out_direct); + entity.setOutAmount(orderMaterialEntity.getUserAmount()*materialEntity.getRetailPrice()); + entity.setApplyId(orderMaterialEntity.getId()); + entity.setKeepFrom(keepForm); + entity.setRelateName(user.getNickName()); + entity.setRelateOrderId(orderId); + return save(entity); + } + + /** + * 添加物料时-初始入库数量 + */ + @Override + public void saveMateInkeep(MaterialEntity materialEntity, String out_direct, BladeUser user,String keepForm){ + MaterialOutboundEntity entity = new MaterialOutboundEntity(); + entity.setKeepType("3"); //类型:1.工程师 2.运维商 3.平台 + entity.setEmpUserId(""); + entity.setCreateTime(new Date()); + entity.setCreateUser(user.getUserId()); + entity.setIsDeleted(0); + entity.setMaterialId(materialEntity.getId()); + entity.setCompanyId("-1"); + entity.setCode(materialEntity.getCode()); + entity.setName(materialEntity.getName()); + entity.setType(materialEntity.getType()); + entity.setModel(materialEntity.getModel()); + entity.setPower(materialEntity.getPower()); + entity.setRetailPrice(materialEntity.getRetailPrice()); + entity.setDescription(materialEntity.getDescription()); + entity.setBrand(materialEntity.getBrand()); + entity.setStock(materialEntity.getStock()); + entity.setOutCount(materialEntity.getStock()); + entity.setOutDirect(out_direct); + entity.setOutType(out_direct); + entity.setOutAmount(materialEntity.getStock()*materialEntity.getRetailPrice()); + entity.setApplyId(materialEntity.getId().toString()); + entity.setKeepFrom(keepForm); + entity.setAllowUser(null); + save(entity); + } + + //工程师领取出库 + @Override + public void savekeep(MaterialDTO materialEntity, String out_direct, BladeUser user, String keepForm, String keepType, + String siteId, String empUseId, String relateName, Integer amount, String orderId, String remarks){ + MaterialOutboundEntity entity = new MaterialOutboundEntity(); + entity.setKeepType(keepType); //类型:1.工程师 2.运维商 3.平台 + if("3".equals(keepType)){ + entity.setCompanyId("-1"); + }else { + entity.setCompanyId(siteId); + } + entity.setKeepFrom(keepForm); + entity.setEmpUserId(empUseId); + entity.setRelateName(relateName); + entity.setCode(materialEntity.getCode()); + entity.setName(materialEntity.getName()); + entity.setType(materialEntity.getType()); + entity.setModel(materialEntity.getModel()); + entity.setPower(materialEntity.getPower()); + entity.setRetailPrice(materialEntity.getRetailPrice()); + entity.setDescription(materialEntity.getDescription()); + entity.setBrand(materialEntity.getBrand()); + entity.setStock(amount); + entity.setCreateTime(new Date()); + entity.setCreateUser(user.getUserId()); + entity.setIsDeleted(0); + entity.setMaterialId(materialEntity.getId()); + + entity.setOutCount(amount); + entity.setOutDirect(out_direct); + entity.setOutType(out_direct); + entity.setOutAmount(amount*materialEntity.getRetailPrice()); + entity.setApplyId(orderId); + entity.setRemarks(remarks); + entity.setRelateOrderId(orderId); + save(entity); + } + +} diff --git a/src/main/java/org/springblade/modules/material/service/impl/MaterialServiceImpl.java b/src/main/java/org/springblade/modules/material/service/impl/MaterialServiceImpl.java new file mode 100644 index 0000000..8e4b419 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/service/impl/MaterialServiceImpl.java @@ -0,0 +1,295 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.fitting.constant.FittingConstant; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.pojo.vo.AddBhVo; +import org.springblade.modules.fitting.pojo.vo.OperaAddFittingBatchVo; +import org.springblade.modules.flowable.processForm.utils.GuardUtils; +import org.springblade.modules.material.pojo.dto.MaterialDTO; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.modules.material.mapper.MaterialMapper; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.vo.EmpFittingDetailVo; +import org.springblade.modules.material.pojo.vo.EmpGetFittingOutVo; +import org.springblade.modules.material.pojo.vo.MaterialVO; +import org.springblade.modules.material.service.IMaterialOutboundService; +import org.springblade.modules.material.service.IMaterialService; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import org.springblade.modules.nh.excel.MaterialExcel; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.order.pojo.vo.SelectVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.*; + +/** + * 物料库存 服务实现类 + * + * @author cswang + * @since 2024-08-25 + */ +@Service +public class MaterialServiceImpl extends BaseServiceImpl implements IMaterialService { + @Autowired + IMaterialOutboundService outboundService; + + @Autowired + MaterialOperationServiceImpl operationService; + + @Autowired + MaterialEngineerServiceImpl engineerService; + + @Autowired + OperationSiteServiceImpl siteService; + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + + @Override + public IPage selectMaterialPage(IPage page, MaterialVO material) { + return page.setRecords(baseMapper.selectMaterialPage(page, material)); + } + + + @Override + public List exportMaterial(Wrapper queryWrapper) { + List ret = new ArrayList<>(); + List materialList = baseMapper.exportMaterial(queryWrapper); + materialList.forEach(material -> { + MaterialExcel excel = new MaterialExcel(); + BeanUtil.copyProperties(material, excel); + excel.setBrandStr(DictCache.getValue(DictEnum.BRAND, material.getBrand())); + excel.setTypeStr(DictCache.getValue(DictEnum.WL_TYPE, material.getType())); + ret.add(excel); + }); + return ret; + } + + @Override + public void importMaterial(List data, Boolean isCovered) { + List materialEntities = new ArrayList<>(); + BladeUser user = AuthUtil.getUser(); + boolean isRepeat = false; + for(MaterialExcel item: data) { + GuardUtils.notBlank(item.getName(), "物料名称不能为空"); + GuardUtils.notBlank(item.getTypeStr(), "物料类型不能为空"); + GuardUtils.notBlank(item.getModel(), "物料型号不能为空"); + GuardUtils.notBlank(item.getPower(), "物料规格不能为空"); + GuardUtils.notBlank(item.getBrandStr(), "物料品牌不能为空"); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialEntity::getCode,item.getCode()); + if(count(queryWrapper)>0){ + throw new ServiceException("物料编码重复"); + } + String type = DictCache.getKey(DictEnum.WL_TYPE, item.getTypeStr()); + String brand = DictCache.getKey(DictEnum.BRAND, item.getBrandStr()); + if(StringUtil.isBlank(type)){ + throw new ServiceException("物料类型系统中不存在"); + } + if(StringUtil.isBlank(brand)){ + throw new ServiceException("物料品牌系统中不存在"); + } + MaterialEntity entity = new MaterialEntity(); + BeanUtil.copyProperties(item, entity); + + if(entity.getRetailPrice()== null){ + entity.setRetailPrice(0.0); + } + if(entity.getStock()== null){ + entity.setStock(0); + } + + entity.setType(type); + entity.setBrand(brand); + materialEntities.add(entity); + } + if(CollectionUtil.isNotEmpty(materialEntities)){ + this.saveBatch(materialEntities); + } + + for(MaterialEntity entity:materialEntities){ + if(entity.getStock()>0){ + outboundService.saveMateInkeep(entity,"1",user, FittingConstant.KEEP_FORM_IN); + } + } + + + } + + @Override + public MaterialDTO getMaterialDetailByCode(String materialCode) { + return baseMapper.getMaterialDetailByCode(materialCode); + } + + @Override + public MaterialEntity getByMaterialCode(String materialCode) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialEntity::getCode,materialCode); + queryWrapper.eq(MaterialEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + MaterialEntity materialEntity=getOne(queryWrapper); + return materialEntity; + } + + + public MaterialDTO getMaterialById(String materialId){ + MaterialDTO materialEntityDto= baseMapper.getMaterialById(materialId); + return materialEntityDto; + } + + //工程师领取出库 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean empGetFittingOut(EmpGetFittingOutVo empGetFittingOutVo) { + List detailVoList=empGetFittingOutVo.getDetailVoList(); + BladeUser user = AuthUtil.getUser(); + OperationSiteEntity site=null; + if("3".equals(user.getDeptId())){ + site = siteService.findSiteByUserId(user.getUserId()); + }else { + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + site = siteService.getById(emp.getSiteId()); + } + if("2".equals(site.getPayTheDeposit())){ //未缴纳保证金 + throw new ServiceException("运营商未缴纳保证金,不能工程师领取物料!"); + } + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(Long.valueOf(empGetFittingOutVo.getEmpUserId())); + if(emp==null || !emp.getSiteId().equals(site.getId())){ + throw new ServiceException("未找到服务工程师信息!"); + } + log.debug(".....empGetFittingOut size:"+detailVoList.size()); + Map stockMap=new HashMap<>(); + Map empStockMap=new HashMap<>(); + for(EmpFittingDetailVo detailVo:detailVoList){ + log.debug(".....empGetFittingOut detailVo.getmaterialId:"+detailVo.getMaterialId()); + //获取物料信息 + MaterialDTO materialEntity=getMaterialById(detailVo.getMaterialId()); + + //获取运营商物料库存 + MaterialOperationEntity siteMater=stockMap.get(materialEntity.getId()); + if(siteMater==null){ + siteMater = operationService.findByMateId(detailVo.getMaterialId(),site.getId()); + } + if(siteMater==null){ + throw new ServiceException(materialEntity.getName()+",运营商物料库存不足"); + } + siteMater.setStock(siteMater.getStock()-detailVo.getApplyNum()); + if(siteMater.getStock()<0){ + throw new ServiceException(materialEntity.getName()+",物料库存不足"); + } + stockMap.put(materialEntity.getId(),siteMater); + //工程师添加库存 + MaterialEngineerEntity empStock=empStockMap.get(materialEntity.getId()); + if(empStock==null){ + empStock = engineerService.getEngineerStock(empGetFittingOutVo.getEmpUserId(),materialEntity.getId().toString()); + } + if(empStock ==null){ + empStock = new MaterialEngineerEntity(); + empStock.setMaterialId(materialEntity.getId()); + empStock.setOperationId(site.getId()); + empStock.setOperationName(site.getName()); + empStock.setEngineerId(Long.valueOf(empGetFittingOutVo.getEmpUserId())); + empStock.setEngineerName(emp.getName()); + empStock.setCode(materialEntity.getCode()); + empStock.setName(materialEntity.getName()); + empStock.setType(materialEntity.getType()); + empStock.setModel(materialEntity.getModel()); + empStock.setPower(materialEntity.getPower()); + empStock.setDescription(materialEntity.getDescription()); + empStock.setBrand(materialEntity.getBrand()); + empStock.setStock(detailVo.getApplyNum()); + empStock.setCreateUser(user.getUserId()); + empStock.setCreateTime(new Date()); + empStock.setIsDeleted(0); + }else{ + empStock.setStock(empStock.getStock()+detailVo.getApplyNum()); + } + empStockMap.put(materialEntity.getId(),empStock); + //生成运维商出库记录 + outboundService.savekeep(materialEntity,FittingConstant.KEEP_FORM_OUT,user,"2","2",site.getId() + ,"",site.getName(),detailVo.getApplyNum(),"",detailVo.getApplyMarks()); + //生成工程师入库记录 + outboundService.savekeep(materialEntity,FittingConstant.KEEP_FORM_IN,user,"6","1",site.getId() + ,empGetFittingOutVo.getEmpUserId(),emp.getName(),detailVo.getApplyNum(),detailVo.getRelateOrderId(),detailVo.getApplyMarks()); + + } + + //保存工程师库存变动信息 + for(Map.Entry e : empStockMap.entrySet()){ + MaterialEngineerEntity engineerEntity=e.getValue(); + if(!engineerService.updateById(engineerEntity)){ + throw new ServiceException("保存工程师库存变动信息失败!"); + } + } + //保存运营商库存变动信息 + for(Map.Entry e : stockMap.entrySet()){ + MaterialOperationEntity opeartionEntity=e.getValue(); + if(!operationService.saveOrUpdate(opeartionEntity)){ + throw new ServiceException("保存运营商库存变动信息失败!"); + } + } + return true; + } + + @Override + public List getOrderListByNumber(String number) { + BladeUser user = AuthUtil.getUser(); + String siteId=""; + if("3".equals(user.getDeptId())){ + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + siteId=site.getId(); + }else { + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + OperationSiteEntity site = siteService.getById(emp.getSiteId()); + siteId=site.getId(); + } + List list=baseMapper.getOrderListByNumber(number,siteId); + return list; + } +} diff --git a/src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.java b/src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.java new file mode 100644 index 0000000..b1a1db9 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialEngineerOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerOutboundVO; +import java.util.Objects; + +/** + * 工程师库存明细 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-09-04 + */ +public class MaterialEngineerOutboundWrapper extends BaseEntityWrapper { + + public static MaterialEngineerOutboundWrapper build() { + return new MaterialEngineerOutboundWrapper(); + } + + @Override + public MaterialEngineerOutboundVO entityVO(MaterialEngineerOutboundEntity materialEngineerOutbound) { + MaterialEngineerOutboundVO materialEngineerOutboundVO = Objects.requireNonNull(BeanUtil.copyProperties(materialEngineerOutbound, MaterialEngineerOutboundVO.class)); + + //User createUser = UserCache.getUser(materialEngineerOutbound.getCreateUser()); + //User updateUser = UserCache.getUser(materialEngineerOutbound.getUpdateUser()); + //materialEngineerOutboundVO.setCreateUserName(createUser.getName()); + //materialEngineerOutboundVO.setUpdateUserName(updateUser.getName()); + + return materialEngineerOutboundVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerWrapper.java b/src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerWrapper.java new file mode 100644 index 0000000..5b117f0 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/wrapper/MaterialEngineerWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialEngineerEntity; +import org.springblade.modules.material.pojo.vo.MaterialEngineerVO; +import java.util.Objects; + +/** + * 工程师库存 包装类,返回视图层所需的字段 + * + * @author cswang + * @since 2024-08-25 + */ +public class MaterialEngineerWrapper extends BaseEntityWrapper { + + public static MaterialEngineerWrapper build() { + return new MaterialEngineerWrapper(); + } + + @Override + public MaterialEngineerVO entityVO(MaterialEngineerEntity materialEngineer) { + MaterialEngineerVO materialEngineerVO = Objects.requireNonNull(BeanUtil.copyProperties(materialEngineer, MaterialEngineerVO.class)); + + //User createUser = UserCache.getUser(materialEngineer.getCreateUser()); + //User updateUser = UserCache.getUser(materialEngineer.getUpdateUser()); + //materialEngineerVO.setCreateUserName(createUser.getName()); + //materialEngineerVO.setUpdateUserName(updateUser.getName()); + + return materialEngineerVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.java b/src/main/java/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.java new file mode 100644 index 0000000..4591ea1 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialOperationOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationOutboundVO; +import java.util.Objects; + +/** + * 运维商库存明细 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-09-04 + */ +public class MaterialOperationOutboundWrapper extends BaseEntityWrapper { + + public static MaterialOperationOutboundWrapper build() { + return new MaterialOperationOutboundWrapper(); + } + + @Override + public MaterialOperationOutboundVO entityVO(MaterialOperationOutboundEntity materialOperationOutbound) { + MaterialOperationOutboundVO materialOperationOutboundVO = Objects.requireNonNull(BeanUtil.copyProperties(materialOperationOutbound, MaterialOperationOutboundVO.class)); + + //User createUser = UserCache.getUser(materialOperationOutbound.getCreateUser()); + //User updateUser = UserCache.getUser(materialOperationOutbound.getUpdateUser()); + //materialOperationOutboundVO.setCreateUserName(createUser.getName()); + //materialOperationOutboundVO.setUpdateUserName(updateUser.getName()); + + return materialOperationOutboundVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/material/wrapper/MaterialOperationWrapper.java b/src/main/java/org/springblade/modules/material/wrapper/MaterialOperationWrapper.java new file mode 100644 index 0000000..b256fb2 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/wrapper/MaterialOperationWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialOperationEntity; +import org.springblade.modules.material.pojo.vo.MaterialOperationVO; +import java.util.Objects; + +/** + * 运维商库存 包装类,返回视图层所需的字段 + * + * @author cswang + * @since 2024-08-25 + */ +public class MaterialOperationWrapper extends BaseEntityWrapper { + + public static MaterialOperationWrapper build() { + return new MaterialOperationWrapper(); + } + + @Override + public MaterialOperationVO entityVO(MaterialOperationEntity materialOperation) { + MaterialOperationVO materialOperationVO = Objects.requireNonNull(BeanUtil.copyProperties(materialOperation, MaterialOperationVO.class)); + + //User createUser = UserCache.getUser(materialOperation.getCreateUser()); + //User updateUser = UserCache.getUser(materialOperation.getUpdateUser()); + //materialOperationVO.setCreateUserName(createUser.getName()); + //materialOperationVO.setUpdateUserName(updateUser.getName()); + + return materialOperationVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/material/wrapper/MaterialOutboundWrapper.java b/src/main/java/org/springblade/modules/material/wrapper/MaterialOutboundWrapper.java new file mode 100644 index 0000000..1fefb04 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/wrapper/MaterialOutboundWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialOutboundEntity; +import org.springblade.modules.material.pojo.vo.MaterialOutboundVO; +import java.util.Objects; + +/** + * 出库明细 包装类,返回视图层所需的字段 + * + * @author cswang + * @since 2024-08-25 + */ +public class MaterialOutboundWrapper extends BaseEntityWrapper { + + public static MaterialOutboundWrapper build() { + return new MaterialOutboundWrapper(); + } + + @Override + public MaterialOutboundVO entityVO(MaterialOutboundEntity materialOutbound) { + MaterialOutboundVO materialOutboundVO = Objects.requireNonNull(BeanUtil.copyProperties(materialOutbound, MaterialOutboundVO.class)); + + //User createUser = UserCache.getUser(materialOutbound.getCreateUser()); + //User updateUser = UserCache.getUser(materialOutbound.getUpdateUser()); + //materialOutboundVO.setCreateUserName(createUser.getName()); + //materialOutboundVO.setUpdateUserName(updateUser.getName()); + + return materialOutboundVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/material/wrapper/MaterialWrapper.java b/src/main/java/org/springblade/modules/material/wrapper/MaterialWrapper.java new file mode 100644 index 0000000..e97d596 --- /dev/null +++ b/src/main/java/org/springblade/modules/material/wrapper/MaterialWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.material.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.material.pojo.vo.MaterialVO; +import java.util.Objects; + +/** + * 物料库存 包装类,返回视图层所需的字段 + * + * @author cswang + * @since 2024-08-25 + */ +public class MaterialWrapper extends BaseEntityWrapper { + + public static MaterialWrapper build() { + return new MaterialWrapper(); + } + + @Override + public MaterialVO entityVO(MaterialEntity material) { + MaterialVO materialVO = Objects.requireNonNull(BeanUtil.copyProperties(material, MaterialVO.class)); + + //User createUser = UserCache.getUser(material.getCreateUser()); + //User updateUser = UserCache.getUser(material.getUpdateUser()); + //materialVO.setCreateUserName(createUser.getName()); + //materialVO.setUpdateUserName(updateUser.getName()); + + return materialVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/api/NatOpenController.java b/src/main/java/org/springblade/modules/nh/api/NatOpenController.java new file mode 100644 index 0000000..ecb5fb3 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/api/NatOpenController.java @@ -0,0 +1,261 @@ +package org.springblade.modules.nh.api; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.TaskControl; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.DeviceExcel; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationMonthEachRunner; +import org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationFisGenDateEachRunner; +import org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationMonthEachRunner; +import org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationYearEachRunner; +import org.springblade.modules.nh.job.InefficientScheduler; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationPaymentTimeDTO; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.service.*; +import org.springblade.modules.nh.wrapper.DeviceWrapper; +import org.springblade.modules.nh.wrapper.MonitorEntryStatWrapper; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springframework.web.bind.annotation.*; +import scala.collection.mutable.StringBuilder; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 设备管理 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nat/open") +@Tag(name = "设备管理", description = "设备管理接口") +public class NatOpenController extends BladeController { + + private final IPowerStationService stationService; + + private final IInverterDataService dataService; + + private final IMonitorEntryStatService entryStatService; + + private final IMonitorEntryMonthStatService monthStatService; + + private final IDeviceService deviceService; + + private final IAlarmInfoService alarmInfoService; + + + /** + * 电站实时数据 + */ + @GetMapping(value = "stationLastDaysEnergy") + @Operation(summary = "电站实时数据") + public R stationLastDaysEnergy( + @Parameter(description = "内部电站ID", required = true) String innerStationId, + @Parameter(description = "需要最近的天数", required = true) Integer days){ + PowerStationEntity entity= stationService.getByInnerId(innerStationId); + if(entity== null){ + return R.status(false); + } + return R.data(monthStatService.overviewLastDays(entity.getOutStationId(),days)); + } + + /** + * 电站实时数据 + */ + @GetMapping(value = "stationRealtimeInfo") + @Operation(summary = "电站实时数据") + public R stationRealtimeInfo(String innerStationId){ + PowerStationEntity entity= stationService.getByInnerId(innerStationId); + if(entity==null || StringUtil.isBlank(entity.getOutStationId())){ + return R.fail("该电站不存在,或者电站绑定的厂家电站不存在"); + } + MonitorEntryStatVO vo = entryStatService.realTimeDetail(PowerStationWrapper.build().entityVO(entity)); + MonitorEntryStatDTO dto = MonitorEntryStatWrapper.build().entityDTO(vo); + dto.setPac(dataService.sumPacByStationId(entity.getId())); + dto.setOverviewVo(alarmInfoService.stationAlarm(vo.getOutStationId())); + dto.setInnerStationId(innerStationId); + return R.data(dto); + } + + /** + * 发电趋势 + */ + @GetMapping(value = "powerGenerationTrends") + @Operation(summary = "发电趋势") + public R powerGenerationTrends(String innerStationId,String type,String time){ + return R.data(stationService.powerGenTrendsByInnerId(innerStationId,type,time)); + } + + /** + * 添加电站 + */ + @PostMapping("/addPowerStation") + @ApiOperationSupport(order = 1) + @Operation(summary = "添加电站", description = "传入device") + public R addPowerStation(@Valid @RequestBody PowerStationDTO dto) { + return stationService.syncPowerStation(dto); + } + + /** + * 添加电站 + */ + @PostMapping("/updatePowerStation") + @ApiOperationSupport(order = 1) + @Operation(summary = "添加电站", description = "传入device") + public R updatePowerStation(@Valid @RequestBody PowerStationDTO dto) { + PowerStationEntity station = stationService.getPowerStationByInId(dto.getInnerStationId()); + if(station==null){ + return R.fail("不存在的电站"); + } + //更新电站 + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(PowerStationEntity::getId, station.getId()); + if(dto.getApplyStatus()!=null){ + updateWrapper.set(PowerStationEntity::getApplyStatus,dto.getApplyStatus()); + } + if(dto.getStartGenDate()!=null){ + updateWrapper.set(PowerStationEntity::getStartGenDate,dto.getStartGenDate()); + } + if(dto.getMergeTime()!=null){ + updateWrapper.set(PowerStationEntity::getMergeTime,dto.getMergeTime()); + } + stationService.update(updateWrapper); + //更新同步电站 + if(StringUtil.isNotBlank(station.getOutStationId()) && dto.getStartGenDate()!=null){ + LambdaUpdateWrapper updateWrapper2 = new LambdaUpdateWrapper<>(); + updateWrapper2.eq(MonitorEntryStatEntity::getOutStationId,station.getOutStationId()) + .set(MonitorEntryStatEntity::getFisGenerateTime,dto.getStartGenDate()); + entryStatService.update(updateWrapper2); + } + + return R.success("更新成功"); + } + + /** + * 批量添加电站 + */ + @PostMapping("/batchAddPowerStation") + @ApiOperationSupport(order = 2) + @Operation(summary = "添加电站", description = "传入device") + public R batchAddPowerStation(@Valid @RequestBody List stationList) { + return R.status(stationService.saveBatch(stationList)); + } + /** + * 批量修改电站信息 + */ + @PostMapping("/batchUpdateStation") + @ApiOperationSupport(order = 2) + @Operation(summary = "更新电站", description = "传入") + public R batchUpdateStation(@Valid @RequestBody List stationList){ + return R.status(stationService.batchUpdateStation(stationList)); + } + + + /** + * 添加设备 + */ + @PostMapping("/addDevice") + @ApiOperationSupport(order = 3) + @Operation(summary = "添加设备", description = "传入device") + public R addDevice(@Valid @RequestBody DeviceDTO deviceDTO) { + return deviceService.syncDeviceData(deviceDTO); + } + + /** + * 添加设备 + */ + @PostMapping("/batchAddDevice") + @ApiOperationSupport(order = 3) + @Operation(summary = "批量添加设备", description = "传入device") + public R batchAddDevice(@Valid @RequestBody List list) { + int m=0,n=0; + List ids = Lists.newArrayList(); + for(DeviceDTO dto:list){ + try{ + R r= deviceService.syncDeviceData(dto); + if(r.isSuccess()){ + m++; + }else{ + n++; + ids.add(dto.getInnerDeviceId()); + } + }catch (Exception e){ + n++; + ids.add(dto.getInnerDeviceId()); + } + + } + if(n>0){ + StringBuilder sb = new StringBuilder("批量同步设备同步失败."); + sb.append("成功:"+m+"条;"); + sb.append("失败:"+n+"条;"); + sb.append("失败的内部设备ID集合:"+ JSON.toJSONString(ids)); + return R.fail(sb.toString()); + }else{ + return R.success("批量同步设备同步成功"+m+"条"); + } + } + + /** + * 物料信息变更导致的更新设备信息 + */ + @PostMapping("/materialChangeCauseDeviceChange") + @ApiOperationSupport(order = 3) + @Operation(summary = "物料信息变更导致的更新设备信息", description = "传入device") + public R materialChangeCauseDeviceChange(@Valid @RequestBody List list) { + return deviceService.materialChangeCauseDeviceChange(list); + } + + + /** + * 维护回款时间--投放通过时间 + */ + @PostMapping("/editPaymentTime") + @ApiOperationSupport(order = 1) + @Operation(summary = "维护回款时间-投放通过时间", description = "传入device") + public R editPaymentTime(@RequestBody PowerStationPaymentTimeDTO dto) { + deviceService.editPaymentTime(dto); + return R.success("保存成功"); + } +} diff --git a/src/main/java/org/springblade/modules/nh/api/NatOpenSyncController.java b/src/main/java/org/springblade/modules/nh/api/NatOpenSyncController.java new file mode 100644 index 0000000..8f05eed --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/api/NatOpenSyncController.java @@ -0,0 +1,287 @@ +package org.springblade.modules.nh.api; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.cache.DictCache; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.enums.DictEnum; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.TaskControl; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationMonthEachRunner; +import org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationFisGenDateEachRunner; +import org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationMonthEachRunner; +import org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationYearEachRunner; +import org.springblade.modules.nh.job.InefficientScheduler; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.service.*; +import org.springblade.modules.nh.wrapper.MonitorEntryStatWrapper; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springframework.web.bind.annotation.*; +import scala.collection.mutable.StringBuilder; + +import java.time.LocalDate; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +/** + * 设备管理 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nat/open") +@Tag(name = "设备管理", description = "设备管理接口") +public class NatOpenSyncController extends BladeController { + + private final IPowerStationService stationService; + + private final IMonitorEntryStatService entryStatService; + + private final BladeRedis bladeRedis; + + private final GoodweStationMonthEachRunner goodweStationMonthEachRunner; + private final GinlongStationMonthEachRunner ginlongStationMonthEachRunner; + private final GoodweStationFisGenDateEachRunner stationFisGenDateEachRunner; + + private final IInefficientSettingService settingService; + private final InefficientScheduler inefficientScheduler; + + private final GoodweStationYearEachRunner goodweStationYearEachRunner; + + /** + * 计算平均发电时间 + */ + @GetMapping(value = "syncEntryYearData") + @Operation(summary = "同步固德威电站年数据") + public R syncEntryYearData(String stationCode,int year){ + checkRunState("syncEntryYearData"+stationCode); + PowerStationEntity entity = stationService.getStationDetailByPowCode(stationCode); + if(entity==null){ + return R.fail("不存在编码为:《"+stationCode+"》的电站"); + } + + if(!NhConstants.SYS_TYPE_GOODWE.equals(entity.getBrand()+"")){ + return R.fail("不是固德威的电站"); + } + + MonitorEntryStatEntity entryStat = entryStatService.getByOutId(entity.getOutStationId()); + if(entryStat==null){ + return R.fail("不存在编码为:《"+stationCode+"》的外部电站"); + } + List> partitions = ListUtils.partition(Collections.singletonList(entryStat.getOutStationId()), 50); + Map ctx = CommonUtil.getCtx(entryStat.getVendorIndex()); + ctx.put("year",year); + goodweStationYearEachRunner.start(partitions, "获取单个电站年的数据", 0L, ctx); + + return R.success("同步固德威电站年数据 执行成功"); + } + + /** + * 计算平均发电时间 + */ + @GetMapping(value = "updateEntryYearData") + @Operation(summary = "更新固德威电站年数据") + public R updateEntryYearData(String stationCode,int year){ + checkRunState("updateEntryYearData"+stationCode); + PowerStationEntity entity = stationService.getStationDetailByPowCode(stationCode); + if(entity==null){ + return R.fail("不存在编码为:《"+stationCode+"》的电站"); + } + + if(!NhConstants.SYS_TYPE_GOODWE.equals(entity.getBrand()+"")){ + return R.fail("不是固德威的电站"); + } + + MonitorEntryStatEntity entryStat = entryStatService.getByOutId(entity.getOutStationId()); + if(entryStat==null){ + return R.fail("不存在编码为:《"+stationCode+"》的外部电站"); + } + LocalDate today = LocalDate.now(); + int currentYear = today.getYear(); + int currentMonth = today.getMonthValue(); + entryStatService.updateEntryYearData(entryStat,currentYear,currentMonth); + + return R.success("更新固德威电站年数据 执行成功"); + } + + /** + * 计算平均发电时间 + */ + @GetMapping(value = "calAvgPowerStationHours") + @Operation(summary = "计算低效电站") + public R calAvgPowerStationHours(String capitalName){ + checkRunState("calAvgPowerStationHours"+capitalName); + inefficientScheduler.executeAvgHours(); + + return R.success("计算低效电站平均发电时间 执行成功"); + } + + /** + * 计算低效电站 + */ + @GetMapping(value = "calInefficientByStationCode") + @Operation(summary = "计算低效电站") + public R calInefficientByStationCode(String stationCode){ + PowerStationEntity entity = stationService.getStationDetailByPowCode(stationCode); + if(entity==null){ + return R.fail("不存在编码为:《"+stationCode+"》的电站"); + } + MonitorEntryStatEntity entryStat = entryStatService.getByOutId(entity.getOutStationId()); + if(entryStat==null){ + return R.fail("不存在编码为:《"+stationCode+"》的外部电站"); + } +// checkRunState("calInefficientByStationCode:"+stationCode); + + String planType = DictCache.getKey(DictEnum.SETTING_PLAN_TYPE,entity.getInstallType()); + + LambdaQueryWrapper ew = new LambdaQueryWrapper<>(); + ew.eq(InefficientSettingEntity::getCapitalName,entity.getCapitalName()) + .eq(InefficientSettingEntity::getPlanType,planType) + .like(InefficientSettingEntity::getCitys,"%"+entity.getCity().replaceAll("市","")+"%"); + InefficientSettingEntity setting = settingService.getOne(ew); + + PowerStationInefficientEntity ret = inefficientScheduler.calIneffiectStation(setting,entity,2); + + return R.data(ret); + } + + /** + * 计算低效电站 + */ + @GetMapping(value = "calInefficientPowerStation") + @Operation(summary = "计算低效电站") + public R calInefficientPowerStation(String capitalName){ + checkRunState("calAvgPowerStationHours"+capitalName); + + LambdaQueryWrapper ew = new LambdaQueryWrapper<>(); + ew.eq(InefficientSettingEntity::getCapitalName,capitalName); + List settingList = settingService.list(ew); + settingList.forEach(setting->{ + inefficientScheduler.calInefficientSetting(setting); + }); + return R.success("执行成功"); + } + + /** + * 同步固德威的电站首日发电时间 + */ + @GetMapping(value = "syncGoodweFisTime") + @Operation(summary = "同步固德威的电站首日发电时间") + public R syncGoodweFisTime(String stationCode){ + if(StringUtil.isBlank(stationCode)){ + return R.fail("电站编码不能为空"); + } + checkRunState("sync_start_month_"+stationCode); + PowerStationEntity entity = stationService.getStationDetailByPowCode(stationCode); + if(entity==null){ + return R.fail("不存在编码为:《"+stationCode+"》的电站"); + } + if(entity.getBrand()==null || StringUtil.isBlank(entity.getOutStationId())){ + return R.fail("不该电站品牌不存在或电站外部电站未关联"); + } + if(NhConstants.SYS_TYPE_GOODWE.equals(entity.getBrand().toString())){ + MonitorEntryStatVO vo = entryStatService.getByPowerStation(PowerStationWrapper.build().entityVO(entity)); + List ids = Collections.singletonList(vo.getOutStationId()); + goodweStationYearEachRunner.start(Collections.singletonList(ids), "获取单个电站某年的月数据", 0L, CommonUtil.getCtx(vo.getVendorIndex())); + stationFisGenDateEachRunner.start(ids, "获取单个电站某月的日数据", 0L, CommonUtil.getCtx(vo.getVendorIndex())); + } + + return R.success("同步固德威的电站首日发电时间 执行完毕"); + } + + /** + * 同步固德威的电站首日发电时间 + */ + @GetMapping(value = "calAllGoodweFisTime") + @Operation(summary = "计算全部的goodwe的首次发电时间") + public R calAllGoodweFisTime(){ + checkRunState("CAL_ALL_GOODWE_FISTIME_ALL",60*60); + + TaskControl.runTask("goodwe:calAllGoodweFisTime", new Runnable() { + @Override + public void run() { + for(int i=1;i<=3;i++){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getType, NhConstants.SYS_TYPE_GOODWE) + .in(MonitorEntryStatEntity::getState,2,3) + .select(MonitorEntryStatEntity::getOutStationId) + .eq(MonitorEntryStatEntity::getVendorIndex,i); + List stationIds = entryStatService.listObjs(queryWrapper); + stationFisGenDateEachRunner.start(stationIds, "获取电站的首日发电时间", 12L, CommonUtil.getCtx(i)); + } + } + }); + + + return R.success("计算全部的goodwe的首次发电时间 执行完毕"); + } + + /** + * 同步日数据 + */ + @GetMapping(value = "syncStationMonthData") + @Operation(summary = "同步日数据") + public R syncStationMonth(String stationCode,String month){ + if(StringUtil.isBlank(stationCode)){ + return R.fail("电站编码不能为空"); + } + + checkRunState("sync_start_month_"+stationCode); + + PowerStationEntity entity = stationService.getStationDetailByPowCode(stationCode); + if(entity==null){ + return R.fail("不存在编码为:《"+stationCode+"》的电站"); + } + if(entity.getBrand()==null || StringUtil.isBlank(entity.getOutStationId())){ + return R.fail("不该电站品牌不存在或电站外部电站未关联"); + } + MonitorEntryStatVO vo = entryStatService.getByPowerStation(PowerStationWrapper.build().entityVO(entity)); + if(NhConstants.SYS_TYPE_GOODWE.equals(entity.getBrand().toString())){ + List> partitions = ListUtils.partition(Collections.singletonList(vo.getOutStationId()), 50); + goodweStationMonthEachRunner.start(partitions, "获取单个电站某月的日数据", 15L, CommonUtil.getCtx(vo.getVendorIndex())); + } + if(NhConstants.SYS_TYPE_GINLONG.equals(entity.getBrand().toString())){ + Map ctx = CommonUtil.getCtx(vo.getVendorIndex()); + ctx.put("month",month); + ginlongStationMonthEachRunner.start(Collections.singletonList(vo.getOutStationId()), "获取单个电站某月的日数据", 2L, ctx); + } + + return R.success("同步电站日数据 执行完毕"); + } + + + private void checkRunState(String key){ + checkRunState(key,60L); + } + + private void checkRunState(String key,long seconds){ + if(bladeRedis.exists(key)){ + throw new ServiceException("程序正在执行中,请耐心等待"); + } + bladeRedis.setEx(key,"1",seconds); + } +} diff --git a/src/main/java/org/springblade/modules/nh/api/OpenPowerStationController.java b/src/main/java/org/springblade/modules/nh/api/OpenPowerStationController.java new file mode 100644 index 0000000..4360ff8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/api/OpenPowerStationController.java @@ -0,0 +1,144 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.api; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.dto.StationDTO; +import org.springblade.modules.nh.pojo.dto.open.YXInverterDataDTO; +import org.springblade.modules.nh.pojo.dto.open.YXPowerStationDTO; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.service.IDeviceService; +import org.springblade.modules.nh.service.IInverterDataService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springblade.modules.order.pojo.vo.OrderVo; +import org.springblade.modules.order.service.impl.OperationOrderServiceImpl; + +import org.springframework.web.bind.annotation.*; +import scala.collection.mutable.StringBuilder; + +import java.util.Calendar; +import java.util.List; +import java.util.Map; + +/** + * 设备管理 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/open/station") +@Tag(name = "设备管理", description = "设备管理接口") +@Slf4j +public class OpenPowerStationController extends BladeController { + + private final IPowerStationService stationService; + + private final IInverterDataService inverterDataService; + + private final OperationOrderServiceImpl orderService; + + + @PostMapping("/queryList") + @ApiOperationSupport(order = 2) + @Operation(summary = "越秀查询电站列表", description = "传入powerStation") + public R> queryList(StationDTO powerStation, HttpServletRequest request, Query query) { + log.info(getCurrentDomain(request)); + if(checkName(powerStation.getUserName(), powerStation.getPassword())){ + + IPage pages = stationService.queryListForYX(Condition.getPage(query),powerStation); + return R.data(pages); + } + return R.fail(201,"账号认证失败"); + + } + + + public String getCurrentDomain(HttpServletRequest request){ + StringBuffer buffer = request.getRequestURL(); + return buffer.toString(); + } + + @PostMapping("/queryInverterData") + @ApiOperationSupport(order = 2) + @Operation(summary = "越秀查询逆变器数据表", description = "传入powerStation") + public R> queryInverterData(String startTime, String endTime, String userName,String password, Query query) { + if(checkName(userName, password)){ + if(StringUtil.isBlank(startTime)){ + Calendar calendar = Calendar.getInstance(); // 获取当前时间 + calendar.add(Calendar.HOUR_OF_DAY, -1); // 减去一小时 + startTime = DateUtil.formatDateTime(calendar.getTime()); + } + IPage list = inverterDataService.queryYXList(Condition.getPage(query),startTime,endTime); + return R.data(list); + } + return R.fail(201,"账号认证失败"); + } + + @PostMapping("/initLocation") + @ApiOperationSupport(order = 2) + @Operation(summary = "越秀查询工单数据表", description = "传入powerStation") + public R> initLocation(String userName,String password, Query query) { + if(checkName(userName, password)){ + IPage list = orderService.findOrderList(Condition.getPage(query)); + return R.data(list); + } + return R.fail(201,"账号认证失败"); + } + + /** + * 判断账号认证 + */ + public boolean checkName(String name,String pass){ + if("nhkj001".equals(name.trim()) && "Password@123".equals(pass.trim())){ + return true; + } + return false; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/AlarmCodeController.java b/src/main/java/org/springblade/modules/nh/controller/AlarmCodeController.java new file mode 100644 index 0000000..613fcff --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/AlarmCodeController.java @@ -0,0 +1,136 @@ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springblade.modules.nh.pojo.vo.AlarmCodeVO; +import org.springblade.modules.nh.excel.AlarmCodeExcel; +import org.springblade.modules.nh.wrapper.AlarmCodeWrapper; +import org.springblade.modules.nh.service.IAlarmCodeService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 故障代码 控制器 + * + * @author AlexWang + * @since 2024-06-06 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/alarmCode") +@Tag(name = "故障代码", description = "故障代码接口") +public class AlarmCodeController extends BladeController { + + private final IAlarmCodeService alarmCodeService; + + /** + * 故障代码 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入alarmCode") + public R detail(AlarmCodeEntity alarmCode) { + AlarmCodeEntity detail = alarmCodeService.getOne(Condition.getQueryWrapper(alarmCode)); + return R.data(AlarmCodeWrapper.build().entityVO(detail)); + } + /** + * 故障代码 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入alarmCode") + public R> list(@Parameter(hidden = true) @RequestParam Map alarmCode, Query query) { + IPage pages = alarmCodeService.page(Condition.getPage(query), Condition.getQueryWrapper(alarmCode, AlarmCodeEntity.class)); + return R.data(AlarmCodeWrapper.build().pageVO(pages)); + } + + /** + * 故障代码 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入alarmCode") + public R> page(AlarmCodeVO alarmCode, Query query) { + IPage pages = alarmCodeService.selectAlarmCodePage(Condition.getPage(query), alarmCode); + return R.data(pages); + } + + /** + * 故障代码 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入alarmCode") + public R save(@Valid @RequestBody AlarmCodeEntity alarmCode) { + return R.status(alarmCodeService.save(alarmCode)); + } + + /** + * 故障代码 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入alarmCode") + public R update(@Valid @RequestBody AlarmCodeEntity alarmCode) { + return R.status(alarmCodeService.updateById(alarmCode)); + } + + /** + * 故障代码 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入alarmCode") + public R submit(@Valid @RequestBody AlarmCodeEntity alarmCode) { + return R.status(alarmCodeService.saveOrUpdate(alarmCode)); + } + + /** + * 故障代码 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(alarmCodeService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-alarmCode") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入alarmCode") + public void exportAlarmCode(@Parameter(hidden = true) @RequestParam Map alarmCode, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(alarmCode, AlarmCodeEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(AlarmCode::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(AlarmCodeEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = alarmCodeService.exportAlarmCode(queryWrapper); + ExcelUtil.export(response, "故障代码数据" + DateUtil.time(), "故障代码数据表", list, AlarmCodeExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/AlarmInfoController.java b/src/main/java/org/springblade/modules/nh/controller/AlarmInfoController.java new file mode 100644 index 0000000..0f3b031 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/AlarmInfoController.java @@ -0,0 +1,320 @@ +package org.springblade.modules.nh.controller; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.common.constant.MonitorConstants; +import org.springblade.core.mp.support.SqlKeyword; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.service.IDeviceService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springblade.modules.operation.service.IOperationSiteService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.vo.AlarmInfoVO; +import org.springblade.modules.nh.excel.AlarmInfoExcel; +import org.springblade.modules.nh.wrapper.AlarmInfoWrapper; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 设备告警信息表 控制器 + * + * @author AlexWang + * @since 2024-06-03 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/alarmInfo") +@Tag(name = "设备告警信息表", description = "设备告警信息表接口") +public class AlarmInfoController extends BladeController { + + private final IAlarmInfoService alarmInfoService; + + private final IPowerStationService powerStationService; + + private final IDeviceService deviceService; + + private final IOperationSiteService operationSiteService; + + /** + * 设备告警信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入alarmInfo") + public R detail(AlarmInfoEntity alarmInfo) { + AlarmInfoEntity detail = alarmInfoService.getOne(Condition.getQueryWrapper(alarmInfo)); + return R.data(AlarmInfoWrapper.build().entityVO(detail)); + } + /** + * 设备告警信息表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入alarmInfo") + public R> list(@Parameter(hidden = true) @RequestParam Map alarmInfo, Query query) { + + String orderNo = null; + if(alarmInfo.containsKey("orderNo")){ + orderNo = (String) alarmInfo.get("orderNo"); + alarmInfo.remove("orderNo"); + } + StringBuilder stationSql = new StringBuilder("select id from nh_power_station WHERE is_deleted=0"); + boolean stationQueryFlag = false; + if(alarmInfo.containsKey("capitalName")){ + stationSql.append(" AND capital_name='"+alarmInfo.get("capitalName")+"'"); + stationQueryFlag = true; + alarmInfo.remove("capitalName"); + } + if(alarmInfo.containsKey("omProviderName")){ + stationSql.append(" AND om_provider_name='"+alarmInfo.get("omProviderName")+"'"); + stationQueryFlag = true; + alarmInfo.remove("omProviderName"); + } + + QueryWrapper queryWrapper = Condition.getQueryWrapper(alarmInfo, AlarmInfoEntity.class); + + String omid = operationSiteService.getOmProviderId(); + if(StringUtil.isNotBlank(omid)){ + stationSql.append(" AND om_provider_id='"+omid+"'"); + stationQueryFlag = true; + } + if(stationQueryFlag){ + queryWrapper.lambda().inSql(AlarmInfoEntity::getStationId,stationSql.toString()); + } + + if(StringUtil.isNotBlank(orderNo)){ + queryWrapper.lambda().inSql(AlarmInfoEntity::getStationId,"SELECT id from nh_power_station WHERE order_number like '%"+orderNo+"%'"); + + } + + if (!Func.isEmpty(alarmInfo)) { + alarmInfo.forEach((k, v) -> { + if (!Func.hasEmpty(new Object[]{k, v}) && k.endsWith("_ignore")) { + if (k.endsWith("_ignore")) { + queryWrapper.in(StringUtil.replace(k,"_ignore",""), Func.toIntList((String) v)); + } + } + }); + } + + queryWrapper.orderByDesc("id"); + IPage pages = alarmInfoService.page(Condition.getPage(query), queryWrapper); + IPage page = AlarmInfoWrapper.build().pageVO(pages); + page.getRecords().forEach(item->{ + item.setDevice(deviceService.getInverterBySn(item.getSn())); + PowerStationEntity powerStation=powerStationService.getByOutStationId(item.getOutStationId()); + item.setPowerStation(powerStation); + if(powerStation!= null){ + item.setOrderNo(powerStation.getOrderNumber()); + } + }); + return R.data(page); + } + + /** + * 设备告警信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入alarmInfo") + public R> page(AlarmInfoVO alarmInfo, Query query) { + IPage pages = alarmInfoService.selectAlarmInfoPage(Condition.getPage(query), alarmInfo); + return R.data(pages); + } + + /** + * 设备告警信息表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入alarmInfo") + public R save(@Valid @RequestBody AlarmInfoEntity alarmInfo) { + return R.status(alarmInfoService.save(alarmInfo)); + } + + /** + * 设备告警信息表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入alarmInfo") + public R update(@Valid @RequestBody AlarmInfoEntity alarmInfo) { + return R.status(alarmInfoService.updateById(alarmInfo)); + } + + /** + * 设备告警信息表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入alarmInfo") + public R submit(@Valid @RequestBody AlarmInfoEntity alarmInfo) { + return R.status(alarmInfoService.saveOrUpdate(alarmInfo)); + } + + /** + * 设备告警信息表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(alarmInfoService.removeByIds(Func.toLongList(ids))); + } + + /** + * 设备告警信息表 删除 + */ + @PostMapping("/batchClose") + @ApiOperationSupport(order = 7) + @Operation(summary = "批量关闭", description = "传入ids") + public R batchClose(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(AlarmInfoEntity::getId, Func.toLongList(ids)) + .notIn(AlarmInfoEntity::getStatus,MonitorConstants.ALARM_ST_HANDLING,MonitorConstants.ALARM_ST_SOLVED) + .set(AlarmInfoEntity::getCloseStatus, MonitorConstants.ALARM_CLOSE_YES); + boolean result = alarmInfoService.update(updateWrapper); + if(result){ + return R.success("操作成功"); + }else{ + return R.fail("当前电站状态不可操作关闭"); + } + + } + + /** + * 设备告警信息表 删除 + */ + @PostMapping("/batchUnClose") + @ApiOperationSupport(order = 7) + @Operation(summary = "批量关闭", description = "传入ids") + public R batchUnClose(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(AlarmInfoEntity::getId, Func.toLongList(ids)) + .set(AlarmInfoEntity::getCloseStatus, MonitorConstants.ALARM_CLOSE_NO); + return R.status(alarmInfoService.update(updateWrapper)); + } + + /** + * 设备告警信息 + */ + @PostMapping("/batchApplyError") + @ApiOperationSupport(order = 7) + @Operation(summary = "设备告警信息申报故障", description = "传入ids") + public R batchApplyError(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(AlarmInfoEntity::getId, Func.toLongList(ids)) + .eq(AlarmInfoEntity::getStatus, MonitorConstants.ALARM_ST_NOT_CONFIRMED) + .set(AlarmInfoEntity::getStatus, MonitorConstants.ALARM_ST_UNHANDLED); + alarmInfoService.update(updateWrapper); + return R.success("申报故障成功"); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-alarmInfo") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入alarmInfo") + public void exportAlarmInfo(@Parameter(hidden = true) @RequestParam Map alarmInfo, BladeUser bladeUser, HttpServletResponse response) { + + + + //QueryWrapper queryWrapper = Condition.getQueryWrapper(alarmInfo, AlarmInfoEntity.class); + String orderNo = null; + if(alarmInfo.containsKey("orderNo")){ + orderNo = (String) alarmInfo.get("orderNo"); + alarmInfo.remove("orderNo"); + } + StringBuilder stationSql = new StringBuilder("select id from nh_power_station WHERE is_deleted=0"); + boolean stationQueryFlag = false; + if(alarmInfo.containsKey("capitalName")){ + stationSql.append(" AND capital_name='"+alarmInfo.get("capitalName")+"'"); + stationQueryFlag = true; + alarmInfo.remove("capitalName"); + } + if(alarmInfo.containsKey("omProviderName")){ + stationSql.append(" AND om_provider_name='"+alarmInfo.get("omProviderName")+"'"); + stationQueryFlag = true; + alarmInfo.remove("omProviderName"); + } + + QueryWrapper queryWrapper = Condition.getQueryWrapper(alarmInfo, AlarmInfoEntity.class); + + String omid = operationSiteService.getOmProviderId(); + if(StringUtil.isNotBlank(omid)){ + stationSql.append(" AND om_provider_id='"+omid+"'"); + stationQueryFlag = true; + } + if(stationQueryFlag){ + queryWrapper.lambda().inSql(AlarmInfoEntity::getStationId,stationSql.toString()); + } + + if(StringUtil.isNotBlank(orderNo)){ + queryWrapper.lambda().inSql(AlarmInfoEntity::getId,"SELECT alarm_id from sf_operation_order WHERE number like '%"+orderNo+"%'"); + + } + + if (!Func.isEmpty(alarmInfo)) { + alarmInfo.forEach((k, v) -> { + if (!Func.hasEmpty(new Object[]{k, v}) && k.endsWith("_ignore")) { + if (k.endsWith("_ignore")) { + queryWrapper.in(StringUtil.replace(k,"_ignore",""), Func.toIntList((String) v)); + } + } + }); + } + + queryWrapper.orderByDesc("id"); + queryWrapper.lambda().eq(AlarmInfoEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = alarmInfoService.exportAlarmInfo(queryWrapper); + list.forEach(item->{ + PowerStationEntity powerStation=powerStationService.getByOutStationId(item.getOutStationId()); + if(powerStation!= null){ + item.setCapitalName(powerStation.getCapitalName()); + item.setOrderNumber(powerStation.getOrderNumber()); + item.setOmProviderName(powerStation.getOmProviderName()); + } + + }); + ExcelUtil.export(response, "设备告警信息表数据" + DateUtil.time(), "设备告警信息表数据表", list, AlarmInfoExcel.class); + } + /** + * 转运维 + */ + @PostMapping("/turnMaintenance") + @ApiOperationSupport(order = 7) + @Operation(summary = "转运维", description = "传入id") + public R turnMaintenance(@Parameter(name = "id", required = true) @RequestParam String id) { + + return alarmInfoService.turnMaintenance(id); + } + + + + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/DeviceController.java b/src/main/java/org/springblade/modules/nh/controller/DeviceController.java new file mode 100644 index 0000000..4f33238 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/DeviceController.java @@ -0,0 +1,221 @@ +package org.springblade.modules.nh.controller; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.material.pojo.entity.MaterialEntity; +import org.springblade.modules.nh.excel.PowerStationImport; +import org.springblade.modules.nh.excel.PowerStationImporter; +import org.springblade.modules.nh.pojo.entity.DeviceMsgEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.excel.DeviceExcel; +import org.springblade.modules.nh.wrapper.DeviceWrapper; +import org.springblade.modules.nh.service.IDeviceService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.multipart.MultipartFile; + +/** + * 设备管理 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/device") +@Tag(name = "设备管理", description = "设备管理接口") +public class DeviceController extends BladeController { + + private final IDeviceService deviceService; + + private final IPowerStationService powerStationService; + + private final IMonitorInverterDailyStatService dailyStatService; + + /** + * 设备管理 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入device") + public R detail(DeviceEntity device) { + DeviceVO detail = deviceService.getDetail(device.getId()); + return R.data(detail); + } + + /** + * 设备管理 详情 + */ + @GetMapping("/getInverterGraph") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入device") + public R getInverterGraph(String sn, String time) { + return R.data(dailyStatService.getInverterGraph(sn,time)); + } + + /** + * 设备管理 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入device") + public R> list(@Parameter(hidden = true) @RequestParam Map device, Query query) { + if(device.get("stationCode") != null){ + PowerStationEntity entity = powerStationService.getStationDetailByPowCode(device.get("stationCode").toString()); + device.put("stationId",entity.getId()); + device.remove("stationCode"); + } + IPage pages = deviceService.page(Condition.getPage(query), Condition.getQueryWrapper(device, DeviceEntity.class)); + + IPage result = DeviceWrapper.build().pageVO(pages); + result.getRecords().forEach(vo->{ + deviceService.fillDetail(vo); + }); + + return R.data(result); + } + + /** + * 设备管理 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入device") + public R> page(DeviceVO device, Query query) { + IPage pages = deviceService.selectDevicePage(Condition.getPage(query), device); + return R.data(pages); + } + + /** + * 设备管理 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入device") + public R save(@Valid @RequestBody DeviceEntity device) { + return R.status(deviceService.save(device)); + } + + /** + * 设备管理 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入device") + public R update(@Valid @RequestBody DeviceEntity device) { + return R.status(deviceService.updateById(device)); + } + + /** + * 设备管理 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入device") + public R submit(@Valid @RequestBody DeviceEntity device) { + return R.status(deviceService.saveOrUpdate(device)); + } + + /** + * 设备管理 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除电站和设备", description = "电站ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + + powerStationService.removeByIds(Func.toLongList(ids)); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(DeviceEntity::getStationId,Func.toLongList(ids)) + .set(DeviceEntity::getIsDeleted,1); + return R.status(deviceService.update(updateWrapper)); + } + + /** + * 更新SN + */ + @GetMapping("/updateSn") + @ApiOperationSupport(order = 7) + @Operation(summary = "更新SN", description = "") + public R updateSn(@Parameter(name = "主键集合", required = true) @RequestParam String id, + @Parameter(name = "SN编码", required = true) @RequestParam String sn) { + deviceService.updateSn(Long.parseLong(id),sn); + return R.success("更新成功"); + } + + //获取修改sn过程信息 + @GetMapping("/editSnMsg") + @ApiOperationSupport(order = 10) + @Operation(summary = "获取修改sn过程信息",description = "") + public R> editSnMsg(@Parameter(name = "设备id", required = true) @RequestParam String id){ + List list=deviceService.editSnMsg(id); + return R.data(list); + } + + /** + * 根棍首日发电时间 + */ + @PostMapping("/updateGenDate") + @ApiOperationSupport(order = 7) + @Operation(summary = "更新首日发电时间", description = "") + public R updateGenDate(@Parameter(name = "id",description = "电站id", required = true) @RequestParam String id, + @Parameter(name = "time",description = "日期", required = true) @RequestParam String time){ + + return R.status(deviceService.updateGenDate(id, time)); + } + + /** + * 导出数据 + */ + @GetMapping("/export-device") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入device") + public void exportDevice(@Parameter(hidden = true) @RequestParam Map device, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(device, DeviceEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(Device::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(DeviceEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = deviceService.exportDevice(queryWrapper); + ExcelUtil.export(response, "设备管理数据" + DateUtil.time(), "设备管理数据表", list, DeviceExcel.class); + } + + /** + * 导入历史电站 + */ + @PostMapping("import-powerStation") + @ApiOperationSupport(order = 13) + @Operation(summary = "导入电站", description = "传入excel") + public R importUser(MultipartFile file) { + PowerStationImporter importer = new PowerStationImporter(deviceService,false); + ExcelUtil.save(file, importer, PowerStationImport.class); + return R.success("操作成功"); + } +} diff --git a/src/main/java/org/springblade/modules/nh/controller/HomePageController.java b/src/main/java/org/springblade/modules/nh/controller/HomePageController.java new file mode 100644 index 0000000..7376418 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/HomePageController.java @@ -0,0 +1,141 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.DeviceExcel; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.service.IDeviceService; +import org.springblade.modules.nh.service.INHCommonService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springblade.modules.nh.wrapper.DeviceWrapper; +import org.springblade.modules.order.pojo.vo.OrderHomeVo; +import org.springblade.modules.order.pojo.vo.OrderStaticVo; +import org.springblade.modules.order.service.IOperationOrderService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 设备管理 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/home") +@Tag(name = "设备管理", description = "设备管理接口") +public class HomePageController extends BladeController { + + private final INHCommonService commonService; + + private final IPowerStationService stationService; + + private final BladeRedis bladeRedis; + + private final IOperationOrderService operationOrderService; + + /** + * 设备管理 详情 + */ + @GetMapping("/weather") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取天气信息", description = "传入电站ID") + public R weather(Long stationId,String area,String stationCode) { + if(stationId!=null && StringUtil.isBlank(area)){ + PowerStationEntity stationEntity = stationService.getById(stationId); + if(stationEntity!=null){ + area = stationEntity.getCity(); + } + }else if(StringUtil.isNotBlank(stationCode) && StringUtil.isBlank(area)){ + PowerStationEntity stationEntity = stationService.getStationDetailByPowCode(stationCode); + if(stationEntity!=null){ + area = stationEntity.getCity(); + } + } + + return commonService.queryWeather(area); + } + + /** + * 设备管理 详情 + */ + @GetMapping("/weatherHistory") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取天气历史记录", description = "传入电站ID") + public R weatherHistory(Long stationId,String area,String day) { + if(stationId!=null && StringUtil.isBlank(area)){ + PowerStationEntity stationEntity = stationService.getById(stationId); + if(stationEntity!=null){ + area = stationEntity.getCity(); + } + } + return commonService.queryWeatherHistory(area, day); + } + + @GetMapping(value = "homeOrderStatic") + @ApiOperationSupport(order = 20) + @Operation(summary = "获取首页统计的工单已处理/未处理数据") + public R homeOrderStatic(){ + OrderStaticVo staticVo=operationOrderService.homeOrderStatic(); + return R.data(staticVo); + } + + + @GetMapping(value = "pcOrderHomeIndex") + @ApiOperationSupport(order = 25) + @Operation(summary = "获取运维商端工单数据待接单、服务中、已完成") + public R pcOrderHomeIndex(){ + OrderHomeVo staticVo=operationOrderService.pcOrderHomeIndex(); + return R.data(staticVo); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/InefficientSettingController.java b/src/main/java/org/springblade/modules/nh/controller/InefficientSettingController.java new file mode 100644 index 0000000..c4a304d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/InefficientSettingController.java @@ -0,0 +1,177 @@ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.nh.excel.InefficientSettingImporter; +import org.springblade.modules.system.excel.UserExcel; +import org.springblade.modules.system.excel.UserImporter; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.vo.InefficientSettingVO; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import org.springblade.modules.nh.wrapper.InefficientSettingWrapper; +import org.springblade.modules.nh.service.IInefficientSettingService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; + +import java.util.ArrayList; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.multipart.MultipartFile; + +/** + * 低效电站设置 控制器 + * + * @author AlexWang + * @since 2024-06-14 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/inefficientSetting") +@Tag(name = "低效电站设置", description = "低效电站设置接口") +public class InefficientSettingController extends BladeController { + + private final IInefficientSettingService inefficientSettingService; + + /** + * 低效电站设置 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入inefficientSetting") + public R detail(InefficientSettingEntity inefficientSetting) { + InefficientSettingEntity detail = inefficientSettingService.getOne(Condition.getQueryWrapper(inefficientSetting)); + return R.data(InefficientSettingWrapper.build().entityVO(detail)); + } + /** + * 低效电站设置 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入inefficientSetting") + public R> list(@Parameter(hidden = true) @RequestParam Map inefficientSetting, Query query) { + IPage pages = inefficientSettingService.page(Condition.getPage(query), Condition.getQueryWrapper(inefficientSetting, InefficientSettingEntity.class)); + return R.data(InefficientSettingWrapper.build().pageVO(pages)); + } + + /** + * 低效电站设置 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入inefficientSetting") + public R> page(InefficientSettingVO inefficientSetting, Query query) { + IPage pages = inefficientSettingService.selectInefficientSettingPage(Condition.getPage(query), inefficientSetting); + return R.data(pages); + } + + /** + * 低效电站设置 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入inefficientSetting") + public R save(@Valid @RequestBody InefficientSettingEntity inefficientSetting) { + return R.status(inefficientSettingService.save(inefficientSetting)); + } + + /** + * 低效电站设置 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入inefficientSetting") + public R update(@Valid @RequestBody InefficientSettingEntity inefficientSetting) { + return R.status(inefficientSettingService.updateById(inefficientSetting)); + } + + /** + * 低效电站设置 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入inefficientSetting") + public R submit(@Valid @RequestBody InefficientSettingEntity inefficientSetting) { + + //累加12个月的合计有效发电时间 + Double total = 0D; + for(int i=1;i<=12;i++){ + Object val = CommonUtil.reflectGetField(inefficientSetting,"guardHourM"+i); + if(val!=null){ + total += (Double) val; + } + } + inefficientSetting.setGuardHourTotal(total); + + return R.status(inefficientSettingService.saveOrUpdate(inefficientSetting)); + } + + /** + * 低效电站设置 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(inefficientSettingService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-inefficientSetting") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入inefficientSetting") + public void exportInefficientSetting(@Parameter(hidden = true) @RequestParam Map inefficientSetting, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(inefficientSetting, InefficientSettingEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(InefficientSetting::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(InefficientSettingEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = inefficientSettingService.exportInefficientSetting(queryWrapper); + ExcelUtil.export(response, "低效电站设置数据" + DateUtil.time(), "低效电站设置数据表", list, InefficientSettingExcel.class); + } + + + /** + * 导入 + */ + @PostMapping("import-inefficientSetting") + @ApiOperationSupport(order = 12) + @Operation(summary = "导入用户", description = "传入excel") + public R importUser(MultipartFile file) { + InefficientSettingImporter userImporter = new InefficientSettingImporter(inefficientSettingService,false); + ExcelUtil.save(file, userImporter, InefficientSettingExcel.class); + return R.success("操作成功"); + } + + /** + * 导出模板 + */ + @GetMapping("export-template") + @ApiOperationSupport(order = 14) + @Operation(summary = "导出模板") + public void exportUser(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "低效电站配置数据模板", "低效电站配置数据表", list, InefficientSettingExcel.class); + } +} diff --git a/src/main/java/org/springblade/modules/nh/controller/InverterDataController.java b/src/main/java/org/springblade/modules/nh/controller/InverterDataController.java new file mode 100644 index 0000000..75b9e88 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/InverterDataController.java @@ -0,0 +1,144 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.nh.pojo.vo.InverterDataVO; +import org.springblade.modules.nh.excel.InverterDataExcel; +import org.springblade.modules.nh.wrapper.InverterDataWrapper; +import org.springblade.modules.nh.service.IInverterDataService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 逆变器数据表 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/inverterData") +@Tag(name = "逆变器数据表", description = "逆变器数据表接口") +public class InverterDataController extends BladeController { + + private final IInverterDataService inverterDataService; + + /** + * 逆变器数据表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入inverterData") + public R detail(InverterDataEntity inverterData) { + InverterDataEntity detail = inverterDataService.getOne(Condition.getQueryWrapper(inverterData)); + return R.data(InverterDataWrapper.build().entityVO(detail)); + } + /** + * 逆变器数据表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入inverterData") + public R> list(@Parameter(hidden = true) @RequestParam Map inverterData, Query query) { + IPage pages = inverterDataService.page(Condition.getPage(query), Condition.getQueryWrapper(inverterData, InverterDataEntity.class)); + return R.data(InverterDataWrapper.build().pageVO(pages)); + } + + /** + * 逆变器数据表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入inverterData") + public R> page(InverterDataVO inverterData, Query query) { + IPage pages = inverterDataService.selectInverterDataPage(Condition.getPage(query), inverterData); + return R.data(pages); + } + + /** + * 逆变器数据表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入inverterData") + public R save(@Valid @RequestBody InverterDataEntity inverterData) { + return R.status(inverterDataService.save(inverterData)); + } + + /** + * 逆变器数据表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入inverterData") + public R update(@Valid @RequestBody InverterDataEntity inverterData) { + return R.status(inverterDataService.updateById(inverterData)); + } + + /** + * 逆变器数据表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入inverterData") + public R submit(@Valid @RequestBody InverterDataEntity inverterData) { + return R.status(inverterDataService.saveOrUpdate(inverterData)); + } + + /** + * 逆变器数据表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(inverterDataService.removeByIds(Func.toLongList(ids))); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/InverterUapController.java b/src/main/java/org/springblade/modules/nh/controller/InverterUapController.java new file mode 100644 index 0000000..b8fe920 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/InverterUapController.java @@ -0,0 +1,145 @@ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.modules.nh.pojo.vo.InverterUapVO; +import org.springblade.modules.nh.excel.InverterUapExcel; +import org.springblade.modules.nh.wrapper.InverterUapWrapper; +import org.springblade.modules.nh.service.IInverterUapService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 逆变器电流电压功率数据 控制器 + * + * @author AlexWang + * @since 2024-11-21 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/inverterUap") +@Tag(name = "逆变器电流电压功率数据", description = "逆变器电流电压功率数据接口") +public class InverterUapController extends BladeController { + + private final IInverterUapService inverterUapService; + + /** + * 逆变器电流电压功率数据 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入inverterUap") + public R detail(InverterUapEntity inverterUap) { + InverterUapEntity detail = inverterUapService.getOne(Condition.getQueryWrapper(inverterUap)); + return R.data(InverterUapWrapper.build().entityVO(detail)); + } + /** + * 逆变器电流电压功率数据 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入inverterUap") + public R> list(@Parameter(hidden = true) @RequestParam Map inverterUap, Query query) { + IPage pages = inverterUapService.page(Condition.getPage(query), Condition.getQueryWrapper(inverterUap, InverterUapEntity.class)); + return R.data(InverterUapWrapper.build().pageVO(pages)); + } + + /** + * 逆变器电流电压功率数据 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入inverterUap") + public R> page(InverterUapVO inverterUap, Query query) { + IPage pages = inverterUapService.selectInverterUapPage(Condition.getPage(query), inverterUap); + return R.data(pages); + } + + /** + * 逆变器电流电压功率数据 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入inverterUap") + public R save(@Valid @RequestBody InverterUapEntity inverterUap) { + return R.status(inverterUapService.save(inverterUap)); + } + + /** + * 逆变器电流电压功率数据 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入inverterUap") + public R update(@Valid @RequestBody InverterUapEntity inverterUap) { + return R.status(inverterUapService.updateById(inverterUap)); + } + + /** + * 逆变器电流电压功率数据 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入inverterUap") + public R submit(@Valid @RequestBody InverterUapEntity inverterUap) { + return R.status(inverterUapService.saveOrUpdate(inverterUap)); + } + + /** + * 逆变器电流电压功率数据 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(inverterUapService.removeByIds(Func.toLongList(ids))); + } + + @GetMapping(value = "inverterMap") + @Operation(summary = "设备电流电压趋势") + public Map inverterMap(@Parameter(name = "outStationId", required = true,description = "电站外部id")String outStationId, + @Parameter(name = "stateTime", required = true,description = "当前日期")String stateTime, + @Parameter(name = "ivType", required = true,description = "参数类型,voltage:电压,electricCurrent:电流 ,power:功率")String ivType) { + return inverterUapService.inverterMap(outStationId, stateTime, ivType); + } + + +// /** +// * 导出数据 +// */ +// @PreAuth(RoleConstant.HAS_ROLE_ADMIN) +// @GetMapping("/export-inverterUap") +// @ApiOperationSupport(order = 9) +// @Operation(summary = "导出数据", description = "传入inverterUap") +// public void exportInverterUap(@Parameter(hidden = true) @RequestParam Map inverterUap, BladeUser bladeUser, HttpServletResponse response) { +// QueryWrapper queryWrapper = Condition.getQueryWrapper(inverterUap, InverterUapEntity.class); +// //if (!AuthUtil.isAdministrator()) { +// // queryWrapper.lambda().eq(InverterUap::getTenantId, bladeUser.getTenantId()); +// //} +// queryWrapper.lambda().eq(InverterUapEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); +// List list = inverterUapService.exportInverterUap(queryWrapper); +// ExcelUtil.export(response, "逆变器电流电压功率数据数据" + DateUtil.time(), "逆变器电流电压功率数据数据表", list, InverterUapExcel.class); +// } + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.java b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.java new file mode 100644 index 0000000..ad2f3d5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.java @@ -0,0 +1,144 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryDailyStatVO; +import org.springblade.modules.nh.excel.MonitorEntryDailyStatExcel; +import org.springblade.modules.nh.wrapper.MonitorEntryDailyStatWrapper; +import org.springblade.modules.nh.service.IMonitorEntryDailyStatService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 电站日统计数据 控制器 + * + * @author AlexWang + * @since 2024-06-02 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/monitorEntryDailyStat") +@Tag(name = "电站日统计数据", description = "电站日统计数据接口") +public class MonitorEntryDailyStatController extends BladeController { + + private final IMonitorEntryDailyStatService monitorEntryDailyStatService; + + /** + * 电站日统计数据 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入monitorEntryDailyStat") + public R detail(MonitorEntryDailyStatEntity monitorEntryDailyStat) { + MonitorEntryDailyStatEntity detail = monitorEntryDailyStatService.getOne(Condition.getQueryWrapper(monitorEntryDailyStat)); + return R.data(MonitorEntryDailyStatWrapper.build().entityVO(detail)); + } + /** + * 电站日统计数据 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入monitorEntryDailyStat") + public R> list(@Parameter(hidden = true) @RequestParam Map monitorEntryDailyStat, Query query) { + IPage pages = monitorEntryDailyStatService.page(Condition.getPage(query), Condition.getQueryWrapper(monitorEntryDailyStat, MonitorEntryDailyStatEntity.class)); + return R.data(MonitorEntryDailyStatWrapper.build().pageVO(pages)); + } + + /** + * 电站日统计数据 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入monitorEntryDailyStat") + public R> page(MonitorEntryDailyStatVO monitorEntryDailyStat, Query query) { + IPage pages = monitorEntryDailyStatService.selectMonitorEntryDailyStatPage(Condition.getPage(query), monitorEntryDailyStat); + return R.data(pages); + } + + /** + * 电站日统计数据 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入monitorEntryDailyStat") + public R save(@Valid @RequestBody MonitorEntryDailyStatEntity monitorEntryDailyStat) { + return R.status(monitorEntryDailyStatService.save(monitorEntryDailyStat)); + } + + /** + * 电站日统计数据 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入monitorEntryDailyStat") + public R update(@Valid @RequestBody MonitorEntryDailyStatEntity monitorEntryDailyStat) { + return R.status(monitorEntryDailyStatService.updateById(monitorEntryDailyStat)); + } + + /** + * 电站日统计数据 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入monitorEntryDailyStat") + public R submit(@Valid @RequestBody MonitorEntryDailyStatEntity monitorEntryDailyStat) { + return R.status(monitorEntryDailyStatService.saveOrUpdate(monitorEntryDailyStat)); + } + + /** + * 电站日统计数据 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(monitorEntryDailyStatService.removeByIds(Func.toLongList(ids))); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.java b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.java new file mode 100644 index 0000000..d98e44f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryMonthStatVO; +import org.springblade.modules.nh.excel.MonitorEntryMonthStatExcel; +import org.springblade.modules.nh.wrapper.MonitorEntryMonthStatWrapper; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 电站月统计数据 控制器 + * + * @author AlexWang + * @since 2024-06-02 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/monitorEntryMonthStat") +@Tag(name = "电站月统计数据", description = "电站月统计数据接口") +public class MonitorEntryMonthStatController extends BladeController { + + private final IMonitorEntryMonthStatService monitorEntryMonthStatService; + + /** + * 电站月统计数据 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入monitorEntryMonthStat") + public R detail(MonitorEntryMonthStatEntity monitorEntryMonthStat) { + MonitorEntryMonthStatEntity detail = monitorEntryMonthStatService.getOne(Condition.getQueryWrapper(monitorEntryMonthStat)); + return R.data(MonitorEntryMonthStatWrapper.build().entityVO(detail)); + } + /** + * 电站月统计数据 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入monitorEntryMonthStat") + public R> list(@Parameter(hidden = true) @RequestParam Map monitorEntryMonthStat, Query query) { + IPage pages = monitorEntryMonthStatService.page(Condition.getPage(query), Condition.getQueryWrapper(monitorEntryMonthStat, MonitorEntryMonthStatEntity.class)); + return R.data(MonitorEntryMonthStatWrapper.build().pageVO(pages)); + } + + /** + * 电站月统计数据 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入monitorEntryMonthStat") + public R> page(MonitorEntryMonthStatVO monitorEntryMonthStat, Query query) { + IPage pages = monitorEntryMonthStatService.selectMonitorEntryMonthStatPage(Condition.getPage(query), monitorEntryMonthStat); + return R.data(pages); + } + + /** + * 电站月统计数据 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入monitorEntryMonthStat") + public R save(@Valid @RequestBody MonitorEntryMonthStatEntity monitorEntryMonthStat) { + return R.status(monitorEntryMonthStatService.save(monitorEntryMonthStat)); + } + + /** + * 电站月统计数据 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入monitorEntryMonthStat") + public R update(@Valid @RequestBody MonitorEntryMonthStatEntity monitorEntryMonthStat) { + return R.status(monitorEntryMonthStatService.updateById(monitorEntryMonthStat)); + } + + /** + * 电站月统计数据 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入monitorEntryMonthStat") + public R submit(@Valid @RequestBody MonitorEntryMonthStatEntity monitorEntryMonthStat) { + return R.status(monitorEntryMonthStatService.saveOrUpdate(monitorEntryMonthStat)); + } + + /** + * 电站月统计数据 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(monitorEntryMonthStatService.removeByIds(Func.toLongList(ids))); + } + + + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/MonitorEntryStatController.java b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryStatController.java new file mode 100644 index 0000000..dc872c2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryStatController.java @@ -0,0 +1,143 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.excel.MonitorEntryStatExcel; +import org.springblade.modules.nh.wrapper.MonitorEntryStatWrapper; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 外部电站同步 控制器 + * + * @author AlexWang + * @since 2024-06-01 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/monitorEntryStat") +@Tag(name = "外部电站同步", description = "外部电站同步接口") +public class MonitorEntryStatController extends BladeController { + + private final IMonitorEntryStatService monitorEntryStatService; + + /** + * 外部电站同步 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入monitorEntryStat") + public R detail(MonitorEntryStatEntity monitorEntryStat) { + MonitorEntryStatEntity detail = monitorEntryStatService.getOne(Condition.getQueryWrapper(monitorEntryStat)); + return R.data(MonitorEntryStatWrapper.build().entityVO(detail)); + } + /** + * 外部电站同步 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入monitorEntryStat") + public R> list(@Parameter(hidden = true) @RequestParam Map monitorEntryStat, Query query) { + IPage pages = monitorEntryStatService.page(Condition.getPage(query), Condition.getQueryWrapper(monitorEntryStat, MonitorEntryStatEntity.class)); + return R.data(MonitorEntryStatWrapper.build().pageVO(pages)); + } + + /** + * 外部电站同步 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入monitorEntryStat") + public R> page(MonitorEntryStatVO monitorEntryStat, Query query) { + IPage pages = monitorEntryStatService.selectMonitorEntryStatPage(Condition.getPage(query), monitorEntryStat); + return R.data(pages); + } + + /** + * 外部电站同步 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入monitorEntryStat") + public R save(@Valid @RequestBody MonitorEntryStatEntity monitorEntryStat) { + return R.status(monitorEntryStatService.save(monitorEntryStat)); + } + + /** + * 外部电站同步 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入monitorEntryStat") + public R update(@Valid @RequestBody MonitorEntryStatEntity monitorEntryStat) { + return R.status(monitorEntryStatService.updateById(monitorEntryStat)); + } + + /** + * 外部电站同步 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入monitorEntryStat") + public R submit(@Valid @RequestBody MonitorEntryStatEntity monitorEntryStat) { + return R.status(monitorEntryStatService.saveOrUpdate(monitorEntryStat)); + } + + /** + * 外部电站同步 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(monitorEntryStatService.removeByIds(Func.toLongList(ids))); + } +} diff --git a/src/main/java/org/springblade/modules/nh/controller/MonitorEntryYearStatController.java b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryYearStatController.java new file mode 100644 index 0000000..a716723 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/MonitorEntryYearStatController.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryYearStatVO; +import org.springblade.modules.nh.excel.MonitorEntryYearStatExcel; +import org.springblade.modules.nh.wrapper.MonitorEntryYearStatWrapper; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 电站能量按年统计 控制器 + * + * @author AlexWang + * @since 2024-06-02 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/monitorEntryYearStat") +@Tag(name = "电站能量按年统计", description = "电站能量按年统计接口") +public class MonitorEntryYearStatController extends BladeController { + + private final IMonitorEntryYearStatService monitorEntryYearStatService; + + /** + * 电站能量按年统计 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入monitorEntryYearStat") + public R detail(MonitorEntryYearStatEntity monitorEntryYearStat) { + MonitorEntryYearStatEntity detail = monitorEntryYearStatService.getOne(Condition.getQueryWrapper(monitorEntryYearStat)); + return R.data(MonitorEntryYearStatWrapper.build().entityVO(detail)); + } + /** + * 电站能量按年统计 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入monitorEntryYearStat") + public R> list(@Parameter(hidden = true) @RequestParam Map monitorEntryYearStat, Query query) { + IPage pages = monitorEntryYearStatService.page(Condition.getPage(query), Condition.getQueryWrapper(monitorEntryYearStat, MonitorEntryYearStatEntity.class)); + return R.data(MonitorEntryYearStatWrapper.build().pageVO(pages)); + } + + /** + * 电站能量按年统计 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入monitorEntryYearStat") + public R> page(MonitorEntryYearStatVO monitorEntryYearStat, Query query) { + IPage pages = monitorEntryYearStatService.selectMonitorEntryYearStatPage(Condition.getPage(query), monitorEntryYearStat); + return R.data(pages); + } + + /** + * 电站能量按年统计 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入monitorEntryYearStat") + public R save(@Valid @RequestBody MonitorEntryYearStatEntity monitorEntryYearStat) { + return R.status(monitorEntryYearStatService.save(monitorEntryYearStat)); + } + + /** + * 电站能量按年统计 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入monitorEntryYearStat") + public R update(@Valid @RequestBody MonitorEntryYearStatEntity monitorEntryYearStat) { + return R.status(monitorEntryYearStatService.updateById(monitorEntryYearStat)); + } + + /** + * 电站能量按年统计 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入monitorEntryYearStat") + public R submit(@Valid @RequestBody MonitorEntryYearStatEntity monitorEntryYearStat) { + return R.status(monitorEntryYearStatService.saveOrUpdate(monitorEntryYearStat)); + } + + /** + * 电站能量按年统计 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(monitorEntryYearStatService.removeByIds(Func.toLongList(ids))); + } + + + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.java b/src/main/java/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.java new file mode 100644 index 0000000..4aae3a4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.java @@ -0,0 +1,143 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterDailyStatVO; +import org.springblade.modules.nh.wrapper.MonitorInverterDailyStatWrapper; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 逆变器日数据 控制器 + * + * @author AlexWang + * @since 2024-06-07 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/monitorInverterDailyStat") +@Tag(name = "逆变器日数据", description = "逆变器日数据接口") +public class MonitorInverterDailyStatController extends BladeController { + + private final IMonitorInverterDailyStatService monitorInverterDailyStatService; + + /** + * 逆变器日数据 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入monitorInverterDailyStat") + public R detail(MonitorInverterDailyStatEntity monitorInverterDailyStat) { + MonitorInverterDailyStatEntity detail = monitorInverterDailyStatService.getOne(Condition.getQueryWrapper(monitorInverterDailyStat)); + return R.data(MonitorInverterDailyStatWrapper.build().entityVO(detail)); + } + /** + * 逆变器日数据 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入monitorInverterDailyStat") + public R> list(@Parameter(hidden = true) @RequestParam Map monitorInverterDailyStat, Query query) { + IPage pages = monitorInverterDailyStatService.page(Condition.getPage(query), Condition.getQueryWrapper(monitorInverterDailyStat, MonitorInverterDailyStatEntity.class)); + return R.data(MonitorInverterDailyStatWrapper.build().pageVO(pages)); + } + + /** + * 逆变器日数据 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入monitorInverterDailyStat") + public R> page(MonitorInverterDailyStatVO monitorInverterDailyStat, Query query) { + IPage pages = monitorInverterDailyStatService.selectMonitorInverterDailyStatPage(Condition.getPage(query), monitorInverterDailyStat); + return R.data(pages); + } + + /** + * 逆变器日数据 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入monitorInverterDailyStat") + public R save(@Valid @RequestBody MonitorInverterDailyStatEntity monitorInverterDailyStat) { + return R.status(monitorInverterDailyStatService.save(monitorInverterDailyStat)); + } + + /** + * 逆变器日数据 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入monitorInverterDailyStat") + public R update(@Valid @RequestBody MonitorInverterDailyStatEntity monitorInverterDailyStat) { + return R.status(monitorInverterDailyStatService.updateById(monitorInverterDailyStat)); + } + + /** + * 逆变器日数据 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入monitorInverterDailyStat") + public R submit(@Valid @RequestBody MonitorInverterDailyStatEntity monitorInverterDailyStat) { + return R.status(monitorInverterDailyStatService.saveOrUpdate(monitorInverterDailyStat)); + } + + /** + * 逆变器日数据 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(monitorInverterDailyStatService.removeByIds(Func.toLongList(ids))); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/MonitorInverterStatController.java b/src/main/java/org/springblade/modules/nh/controller/MonitorInverterStatController.java new file mode 100644 index 0000000..f67d9ba --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/MonitorInverterStatController.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterStatVO; +import org.springblade.modules.nh.excel.MonitorInverterStatExcel; +import org.springblade.modules.nh.wrapper.MonitorInverterStatWrapper; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 厂家逆变器表 控制器 + * + * @author AlexWang + * @since 2024-06-02 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/monitorInverterStat") +@Tag(name = "厂家逆变器表", description = "厂家逆变器表接口") +public class MonitorInverterStatController extends BladeController { + + private final IMonitorInverterStatService monitorInverterStatService; + + /** + * 厂家逆变器表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入monitorInverterStat") + public R detail(MonitorInverterStatEntity monitorInverterStat) { + MonitorInverterStatEntity detail = monitorInverterStatService.getOne(Condition.getQueryWrapper(monitorInverterStat)); + return R.data(MonitorInverterStatWrapper.build().entityVO(detail)); + } + /** + * 厂家逆变器表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入monitorInverterStat") + public R> list(@Parameter(hidden = true) @RequestParam Map monitorInverterStat, Query query) { + IPage pages = monitorInverterStatService.page(Condition.getPage(query), Condition.getQueryWrapper(monitorInverterStat, MonitorInverterStatEntity.class)); + return R.data(MonitorInverterStatWrapper.build().pageVO(pages)); + } + + /** + * 厂家逆变器表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入monitorInverterStat") + public R> page(MonitorInverterStatVO monitorInverterStat, Query query) { + IPage pages = monitorInverterStatService.selectMonitorInverterStatPage(Condition.getPage(query), monitorInverterStat); + return R.data(pages); + } + + /** + * 厂家逆变器表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入monitorInverterStat") + public R save(@Valid @RequestBody MonitorInverterStatEntity monitorInverterStat) { + return R.status(monitorInverterStatService.save(monitorInverterStat)); + } + + /** + * 厂家逆变器表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入monitorInverterStat") + public R update(@Valid @RequestBody MonitorInverterStatEntity monitorInverterStat) { + return R.status(monitorInverterStatService.updateById(monitorInverterStat)); + } + + /** + * 厂家逆变器表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入monitorInverterStat") + public R submit(@Valid @RequestBody MonitorInverterStatEntity monitorInverterStat) { + return R.status(monitorInverterStatService.saveOrUpdate(monitorInverterStat)); + } + + /** + * 厂家逆变器表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(monitorInverterStatService.removeByIds(Func.toLongList(ids))); + } + + + +} diff --git a/src/main/java/org/springblade/modules/nh/controller/PowerStationController.java b/src/main/java/org/springblade/modules/nh/controller/PowerStationController.java new file mode 100644 index 0000000..5abe8b4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/PowerStationController.java @@ -0,0 +1,475 @@ +package org.springblade.modules.nh.controller; + +import com.alibaba.excel.exception.ExcelAnalysisException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.material.excel.MaterialImporter; +import org.springblade.modules.nh.excel.MaterialExcel; +import org.springblade.modules.nh.excel.PowerStationImport; +import org.springblade.modules.nh.excel.PowerStationImporter; +import org.springblade.modules.nh.job.InefficientScheduler; +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.dto.StationDTO; +import org.springblade.modules.nh.pojo.vo.InverterTreeVO; +import org.springblade.modules.nh.service.IPowerStationInefficientService; +import org.springblade.modules.operation.excel.EntryPaymentTimeExcel; +import org.springblade.modules.operation.excel.EntrySiteExcel; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.service.IOperationSiteEmployeeService; +import org.springblade.modules.operation.service.IOperationSiteService; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.vo.SelectVo; +import org.springblade.modules.order.service.IOperationOrderCallbackService; +import org.springblade.modules.order.service.IOperationOrderService; +import org.springblade.modules.order.utils.ExcelReader; +import org.springblade.modules.system.excel.RegionExcel; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.excel.PowerStationExcel; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; + +import java.util.ArrayList; +import java.util.Map; +import java.util.List; +import java.util.stream.Collectors; + +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.multipart.MultipartFile; + +/** + * 电站 控制器 + * + * @author AlexWang + * @since 2024-05-31 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/powerStation") +@Tag(name = "电站", description = "电站接口") +public class PowerStationController extends BladeController { + + private final IPowerStationService powerStationService; + + private final IOperationSiteEmployeeService employeeService; + + + private final IOperationSiteService operationSiteService; + + private final IOperationOrderCallbackService operationOrderCallbackService; + + private final IOperationOrderService orderService; + private final InefficientScheduler inefficientScheduler; + + private final IPowerStationInefficientService powerStationInefficientService; + + @GetMapping("/lazy-tree") + @ApiOperationSupport(order = 1) + @Operation(summary = "懒加载树形结构", description = "树形结构") + public R> lazyTree(String parentId,String parentName,int level) { + List tree = powerStationService.getLazyTree(parentId,parentName,level); + return R.data(tree); + } + + @GetMapping("/total-tree") + @ApiOperationSupport(order = 1) + @Operation(summary = "懒加载树形结构", description = "树形结构") + public R totalTree() { + return R.data(powerStationService.getTotalTree()); + } + + /** + * 电站 详情 + */ + @GetMapping("/getMapDistribute") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入powerStation") + public R getMapDistribute(String keyword) { + return powerStationService.getMapdistribution(); + } + + /** + * 电站 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入powerStation") + public R detail(PowerStationEntity powerStation) { + return R.data(powerStationService.getStationDetail(powerStation)); + } + /** + * 电站 详情 + */ + @GetMapping("/staticsStatus") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取电站状态统计数量", description = "传入powerStation") + public R staticsStatus() { + return R.data(powerStationService.staticsStatus()); + } + /** + * 电站 详情 + */ + @GetMapping("/staticsYkStatus") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取电站状态统计数量", description = "传入powerStation") + public R staticsYkStatus() { + return R.data(powerStationService.staticsYkStatus()); + } + + @GetMapping("/staticsHomeOverview") + @ApiOperationSupport(order = 1) + @Operation(summary = "获取电站状态统计数量", description = "传入powerStation") + public R staticsHomeOverview() { + return R.data(powerStationService.staticsHomeOverview(null)); + } + + @GetMapping("/projectCompanyGenerationData") + @ApiOperationSupport(order = 1) + @Operation(summary = "根据公司来统计发电情况", description = "传入powerStation") + public R projectCompanyGenerationData(String type) { + return R.data(powerStationService.statByProjectCompany(type,null)); + } + + /** + * 首页发电趋势 + */ + @GetMapping(value = "powerGenerationTrendsHome") + @Operation(summary = "发电趋势") + public R powerGenerationTrendsHome(String type){ + return R.data(powerStationService.powerGenerationTrendsHome(type,"")); + } + + /** + * 发电趋势 + */ + @GetMapping(value = "powerGenerationTrends") + @Operation(summary = "发电趋势") + public R powerGenerationTrends(@Parameter(name = "entryId", required = true,description = "电站id")Long entryId,@Parameter(name = "stationCode", required = true,description = "电站stationCode")String stationCode,@Parameter(name = "type", required = true,description = "类型 7天:week")String type,@Parameter(name = "time", required = true,description = "当前时间")String time){ + return R.data(powerStationService.powerGenerationTrends(entryId,type,time,stationCode)); + } + /** + * 电站 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入powerStation") + public R> list(@Parameter(hidden = true) @RequestParam Map powerStation, Query query) { + QueryWrapper queryWrapper =Condition.getQueryWrapper(powerStation, PowerStationEntity.class); + String omProviderId = operationSiteService.getOmProviderId(); + if(StringUtil.isNotBlank(omProviderId)){ + queryWrapper.lambda().eq(PowerStationEntity::getOmProviderId,omProviderId); + } + //queryWrapper.lambda().eq(PowerStationEntity::getApplyStatus,1); + IPage pages = powerStationService.page(Condition.getPage(query), queryWrapper); + IPage ret = PowerStationWrapper.build().pageVO(pages); + ret.getRecords().forEach(item->{ + Double weekAvgEnergy = inefficientScheduler.getAvgHoursDefault(item); + item.setWeekAvgEnergy(weekAvgEnergy); + }); + return R.data(ret); + } + + /** + * 电站 分页 + */ + @GetMapping("/mapSearch") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入powerStation") + public R mapSearch(String keyword) { + if(StringUtil.isBlank(keyword)) return R.data(Lists.newArrayList()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(PowerStationEntity::getStationCode,keyword) + .or() + .like(PowerStationEntity::getOwnerName,keyword); + List list = powerStationService.list(queryWrapper); + return R.data(list); + } + + /** + * 电站 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入powerStation") + public R> page(StationDTO powerStation, Query query) { + powerStation.setApplyStatus(1); + IPage pages = powerStationService.selectPowerStationPage(Condition.getPage(query), powerStation); + pages.getRecords().forEach(item->{ + Double weekAvgEnergy = inefficientScheduler.getAvgHoursDefault(item); + item.setWeekAvgEnergy(weekAvgEnergy); + }); + return R.data(pages); + } + + /** + * 电站 友夸列表数据 + */ + @GetMapping("/pageYk") + @ApiOperationSupport(order = 3) + @Operation(summary = "友夸列表数据", description = "传入powerStation") + public R> pageYk(StationDTO powerStation, Query query) { + powerStation.setSource("2"); + IPage pages = powerStationService.selectPowerStationPage(Condition.getPage(query), powerStation); + return R.data(pages); + } + + + + /** + * 电站 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入powerStation") + public R save(@Valid @RequestBody PowerStationEntity powerStation) { + return R.status(powerStationService.save(powerStation)); + } + + /** + * 电站 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入powerStation") + public R update(@Valid @RequestBody PowerStationEntity powerStation) { + return R.status(powerStationService.updateById(powerStation)); + } + + /** + * 电站 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入powerStation") + public R submit(@Valid @RequestBody PowerStationEntity powerStation) { + return R.status(powerStationService.saveOrUpdate(powerStation)); + } + + /** + * 电站 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(powerStationService.removeByIds(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-powerStation") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入powerStation") + public void exportPowerStation(StationDTO powerStation, BladeUser bladeUser, HttpServletResponse response) { + powerStation.setApplyStatus(1); + List list = powerStationService.exportPowerStation(powerStation); + ExcelUtil.export(response, "电站数据" + DateUtil.time(), "电站数据表", list, PowerStationExcel.class); + } + + /** + * 导出数据 + */ + @GetMapping("/export-YkpowerStation") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出友夸数据", description = "传入powerStation") + public void exportYkPowerStation(StationDTO powerStation, BladeUser bladeUser, HttpServletResponse response) { + powerStation.setSource("2"); + List list = powerStationService.exportPowerStation(powerStation); + ExcelUtil.export(response, "电站数据" + DateUtil.time(), "电站数据表", list, PowerStationExcel.class); + } + + /** + * 我得电站 + */ + @GetMapping("/findMyPowerStation") + @ApiOperationSupport(order = 3) + @Operation(summary = "我得电站", description = "传入condition") + public R> findMyPowerStation(Query query,BladeUser bladeUser,@Parameter(name = "condition",description = "查询条件") String condition) { + if(!"6".equals(bladeUser.getDeptId())){ + return R.fail(201,"获取数据失败"); + } + OperationSiteEmployeeEntity emp = employeeService.getEmployeByUserId(bladeUser.getUserId()); + IPage pages = powerStationService.findMyPowerStation(Condition.getPage(query), emp.getId(),emp.getSiteId(),condition); + return R.data(pages); + } + + + @PostMapping("/bindingSite") + @ApiOperationSupport(order = 10) + @Operation(summary = "绑定服务商", description = "传入powerStation") + public R bindingSite(@Valid String id,String omProviderId) { + OperationSiteEntity site = operationSiteService.getById(omProviderId); + List entry = Lists.newArrayList(); + BladeUser user= AuthUtil.getUser(); + for(String enid :id.split(",")){ + PowerStationEntity powerStation = powerStationService.getById(enid); + powerStation.setOmProviderName(site.getName()); + powerStation.setOmProviderId(omProviderId); + powerStation.setBindingUnbindId(user.getUserId()); + entry.add(powerStation); + } + powerStationInefficientService.updateSiteName(id,site); + return R.status(powerStationService.updateBatchById(entry)); + } + + /** + * 解绑运维商 + */ + @PostMapping("/unbindSite") + @ApiOperationSupport(order = 10) + @Operation(summary = "解绑服务商", description = "传入id") + public R unbindSite(String id){ + List entry = Lists.newArrayList(); + BladeUser user= AuthUtil.getUser(); + for(String enid :id.split(",")){ + PowerStationEntity powerStation = powerStationService.getById(enid); + List list = orderService.findOrderListBySiteId(powerStation.getStationCode()); + if(!CollectionUtils.isEmpty(list)){ + return R.fail(201,"当前有服务中的工单,不可解绑"); + } + powerStation.setOmProviderName(""); + powerStation.setOmProviderId(""); + powerStation.setBindingUnbindId(user.getUserId()); + entry.add(powerStation); + } + powerStationInefficientService.deleteSiteName(id); + return R.status(powerStationService.updateBatchById(entry)); + } + + /** + * 电站下拉选 + */ + @GetMapping("/getSelectPowerStaion") + @ApiOperationSupport(order = 3) + @Operation(summary = "电站下拉选", description = "传入condition") + public R> getSelectPowerStaion(Query query, @RequestParam Map map) { + List list=powerStationService.getSelectPowerStaion(map); + return R.data(list); + } + + + /** + * 根据电站编码带出 相应信息 + */ + @PostMapping("/getStationDetailByPowCode") + @ApiOperationSupport(order = 11) + @Operation(summary = "根据电站编码带出相应信息", description = "传入powerStationCode") + public R> getStationDetailByPowCode(String powerStationCode){ + List entry = powerStationService.getStationListByPowCode(powerStationCode); + List brands = operationOrderCallbackService.getAllBrand(); + Map maps =brands.stream().collect(Collectors.toMap(SelectVo::getCode, SelectVo::getName)); + if(entry != null && entry.size()>0){ + for(PowerStationDTO en :entry){ + if(en.getBrand()!= null){ + if(maps.containsKey(en.getBrand().toString())){ + en.setBrandName(maps.get(en.getBrand().toString())); + } + en.setAddress(en.getAddress().replaceAll(en.getProvince()+en.getCity()+en.getDistrict(), "")); + } + + } + } + return R.data(entry); + } + /** + * 导出模板 + */ + @GetMapping("export-template") + @ApiOperationSupport(order = 12) + @Operation(summary = "导出模板") + public void exportUser(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "导入绑定运维商模板", "绑定运维商表", list, EntrySiteExcel.class); + } + + + /** + * 导入绑定 + */ + @PostMapping("import-site") + @ApiOperationSupport(order = 12) + @Operation(summary = "导入绑定运维商", description = "传入excel") + public R importUser(MultipartFile file, Integer isCovered) { + + List list ; + try{ + list = ExcelReader.readExcel(file, EntrySiteExcel.class); + }catch (ExcelAnalysisException e){ + return R.fail(e.getMessage()); + } + if(list.isEmpty()){ + return R.fail("文档数据为空"); + } + return powerStationService.importSite(list); + } + + /** + * 导出电站模板 + */ + @GetMapping("export-entry") + @ApiOperationSupport(order = 12) + @Operation(summary = "导出模板") + public void exportEntry(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "导入电站模板", "导入电站", list, PowerStationImport.class); + } + + + /** + * 导入投放时间的模板 + */ + @GetMapping("exportTemplatePaymentTime") + @ApiOperationSupport(order = 19) + @Operation(summary = "导入投放时间的模板") + public void exportTemplatePaymentTime(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "导入投放时间模板", "导入投放时间", list, EntryPaymentTimeExcel.class); + } + + + /** + * 导入投放时间 + */ + @PostMapping("importPaymentTime") + @ApiOperationSupport(order = 20) + @Operation(summary = "导入投放时间", description = "传入excel") + public R importPaymentTime(MultipartFile file) { + List list ; + try{ + list = ExcelReader.readExcel(file, EntryPaymentTimeExcel.class); + }catch (ExcelAnalysisException e){ + return R.fail(e.getMessage()); + } + if(list.isEmpty()){ + return R.fail("文档数据为空"); + } + powerStationService.importPaymentTime(list); + return R.success(""); + } +} diff --git a/src/main/java/org/springblade/modules/nh/controller/PowerStationInefficientController.java b/src/main/java/org/springblade/modules/nh/controller/PowerStationInefficientController.java new file mode 100644 index 0000000..db464e7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/controller/PowerStationInefficientController.java @@ -0,0 +1,263 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.controller; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.StationStaticsExcel; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.pojo.vo.StationStaticsVO; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.IOperationSiteService; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.operation.service.impl.PlatformEmployeeServiceImpl; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationInefficientVO; +import org.springblade.modules.nh.excel.PowerStationInefficientExcel; +import org.springblade.modules.nh.wrapper.PowerStationInefficientWrapper; +import org.springblade.modules.nh.service.IPowerStationInefficientService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; + +import java.time.LocalDate; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 低效电站 控制器 + * + * @author AlexWang + * @since 2024-06-14 + */ +@RestController +@AllArgsConstructor +@RequestMapping("nh/powerStationInefficient") +@Tag(name = "低效电站", description = "低效电站接口") +public class PowerStationInefficientController extends BladeController { + + private final IPowerStationInefficientService powerStationInefficientService; + private final IPowerStationService powerStationService; + private final IAlarmInfoService alarmInfoService; + + private final OperationSiteServiceImpl siteService; + private final OperationSiteEmployeeMapper employeeMapper; + private final PlatformEmployeeServiceImpl platformEmployeeService; + + /** + * 电站 分页 + */ + @GetMapping("/stationStatics") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入powerStation") + public R> stationStatics(@Parameter(hidden = true) @RequestParam Map powerStation, Query query) { + Integer year = LocalDate.now().getYear(); + if(powerStation.containsKey("year")){ + year = Integer.valueOf(powerStation.get("year").toString()); + powerStation.remove("year"); + } + + QueryWrapper queryWrapper =Condition.getQueryWrapper(powerStation, PowerStationEntity.class); + queryWrapper.lambda() + //.inSql(PowerStationEntity::getOutStationId,"select out_station_id from nh_monitor_entry_stat where eta > 0 "); + .eq(PowerStationEntity::getApplyStatus,1); + + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.lambda().eq(PowerStationEntity::getOmProviderId,site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + queryWrapper.lambda().eq(PowerStationEntity::getOmProviderId,authVo.getSiteId()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + queryWrapper.lambda().eq(PowerStationEntity::getOmProviderId,authVoP.getSiteId()); + } + } + + IPage pages = powerStationService.page(Condition.getPage(query), queryWrapper); + IPage staticsPage = PowerStationWrapper.build().pageStaticsVO(pages); + for(StationStaticsVO vo : staticsPage.getRecords()){ + vo.setYear(year); + powerStationInefficientService.fillStaticsVO(vo); + } + return R.data(staticsPage); + } + + /** + * 导出数据 + */ + @GetMapping("/export-stationStatics") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入powerStationInefficient") + public void exportStationStatics(@Parameter(hidden = true) @RequestParam Map powerStation, BladeUser bladeUser, HttpServletResponse response) { + List list = powerStationInefficientService.exportStationStatics(powerStation); + ExcelUtil.export(response, "发电统计导出" + DateUtil.time(), "发电统计数据表", list, StationStaticsExcel.class); + } + + /** + * 低效电站 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入powerStationInefficient") + public R detail(PowerStationInefficientEntity powerStationInefficient) { + PowerStationInefficientEntity detail = powerStationInefficientService.getOne(Condition.getQueryWrapper(powerStationInefficient)); + return R.data(PowerStationInefficientWrapper.build().entityVO(detail)); + } + /** + * 低效电站 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入powerStationInefficient") + public R> list(@Parameter(hidden = true) @RequestParam Map powerStationInefficient, Query query) { + query.setDescs("id"); + IPage pages = powerStationInefficientService.selectAllPage(powerStationInefficient,query); + pages.getRecords().forEach(item->{ + + item.setOrderNumber(alarmInfoService.getOrderNumber(item.getStationId())); + }); + return R.data(PowerStationInefficientWrapper.build().pageVO(pages)); + } + + /** + * 低效电站 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入powerStationInefficient") + public R> page(PowerStationInefficientVO powerStationInefficient, Query query) { + query.setDescs("id"); + IPage pages = powerStationInefficientService.selectPowerStationInefficientPage(Condition.getPage(query), powerStationInefficient); + return R.data(pages); + } + + /** + * 低效电站 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入powerStationInefficient") + public R save(@Valid @RequestBody PowerStationInefficientEntity powerStationInefficient) { + return R.status(powerStationInefficientService.save(powerStationInefficient)); + } + + /** + * 低效电站 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入powerStationInefficient") + public R update(@Valid @RequestBody PowerStationInefficientEntity powerStationInefficient) { + return R.status(powerStationInefficientService.updateById(powerStationInefficient)); + } + + /** + * 低效电站 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入powerStationInefficient") + public R submit(@Valid @RequestBody PowerStationInefficientEntity powerStationInefficient) { + return R.status(powerStationInefficientService.saveOrUpdate(powerStationInefficient)); + } + + /** + * 低效电站 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(powerStationInefficientService.removeByIds(Func.toLongList(ids))); + } + + /** + * 确认低效 + */ + @PostMapping("/confirmInefficient") + @ApiOperationSupport(order = 7) + @Operation(summary = "确认低效", description = "传入ids") + public R confirmInefficient(@Parameter(name = "主键集合", required = true) @RequestParam String ids,String isConfirm,String remarks) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.in(PowerStationInefficientEntity::getId,Func.toLongList(ids)) + .set(PowerStationInefficientEntity::getRemarks,remarks) + .set(PowerStationInefficientEntity::getIsConfirm,isConfirm); + return R.status(powerStationInefficientService.update(updateWrapper)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-powerStationInefficient") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入powerStationInefficient") + public void exportPowerStationInefficient(@Parameter(hidden = true) @RequestParam Map powerStationInefficient, BladeUser bladeUser, HttpServletResponse response) { + + List list = powerStationInefficientService.exportPowerStationInefficient(powerStationInefficient); + list.forEach(item->{ + item.setOrderNumber(alarmInfoService.getOrderNumber(item.getStationId())); + }); + ExcelUtil.export(response, "低效电站数据" + DateUtil.time(), "低效电站数据表", list, PowerStationInefficientExcel.class); + } + @PostMapping("/turnMainOrder") + @ApiOperationSupport(order = 15) + @Operation(summary = "电站转运维", description = "传入id") + public R turnMainOrder(@Parameter(name = "id",description = "id",required = true) @RequestParam String id) { + + return R.status(powerStationInefficientService.turnMainOrder(id)); + } +} diff --git a/src/main/java/org/springblade/modules/nh/excel/AlarmCodeExcel.java b/src/main/java/org/springblade/modules/nh/excel/AlarmCodeExcel.java new file mode 100644 index 0000000..455ef1d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/AlarmCodeExcel.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 故障代码 Excel实体类 + * + * @author AlexWang + * @since 2024-06-06 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class AlarmCodeExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 故障品牌 + */ + @ColumnWidth(20) + @ExcelProperty("故障品牌") + private String brand; + /** + * 故障主代码 + */ + @ColumnWidth(20) + @ExcelProperty("故障主代码") + private String code; + /** + * 子代码 + */ + @ColumnWidth(20) + @ExcelProperty("子代码") + private String subCode; + /** + * 故障内容 + */ + @ColumnWidth(20) + @ExcelProperty("故障内容") + private String content; + /** + * 处理建议 + */ + @ColumnWidth(20) + @ExcelProperty("处理建议") + private String suggestion; + /** + * 故障等级 + */ + @ColumnWidth(20) + @ExcelProperty("故障等级") + private Integer level; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("是否已删除") + private Integer isDeleted; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/AlarmInfoExcel.java b/src/main/java/org/springblade/modules/nh/excel/AlarmInfoExcel.java new file mode 100644 index 0000000..ce01176 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/AlarmInfoExcel.java @@ -0,0 +1,127 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 设备告警信息表 Excel实体类 + * + * @author AlexWang + * @since 2024-06-03 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class AlarmInfoExcel implements Serializable { + @ExcelIgnore + private String outStationId; + /** + * 资方名称 + */ + @ColumnWidth(20) + @ExcelProperty("资方名称") + private String capitalName; + + @ColumnWidth(20) + @ExcelProperty("业主名称") + private String ownerName; + + @ColumnWidth(20) + @ExcelProperty("电站编码") + private String stationCode; + /** + * 设备序列号 + */ + @ColumnWidth(20) + @ExcelProperty("设备SN") + private String sn; +// /** +// * 电站名称:业主姓名+安装容量+电站编码 +// */ +// @ColumnWidth(20) +// @ExcelProperty("电站名称") +// private String stationName; + /** + * 告警类型:1故障、2告警、3提示、4建议 level + */ + @ColumnWidth(20) + @ExcelProperty("告警类型") + private String type; + /** + * 故障来源:0.锦浪 + */ + @ColumnWidth(20) + @ExcelProperty("设备品牌") + private String source; + /** + * 告警名称(故障信息) + */ + @ColumnWidth(20) + @ExcelProperty("告警名称") + private String alarmName; + /** + * 告警时间(告警开始时间) + */ + @ColumnWidth(20) + @ExcelProperty("告警时间") + private String startTimeStr; + /** + * 修复建议 + */ + @ColumnWidth(20) + @ExcelProperty("修复建议") + private String suggestion; + + @ColumnWidth(20) + @ExcelProperty("处理状态") + private String statusStr; + + @ColumnWidth(20) + @ExcelProperty("关闭状态") + private String closeStr; + + @ColumnWidth(20) + @ExcelProperty("运维单号") + private String orderNumber; + + @ColumnWidth(20) + @ExcelProperty("运维服务商") + private String omProviderName; +} diff --git a/src/main/java/org/springblade/modules/nh/excel/DeviceExcel.java b/src/main/java/org/springblade/modules/nh/excel/DeviceExcel.java new file mode 100644 index 0000000..f7cbc8b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/DeviceExcel.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 设备管理 Excel实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class DeviceExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 所属电站ID + */ + @ColumnWidth(20) + @ExcelProperty("所属电站ID") + private Long stationId; + /** + * 内部设备ID + */ + @ColumnWidth(20) + @ExcelProperty("内部设备ID") + private String innerDeviceId; + /** + * 外部逆变器ID + */ + @ColumnWidth(20) + @ExcelProperty("外部逆变器ID") + private String outDeviceId; + /** + * 设备品牌0:锦狼,1.aiswei 2.goodwe + */ + @ColumnWidth(20) + @ExcelProperty("设备品牌0:锦狼,1.aiswei 2.goodwe") + private String brand; + /** + * 设备类型(1、逆变器2、通讯棒) + */ + @ColumnWidth(20) + @ExcelProperty("设备类型(1、逆变器2、通讯棒)") + private Integer type; + /** + * 设备名称 + */ + @ColumnWidth(20) + @ExcelProperty("设备名称") + private String name; + /** + * 设备型号 + */ + @ColumnWidth(20) + @ExcelProperty("设备型号") + private String mods; + /** + * 设备sn码 + */ + @ColumnWidth(20) + @ExcelProperty("设备sn码") + private String sn; + /** + * 设备条码 + */ + @ColumnWidth(20) + @ExcelProperty("设备条码") + private Long barCode; + /** + * 质保状态(1、在保 0过保) + */ + @ColumnWidth(20) + @ExcelProperty("质保状态(1、在保 0过保)") + private Integer warrantyFlag; + /** + * 质保到期时间 + */ + @ColumnWidth(20) + @ExcelProperty("质保到期时间") + private Date warrantyExpires; + /** + * 错误码 + */ + @ColumnWidth(20) + @ExcelProperty("错误码") + private String faultCode; + /** + * 创建时间 + */ + @ColumnWidth(20) + @ExcelProperty("创建时间") + private Date createdTime; + /** + * 更新时间 + */ + @ColumnWidth(20) + @ExcelProperty("更新时间") + private Date updatedTime; + /** + * 是否已删除 + */ + @ColumnWidth(20) + @ExcelProperty("是否已删除") + private Integer isDeleted; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/InefficientSettingExcel.java b/src/main/java/org/springblade/modules/nh/excel/InefficientSettingExcel.java new file mode 100644 index 0000000..3092c4d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/InefficientSettingExcel.java @@ -0,0 +1,146 @@ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serializable; + + +/** + * 低效电站设置 Excel实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class InefficientSettingExcel implements Serializable { + + /** + * 资方名称 + */ + @ColumnWidth(20) + @ExcelProperty("资方名称") + private String capitalName; + + /** + * 方案类型 + */ + @ColumnWidth(20) + @ExcelProperty("方案类型") + private String planTypeStr; + + /** + * 备案方式 + */ + @ColumnWidth(20) + @ExcelProperty("备案方式") + private String recordTypeStr; + +// /** +// * 方案名称 +// */ +// @ColumnWidth(20) +// @ExcelProperty("客户类型") +// private String customerTypeStr; + + /** + * 省份 + */ + @ColumnWidth(20) + @ExcelProperty("省份") + private String province; + /** + * 多个城市 + */ + @ColumnWidth(20) + @ExcelProperty("城市") + private String citys; + +// /** +// * 打点位置 +// */ +// @ColumnWidth(20) +// @ExcelProperty("打点位置") +// private String dotPosition; + /** + * 1月 + */ + @ColumnWidth(20) + @ExcelProperty("1月") + private Double guardHourM1; + /** + * 2月 + */ + @ColumnWidth(20) + @ExcelProperty("2月") + private Double guardHourM2; + /** + * 3月 + */ + @ColumnWidth(20) + @ExcelProperty("3月") + private Double guardHourM3; + /** + * 4月 + */ + @ColumnWidth(20) + @ExcelProperty("4月") + private Double guardHourM4; + /** + * 5月 + */ + @ColumnWidth(20) + @ExcelProperty("5月") + private Double guardHourM5; + /** + * 6月 + */ + @ColumnWidth(20) + @ExcelProperty("6月") + private Double guardHourM6; + /** + * 7月 + */ + @ColumnWidth(20) + @ExcelProperty("7月") + private Double guardHourM7; + /** + * 8月 + */ + @ColumnWidth(20) + @ExcelProperty("8月") + private Double guardHourM8; + /** + * 9月 + */ + @ColumnWidth(20) + @ExcelProperty("9月") + private Double guardHourM9; + /** + * 10月 + */ + @ColumnWidth(20) + @ExcelProperty("10月") + private Double guardHourM10; + /** + * 11月 + */ + @ColumnWidth(20) + @ExcelProperty("11月") + private Double guardHourM11; + /** + * 12月 + */ + @ColumnWidth(20) + @ExcelProperty("12月") + private Double guardHourM12; + + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/InefficientSettingImporter.java b/src/main/java/org/springblade/modules/nh/excel/InefficientSettingImporter.java new file mode 100644 index 0000000..3bb8331 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/InefficientSettingImporter.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.excel.support.ExcelImporter; +import org.springblade.modules.nh.service.IInefficientSettingService; +import org.springblade.modules.system.excel.UserExcel; +import org.springblade.modules.system.service.IUserService; + +import java.util.List; + +/** + * 用户数据导入类 + * + * @author Chill + */ +@RequiredArgsConstructor +public class InefficientSettingImporter implements ExcelImporter { + + private final IInefficientSettingService service; + private final Boolean isCovered; + + @Override + public void save(List data) { + service.importSetting(data, isCovered); + } +} diff --git a/src/main/java/org/springblade/modules/nh/excel/InverterDataExcel.java b/src/main/java/org/springblade/modules/nh/excel/InverterDataExcel.java new file mode 100644 index 0000000..76750e7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/InverterDataExcel.java @@ -0,0 +1,176 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 逆变器数据表 Excel实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class InverterDataExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 设备ID + */ + @ColumnWidth(20) + @ExcelProperty("设备ID") + private Long deviceId; + /** + * 输出功率 + */ + @ColumnWidth(20) + @ExcelProperty("输出功率") + private BigDecimal pac; + /** + * 发电小时数 + */ + @ColumnWidth(20) + @ExcelProperty("发电小时数") + private BigDecimal pwHour; + /** + * 实际安装功率 + */ + @ColumnWidth(20) + @ExcelProperty("实际安装功率") + private BigDecimal realPower; + /** + * 装机容量 + */ + @ColumnWidth(20) + @ExcelProperty("装机容量") + private BigDecimal power; + /** + * 当日发电量 + */ + @ColumnWidth(20) + @ExcelProperty("当日发电量") + private BigDecimal etd; + /** + * 当月发电量 + */ + @ColumnWidth(20) + @ExcelProperty("当月发电量") + private BigDecimal etm; + /** + * 累计发电量 + */ + @ColumnWidth(20) + @ExcelProperty("累计发电量") + private BigDecimal eto; + /** + * 当年发电量 + */ + @ColumnWidth(20) + @ExcelProperty("当年发电量") + private BigDecimal ety; + /** + * 直流发电功率 + */ + @ColumnWidth(20) + @ExcelProperty("直流发电功率") + private BigDecimal dcPac; + /** + * 采集器SN + */ + @ColumnWidth(20) + @ExcelProperty("采集器SN") + private String collectorSn; + /** + * 逆变器无功功率 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器无功功率") + private BigDecimal reactivePower; + /** + * 逆变器无功功率单位 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器无功功率单位") + private String reactivePowerStr; + /** + * 逆变器视在功率 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器视在功率") + private BigDecimal apparentPower; + /** + * 逆变器视在功率单位 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器视在功率单位") + private String apparentPowerStr; + /** + * 电网频率hz + */ + @ColumnWidth(20) + @ExcelProperty("电网频率hz") + private BigDecimal fac; + /** + * pv直流电压存贮格式如下(220:10|220:10) + */ + @ColumnWidth(20) + @ExcelProperty("pv直流电压存贮格式如下(220:10|220:10)") + private String pvModules; + /** + * mppt存贮格式如下(220:10|220:10) + */ + @ColumnWidth(20) + @ExcelProperty("mppt存贮格式如下(220:10|220:10)") + private String mpptModules; + /** + * uvw(220:10:55|220:10:55|220:10:55) + */ + @ColumnWidth(20) + @ExcelProperty("uvw(220:10:55|220:10:55|220:10:55)") + private String uvwModules; + /** + * 温度 + */ + @ColumnWidth(20) + @ExcelProperty("温度") + private BigDecimal temperature; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/InverterUapExcel.java b/src/main/java/org/springblade/modules/nh/excel/InverterUapExcel.java new file mode 100644 index 0000000..3071437 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/InverterUapExcel.java @@ -0,0 +1,381 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.util.Date; +import java.lang.Double; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 逆变器电流电压功率数据 Excel实体类 + * + * @author AlexWang + * @since 2024-11-21 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class InverterUapExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 逆变器sn + */ + @ColumnWidth(20) + @ExcelProperty("逆变器sn") + private String sn; + /** + * 外部逆变器id + */ + @ColumnWidth(20) + @ExcelProperty("外部逆变器id") + private String outInverterId; + /** + * 外部电站id + */ + @ColumnWidth(20) + @ExcelProperty("外部电站id") + private String outStationId; + /** + * 0:锦狼,1.aiswei 2.goodwe + */ + @ColumnWidth(20) + @ExcelProperty("0:锦狼,1.aiswei 2.goodwe") + private String sysType; + /** + * 1直流 2交流 + */ + @ColumnWidth(20) + @ExcelProperty("1直流 2交流") + private String type; + /** + * 统计时间,一个小时一条,格式:2024-10-10 12:00:00 + */ + @ColumnWidth(20) + @ExcelProperty("统计时间,一个小时一条,格式:2024-10-10 12:00:00") + private Date stateTime; + /** + * 电压 + */ + @ColumnWidth(20) + @ExcelProperty("电压") + private Double uv1; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv2; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv3; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv4; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv5; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv6; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv7; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv8; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv9; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv10; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv11; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv12; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv13; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv14; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv15; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double uv16; + /** + * 电流 + */ + @ColumnWidth(20) + @ExcelProperty("电流") + private Double ia1; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia2; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia3; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia4; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia5; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia6; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia7; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia8; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia9; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia10; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia11; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia12; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia13; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia14; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia15; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double ia16; + /** + * 功率 + */ + @ColumnWidth(20) + @ExcelProperty("功率") + private Double p1; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p2; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p3; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p4; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p5; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p6; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p7; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p8; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p9; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p10; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p11; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p12; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p13; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p14; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p15; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Double p16; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/MaterialExcel.java b/src/main/java/org/springblade/modules/nh/excel/MaterialExcel.java new file mode 100644 index 0000000..22ed000 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/MaterialExcel.java @@ -0,0 +1,78 @@ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; + + +/** + * 低效电站设置 Excel实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MaterialExcel implements Serializable { + + /** + * 物料编码 + */ + @ColumnWidth(20) + @ExcelProperty("物料编码") + private String code; + /** + * 物料名称 + */ + @ColumnWidth(20) + @ExcelProperty("物料名称") + private String name; + /** + * 物料类型 + */ + @ColumnWidth(20) + @ExcelProperty("物料类型") + private String typeStr; + /** + * 物料型号 + */ + @ColumnWidth(20) + @ExcelProperty("物料型号") + private String model; + /** + * 功率(KW) + */ + @ColumnWidth(20) + @ExcelProperty("规格") + private String power; + /** + * 零售价 + */ + @ColumnWidth(20) + @ExcelProperty("零售价") + private Double retailPrice; + /** + * 物料描述 + */ + @ColumnWidth(20) + @ExcelProperty("物料描述") + private String description; + + @ColumnWidth(20) + @ExcelProperty("物料品牌") + private String brandStr; + + @ColumnWidth(20) + @ExcelProperty("物料库存") + private Integer stock; + + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.java b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.java new file mode 100644 index 0000000..65f4262 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.java @@ -0,0 +1,374 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 电站日统计数据 Excel实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MonitorEntryDailyStatExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 数据采集时间 + */ + @ColumnWidth(20) + @ExcelProperty("数据采集时间") + private Date syncTime; + /** + * 0.锦浪 1,艾士唯,2:goodwe + */ + @ColumnWidth(20) + @ExcelProperty("0.锦浪 1,艾士唯,2:goodwe") + private String sysType; + /** + * 日期 + */ + @ColumnWidth(20) + @ExcelProperty("日期") + private Date statDate; + /** + * 外部电站id + */ + @ColumnWidth(20) + @ExcelProperty("外部电站id") + private String outStationId; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Long stationId; + /** + * 0时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("0时电量kwh") + private Double h24; + /** + * 1时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("1时电量kwh") + private Double h01; + /** + * 2时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("2时电量kwh") + private Double h02; + /** + * 3时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("3时电量kwh") + private Double h03; + /** + * 4时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("4时电量kwh") + private Double h04; + /** + * 5时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("5时电量kwh") + private Double h05; + /** + * 6时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("6时电量kwh") + private Double h06; + /** + * 7时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("7时电量kwh") + private Double h07; + /** + * 8时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("8时电量kwh") + private Double h08; + /** + * 9时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("9时电量kwh") + private Double h09; + /** + * 10时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("10时电量kwh") + private Double h10; + /** + * 11时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("11时电量kwh") + private Double h11; + /** + * 12时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("12时电量kwh") + private Double h12; + /** + * 13时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("13时电量kwh") + private Double h13; + /** + * 14时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("14时电量kwh") + private Double h14; + /** + * 15时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("15时电量kwh") + private Double h15; + /** + * 16时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("16时电量kwh") + private Double h16; + /** + * 17时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("17时电量kwh") + private Double h17; + /** + * 18时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("18时电量kwh") + private Double h18; + /** + * 19时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("19时电量kwh") + private Double h19; + /** + * 20时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("20时电量kwh") + private Double h20; + /** + * 21时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("21时电量kwh") + private Double h21; + /** + * 22时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("22时电量kwh") + private Double h22; + /** + * 23时电量kwh + */ + @ColumnWidth(20) + @ExcelProperty("23时电量kwh") + private Double h23; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl00; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl01; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl02; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl03; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl04; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl05; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl06; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl07; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl08; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl09; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl10; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl11; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl12; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl13; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl14; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl15; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl16; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl17; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl18; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl19; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl20; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl21; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl22; + /** + * 00交流功率 + */ + @ColumnWidth(20) + @ExcelProperty("00交流功率") + private Double jlgl23; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.java b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.java new file mode 100644 index 0000000..ca7237c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.java @@ -0,0 +1,80 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 电站月统计数据 Excel实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MonitorEntryMonthStatExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 电站id + */ + @ColumnWidth(20) + @ExcelProperty("电站id") + private String outStationId; + /** + * 统计日期 + */ + @ColumnWidth(20) + @ExcelProperty("统计日期") + private Date statDate; + /** + * 能量 kw + */ + @ColumnWidth(20) + @ExcelProperty("能量 kw") + private Double energy; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Long stationId; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/MonitorEntryStatExcel.java b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryStatExcel.java new file mode 100644 index 0000000..384ef3c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryStatExcel.java @@ -0,0 +1,136 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.lang.Double; +import java.lang.Boolean; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 外部电站同步 Excel实体类 + * + * @author AlexWang + * @since 2024-06-01 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MonitorEntryStatExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 外部系统电站id + */ + @ColumnWidth(20) + @ExcelProperty("外部系统电站id") + private String outStationId; + /** + * 系统电站id + */ + @ColumnWidth(20) + @ExcelProperty("系统电站id") + private Long stationId; + /** + * 电站名称 + */ + @ColumnWidth(20) + @ExcelProperty("电站名称") + private String stationName; + /** + * 装机容量kWp + */ + @ColumnWidth(20) + @ExcelProperty("装机容量kWp") + private Double capacity; + /** + * 功率 + */ + @ColumnWidth(20) + @ExcelProperty("功率") + private Double power; + /** + * 0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特 + */ + @ColumnWidth(20) + @ExcelProperty("0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特") + private Boolean type; + /** + * 当日能量kw + */ + @ColumnWidth(20) + @ExcelProperty("当日能量kw") + private Double etd; + /** + * 当月能量kw + */ + @ColumnWidth(20) + @ExcelProperty("当月能量kw") + private Double etm; + /** + * 当年能量kw + */ + @ColumnWidth(20) + @ExcelProperty("当年能量kw") + private Double ety; + /** + * 总能量kw + */ + @ColumnWidth(20) + @ExcelProperty("总能量kw") + private Double eta; + /** + * 满发小时数(应该是当天的满发小时数) + */ + @ColumnWidth(20) + @ExcelProperty("满发小时数(应该是当天的满发小时数)") + private Double fullHour; + /** + * 电站状态:1 = 在线,2 = 离线,3 = 报警 + */ + @ColumnWidth(20) + @ExcelProperty("电站状态:1 = 在线,2 = 离线,3 = 报警") + private Integer state; + /** + * 同步采集时间,并非当前时间,可能是之前的时间 + */ + @ColumnWidth(20) + @ExcelProperty("同步采集时间,并非当前时间,可能是之前的时间") + private Date syncTime; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.java b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.java new file mode 100644 index 0000000..735b1a8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.java @@ -0,0 +1,99 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.util.Date; +import java.lang.Double; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 电站能量按年统计 Excel实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MonitorEntryYearStatExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 同步采集时间 + */ + @ColumnWidth(20) + @ExcelProperty("同步采集时间") + private Date syncTime; + /** + * 0.锦浪 1,艾士唯,2:goodwe + */ + @ColumnWidth(20) + @ExcelProperty("0.锦浪 1,艾士唯,2:goodwe") + private String sysType; + /** + * 外部电站id + */ + @ColumnWidth(20) + @ExcelProperty("外部电站id") + private String outStationId; + /** + * 年 + */ + @ColumnWidth(20) + @ExcelProperty("年") + private Integer year; + /** + * 月 + */ + @ColumnWidth(20) + @ExcelProperty("月") + private Integer month; + /** + * 能量kw + */ + @ColumnWidth(20) + @ExcelProperty("能量kw") + private Double energy; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Long stationId; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/MonitorInverterStatExcel.java b/src/main/java/org/springblade/modules/nh/excel/MonitorInverterStatExcel.java new file mode 100644 index 0000000..1943f9b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/MonitorInverterStatExcel.java @@ -0,0 +1,243 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import lombok.Data; + +import java.lang.Double; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 厂家逆变器表 Excel实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class MonitorInverterStatExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 逆变器sn + */ + @ColumnWidth(20) + @ExcelProperty("逆变器sn") + private String sn; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Long inverterId; + /** + * 外部逆变器id + */ + @ColumnWidth(20) + @ExcelProperty("外部逆变器id") + private String outInverterId; + /** + * + */ + @ColumnWidth(20) + @ExcelProperty("") + private Long stationId; + /** + * 外部电站id + */ + @ColumnWidth(20) + @ExcelProperty("外部电站id") + private String outStationId; + /** + * 当日发电量 + */ + @ColumnWidth(20) + @ExcelProperty("当日发电量") + private Double etd; + /** + * 当月发电量 + */ + @ColumnWidth(20) + @ExcelProperty("当月发电量") + private Double etm; + /** + * 累计发电量 + */ + @ColumnWidth(20) + @ExcelProperty("累计发电量") + private Double eto; + /** + * 当年发电量 + */ + @ColumnWidth(20) + @ExcelProperty("当年发电量") + private Double ety; + /** + * 更新时间 + */ + @ColumnWidth(20) + @ExcelProperty("更新时间") + private Date syncTime; + /** + * 实时功率(交流) + */ + @ColumnWidth(20) + @ExcelProperty("实时功率(交流)") + private Double pac; + /** + * 发电小时数?(满发?) + */ + @ColumnWidth(20) + @ExcelProperty("发电小时数?(满发?)") + private Double pwHour; + /** + * 实际安装功率? + */ + @ColumnWidth(20) + @ExcelProperty("实际安装功率?") + private Double realPower; + /** + * 装机容量 + */ + @ColumnWidth(20) + @ExcelProperty("装机容量") + private Double power; + /** + * 1.在线 2.离线,3.报警,4.缓存(这是aiswei独有) + */ + @ColumnWidth(20) + @ExcelProperty("1.在线 2.离线,3.报警,4.缓存(这是aiswei独有)") + private Integer state; + /** + * 满发小时数 + */ + @ColumnWidth(20) + @ExcelProperty("满发小时数") + private Double fullHour; + /** + * 累计满发小时数...取不到 + */ + @ColumnWidth(20) + @ExcelProperty("累计满发小时数...取不到") + private Double totalFullHour; + /** + * 质保结束时间 + */ + @ColumnWidth(20) + @ExcelProperty("质保结束时间") + private Date updateShelfEndTime; + /** + * 直流功率,单位va + */ + @ColumnWidth(20) + @ExcelProperty("直流功率,单位va") + private Double dcPac; + /** + * 采集器sn + */ + @ColumnWidth(20) + @ExcelProperty("采集器sn") + private String collectorSn; + /** + * 型号 + */ + @ColumnWidth(20) + @ExcelProperty("型号") + private String model; + /** + * 电网频率hz + */ + @ColumnWidth(20) + @ExcelProperty("电网频率hz") + private Double fac; + /** + * 逆变器温度 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器温度") + private Double temperature; + /** + * 逆变器名称 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器名称") + private String name; + /** + * 逆变器无功功率 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器无功功率") + private Double reactivePower; + /** + * 逆变器视在功率 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器视在功率") + private Double apparentPower; + /** + * 产品型号 + */ + @ColumnWidth(20) + @ExcelProperty("产品型号") + private String productModel; + /** + * 逆变器无功功率单位 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器无功功率单位") + private String reactivePowerStr; + /** + * 逆变器视在功率单位 + */ + @ColumnWidth(20) + @ExcelProperty("逆变器视在功率单位") + private String apparentPowerStr; + /** + * 满发小时数单位 + */ + @ColumnWidth(20) + @ExcelProperty("满发小时数单位") + private String fullHourStr; + /** + * 0:锦狼,1.aiswei 2.goodwe + */ + @ColumnWidth(20) + @ExcelProperty("0:锦狼,1.aiswei 2.goodwe") + private String sysType; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/PowerStationExcel.java b/src/main/java/org/springblade/modules/nh/excel/PowerStationExcel.java new file mode 100644 index 0000000..5666b74 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/PowerStationExcel.java @@ -0,0 +1,216 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.io.Serial; + + +/** + * 电站 Excel实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PowerStationExcel { + + /** + * 电站编号 + */ + @ColumnWidth(20) + @ExcelProperty("电站状态") + private String statusStr; + + /** + * 电站编号 + */ + @ColumnWidth(20) + @ExcelProperty("电站编号") + private String stationCode; + + /*@ColumnWidth(20) + @ExcelProperty("电站名称") + private String stationName;*/ + + + @ColumnWidth(20) + @ExcelProperty("运维单号") + private String orderNumber; + + @ColumnWidth(20) + @ExcelProperty("品牌") + private String brand; + + /** + * 业主名称 + */ + @ColumnWidth(20) + @ExcelProperty("业主名称") + private String ownerName; + + @ColumnWidth(16) + @ExcelProperty("省") + private String province; + + @ColumnWidth(16) + @ExcelProperty("市") + private String city; + + @ColumnWidth(16) + @ExcelProperty("区") + private String district; + + /** + * 详细地址 + */ + @ColumnWidth(30) + @ExcelProperty("详细地址") + private String address; + + + /** + * 实际安装容量 + */ + @ColumnWidth(20) + @ExcelProperty("安装容量KW") + private Double actualCapacity; + + /** + * 当期新增发电量 + */ + @ColumnWidth(20) + @ExcelProperty("日电量(KWh)") + private Double etd; + /** + * 当期新增发电量 + */ + @ColumnWidth(20) + @ExcelProperty("月电量(KWh)") + private Double etm; + /** + * 当期新增发电量 + */ + @ColumnWidth(20) + @ExcelProperty("年电量(KWh)") + private Double ety; + /** + * 累计发电量 + */ + @ColumnWidth(20) + @ExcelProperty("累计电量(KWh)") + private Double eto; + + @ColumnWidth(20) + @ExcelProperty("逆变器SN") + private String sn; + /** + * 进件序号 + */ + @ColumnWidth(20) + @ExcelProperty("进件序号") + private String applyNo; + + @ColumnWidth(20) + @ExcelProperty("资方") + private String capitalName; + + /** + * 运维服务商名称 + */ + @ColumnWidth(20) + @ExcelProperty("代理商") + private String agentName; + + @ColumnWidth(20) + @ExcelProperty("投放通过时间") + private String paymentTime; + + @ColumnWidth(20) + @ExcelProperty("质保到期时间") + private String warrantyExpiresTime; + + /** + * 运维服务商名称 + */ + @ColumnWidth(20) + @ExcelProperty("运维服务商名称") + private String omProviderName; + + + + @ColumnWidth(20) + @ExcelProperty("首次发电时间") + private String fisGenTime; + + /** + * 异常时长 + */ + @ColumnWidth(20) + @ExcelProperty("异常时长") + private String errDuring; + + /** + * 离线时长 + */ + @ColumnWidth(20) + @ExcelProperty("离线时长") + private String lastDuringStr; + + public void initDefaultData() { + if(this.etm==null){ + this.etm = 0d; + } + if(this.etd==null){ + this.etd = 0d; + } + if(this.ety==null){ + this.ety = 0d; + } + if(this.eto==null){ + this.eto = 0d; + } + if(this.actualCapacity==null){ + this.actualCapacity = 0d; + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/PowerStationImport.java b/src/main/java/org/springblade/modules/nh/excel/PowerStationImport.java new file mode 100644 index 0000000..9c6221c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/PowerStationImport.java @@ -0,0 +1,143 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + + +/** + * 电站 Excel实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PowerStationImport { + + /** + * 电站编号 + */ + @ColumnWidth(20) + @ExcelProperty("电站编号") + private String stationCode; + @ColumnWidth(20) + @ExcelProperty("项目公司") + private String projectCompanyName; + + @ColumnWidth(20) + @ExcelProperty("安装方式") + private String installType; + + @ColumnWidth(20) + @ExcelProperty("代理商") + private String agentName; + + /** + * 运维服务商名称 + */ + @ColumnWidth(20) + @ExcelProperty("运维商") + private String omProviderName; + /** + * 业主名称 + */ + @ColumnWidth(20) + @ExcelProperty("业主名称") + private String ownerName; + /** + * 业主电话 + */ + @ColumnWidth(20) + @ExcelProperty("联系方式") + private String ownerPhone; + + @ColumnWidth(16) + @ExcelProperty("省") + private String province; + + @ColumnWidth(16) + @ExcelProperty("市") + private String city; + + @ColumnWidth(16) + @ExcelProperty("区") + private String district; + + /** + * 详细地址 + */ + @ColumnWidth(30) + @ExcelProperty("详细地址") + private String address; + /** + * 品牌 + */ + @ExcelProperty("逆变器品牌") + private String brand; + + + @ColumnWidth(20) + @ExcelProperty("逆变器SN") + private String nbqsn; + + @ColumnWidth(20) + @ExcelProperty("通讯棒SN") + private String sn; + /** + * 并网容量 + */ + @ExcelProperty("并网容量") + private BigDecimal actualCapacity; + @ColumnWidth(20) + @ExcelProperty("首日发电时间") + private Date startGenDate; + /** + * 进件序号 + */ + @ColumnWidth(20) + @ExcelProperty("进件序号") + private String applyNo; + + @ColumnWidth(20) + @ExcelProperty("资方") + private String capitalName; + + + + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/PowerStationImporter.java b/src/main/java/org/springblade/modules/nh/excel/PowerStationImporter.java new file mode 100644 index 0000000..c080b92 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/PowerStationImporter.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.excel; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.excel.support.ExcelImporter; +import org.springblade.modules.material.service.IMaterialService; +import org.springblade.modules.nh.service.IDeviceService; +import org.springblade.modules.nh.service.IPowerStationService; + +import java.util.List; + +/** + * 用户数据导入类 + * + * @author Chill + */ +@RequiredArgsConstructor +public class PowerStationImporter implements ExcelImporter { + + private final IDeviceService service; + private final Boolean isCovered; + + @Override + public void save(List data) { + service.importPowerStation(data, isCovered); + } +} diff --git a/src/main/java/org/springblade/modules/nh/excel/PowerStationInefficientExcel.java b/src/main/java/org/springblade/modules/nh/excel/PowerStationInefficientExcel.java new file mode 100644 index 0000000..e7e0121 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/PowerStationInefficientExcel.java @@ -0,0 +1,137 @@ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.lang.Double; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 低效电站 Excel实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PowerStationInefficientExcel{ + + @ExcelIgnore + private Long stationId; + /** + * 资方名称 + */ + @ColumnWidth(20) + @ExcelProperty("资方名称") + private String capitalName; + /** + * 电站编码 + */ + @ColumnWidth(20) + @ExcelProperty("电站编码") + private String stationCode; + @ColumnWidth(20) + @ExcelProperty("工单编号") + private String orderNumber; + /** + * 电站名称 + */ + @ColumnWidth(20) + @ExcelProperty("电站名称") + private String stationName; + + @ColumnWidth(20) + @ExcelProperty("安装方式") + private String installType;; +// /** +// * 资方编码 +// */ +// @ColumnWidth(20) +// @ExcelProperty("资方编码") +// private String capitalCode; + + /** + * 当月发电小时 + */ + @ColumnWidth(20) + @ExcelProperty("周发电小时(h)") + private Double mgHour; + + @ColumnWidth(20) + @ExcelProperty("周平均发电小时(h)") + private Double avgHour; + /** + * 保发小时数 + */ + @ColumnWidth(20) + @ExcelProperty("保发小时(h)") + private Double guardHour; + /** + * 保发比率 + */ + @ColumnWidth(20) + @ExcelProperty("保发比率") + private Double guardRate; + /** + * 全年完成率 + */ + @ColumnWidth(20) + @ExcelProperty("全年完成率") + private Double finishRate; + /** + * 安装容量 + */ + @ColumnWidth(20) + @ExcelProperty("安装容量(KW)") + private Double capacity; + /** + * 当月电量 + */ + @ColumnWidth(20) + @ExcelProperty("当月电量(KWh)") + private Double otm; + /** + * 业主名称 + */ + @ColumnWidth(20) + @ExcelProperty("业主名称") + private String ownerName; +// /** +// * 业主电话 +// */ + + /** + * 安装地址 + */ + @ColumnWidth(20) + @ExcelProperty("安装地址") + private String installAddress; + + @ColumnWidth(20) + @ExcelProperty("统计时间") + private String start_and; + /** + * 运维服务商 + */ + @ColumnWidth(20) + @ExcelProperty("运维服务商") + private String omProviderName; +// /** +// * 转运维时间 +// */ +// @ColumnWidth(20) +// @ExcelProperty("转运维时间") +// private Date transferTime; + +} diff --git a/src/main/java/org/springblade/modules/nh/excel/StationStaticsExcel.java b/src/main/java/org/springblade/modules/nh/excel/StationStaticsExcel.java new file mode 100644 index 0000000..6ffae57 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/excel/StationStaticsExcel.java @@ -0,0 +1,219 @@ +package org.springblade.modules.nh.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class StationStaticsExcel { + + @ColumnWidth(20) + @ExcelProperty("电站编码") + private String stationCode; + + @ColumnWidth(20) + @ExcelProperty("进件序号") + private String applyNo; + + @ColumnWidth(20) + @ExcelProperty("业主姓名") + private String ownerName; + + @ColumnWidth(20) + @ExcelProperty("省份") + private String province; + + @ColumnWidth(20) + @ExcelProperty("地级市") + private String city; + + @ColumnWidth(20) + @ExcelProperty("安装容量(kW)") + private Double actualCapacityStr; + + @ColumnWidth(20) + @ExcelProperty("安装方式") + private String installType; + + @ColumnWidth(20) + @ExcelProperty("运维商") + private String omProviderName; + + @ColumnWidth(20) + @ExcelProperty("首日发电时间") + private String fisGenerateTimeStr; + + @ColumnWidth(20) + @ExcelProperty("1月发电量(kwh)") + private Double energy_1; + + @ColumnWidth(20) + @ExcelProperty("1月保发发电量(kwh)") + private Double guardEnergy_1; + + @ColumnWidth(20) + @ExcelProperty("1月保发电量完成率") + private String guardRate_1; + + @ColumnWidth(20) + @ExcelProperty("2月发电量(kwh)") + private Double energy_2; + + @ColumnWidth(20) + @ExcelProperty("2月保发发电量(kwh)") + private Double guardEnergy_2; + + @ColumnWidth(20) + @ExcelProperty("2月保发电量完成率") + private String guardRate_2; + + @ColumnWidth(20) + @ExcelProperty("3月发电量(kwh)") + private Double energy_3; + + @ColumnWidth(20) + @ExcelProperty("3月保发发电量(kwh)") + private Double guardEnergy_3; + + @ColumnWidth(20) + @ExcelProperty("3月保发电量完成率") + private String guardRate_3; + + @ColumnWidth(20) + @ExcelProperty("4月发电量(kwh)") + private Double energy_4; + + @ColumnWidth(20) + @ExcelProperty("4月保发发电量(kwh)") + private Double guardEnergy_4; + + @ColumnWidth(20) + @ExcelProperty("4月保发电量完成率") + private String guardRate_4; + + @ColumnWidth(20) + @ExcelProperty("5月发电量(kwh)") + private Double energy_5; + + @ColumnWidth(20) + @ExcelProperty("5月保发发电量(kwh)") + private Double guardEnergy_5; + + @ColumnWidth(20) + @ExcelProperty("5月保发电量完成率") + private String guardRate_5; + + @ColumnWidth(20) + @ExcelProperty("6月发电量(kwh)") + private Double energy_6; + + @ColumnWidth(20) + @ExcelProperty("6月保发发电量(kwh)") + private Double guardEnergy_6; + + @ColumnWidth(20) + @ExcelProperty("6月保发电量完成率") + private String guardRate_6; + + @ColumnWidth(20) + @ExcelProperty("7月发电量(kwh)") + private Double energy_7; + + @ColumnWidth(20) + @ExcelProperty("7月保发发电量(kwh)") + private Double guardEnergy_7; + + @ColumnWidth(20) + @ExcelProperty("7月保发电量完成率") + private String guardRate_7; + + @ColumnWidth(20) + @ExcelProperty("8月发电量(kwh)") + private Double energy_8; + + @ColumnWidth(20) + @ExcelProperty("8月保发发电量(kwh)") + private Double guardEnergy_8; + + @ColumnWidth(20) + @ExcelProperty("8月保发电量完成率") + private String guardRate_8; + + @ColumnWidth(20) + @ExcelProperty("9月发电量(kwh)") + private Double energy_9; + + @ColumnWidth(20) + @ExcelProperty("9月保发发电量(kwh)") + private Double guardEnergy_9; + + @ColumnWidth(20) + @ExcelProperty("9月保发电量完成率") + private String guardRate_9; + + @ColumnWidth(20) + @ExcelProperty("10月发电量(kwh)") + private Double energy_10; + + @ColumnWidth(20) + @ExcelProperty("10月保发发电量(kwh)") + private Double guardEnergy_10; + + @ColumnWidth(20) + @ExcelProperty("10月保发电量完成率") + private String guardRate_10; + + @ColumnWidth(20) + @ExcelProperty("11月发电量(kwh)") + private Double energy_11; + + @ColumnWidth(20) + @ExcelProperty("11月保发发电量(kwh)") + private Double guardEnergy_11; + + @ColumnWidth(20) + @ExcelProperty("11月保发电量完成率") + private String guardRate_11; + + @ColumnWidth(20) + @ExcelProperty("12月发电量(kwh)") + private Double energy_12; + + @ColumnWidth(20) + @ExcelProperty("12月保发发电量(kwh)") + private Double guardEnergy_12; + + @ColumnWidth(20) + @ExcelProperty("12月保发电量完成率") + private String guardRate_12; + + @ColumnWidth(20) + @ExcelProperty("当日发电量(kwh)") + private Double etdStr; + + @ColumnWidth(20) + @ExcelProperty("昨日发电量(kwh)") + private Double yesterdayEnergy; + + @ColumnWidth(20) + @ExcelProperty("当月发电量(kwh)") + private Double etmStr; + + @ColumnWidth(20) + @ExcelProperty("当月保发电量(kwh)") + private Double currentGuardEnergyStr; + + @ColumnWidth(20) + @ExcelProperty("当月保发电量完成率") + private String currentGuardRateStr; + + @ColumnWidth(20) + @ExcelProperty("资方") + private String capitalName; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiApi.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiApi.java new file mode 100644 index 0000000..23368af --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiApi.java @@ -0,0 +1,268 @@ +package org.springblade.modules.nh.factory.aiswei; + +import com.alibaba.fastjson2.JSON; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import org.springblade.modules.nh.factory.aiswei.config.AisweiApiRestTemplate; +import org.springblade.modules.nh.factory.aiswei.constant.Constants; +import org.springblade.modules.nh.factory.aiswei.constant.HttpHeader; +import org.springblade.modules.nh.factory.aiswei.constant.HttpSchema; +import org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro.GetDeviceListProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro.GetDeviceListProResp; +import org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro.GetInverterCurrentErrorProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro.GetInverterCurrentErrorProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProData; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getinverteretodaypro.GetInverterETodayProData; +import org.springblade.modules.nh.factory.aiswei.dto.getinverteretodaypro.GetInverterETodayProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro.GetInverterHisErrorPageProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro.GetInverterHisErrorPageProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getinverteroverviewpro.GetInverterOverviewProData; +import org.springblade.modules.nh.factory.aiswei.dto.getinverteroverviewpro.GetInverterOverviewProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro.GetInverterRecoverStatusProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro.GetInverterRecoverStatusProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro.GetLastTsDataProR; +import org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro.GetLastTsDataProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro.GetPlanListProR; +import org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro.GetPlanListProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProResp; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro.GetPlantOverviewProR; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro.GetPlantOverviewProReq; +import org.springblade.modules.nh.factory.aiswei.enums.Method; +import org.springblade.modules.nh.factory.aiswei.util.AisweiObjectMapper; +import org.springblade.modules.nh.factory.aiswei.util.AisweiRequest; +import org.springblade.modules.nh.factory.aiswei.util.AisweiResponse; +import org.springblade.modules.nh.factory.aiswei.util.Client; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.modules.nh.factory.common.TokenBucket; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service +public class AisweiApi { + + @Autowired + AisweiApiRestTemplate aisweiApiRestTemplate; + private static final String HOST = "api.general.aisweicloud.com"; +// private static final String HOST = "localhost:8021"; + +// @Value("${aiswei.key}") + String key = "204096593"; +// @Value("${aiswei.secret}") + String secret ="SmOBrWWqKt7alK4sV2qEuWWqR75L52I0"; +// @Value("${aiswei.token}") + String token ="dE41Z0RhR1IzakFTTmJvMjZyNDF0QT09"; + private final TokenBucket tokenBucket; + + public AisweiApi() { + tokenBucket = new TokenBucket(); + } + + private static final Logger logger = LoggerFactory.getLogger(AisweiApi.class); + + private static final AisweiObjectMapper objectMapper = new AisweiObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + + public AisweiResponse aisGetRequest(String path, Map params) { + tokenBucket.get(); + Map headers = new HashMap<>(); + //(必填)根据期望的Response内容类型设置 + headers.put(HttpHeader.HTTP_HEADER_ACCEPT, "application/json"); + AisweiRequest request = new AisweiRequest(Method.GET, HttpSchema.HTTP + HOST, path, key, secret, Constants.DEFAULT_TIMEOUT * 10); + request.setHeaders(headers); + params.put("token", token); + request.setSignHeaderPrefixList(null); + request.setQuerys(params); + AisweiResponse resp = Client.execute(request); + logger.debug("ais response: {}", resp.getBody()); + return resp; + } + + /** + * 分页获取用户所有电站信息 + */ + public AisweiRet> getPlanListPro(GetPlanListProReq req) { + String path = wrapPath("/pro/getPlanListPro"); + //请求的query + Map querys = new HashMap<>(); + querys.put("token", token); + querys.put("order", String.valueOf(req.getOrder())); + querys.put("pageNum", String.valueOf(req.getPageNum())); + querys.put("pageSize", String.valueOf(req.getPageSize())); + //调用服务端 + AisweiResponse response = aisGetRequest(path, querys); + String body = response.getBody(); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(body, typeRef); + } + + private String wrapPath(String path) { + return Objects.equals(HOST, "api.general.aisweicloud.com") ? path : "/as/mock" + path; + } + + /** + * 获取电站发电量及效益减排数据 + */ + public AisweiRet getPlantOverviewPro(GetPlantOverviewProReq req) { + Map params = new HashMap<>(); + params.put("apikey", req.getApikey()); + params.put("token", req.getToken()); + AisweiResponse response = aisGetRequest("/pro/getPlantOverviewPro", params); + String body = response.getBody(); + TypeReference> typeRef = new TypeReference>() { + }; + return objectMapper.readValue(body, typeRef); + } + + /** + * 按照查询类型获取电站下所有逆变器,其实这个电站维度的统计 + * (某天、月、年)数据 + */ + public AisweiRet getPlantOutputPro(GetPlantOutputProReq req) { + String url = wrapPath("/pro/getPlantOutputPro"); + Map params = new HashMap<>(); + params.put("apikey", req.getApikey()); + params.put("period", req.getPeriod()); + params.put("date", req.getDate()); + params.put("token", req.getToken()); + AisweiResponse response = aisGetRequest(url, params); + TypeReference> typeRef = new TypeReference>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 获取电站下全部设备的列表 + */ + public AisweiRet> getDeviceListPro(GetDeviceListProReq req) { + String url = wrapPath("/pro/getDeviceListPro"); + Map params = new HashMap<>(); + params.put("apikey", req.getApiKey()); + params.put("token", req.getToken()); + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 分页获取电站下所有逆变器在某时段内数据,时间段不能超过一天 + * 时间间隔:gt 10 mins and less than 24 hours + * pageSize less than 500 + */ + public AisweiRet> getInverterDataPagePro(GetInverterDataPageProReq req) { + String url = wrapPath("/pro/getInverterDataPagePro"); + Map params = new HashMap<>(); + params.put("apikey", req.getApiKey()); + params.put("token", req.getToken()); + params.put("isno", req.getIsnos()); + params.put("startDate", req.getStartDate()); + params.put("endDate", req.getEndDate()); + params.put("pageNum", String.valueOf(req.getPageNum())); + params.put("pageSize", String.valueOf(req.getPageSize())); + + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 获取多个逆变器的最新信息,包括总满发小时候、总发电量、频率等 + */ + public AisweiRet> getLastTsDataPro(GetLastTsDataProReq req) { + String url = wrapPath("/pro/getLastTsDataPro"); + Map params = new HashMap<>(); + params.put("isnos", req.getIsnos()); + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 获取逆变器某天的发电量 + */ + public AisweiRet getInverterETodayPro(GetInverterETodayProReq req) { + String url = wrapPath("/pro/getInverterETodayPro"); + Map params = new HashMap<>(); + params.put("isnos", req.getIsnos()); + params.put("apikey", req.getApikey()); + params.put("date", req.getDate()); + params.put("token", req.getToken()); + AisweiResponse response = aisGetRequest(url, params); + TypeReference> typeRef = new TypeReference>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 分页获取逆变器历史故障信息,最大时间间隔7天 + */ + public AisweiRet> getInverterHisErrorPagePro(GetInverterHisErrorPageProReq req) { + String url = wrapPath("/pro/getInverterHisErrorPagePro"); + Map params = new HashMap<>(); + params.put("isno", req.getIsno()); + params.put("apikey", req.getApikey()); + params.put("startDate", req.getStartDate()); + params.put("endDate", req.getEndDate()); + params.put("pageNum", String.valueOf(req.getPageNum())); + params.put("pageSize", String.valueOf(req.getPageSize())); + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 取电站下逆变器当前故障信息 + */ + public AisweiRet> getInverterCurrentErrorPro(GetInverterCurrentErrorProReq req) { + String url = wrapPath("/pro/getInverterCurrentErrorPro"); + Map params = new HashMap<>(); + params.put("isno", req.getIsno()); + params.put("apikey", req.getApikey()); + params.put("token", null); + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 获取逆变器发电量及效益减排数据 + * 貌似是逆变器某个月的发电量和节能减排数据。 + */ + public AisweiRet> getInverterOverviewPro(GetInverterOverviewProReq req) { + String url = wrapPath("/pro/getInverterOverviewPro"); + Map params = new HashMap<>(); + params.put("apikey", req.getApikey()); + params.put("date", req.getDate()); + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + + /** + * 根据故障唯一标识获取逆变器恢复状态信息 + */ + public AisweiRet> getInverterRecoverStatusPro(GetInverterRecoverStatusProReq req) { + String url = wrapPath("/pro/getInverterRecoverStatusPro"); + Map params = new HashMap<>(); + params.put("faultCodes", req.getFaultCodes()); + AisweiResponse response = aisGetRequest(url, params); + TypeReference>> typeRef = new TypeReference>>() { + }; + return objectMapper.readValue(response.getBody(), typeRef); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiPage.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiPage.java new file mode 100644 index 0000000..a33b715 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiPage.java @@ -0,0 +1,52 @@ +package org.springblade.modules.nh.factory.aiswei; + +import java.util.List; + +public class AisweiPage { + + private Integer totalPages; + private Integer totalElements; + private Integer pageNum; + private Integer pageSize; + private List result; + + public Integer getTotalPages() { + return totalPages; + } + + public void setTotalPages(Integer totalPages) { + this.totalPages = totalPages; + } + + public Integer getTotalElements() { + return totalElements; + } + + public void setTotalElements(Integer totalElements) { + this.totalElements = totalElements; + } + + public Integer getPageNum() { + return pageNum; + } + + public void setPageNum(Integer pageNum) { + this.pageNum = pageNum; + } + + public Integer getPageSize() { + return pageSize; + } + + public void setPageSize(Integer pageSize) { + this.pageSize = pageSize; + } + + public List getResult() { + return result; + } + + public void setResult(List result) { + this.result = result; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiRet.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiRet.java new file mode 100644 index 0000000..f1e4f5f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiRet.java @@ -0,0 +1,32 @@ +package org.springblade.modules.nh.factory.aiswei; + +public class AisweiRet { + + private Integer status; + private String info; + private T data; + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getInfo() { + return info; + } + + public void setInfo(String info) { + this.info = info; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiTestController.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiTestController.java new file mode 100644 index 0000000..75bd2bf --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/AisweiTestController.java @@ -0,0 +1,207 @@ +//package org.springblade.modules.nh.factory.aiswei; +// +//import org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro.GetDeviceListProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro.GetInverterCurrentErrorProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getinverteretodaypro.GetInverterETodayProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro.GetInverterHisErrorPageProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getinverteroverviewpro.GetInverterOverviewProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro.GetInverterRecoverStatusProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro.GetLastTsDataProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro.GetPlanListProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProReq; +//import org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro.GetPlantOverviewProReq; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.ResponseBody; +//import org.springframework.web.bind.annotation.RestController; +// +//@RestController +//@RequestMapping("/as") +//@Slf4j +//public class AisweiTestController { +// +// @Autowired +// AisweiApi aisweiApi; +// +// @GetMapping(value = "getPlanListPro") +// public Object getPlanListPro() { +// GetPlanListProReq req = new GetPlanListProReq(); +// req.setOrder(0); +// req.setPageNum(1); +// req.setPageSize(10); +// req.setToken(""); +// return aisweiApi.getPlanListPro(req); +// } +// +// @GetMapping(value = "getPlantOverviewPro") +// public Object getPlantOverviewPro() { +// GetPlantOverviewProReq req = new GetPlantOverviewProReq(); +// req.setApikey("0b6c59b2174d4226a8f8f2bcc344218f"); +// req.setToken(""); +// return aisweiApi.getPlantOverviewPro(req); +// } +// +// @GetMapping(value = "getPlantOutputPro") +// public Object getPlantOutputPro(HttpServletRequest request) { +// GetPlantOutputProReq req = new GetPlantOutputProReq(); +// req.setApikey("2c855c9b742e4a5ba37817321cc6ef1f"); +// req.setDate("2024-04-17"); +// String date = request.getParameter("d"); +// if (StringUtils.isNotBlank(date)) { +// req.setDate(date); +// } +// req.setPeriod("bydays"); // "time": "07:10", +//// req.setDate("2024-04"); +//// req.setPeriod("bymonth"); // "time": "2024-04-02", +//// req.setDate("2024"); +//// req.setPeriod("byyear"); // "time": "2024-01", +// req.setToken(""); +// return aisweiApi.getPlantOutputPro(req); +// } +// +// @GetMapping(value = "getDeviceListPro") +// public Object getDeviceListPro() { +// GetDeviceListProReq req = new GetDeviceListProReq(); +// req.setApiKey("0b6c59b2174d4226a8f8f2bcc344218f,cf8943bb6ece49958bb7cef73b310b31,46d95dc6bbe142fda71dabc1d2e34204,b7bcde84430b4206bbb2b4e3d8640ffc,49138cdf45014f6c956ab88195fa3768"); +// req.setToken(""); +// return aisweiApi.getDeviceListPro(req); +// } +// +// @GetMapping(value = "getInverterDataPagePro") +// public Object getInverterDataPagePro() { +// GetInverterDataPageProReq req = new GetInverterDataPageProReq(); +// req.setApiKey("0b6c59b2174d4226a8f8f2bcc344218f"); +// req.setToken(""); +// req.setIsnos("TA004095N2410077"); // TA004095N2410077 +// req.setStartDate("2024-04-16 14:00:00"); +// req.setEndDate("2024-04-17 10:59:59"); +// req.setPageNum(1); +// req.setPageSize(1); +// return aisweiApi.getInverterDataPagePro(req); +// } +// +// @GetMapping(value = "getLastTsDataPro") +// public Object getLastTsDataPro() { +// GetLastTsDataProReq req = new GetLastTsDataProReq(); +// req.setToken(""); +// req.setIsnos("TA004095N2410077"); +// return aisweiApi.getLastTsDataPro(req); +// } +// +// @GetMapping(value = "getInverterETodayPro") +// public Object getInverterETodayPro() { +// GetInverterETodayProReq req = new GetInverterETodayProReq(); +// req.setToken(""); +// req.setIsnos("TA004095N2410077"); +// req.setApikey("0b6c59b2174d4226a8f8f2bcc344218f"); +// req.setDate("2024-04-11"); +// return aisweiApi.getInverterETodayPro(req); +// } +// +// @GetMapping(value = "getInverterHisErrorPagePro") +// public Object getInverterHisErrorPagePro() { +// GetInverterHisErrorPageProReq req = new GetInverterHisErrorPageProReq(); +// req.setToken(""); +// req.setIsno("TA004095N2410085"); +// req.setApikey("49138cdf45014f6c956ab88195fa3768"); +// req.setStartDate("2024-04-05 00:00:00"); +// req.setEndDate("2024-04-11 00:00:00"); +// req.setPageNum(1); +// req.setPageSize(500); +// return aisweiApi.getInverterHisErrorPagePro(req); +// } +// +// @GetMapping(value = "getInverterCurrentErrorPro") +// public Object getInverterCurrentErrorPro() { +// GetInverterCurrentErrorProReq req = new GetInverterCurrentErrorProReq(); +// req.setToken(""); +// req.setIsno("TA004095N2410085"); +// req.setApikey("49138cdf45014f6c956ab88195fa3768"); +// return aisweiApi.getInverterCurrentErrorPro(req); +// } +// +// @GetMapping(value = "getInverterOverviewPro") +// public Object getInverterOverviewPro(HttpServletRequest request) { +// GetInverterOverviewProReq req = new GetInverterOverviewProReq(); +// req.setToken(""); +// req.setDate(request.getParameter("d")); +// req.setApikey("0b6c59b2174d4226a8f8f2bcc344218f"); +// return aisweiApi.getInverterOverviewPro(req); +// } +// +// @GetMapping(value = "getInverterRecoverStatusPro") +// public Object getInverterRecoverStatusPro() { +// GetInverterRecoverStatusProReq req = new GetInverterRecoverStatusProReq(); +// req.setToken(""); +// req.setFaultCodes("abc"); +// return aisweiApi.getInverterRecoverStatusPro(req); +// } +// +// @GetMapping(value = "mock/pro/getInverterHisErrorPagePro") +// public Object getInverterHisErrorPageProMock() { +// return "{\n" + +// " \"status\": 200,\n" + +// " \"info\": \"success\",\n" + +// " \"time\": \"2024-04-16 11:11:11\",\n" + +// " \"data\": {\n" + +// " \"totalPages\": 1,\n" + +// " \"totalElements\": 1,\n" + +// " \"pageNum\": 1,\n" + +// " \"pageSize\": 1,\n" + +// " \"result\": [\n" + +// " {\n" + +// " \"errorDate\": 1713237071000,\n" + +// " \"errorCode\": 235,\n" + +// " \"errorType\": 3,\n" + +// " \"context\": \"235 - 设置丢失\",\n" + +// " \"isno\": \"TA004095N2410077\"\n" + +// " }\n" + +// " ]\n" + +// " }\n" + +// "}"; +// } +// +// @GetMapping(value = "mock/pro/getInverterCurrentErrorPro") +// public Object getInverterCurrentErrorProMock() { +// return "{\n" + +// " \"status\": 200,\n" + +// " \"info\": \"success\",\n" + +// " \"time\": \"2024-04-16 13:10:10\",\n" + +// " \"data\": [\n" + +// " {\n" + +// " \"context\": \"335 - 网络神经错乱\",\n" + +// " \"errorCode\": 335,\n" + +// " \"errorType\": 3,\n" + +// " \"faultCode\": \"Q0gwMDUwMDAxMjI1MDA5MnwzNHwxNjU2MDQzNzMzMDAw\",\n" + +// " \"isno\": \"TA004095N2410077\",\n" + +// " \"errorDate\": 1713244210000\n" + +// " }\n" + +// " ]\n" + +// "}\n"; +// } +// +// @GetMapping(value = "mock/pro/getInverterRecoverStatusPro") +// public Object getInverterRecoverStatusProMock() { +// return "{\n" + +// " \"status\": 200,\n" + +// " \"info\": \"success\",\n" + +// " \"time\": \"2022-06-24 16:56:36\",\n" + +// " \"data\": [\n" + +// " {\n" + +// " \"recoverTime\": 1713244220000,\n" + +// " \"recover\": 1,\n" + +// " \"faultCode\": \"Q0gwMDUwMDAxMjI1MDA5MnwzNHwxNjU2MDQzNzMzMDAw\"\n" + +// " },\n" + +// " {\n" + +// " \"recoverTime\": null,\n" + +// " \"recover\": 0,\n" + +// " \"faultCode\": \"U1AwMDIzMDAyMjI1MDQwM3wzNXwxNjU1NzU4MDkwMDAw\"\n" + +// " }\n" + +// " ]\n" + +// "}\n"; +// } +// +//} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.java new file mode 100644 index 0000000..c8efe79 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.java @@ -0,0 +1,43 @@ +package org.springblade.modules.nh.factory.aiswei.config; + +import org.apache.http.client.config.RequestConfig; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.modules.nh.factory.common.EzTemplateBase; +import org.springframework.http.HttpHeaders; +import org.springframework.http.client.BufferingClientHttpRequestFactory; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.stereotype.Service; + +@Service +public class AisweiApiRestTemplate extends EzTemplateBase { + + private static final Logger log = LoggerFactory.getLogger(AisweiApiRestTemplate.class); + + public AisweiApiRestTemplate() { + super(createRestTemplate(createHttpRequestFactory())); + } + + protected static ClientHttpRequestFactory createHttpRequestFactory() { + int timeout = 30000; + RequestConfig config = RequestConfig.custom() + .setConnectTimeout(timeout) + .setConnectionRequestTimeout(timeout) + .setSocketTimeout(timeout).build(); + + CloseableHttpClient client = HttpClientBuilder.create().setDefaultRequestConfig(config).build(); + return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()); + } + + @Override + protected void callHeaders(String url, String data, HttpHeaders headers) { +// if (!url.endsWith("OpenApi/GetToken")) { +// String token = goodweTokenCache.getToken(); +// headers.set("token", token); +// } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/Constants.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/Constants.java new file mode 100644 index 0000000..aea645a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/Constants.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.constant; + +/** + * 通用常量 + */ +public class Constants { + //签名算法HmacSha256 + public static final String HMAC_SHA256 = "HmacSHA256"; + //编码UTF-8 + public static final String ENCODING = "UTF-8"; + //UserAgent + public static final String USER_AGENT = "demo/aliyun/java"; + //换行符 + public static final String LF = "\n"; + //串联符 + public static final String SPE1 = ","; + //示意符 + public static final String SPE2 = ":"; + //连接符 + public static final String SPE3 = "&"; + //赋值符 + public static final String SPE4 = "="; + //问号符 + public static final String SPE5 = "?"; + //默认请求超时时间,单位毫秒 + public static final int DEFAULT_TIMEOUT = 1000; + //参与签名的系统Header前缀,只有指定前缀的Header才会参与到签名中 + public static final String CA_HEADER_TO_SIGN_PREFIX_SYSTEM = "X-Ca-"; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/ContentType.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/ContentType.java new file mode 100644 index 0000000..44ed3e2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/ContentType.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.constant; + +/** + * 常用HTTP Content-Type常量 + */ +public class ContentType { + //表单类型Content-Type + public static final String CONTENT_TYPE_FORM = "application/x-www-form-urlencoded; charset=UTF-8"; + // 流类型Content-Type + public static final String CONTENT_TYPE_STREAM = "application/octet-stream; charset=UTF-8"; + //JSON类型Content-Type + public static final String CONTENT_TYPE_JSON = "application/json; charset=UTF-8"; + //XML类型Content-Type + public static final String CONTENT_TYPE_XML = "application/xml; charset=UTF-8"; + //文本类型Content-Type + public static final String CONTENT_TYPE_TEXT = "application/text; charset=UTF-8"; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.java new file mode 100644 index 0000000..730948c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.constant; + +/** + * HTTP头常量 + */ +public class HttpHeader { + //请求Header Accept + public static final String HTTP_HEADER_ACCEPT = "Accept"; + //请求Body内容MD5 Header + public static final String HTTP_HEADER_CONTENT_MD5 = "Content-MD5"; + //请求Header Content-Type + public static final String HTTP_HEADER_CONTENT_TYPE = "Content-Type"; + //请求Header UserAgent + public static final String HTTP_HEADER_USER_AGENT = "User-Agent"; + //请求Header Date + public static final String HTTP_HEADER_DATE = "Date"; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpMethod.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpMethod.java new file mode 100644 index 0000000..b1a9e09 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpMethod.java @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.constant; + +/** + * HTTP方法常量 + */ +public class HttpMethod { + //GET + public static final String GET = "GET"; + //POST + public static final String POST = "POST"; + //PUT + public static final String PUT = "PUT"; + //DELETE + public static final String DELETE = "DELETE"; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.java new file mode 100644 index 0000000..85b6bff --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.constant; + +/** + * HTTP Schema常量 + */ +public class HttpSchema { + //HTTP + public static final String HTTP = "http://"; + //HTTPS + public static final String HTTPS = "https://"; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/SystemHeader.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/SystemHeader.java new file mode 100644 index 0000000..af28467 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/constant/SystemHeader.java @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.constant; + +/** + * 系统HTTP头常量 + */ +public class SystemHeader { + //签名Header + public static final String X_CA_SIGNATURE = "X-Ca-Signature"; + //所有参与签名的Header + public static final String X_CA_SIGNATURE_HEADERS = "X-Ca-Signature-Headers"; + //请求时间戳 + public static final String X_CA_TIMESTAMP = "X-Ca-Timestamp"; + //请求放重放Nonce,15分钟内保持唯一,建议使用UUID + public static final String X_CA_NONCE = "X-Ca-Nonce"; + //APP KEY + public static final String X_CA_KEY = "X-Ca-Key"; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.java new file mode 100644 index 0000000..dc539f5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.java @@ -0,0 +1,23 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro; + +import lombok.Data; + +@Data +public class GetDeviceListProR { + + /** + * 逆变器序列号 + */ + private String isn; + private String ludt; + /** + * 逆变器状态 + * 0-离线 1-在线 + * inverters + * ➢ + * 9- 未激活 + * 2- 缓存(询问aiswei,这个状态表示:网络等原因数据没有上报的暂存的状态) + */ + private Integer istate; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.java new file mode 100644 index 0000000..78efe5b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.java @@ -0,0 +1,17 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro; + +import lombok.Data; + +@Data +public class GetDeviceListProReq { + + /** + * 电站key a1,a2,a3 + */ + private String apiKey; + /** + * 用户token + */ + private String token; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProResp.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProResp.java new file mode 100644 index 0000000..f1b62e6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProResp.java @@ -0,0 +1,20 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetDeviceListProResp { + + /** + * 采集器序列号 + */ + private String psn; + /** + * 0-离线 1-在线 9- 未激活 + */ + private Integer pstate; + private List inverters; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProR.java new file mode 100644 index 0000000..b017632 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProR.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro; + +import lombok.Data; + +@Data +public class GetInverterCurrentErrorProR { + /** + * 错误时间 + */ + private Long errorDate; + private Integer errorCode; + private Integer errorType; + /** + * 描述 + */ + private String context; + /** + * 逆变器序列号 + */ + private String isno; + private String apikey; + /** + * 唯一标识,怎么历史信息中没有该字段? + */ + private String faultCode; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.java new file mode 100644 index 0000000..85bf5f8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro; + +import lombok.Data; + +@Data +public class GetInverterCurrentErrorProReq { + + private String token; + private String apikey; + private String isno; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProData.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProData.java new file mode 100644 index 0000000..189d872 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProData.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetInverterDataPageProData { + + private String apikey; + private List dataList; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProR.java new file mode 100644 index 0000000..f74638d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProR.java @@ -0,0 +1,172 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro; + +import lombok.Data; + +@Data +public class GetInverterDataPageProR { + /** + * U 相温度 + */ + private String tu; + /** + * V 相温度 + */ + private String tv; + /** + * 时间戳,毫秒 + */ + private String tmstp; + /** + * W 相温度 + */ + private String tw; + /** + * 入库时间,存入数据库的时间吗? + */ + private String insdt; + /** + * 频率 + */ + private String fac; + /** + * 采集器序列号 + */ + private String psn; + /** + * 输出功率 + */ + private String pac; + /** + * Bus 电压 + */ + private String bv; + /** + * 日发电量 + */ + private String etd; + /** + * 视在功率,W + */ + private String sac; + /** + * 采样频率 + */ + private String smp; + /** + * 交流电流 + */ + private String ia1; + /** + * tim + * 这个应该是采集时间 + */ + private String tim; + /** + * 交流电流 + */ + private String ia3; + /** + * 逆变器序列号 + */ + private String sn; + /** + * 交流电流 + */ + private String ia2; + /** + * 组串电流 + */ + private String s1; + /** + * Boost 温度 + */ + private String cb; + /** + * 组串电流 + */ + private String s2; + /** + * 无功功率,W + */ + private String prc; + /** + * 组串电流 + */ + private String s3; + /** + * 总发电量,0.1kwh + */ + private String eto; + /** + * 组串电流 + */ + private String s4; + /** + * 总发电时长,1H + */ + private String hto; + /** + * 组串电流 + */ + private String s5; + /** + * 散热片温度 + */ + private String cf; + /** + * 组串电流 + */ + private String s6; + /** + * 交流电压 + */ + private String va2; + /** + * 交流电压 + */ + private String va1; + /** + * MPPT 电流 + */ + private String i1; + /** + * MPPT 电流 + */ + private String i2; + /** + * 交流电压 + */ + private String va3; + /** + * MPPT 电流 + */ + private String i3; + /** + * 入网分钟数 + */ + private String itv; + /** + * 错误代码 + */ + private String er; + /** + * 功率因数 + */ + private String pf; + /** + * 警告代码 + */ + private String wn0; + /** + * MPPT 电压 + */ + private String v1; + /** + * MPPT 电压 + */ + private String v2; + /** + * MPPT 电压 + */ + private String v3; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.java new file mode 100644 index 0000000..f453d65 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro; + +import lombok.Data; + +/** + * tokenString用户tokenY + * apikeyString电站keyY + * isnosString逆变器序列号 N + * Eg 111,222N + * startDateString开始时间 + * yyyy-MM-dd HH:mm:ssY + * endDateString结束时间 + * yyyy-MM-dd HH:mm:ssY + * pageNumInteger当前页码Y + * pageSizeInteger每页大 + */ +@Data +public class GetInverterDataPageProReq { + private String token; + private String apiKey; + private String isnos; + private String startDate; + private String endDate; + private int pageNum; + private int pageSize; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProData.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProData.java new file mode 100644 index 0000000..313bc64 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProData.java @@ -0,0 +1,17 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverteretodaypro; + +import lombok.Data; + +import java.util.List; +import java.util.Map; + +@Data +public class GetInverterETodayProData { + + private String date; + /** + * kwh + */ + private List> result; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProReq.java new file mode 100644 index 0000000..9696cb9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteretodaypro/GetInverterETodayProReq.java @@ -0,0 +1,24 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverteretodaypro; + +import lombok.Data; + +@Data +public class GetInverterETodayProReq { + + private String token; + /** + * 电站key Y + */ + private String apikey; + /** + * 逆变器序列号 + * Eg 111,222 + * N + */ + private String isnos; + /** + * 时间 格式 yyyy-MM-dd + */ + private String date; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.java new file mode 100644 index 0000000..e9a0ca0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.java @@ -0,0 +1,24 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro; + +import lombok.Data; + +@Data +public class GetInverterHisErrorPageProR { + + /** + * 错误时间 + */ + private Long errorDate; + private Integer errorCode; + private Integer errorType; + /** + * 描述 + */ + private String context; + /** + * 逆变器序列号 + */ + private String isno; + private String apikey; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProReq.java new file mode 100644 index 0000000..3d35107 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProReq.java @@ -0,0 +1,28 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro; + +import lombok.Data; + +@Data +public class GetInverterHisErrorPageProReq { + + private String token; + /** + * 电站key Y + */ + private String apikey; + /** + * 逆变器序列号 N + */ + private String isno; + /** + * 开始时间 格式 yyyy-MM-dd HH:mm:ss + */ + private String startDate; + /** + * 开始时间 格式 yyyy-MM-dd HH:mm:ss + */ + private String endDate; + private Integer pageNum; + private Integer pageSize; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProData.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProData.java new file mode 100644 index 0000000..9b62f63 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProData.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverteroverviewpro; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetInverterOverviewProData { + + private String apikey; + private List result; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.java new file mode 100644 index 0000000..ab3f6ea --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.java @@ -0,0 +1,49 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverteroverviewpro; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * "isno": "SP00200022252664", + * "e_today": "117.60", + * "e_month": "127.600", + * "e_total": "407.90", + * "co2": 326.32, + * "yield": 163.16, + * "recvdate": "2022-06-21 16:33:13.0" + */ + +@Data +public class GetInverterOverviewProR { + /** + * 逆变器序列号 + */ + private String isno; + /** + * 日发电量,kwh + */ + @JsonProperty("e_today") + private String eToday; + /** + * 月发电量,kwh + */ + @JsonProperty("e_month") + private String eMonth; + /** + * 总发电量,kwh + */ + @JsonProperty("e_total") + private String eTotal; + /** + * 二氧化碳减排 + */ + private Double co2; + /** + * 收益 + */ + private Double yield; + /** + * 数据时间 + */ + private String recvdate; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProReq.java new file mode 100644 index 0000000..4f74542 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProReq.java @@ -0,0 +1,18 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverteroverviewpro; + +import lombok.Data; + +@Data +public class GetInverterOverviewProReq { + + private String token; + /** + * 电站key + */ + private String apikey; + /** + * 时间 格式 yyyy-MM + */ + private String date; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.java new file mode 100644 index 0000000..0171e4d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.java @@ -0,0 +1,22 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro; + +import lombok.Data; + +@Data +public class GetInverterRecoverStatusProR { + + /** + * 恢复时间 + */ + private Long recoverTime; + /** + * 0-未恢复 + * 1- 已恢复 + */ + private Integer recover; + /** + * 唯一标识码 + */ + private String faultCode; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProReq.java new file mode 100644 index 0000000..64df042 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProReq.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro; + +import lombok.Data; + +@Data +public class GetInverterRecoverStatusProReq { + + private String token; + /** + * 唯一标识码,例如:111,222,333 + */ + private String faultCodes; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProR.java new file mode 100644 index 0000000..186ada5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProR.java @@ -0,0 +1,168 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro; + +import lombok.Data; + +@Data +public class GetLastTsDataProR { + /** + * U 相温度 + */ + private String tu; + /** + * V 相温度 + */ + private String tv; + /** + * 电站key + */ + private String apikey; + /** + * 时间戳,毫秒 + */ + private String tmstp; + /** + * W 相温度 + */ + private String tw; + /** + * 频率 + */ + private String fac; + /** + * 采集器序列号 + */ + private String psn; + /** + * 输出功率 + */ + private String pac; + /** + * Bus 电压 + */ + private String bv; + /** + * 日发电量 + */ + private String etd; + /** + * 视在功率,W + */ + private String sac; + /** + * 交流电流 + */ + private String ia1; + /** + * tim + * 这个应该是采集时间 + */ + private String tim; + /** + * 交流电流 + */ + private String ia3; + /** + * 逆变器序列号 + */ + private String sn; + /** + * 交流电流 + */ + private String ia2; + /** + * 组串电流 + */ + private String s1; + /** + * Boost 温度 + */ + private String cb; + /** + * 组串电流 + */ + private String s2; + /** + * 无功功率,W + */ + private String prc; + /** + * 组串电流 + */ + private String s3; + /** + * 总发电量,0.1kwh + */ + private String eto; + /** + * 组串电流 + */ + private String s4; + /** + * 并网持续时间,1H + */ + private String hto; + /** + * 组串电流 + */ + private String s5; + /** + * 散热片温度 + */ + private String cf; + /** + * 组串电流 + */ + private String s6; + /** + * 交流电压 + */ + private String va2; + /** + * 交流电压 + */ + private String va1; + /** + * MPPT 电流 + */ + private String i1; + /** + * MPPT 电流 + */ + private String i2; + /** + * 交流电压 + */ + private String va3; + /** + * MPPT 电流 + */ + private String i3; + /** + * 入网分钟数 + */ + private String itv; + /** + * 错误代码 + */ + private String er; + /** + * 功率因数 + */ + private String pf; + /** + * 警告代码 + */ + private String wn0; + /** + * MPPT 电压 + */ + private String v1; + /** + * MPPT 电压 + */ + private String v2; + /** + * MPPT 电压 + */ + private String v3; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.java new file mode 100644 index 0000000..79279f8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro; + +import lombok.Data; + +@Data +public class GetLastTsDataProReq { + + /** + * 逗号分隔 + */ + private String isnos; + private String token; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProR.java new file mode 100644 index 0000000..47bf34d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProR.java @@ -0,0 +1,75 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro; + +import lombok.Data; + +@Data +public class GetPlanListProR { + + /** + * 国家代码 + */ + private Integer country; + /** + * 装机容量 1kwp + */ + private Double totalpower; + /** + * 电站key + */ + private String apikey; + /** + * 城市 + */ + private String city; + /** + * 用户手机或邮箱 + */ + private String accountName; + /** + * 最后更新时间 + */ + private String ludt; + /** + * 日发电量 + */ + private Double etoday; + /** + * 创建时间 + */ + private String createdt; + /** + * 纬度 + */ + private Double wd; + /** + * 总发电量 + */ + private Double etotal; + /** + * 背景图片 + */ + private String imgurl; + /** + * 州和省代码 + */ + private Integer province; + /** + * 电站名称 + */ + private String name; + /** + * 经度 + */ + private Double jd; + /** + * 地址 + */ + private String position; + /** + * 电站状态 + * 0-离线 1-正常 2-警告 3-错误 + * 4-部分离线 + */ + private Integer status; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProReq.java new file mode 100644 index 0000000..abf3961 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplanlistpro/GetPlanListProReq.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro; + +import lombok.Data; + +@Data +public class GetPlanListProReq { + private String token; + /** 0: order by ludt 1: order by createTime 2: order by status Y **/ + private Integer order; + /** 页码 Y **/ + private Integer pageNum; + /** 每页大小 **/ + private Integer pageSize; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProR.java new file mode 100644 index 0000000..e66b396 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProR.java @@ -0,0 +1,21 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro; + +import lombok.Data; + +@Data +public class GetPlantOutputProR { + + /** + * 时间 + */ + private String time; + /** + * 值 + */ + private Double value; + /** + * 序号 + */ + private String no; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.java new file mode 100644 index 0000000..66dc949 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.java @@ -0,0 +1,30 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro; + +import lombok.Data; + +@Data +public class GetPlantOutputProReq { + + /** + * 电站key + */ + private String apikey; + /** + * 类型: bydays、bymonth、byyear、bytotal + */ + private String period; + /** + * 时间格式 + * bydays yyyy-MM-dd + * bymonth yyyy-MM + * byyear yyyy + * bytotal date 不填 + * N + */ + private String date; + /** + * 用户token + */ + private String token; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.java new file mode 100644 index 0000000..fd841e2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantOutputProResp { + + private String apikey; + private String dataunit; + private List result; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.java new file mode 100644 index 0000000..2d49c15 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.java @@ -0,0 +1,46 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetPlantOverviewProR { + + @JsonProperty("E-Month") + private UnitData emonth; + /** + * 二氧化碳减排 + */ + @JsonProperty("CO2Avoided") + private UnitData co2Avoided; + @JsonProperty("E-Today") + private UnitData etoday; + /** + * 总收益 + */ + @JsonProperty("TotalYield") + private UnitData totalYield; + @JsonProperty("E-Total") + private UnitData etotal; + @JsonProperty("E-Year") + private UnitData eyear; + /** + * 最后更新时间 + */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date ludt; + /** + * 功率 + */ + private UnitData power; + /** + * 电站状态 + * 0:下线;1:在线;2:警告;3:故障;4-部分离线 + */ + private String status; + private String apikey; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.java new file mode 100644 index 0000000..138716d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro; + +import lombok.Data; + +@Data +public class GetPlantOverviewProReq { + /** 电站key Y **/ + private String apikey; + /** 用户token Y **/ + private String token; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/UnitData.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/UnitData.java new file mode 100644 index 0000000..05ae2c6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/UnitData.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro; + +import lombok.Data; + +@Data +public class UnitData { + + private String unit; + private Double value; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/enums/Method.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/enums/Method.java new file mode 100644 index 0000000..306bdee --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/enums/Method.java @@ -0,0 +1,27 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.enums; + +/** + * Http请求方法 + * Created by lipengfei on 16/3/17. + */ +public enum Method { + GET, POST_FORM, POST_STRING, POST_BYTES, PUT_FORM, PUT_STRING, PUT_BYTES, DELETE; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisStationDMYEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisStationDMYEachRunner.java new file mode 100644 index 0000000..cf3299c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisStationDMYEachRunner.java @@ -0,0 +1,179 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProR; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProResp; +import org.springblade.modules.nh.factory.common.EachRunner; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.time.DateUtils; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.dto.sync.JlglHourlyDTO; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryDailyStatService; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springblade.modules.nh.service.impl.MonitorEntryMonthStatServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +@Slf4j +public class AisStationDMYEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IMonitorEntryDailyStatService monitorEntryDailyStatService; + @Autowired + IMonitorEntryMonthStatService monitorEntryMonthStatService; + @Autowired + IMonitorEntryYearStatService monitorEntryYearStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + boolean statPacOnly = false; + if (ctx != null) { + Object statPacOnlyVal = ctx.get("stat_pac_only"); + if (Objects.equals(statPacOnlyVal, "1")) { + statPacOnly = true; + } + } + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + final Date baseDate = new Date(); + if (statPacOnly) { + GetPlantOutputProResp resp = syncOutput(stationId, "bydays", df.format(baseDate)); + if (resp != null) { + handlePacByDay(df.format(baseDate), resp); + } + return; + } + + // 同步最近3天的Pac + for (int i = 0; i < 3; i++) { + Date date = DateUtils.addDays(baseDate, -(i + 1)); + GetPlantOutputProResp resp = syncOutput(stationId, "bydays", df.format(date)); + if (resp != null) { + handlePacByDay(df.format(date), resp); + } + } + // 同步本月/上月的发电量 + df = new SimpleDateFormat("yyyy-MM"); + GetPlantOutputProResp resp = syncOutput(stationId, "bymonth", df.format(baseDate)); + if (resp != null) { + handleEnergyByMonth(resp); + } + if (CommonUtil.monthBeginLessThanDays(3, baseDate)) { + Date lastMonth = DateUtils.addMonths(baseDate, -1); + resp = syncOutput(stationId, "bymonth", df.format(lastMonth)); + if (resp != null) { + handleEnergyByMonth(resp); + } + } + // 同步本年/上年的发电量 + df = new SimpleDateFormat("yyyy"); + resp = syncOutput(stationId, "byyear", df.format(baseDate)); + if (resp != null) { + handleEnergyByYear(resp); + } + + if (CommonUtil.yearBeginLessThanDays(3, baseDate)) { + Date lastYear = DateUtils.addYears(baseDate, -1); + resp = syncOutput(stationId, "byyear", df.format(lastYear)); + if (resp != null) { + handleEnergyByYear(resp); + } + } + } + + private void handleEnergyByYear(GetPlantOutputProResp resp) { + if (!CollectionUtils.isEmpty(resp.getResult())) { + List monthEnergyDTOList = Lists.newArrayList(); + for (GetPlantOutputProR s : resp.getResult()) { + MonthEnergyDTO monthEnergyDTO = new MonthEnergyDTO(); + monthEnergyDTO.setStationId(resp.getApikey()); + monthEnergyDTO.setUnit(resp.getDataunit()); + monthEnergyDTO.setValue(s.getValue()); + monthEnergyDTO.setMonth(s.getTime()); + monthEnergyDTO.setSysType(NhConstants.SYS_TYPE_AISWEI); + monthEnergyDTOList.add(monthEnergyDTO); + } + monitorEntryYearStatService.syncYearStatData(monthEnergyDTOList); + } + } + + private void handleEnergyByMonth(GetPlantOutputProResp resp) { + List list = resp.getResult(); + if (CollectionUtils.isEmpty(list)) { + return; + } + + List dayEnergyList = Lists.newArrayList(); + for (GetPlantOutputProR item : list) { + Date date = DateUtil.parse(item.getTime(), "yyyy-MM-dd"); + if (DateUtils.isSameDay(date, new Date())) { + // 不使用今日的数据 + continue; + } + DayEnergyDTO data = new DayEnergyDTO(); + data.setStationId(resp.getApikey()); + data.setUnit(resp.getDataunit()); + data.setValue(item.getValue()); + data.setDate(item.getTime()); + dayEnergyList.add(data); + } + monitorEntryMonthStatService.syncMonthStatData(dayEnergyList); + } + + private void handlePacByDay(String date, GetPlantOutputProResp resp) { + String dataunit = resp.getDataunit(); + List jlglHourlyDTOS = new ArrayList<>(); + List result = resp.getResult(); + Set hours = new HashSet<>(); + for (GetPlantOutputProR plantOutputProR : result) { + String time = plantOutputProR.getTime(); + String[] splits = time.split(":"); + String hour = splits[0]; + if (!hours.contains(hour)) { + JlglHourlyDTO item = new JlglHourlyDTO(); + item.setHour(Integer.parseInt(hour)); + item.setJlgl(UnitUtil.convPower(plantOutputProR.getValue(), dataunit)); + jlglHourlyDTOS.add(item); + hours.add(hour); + } + } + monitorEntryDailyStatService.syncEntryDailyJlglStat(jlglHourlyDTOS, date, resp.getApikey(), NhConstants.SYS_TYPE_AISWEI); + } + + private GetPlantOutputProResp syncOutput(String stationId, String period, String date) { + try { + GetPlantOutputProReq req = new GetPlantOutputProReq(); + req.setApikey(stationId); + req.setDate(date); + req.setPeriod(period); // "time": "2024-01", + AisweiRet pro = aisweiApi.getPlantOutputPro(req); + if (Objects.equals(pro.getStatus(), 200)) { + return pro.getData(); + } else { + log.error("aiswei 同步日月年数据失败, status:{}, info:{}, stationId:{}", pro.getStatus(), pro.getInfo(), stationId); + } + Thread.sleep(1000); + } catch (Exception ex) { + log.error("aiswei 同步日月年数据失败", ex); + } + return null; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.java new file mode 100644 index 0000000..590882c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.java @@ -0,0 +1,93 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro.GetInverterCurrentErrorProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinvertercurrenterrorpro.GetInverterCurrentErrorProReq; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IAlarmCodeService; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service +@Slf4j +public class AisweiAlarmEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IAlarmInfoService monitorAlarmInfoService; + @Autowired + IAlarmCodeService monitorFaultCodeService; + @Autowired + IMonitorEntryStatService entryStatService; + + + @Override + public void handle(String stationId, Map ctx) throws IOException { + GetInverterCurrentErrorProReq req = new GetInverterCurrentErrorProReq(); + req.setApikey(stationId); + AisweiRet> resp = aisweiApi.getInverterCurrentErrorPro(req); + if (!Objects.equals(resp.getStatus(), 200)) { + log.info("aiswei 同步当前告警信息失败,info:{},stationId:{}", resp.getInfo(), stationId); + if(resp.getInfo().contains("The station does not belong to this user")){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getOutStationId, stationId); + entryStatService.remove(queryWrapper); + } + return; + } + List alarmList = convList(resp.getData(), stationId); + try { + monitorAlarmInfoService.syncAlarmInfo(alarmList, NhConstants.SYS_TYPE_AISWEI); + } catch (Exception ex) { + log.error("aiswei sync alarm list error", ex); + } + try { + monitorFaultCodeService.syncFaultCode(NhConstants.SYS_TYPE_AISWEI, alarmList); + } catch (Exception ex) { + log.error("aiswei sync fault code error", ex); + } + } + + private List convList(List list, String stationId) { + List ret = new ArrayList<>(); + for (GetInverterCurrentErrorProR r : list) { + ret.add(convR(r, stationId)); + } + return ret; + } + + private GetAlarmListR convR(GetInverterCurrentErrorProR r, String stationId) { + GetAlarmListR ret = new GetAlarmListR(); + ret.setStationId(stationId); + ret.setAlarmDeviceSn(r.getIsno()); + ret.setStationName(null); + ret.setAlarmCode(String.valueOf(r.getErrorCode())); + ret.setAlarmType(null); // 用不到 + ret.setAlarmLevel("2"); // aiswei全部当成报警好了 + ret.setAlarmBeginTime(r.getErrorDate()); + ret.setAlarmEndTime(null); + ret.setAlarmMsg(r.getContext()); + ret.setState(null); + ret.setWarningInfoData(r.getFaultCode()); // aiswei这里用来存 + ret.setAdvice(null); + ret.setMachine(null); + ret.setModel(null); + return ret; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.java new file mode 100644 index 0000000..da7b69f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.java @@ -0,0 +1,108 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.time.DateUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiPage; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro.GetInverterHisErrorPageProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterhiserrorpagepro.GetInverterHisErrorPageProReq; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.service.IAlarmCodeService; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +@Slf4j +public class AisweiAlarmHistoryPageAction extends PageAction, GetInverterHisErrorPageProR> { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IAlarmInfoService monitorAlarmInfoService; + @Autowired + IAlarmCodeService monitorFaultCodeService; + + @Override + public PageInfo, GetInverterHisErrorPageProR> pageData(int page, int pageSize, Map ctx) throws IOException { + GetInverterHisErrorPageProReq req = new GetInverterHisErrorPageProReq(); + req.setToken(""); + req.setIsno(null); + req.setApikey((String) ctx.get("stationId")); + Date end = new Date(); + Date yesterday = DateUtils.addDays(end, -1); + Date start = DateUtils.addMinutes(yesterday, 1); + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + req.setStartDate(df.format(start)); + req.setEndDate(df.format(end)); + req.setPageNum(page); + req.setPageSize(pageSize); + AisweiRet> resp = aisweiApi.getInverterHisErrorPagePro(req); + if (!Objects.equals(resp.getStatus(), 200)) { + log.error("aiswei 获取历史报警信息失败,stationId:{},info:{}", ctx.get("stationId"), resp.getInfo()); + return null; + } + PageInfo, GetInverterHisErrorPageProR> ret = new PageInfo<>(); + ret.setPages(resp.getData().getTotalPages()); + ret.setData(resp.getData()); + AisweiPage respData = resp.getData(); + ret.setList(respData.getResult()); + return ret; + } + + @Override + public void handlePageInfo(PageInfo, GetInverterHisErrorPageProR> pageInfo, Map ctx) { + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + List alarmList = convList(list, (String) ctx.get("stationId")); + try { + monitorAlarmInfoService.syncAlarmInfo(alarmList, NhConstants.SYS_TYPE_AISWEI); + } catch (Exception ex) { + log.error("aiswei sync alarm list error", ex); + } + try { + monitorFaultCodeService.syncFaultCode(NhConstants.SYS_TYPE_AISWEI, alarmList); + } catch (Exception ex) { + log.error("aiswei sync fault code error", ex); + } + } + + private List convList(List list, String stationId) { + List ret = new ArrayList<>(); + for (GetInverterHisErrorPageProR r : list) { + ret.add(convR(r, stationId)); + } + return ret; + } + + private GetAlarmListR convR(GetInverterHisErrorPageProR r, String stationId) { + GetAlarmListR ret = new GetAlarmListR(); + ret.setStationId(stationId); + ret.setStationName(null); + ret.setAlarmDeviceSn(r.getIsno()); + ret.setAlarmCode(String.valueOf(r.getErrorCode())); + ret.setAlarmType(null); // 用不到 + ret.setAlarmLevel("2"); // aiswei全部当成报警好了 + ret.setAlarmBeginTime(r.getErrorDate()); + ret.setAlarmEndTime(null); + ret.setAlarmMsg(r.getContext()); + ret.setState(null); + ret.setWarningInfoData(null); + ret.setAdvice(null); + ret.setMachine(null); + ret.setModel(null); + return ret; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmRecoverEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmRecoverEachRunner.java new file mode 100644 index 0000000..18963f0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmRecoverEachRunner.java @@ -0,0 +1,56 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro.GetInverterRecoverStatusProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterrecoverstatuspro.GetInverterRecoverStatusProReq; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.pojo.dto.sync.InverterRecoverDTO; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Service +@Slf4j +public class AisweiAlarmRecoverEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IAlarmInfoService monitorAlarmInfoService; + + @Override + public void handle(String faultCodes, Map ctx) throws IOException { + GetInverterRecoverStatusProReq req = new GetInverterRecoverStatusProReq(); + req.setFaultCodes(faultCodes); + AisweiRet> resp = aisweiApi.getInverterRecoverStatusPro(req); + if (!Objects.equals(resp.getStatus(), 200)) { + log.error("sync recover error,info:{}", resp.getInfo()); + return; + } + + List data = resp.getData(); + if (CollectionUtils.isEmpty(data)) { + return; + } + List recoverList = new ArrayList<>(); + for (GetInverterRecoverStatusProR datum : data) { + if (Objects.equals(datum.getRecover(), 1)) { // 0-未恢复Y 1- 已恢复 + InverterRecoverDTO inverterRecoverDTO = new InverterRecoverDTO(); + inverterRecoverDTO.setRecoverTime(datum.getRecoverTime()); + inverterRecoverDTO.setFaultCode(datum.getFaultCode()); + recoverList.add(inverterRecoverDTO); + } + } + monitorAlarmInfoService.syncRecoverTime(recoverList); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.java new file mode 100644 index 0000000..fb9ceb1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.java @@ -0,0 +1,23 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +@Service +public class AisweiHistoryAlarmEachRunner extends EachRunner { + + @Autowired + AisweiAlarmHistoryPageAction aisweiAlarmHistoryPageAction; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + Map ctx2 = new HashMap<>(); + ctx2.put("stationId", stationId); + aisweiAlarmHistoryPageAction.start("同步电站历史故障信息", 100, ctx2, 1); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.java new file mode 100644 index 0000000..55540c4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.java @@ -0,0 +1,32 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.common.EachRunner; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * for each station and station related device + */ +@Service +@Slf4j +public class AisweiInverterDetailEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + AisweiInverterDetailPageAction aisweiInverterDetailPageAction; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + Map ctx2 = new HashMap<>(); + ctx2.put("stationId", stationId); + aisweiInverterDetailPageAction.start("获取逆变器详情", 500, ctx2,1); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailPageAction.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailPageAction.java new file mode 100644 index 0000000..4dae3e2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailPageAction.java @@ -0,0 +1,86 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import org.apache.commons.lang.time.DateUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiPage; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProData; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProR; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProReq; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.service.IInverterDataService; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service +public class AisweiInverterDetailPageAction extends PageAction, GetInverterDataPageProR> { + + @Autowired + AisweiApi aisweiApi; + + @Autowired + IInverterDataService inverterDataService; + + @Autowired + IMonitorInverterDailyStatService monitorInverterDailyStatService; + + + @Override + public PageInfo, GetInverterDataPageProR> pageData(int page, int pageSize, Map ctx) throws IOException { + GetInverterDataPageProReq req = new GetInverterDataPageProReq(); + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + req.setApiKey((String) ctx.get("stationId")); + req.setToken(""); + req.setIsnos(null); // TA004095N2410077 + Date now = new Date(); + Date yesterday = DateUtils.addDays(now, -1); + req.setStartDate(df.format(DateUtils.addHours(yesterday, 1))); + req.setEndDate(df.format(now)); + req.setPageNum(page); + req.setPageSize(pageSize); + AisweiRet> resp = aisweiApi.getInverterDataPagePro(req); + if (!isAisOk(resp.getStatus())) { + return null; + } + PageInfo, GetInverterDataPageProR> ret = new PageInfo<>(); + ret.setData(resp.getData()); + ret.setPages(resp.getData().getTotalPages()); + List result = resp.getData().getResult(); + List dataList = new ArrayList<>(); + for (GetInverterDataPageProData getInverterDataPageProData : result) { + dataList.addAll(getInverterDataPageProData.getDataList()); + } + ret.setList(dataList); + return ret; + } + + @Override + public void handlePageInfo(PageInfo, GetInverterDataPageProR> pageInfo, Map ctx) { + List list = pageInfo.getList(); + List energyList = new ArrayList<>(); + for (GetInverterDataPageProR getInverterDataPageProR : list) { + InverterHourlyEnergyDTO val = new InverterHourlyEnergyDTO(); + val.setSn(getInverterDataPageProR.getSn()); + val.setEnergy(Double.parseDouble(getInverterDataPageProR.getEtd()) * 0.1); + val.setJlgl(Double.parseDouble(getInverterDataPageProR.getPac()) / 1000); + Date syncTime = new Date(); + syncTime.setTime(Long.parseLong(getInverterDataPageProR.getTmstp())); + val.setSyncTime(syncTime); + energyList.add(val); + } + monitorInverterDailyStatService.syncHourlyData(NhConstants.SYS_TYPE_AISWEI, energyList); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterEachRunner.java new file mode 100644 index 0000000..7c5c54b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterEachRunner.java @@ -0,0 +1,95 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro.GetDeviceListProR; +import org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro.GetDeviceListProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getdevicelistpro.GetDeviceListProResp; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +/** + * for each station and station related device + */ +@Service +@Slf4j +public class AisweiInverterEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + GetDeviceListProReq req = new GetDeviceListProReq(); + req.setApiKey(stationId); + AisweiRet> resp = aisweiApi.getDeviceListPro(req); + if (!Objects.equals(resp.getStatus(), 200)) { + log.error("aiswei 获取电站下设备列表 error,stationId:{}, info:{}, status:{}", stationId, resp.getInfo(), resp.getStatus()); + return; + } + + List data = resp.getData(); + List inverterList = new ArrayList<>(); + for (GetDeviceListProResp datum : data) { + List inverters = datum.getInverters(); + for (GetDeviceListProR inverter : inverters) { + inverterList.add(convR(inverter, stationId, datum.getPsn())); + } + } + if (!CollectionUtils.isEmpty(inverterList)) { + try { + Set updateFields = new HashSet<>(); + updateFields.add("state"); + updateFields.add("collector_sn"); + monitorInverterStatService.syncInverterDetails(inverterList, NhConstants.SYS_TYPE_AISWEI, updateFields); + } catch (Exception ex) { + log.error("sync inverter details error", ex); + } + } + } + + private GetInverterDetailR convR(GetDeviceListProR r, String stationId, String psn) { + GetInverterDetailR ret = new GetInverterDetailR(); + ret.setDataTimestamp(DateUtil.parse(r.getLudt(), "yyyy-MM-dd HH:mm:ss").getTime()); + ret.setStationId(stationId); + ret.setId(r.getIsn()); // 没有id,使用sn + ret.setName("逆变器"); + ret.setSn(r.getIsn()); + ret.setCollectorsn(psn); + ret.setState(convState(r.getIstate())); + return ret; + } + + /** + * @param istate 0 离线,1 在线 2 缓存 + * 转换目标逆变器状态: + * 1 = 在线 + * 2 = 离线 + * 3 = 报警 + */ + public static Integer convState(Integer istate) { + if (istate != null) { + if (istate == 0) { + return 2; + } else if (istate == 1) { + return 1; + } else { + return istate; + } + } + return null; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterLatestDetailEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterLatestDetailEachRunner.java new file mode 100644 index 0000000..158f4af --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterLatestDetailEachRunner.java @@ -0,0 +1,131 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import cn.hutool.core.math.MathUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro.GetLastTsDataProR; +import org.springblade.modules.nh.factory.aiswei.dto.getlasttsdatapro.GetLastTsDataProReq; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; + +/** + * for each station and station related device + */ +@Service +@Slf4j +public class AisweiInverterLatestDetailEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + + @Override + public void handle(String sns, Map ctx) throws IOException { + GetLastTsDataProReq req = new GetLastTsDataProReq(); + req.setIsnos(sns); + AisweiRet> resp = aisweiApi.getLastTsDataPro(req); + if (!Objects.equals(resp.getStatus(), 200)) { + log.error("aiswei 获取逆变器最新信息失败,info:{},sns:{}", resp.getInfo(), sns); + return; + } + List data = resp.getData(); + List list = new ArrayList<>(); + for (GetLastTsDataProR datum : data) { + list.add(convR(datum)); + } + Set updateFields = new HashSet<>(); + updateFields.add("name"); + updateFields.add("fac"); + updateFields.add("etd"); + updateFields.add("eto"); + updateFields.add("sync_time"); + updateFields.add("reactive_power"); + updateFields.add("reactive_power_str"); + updateFields.add("apparent_power"); + updateFields.add("apparent_power_str"); + updateFields.add("pac"); + updateFields.add("temperature"); + updateFields.add("dc_pac"); + updateFields.add("full_hour"); + updateFields.add("full_hour_str"); + if (!list.isEmpty()) { + monitorInverterStatService.syncInverterDetails(list, NhConstants.SYS_TYPE_AISWEI, updateFields); + } + } + + private GetInverterDetailR convR(GetLastTsDataProR datum) { + GetInverterDetailR ret = new GetInverterDetailR(); + ret.setDataTimestamp(Long.valueOf(datum.getTmstp())); + ret.setStationId(datum.getApikey()); + ret.setId(datum.getSn()); // 没有id,使用sn + ret.setName("逆变器"); + ret.setFac(Double.parseDouble(datum.getFac()) * 0.01); + ret.setFacStr("HZ"); + ret.setEToday(Double.parseDouble(datum.getEtd()) * 0.1); + ret.setETodayStr("kwh"); + ret.setETotal(Double.parseDouble(datum.getEto()) * 0.1); + ret.setETotalStr("kwh"); + ret.setPac(Double.parseDouble(datum.getPac())); + ret.setPacStr("w"); + ret.setReactivePower(Double.parseDouble(datum.getPrc())); + ret.setReactivePowerStr("W"); + ret.setApparentPower(Double.parseDouble(datum.getSac())); + ret.setApparentPowerStr("W"); + ret.setSn(datum.getSn()); + ret.setInverterTemperature(Double.parseDouble(datum.getCf()) * 0.1); // 使用散热片温度当做逆变器温度,这个和aiswei确认过 + // 由于aiswei没有直流总收入字段,通过mqtt电流和电压计算而来 + ret.setDcPac(calcDc(datum)); + ret.setDcPacStr("w"); + ret.setFullHour(Double.parseDouble(datum.getHto())); // 跟aiswei确认并网持续时间就是满发小时 + ret.setFullHourStr("H"); + + try{ + for(int i=1;i<=3;i++){ + Object uPv = CommonUtil.reflectGetField(datum,"v"+i); + Object iPv = CommonUtil.reflectGetField(datum,"i"+i); + if(uPv==null || iPv==null){ + break; + } + CommonUtil.reflectSetField(ret,"uPv"+i, Double.parseDouble((String) uPv)/10); + CommonUtil.reflectSetField(ret,"iPv"+i, Double.parseDouble((String) iPv)/10); + } + for(int i=1;i<=3;i++){ + Object uAc = CommonUtil.reflectGetField(datum,"va"+i); + Object iAc = CommonUtil.reflectGetField(datum,"ia"+i); + if(uAc==null || iAc==null){ + break; + } + CommonUtil.reflectSetField(ret,"uAc"+i, Double.parseDouble((String) uAc)/10); + CommonUtil.reflectSetField(ret,"iAc"+i, Double.parseDouble((String) iAc)/10); + } + }catch (Exception e){ + log.error("aiswei 转化电流数据失败,info:{}",e.getMessage()); + } + + + return ret; + } + + private Double calcDc(GetLastTsDataProR datum) { + return calc(datum.getV1(), datum.getI1()) + calc(datum.getV2(), datum.getI2()) + calc(datum.getV3(), datum.getI3()); + } + + private Double calc(String v1, String i1) { + if (StringUtils.isAnyBlank(v1, i1)) { + return 0d; + } + return Double.parseDouble(v1) * 0.1 * Double.parseDouble(i1) * 0.01; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler.java new file mode 100644 index 0000000..b1627d2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler.java @@ -0,0 +1,232 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.AsyncTaskRunner; +import org.springblade.common.utils.ListUtils; +import org.springblade.common.utils.TaskControl; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@EnableScheduling +@Component +@Slf4j +public class AisweiScheduler { + + @Autowired + AisweiApi aisweiApi; + @Autowired + AisweiUserStationListPageAction aisweiUserStationListPageAction; + @Autowired + AisweiUserStationEachRunner aisweiUserStationEachRunner; + @Autowired + IMonitorEntryStatService monitorEntryStatService; + @Autowired + AisStationDMYEachRunner aisStationDMYEachRunner; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + @Autowired + AisweiInverterEachRunner aisweiInverterEachRunner; + @Autowired + AisweiInverterDetailEachRunner aisweiInverterDetailEachRunner; + @Autowired + AisweiHistoryAlarmEachRunner aisweiHistoryAlarmEachRunner; + @Autowired + AisweiAlarmEachRunner aisweiAlarmEachRunner; + @Autowired + AisweiAlarmRecoverEachRunner aisweiAlarmRecoverEachRunner; + @Autowired + IAlarmInfoService alarmInfoService; + @Autowired + AisweiInverterLatestDetailEachRunner aisweiInverterLatestDetailEachRunner; + + @Autowired + AisweiStationFisGenDateEachRunner fisGenDateEachRunner; + + /** + * 每5分钟同步一次电站信息 + */ + @Scheduled(cron = "0 */10 * * * ?") + public void syncUserStationList() { + TaskControl.newSingleInstanceTask("aiswei:syncUserStationList", new Runnable() { + @Override + public void run() { + aisweiUserStationListPageAction.start("获取用户电站列表", 500, 0); + } + }); + } + + /** + * 每5分钟同步一次电站的当日、当月和当年发电量 + */ + @Scheduled(cron = "0 */10 * * * ?") + public void syncUserStationEnergy() { + AsyncTaskRunner asyncTaskRunner = TaskControl.newSingleInstanceTask("aiswei:syncUserStationEnergy"); + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); + List> parts = ListUtils.maxParts(stationIds, 10); + List tasks = new ArrayList<>(); + for (List part : parts) { + tasks.add(aisweiUserStationEachRunner.asyncStart(part, "aiswei 实时同步日、月、年发电量", 1L, new HashMap<>())); + } + asyncTaskRunner.run(tasks); + } + + /** + * 每天凌晨1点统计一次电站的月发电量、年发电量数据 + */ + @Scheduled(cron = "20 58 7 * * ?") + public void syncStationDMYData() { + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); + TaskControl.runTask("aiswei:syncStationDMYData", aisStationDMYEachRunner.asyncStart(stationIds, "aiswei 凌晨同步日、月、年发电量", 0L, null)); +// AsyncTaskRunner asyncTaskRunner = TaskControl.newSingleInstanceTask("aiswei:syncStationDMYData"); +// List> parts = ListUtils.maxParts(stationIds, 5); +// List tasks = new ArrayList<>(); +// for (List part : parts) { +// tasks.add(aisStationDMYEachRunner.asyncStart(part, "aiswei 凌晨同步日、月、年发电量", 0L, null)); +// } +// asyncTaskRunner.run(tasks); + } + + /** + * 每30分钟同步电站的日功率数据 + */ + @Scheduled(cron = "* */30 * * * ?") + public void syncStationDailyPacData() { + AsyncTaskRunner asyncTaskRunner = TaskControl.newSingleInstanceTask("aiswei:syncStationDailyPacData"); + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); + List> parts = ListUtils.maxParts(stationIds, 5); + List tasks = new ArrayList<>(); + for (List part : parts) { + Map ctx2 = new HashMap<>(); + ctx2.put("stat_pac_only", "1"); + tasks.add(aisStationDMYEachRunner.asyncStart(part, "aiswei 每半小时同步pac", 0L, ctx2)); + } + asyncTaskRunner.run(tasks); + } + + /** + * 每小时同步一次电站设备列表 + * 同步逆变器sn,station_id,state,collector_sn + */ + @Scheduled(cron = "10 3 * * * ?") + public void syncInverterList() { + AsyncTaskRunner asyncTaskRunner = TaskControl.newSingleInstanceTask("aiswei:syncInverterList"); + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); + List> parts = ListUtils.maxParts(stationIds, 5); + List tasks = new ArrayList<>(); + for (List part : parts) { + tasks.add(aisweiInverterEachRunner.asyncStart(part, "同步逆变器", 0L, null)); + } + asyncTaskRunner.run(tasks); + } + + /** + * 每小时同步逆变器按小时统计数据 + */ + @Scheduled(cron = "39 11 * * * ?") + public void syncInverterDetailList() { + AsyncTaskRunner asyncTaskRunner = TaskControl.newSingleInstanceTask("aiswei:syncInverterDetailList"); + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); + List> parts = ListUtils.maxParts(stationIds, 5); + List tasks = new ArrayList<>(); + for (List part : parts) { + tasks.add(aisweiInverterDetailEachRunner.asyncStart(part, "同步逆变器按小时统计数据", 0L, null)); + } + asyncTaskRunner.run(tasks); + } + + /** + * 每10分钟同步逆变器的最新数据,包含日发电量和总发电量,各种功率:视在功率、无功功率和功率等。 + */ + @Scheduled(cron = "27 */11 * * * ?") + public void syncInverterLatestDetails() { + AsyncTaskRunner asyncTaskRunner = TaskControl.newSingleInstanceTask("aiswei:syncInverterLatestDetails"); + List sns = monitorInverterStatService.getInverterSns(NhConstants.SYS_TYPE_AISWEI); + List> parts = ListUtils.split(sns, 10); + List snsList = new ArrayList<>(); + for (List part : parts) { + snsList.add(StringUtils.join(part, ",")); + } + List> parts1 = ListUtils.maxParts(snsList, 5); + List tasks = new ArrayList<>(); + for (List part1 : parts1) { + tasks.add(aisweiInverterLatestDetailEachRunner.asyncStart(part1, "同步逆变器最新数据", 0L, null)); + } + asyncTaskRunner.run(tasks); + } + +// /** +// * 每隔10分钟同步一次告警信息 +// */ +// @Scheduled(cron = "0 */10 * * * ?") +// public void syncAlarmHistoryList() { +// TaskControl.newSingleInstanceTask("aiswei:syncAlarmHistoryList", new Runnable() { +// @Override +// public void run() { +// List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); +// aisweiHistoryAlarmEachRunner.start(stationIds, "同步历史报警信息", 0L, null); +// } +// }); +// } + + @Scheduled(cron = "0 */10 * * * ?") + public void syncCurrentAlarmList() { + TaskControl.newSingleInstanceTask("aiswei:syncCurrentAlarmList", new Runnable() { + @Override + public void run() { + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_AISWEI); + aisweiAlarmEachRunner.start(stationIds, "同步当前告警信息", 0L, null); + } + }); + } + + /** + * 获取电站的首日发电时间 + */ + @Scheduled(cron = "44 16 * * * ?") + public void syncStationFisGenDate() { + TaskControl.runTask("atesi:syncStationFisGenDate", new Runnable() { + @Override + public void run() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getType, NhConstants.SYS_TYPE_AISWEI) + .isNull(MonitorEntryStatEntity::getFisGenerateTime) +// .eq(MonitorEntryStatEntity::getState,1) + .select(MonitorEntryStatEntity::getOutStationId); + List stationIds = monitorEntryStatService.listObjs(queryWrapper); + fisGenDateEachRunner.start(stationIds, "获取电站的首日发电时间", 0L, null); + } + }); + } + +// @Scheduled(cron = "0 */10 * * * ?") +// public void syncAlarmRecoverList() { +// TaskControl.newSingleInstanceTask("aiswei:syncAlarmRecoverList", new Runnable() { +// @Override +// public void run() { +// List faultCodes = alarmInfoService.getIdCodes(NhConstants.SYS_TYPE_AISWEI); +// List> split = ListUtils.split(faultCodes, 10); +// List batchList = new ArrayList<>(); +// for (List strings : split) { +// batchList.add(StringUtils.join(strings, ",")); +// } +// aisweiAlarmRecoverEachRunner.start(batchList, "同步告警恢复信息", 0L, null); +// } +// }); +// } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.java new file mode 100644 index 0000000..4caee28 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.java @@ -0,0 +1,93 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import lombok.AllArgsConstructor; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProR; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoutputpro.GetPlantOutputProResp; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class AisweiStationFisGenDateEachRunner extends EachRunner { + + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryYearStatService yearStatService; + private final IMonitorEntryMonthStatService monthStatService; + private final AisweiApi aisweiApi; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId); + } + + public void handleData(String outId) throws IOException { + String month = yearStatService.getFirstMonth(outId); +// String start = month+"-01"; +// Date startDate = DateUtil.parse(start,"yyyy-MM-dd"); +// Date endDate = DateUtil.plusMonths(startDate,1); + + GetPlantOutputProResp resp = syncOutput(outId, "bymonth", month); + if(resp!=null){ + List list = resp.getResult(); + if (CollectionUtils.isEmpty(list)) { + return; + } + + String firstDate = null; + for (GetPlantOutputProR item : list) { + if(item.getValue()>0){ + if(firstDate==null){ + firstDate = item.getTime(); + } +// else{ +// Date star = DateUtil.parse(firstDate, "yyyy-MM-dd"); +// Date end = DateUtil.parse(item.getTime(), "yyyy-MM-dd"); +// if(end.before(star)){ +// firstDate = item.getTime(); +// } +// } + } + } + if(firstDate!=null){ + monitorEntryStatService.updateFisDate(outId,firstDate); + } + } + } + + private GetPlantOutputProResp syncOutput(String stationId, String period, String date) { + try { + GetPlantOutputProReq req = new GetPlantOutputProReq(); + req.setApikey(stationId); + req.setDate(date); + req.setPeriod(period); // "time": "2024-01", + AisweiRet pro = aisweiApi.getPlantOutputPro(req); + if (Objects.equals(pro.getStatus(), 200)) { + return pro.getData(); + } else { +// log.error("aiswei 同步日月年数据失败, status:{}, info:{}, stationId:{}", pro.getStatus(), pro.getInfo(), stationId); + } + Thread.sleep(1000); + } catch (Exception ex) { +// log.error("aiswei 同步日月年数据失败", ex); + } + return null; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.java new file mode 100644 index 0000000..eeeb325 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.java @@ -0,0 +1,63 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import org.apache.commons.lang3.time.DateUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.common.utils.UnitUtil; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro.GetPlantOverviewProR; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro.GetPlantOverviewProReq; +import org.springblade.modules.nh.factory.aiswei.dto.getplantoverviewpro.UnitData; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Date; +import java.util.Map; +import java.util.Objects; + +/** + * 更新今日发电量,今年发电量和今年发电量和当月发电量和总发电量 + */ +@Service +public class AisweiUserStationEachRunner extends EachRunner { + + @Autowired + AisweiApi aisweiApi; + @Autowired + IMonitorEntryStatService monitorEntryStatService; + + private static final Logger logger = LoggerFactory.getLogger(AisweiUserStationEachRunner.class); + + @Override + public void handle(String stationId, Map ctx) throws IOException { + GetPlantOverviewProReq req = new GetPlantOverviewProReq(); + req.setApikey(stationId); + AisweiRet resp = aisweiApi.getPlantOverviewPro(req); + GetPlantOverviewProR data = resp.getData(); + if (Objects.equals(resp.getStatus(), 200)) { + Date ludt = resp.getData().getLudt(); + MonitorEntryStatEntity r = monitorEntryStatService.findByStationId(stationId); + Double etd = UnitUtil.convEnergy(data.getEtoday().getValue(), data.getEtoday().getUnit()); + if (DateUtils.isSameDay(ludt, r.getSyncTime()) && etd > r.getEtd()) { + r.setEtd(etd); + } + r.setEtm(UnitUtil.convEnergy(data.getEmonth().getValue(), data.getEmonth().getUnit())); + r.setEty(UnitUtil.convEnergy(data.getEyear().getValue(), data.getEyear().getUnit())); + r.setEta(UnitUtil.convEnergy(data.getEtotal().getValue(), data.getEtotal().getUnit())); + UnitData power = data.getPower(); + if (power != null) { + r.setPower(UnitUtil.convPower(power.getValue(), power.getUnit())); + } + r.setSyncTime(ludt); + r.setUpdateTime(new Date()); + monitorEntryStatService.updateById(r); + } else { + logger.error("同步电站今日、月、年和总发电量 error, info:{}, code:{}, stationId: {}", resp.getInfo(), resp.getStatus(), stationId); + } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.java new file mode 100644 index 0000000..15c5785 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.java @@ -0,0 +1,130 @@ +package org.springblade.modules.nh.factory.aiswei.scheduler; + +import org.springblade.common.constant.NhConstants; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.aiswei.AisweiApi; +import org.springblade.modules.nh.factory.aiswei.AisweiPage; +import org.springblade.modules.nh.factory.aiswei.AisweiRet; +import org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro.GetPlanListProR; +import org.springblade.modules.nh.factory.aiswei.dto.getplanlistpro.GetPlanListProReq; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import lombok.extern.slf4j.Slf4j; +import org.springblade.modules.nh.service.IMonitorEntryDailyStatService; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +@Service +@Slf4j +public class AisweiUserStationListPageAction extends PageAction, GetPlanListProR> { + + @Autowired + AisweiApi aisweiApi; +// @Autowired +// IMonitorEntryOverviewStatService monitorEntryOverviewStatService; + @Autowired + IMonitorEntryStatService monitorEntryStatService; + @Autowired + IMonitorEntryDailyStatService monitorEntryDailyStatService; + @Autowired + IMonitorEntryMonthStatService monitorEntryMonthStatService; + + @Override + public PageInfo, GetPlanListProR> pageData(int page, int pageSize, Map ctx) throws IOException { + GetPlanListProReq req = new GetPlanListProReq(); + req.setPageSize(pageSize); + req.setPageNum(page); + req.setOrder(0); + AisweiRet> resp = aisweiApi.getPlanListPro(req); + if (isAisOk(resp.getStatus())) { + PageInfo, GetPlanListProR> ret = new PageInfo<>(); + AisweiPage data = resp.getData(); + ret.setPages(data.getTotalPages()); + ret.setData(data); + ret.setList(data.getResult()); + return ret; + } + log.error("aiswei query power station monitor data error: {}, code: {}", resp.getInfo(), resp.getStatus()); + return null; + } + + @Override + public void handlePageInfo(PageInfo, GetPlanListProR> pageInfo, Map ctx) { + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + List convList = conv(pageInfo.getList()); + try { + monitorEntryStatService.syncEntryStat(convList, NhConstants.SYS_TYPE_AISWEI); + } catch (Exception ex) { + log.error("sync entry stat error", ex); + } + try { + monitorEntryDailyStatService.syncEntryDailyStat(convList, NhConstants.SYS_TYPE_AISWEI); + } catch (Exception ex) { + log.error("sync entry daily stat error", ex); + } + } + + private List conv(List list) { + List ret = new ArrayList<>(); + for (GetPlanListProR r : list) { + ret.add(convR(r)); + } + return ret; + } + + private GetStationR convR(GetPlanListProR r) { + GetStationR ret = new GetStationR(); + Date lastUpdate = DateUtil.parse(r.getLudt(), "yyyy-MM-dd HH:mm:ss"); + ret.setDataTimestamp(lastUpdate.getTime()); + ret.setFullHour(null); + ret.setStationName(r.getName()); + ret.setId(r.getApikey()); + ret.setUserId(null); + ret.setUserName(null); + ret.setUserMobile(null); + ret.setSno(null); + ret.setAddr(r.getPosition()); + ret.setState(convState(r.getStatus())); + ret.setPower(0); // aiswei 该接口没有提供电站功率 + ret.setPowerStr(null); + ret.setCapacity(r.getTotalpower()); + ret.setCapacityStr("kwp"); + ret.setDayEnergy(r.getEtoday()); + ret.setDayEnergyStr("kwh"); + ret.setMonthEnergy(null); + ret.setMonthEnergyStr(null); + ret.setYearEnergy(null); + ret.setYearEnergyStr(null); + ret.setAllEnergy(r.getEtotal()); + ret.setAllEnergyStr("kwh"); + ret.setNmiCode(null); + return ret; + } + + /** + * 0-离线 1-正常 2-警告 3-错误 + */ + private int convState(Integer status) { + if (Objects.equals(0, status)) { + return 2; // 离线 + } else if (Objects.equals(1, status)) { + return 1; + } else if (Objects.equals(2, status)) { + return 3; + } else if (Objects.equals(3, status)) { + return 3; + } + return 1; // 在线 + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.java new file mode 100644 index 0000000..63663b9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.aiswei.util; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.io.IOException; + +public class AisweiObjectMapper extends ObjectMapper { + + @Override + public T readValue(String content, TypeReference valueTypeRef) { + try { + return super.readValue(content, valueTypeRef); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public AisweiObjectMapper configure(DeserializationFeature f, boolean state) { + super.configure(f, state); + return this; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.java new file mode 100644 index 0000000..f8e1cde --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.java @@ -0,0 +1,199 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.util; + + +import org.springblade.modules.nh.factory.aiswei.enums.Method; + +import java.util.List; +import java.util.Map; + +/** + * Request + */ +public class AisweiRequest { + + public AisweiRequest() { + } + + public AisweiRequest(Method method, String host, String path, String appKey, String appSecret, int timeout) { + this.method = method; + this.host = host; + this.path = path; + this.appKey = appKey; + this.appSecret = appSecret; + this.timeout = timeout; + } + + /** + * (必选)请求方法 + */ + private Method method; + + /** + * (必选)Host + */ + private String host; + + /** + * (必选)Path + */ + private String path; + + /** + * (必选)APP KEY + */ + private String appKey; + + /** + * (必选)APP密钥 + */ + private String appSecret; + + /** + * (必选)超时时间,单位毫秒,设置零默认使用com.aliyun.apigateway.demo.constant.Constants.DEFAULT_TIMEOUT + */ + private int timeout; + + /** + * (可选) HTTP头 + */ + private Map headers; + + /** + * (可选) Querys + */ + private Map querys; + + /** + * (可选)表单参数 + */ + private Map bodys; + + /** + * (可选)字符串Body体 + */ + private String stringBody; + + /** + * (可选)字节数组类型Body体 + */ + private byte[] bytesBody; + + /** + * (可选)自定义参与签名Header前缀 + */ + private List signHeaderPrefixList; + + public Method getMethod() { + return method; + } + + public void setMethod(Method method) { + this.method = method; + } + + public String getHost() { + return host; + } + + public void setPath(String path) { + this.path = path; + } + + public String getPath() { + return path; + } + + public void setHost(String host) { + this.host = host; + } + + public String getAppKey() { + return appKey; + } + + public void setAppKey(String appKey) { + this.appKey = appKey; + } + + public String getAppSecret() { + return appSecret; + } + + public void setAppSecret(String appSecret) { + this.appSecret = appSecret; + } + + public int getTimeout() { + return timeout; + } + + public void setTimeout(int timeout) { + this.timeout = timeout; + } + + public Map getHeaders() { + return headers; + } + + public void setHeaders(Map headers) { + this.headers = headers; + } + + public Map getQuerys() { + return querys; + } + + public void setQuerys(Map querys) { + this.querys = querys; + } + + public Map getBodys() { + return bodys; + } + + public void setBodys(Map bodys) { + this.bodys = bodys; + } + + public String getStringBody() { + return stringBody; + } + + public void setStringBody(String stringBody) { + this.stringBody = stringBody; + } + + public byte[] getBytesBody() { + return bytesBody; + } + + public void setBytesBody(byte[] bytesBody) { + this.bytesBody = bytesBody; + } + + public List getSignHeaderPrefixList() { + return signHeaderPrefixList; + } + + public void setSignHeaderPrefixList(List signHeaderPrefixList) { + this.signHeaderPrefixList = signHeaderPrefixList; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.java new file mode 100644 index 0000000..efb2283 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.java @@ -0,0 +1,82 @@ +package org.springblade.modules.nh.factory.aiswei.util; + +import java.util.HashMap; +import java.util.Map; + +public class AisweiResponse { + private int statusCode; + private String contentType; + private String requestId; + private String errorMessage; + private Map headers; + private String body; + + public AisweiResponse() { + + } + + public int getStatusCode() { + return statusCode; + } + + public void setStatusCode(int statusCode) { + this.statusCode = statusCode; + } + + public String getContentType() { + return contentType; + } + + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public String getRequestId() { + return requestId; + } + + public void setRequestId(String requestId) { + this.requestId = requestId; + } + + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + + public Map getHeaders() { + return headers; + } + + public String getHeader(String key) { + if (null != headers) { + return headers.get(key); + } else { + return null; + } + } + + public void setHeaders(Map headers) { + this.headers = headers; + } + + public void setHeader(String key, String value) { + if (null == this.headers) { + this.headers = new HashMap(); + } + this.headers.put(key, value); + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/Client.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/Client.java new file mode 100644 index 0000000..7c4849b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/Client.java @@ -0,0 +1,95 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.util; + +/** + * Client + */ +public class Client { + /** + * 发送请求 + * + * @param aisweiRequest request对象 + * @return Response + */ + public static AisweiResponse execute(AisweiRequest aisweiRequest) { + try { + switch (aisweiRequest.getMethod()) { + case GET: + return HttpUtil.httpGet(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + case POST_FORM: + return HttpUtil.httpPost(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getBodys(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + case POST_STRING: + return HttpUtil.httpPost(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getStringBody(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + case POST_BYTES: + return HttpUtil.httpPost(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getBytesBody(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + case PUT_STRING: + return HttpUtil.httpPut(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getStringBody(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + case PUT_BYTES: + return HttpUtil.httpPut(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getBytesBody(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + case DELETE: + return HttpUtil.httpDelete(aisweiRequest.getHost(), aisweiRequest.getPath(), + aisweiRequest.getTimeout(), + aisweiRequest.getHeaders(), + aisweiRequest.getQuerys(), + aisweiRequest.getSignHeaderPrefixList(), + aisweiRequest.getAppKey(), aisweiRequest.getAppSecret()); + default: + throw new IllegalArgumentException(String.format("unsupported method:%s", aisweiRequest.getMethod())); + } + } catch (Exception ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtil.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtil.java new file mode 100644 index 0000000..c28f843 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtil.java @@ -0,0 +1,481 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.util; + +import org.apache.commons.lang.StringUtils; +import org.apache.http.Header; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; +import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.params.CoreConnectionPNames; +import org.springblade.modules.nh.factory.aiswei.constant.*; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URLEncoder; +import java.nio.ByteBuffer; +import java.nio.channels.Channels; +import java.nio.channels.ReadableByteChannel; +import java.nio.channels.WritableByteChannel; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.*; + +/** + * Http工具类 + */ +public class HttpUtil { + /** + * HTTP GET + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpGet(String host, String path, int connectTimeout, Map headers, Map querys, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + headers = initialBasicHeader(HttpMethod.GET, path, headers, querys, null, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 30 * 1000); + + HttpGet get = new HttpGet(initUrl(host, path, querys)); + + for (Map.Entry e : headers.entrySet()) { + get.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + return convert(httpClient.execute(get)); + } + + /** + * HTTP POST表单 + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param bodys + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpPost(String host, String path, int connectTimeout, Map headers, Map querys, Map bodys, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + if (headers == null) { + headers = new HashMap(); + } + + headers.put(HttpHeader.HTTP_HEADER_CONTENT_TYPE, ContentType.CONTENT_TYPE_FORM); + + headers = initialBasicHeader(HttpMethod.POST, path, headers, querys, bodys, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + + HttpPost post = new HttpPost(initUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + post.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + UrlEncodedFormEntity formEntity = buildFormEntity(bodys); + if (formEntity != null) { + post.setEntity(formEntity); + } + + return convert(httpClient.execute(post)); + } + + /** + * Http POST 字符串 + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param body + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpPost(String host, String path, int connectTimeout, Map headers, Map querys, String body, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + headers = initialBasicHeader(HttpMethod.POST, path, headers, querys, null, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + + HttpPost post = new HttpPost(initUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + post.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + if (StringUtils.isNotBlank(body)) { + post.setEntity(new StringEntity(body, Constants.ENCODING)); + + } + + return convert(httpClient.execute(post)); + } + + /** + * HTTP POST 字节数组 + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param bodys + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpPost(String host, String path, int connectTimeout, Map headers, Map querys, byte[] bodys, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + headers = initialBasicHeader(HttpMethod.POST, path, headers, querys, null, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + + HttpPost post = new HttpPost(initUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + post.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + if (bodys != null) { + post.setEntity(new ByteArrayEntity(bodys)); + } + + return convert(httpClient.execute(post)); + } + + /** + * HTTP PUT 字符串 + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param body + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpPut(String host, String path, int connectTimeout, Map headers, Map querys, String body, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + headers = initialBasicHeader(HttpMethod.PUT, path, headers, querys, null, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + + HttpPut put = new HttpPut(initUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + put.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + if (StringUtils.isNotBlank(body)) { + put.setEntity(new StringEntity(body, Constants.ENCODING)); + + } + + return convert(httpClient.execute(put)); + } + + /** + * HTTP PUT字节数组 + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param bodys + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpPut(String host, String path, int connectTimeout, Map headers, Map querys, byte[] bodys, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + headers = initialBasicHeader(HttpMethod.PUT, path, headers, querys, null, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + + HttpPut put = new HttpPut(initUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + put.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + if (bodys != null) { + put.setEntity(new ByteArrayEntity(bodys)); + } + + return convert(httpClient.execute(put)); + } + + /** + * HTTP DELETE + * @param host + * @param path + * @param connectTimeout + * @param headers + * @param querys + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws Exception + */ + public static AisweiResponse httpDelete(String host, String path, int connectTimeout, Map headers, Map querys, List signHeaderPrefixList, String appKey, String appSecret) + throws Exception { + headers = initialBasicHeader(HttpMethod.DELETE, path, headers, querys, null, signHeaderPrefixList, appKey, appSecret); + + HttpClient httpClient = wrapClient(host); + httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, getTimeout(connectTimeout)); + + HttpDelete delete = new HttpDelete(initUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + delete.addHeader(e.getKey(), MessageDigestUtil.utf8ToIso88591(e.getValue())); + } + + return convert(httpClient.execute(delete)); + } + + /** + * 构建FormEntity + * + * @param formParam + * @return + * @throws UnsupportedEncodingException + */ + private static UrlEncodedFormEntity buildFormEntity(Map formParam) + throws UnsupportedEncodingException { + if (formParam != null) { + List nameValuePairList = new ArrayList(); + + for (String key : formParam.keySet()) { + nameValuePairList.add(new BasicNameValuePair(key, formParam.get(key))); + } + UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, Constants.ENCODING); + formEntity.setContentType(ContentType.CONTENT_TYPE_FORM); + return formEntity; + } + + return null; + } + + private static String initUrl(String host, String path, Map querys) throws UnsupportedEncodingException { + StringBuilder sbUrl = new StringBuilder(); + sbUrl.append(host); + if (!StringUtils.isBlank(path)) { + sbUrl.append(path); + } + if (null != querys) { + StringBuilder sbQuery = new StringBuilder(); + for (Map.Entry query : querys.entrySet()) { + if (0 < sbQuery.length()) { + sbQuery.append(Constants.SPE3); + } + if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) { + sbQuery.append(query.getValue()); + } + if (!StringUtils.isBlank(query.getKey())) { + sbQuery.append(query.getKey()); + if (!StringUtils.isBlank(query.getValue())) { + sbQuery.append(Constants.SPE4); + sbQuery.append(URLEncoder.encode(query.getValue(), Constants.ENCODING)); + } + } + } + if (0 < sbQuery.length()) { + sbUrl.append(Constants.SPE5).append(sbQuery); + } + } + + return sbUrl.toString(); + } + + + /** + * 初始化基础Header + * @param method + * @param path + * @param headers + * @param querys + * @param bodys + * @param signHeaderPrefixList + * @param appKey + * @param appSecret + * @return + * @throws MalformedURLException + */ + private static Map initialBasicHeader(String method, String path, + Map headers, + Map querys, + Map bodys, + List signHeaderPrefixList, + String appKey, String appSecret) + throws MalformedURLException { + if (headers == null) { + headers = new HashMap(); + } + + headers.put(SystemHeader.X_CA_TIMESTAMP, String.valueOf(new Date().getTime())); + //headers.put(SystemHeader.X_CA_NONCE, UUID.randomUUID().toString()); + headers.put(SystemHeader.X_CA_KEY, appKey); + headers.put(SystemHeader.X_CA_SIGNATURE, + SignUtil.sign(appSecret, method, path, headers, querys, bodys, signHeaderPrefixList)); + + return headers; + } + + /** + * 读取超时时间 + * + * @param timeout + * @return + */ + private static int getTimeout(int timeout) { + if (timeout == 0) { + return Constants.DEFAULT_TIMEOUT; + } + + return timeout; + } + + private static AisweiResponse convert(HttpResponse response) throws IOException { + AisweiResponse res = new AisweiResponse(); + + if (null != response) { + res.setStatusCode(response.getStatusLine().getStatusCode()); + for (Header header : response.getAllHeaders()) { + res.setHeader(header.getName(), MessageDigestUtil.iso88591ToUtf8(header.getValue())); + } + + res.setContentType(res.getHeader("Content-Type")); + res.setRequestId(res.getHeader("X-Ca-Request-Id")); + res.setErrorMessage(res.getHeader("X-Ca-Error-Message")); + res.setBody(readStreamAsStr(response.getEntity().getContent())); + + } else { + //服务器无回应 + res.setStatusCode(500); + res.setErrorMessage("No Response"); + } + + return res; + } + + + /** + * 将流转换为字符串 + * + * @param is + * @return + * @throws IOException + */ + public static String readStreamAsStr(InputStream is) throws IOException { + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + WritableByteChannel dest = Channels.newChannel(bos); + ReadableByteChannel src = Channels.newChannel(is); + ByteBuffer bb = ByteBuffer.allocate(4096); + + while (src.read(bb) != -1) { + bb.flip(); + dest.write(bb); + bb.clear(); + } + src.close(); + dest.close(); + + return new String(bos.toByteArray(), Constants.ENCODING); + } + + private static HttpClient wrapClient(String host) { + HttpClient httpClient = new DefaultHttpClient(); + if (host.startsWith("https://")) { + sslClient(httpClient); + } + + return httpClient; + } + + private static void sslClient(HttpClient httpClient) { + try { + SSLContext ctx = SSLContext.getInstance("TLS"); + X509TrustManager tm = new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + public void checkClientTrusted(X509Certificate[] xcs, String str) { + + } + public void checkServerTrusted(X509Certificate[] xcs, String str) { + + } + }; + ctx.init(null, new TrustManager[] { tm }, null); + SSLSocketFactory ssf = new SSLSocketFactory(ctx); + ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); + ClientConnectionManager ccm = httpClient.getConnectionManager(); + SchemeRegistry registry = ccm.getSchemeRegistry(); + registry.register(new Scheme("https", 443, ssf)); + } catch (KeyManagementException ex) { + throw new RuntimeException(ex); + } catch (NoSuchAlgorithmException ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtils.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtils.java new file mode 100644 index 0000000..12215a6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/HttpUtils.java @@ -0,0 +1,311 @@ +package org.springblade.modules.nh.factory.aiswei.util; + +import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; +import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class HttpUtils { + + /** + * get + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doGet(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpGet request = new HttpGet(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + /** + * post form + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param bodys + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + Map bodys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (bodys != null) { + List nameValuePairList = new ArrayList(); + + for (String key : bodys.keySet()) { + nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key))); + } + UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8"); + formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); + request.setEntity(formEntity); + } + + return httpClient.execute(request); + } + + /** + * Post String + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (StringUtils.isNotBlank(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Post stream + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Put String + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (StringUtils.isNotBlank(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Put stream + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Delete + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doDelete(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpDelete request = new HttpDelete(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + private static String buildUrl(String host, String path, Map querys) throws UnsupportedEncodingException { + StringBuilder sbUrl = new StringBuilder(); + sbUrl.append(host); + if (!StringUtils.isBlank(path)) { + sbUrl.append(path); + } + if (null != querys) { + StringBuilder sbQuery = new StringBuilder(); + for (Map.Entry query : querys.entrySet()) { + if (0 < sbQuery.length()) { + sbQuery.append("&"); + } + if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) { + sbQuery.append(query.getValue()); + } + if (!StringUtils.isBlank(query.getKey())) { + sbQuery.append(query.getKey()); + if (!StringUtils.isBlank(query.getValue())) { + sbQuery.append("="); + sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8")); + } + } + } + if (0 < sbQuery.length()) { + sbUrl.append("?").append(sbQuery); + } + } + + return sbUrl.toString(); + } + + private static HttpClient wrapClient(String host) { + HttpClient httpClient = new DefaultHttpClient(); + if (host.startsWith("https://")) { + sslClient(httpClient); + } + + return httpClient; + } + + private static void sslClient(HttpClient httpClient) { + try { + SSLContext ctx = SSLContext.getInstance("TLS"); + X509TrustManager tm = new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + public void checkClientTrusted(X509Certificate[] xcs, String str) { + + } + public void checkServerTrusted(X509Certificate[] xcs, String str) { + + } + }; + ctx.init(null, new TrustManager[] { tm }, null); + SSLSocketFactory ssf = new SSLSocketFactory(ctx); + ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); + ClientConnectionManager ccm = httpClient.getConnectionManager(); + SchemeRegistry registry = ccm.getSchemeRegistry(); + registry.register(new Scheme("https", 443, ssf)); + } catch (KeyManagementException ex) { + throw new RuntimeException(ex); + } catch (NoSuchAlgorithmException ex) { + throw new RuntimeException(ex); + } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/MessageDigestUtil.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/MessageDigestUtil.java new file mode 100644 index 0000000..93e9981 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/MessageDigestUtil.java @@ -0,0 +1,118 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.util; + +import org.apache.commons.codec.binary.Base64; +import org.springblade.modules.nh.factory.aiswei.constant.Constants; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +/** + * 消息摘要工具 + */ +public class MessageDigestUtil { + /** + * 先进行MD5摘要再进行Base64编码获取摘要字符串 + * + * @param str + * @return + */ + public static String base64AndMD5(String str) { + if (str == null) { + throw new IllegalArgumentException("inStr can not be null"); + } + return base64AndMD5(toBytes(str)); + } + + /** + * 先进行MD5摘要再进行Base64编码获取摘要字符串 + * + * @return + */ + public static String base64AndMD5(byte[] bytes) { + if (bytes == null) { + throw new IllegalArgumentException("bytes can not be null"); + } + try { + final MessageDigest md = MessageDigest.getInstance("MD5"); + md.reset(); + md.update(bytes); + final Base64 base64 = new Base64(); + final byte[] enbytes = base64.encode(md.digest()); + return new String(enbytes); + } catch (final NoSuchAlgorithmException e) { + throw new IllegalArgumentException("unknown algorithm MD5"); + } + } + + /** + * UTF-8编码转换为ISO-9959-1 + * + * @param str + * @return + */ + public static String utf8ToIso88591(String str) { + if (str == null) { + return str; + } + + try { + return new String(str.getBytes("UTF-8"), "ISO-8859-1"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e.getMessage(), e); + } + } + + /** + * ISO-9959-1编码转换为UTF-8 + * + * @param str + * @return + */ + public static String iso88591ToUtf8(String str) { + if (str == null) { + return str; + } + + try { + return new String(str.getBytes("ISO-8859-1"), "UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e.getMessage(), e); + } + } + + /** + * String转换为字节数组 + * + * @param str + * @return + */ + private static byte[] toBytes(final String str) { + if (str == null) { + return null; + } + try { + return str.getBytes(Constants.ENCODING); + } catch (final UnsupportedEncodingException e) { + throw new RuntimeException(e.getMessage(), e); + } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/aiswei/util/SignUtil.java b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/SignUtil.java new file mode 100644 index 0000000..9075c2d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/aiswei/util/SignUtil.java @@ -0,0 +1,227 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.springblade.modules.nh.factory.aiswei.util; + +import org.springblade.modules.nh.factory.aiswei.constant.Constants; +import org.springblade.modules.nh.factory.aiswei.constant.HttpHeader; +import org.springblade.modules.nh.factory.aiswei.constant.SystemHeader; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang.StringUtils; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + +/** + * 签名工具 + */ +public class SignUtil { + + /** + * 计算签名 + * + * @param secret APP密钥 + * @param method HttpMethod + * @param path + * @param headers + * @param querys + * @param bodys + * @param signHeaderPrefixList 自定义参与签名Header前缀 + * @return 签名后的字符串 + */ + public static String sign(String secret, String method, String path, + Map headers, + Map querys, + Map bodys, + List signHeaderPrefixList) { + try { + Mac hmacSha256 = Mac.getInstance(Constants.HMAC_SHA256); + byte[] keyBytes = secret.getBytes(Constants.ENCODING); + hmacSha256.init(new SecretKeySpec(keyBytes, 0, keyBytes.length, Constants.HMAC_SHA256)); + + return new String(Base64.encodeBase64( + hmacSha256.doFinal(buildStringToSign(method, path, headers, querys, bodys, signHeaderPrefixList) + .getBytes(Constants.ENCODING))), + Constants.ENCODING); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * 构建待签名字符串 + * @param method + * @param path + * @param headers + * @param querys + * @param bodys + * @param signHeaderPrefixList + * @return + */ + private static String buildStringToSign(String method, String path, + Map headers, + Map querys, + Map bodys, + List signHeaderPrefixList) { + StringBuilder sb = new StringBuilder(); + + sb.append(method.toUpperCase()).append(Constants.LF); + if (null != headers) { + if (null != headers.get(HttpHeader.HTTP_HEADER_ACCEPT)) { + sb.append(headers.get(HttpHeader.HTTP_HEADER_ACCEPT)); + } + sb.append(Constants.LF); + if (null != headers.get(HttpHeader.HTTP_HEADER_CONTENT_MD5)) { + sb.append(headers.get(HttpHeader.HTTP_HEADER_CONTENT_MD5)); + } + sb.append(Constants.LF); + if (null != headers.get(HttpHeader.HTTP_HEADER_CONTENT_TYPE)) { + sb.append(headers.get(HttpHeader.HTTP_HEADER_CONTENT_TYPE)); + } + sb.append(Constants.LF); + if (null != headers.get(HttpHeader.HTTP_HEADER_DATE)) { + sb.append(headers.get(HttpHeader.HTTP_HEADER_DATE)); + } + } + sb.append(Constants.LF); + sb.append(buildHeaders(headers, signHeaderPrefixList)); + sb.append(buildResource(path, querys, bodys)); + + return sb.toString(); + } + + /** + * 构建待签名Path+Query+BODY + * + * @param path + * @param querys + * @param bodys + * @return 待签名 + */ + private static String buildResource(String path, Map querys, Map bodys) { + StringBuilder sb = new StringBuilder(); + + if (!StringUtils.isBlank(path)) { + sb.append(path); + } + Map sortMap = new TreeMap(); + if (null != querys) { + for (Map.Entry query : querys.entrySet()) { + if (!StringUtils.isBlank(query.getKey())) { + sortMap.put(query.getKey(), query.getValue()); + } + } + } + + if (null != bodys) { + for (Map.Entry body : bodys.entrySet()) { + if (!StringUtils.isBlank(body.getKey())) { + sortMap.put(body.getKey(), body.getValue()); + } + } + } + + StringBuilder sbParam = new StringBuilder(); + for (Map.Entry item : sortMap.entrySet()) { + if (!StringUtils.isBlank(item.getKey())) { + if (0 < sbParam.length()) { + sbParam.append(Constants.SPE3); + } + sbParam.append(item.getKey()); + if (!StringUtils.isBlank(item.getValue())) { + sbParam.append(Constants.SPE4).append(item.getValue()); + } + } + } + if (0 < sbParam.length()) { + sb.append(Constants.SPE5); + sb.append(sbParam); + } + + return sb.toString(); + } + + /** + * 构建待签名Http头 + * + * @param headers 请求中所有的Http头 + * @param signHeaderPrefixList 自定义参与签名Header前缀 + * @return 待签名Http头 + */ + private static String buildHeaders(Map headers, List signHeaderPrefixList) { + StringBuilder sb = new StringBuilder(); + + if (null != signHeaderPrefixList) { + signHeaderPrefixList.remove(SystemHeader.X_CA_SIGNATURE); + signHeaderPrefixList.remove(HttpHeader.HTTP_HEADER_ACCEPT); + signHeaderPrefixList.remove(HttpHeader.HTTP_HEADER_CONTENT_MD5); + signHeaderPrefixList.remove(HttpHeader.HTTP_HEADER_CONTENT_TYPE); + signHeaderPrefixList.remove(HttpHeader.HTTP_HEADER_DATE); + Collections.sort(signHeaderPrefixList); + if (null != headers) { + Map sortMap = new TreeMap(); + sortMap.putAll(headers); + StringBuilder signHeadersStringBuilder = new StringBuilder(); + for (Map.Entry header : sortMap.entrySet()) { + if (isHeaderToSign(header.getKey(), signHeaderPrefixList)) { + sb.append(header.getKey()); + sb.append(Constants.SPE2); + if (!StringUtils.isBlank(header.getValue())) { + sb.append(header.getValue()); + } + sb.append(Constants.LF); + if (0 < signHeadersStringBuilder.length()) { + signHeadersStringBuilder.append(Constants.SPE1); + } + signHeadersStringBuilder.append(header.getKey()); + } + } + headers.put(SystemHeader.X_CA_SIGNATURE_HEADERS, signHeadersStringBuilder.toString()); + } + } + + return sb.toString(); + } + + /** + * Http头是否参与签名 return + */ + private static boolean isHeaderToSign(String headerName, List signHeaderPrefixList) { + if (StringUtils.isBlank(headerName)) { + return false; + } + + if (headerName.startsWith(Constants.CA_HEADER_TO_SIGN_PREFIX_SYSTEM)) { + return true; + } + + if (null != signHeaderPrefixList) { + for (String signHeaderPrefix : signHeaderPrefixList) { + if (headerName.equalsIgnoreCase(signHeaderPrefix)) { + return true; + } + } + } + + return false; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/EachRunner.java b/src/main/java/org/springblade/modules/nh/factory/common/EachRunner.java new file mode 100644 index 0000000..004ae49 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/EachRunner.java @@ -0,0 +1,54 @@ +package org.springblade.modules.nh.factory.common; + +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +@Slf4j +public abstract class EachRunner { + + /** + * @param interval 单位秒 + */ + public void start(List val, String label, Long interval, Map ctx) { + long s = System.currentTimeMillis(); + log.info("start long task {} =======================", label); + long lastTime = s; + for (T t : val) { + if (interval != null && interval > 0) { + long p = System.currentTimeMillis() - lastTime - interval * 1000; + if (p < 0) { + sleepSilently(Math.abs(p)); + } + } + lastTime = System.currentTimeMillis(); + try { + handle(t, ctx); + } catch (Exception ex) { + log.error("each runner handle error, label: {}", label, ex); + } + } + log.info("end long task {} =======================, consumed: {}", label, System.currentTimeMillis() - s); + } + + public abstract void handle(T val, Map ctx) throws IOException; + + private void sleepSilently(long t) { + try { + Thread.sleep(t); + } catch (InterruptedException e) { + // ignore + } + } + + public Runnable asyncStart(List val, String label, Long interval, Map ctx) { + return new Runnable() { + @Override + public void run() { + start(val, label, interval, ctx); + } + }; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/EzTemplateBase.java b/src/main/java/org/springblade/modules/nh/factory/common/EzTemplateBase.java new file mode 100644 index 0000000..6cc5b5c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/EzTemplateBase.java @@ -0,0 +1,195 @@ +package org.springblade.modules.nh.factory.common; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.springblade.common.filter.LoggingInterceptor; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.util.CollectionUtils; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +import java.util.*; + +public class EzTemplateBase extends RestTemplate { + + private final RestTemplate restTemplate; + + public EzTemplateBase(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + public EzTemplateBase() { + this.restTemplate = new RestTemplate(getClientHttpRequestFactory()); + } + + protected static RestTemplate createRestTemplate(ClientHttpRequestFactory factory) { + ObjectMapper lax = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + MappingJackson2HttpMessageConverter c = new MappingJackson2HttpMessageConverter(); + c.setObjectMapper(lax); + RestTemplate restTemplate = new RestTemplate(factory); + + List interceptors = restTemplate.getInterceptors(); + if (CollectionUtils.isEmpty(interceptors)) { + interceptors = new ArrayList<>(); + } + interceptors.add(new LoggingInterceptor()); + restTemplate.setInterceptors(interceptors); + + Iterator> iterator = restTemplate.getMessageConverters().iterator(); + while (iterator.hasNext()) { + HttpMessageConverter next = iterator.next(); + if (next instanceof MappingJackson2HttpMessageConverter) { + iterator.remove(); + break; + } + } + restTemplate.getMessageConverters().add(c); + return restTemplate; + } + + public T postForm(String url, Map data, Class responseType, Object... uriVariables) throws RestClientException { + long start = System.currentTimeMillis(); + MultiValueMap postData = new LinkedMultiValueMap<>(); + if (data != null) { + postData.setAll(data); + } + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + HttpEntity> entity = new HttpEntity<>(postData, headers); + T ret = restTemplate.postForObject(url, entity, responseType, uriVariables); + logger.info(String.format("post to %s consumed: %s", url, (System.currentTimeMillis() - start))); + return ret; + } + + private T doPostForm(String url, ParameterizedTypeReference responseType, HttpEntity> entity, Object[] uriVariables) { + return restTemplate.exchange(url, HttpMethod.POST, entity, responseType, uriVariables).getBody(); + } + + public T postJson(String url, Map data, ParameterizedTypeReference responseType, Object... uriVariables) throws RestClientException { + return postJson(url, new ValueHolder(data), responseType, uriVariables); + } + + public T get(String url, Map uriVariables, ParameterizedTypeReference responseType) throws RestClientException { + HttpHeaders headers = new HttpHeaders(); + HttpHeaders httpHeaders = HttpHeaders.writableHttpHeaders(headers); + callHeaders(url, null, httpHeaders); + HttpEntity entity = new HttpEntity<>(null, httpHeaders); + return restTemplate.exchange(url, HttpMethod.GET, entity, responseType, uriVariables).getBody(); + } + + public T get(int index,String url, Map uriVariables, ParameterizedTypeReference responseType) throws RestClientException { + HttpHeaders headers = new HttpHeaders(); + HttpHeaders httpHeaders = HttpHeaders.writableHttpHeaders(headers); + callHeaders(url, null, httpHeaders); + HttpEntity entity = new HttpEntity<>(null, httpHeaders); + return restTemplate.exchange(url, HttpMethod.GET, entity, responseType, uriVariables).getBody(); + } + + public T postJson(String url, Object data, ParameterizedTypeReference responseType, Object... uriVariables) throws RestClientException { + return postJson(url, new ValueHolder<>(data), responseType, uriVariables); + } + + public T postJson(int index,String url, Object data, ParameterizedTypeReference responseType, Object... uriVariables) throws RestClientException { + return postJson(url, new ValueHolder<>(data), responseType, uriVariables); + } + + public T postJson(String url, Object data, Class responseType, Object... uriVariables) throws RestClientException { + return postJson(url, new ValueHolder<>(data), responseType, uriVariables); + } + + private T postJson(String url, ValueHolder data, ParameterizedTypeReference responseType, Object... uriVariables) throws RestClientException { + long start = System.currentTimeMillis(); + HttpHeaders headers = setJsonHttpHeaders(); + HttpEntity entity = new HttpEntity<>(data.getData(), headers); + T body = doPostJson(url, responseType, entity, uriVariables); + logger.info(String.format("post to %s consumed: %s", url, (System.currentTimeMillis() - start))); + return body; + } + + protected void callHeaders(String url, String data, HttpHeaders headers) { + } + + private T postJson(String url, ValueHolder data, Class responseType, Object... uriVariables) throws RestClientException { + HttpHeaders headers = setJsonHttpHeaders(); + HttpEntity entity = new HttpEntity<>(data.getData(), headers); + long start = System.currentTimeMillis(); + T body = doPostJson(url, responseType, entity, uriVariables); + logger.info(String.format("post to %s consumed: %s", url, (System.currentTimeMillis() - start))); + return body; + } + + private HttpHeaders setJsonHttpHeaders() { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.parseMediaType("application/json; charset=UTF-8")); + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + return headers; + } + + private T doPostJson(String url, ParameterizedTypeReference responseType, HttpEntity entity, Object[] uriVariables) { + String body = new Gson().toJson(entity.getBody()); + HttpHeaders httpHeaders = HttpHeaders.writableHttpHeaders(entity.getHeaders()); + callHeaders(url, body, httpHeaders); + url = changeUrl(url); + HttpEntity data = new HttpEntity<>(body, httpHeaders); + return restTemplate.exchange(url, HttpMethod.POST, data, responseType, uriVariables).getBody(); + } + + protected String changeUrl(String url) { + return url; + } + + private T doPostJson(String url, Class responseType, HttpEntity entity, Object[] uriVariables) { + String body = new Gson().toJson(entity.getBody()); + HttpHeaders httpHeaders = HttpHeaders.writableHttpHeaders(entity.getHeaders()); + callHeaders(url, body, entity.getHeaders()); + HttpEntity data = new HttpEntity<>(body, httpHeaders); + return restTemplate.exchange(url, HttpMethod.POST, data, responseType, uriVariables).getBody(); + } + + static class ValueHolder { + private final T data; + + ValueHolder(T data) { + this.data = data; + } + + public T getData() { + return data; + } + } + + protected static ClientHttpRequestFactory getClientHttpRequestFactory() { + int timeout = 30000; + RequestConfig config = RequestConfig.custom() + .setConnectTimeout(timeout) + .setConnectionRequestTimeout(timeout) + .setSocketTimeout(timeout).build(); + + CloseableHttpClient client = HttpClientBuilder.create() + .setDefaultRequestConfig(config) + .setMaxConnPerRoute(1000) + .setMaxConnTotal(1000) + .build(); + + + + return new SimpleClientHttpRequestFactory(); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/PageAction.java b/src/main/java/org/springblade/modules/nh/factory/common/PageAction.java new file mode 100644 index 0000000..636cf58 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/PageAction.java @@ -0,0 +1,95 @@ +package org.springblade.modules.nh.factory.common; + +import lombok.extern.slf4j.Slf4j; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +@Slf4j +public abstract class PageAction { + + public abstract PageInfo pageData(int page, int pageSize, Map ctx) throws IOException; + + public abstract void handlePageInfo(PageInfo pageInfo, Map ctx); + + protected boolean isOk(Boolean success) { + return Objects.equals(success, true); + } + + // for goodwe + protected boolean isOk(Integer code) { + return Objects.equals(code, 0); + } + + protected boolean isAisOk(Integer code) { + return Objects.equals(code, 200); + } + + public int calcPage(long total, int pageSize) { + return (int) (total / pageSize + (total % pageSize == 0 ? 0 : 1)); + } + + /** + * @param label 任务名称 + * @param delay 单位秒 + */ + public void start(String label, int pageSize, Map ctx, Integer delay) { + log.info("start fetch task ----- {} -----", label); + long t = System.currentTimeMillis(); + long lastTime = t; + log.info("start {}, page: {}", label, 1); + PageInfo pageInfo = pageDataWithRetry(label, 1, pageSize, ctx); + + if (pageInfo != null) { + if (pageInfo.getPages() == null) { + throw new RuntimeException("pages not set, label: " + label); + } + handlePageInfo(pageInfo, ctx); + for (int i = 2; i <= pageInfo.getPages(); i++) { + log.info("start {}, page: {}", label, i); + if (delay != null && delay > 0) { + long sleep = System.currentTimeMillis() - lastTime - delay * 1000L; + if (sleep < 0) { + sleepSilently(Math.abs(sleep)); + } + } + lastTime = System.currentTimeMillis(); + PageInfo pageInfo1 = pageDataWithRetry(label, i, pageSize, ctx); + if (pageInfo1 == null) { + break; + } + handlePageInfo(pageInfo1, ctx); + } + } + log.info("end fetch task ----- {} -----, consumed: {}", label, System.currentTimeMillis() - t); + } + + public void start(String label, int pageSize, int delay) { + start(label, pageSize, new HashMap<>(), delay); + } + + private void sleepSilently(long t) { + try { + Thread.sleep(t); + } catch (InterruptedException e) { + // ignore + } + } + + protected PageInfo pageDataWithRetry(String label, int page, int pageSize, Map ctx) { + PageInfo pageInfo = null; + try { + pageInfo = pageData(page, pageSize, ctx); + } catch (IOException ex) { + try { + pageInfo = pageData(page, pageSize, ctx); + } catch (IOException e) { + log.error("{}, page with retry error, page: {}", label, page, e); + } + } + return pageInfo; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/PageInfo.java b/src/main/java/org/springblade/modules/nh/factory/common/PageInfo.java new file mode 100644 index 0000000..a000997 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/PageInfo.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.common; + +import lombok.Data; + +import java.util.List; + +@Data +public class PageInfo { + + private T data; + private List list; + private Integer pages; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/TimeWindow.java b/src/main/java/org/springblade/modules/nh/factory/common/TimeWindow.java new file mode 100644 index 0000000..e89360e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/TimeWindow.java @@ -0,0 +1,65 @@ +package org.springblade.modules.nh.factory.common; + +import java.util.*; + +public class TimeWindow { + + private final Queue entries; + private final long cap; + private long size; + + /** + * @param duration unit: ms + * @param cap capacity + */ + public TimeWindow(int duration, int cap) { + this.cap = cap; + this.size = 0; + this.entries = new PriorityQueue<>(cap, new Comparator() { + @Override + public int compare(WindowEntry o1, WindowEntry o2) { + return Long.compare(o1.getT(), o2.getT()); + } + }); + Timer timer = new Timer(); + timer.scheduleAtFixedRate(new TimerTask() { + @Override + public void run() { + long old = System.currentTimeMillis() - duration; + int v = 0; + synchronized (TimeWindow.this) { + while (true) { + WindowEntry en = entries.peek(); + if (en == null || en.getT() > old) { + break; + } + entries.poll(); + v++; + } + if (v > 0) { + size = size - v; + assert size >= 0; + TimeWindow.this.notifyAll(); + } + } + } + }, 1000, 1000); + } + + public synchronized void add() { + while (true) { + if (size >= cap) { + try { + wait(); + } catch (InterruptedException e) { + // ignore + } + } else { + this.size++; + this.entries.add(new WindowEntry(System.currentTimeMillis())); + break; + } + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/TokenBucket.java b/src/main/java/org/springblade/modules/nh/factory/common/TokenBucket.java new file mode 100644 index 0000000..b95dd44 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/TokenBucket.java @@ -0,0 +1,45 @@ +package org.springblade.modules.nh.factory.common; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.Timer; +import java.util.TimerTask; + +public class TokenBucket { + + private static final Logger log = LoggerFactory.getLogger(TokenBucket.class); + private static final int MAX_CAP = 60; + private int semaphore = MAX_CAP; + + public TokenBucket() { + Timer timer = new Timer(); + timer.scheduleAtFixedRate(new TimerTask() { + @Override + public void run() { + synchronized (TokenBucket.this) { + if (semaphore < MAX_CAP) { + semaphore++; + TokenBucket.this.notifyAll(); + } + } + } + }, 1000, 1000); + } + + public synchronized void get() { + while (true) { + if (semaphore > 0) { + semaphore--; + break; + } else { + try { + wait(); + } catch (InterruptedException e) { + // ignore + } + } + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/common/WindowEntry.java b/src/main/java/org/springblade/modules/nh/factory/common/WindowEntry.java new file mode 100644 index 0000000..7808078 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/common/WindowEntry.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.common; + +public class WindowEntry { + private final long t; + + public WindowEntry(long t) { + this.t = t; + } + + public long getT() { + return t; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApi.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApi.java new file mode 100644 index 0000000..b6bc756 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApi.java @@ -0,0 +1,229 @@ +package org.springblade.modules.nh.factory.ginlong; + +import com.google.common.collect.Maps; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.tool.utils.Base64Util; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListReq; +import org.springblade.modules.nh.factory.ginlong.dto.collectorlist.GetCollectorListR; +import org.springblade.modules.nh.factory.ginlong.dto.collectorlist.GetCollectorListResp; +import org.springblade.modules.nh.factory.ginlong.dto.inverterday.GetInverterDayR; +import org.springblade.modules.nh.factory.ginlong.dto.inverterday.GetInverterDayReq; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailListReq; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.factory.ginlong.dto.inverterlist.GetInverterListReq; +import org.springblade.modules.nh.factory.ginlong.dto.inverterlist.GetInverterListResp; +import org.springblade.modules.nh.factory.ginlong.dto.invertermonth.GetInverterMonthR; +import org.springblade.modules.nh.factory.ginlong.dto.invertermonth.GetInverterMonthReq; +import org.springblade.modules.nh.factory.ginlong.dto.stationday.GetStationDayR; +import org.springblade.modules.nh.factory.ginlong.dto.stationday.GetStationDayReq; +import org.springblade.modules.nh.factory.ginlong.dto.stationdayenergylist.GetStationDayEnergyListR; +import org.springblade.modules.nh.factory.ginlong.dto.stationdayenergylist.GetStationDayEnergyListReq; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthR; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthReq; +import org.springblade.modules.nh.factory.ginlong.dto.stationyear.GetStationYearR; +import org.springblade.modules.nh.factory.ginlong.dto.stationyear.GetStationYearReq; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationListReq; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationListResp; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.stereotype.Service; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.security.InvalidKeyException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class GinlongApi { + + private static final String apiUrl = "https://api.ginlong.com:13333/"; + private static final Logger log = LoggerFactory.getLogger(GinlongApi.class); + private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1"; + + @Autowired + GinlongApiRestTemplate ginlongApiRestTemplate; + + public IRet userStationList(GetStationListReq req) { + String url = "https://api.ginlong.com:13333/v1/api/userStationList"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + public IRet stationDetail(int index,String outStationId) { + Map req = Maps.newHashMap(); + req.put("id",outStationId); + String url = "https://api.ginlong.com:13333/v1/api/stationDetail"; + return ginlongApiRestTemplate.postJson(index,url, req, new ParameterizedTypeReference>() { + }); + } + + public IRet inverterDetail(int index,String outInverterId,String sn) { + Map req = Maps.newHashMap(); + if(StringUtil.isNotBlank(outInverterId)){ + req.put("id",outInverterId); + } + if(StringUtil.isNotBlank(sn)){ + req.put("sn",sn); + } + String url = "https://api.ginlong.com:13333/v1/api/inverterDetail"; + return ginlongApiRestTemplate.postJson(index,url, req, new ParameterizedTypeReference>() { + }); + } + + public IRet inverterList(GetInverterListReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/inverterList"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 逆变器日实时数据 + */ + public IRet> inverterDay(GetInverterDayReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/inverterDay"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取多个电站某日的实时数据 + */ + public IRet> stationDayEnergyList(GetStationDayEnergyListReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/stationDayEnergyList"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取账号下设备报警列表 + */ + public IRet> alarmList(GetAlarmListReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/alarmList"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取单个电站某日的实时数据 + */ + public IRet> stationDay(GetStationDayReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/stationDay"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取单个电站某月的日数据 + */ + public IRet> stationMonth(GetStationMonthReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/stationMonth"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取单台逆变器某月的日数据 + */ + public IRet> inverterMonth(GetInverterMonthReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/inverterMonth"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取单个电站某年的月数据 + */ + public IRet> stationYear(GetStationYearReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/stationYear"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 逆变器详情列表 + */ + public IRet> inverterDetailList(GetInverterDetailListReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/inverterDetailList"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 获取账号下采集器列表 + */ + public IRet collectorList(GetInverterDetailListReq req) throws IOException { + String url = "https://api.ginlong.com:13333/v1/api/collectorList"; + return ginlongApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + public IRet collectorDetail(int index,String outDeviceId, String sn) throws IOException { + Map req = Maps.newHashMap(); + if(StringUtil.isNotBlank(outDeviceId)){ + req.put("id",outDeviceId); + } + if(StringUtil.isNotBlank(sn)){ + req.put("sn",sn); + } + String url = "https://api.ginlong.com:13333/v1/api/collectorDetail"; + return ginlongApiRestTemplate.postJson(index,url, req, new ParameterizedTypeReference>() { + }); + } + + public static String getGMTTime() { + Calendar cd = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss 'GMT'", Locale.US); + sdf.setTimeZone(TimeZone.getTimeZone("GMT")); + return sdf.format(cd.getTime()); + } + + public static byte[] genHMAC(String data, String key) { + try { + SecretKeySpec signinKey = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), HMAC_SHA1_ALGORITHM); + Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM); + mac.init(signinKey); + return mac.doFinal(data.getBytes()); + } catch (NoSuchAlgorithmException | InvalidKeyException e) { + throw new RuntimeException(e); + } + } + + public static String getAuthorization(String contentMd5, String date, String url, String apiId, String apiSecret) { + log.info("get authorization, content.md5: {}, date: {}, url: {}", contentMd5, date, url); + StringBuilder sb = new StringBuilder(); + sb.append("POST\n"); + sb.append(contentMd5).append("\n"); + sb.append("application/json\n"); + sb.append(date).append("\n"); + sb.append(url.substring("https://api.ginlong.com:13333".length())); + byte[] bytes = genHMAC(sb.toString(), apiSecret); + return "API " + apiId + ":" + Base64Util.encodeToString(bytes); + + } + + public static String getDigest(String test) { + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + md.update(test.getBytes()); + byte[] b = md.digest(); + return Base64Util.encodeToString(b); + } catch (NoSuchAlgorithmException e) { + throw new RuntimeException(e); + } + } + + public static void main(String[] args) { + String url = "https://api.ginlong.com:13333/v1/api/userStationList"; + System.out.println(url.substring("https://api.ginlong.com:13333".length())); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.java new file mode 100644 index 0000000..d919590 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.java @@ -0,0 +1,85 @@ +package org.springblade.modules.nh.factory.ginlong; + +import com.alibaba.fastjson.JSON; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.http.util.HttpUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.modules.nh.factory.common.EzTemplateBase; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpHeaders; +import org.springframework.http.client.BufferingClientHttpRequestFactory; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.stereotype.Service; + +@Service +public class GinlongApiRestTemplate extends EzTemplateBase { + + private String redisTokenKey = "GINLONG_TOKEN"; + + private String redisIndexKey = "GINLONG_INDEX_KEY"; + + @Autowired + private BladeRedis redis; + + private static final Logger log = LoggerFactory.getLogger(GinlongApiRestTemplate.class); + + public GinlongApiRestTemplate() { + super(createRestTemplate(createHttpRequestFactory())); + } + + protected static ClientHttpRequestFactory createHttpRequestFactory() { + return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()); + } + + @Override + public T postJson(int index, String url, Object data, ParameterizedTypeReference responseType, Object... uriVariables) { + try{ + redis.set(redisIndexKey,index); + T r = super.postJson(url, data, responseType, uriVariables); + return r; + }catch (Exception e){ + logger.error("postJson error:{}", e); + return null; + } + } + + @Override + protected void callHeaders(String url, String data, HttpHeaders headers) { + int index = redis.get(redisIndexKey); + + String md5 = GinlongApi.getDigest(data); + String gmtTime = GinlongApi.getGMTTime(); + + String Authorization = null; + if(index==1){ + Authorization = GinlongApi.getAuthorization(md5, gmtTime, url, "1300386381676623064", "48b6adf9df9546e39176e9b0f020b95c"); + }else if(index==2){ + Authorization = GinlongApi.getAuthorization(md5, gmtTime, url, "1300386381677018069", "d49d515c83634cd5a785ecec7948f11a"); + }else{ + Authorization = GinlongApi.getAuthorization(md5, gmtTime, url, "1300386381676623064", "48b6adf9df9546e39176e9b0f020b95c"); + } + headers.set("Authorization", Authorization); + headers.set("Date", gmtTime); + headers.set("Content-MD5", md5); + System.out.println(JSON.toJSONString(headers)); + } + + +// ginlong: +// key: 1300386381676623064 +// secret: 48b6adf9df9546e39176e9b0f020b95c +// 锦浪 +// 17712135319 nh123456 +// KeyID: 1300386381677018069 KeySecret: d49d515c83634cd5a785ecec7948f11a + + + public static void main(String[] args) { + + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiTestController.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiTestController.java new file mode 100644 index 0000000..3918a2d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/GinlongApiTestController.java @@ -0,0 +1,223 @@ +//package org.springblade.modules.nh.factory.ginlong; +// +//import lombok.extern.slf4j.Slf4j; +//import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +//import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListReq; +//import org.springblade.modules.nh.factory.ginlong.dto.collectorlist.GetCollectorListResp; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterday.GetInverterDayR; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterday.GetInverterDayReq; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailListReq; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterlist.GetInverterListReq; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterlist.GetInverterListResp; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterlist.GetInverterR; +//import org.springblade.modules.nh.factory.ginlong.dto.invertermonth.GetInverterMonthR; +//import org.springblade.modules.nh.factory.ginlong.dto.invertermonth.GetInverterMonthReq; +//import org.springblade.modules.nh.factory.ginlong.dto.stationday.GetStationDayR; +//import org.springblade.modules.nh.factory.ginlong.dto.stationday.GetStationDayReq; +//import org.springblade.modules.nh.factory.ginlong.dto.stationdayenergylist.GetStationDayEnergyListR; +//import org.springblade.modules.nh.factory.ginlong.dto.stationdayenergylist.GetStationDayEnergyListReq; +//import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthR; +//import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthReq; +//import org.springblade.modules.nh.factory.ginlong.dto.stationyear.GetStationYearR; +//import org.springblade.modules.nh.factory.ginlong.dto.stationyear.GetStationYearReq; +//import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationListReq; +//import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationListResp; +//import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +//import org.springblade.modules.nh.factory.ginlong.scheduler.GinlongInverterDayEachRunner; +//import org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationMonthEachRunner; +//import org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationYearEachRunner; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RequestParam; +//import org.springframework.web.bind.annotation.RestController; +// +//import java.io.IOException; +//import java.util.*; +// +//@RestController +//@RequestMapping("/gin") +//@Slf4j +//public class GinlongApiTestController { +// +// @Autowired +// GinlongApi ginlongApi; +// @Autowired +// GinlongStationMonthEachRunner ginlongStationMonthEachRunner; +// @Autowired +// MonitorAlarmInfoServiceImpl monitorAlarmInfoService; +// @Autowired +// GinlongInverterDayEachRunner ginlongInverterDayEachRunner; +// @Autowired +// MonitorInverterStatServiceImpl monitorInverterStatService; +// @Autowired +// GinlongStationYearEachRunner ginlongStationYearEachRunner; +// @Autowired +// MonitorEntryStatServiceImpl monitorEntryStatService; +// +// @GetMapping(value = "userStationList") +// public Object userStationList(@RequestParam(value = "pageNo", required = false) Integer pageNo, +// @RequestParam(value = "pageSize", required = false) Integer pageSize) throws IOException { +// GetStationListReq req = new GetStationListReq(); +// req.setPageSize(pageSize == null ? 300 : pageSize); +// req.setPageNo(pageNo == null ? 1 : pageNo); +// req.setNmiCode(null); +// IRet getStationListRespResult = ginlongApi.userStationList(req); +// GetStationListResp data = getStationListRespResult.getData(); +// List records = data.getPage().getRecords(); +// for (GetStationR record : records) { +// int state = record.getState(); +// if (state == 1) { +// log.info("station, id: {}, nmiCode: {}", record.getId(), record.getNmiCode()); +// break; +// } +// } +// return getStationListRespResult; +// } +// +// @GetMapping(value = "inverterDetailList") +// public Object inverterDetailList() throws IOException { +// GetInverterDetailListReq req = new GetInverterDetailListReq(); +// req.setPageSize(100); +// req.setPageNo(1); +// IRet> ret = ginlongApi.inverterDetailList(req); +// monitorInverterStatService.syncInverterDetails(ret.getData().getRecords(), Constants.SYS_TYPE_GINLONG, new HashSet<>()); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "inverterList") +// public Object inverterList() throws IOException { +// GetInverterListReq req = new GetInverterListReq(); +// req.setPageSize(100); +// req.setPageNo(1); +//// req.setStationId("1299184320438796693"); +// req.setNmiCode(null); +// IRet ret = ginlongApi.inverterList(req); +// GetInverterListResp data = ret.getData(); +// if (data != null && data.getPage() != null && data.getPage().getRecords() != null) { +// List records = data.getPage().getRecords(); +// Double sum = records.stream().reduce(0d, (a, b) -> a + b.getEtoday(), Double::sum); +// log.info("total sum is: {}", sum); +// } +// +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "inverterDay") +// public Object inverterDay() throws IOException { +// GetInverterDayReq req = new GetInverterDayReq(); +// // 对应电站id: 1299184320438796693 +//// req.setId("1299184088035530778"); +// req.setId("1299184088035530844"); // sn: 2016010233070199, inverterId: 1299184088035530844 +// req.setMoney("CNY"); +// req.setTime("2024-02-18"); +// req.setTimeZone(8); +// IRet> ret = ginlongApi.inverterDay(req); +// log.info("ret.code: {}", ret.getCode()); +// Map ctx = new HashMap<>(); +// ctx.put("baseDate", DateUtils.formatDate(new Date(), "yyyy-MM-dd")); +// ginlongInverterDayEachRunner.handle("1299184088035530844", ctx); +// return ret; +// } +// +// @GetMapping(value = "stationDay") +// public Object stationDay() throws IOException { +// GetStationDayReq req = new GetStationDayReq(); +// // 对应电站id: 1299184320438796693 +// // entry id: 4028819b8bf9e458018c14ccfd500012 +// req.setId("1299184320438796693"); +// req.setMoney("CNY"); +// req.setTime("2024-01-30"); +// req.setTimeZone(8); +// IRet> ret = ginlongApi.stationDay(req); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "stationMonth") +// public Object stationMonth() throws IOException { +// GetStationMonthReq req = new GetStationMonthReq(); +// // 对应电站id: 1299184320438796693 +// req.setId("1299184320438796693"); +// req.setMoney("CNY"); +// req.setMonth("2024-04"); +// req.setTimeZone(8); +// IRet> ret = ginlongApi.stationMonth(req); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "stationYear") +// public Object stationYear() throws IOException { +// GetStationYearReq req = new GetStationYearReq(); +// // 对应电站id: 1299184320438796693 +// req.setId("1299184320438796693"); +// req.setMoney("CNY"); +// req.setYear("2023"); +// req.setTimeZone(8); +// IRet> ret = ginlongApi.stationYear(req); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "syncStationYear") +// public Object syncStationYear() throws IOException { +// List stationIds = monitorEntryStatService.getStationIds("0"); +// ginlongStationYearEachRunner.start(stationIds, "获取单个电站某年的月数据", 1L, null); +// return "ok"; +// } +// +// @GetMapping(value = "collectorList") +// public Object collectorList() throws IOException { +// GetInverterDetailListReq req = new GetInverterDetailListReq(); +// req.setPageNo(1); +// req.setPageSize(100); +// IRet ret = ginlongApi.collectorList(req); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "inverterMonth") +// public Object inverterMonth() throws IOException { +// GetInverterMonthReq req = new GetInverterMonthReq(); +// // 对应 station id: 1299184320438796693 +// // 对应 inverter id: 1299184088035530844 +// req.setId("1299184088035530844"); +// req.setMoney("CNY"); +// req.setMonth("2024-02"); +// IRet> ret = ginlongApi.inverterMonth(req); +// +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "stationDayEnergyList") +// public Object stationDayEnergyList() throws IOException { +// GetStationDayEnergyListReq req = new GetStationDayEnergyListReq(); +// // 对应电站id: 1299184320438796693 +// req.setPageNo(1); +// req.setPageSize(10); +// req.setStationIds("1299184320438796693"); +// req.setTime("2024-01-31"); +// IRet> ret = ginlongApi.stationDayEnergyList(req); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +// @GetMapping(value = "alarmList") +// public Object alarmList() throws IOException { +// GetAlarmListReq req = new GetAlarmListReq(); +// // 对应电站id: 1299184320438796693 +// req.setPageNo(1); +// req.setPageSize(100); +// req.setAlarmBeginTime("2024-01-31"); +// IRet> ret = ginlongApi.alarmList(req); +// monitorAlarmInfoService.syncAlarmInfo(ret.getData().getRecords(), Constants.SYS_TYPE_GINLONG); +// log.info("ret.code: {}", ret.getCode()); +// return ret; +// } +// +//} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/IRet.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/IRet.java new file mode 100644 index 0000000..318a24d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/IRet.java @@ -0,0 +1,51 @@ +package org.springblade.modules.nh.factory.ginlong; + +public class IRet { + + private String code; + private String msg; + private Boolean success; + private T data; + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public Boolean getSuccess() { + return success; + } + + public void setSuccess(Boolean success) { + this.success = success; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "IRet{" + + "code='" + code + '\'' + + ", msg='" + msg + '\'' + + ", success=" + success + + ", data=" + data + + '}'; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/Page.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/Page.java new file mode 100644 index 0000000..f45afb2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/Page.java @@ -0,0 +1,16 @@ +package org.springblade.modules.nh.factory.ginlong; + +import lombok.Data; + +import java.util.List; + +@Data +public class Page { + + private Long total; + private Long size; + private Long current; + private Integer pages; + private List records; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.java new file mode 100644 index 0000000..8145ce9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.java @@ -0,0 +1,75 @@ +package org.springblade.modules.nh.factory.ginlong.dto.alarmlist; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetAlarmListR { + + /** + * 电站id + */ + private String stationId; + /** + * 电站名称 + */ + private String stationName; + /** + * 逆变器SN + */ + private String alarmDeviceSn; + /** + * 报警代码 + */ + private String alarmCode; + /** + * 报警类型 + */ + private Integer alarmType; + /** + * 报警等级: + * 1 = 提示,2 = 一般,3 = 紧急 + */ + private String alarmLevel; + /** + * 报警开始时间 + */ + private Long alarmBeginTime; + /** + * 报警结束时间 + */ + private Long alarmEndTime; + /** + * 报警内容 + */ + private String alarmMsg; + /** + * 报警状态: + * 0 = 未处理,1 = 已处理,2 = 已恢复 + */ + private String state; + /** + * 子报警代码 + */ + private String warningInfoData; + /** + * 处理建议 + */ + private String advice; + + /** + * 示例值:"GCI-33K-5G", + */ + private String machine; + /** + * 示例值:"d2", + */ + private String model; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + public Date getAlarmBeginTimeStr() { + return new Date(alarmBeginTime); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.java new file mode 100644 index 0000000..215942a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.java @@ -0,0 +1,29 @@ +package org.springblade.modules.nh.factory.ginlong.dto.alarmlist; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetAlarmListReq extends GetIndexReq { + + private Integer pageNo; + private Integer pageSize; + /** + * 指定 stationId 代表查询此电站下的信息 + */ + private String stationId; + /** + * 指定 alarmDeviceSn 代表查询此逆变器下的报 + * 警信息 + */ + private String alarmDeviceSn; + /** + * 指定查询yyyy-MM-dd以来的报警信息。 + */ + private String alarmBeginTime; + /** + * 指定查询到yyyy-MM-dd的报警信息。 + */ + private String alarmEndTime; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.java new file mode 100644 index 0000000..cd1a83e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.java @@ -0,0 +1,44 @@ +package org.springblade.modules.nh.factory.ginlong.dto.collectorlist; + +import lombok.Data; + +@Data +public class GetCollectorListR { + + /** + * 采集器 id + */ + private String id; + /** + * 电站名称 + */ + private String stationName; + /** + * 电站 Id + */ + private String stationId; + /** + * 采集器 SN + */ + private String sn; + /** + * 采集器名称 + */ + private String name; + /** + * 采集器型号,例:GPRS,WiFi,4G + */ + private String model; + /** + * 逆变器状态: + * 1 = 在线,2 = 离线,3 = 报警 + */ + private String state; + /** + * 更新时间 + */ + private Long dataTimestamp; + + private String rssiLevel; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.java new file mode 100644 index 0000000..d0d83d6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.ginlong.dto.collectorlist; + +import lombok.Data; + +@Data +public class GetCollectorListReq { + + private Integer pageNo; + private Integer pageSize; + private String stationId; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListResp.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListResp.java new file mode 100644 index 0000000..a6826d4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListResp.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.ginlong.dto.collectorlist; + +import org.springblade.modules.nh.factory.ginlong.Page; +import lombok.Data; + +@Data +public class GetCollectorListResp { + + private Page page; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.java new file mode 100644 index 0000000..2f98da7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.java @@ -0,0 +1,25 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterday; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class GetInverterDayR { + + /** + * 逆变器状态: + * 1 = 在线 + * 2 = 离线 + * 3 = 报警 + */ + private String state; + private Long dataTimestamp; + private String timeStr; + @JsonProperty("eToday") + private Double eToday; + @JsonProperty("eTotal") + private Double eTotal; + private Double pac; + private String pacStr; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.java new file mode 100644 index 0000000..d89c35f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.java @@ -0,0 +1,28 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterday; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetInverterDayReq extends GetIndexReq { + + private String id; + /** + * 查询指定逆变器 id 或逆变器 sn 的数据, id + * 和 sn 不能同时为空 + */ + private String sn; + /** + * 电站货币单位,例:CNY + */ + private String money; + /** + * 指定查询某天数据,格式:yyyy-MM-dd + */ + private String time; + /** + * 电站时区,例:8 + */ + private int timeZone; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.java new file mode 100644 index 0000000..74bd08a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetInverterDetailListReq extends GetIndexReq { + + private int pageNo; + private int pageSize; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.java new file mode 100644 index 0000000..8ac0b08 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.java @@ -0,0 +1,371 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class GetInverterDetailR { + private int vendorIndex; + /** + * 逆变器 id + */ + private String id; + /** + * 逆变器 SN + */ + private String sn; + /** + * 电站 id + */ + private String stationId; + /** + * 软件版本 + */ + private String version; + /** + * 逆变器名称 + */ + private String name; + /** + * 产品型号 + */ + private String productModel; + /** + * 电站名称 + */ + private String stationName; + /** + * 采集器id + */ + private String collectorId; + /** + * 更新时间 + */ + private Long dataTimestamp; + @JsonProperty("eToday") + private double eToday; + @JsonProperty("eMonth") + private double eMonth; + @JsonProperty("eYear") + private double eYear; + @JsonProperty("eTotal") + private double eTotal; + @JsonProperty("eTodayStr") + private String eTodayStr; + @JsonProperty("eMonthStr") + private String eMonthStr; + @JsonProperty("eYearStr") + private String eYearStr; + @JsonProperty("eTotalStr") + private String eTotalStr; + /** + * 频率 + */ + private Double fac; + /** + * 电网频率单位 + */ + private String facStr; + /** + * 实时功率 + */ + private Double pac; + /** + * 实时功率单位 + */ + private String pacStr; + /** + * 采集器 SN + */ + private String collectorsn; + /** + * 装机容量 + */ + private Double power; + /** + * 装机容量单位 + */ + private String powerStr; + /** + * 逆变器状态: + * 1 = 在线 + * 2 = 离线 + * 3 = 报警 + */ + private Integer state; + /** + * 采集器状态:1 = 在线,2 = 离线 + */ + private Integer collectorState; + /** + * 电网总有功功率 + */ + private Double pSum; + /** + * 电网总有功功率单位 + */ + private String pSumStr; + /** + * 逆变器Model + */ + private String model; + /** + * 逆变器类型:1 = 并网,2 = 储能机 + */ + private int type; + /** + * 逆变器离线状态: + * 0 = 正常离线 + * 1 = 异常离线 + */ + private int stateExceptionFlag; + /** + * 警告信息故障数据 + */ + private int warningInfoData; + /** + * 满发小时数 + */ + private Double fullHour; + private String fullHourStr; + /** + * 累计满发小时数 + */ + private Double totalFullHour; + /** + * 质保结束时间 + */ + private Long updateShelfEndTime; + + /** + * 功率因素 + */ + private Double powerFactor; + + private Double pow1; + private Double pow2; + private Double pow3; + private Double pow4; + private Double pow5; + private Double pow6; + private Double pow7; + private Double pow8; + private Double pow9; + private Double pow10; + private Double pow11; + private Double pow12; + private Double pow13; + private Double pow14; + private Double pow15; + private Double pow16; + private Double pow17; + private Double pow18; + private Double pow19; + private Double pow20; + private Double pow21; + private Double pow22; + private Double pow23; + private Double pow24; + private Double pow25; + private Double pow26; + private Double pow27; + private Double pow28; + private Double pow29; + private Double pow30; + private Double pow31; + private Double pow32; + + private String pow1Str; + private String pow2Str; + private String pow3Str; + private String pow4Str; + private String pow5Str; + private String pow6Str; + private String pow7Str; + private String pow8Str; + private String pow9Str; + private String pow10Str; + private String pow11Str; + private String pow12Str; + private String pow13Str; + private String pow14Str; + private String pow15Str; + private String pow16Str; + private String pow17Str; + private String pow18Str; + private String pow19Str; + private String pow20Str; + private String pow21Str; + private String pow22Str; + private String pow23Str; + private String pow24Str; + private String pow25Str; + private String pow26Str; + private String pow27Str; + private String pow28Str; + private String pow29Str; + private String pow30Str; + private String pow31Str; + private String pow32Str; + + /** + * 逆变器总直流输入功率 + */ + private Double dcPac; + private String dcPacStr; + private Double inverterTemperature; + /** + * 逆变器视在功率 + */ + private Double apparentPower; + private String apparentPowerStr; + /** + * 逆变器无功功率 + */ + private Double reactivePower; + private String reactivePowerStr; + + @JsonProperty("iAc1") + private Double iAc1; // Number N 交流电流R + @JsonProperty("iAc2") + private Double iAc2; // Number N 交流电流S + @JsonProperty("iAc3") + private Double iAc3; // Number N 交流电流T + + @JsonProperty("uAc1") + private Double uAc1; // Number N 交流电压R + @JsonProperty("uAc2") + private Double uAc2; // Number N 交流电压S + @JsonProperty("uAc3") + private Double uAc3; // Number N 交流电压T + + @JsonProperty("iPv1") + private Double iPv1; + @JsonProperty("iPv2") + private Double iPv2; + @JsonProperty("iPv3") + private Double iPv3; + @JsonProperty("iPv4") + private Double iPv4; + @JsonProperty("iPv5") + private Double iPv5; + @JsonProperty("iPv6") + private Double iPv6; + @JsonProperty("iPv7") + private Double iPv7; + @JsonProperty("iPv8") + private Double iPv8; + @JsonProperty("iPv9") + private Double iPv9; + @JsonProperty("iPv10") + private Double iPv10; + @JsonProperty("iPv11") + private Double iPv11; + @JsonProperty("iPv12") + private Double iPv12; + @JsonProperty("iPv13") + private Double iPv13; + @JsonProperty("iPv14") + private Double iPv14; + @JsonProperty("iPv15") + private Double iPv15; + @JsonProperty("iPv16") + private Double iPv16; + @JsonProperty("iPv17") + private Double iPv17; + @JsonProperty("iPv18") + private Double iPv18; + @JsonProperty("iPv19") + private Double iPv19; + @JsonProperty("iPv20") + private Double iPv20; + @JsonProperty("iPv21") + private Double iPv21; + @JsonProperty("iPv22") + private Double iPv22; + @JsonProperty("iPv23") + private Double iPv23; + @JsonProperty("iPv24") + private Double iPv24; + @JsonProperty("iPv25") + private Double iPv25; + @JsonProperty("iPv26") + private Double iPv26; + @JsonProperty("iPv27") + private Double iPv27; + @JsonProperty("iPv28") + private Double iPv28; + @JsonProperty("iPv29") + private Double iPv29; + @JsonProperty("iPv30") + private Double iPv30; + @JsonProperty("iPv31") + private Double iPv31; + @JsonProperty("iPv32") + private Double iPv32; + + @JsonProperty("uPv1") + private Double uPv1; + @JsonProperty("uPv2") + private Double uPv2; + @JsonProperty("uPv3") + private Double uPv3; + @JsonProperty("uPv4") + private Double uPv4; + @JsonProperty("uPv5") + private Double uPv5; + @JsonProperty("uPv6") + private Double uPv6; + @JsonProperty("uPv7") + private Double uPv7; + @JsonProperty("uPv8") + private Double uPv8; + @JsonProperty("uPv9") + private Double uPv9; + @JsonProperty("uPv10") + private Double uPv10; + @JsonProperty("uPv11") + private Double uPv11; + @JsonProperty("uPv12") + private Double uPv12; + @JsonProperty("uPv13") + private Double uPv13; + @JsonProperty("uPv14") + private Double uPv14; + @JsonProperty("uPv15") + private Double uPv15; + @JsonProperty("uPv16") + private Double uPv16; + @JsonProperty("uPv17") + private Double uPv17; + @JsonProperty("uPv18") + private Double uPv18; + @JsonProperty("uPv19") + private Double uPv19; + @JsonProperty("uPv20") + private Double uPv20; + @JsonProperty("uPv21") + private Double uPv21; + @JsonProperty("uPv22") + private Double uPv22; + @JsonProperty("uPv23") + private Double uPv23; + @JsonProperty("uPv24") + private Double uPv24; + @JsonProperty("uPv25") + private Double uPv25; + @JsonProperty("uPv26") + private Double uPv26; + @JsonProperty("uPv27") + private Double uPv27; + @JsonProperty("uPv28") + private Double uPv28; + @JsonProperty("uPv29") + private Double uPv29; + @JsonProperty("uPv30") + private Double uPv30; + @JsonProperty("uPv31") + private Double uPv31; + @JsonProperty("uPv32") + private Double uPv32; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.java new file mode 100644 index 0000000..343fcd3 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterlist; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetInverterListReq extends GetIndexReq { + + private int pageNo; + private int pageSize; + private String stationId; + private String nmiCode; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListResp.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListResp.java new file mode 100644 index 0000000..9dd7a50 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListResp.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterlist; + +import org.springblade.modules.nh.factory.ginlong.Page; +import lombok.Data; + +@Data +public class GetInverterListResp { + + private InverterStatusVo inverterStatusVo; + private Page page; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.java new file mode 100644 index 0000000..19d44c6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.java @@ -0,0 +1,105 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterlist; + +import lombok.Data; + +@Data +public class GetInverterR { + /** + * 逆变器 id + */ + private String id; + /** + * 逆变器 SN + */ + private String sn; + /** + * 电站 id + */ + private String stationId; + /** + * 更新时间 + */ + private Long dataTimestamp; + /** + * 采集器 SN + */ + private String collectorSn; + /** + * 逆变器类型 + */ + private String productModel; + /** + * 电站名称 + */ + private String stationName; + /** + * 电站地址 + */ + private String addr; + /** + * 装机容量 + */ + private double power; + /** + * 装机容量单位 + */ + private String powerStr; + /** + * 功率 + */ + private double pac; + /** + * 功率单位 + */ + private String pacStr; + /** + * 逆变器状态: + * 1 = 在线 + * 2 = 离线 + * 3 = 报警 + */ + private Integer state; + /** + * 逆变器离线状态: + * 0 = 正常离线 + * 1 = 异常离线 + */ + private int stateExceptionFlag; + /** + * 当日能量 + */ + private double etoday; + /** + * 当日发电量原始值 + */ + private double etoday1; + /** + * 当日能量单位 + */ + private String etodayStr; + /** + * 当日能量 + */ + private double etotal; + /** + * 累计发电量原始值 + */ + private double etotal1; + /** + * 满发小时数 + */ + private double fullHour; + /** + * 累计满发小时数 + */ + private double totalFullHour; + /** + * 总能量单位 + */ + private String etotalStr; + /** + * 质保结束时间 + */ + private Long updateShelfEndTime; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.java new file mode 100644 index 0000000..fa2aa00 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.ginlong.dto.inverterlist; + +import lombok.Data; + +@Data +public class InverterStatusVo { + private Long all; + private Long normal; + private Long fault; + private Long offline; + private Long mppt; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.java new file mode 100644 index 0000000..8d91279 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.java @@ -0,0 +1,15 @@ +package org.springblade.modules.nh.factory.ginlong.dto.invertermonth; + +import lombok.Data; + +@Data +public class GetInverterMonthR { + private Double energy; + private String energyStr; + /** + * 时间戳,例 1564088700000 + */ + private Long date; + + private String dateStr; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.java new file mode 100644 index 0000000..86cad5d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.ginlong.dto.invertermonth; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetInverterMonthReq extends GetIndexReq { + + /** + * 逆变器 id + */ + private String id; + /** + * 逆变器 sn + */ + private String sn; + /** + * 电站货币单位,例:CNY + */ + private String money; + /** + * 时间,格式 yyyy-MM + */ + private String month; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.java new file mode 100644 index 0000000..c88a6ff --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationday; + +import lombok.Data; + +@Data +public class GetStationDayR { + + private Double power; + private String powerStr; + private Double produceEnergy; + private Long time; + private String timeStr; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.java new file mode 100644 index 0000000..342c996 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationday; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetStationDayReq extends GetIndexReq { + + /** + * 电站 id + */ + private String id; + /** + * 电站货币单位,例:CNY + */ + private String money; + /** + * 指定查询某天数据,格式:yyyy-MM-dd + */ + private String time; + /** + * 电站时区,例:8 + */ + private int timeZone; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.java new file mode 100644 index 0000000..b038b90 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.java @@ -0,0 +1,21 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationdayenergylist; + +import lombok.Data; + +@Data +public class GetStationDayEnergyListR { + + /** + * 电站id + */ + private String id; + /** + * 发电量 + */ + private Double energy; + /** + * 发电量单位 + */ + private String energyStr; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.java new file mode 100644 index 0000000..94b94af --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.java @@ -0,0 +1,20 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationdayenergylist; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetStationDayEnergyListReq extends GetIndexReq { + + private int pageNo; + /** + * 指定每页返回的数量。默认值 20,最大值100。 + */ + private int pageSize; + /** + * 指定查询某天数据,格式:yyyy-MM-dd + */ + private String time; + private String stationIds; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.java new file mode 100644 index 0000000..f38ffca --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.java @@ -0,0 +1,23 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationmonth; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetStationMonthR { + + private Double energy; + private String energyStr; + /** + * 时间戳,例 1564088700000 + */ + private Long date; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + public Date getDateStr() { + return new Date(this.date); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.java new file mode 100644 index 0000000..9bb51be --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationmonth; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetStationMonthReq extends GetIndexReq { + + /** + * 电站 id + */ + private String id; + /** + * 电站货币单位,例:CNY + */ + private String money; + /** + * 时间,格式 yyyy-MM + */ + private String month; + /** + * 电站时区,例:8 + */ + private int timeZone; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.java new file mode 100644 index 0000000..d83cdf0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.java @@ -0,0 +1,23 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationyear; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetStationYearR { + + private Double energy; + private String energyStr; + /** + * 时间戳,例 1564088700000 + */ + private Long date; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + public Date getDateStr() { + return new Date(this.date); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.java new file mode 100644 index 0000000..02ada7b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.ginlong.dto.stationyear; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetStationYearReq extends GetIndexReq { + + /** + * 电站 id + */ + private String id; + /** + * 电站货币单位,例:CNY + */ + private String money; + /** + * 时间,格式 yyyy + */ + private String year; + /** + * 电站时区,例:8 + */ + private int timeZone; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.java new file mode 100644 index 0000000..8a9a56c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.ginlong.dto.userstationlist; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetStationListReq extends GetIndexReq { + + private int pageNo; + private int pageSize; + private String nmiCode; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.java new file mode 100644 index 0000000..7d8a4eb --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.ginlong.dto.userstationlist; + +import org.springblade.modules.nh.factory.ginlong.Page; +import lombok.Data; + +@Data +public class GetStationListResp { + + private StationStatusVo stationStatusVo; + private Page page; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.java new file mode 100644 index 0000000..48f875c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.java @@ -0,0 +1,109 @@ +package org.springblade.modules.nh.factory.ginlong.dto.userstationlist; + +import lombok.Data; + +@Data +public class GetStationR { + private String id; + /** + * 采集时间戳,单位毫秒 + */ + private Long dataTimestamp; + private String dataTimestampStr; + /** + * 满发小时数 + */ + private Double fullHour; + /** + * 电站名称 + */ + private String stationName; + /** + * 业主 Id + */ + private String userId; + /** + * 业主姓名 + */ + private String userName; + /** + * 手机号 + */ + private String userMobile; + /** + * 电站短 ID + */ + private String sno; + /** + * 电站地址 + */ + private String addr; + /** + * 电站状态:1 = 在线,2 = 离线,3 = 报警 + */ + private int state; + /** + * 功率 + */ + private double power; + /** + * 功率单位,例如kw + */ + private String powerStr; + /** + * 装机容量 + */ + private double capacity; + /** + * 装机容量不进位 + */ + private double capacity1; + /** + * 装机容量单位,单位为kwp + */ + private String capacityStr; + /** + * 当日能量 + */ + private double dayEnergy; + /** + * 当日能量单位 + */ + private String dayEnergyStr; + /** + * 当月能量 + */ + private Double monthEnergy; + /** + * 当月能量单位 + */ + private String monthEnergyStr; + /** + * 当年能量 + */ + private Double yearEnergy; + /** + * 当年能量单位 + */ + private String yearEnergyStr; + /** + * 总能量 + */ + private double allEnergy; + /** + * 总能量单位 + */ + private String allEnergyStr; + private String nmiCode; + + /** + * 首次上电时间 + */ + private Long fisPowerTime; + /** + * 首次发电时间 + */ + private Long fisGenerateTime; + + private Integer vendorIndex; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.java new file mode 100644 index 0000000..658e88b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.ginlong.dto.userstationlist; + +import lombok.Data; + +@Data +public class StationStatusVo { + private Integer all; + private Integer normal; + private Integer fault; + private Integer offline; + private Integer building; + private Long mppt; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/CollectorListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/CollectorListPageAction.java new file mode 100644 index 0000000..9c41fb7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/CollectorListPageAction.java @@ -0,0 +1,48 @@ +//package org.springblade.modules.nh.factory.ginlong.scheduler; +// +//import org.springblade.modules.nh.factory.common.PageAction; +//import org.springblade.modules.nh.factory.common.PageInfo; +//import org.springblade.modules.nh.factory.ginlong.GinlongApi; +//import org.springblade.modules.nh.factory.ginlong.IRet; +//import org.springblade.modules.nh.factory.ginlong.Page; +//import org.springblade.modules.nh.factory.ginlong.dto.collectorlist.GetCollectorListR; +//import org.springblade.modules.nh.factory.ginlong.dto.collectorlist.GetCollectorListResp; +//import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailListReq; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.stereotype.Service; +// +//import java.io.IOException; +//import java.util.Map; +// +//@Service +//public class CollectorListPageAction extends PageAction { +// +// @Autowired +// GinlongApi ginlongApi; +// @Autowired +// MonitorCollectorInfoServiceImpl collectorInfoService; +// +// @Override +// public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { +// GetInverterDetailListReq req = new GetInverterDetailListReq(); +// req.setPageSize(pageSize); +// req.setPageNo(page); +// IRet resp = ginlongApi.collectorList(req); +// if (isOk(resp.getSuccess()) && resp.getData() != null && resp.getData().getPage() != null) { +// Page pageData = resp.getData().getPage(); +// if (pageData != null && pageData.getRecords() != null) { +// PageInfo ret = new PageInfo<>(); +// ret.setList(pageData.getRecords()); +// ret.setData(resp.getData()); +// ret.setPages(pageData.getPages()); +// return ret; +// } +// } +// return null; +// } +// +// @Override +// public void handlePageInfo(PageInfo pageInfo, Map ctx) { +// collectorInfoService.syncCollectorInfo(pageInfo); +// } +//} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.java new file mode 100644 index 0000000..7ca3116 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.java @@ -0,0 +1,76 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.Page; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListReq; +import lombok.extern.slf4j.Slf4j; +import org.springblade.modules.nh.service.IAlarmCodeService; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class GinlongAlarmListPageAction extends PageAction, GetAlarmListR> { + + @Autowired + GinlongApi ginlongApi; + @Autowired + IAlarmInfoService monitorAlarmInfoService; + @Autowired + IAlarmCodeService monitorFaultCodeService; + + @Override + public PageInfo, GetAlarmListR> pageData(int page, int pageSize, Map ctx) throws IOException { + Date sevenDaysAgo = DateUtil.plusDays(new Date(), -7); + GetAlarmListReq req = new GetAlarmListReq(); + req.setPageNo(page); + req.setPageSize(pageSize); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + req.setAlarmBeginTime(DateUtil.format(sevenDaysAgo, "yyyy-MM-dd")); + IRet> resp = ginlongApi.alarmList(req); + if (!isOk(resp.getSuccess()) || resp.getData() == null) { + return null; + } + List records = resp.getData().getRecords(); + if (CollectionUtils.isEmpty(records)) { + return null; + } + PageInfo, GetAlarmListR> ret = new PageInfo<>(); + ret.setPages(resp.getData().getPages()); + ret.setData(resp.getData()); + ret.setList(resp.getData().getRecords()); + return ret; + } + + @Override + public void handlePageInfo(PageInfo, GetAlarmListR> pageInfo, Map ctx) { + List list = pageInfo.getList(); + if (!CollectionUtils.isEmpty(list)) { + try { + monitorAlarmInfoService.syncAlarmInfo(list, NhConstants.SYS_TYPE_GINLONG); + } catch (Exception ex) { + log.error("sync alarm list error", ex); + } + try { + monitorFaultCodeService.syncFaultCode(NhConstants.SYS_TYPE_GINLONG, list); + } catch (Exception ex) { + log.error("sync fault code error", ex); + } + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.java new file mode 100644 index 0000000..1e5aa9b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.java @@ -0,0 +1,72 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.inverterday.GetInverterDayR; +import org.springblade.modules.nh.factory.ginlong.dto.inverterday.GetInverterDayReq; +import lombok.extern.slf4j.Slf4j; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +@Slf4j +@Service +public class GinlongInverterDayEachRunner extends EachRunner { + + @Autowired + GinlongApi ginlongApi; + + @Autowired + IMonitorInverterStatService monitorInverterStatService; + + @Autowired + IMonitorInverterDailyStatService monitorInverterDailyStatService; + + /** + * 逆变器按时统计,每天凌晨2点统计更新昨天的数据 + */ + @Override + public void handle(String sn, Map ctx) throws IOException { + Date yesterday = DateUtil.plusDays(new Date(), -1); + String yesterdayStr = DateUtil.format(yesterday, "yyyy-MM-dd"); + + GetInverterDayReq req = new GetInverterDayReq(); + req.setSn(sn); + req.setMoney("CNY"); + req.setTime(yesterdayStr); + req.setTimeZone(8); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + IRet> ret = ginlongApi.inverterDay(req); + if (!Objects.equals(ret.getCode(), "0")) { + log.info("get inverter day error, msg :{}", ret.getMsg()); + return; + } + List data = ret.getData(); + if (CollectionUtils.isEmpty(data)) { + return; + } + List list = Lists.newArrayList(); + for (GetInverterDayR datum : data) { + InverterHourlyEnergyDTO dto = new InverterHourlyEnergyDTO(); + dto.setSyncTime(new Date(datum.getDataTimestamp())); + dto.setSn(sn); + dto.setEnergy(datum.getEToday()); // 单位为kw + dto.setJlgl(UnitUtil.convPower(datum.getPac(), datum.getPacStr())); + list.add(dto); + } + monitorInverterDailyStatService.syncHourlyData(NhConstants.SYS_TYPE_GINLONG, list); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.java new file mode 100644 index 0000000..f018cb9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.java @@ -0,0 +1,75 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.Page; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailListReq; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class GinlongInverterDetailListPageAction extends PageAction, GetInverterDetailR> { + + @Autowired + GinlongApi ginlongApi; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + @Autowired + IMonitorInverterDailyStatService monitorInverterDailyStatService; + + @Override + public PageInfo, GetInverterDetailR> pageData(int page, int pageSize, Map ctx) throws IOException { + GetInverterDetailListReq r = new GetInverterDetailListReq(); + r.setPageNo(page); + r.setPageSize(pageSize); + r.setIndex(CommonUtil.getVendorIndex(ctx)); + IRet> resp = ginlongApi.inverterDetailList(r); + if (isOk(resp.getSuccess())) { + Page data = resp.getData(); + if (data != null && !CollectionUtils.isEmpty(resp.getData().getRecords())) { + PageInfo, GetInverterDetailR> ret = new PageInfo<>(); + ret.setData(data); + ret.setPages(data.getPages()); + ret.setList(resp.getData().getRecords()); + return ret; + } + } + return null; + } + + @Override + public void handlePageInfo(PageInfo, GetInverterDetailR> pageInfo, Map ctx) { + List list = pageInfo.getList(); + list.forEach(item->{ + item.setVendorIndex(CommonUtil.getVendorIndex(ctx)); + }); + if (!CollectionUtils.isEmpty(list)) { + try { + monitorInverterStatService.syncInverterDetails(list, NhConstants.SYS_TYPE_GINLONG, new HashSet<>()); + } catch (Exception ex) { + log.error("sync inverter details error", ex); + } + try { + monitorInverterDailyStatService.syncGinlongInverterForNowHour(list); + } catch (Exception ex) { + log.error("sync inverter daily error", ex); + } + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler.java new file mode 100644 index 0000000..d032cdc --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler.java @@ -0,0 +1,160 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.TaskControl; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +@EnableScheduling +@Component +@Slf4j +public class GinlongScheduler { + + private final int indexCount = 2; + @Autowired + GinlongApi ginlongApi; + @Autowired + GinlongUserStationListPageAction ginlongUserStationListPageAction; + @Autowired + GinlongInverterDetailListPageAction ginlongInverterDetailListPageAction; + @Autowired + IMonitorEntryStatService monitorEntryStatService; + @Autowired + GinlongStationMonthEachRunner ginlongStationMonthEachRunner; + @Autowired + GinlongAlarmListPageAction ginlongAlarmListPageAction; + @Autowired + GinlongInverterDayEachRunner ginlongInverterDayEachRunner; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + @Autowired + GinlongStationYearEachRunner ginlongStationYearEachRunner; + + /** + * 每五分钟统计一次 + * checked + */ + @Scheduled(cron = "0 */13 * * * ?") + public void syncUserStationList() { + System.out.println("获取用户电站列表The current time is: " + new Date()); + TaskControl.runTask("ginlong:syncUserStationList", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + ginlongUserStationListPageAction.start("获取用户电站列表", 100, CommonUtil.getCtx(i),1); + } + } + }); + } + + /** + * 每五分钟统计一次 + * checked + */ + @Scheduled(cron = "10 */15 * * * ?") + public void syncInverterDetailList() { + TaskControl.runTask("ginlong:syncInverterDetailList", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + ginlongInverterDetailListPageAction.start("获取逆变器详情列表", 100, CommonUtil.getCtx(i),1); + } + } + }); + } + + /** + * 每天凌晨统计一次 + * checked + */ + @Scheduled(cron = "0 0 1 * * ?") + public void syncStationMonthData() { + TaskControl.runTask("ginlong:syncStationMonthData", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + List stationIds = monitorEntryStatService.getStationIds("0",i); + ginlongStationMonthEachRunner.start(stationIds, "获取单个电站某月的日数据", 2L, CommonUtil.getCtx(i)); + } + } + }); + } + + /** + * 每天凌晨统计一次 + * checked + */ + @Scheduled(cron = "0 11 1 * * ?") + public void syncStationYearData() { + TaskControl.runTask("ginlong:syncStationYearData", new Runnable() { + @Override + public void run() { + for (int i = 1; i <= indexCount; i++) { + List stationIds = monitorEntryStatService.getStationIds("0",i); + ginlongStationYearEachRunner.start(stationIds, "获取单个电站某年的月数据", 1L, CommonUtil.getCtx(i)); + } + } + }); + } + + /** + * 每10分钟统计 + * checked + */ +// @Scheduled(cron = "20 */10 * * * ?") +// public void syncCollectorList() { +// TaskControl.runTask("ginlong:syncCollectorList", new Runnable() { +// @Override +// public void run() { +// collectorListPageAction.start("获取获取账号下采集器列表", 100, 1); +// } +// }); +// } + + /** + * 每隔 5分钟同步最近7天的告警信息 + * checked + */ + @Scheduled(cron = "0 */10 * * * ?") + public void syncAlarmList() { + TaskControl.runTask("ginlong:syncAlarmList", new Runnable() { + @Override + public void run() { + for (int i = 1; i <= indexCount; i++) { + ginlongAlarmListPageAction.start("获取账号下设备报警列表", 100, CommonUtil.getCtx(i),1); + } + } + }); + } + + /** + * 每天凌晨2点统计一次 + * checked + */ + @Scheduled(cron = "0 3 2 * * ?") + public void syncInverterDay() { + TaskControl.runTask("ginlong:syncInverterDay", new Runnable() { + @Override + public void run() { + for (int i = 1; i <= indexCount; i++) { + List inverterSns = monitorInverterStatService.getInverterSns("0",i); + Map ctx = CommonUtil.getCtx(i); + ctx.put("baseDate", DateUtil.format(new Date(), "yyyy-MM-dd")); + ginlongInverterDayEachRunner.start(inverterSns, "获取单台逆变器某日的实时数据", 1L, ctx); + } + } + }); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.java new file mode 100644 index 0000000..c6b6ee1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.java @@ -0,0 +1,82 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthR; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthReq; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasR; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasSiteData; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class GinlongStationFisGenDateEachRunner extends EachRunner { + + private final GinlongApi ginlongApi; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryYearStatService yearStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId, CommonUtil.getVendorIndex(ctx)); + } + + public void handleData(String stationId,int index) throws IOException { + String month = yearStatService.getFirstMonth(stationId); + if(month==null){ + return; + } + GetStationMonthReq req = new GetStationMonthReq(); + req.setId(stationId); + req.setMoney("CNY"); + req.setMonth(month); + req.setTimeZone(8); + req.setIndex(index); + IRet> ret = ginlongApi.stationMonth(req); + if (ret!=null && Objects.equals(ret.getCode(), "0")) { + List dataList = ret.getData(); + if (CollectionUtils.isEmpty(dataList)) { + return; + } + Date firstDate = null; + for (GetStationMonthR getStationMonthR : dataList) { + if(getStationMonthR.getEnergy()>0){ + Date date = new Date(getStationMonthR.getDate()); + if(firstDate==null){ + firstDate = date; + }else{ + if(date.before(firstDate)){ + firstDate = date; + } + } + } + } + + if(firstDate!=null){ + monitorEntryStatService.updateFisDate(stationId,DateUtil.formatDate(firstDate)); + } + } + + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.java new file mode 100644 index 0000000..edd7a2b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.java @@ -0,0 +1,81 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthR; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthReq; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 不同于goodwe, ginlong 日发电量统计是以月为维度,也就是说一次性同步一个月内每天的发电量。 + * goodwe 仅同步最近3天的发电量。 + * 日发电量规则:数据延迟一天,也就是说要看今天的发电量需要等到明天。 + */ +@Service +public class GinlongStationMonthEachRunner extends EachRunner { + + @Autowired + GinlongApi ginlongApi; + @Autowired + IMonitorEntryMonthStatService monitorEntryMonthStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + if(ctx!=null && ctx.containsKey("month")){ + handleData((String) ctx.get("month"), stationId,ctx); + }else{ + Date today = new Date(); + if (CommonUtil.monthBeginLessThanDays(1, today)) { + Date lastMonth = DateUtil.minusMonths(today, 1); + handleData(DateUtil.format(lastMonth,"yyyy-MM"), stationId,ctx); + } + handleData(DateUtil.format(today,"yyyy-MM"), stationId,ctx); + } + + } + + public void handleData(String month, String stationId,Map ctx) throws IOException { + GetStationMonthReq req = new GetStationMonthReq(); + req.setId(stationId); + req.setMoney("CNY"); + req.setMonth(month); + req.setTimeZone(8); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + IRet> ret = ginlongApi.stationMonth(req); + if (Objects.equals(ret.getCode(), "0")) { + List dataList = ret.getData(); + if (CollectionUtils.isEmpty(dataList)) { + return; + } + List dayEnergyDTOList = new ArrayList<>(); + for (GetStationMonthR getStationMonthR : dataList) { + Date date = new Date(getStationMonthR.getDate()); + if (DateUtils.isSameDay(date, new Date())) { + // 不使用当天的发电量 + continue; + } + DayEnergyDTO dayEnergyDTO = new DayEnergyDTO(); + dayEnergyDTO.setStationId(stationId); + dayEnergyDTO.setUnit(getStationMonthR.getEnergyStr()); + dayEnergyDTO.setValue(getStationMonthR.getEnergy()); + dayEnergyDTO.setDate(DateUtil.format(date, "yyyy-MM-dd")); + dayEnergyDTOList.add(dayEnergyDTO); + } + monitorEntryMonthStatService.syncMonthStatData(dayEnergyDTOList); + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.java new file mode 100644 index 0000000..00875d6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.java @@ -0,0 +1,83 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.stationyear.GetStationYearR; +import org.springblade.modules.nh.factory.ginlong.dto.stationyear.GetStationYearReq; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; + +@Service +public class GinlongStationYearEachRunner extends EachRunner { + + @Autowired + GinlongApi ginlongApi; + @Autowired + IMonitorEntryYearStatService monitorEntryYearStatService; + + /** + * 每天凌晨一点统计当年的每个月的发电量 + */ + @Override + public void handle(String stationId, Map ctx) throws IOException { + final Date today = new Date(); + DateFormat df = new SimpleDateFormat("yyyy"); + String thisYear = df.format(today); + handleData(thisYear, stationId,ctx); + if (CommonUtil.yearBeginLessThanDays(3, today)) { + sleepSilently(); + Date lastYear = DateUtils.addYears(today, -1); + handleData(df.format(lastYear), stationId,ctx); + } + } + + private static void sleepSilently() { + try { + Thread.sleep(2000); + } catch (InterruptedException e) { + // ignore + } + } + + public void handleData(String year, String stationId,Map ctx) throws IOException { + GetStationYearReq req = new GetStationYearReq(); + req.setId(stationId); + req.setMoney("CNY"); + req.setYear(year); + req.setTimeZone(8); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + IRet> ret = ginlongApi.stationYear(req); + if (Objects.equals(ret.getCode(), "0")) { + List dataList = ret.getData(); + if (CollectionUtils.isEmpty(dataList)) { + return; + } + List monthEnergyDTOList = new ArrayList<>(); + DateFormat df = new SimpleDateFormat("yyyy-MM"); + for (GetStationYearR s : dataList) { + Date date = new Date(s.getDate()); + MonthEnergyDTO monthEnergyDTO = new MonthEnergyDTO(); + monthEnergyDTO.setStationId(stationId); + monthEnergyDTO.setUnit(s.getEnergyStr()); + monthEnergyDTO.setValue(s.getEnergy()); + monthEnergyDTO.setMonth(df.format(date)); + monthEnergyDTO.setSysType(NhConstants.SYS_TYPE_GINLONG); + monthEnergyDTOList.add(monthEnergyDTO); + } + monitorEntryYearStatService.syncYearStatData(monthEnergyDTOList); + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.java new file mode 100644 index 0000000..2a8dfd8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.java @@ -0,0 +1,89 @@ +package org.springblade.modules.nh.factory.ginlong.scheduler; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.Page; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationListReq; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationListResp; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.StationStatusVo; +import org.springblade.modules.nh.service.IMonitorEntryDailyStatService; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.impl.MonitorEntryStatServiceImpl; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.Map; + +@Slf4j +@Service +@AllArgsConstructor +public class GinlongUserStationListPageAction extends PageAction { + + private final GinlongApi ginlongApi; +// private final IMonitorEntryOverviewStatService monitorEntryOverviewStatService; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryDailyStatService monitorEntryDailyStatService; + private final IMonitorEntryMonthStatService monitorEntryMonthStatService; + + @Override + public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { + PageInfo ret = new PageInfo<>(); + GetStationListReq req = new GetStationListReq(); + req.setPageNo(page); + req.setPageSize(100); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + IRet resp = ginlongApi.userStationList(req); + if (isOk(resp.getSuccess()) && resp.getData() != null) { + Page pagedData = resp.getData().getPage(); + ret.setData(resp.getData()); + ret.setPages(pagedData.getPages()); + ret.setList(pagedData.getRecords()); + return ret; + } + return null; + } + + @Override + public void handlePageInfo(PageInfo pageInfo, Map ctx) { + GetStationListResp data = pageInfo.getData(); + if (data == null) { + return; + } + StationStatusVo stationStatusVo = data.getStationStatusVo(); + handleEntryOverviewInfo(stationStatusVo); + pageInfo.getList().forEach(item->{ + item.setVendorIndex(CommonUtil.getVendorIndex(ctx)); + }); + if (!CollectionUtils.isEmpty(pageInfo.getList())) { + try { + monitorEntryStatService.syncEntryStat(pageInfo.getList(), NhConstants.SYS_TYPE_GINLONG); + } catch (Exception ex) { + log.error("sync entry stat error", ex); + } + try { + monitorEntryDailyStatService.syncEntryDailyStat(pageInfo.getList(), NhConstants.SYS_TYPE_GINLONG); + } catch (Exception ex) { + log.error("sync entry daily stat error", ex); + } + } + } + + private void handleEntryOverviewInfo(StationStatusVo stationStatusVo) { + if (stationStatusVo != null) { + try { +// monitorEntryOverviewStatService.updateMonitorEntryOverviewStat(stationStatusVo); + } catch (Exception ex) { + log.info("handle update monitor entry overview stat error", ex); + } + } + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApi.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApi.java new file mode 100644 index 0000000..c7e6cad --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApi.java @@ -0,0 +1,186 @@ +package org.springblade.modules.nh.factory.goodwe; + +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springblade.modules.nh.factory.common.TimeWindow; +import org.springblade.modules.nh.factory.goodwe.config.GoodweApiRestTemplate; +import org.springblade.modules.nh.factory.goodwe.dto.getInventersdatas.GetInventersDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getInventersdatas.GetInventersDatasReq; +import org.springblade.modules.nh.factory.goodwe.dto.getInverterpacbyday.GetInverterPacByDayR; +import org.springblade.modules.nh.factory.goodwe.dto.getInverterpacbyday.GetInverterPacByDayReq; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.GetInventersMoreDetailInfoBySnReq; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.GetInventersMoreDetailInfoBySnResp; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn.GetInverterDataByColumnReq; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn.GetInverterDataByColumnResp; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterpower.GetInverterPowerR; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterpower.GetInverterPowerReq; +import org.springblade.modules.nh.factory.goodwe.dto.getplantspowers.GetPlantsPowersData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantspowers.GetPlantsPowersReq; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReq; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpacbyday.GetPowerStationPacByDayR; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpacbyday.GetPowerStationPacByDayReq; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpower.GetPowerStationPowerR; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpower.GetPowerStationPowerReq; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition.GetPowerStationWariningInfoByMultiConditionData; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition.GetPowerStationWariningInfoByMultiConditionReq; +import org.springblade.modules.nh.factory.goodwe.dto.gettoken.GetTokenR; +import org.springblade.modules.nh.factory.goodwe.dto.gettoken.GetTokenReq; +import org.springblade.modules.nh.factory.goodwe.dto.queryinventers.QueryInventersData; +import org.springblade.modules.nh.factory.goodwe.dto.queryinventers.QueryInventersReq; +import org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorData; +import org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorReq; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +@AllArgsConstructor +public class GoodweApi { + + private final GoodweApiRestTemplate goodweApiRestTemplate; + + /** + * 通过sn获取逆变器详情信息 + */ + public GoodweRet getInventersDetailBySn(int index,String sn) { + if (StringUtils.isEmpty(sn)) { + return null; + } + Map req = Maps.newHashMap(); + String url = "http://openapi.sems.com.cn/api/OpenApi/GetInventersMoreDetailInfoBySn?sn=" + sn; + return goodweApiRestTemplate.get(index,url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 查询当前登录者当前组织和下级组织电站,无设备电站将被过滤. + */ + public GoodweRet getToken(GetTokenReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetToken"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 查询当前登录者当前组织和下级组织电站,无设备电站将被过滤. + */ + public GoodweRet queryPowerStationMonitor(QueryPowerStationMonitorReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/QueryPowerStationMonitor"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 根据电站 id 获取电站日发电量, + */ + public GoodweRet> getPowerStationPower(GetPowerStationPowerReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetPowerStationPower"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 根据电站 id 和日期获取日功率数据。 + */ + public GoodweRet> getPowerStationPacByDay(GetPowerStationPacByDayReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetPowerStationPacByDay"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 根据电站 id 集合批量获取电站指定日期各时间点的功率值。, + */ + public GoodweRet getPlantsPowers(GetPlantsPowersReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetPlantsPowers"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 批量获取电站日月年发电量,当前接口主要用于指定日期的查询。, + */ + public GoodweRet getPlantsStaticDatas(GetPlantsStaticDatasReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetPlantsStaticDatas"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 批量获取电站日期范围内日月年发电量,当前接口主要用于时间段数据查询。,时间范围不能超过一个月 + */ + public GoodweRet getPlantsStaticDatas(GetPlantsStaticDatasReqByTime req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetPlantsStaticDatas"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 电站设备列表 + */ + public GoodweRet queryInventers(QueryInventersReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/QueryInventers"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 获取当前用户组织自有电站的告警信息,最多查询 60 天内的告警信息 + */ + public GoodweRet getPowerStationWariningInfoByMultiCondition(GetPowerStationWariningInfoByMultiConditionReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetPowerStationWariningInfoByMultiCondition"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 根据指定逆变器序列号集合获取逆变器实时数据,该接口允许最大逆变器数量为 50. + * 注意:批量获取不支持多线程并发获取. + */ + public GoodweRet getInventersDatas(GetInventersDatasReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetInventersDatas?"; + List sns = req.getSns(); + List params = new ArrayList<>(); + for (String sn : sns) { + params.add("sns[]=" + sn); + } + url += StringUtils.join(params, "&"); + return goodweApiRestTemplate.get(req.getIndex(),url, new HashMap<>(), new ParameterizedTypeReference>() { + }); + } + + /** + * 根据 sn 获取指定时间的发电量 + */ + public GoodweRet> getInverterPower(GetInverterPowerReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetInverterPower"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } + + /** + * 根据电站 sn 和选定类型获取电站在某个时间的曲线报表数据。 + */ + public GoodweRet getInverterDataByColumn(GetInverterDataByColumnReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetInverterDataByColumn"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>() { + }); + } + + /** + * 根据设备 sn 获取某天的功率曲线。 + */ + public GoodweRet> getInverterPacByDay(GetInverterPacByDayReq req) { + String url = "http://openapi.sems.com.cn/api/OpenApi/GetInverterPacByDay"; + return goodweApiRestTemplate.postJson(req.getIndex(),url, req, new ParameterizedTypeReference>>() { + }); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApiTestController.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApiTestController.java new file mode 100644 index 0000000..0695b36 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweApiTestController.java @@ -0,0 +1,158 @@ +//package org.springblade.modules.nh.factory.goodwe; +// +//import com.zhongling.common.constant.Constants; +//import com.zhongling.common.utils.DateUtils; +//import com.zhongling.project.monitoring.factory.goodwe.dto.getInventersdatas.GetInventersDatasReq; +//import com.zhongling.project.monitoring.factory.goodwe.dto.getInverterpacbyday.GetInverterPacByDayReq; +//import com.zhongling.project.monitoring.factory.goodwe.dto.getinverterdatabycolumn.GetInverterDataByColumnReq; +//import com.zhongling.project.monitoring.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReq; +//import com.zhongling.project.monitoring.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +//import com.zhongling.project.monitoring.factory.goodwe.dto.getpowerstationwarininginfobymulticondition.GetPowerStationWariningInfoByMultiConditionReq; +//import com.zhongling.project.monitoring.factory.goodwe.dto.gettoken.GetTokenR; +//import com.zhongling.project.monitoring.factory.goodwe.dto.gettoken.GetTokenReq; +//import com.zhongling.project.monitoring.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorData; +//import com.zhongling.project.monitoring.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorReq; +//import com.zhongling.project.monitoring.factory.goodwe.scheduler.*; +//import com.zhongling.project.monitoring.service.impl.MonitorEntryStatServiceImpl; +//import com.zhongling.project.monitoring.service.impl.MonitorInverterStatServiceImpl; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.collections4.ListUtils; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +// +//import java.util.Arrays; +//import java.util.Calendar; +//import java.util.Date; +//import java.util.List; +// +//@RestController +//@RequestMapping("/good") +//@Slf4j +//public class GoodweApiTestController { +// +// @Autowired +// GoodweApi goodweApi; +// @Autowired +// MonitorEntryStatServiceImpl monitorEntryStatService; +// @Autowired +// GoodweStationAlarmEachRunner goodweStationAlarmEachRunner; +// @Autowired +// GoodweStationMonthEachRunner goodweStationMonthEachRunner; +// @Autowired +// GoodweStationYearEachRunner goodweStationYearEachRunner; +// @Autowired +// MonitorInverterStatServiceImpl monitorInverterStatService; +// @Autowired +// GoodweInverterDayEachRunner goodweInverterDayEachRunner; +// @Autowired +// GoodweInverterPacByDayEachRunner goodweInverterPacByDayEachRunner; +// +// @GetMapping(value = "getToken") +// public Object getToken() { +// GetTokenReq req = new GetTokenReq(); +// req.setAccount("18117590621"); // 测试用 +// req.setPwd("17590621"); +//// req.setAccount("15362141430"); // 后续能辉生产用 +//// req.setPwd("123456 "); +// GoodweRet token = goodweApi.getToken(req); +// return token.getData(); +// } +// +// @GetMapping(value = "queryPowerStationMonitor") +// public Object queryPowerStationMonitor() { +// QueryPowerStationMonitorReq req = new QueryPowerStationMonitorReq(); +// req.setPageSize(100); +// req.setPageIndex(1); +// GoodweRet ret = goodweApi.queryPowerStationMonitor(req); +// return ret; +// } +// +// @GetMapping(value = "syncAlarmList") +// public void syncAlarmList() { +// List stationIds = monitorEntryStatService.getStationIds(Constants.SYS_TYPE_GOODWE); +// goodweStationAlarmEachRunner.start(stationIds, "获取账号下设备报警列表", 1L, null); +// } +// +// @GetMapping(value = "getPlantsStaticDatas") +// public Object getPlantsStaticDatas() { +// GetPlantsStaticDatasReq req = new GetPlantsStaticDatasReq(); +// req.setIds(Arrays.asList("43408dfc-9eba-433e-8abd-c0209eedd6d5")); +// req.setDate(DateUtils.truncate(new Date(), Calendar.DATE).getTime()); +// req.setPeriod(1); +// return goodweApi.getPlantsStaticDatas(req); +// } +// +// @GetMapping(value = "getPlantsStaticDatas2") +// public Object getPlantsStaticDatas2() { +// GetPlantsStaticDatasReqByTime req = new GetPlantsStaticDatasReqByTime(); +// req.setIds(Arrays.asList("43408dfc-9eba-433e-8abd-c0209eedd6d5")); +// req.setStartdt(DateUtils.truncate(DateUtils.addDays(new Date(), -30), Calendar.DATE).getTime()); +// req.setEnddt(DateUtils.truncate(new Date(), Calendar.DATE).getTime()); +// req.setPeriod(1); +// return goodweApi.getPlantsStaticDatas(req); +// } +// +// @GetMapping(value = "statByYear") +// public Object statByYear() { +// GetPlantsStaticDatasReqByTime req = new GetPlantsStaticDatasReqByTime(); +// req.setIds(Arrays.asList("43408dfc-9eba-433e-8abd-c0209eedd6d5")); +// req.setStartdt(DateUtils.truncate(DateUtils.addMonths(new Date(), -12), Calendar.MONTH).getTime()); +// req.setEnddt(DateUtils.truncate(new Date(), Calendar.MONTH).getTime()); +// req.setPeriod(2); +// return goodweApi.getPlantsStaticDatas(req); +// } +// +// @GetMapping(value = "stationMonth") +// public Object stationMonth() { +// List stationIds = monitorEntryStatService.getStationIds("2"); +// List> partitions = ListUtils.partition(stationIds, 50); +// goodweStationMonthEachRunner.start(partitions, "获取单个电站某月的日数据", 30L, null); +// return "ok"; +// } +// +// @GetMapping(value = "stationYear") +// public Object stationYear() { +// List stationIds = monitorEntryStatService.getStationIds("2"); +// List> partitions = ListUtils.partition(stationIds, 50); +// goodweStationYearEachRunner.start(partitions, "获取单个电站某年的月数据", 30L, null); +// return "ok"; +// } +// +// @GetMapping(value = "getInverterDataByColumn") +// public Object getInverterDataByColumn() { +// GetInverterDataByColumnReq req = new GetInverterDataByColumnReq(); +// req.setColumn(0); +// req.setId("4060KMTW237G1417"); +// req.setDate("2024-02-27"); +// return goodweApi.getInverterDataByColumn(req); +// } +// +// @GetMapping(value = "getInverterPacByDay") +// public Object getInverterPacByDay() { +// GetInverterPacByDayReq req = new GetInverterPacByDayReq(); +// req.setId("4025KDTF237G0411"); +// req.setDate("2024-02-26"); +// return goodweApi.getInverterPacByDay(req); +// } +// +// @GetMapping(value = "getPowerStationWariningInfoByMultiCondition") +// public Object getPowerStationWariningInfoByMultiCondition() { +// GetPowerStationWariningInfoByMultiConditionReq req = new GetPowerStationWariningInfoByMultiConditionReq(); +// req.setPageIndex(1); +// req.setPageSize(100); +// req.setStationid(null); +// req.setStatus(3); // 全部 +// req.setStarttime(com.zhongling.common.utils.DateUtils.formatDate(org.apache.commons.lang.time.DateUtils.addDays(new Date(), -1), "yyyy-MM-dd HH:mm:ss")); +// return goodweApi.getPowerStationWariningInfoByMultiCondition(req); +// } +// +// @GetMapping(value = "getInventersDatas") +// public Object getInventersDatas() { +// GetInventersDatasReq req = new GetInventersDatasReq(); +// req.setSns(Arrays.asList("4060KMTW237G1417", "4060KMTW237G1421", "4060KMTW237G1423")); +// return goodweApi.getInventersDatas(req); +// } +// +//} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweRet.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweRet.java new file mode 100644 index 0000000..1612434 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/GoodweRet.java @@ -0,0 +1,41 @@ +package org.springblade.modules.nh.factory.goodwe; + +public class GoodweRet { + + private Integer code; + private String msg; + private T data; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } + + @Override + public String toString() { + return "IRet{" + + "code='" + code + '\'' + + ", msg='" + msg + '\'' + + ", data=" + data + + '}'; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.java new file mode 100644 index 0000000..6299c52 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.java @@ -0,0 +1,160 @@ +package org.springblade.modules.nh.factory.goodwe.config; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Maps; +import okhttp3.*; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.common.EzTemplateBase; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import org.springblade.modules.nh.factory.goodwe.dto.gettoken.GetTokenR; +import org.springblade.modules.nh.factory.goodwe.dto.gettoken.GetTokenReq; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.client.BufferingClientHttpRequestFactory; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; + +import java.io.IOException; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.locks.ReentrantLock; +import java.util.function.Function; + +@Service +public class GoodweApiRestTemplate extends EzTemplateBase { + + private String redisTokenKey = "GOODWE_TOKEN"; + + private String redisIndexKey = "GOODWE_INDEX_KEY"; + + @Autowired + private BladeRedis redis; + + private static final Logger log = LoggerFactory.getLogger(GoodweApiRestTemplate.class); + + public GoodweApiRestTemplate() { + super(createRestTemplate(createHttpRequestFactory())); + } + + protected static ClientHttpRequestFactory createHttpRequestFactory() { + return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()); + } + + @Override + public T postJson(int index, String url, Object data, ParameterizedTypeReference responseType, Object... uriVariables) { + try{ + redis.set(redisIndexKey,index); + T r = super.postJson(url, data, responseType, uriVariables); + if(r instanceof GoodweRet){ + GoodweRet ret = (GoodweRet) r; + if(ret.getCode()==100002){ + redis.del(redisTokenKey+"_"+index); + return super.postJson(url, data, responseType, uriVariables); + } + } + return r; + }catch (Exception e){ + logger.error("postJson error:{}", e); + return null; + } + } + + @Override + public T get(int index,String url, Map uriVariables, ParameterizedTypeReference responseType) throws RestClientException { + try{ + redis.set(redisIndexKey,index); + T r = super.get(url, uriVariables, responseType); + if(r instanceof GoodweRet){ + GoodweRet ret = (GoodweRet) r; + if(ret.getCode()==100002){ + redis.del(redisTokenKey+"_"+index); + return super.get(url,uriVariables, responseType); + } + } + return r; + }catch (Exception e){ + logger.error("postJson error:{}", e); + return null; + } + } + + @Override + protected void callHeaders(String url, String data, HttpHeaders headers) { + int index = redis.get(redisIndexKey); + headers.set("token", getAuthorization(index)); + } + + public synchronized String getAuthorization(int index) { + String redisKey = redisTokenKey+"_"+(index); + String authorization = redis.get(redisKey); + if(StringUtil.isNotBlank(authorization)){ + return authorization; + } + GetTokenReq req = new GetTokenReq(); + switch (index){ + case 1:{ + req.setAccount("15362141430"); + req.setPwd("123456"); + };break; + case 2:{ + req.setAccount("18115811578"); + req.setPwd("123456"); + };break; + case 3:{ + req.setAccount("17712135319"); + req.setPwd("nh123456"); + };break; + default:{ + req.setAccount("15362141430"); + req.setPwd("123456"); + };break; + } + authorization = getToken(req); + if(StringUtil.isNotBlank(authorization)){ + redis.setEx(redisKey,authorization,600L); + } + + return authorization; + + } + + public String getToken(GetTokenReq req) { + String token = null; + String authUrl = "http://openapi.sems.com.cn/api/OpenApi/GetToken"; + RequestBody body = RequestBody.create(JSON.toJSONString(req), MediaType.get("application/json; charset=utf-8")); + Request request = new Request.Builder() + .url(authUrl) + .post(body) + .build(); + OkHttpClient client = new OkHttpClient().newBuilder().build(); + Call call = client.newCall(request); + try{ + Response response = call.execute(); + Headers headers = response.headers(); + String jsonStr = response.body().string(); + JSONObject jsonObject = JSON.parseObject(jsonStr); + int code = jsonObject.getIntValue("code"); + if(code==0){ + token = jsonObject.getJSONObject("data").getString("token"); + } + }catch (IOException ioException){ + logger.error("华为逆变器登录异常报错:{}",ioException); + } + return token; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.java new file mode 100644 index 0000000..1dc9d12 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.java @@ -0,0 +1,10 @@ +package org.springblade.modules.nh.factory.goodwe.dto; + +import lombok.Data; + +@Data +public class GetIndexReq { + + private int index; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.java new file mode 100644 index 0000000..2b8cc8b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.java @@ -0,0 +1,10 @@ +package org.springblade.modules.nh.factory.goodwe.dto; + +import lombok.Data; + +@Data +public class GoodweApiReq { + + private int index; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.java new file mode 100644 index 0000000..42f660f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.java @@ -0,0 +1,23 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getInventersdatas; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetInventersDatasData { + + /** + * 查询逆变器数量 + */ + private Long total; + /** + * 查询到有数据的逆变器数量 + */ + private Long count; + /** + * 根据指定逆变器序列号集合获取逆变器实时数据,该接口允许最大逆变器数量为 50. + */ + private List list; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasR.java new file mode 100644 index 0000000..8cbb251 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasR.java @@ -0,0 +1,52 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getInventersdatas; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class GetInventersDatasR { + + private String sn; + private String name; + @JsonProperty("in_pac") + private Double inPac; + /** + * 发电功率(千瓦) + */ + @JsonProperty("out_pac") + private Double outPac; + /** + * 今日发电量(度) + */ + @JsonProperty("eday") + private Double eday; + /** + * 累计发电量(度) + */ + @JsonProperty("etotal") + private Double etotal; + /** + * 状态 + */ + private Integer status; + /** + * 接入时间 + */ + @JsonProperty("turnon_time") + private String turnonTime; + /** + * 设备与电站关系 id + */ + @JsonProperty("releation_id") + private String releationId; + /** + * 设备类型 + */ + private String type; + /** + * 容量 kw + */ + private Double capacity; + private GetInventersDatasRd d; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.java new file mode 100644 index 0000000..e4ea802 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.java @@ -0,0 +1,93 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getInventersdatas; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetInventersDatasRd { + + /** + * 数据最新时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date creationDate; + /** + * 今日发电量 + */ + @JsonProperty("eDay") + private Double eDay; + /** + * 累计发电量 + */ + @JsonProperty("eTotal") + private Double eTotal; + /** + * 发电功率 + */ + @JsonProperty("pac") + private Double pac; + /** + * 累计发电小时 + */ + @JsonProperty("hTotal") + private Double hTotal; + + private Double vpv1; + private Double vpv2; + /** + * 直流电压 3 + */ + private Double vpv3; + private Double vpv4; + private Double vpv5; + private Double vpv6; + private Double vpv7; + private Double vpv8; + private Double vpv9; + private Double vpv10; + private Double vpv11; + private Double vpv12; + + private Double ipv1; + private Double ipv2; + /** + * 直流电流 3 + */ + private Double ipv3; + private Double ipv4; + private Double ipv5; + private Double ipv6; + private Double ipv7; + private Double ipv8; + private Double ipv9; + private Double ipv10; + private Double ipv11; + private Double ipv12; + + public Double calcDC() { + return calc(ipv1, vpv1) + + calc(ipv2, vpv2) + + calc(ipv3, vpv3) + + calc(ipv4, vpv4) + + calc(ipv5, vpv5) + + calc(ipv6, vpv6) + + calc(ipv7, vpv7) + + calc(ipv8, vpv8) + + calc(ipv9, vpv9) + + calc(ipv10, vpv10) + + calc(ipv11, vpv11) + + calc(ipv12, vpv12); + } + + private double calc(Double i, Double v) { + if (i != null && v != null) { + return i * v; + } + return 0d; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.java new file mode 100644 index 0000000..3b87b5e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.java @@ -0,0 +1,16 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getInventersdatas; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +import java.util.List; + +/** + * 注意:批量获取不支持多线程并发获取. + */ +@Data +public class GetInventersDatasReq extends GoodweApiReq { + + private List sns; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayR.java new file mode 100644 index 0000000..382d255 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayR.java @@ -0,0 +1,15 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getInverterpacbyday; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetInverterPacByDayR { + + private Double pac; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date date; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.java new file mode 100644 index 0000000..7a16715 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getInverterpacbyday; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class GetInverterPacByDayReq extends GoodweApiReq { + + private String id; + private String date; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/D.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/D.java new file mode 100644 index 0000000..fa5f5fc --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/D.java @@ -0,0 +1,75 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class D { + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date creationDate; + private Double eDay; + private Double eTotal; + private Double pac; + private Double hTotal; + private Double vpv1; + private Double vpv2; + private Double vpv3; + private Double vpv4; + private Double vpv5; + private Double vpv6; + private Double vpv7; + private Double vpv8; + private Double vpv9; + private Double vpv10; + private Double vpv11; + private Double vpv12; + private Double ipv1; + private Double ipv2; + private Double ipv3; + private Double ipv4; + private Double ipv5; + private Double ipv6; + private Double ipv7; + private Double ipv8; + private Double ipv9; + private Double ipv10; + private Double ipv11; + private Double ipv12; + private Double vac1; + private Double vac2; + private Double vac3; + private Double iac1; + private Double iac2; + private Double iac3; + private Double fac1; + private Double fac2; + private Double fac3; + private Double istr1; + private Double istr2; + private Double istr3; + private Double istr4; + private Double istr5; + private Double istr6; + private Double istr7; + private Double istr8; + private Double istr9; + private Double istr10; + private Double istr11; + private Double istr12; + private Double istr13; + private Double istr14; + private Double istr15; + private Double istr16; + private Double istr17; + private Double istr18; + private Double istr19; + private Double istr20; + private Double istr21; + private Double istr22; + private Double istr23; + private Double istr24; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.java new file mode 100644 index 0000000..15e58b7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn; + +import lombok.Data; + +@Data +public class GetInventersMoreDetailInfoBySnReq { + + private String pwId; + private String sn; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.java new file mode 100644 index 0000000..2812e9a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.java @@ -0,0 +1,30 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.Setter; + +import java.util.Date; + +@Data +public class GetInventersMoreDetailInfoBySnResp { + + private String sn; + private String name; + private Double in_pac; + private Double out_pac; + private Double eday; + private Double etotal; + private Integer status; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date turnon_time; + private String releation_id; + private String type; + private Double capacity; + private boolean it_change_flag; + private Double tempperature; + private String check_code; + private String error_message; + + private D d; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnR.java new file mode 100644 index 0000000..2e10299 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnR.java @@ -0,0 +1,22 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +@Data +public class GetInverterDataByColumnR { + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + private Date date; + /** + * 根据请求类型的不同,column表示的含义不同 + * 0:eday:今日发电量; + * 1:etotal:累计发电量 + * 2:tempperature:温度 + * 3:vac:交流电压 + */ + private Double column; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnReq.java new file mode 100644 index 0000000..b87dc99 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class GetInverterDataByColumnReq extends GoodweApiReq { + + /** + * 设备 sn,... sn 命名一个 id,... 啥玩意,shit 一般的接口 + */ + private String id; + /** + * 选择时间,日期格式 2018-07-11 + */ + private String date; + /** + * 0:eday:今日发电量; + * 1:etotal:累计发电量 + * 2:tempperature:温度 + * 3:vac:交流电压 + * 默认 0 + */ + private Integer column; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.java new file mode 100644 index 0000000..2bf11aa --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetInverterDataByColumnResp { + + private List column1; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.java new file mode 100644 index 0000000..1af73e5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinverterpower; + +import lombok.Data; + +@Data +public class GetInverterPowerR { + + private String date; + /** + * 发电量 + */ + private Double power; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.java new file mode 100644 index 0000000..2247ff3 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.java @@ -0,0 +1,34 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getinverterpower; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class GetInverterPowerReq extends GoodweApiReq { + + /** + * 设备 sn + */ + private String sn; + /** + * 日期,日期格式 2018-07-11 + */ + private String date; + /** + * 数量值最小为 1,为 0 则取默认值 包含当前所 + * 选时间 + * 日发电量:最大 31 天,默认 31 + * 月发电量:最大 12 月,默认 12 + * 年发电量:当年默认为 0,最大 10 + * 如果设置值超过规定范围则取默认值 + */ + private Integer count; + /** + * 0:日发电量 + * 1:月发电量 + * 2:年发电量 + * 默认为 0 + */ + private Integer type; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.java new file mode 100644 index 0000000..62e5107 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.java @@ -0,0 +1,15 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantspowers; + +import lombok.Data; + +@Data +public class GetPlantsPowersData { + + /** + * 查询日期 + */ + private Long date; + private Integer interval; + private java.util.List list; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.java new file mode 100644 index 0000000..425ed62 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantspowers; + +import lombok.Data; + +@Data +public class GetPlantsPowersR { + + private String time; + private Integer no; + private Double value; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersReq.java new file mode 100644 index 0000000..cdc4f46 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersReq.java @@ -0,0 +1,25 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantspowers; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantsPowersReq extends GoodweApiReq { + + /** + * 电站 id 集合 Y + */ + private List ids; + /** + * 时间戳 Y + */ + private Long date; + /** + * 数据包时间间隔,数值范围 5~60 且 + * 能整除 60,N + */ + private Integer interval; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.java new file mode 100644 index 0000000..7489a8b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantspowers; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantsPowersSiteData { + + private String sid; + private String dataunit; + private List data; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasData.java new file mode 100644 index 0000000..9183fca --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasData.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantsStaticDatasData { + + private List list; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.java new file mode 100644 index 0000000..b58b845 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.java @@ -0,0 +1,22 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas; + +import lombok.Data; + +@Data +public class GetPlantsStaticDatasR { + + /** + * 按照查询条件展示不同 + * 数据格式 + * 按月查询:yyyy-MM-dd + * 按年查询:yyyy-MM + * 按总查询:yyyy + */ + private String time; + /** + * 从 0 开始累加 + */ + private Integer no; + private Double value; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReq.java new file mode 100644 index 0000000..46e8125 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantsStaticDatasReq extends GoodweApiReq { + + /** + * 电站 id 集合 + */ + private List ids; + /** + * 时间戳 + */ + private Long date; + /** + * 1:根据 date 查询该月日发电量 + * 2.根据 date 查询该年月发电量 + * 3.根据 date 查询该年总发电量 + */ + private Integer period; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.java new file mode 100644 index 0000000..c8c2c7f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.java @@ -0,0 +1,34 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantsStaticDatasReqByTime extends GoodweApiReq { + + /** + * 电站 id 集合 Y + */ + private List ids; + /** + * 1:查询范围内日发电量 Y + */ + private Integer period; + /** + * 开始时间戳 Y + */ + private Long startdt; + /** + * 结束时间戳 + * Period=1 开始和结束时间最大相 + * 差 30 天; + * Period=2 开始和结束时间最大相 + * 差 12 月; + * Period=3 开始和结束时间最大相 + * 差 20 年; + */ + private Long enddt; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasSiteData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasSiteData.java new file mode 100644 index 0000000..3aef2b4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasSiteData.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetPlantsStaticDatasSiteData { + + private String sid; + private String dataunit; + private List data; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.java new file mode 100644 index 0000000..3de6414 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpacbyday; + +import lombok.Data; + +@Data +public class GetPowerStationPacByDayR { + + private String date; + /** + * 功率? + */ + private Double pac; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayReq.java new file mode 100644 index 0000000..92b64ff --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayReq.java @@ -0,0 +1,17 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpacbyday; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class GetPowerStationPacByDayReq extends GoodweApiReq { + + /** + * 电站 id,不填返回空 Y + */ + private String id; + /** + * 日期 格式:2018-07-16 Y + */ + private String date; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerR.java new file mode 100644 index 0000000..38fa082 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerR.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpower; + +import lombok.Data; + +@Data +public class GetPowerStationPowerR { + + private String date; + /** + * 发电量?单位是什么? + */ + private Double power; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.java new file mode 100644 index 0000000..d26c3a1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.java @@ -0,0 +1,33 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationpower; + +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class GetPowerStationPowerReq extends GoodweApiReq { + + /** + * 电站 id + */ + private String id; + /** + * 日期 2017-06-21 + */ + private String date; + /** + * 数量(包含当前)最小为 1,如果为 0 则取默认 + * 值 + * 日发电量:最大 31 天,默认 31 + * 月发电量:最大 12 月,默认 12 + * 年发电量:当年默认为 0,最大 10 年 + */ + private int count; + /** + * 0:日发电量 + * 1:月发电量 + * 2:年发电量 + * 默认是 0 + */ + private int type; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.java new file mode 100644 index 0000000..7a78ce7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition; + +import lombok.Data; + +import java.util.List; + +@Data +public class GetPowerStationWariningInfoByMultiConditionData { + + private Long record; + private List list; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionR.java new file mode 100644 index 0000000..3948e1d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionR.java @@ -0,0 +1,53 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class GetPowerStationWariningInfoByMultiConditionR { + + private String stationId; + /** + * 区域编码 + */ + private String adcode; + /** + * 电站名称 + */ + private String stationname; + /** + * 设备 SN + */ + private String devicesn; + /** + * 告警 id + */ + private String warningid; + /** + * 告警名称 + */ + private String warningname; + /** + * 状态1:已处理 0:未处理 + */ + private Integer status; + /** + * 发生时间 + */ + private String happentime; + /** + * 恢复时间 + */ + private String recoverytime; + /** + * 是否派送 1:已派送 2:未派送 + */ + @JsonProperty("is_add_task") + private Integer isAddTask; + /** + * 错误编码-详细参考 3.3 告警错误 + */ + @JsonProperty("error_code") + private String errorCode; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionReq.java new file mode 100644 index 0000000..08ad6bc --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionReq.java @@ -0,0 +1,39 @@ +package org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.google.gson.annotations.SerializedName; +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class GetPowerStationWariningInfoByMultiConditionReq extends GoodweApiReq { + + /** + * 查询开始时间,开始时间和结束时间 + * 间隔最大 30 天。 + */ + private String starttime; + /** + * 查询结束时间,如果不赋值默认为当 + * 前时间 + */ + private String endtime; + @JsonProperty("page_size") + @SerializedName(("page_size")) + private Integer pageSize; + @SerializedName("page_index") + @JsonProperty("page_index") + private Integer pageIndex; + /** + * 1:恢复=恢复未关注+恢复已关注 + * 2:发生=发生未关注+发生已关注 + * 3:全部=恢复+发生 + * 默认显示发生和关注的 + */ + private Integer status; + /** + * 电站 id + */ + private String stationid; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenR.java new file mode 100644 index 0000000..873d9e5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenR.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.goodwe.dto.gettoken; + +import lombok.Data; + +@Data +public class GetTokenR { + + private Integer expired; + private String token; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.java new file mode 100644 index 0000000..ca527e0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.goodwe.dto.gettoken; + +import lombok.Data; +import org.springblade.modules.nh.factory.goodwe.dto.GetIndexReq; + +@Data +public class GetTokenReq extends GetIndexReq { + + private String account; + private String pwd; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.java new file mode 100644 index 0000000..f000765 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.java @@ -0,0 +1,16 @@ +package org.springblade.modules.nh.factory.goodwe.dto.queryinventers; + +import lombok.Data; + +import java.util.List; + +@Data +public class QueryInventersData { + + /** + * 总记录数 + */ + private Long record; + private List list; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.java new file mode 100644 index 0000000..8cd1d70 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.java @@ -0,0 +1,54 @@ +package org.springblade.modules.nh.factory.goodwe.dto.queryinventers; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class QueryInventersR { + + /** + * 设备 id + */ + private String id; + /** + * 电站 id + */ + @JsonProperty("pw_id") + private String pwId; + /** + * 设备名称 + */ + @JsonProperty("it_name") + private String itName; + /** + * SN + */ + @JsonProperty("it_sn") + private String itSn; + /** + * 设备类型 + */ + @JsonProperty("it_type") + private String itType; + /** + * 容量 kw + */ + @JsonProperty("it_capacity") + private Double itCapacity; + /** + * 校验码 默认不提供 + */ + @JsonProperty("it_check_code") + private String itCheckcode; + /** + * 接入日期 + */ + @JsonProperty("conn_date") + private String connDate; + /** + * 是否更换 0:未更换 1:已更换 + */ + @JsonProperty("it_change_flag") + private Boolean itChangeFlag; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersReq.java new file mode 100644 index 0000000..4ac7e7f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersReq.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.goodwe.dto.queryinventers; + +import com.google.gson.annotations.SerializedName; +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class QueryInventersReq extends GoodweApiReq { + + /** + * 电站 id + */ + @SerializedName("pw_id") + private String pwId; + /** + * 页码 + */ + @SerializedName("page_index") + private Integer pageIndex; + /** + * 每页记录 + */ + @SerializedName("page_size") + private Integer pageSize; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.java new file mode 100644 index 0000000..fce169c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor; + +import lombok.Data; + +import java.util.List; + +@Data +public class QueryPowerStationMonitorData { + + private Long record; + private List list; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.java new file mode 100644 index 0000000..c198dcb --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.java @@ -0,0 +1,47 @@ +package org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * powerstation_id string 电站 id + * stationname string 电站名称 + * location String 电站位置 + * adcode string 区域代码 + * status int 电站状态(-1:离线 0:待机 1: + * 正常 2:停机 -2:无设备) + * pac double 功率(w) + * capacity double 容量(kw) + * longitude string 经度 + * latitude string 纬度 + * eday double 今日发电量(kWh) + * etotal double 累计发电量(kWh) + * powerstation_type string 电站类型 + * pac_kw double 单 kw 功率 + * to_hour double 日等效小时数 + */ +@Data +public class QueryPowerStationMonitorR { + + @JsonProperty("powerstation_id") + private String powerstationId; + private String stationname; + private String location; + private String adcode; + private Integer status; + private Double pac; + private Double capacity; + private String longitude; + private String latitude; + @JsonProperty("eday") + private Double eday; + @JsonProperty("etotal") + private Double etotal; + @JsonProperty("powerstation_type") + private String powerstationType; + @JsonProperty("pac_kw") + private Double pacKw; + @JsonProperty("to_hour") + private Double toHour; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorReq.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorReq.java new file mode 100644 index 0000000..5d2f655 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorReq.java @@ -0,0 +1,48 @@ +package org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor; + +import com.google.gson.annotations.SerializedName; +import org.springblade.modules.nh.factory.goodwe.dto.GoodweApiReq; +import lombok.Data; + +@Data +public class QueryPowerStationMonitorReq extends GoodweApiReq { + + /** + * 电站名称或 sn 编码 + */ + private String key; + /** + * 排序规则入升序:xxxx + * desc; + * 降序:xxx + * 否 + * capacity:容量 + * pac_kw:单 kw 功率 + * to_hour:等效小时 + * eday:今日发电量 + * etotal:累计发电量 + * 目前只提供这 5 类排序 + * 不填默认 按照电站名称升序 + */ + private String orderby; + /** + * 电站状态(“” or null:全部,-1:离线 + * 0:待机 1:发电中 2:停机 -2: + * 无设备),不填代表全部 + */ + @SerializedName("powerstation_status") + private String powerstationStatus; + @SerializedName("page_index") + private Integer pageIndex; + @SerializedName("page_size") + private Integer pageSize; + /** + * 区域编码 否 + */ + private String adcode; + /** + * 0:根据电站查询 1:根据 sn 查询,非必填 + */ + private String condition; + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.java new file mode 100644 index 0000000..773fe54 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.java @@ -0,0 +1,107 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition.GetPowerStationWariningInfoByMultiConditionData; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition.GetPowerStationWariningInfoByMultiConditionR; +import org.springblade.modules.nh.factory.goodwe.dto.getpowerstationwarininginfobymulticondition.GetPowerStationWariningInfoByMultiConditionReq; +import org.springblade.modules.nh.service.IAlarmCodeService; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class GoodweAlarmPageAction extends PageAction { + + @Autowired + GoodweApi goodweApi; + @Autowired + IAlarmInfoService monitorAlarmInfoService; + @Autowired + IAlarmCodeService monitorFaultCodeService; + + @Override + public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { + GetPowerStationWariningInfoByMultiConditionReq req = new GetPowerStationWariningInfoByMultiConditionReq(); + req.setPageIndex(page); + req.setPageSize(pageSize); + req.setStationid(getStationId(ctx)); + req.setStatus(3); // 全部 + req.setStarttime(DateUtil.format(DateUtil.plusDays(new Date(), -1), "yyyy-MM-dd HH:mm:ss")); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet resp = goodweApi.getPowerStationWariningInfoByMultiCondition(req); + if (isOk(resp.getCode())) { + PageInfo ret = new PageInfo<>(); + GetPowerStationWariningInfoByMultiConditionData data = resp.getData(); + ret.setPages(calcPage(data.getRecord(), pageSize)); + ret.setData(data); + ret.setList(data.getList()); + return ret; + } + log.error("goodwe sync alarm info error: {}, code: {}", resp.getMsg(), resp.getCode()); + return null; + } + + private String getStationId(Map ctx) { + return (String) ctx.get("stationId"); + } + + @Override + public void handlePageInfo(PageInfo pageInfo, Map ctx) { + List list = convList(pageInfo.getList()); + if (!CollectionUtils.isEmpty(list)) { + try { + monitorAlarmInfoService.syncAlarmInfo(list, NhConstants.SYS_TYPE_GOODWE); + } catch (Exception ex) { + log.error("goodwe sync alarm list error", ex); + } + try { + monitorFaultCodeService.syncFaultCode(NhConstants.SYS_TYPE_GOODWE, list); + } catch (Exception ex) { + log.error("goodwe sync fault code error", ex); + } + } + } + + private List convList(List list) { + List ret = new ArrayList<>(); + for (GetPowerStationWariningInfoByMultiConditionR r : list) { + ret.add(convR(r)); + } + return ret; + } + + private GetAlarmListR convR(GetPowerStationWariningInfoByMultiConditionR r) { + GetAlarmListR ret = new GetAlarmListR(); + ret.setStationId(r.getStationId()); + ret.setStationName(r.getStationname()); + ret.setAlarmDeviceSn(r.getDevicesn()); + ret.setAlarmCode(r.getErrorCode()); + ret.setAlarmType(null); + ret.setAlarmLevel("2"); + ret.setAlarmBeginTime(DateUtil.parse(r.getHappentime(), "yyyy-MM-dd HH:mm:ss").getTime()); + ret.setAlarmEndTime(null); + ret.setAlarmMsg(r.getWarningname()); + ret.setState(String.valueOf(r.getStatus())); + ret.setWarningInfoData(null); + ret.setAdvice(null); + ret.setMachine(null); + ret.setModel(null); + return ret; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDayEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDayEachRunner.java new file mode 100644 index 0000000..959491a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDayEachRunner.java @@ -0,0 +1,58 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn.GetInverterDataByColumnR; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn.GetInverterDataByColumnReq; +import org.springblade.modules.nh.factory.goodwe.dto.getinverterdatabycolumn.GetInverterDataByColumnResp; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class GoodweInverterDayEachRunner extends EachRunner { + + @Autowired + GoodweApi goodweApi; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + @Autowired + IMonitorInverterDailyStatService monitorInverterDailyStatService; + + @Override + public void handle(String sn, Map ctx) throws IOException { + GetInverterDataByColumnReq req = new GetInverterDataByColumnReq(); + String date = (String) ctx.get("baseDate"); + req.setDate(date); + req.setId(sn); + req.setColumn(0); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet resp = goodweApi.getInverterDataByColumn(req); + if (resp.getCode() == 0) { + GetInverterDataByColumnResp data = resp.getData(); + List energyRawList = data.getColumn1(); + List energyList = new ArrayList<>(); + for (GetInverterDataByColumnR getInverterDataByColumnR : energyRawList) { + InverterHourlyEnergyDTO energyItem = new InverterHourlyEnergyDTO(); + energyItem.setEnergy(getInverterDataByColumnR.getColumn()); + energyItem.setSyncTime(getInverterDataByColumnR.getDate()); + energyItem.setSn(sn); + energyList.add(energyItem); + } + monitorInverterDailyStatService.syncHourlyData(NhConstants.SYS_TYPE_GOODWE, energyList); + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.java new file mode 100644 index 0000000..7a2fe71 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.java @@ -0,0 +1,96 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.queryinventers.QueryInventersData; +import org.springblade.modules.nh.factory.goodwe.dto.queryinventers.QueryInventersR; +import org.springblade.modules.nh.factory.goodwe.dto.queryinventers.QueryInventersReq; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +@Service +@Slf4j +public class GoodweInverterDetailListPageAction extends PageAction { + + @Autowired + GoodweApi goodweApi; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + @Autowired + IMonitorInverterDailyStatService monitorInverterDailyStatService; + + @Override + public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { + QueryInventersReq req = new QueryInventersReq(); + req.setPageIndex(page); + req.setPageSize(pageSize); + req.setPwId(getStationId(ctx)); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet resp = goodweApi.queryInventers(req); + if (isOk(resp.getCode())) { + PageInfo ret = new PageInfo<>(); + QueryInventersData data = resp.getData(); + int pages = calcPage(data.getRecord(), pageSize); + ret.setPages(pages); + ret.setData(data); + ret.setList(data.getList()); + return ret; + } + log.error("goodwe inverter detail error: {}, code: {}", resp.getMsg(), resp.getCode()); + return null; + } + + private String getStationId(Map ctx) { + return (String) ctx.get("stationId"); + } + + @Override + public void handlePageInfo(PageInfo pageInfo, Map ctx) { + List list = pageInfo.getList(); + List convList = conv(CommonUtil.getVendorIndex(ctx),list); + if (!CollectionUtils.isEmpty(list)) { + try { + Set updateFields = new HashSet<>(); + updateFields.add("name"); + updateFields.add("sn"); + updateFields.add("power"); + monitorInverterStatService.syncInverterDetails(convList, NhConstants.SYS_TYPE_GOODWE, updateFields); + } catch (Exception ex) { + log.error("sync inverter details error", ex); + } + } + } + + private List conv(int index,List list) { + List ret = new ArrayList<>(); + for (QueryInventersR queryInventersR : list) { + ret.add(convR(index,queryInventersR)); + } + return ret; + } + + private GetInverterDetailR convR(int index,QueryInventersR r) { + GetInverterDetailR ret = new GetInverterDetailR(); + ret.setVendorIndex(index); + ret.setDataTimestamp(new Date().getTime()); + ret.setStationId(r.getPwId()); + ret.setId(r.getId()); + ret.setName(r.getItName()); + ret.setSn(r.getItSn()); + ret.setPower(r.getItCapacity()); + ret.setPowerStr("kw"); + return ret; + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.java new file mode 100644 index 0000000..3ebd26c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * for each station and station related device + */ +@Service +public class GoodweInverterEachRunner extends EachRunner { + + @Autowired + GoodweInverterDetailListPageAction goodweInverterDetailListPageAction; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + ctx.put("stationId", stationId); + goodweInverterDetailListPageAction.start("电站设备列表", 100, ctx, 2); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.java new file mode 100644 index 0000000..9d63feb --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.java @@ -0,0 +1,56 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getInverterpacbyday.GetInverterPacByDayR; +import org.springblade.modules.nh.factory.goodwe.dto.getInverterpacbyday.GetInverterPacByDayReq; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Service +@Slf4j +public class GoodweInverterPacByDayEachRunner extends EachRunner { + + @Autowired + GoodweApi goodweApi; + @Autowired + IMonitorInverterStatService monitorInverterStatService; + @Autowired + IMonitorInverterDailyStatService monitorInverterDailyStatService; + + @Override + public void handle(String sn, Map ctx) throws IOException { + GetInverterPacByDayReq req = new GetInverterPacByDayReq(); + String date = (String) ctx.get("baseDate"); + req.setDate(date); + req.setId(sn); + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet> resp = goodweApi.getInverterPacByDay(req); + if (resp.getCode() == 0) { + List pacList = resp.getData(); + List list = new ArrayList<>(); + for (GetInverterPacByDayR datum : pacList) { + InverterHourlyEnergyDTO dto = new InverterHourlyEnergyDTO(); + dto.setEnergy(null); + dto.setJlgl(datum.getPac()); + dto.setSyncTime(datum.getDate()); + dto.setSn(sn); + list.add(dto); + } + monitorInverterDailyStatService.syncHourlyData(NhConstants.SYS_TYPE_GOODWE, list); + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler.java new file mode 100644 index 0000000..0d5f733 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler.java @@ -0,0 +1,184 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.TaskControl; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@EnableScheduling +@Component +@Slf4j +@AllArgsConstructor +public class GoodweScheduler { + + private final int indexCount = 3; + private final GoodweUserStationListPageAction goodweUserStationListPageAction; + private final GoodweInverterEachRunner goodweInverterEachRunner; + private final IMonitorEntryStatService monitorEntryStatService; + private final GoodweStationAlarmEachRunner goodweStationAlarmEachRunner; + private final GoodweStationMonthEachRunner goodweStationMonthEachRunner; + private final GoodweStationYearEachRunner goodweStationYearEachRunner; + private final IMonitorInverterStatService monitorInverterStatService; + private final GoodweInverterDayEachRunner goodweInverterDayEachRunner; + private final GoodweInverterPacByDayEachRunner goodweInverterPacByDayEachRunner; + private final GoodweAlarmPageAction goodweAlarmPageAction; + + /** + * 每5分钟同步一次电站列表,之所以同步如此频繁,目的是记录电站每小时的发电量。 + */ + @Scheduled(cron = "11 */9 * * * ?") + public void syncUserStationList() { + TaskControl.runTask("goodwe:syncUserStationList", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++){ + goodweUserStationListPageAction.start("goodwe 获取用户电站列表", 100, CommonUtil.getCtx(i),1); + } + + } + }); + } + + /** + * 每3小时同步一次电站设备列表 + */ + @Scheduled(cron = "0 47 */3 * * ?") + public void syncInverterDetailList() { + TaskControl.runTask("goodwe:syncInverterDetailList", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_GOODWE,i); + goodweInverterEachRunner.start(stationIds, "电站设备列表(总)", 1L, CommonUtil.getCtx(i)); + } + } + }); + } + + /** + * 每隔10分钟同步一次告警信息 + */ + @Scheduled(cron = "0 0 * * * ?") + public void syncAlarmList() { + TaskControl.runTask("goodwe:syncAlarmList", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + goodweAlarmPageAction.start("获取账号下设备报警列表", 100, CommonUtil.getCtx(i), 1); + } + } + }); + } + + /** + * 每天凌晨1点统计一次日发电量,限制一分钟5次? + */ + @Scheduled(cron = "0 38 8 * * ?") + public void syncStationMonthData() { + TaskControl.runTask("goodwe:syncStationMonthData", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_GOODWE,i); + List> partitions = ListUtils.partition(stationIds, 50); + goodweStationMonthEachRunner.start(partitions, "获取单个电站某月的日数据", 15L, CommonUtil.getCtx(i)); + } + } + }); + } + + /** + * 每天凌晨2点统计一次月发电量,限制一分钟5次? + */ + @Scheduled(cron = "32 15 2 * * ?") + public void syncStationYearData() { + TaskControl.runTask("goodwe:syncStationYearData", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + List stationIds = monitorEntryStatService.getStationIds(NhConstants.SYS_TYPE_GOODWE,i); + List> partitions = ListUtils.partition(stationIds, 50); + Map ctx = CommonUtil.getCtx(i); +// ctx.put("year",2023); + goodweStationYearEachRunner.start(partitions, "获取单个电站某年的月数据", 12L, ctx); + } + } + }); + } + /** + * 每两个小时获取一次今日的电量,按单条记录获取 + */ + @Scheduled(cron = "40 20 */2 * * ?") + public void syncInverterDay() { + TaskControl.runTask("goodwe:syncInverterDay", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + List inverterSns = monitorInverterStatService.getInverterSns(NhConstants.SYS_TYPE_GOODWE,i); + Map ctx = CommonUtil.getCtx(i); + ctx.put("baseDate", DateUtil.format(new Date(), "yyyy-MM-dd")); + goodweInverterDayEachRunner.start(inverterSns, "实时更新逆变器今日的数据", 1L, ctx); + } + } + }); + } + + /** + * 每天凌晨2点统计一次,逆变器昨日的功率 + */ + @Scheduled(cron = "0 4 2 * * ?") + public void syncInverterPacDay() { + TaskControl.runTask("goodwe:syncInverterPacDay", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++) { + List inverterSns = monitorInverterStatService.getInverterSns(NhConstants.SYS_TYPE_GOODWE); + Map ctx = CommonUtil.getCtx(i); + ctx.put("baseDate", DateUtil.format(DateUtil.plusDays(new Date(), -1), "yyyy-MM-dd")); + goodweInverterPacByDayEachRunner.start(inverterSns, "同步逆变器昨日功率", 1L, ctx); + } + } + }); + } + + + private final GoodweStationFisGenDateEachRunner stationFisGenDateEachRunner; + /** + * 获取电站的首日发电时间 + */ + @Scheduled(cron = "20 30 13 * * ?") + public void syncStationFisGenDate() { + TaskControl.runTask("huawei:syncStationFisGenDate", new Runnable() { + @Override + public void run() { + for(int i=1;i<=indexCount;i++){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getType, NhConstants.SYS_TYPE_GOODWE) + .isNull(MonitorEntryStatEntity::getFisGenerateTime) + .gt(MonitorEntryStatEntity::getEtd,0) + .select(MonitorEntryStatEntity::getOutStationId) + .eq(MonitorEntryStatEntity::getVendorIndex,i); + List stationIds = monitorEntryStatService.listObjs(queryWrapper); + stationFisGenDateEachRunner.start(stationIds, "获取电站的首日发电时间", 12L, CommonUtil.getCtx(i)); + } + } + }); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.java new file mode 100644 index 0000000..d5cf049 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.java @@ -0,0 +1,26 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Map; + +@Service +public class GoodweStationAlarmEachRunner extends EachRunner { + + @Autowired + GoodweApi goodweApi; + @Autowired + GoodweAlarmPageAction goodweAlarmPageAction; + + /** + * @param stationId station id + */ + @Override + public void handle(String stationId, Map ctx) throws IOException { + goodweAlarmPageAction.start("获取告警列表", 100, 1); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.java new file mode 100644 index 0000000..0e3a1d8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.java @@ -0,0 +1,101 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasR; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasSiteData; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class GoodweStationFisGenDateEachRunner extends EachRunner { + + private final GoodweApi goodweApi; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryYearStatService yearStatService; + private final IMonitorEntryMonthStatService monitorEntryMonthStatService; + + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId, CommonUtil.getVendorIndex(ctx)); + } + + public void handleData(String stationId,int index) throws IOException { + String month = yearStatService.getFirstMonth(stationId); + if(month==null){ + return; + } + String start = month+"-01"; + Date startDate = DateUtil.parse(start,"yyyy-MM-dd"); + +// if("2024-01".equals(month)){ +// startDate = new Date(); +// } + + + GetPlantsStaticDatasReqByTime req = new GetPlantsStaticDatasReqByTime(); + req.setIds(Func.toStrList(stationId)); + req.setStartdt(startDate.getTime()); + req.setEnddt(DateUtils.truncate(DateUtils.addDays(startDate, 30), Calendar.DATE).getTime()); // 包含enddt指定的值 + req.setPeriod(1); + req.setIndex(index); + GoodweRet resp = goodweApi.getPlantsStaticDatas(req); + if (resp.getCode() == 0) { + GetPlantsStaticDatasData data = resp.getData(); + List list = data.getList(); + Date firstDate = null; + List dayEnergList = new ArrayList<>(); + if(list!=null && list.size()>0){ + for (GetPlantsStaticDatasSiteData siteData : list) { + List slist = siteData.getData(); + for (GetPlantsStaticDatasR s : slist) { + if(s.getValue()>0){ + Date date2 = DateUtil.parse(s.getTime(),"yyyy-MM-dd"); + if(firstDate!=null){ + if(date2.before(firstDate)){ + firstDate = date2; + } + }else{ + firstDate = date2; + } + } + DayEnergyDTO dayEnergyDTO = new DayEnergyDTO(); + dayEnergyDTO.setStationId(siteData.getSid()); + dayEnergyDTO.setUnit(siteData.getDataunit()); + dayEnergyDTO.setValue(s.getValue()); + dayEnergyDTO.setDate(s.getTime()); + dayEnergList.add(dayEnergyDTO); + } + } + } + if(firstDate!=null){ + monitorEntryStatService.updateFisDate(stationId,DateUtil.formatDate(firstDate)); + monitorEntryMonthStatService.syncMonthStatData(dayEnergList); + } + + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationMonthEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationMonthEachRunner.java new file mode 100644 index 0000000..90e847a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationMonthEachRunner.java @@ -0,0 +1,62 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasR; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasSiteData; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; + +/** + * 按日统计 + */ +@Service +public class GoodweStationMonthEachRunner extends EachRunner> { + + @Autowired + GoodweApi goodweApi; + @Autowired + IMonitorEntryMonthStatService monitorEntryMonthStatService; + + @Override + public void handle(List stationIds, Map ctx) throws IOException { + GetPlantsStaticDatasReqByTime req = new GetPlantsStaticDatasReqByTime(); + req.setIds(stationIds); + Date now = new Date(); + // goodwe 同步最近三天的数据,不包括今天 + req.setStartdt(DateUtils.truncate(DateUtils.addDays(now, -30), Calendar.DATE).getTime()); + req.setEnddt(DateUtils.truncate(DateUtils.addDays(now, -1), Calendar.DATE).getTime()); // 包含enddt指定的值 + req.setPeriod(1); + + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet resp = goodweApi.getPlantsStaticDatas(req); + if (resp.getCode() == 0) { + GetPlantsStaticDatasData data = resp.getData(); + List list = data.getList(); + List dayEnergList = new ArrayList<>(); + for (GetPlantsStaticDatasSiteData siteData : list) { + List slist = siteData.getData(); + for (GetPlantsStaticDatasR s : slist) { + DayEnergyDTO dayEnergyDTO = new DayEnergyDTO(); + dayEnergyDTO.setStationId(siteData.getSid()); + dayEnergyDTO.setUnit(siteData.getDataunit()); + dayEnergyDTO.setValue(s.getValue()); + dayEnergyDTO.setDate(s.getTime()); + dayEnergList.add(dayEnergyDTO); + } + } + monitorEntryMonthStatService.syncMonthStatData(dayEnergList); + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.java new file mode 100644 index 0000000..0c535e0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.java @@ -0,0 +1,86 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasR; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasSiteData; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; + +@Service +@AllArgsConstructor +public class GoodweStationYearEachRunner extends EachRunner> { + + + private final GoodweApi goodweApi; + + private final IMonitorEntryYearStatService monitorEntryYearStatService; + private final IMonitorEntryStatService entryStatService; + + @Override + public void handle(List stationIds, Map ctx) throws IOException { + + int year = cn.hutool.core.date.DateUtil.thisYear(); + if(ctx!=null && ctx.containsKey("year")){ + year = (int) ctx.get("year"); + } + + GetPlantsStaticDatasReqByTime req = new GetPlantsStaticDatasReqByTime(); + req.setIds(stationIds); + req.setStartdt(DateUtil.parse(year+"-01","yyyy-MM").getTime()); + req.setEnddt(DateUtil.parse(year+"-12","yyyy-MM").getTime()); + req.setPeriod(2); + + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet resp = goodweApi.getPlantsStaticDatas(req); + if (resp.getCode() == 0) { + GetPlantsStaticDatasData data = resp.getData(); + List monthEnergyDTOList = getMonthEnergyDTOS(data); + monitorEntryYearStatService.syncYearStatData(monthEnergyDTOList); + } + } + + private List getMonthEnergyDTOS(GetPlantsStaticDatasData data) { + List list = data.getList(); + List monthEnergyDTOList = new ArrayList<>(); + for (GetPlantsStaticDatasSiteData siteData : list) { + MonitorEntryStatEntity entryStat = entryStatService.getByOutId(siteData.getSid()); + + List slist = siteData.getData(); + for (GetPlantsStaticDatasR s : slist) { + Date tempDate = DateUtil.parse(s.getTime(),"yyyy-MM"); + Date monthDate = DateUtil.plusMonths(tempDate,1); + MonthEnergyDTO monthEnergyDTO = new MonthEnergyDTO(); + monthEnergyDTO.setSysType(NhConstants.SYS_TYPE_GOODWE); + monthEnergyDTO.setUnit(siteData.getDataunit()); + monthEnergyDTO.setValue(s.getValue()); +// if(entryStat.getCreateTime().before(monthDate)){ +// monthEnergyDTO.setValue(s.getValue()); +// }else{ +// monthEnergyDTO.setValue(0D); +// } + + monthEnergyDTO.setMonth(s.getTime()); + monthEnergyDTO.setStationId(siteData.getSid()); + monthEnergyDTOList.add(monthEnergyDTO); + } + } + return monthEnergyDTOList; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.java new file mode 100644 index 0000000..cba384d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.java @@ -0,0 +1,137 @@ +package org.springblade.modules.nh.factory.goodwe.scheduler; + +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorData; +import org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorR; +import org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorReq; +import org.springblade.modules.nh.service.IMonitorEntryDailyStatService; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +@Service +@Slf4j +public class GoodweUserStationListPageAction extends PageAction { + + @Autowired + GoodweApi goodweApi; +// @Autowired +// MonitorEntryOverviewStatServiceImpl monitorEntryOverviewStatService; + @Autowired + IMonitorEntryStatService monitorEntryStatService; + @Autowired + IMonitorEntryDailyStatService monitorEntryDailyStatService; + @Autowired + IMonitorEntryMonthStatService monitorEntryMonthStatService; + + @Override + public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { + QueryPowerStationMonitorReq req = new QueryPowerStationMonitorReq(); + req.setPageSize(pageSize); + req.setPageIndex(page); + //账号 + req.setIndex(CommonUtil.getVendorIndex(ctx)); + GoodweRet resp = goodweApi.queryPowerStationMonitor(req); + if (isOk(resp.getCode())) { + PageInfo ret = new PageInfo<>(); + QueryPowerStationMonitorData data = resp.getData(); + Long total = data.getRecord(); + long pages = total / req.getPageSize() + (total % req.getPageSize() == 0 ? 0 : 1); + ret.setPages((int) pages); + ret.setData(data); + ret.setList(data.getList()); + return ret; + } + log.error("query power station monitor data error: {}, code: {}", resp.getMsg(), resp.getData()); + return null; + } + + @Override + public void handlePageInfo(PageInfo pageInfo, Map ctx) { + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + List convList = conv(CommonUtil.getVendorIndex(ctx),pageInfo.getList()); + try { + monitorEntryStatService.syncEntryStat(convList, NhConstants.SYS_TYPE_GOODWE); + } catch (Exception ex) { + log.error("sync entry stat error", ex); + } + try { + monitorEntryDailyStatService.syncEntryDailyStat(convList, NhConstants.SYS_TYPE_GOODWE); + } catch (Exception ex) { + log.error("sync entry daily stat error", ex); + } + } + + private List conv(int index,List list) { + List ret = new ArrayList<>(); + for (QueryPowerStationMonitorR r : list) { + ret.add(convR(index,r)); + } + return ret; + } + + private GetStationR convR(int index,QueryPowerStationMonitorR r) { + GetStationR ret = new GetStationR(); + ret.setVendorIndex(index); + ret.setDataTimestamp(new Date().getTime()); + ret.setFullHour(null); + ret.setStationName(r.getStationname()); + ret.setId(r.getPowerstationId()); + ret.setUserId(null); + ret.setUserName(null); + ret.setUserMobile(null); + ret.setSno(null); + ret.setAddr(r.getLocation()); + ret.setState(convState(r.getStatus())); + ret.setPower(r.getPacKw()); + ret.setPowerStr("kw"); + ret.setCapacity(r.getCapacity()); + ret.setCapacityStr("kwp"); + ret.setDayEnergy(r.getEday()); + ret.setDayEnergyStr("kwh"); + ret.setMonthEnergy(null); + ret.setMonthEnergyStr(null); + ret.setYearEnergy(null); + ret.setYearEnergyStr(null); + ret.setAllEnergy(r.getEtotal()); + ret.setAllEnergyStr("kwh"); + ret.setNmiCode(null); + return ret; + } + + /** + * 电站状态(-1:离线 0:待机 1:正常 2:停机 -2:无设备) + */ + private int convState(Integer status) { + if (Objects.equals(-1, status)) { + return 3; // 离线 + } + if(Objects.equals(1, status)){ + return 1; + } + return 2; // 在线 + } + + public static void main(String[] args) { + Integer status = 1; + System.out.println(Objects.equals(-1, status)); + System.out.println(Objects.equals(1, status)); + System.out.println(Objects.equals(2, status)); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/SajApi.java b/src/main/java/org/springblade/modules/nh/factory/saj/SajApi.java new file mode 100644 index 0000000..b0c9f74 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/SajApi.java @@ -0,0 +1,125 @@ +package org.springblade.modules.nh.factory.saj; + +import cn.hutool.core.bean.BeanUtil; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.modules.nh.factory.saj.req.QueryDeviceHistoryReq; +import org.springblade.modules.nh.factory.saj.req.QueryPlantEnergyReq; +import org.springblade.modules.nh.factory.saj.req.SajPageReq; +import org.springblade.modules.nh.factory.saj.resp.*; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.stereotype.Service; + +import java.util.Map; + +@Service +@AllArgsConstructor +public class SajApi { + + public static final String baseUrl = "https://developer.saj-electric.cn/prod-api"; + private static final Logger log = LoggerFactory.getLogger(SajApi.class); + + private final SajApiRestTemplate sajApiRestTemplate; + + /** + * 分页查询电站列表 + * @param req + * @return + */ + public SajPageRet queryPlantPage(SajPageReq req) { + String url = baseUrl+"/open/api/developer/plant/page"; + return sajApiRestTemplate.get(assembleUrlParam(url, BeanUtil.beanToMap(req)), BeanUtil.beanToMap(req) ,new ParameterizedTypeReference>() { + }); + } + + /** + * 分页查询设备列表 + * @param req + * @return + */ + public SajPageRet queryDevicePage(SajPageReq req) { + String url = baseUrl+"/open/api/developer/device/page"; + return sajApiRestTemplate.get(assembleUrlParam(url, BeanUtil.beanToMap(req)), BeanUtil.beanToMap(req) ,new ParameterizedTypeReference>() { + }); + } + + /** + * 获取电站的当前发电量接口 + * @param req + * @return + */ + public SajRet currentPlantData(QueryPlantEnergyReq req) { + String url = baseUrl+"/open/api/plant/energy"; + return sajApiRestTemplate.get(assembleUrlParam(url, BeanUtil.beanToMap(req)), BeanUtil.beanToMap(req) ,new ParameterizedTypeReference>() { + }); + } + + /** + * 获取电站的当前发电量接口 + * @param req + * @return + */ + public SajRet getPlantStatisticsData(QueryPlantEnergyReq req) { + String url = baseUrl+"/open/api/plant/getPlantStatisticsData"; + return sajApiRestTemplate.get(assembleUrlParam(url, BeanUtil.beanToMap(req)), BeanUtil.beanToMap(req) ,new ParameterizedTypeReference>() { + }); + } + + /** + * 获取电站详细信息 + * @param plantId + * @return + */ + public SajRet getPlantDetail(String plantId) { + Map params = Maps.newHashMap(); + params.put("plantId",plantId); + String url = baseUrl+"/open/api/plant/details"; + return sajApiRestTemplate.get(assembleUrlParam(url, params), params ,new ParameterizedTypeReference>() { + }); + } + + /** + * 获取设备上传数据信息 + * @param req + * @return + */ + public SajRet getDeviceHistory(QueryDeviceHistoryReq req) { + Map param = BeanUtil.beanToMap(req); + String url = baseUrl+"/open/api/device/uploadData"; + return sajApiRestTemplate.get(assembleUrlParam(url, param), param ,new ParameterizedTypeReference>() { + }); + } + + /** + * 获取设备实时数据 + * @param sn + * @return + */ + public SajRet getDeviceRealtime(String sn) { + Map param = Maps.newHashMap(); + param.put("deviceSn",sn); + String url = baseUrl+"/open/api/device/realtimeDataCommon"; + return sajApiRestTemplate.get(assembleUrlParam(url, param), param ,new ParameterizedTypeReference>() { + }); + } + + + public String assembleUrlParam(String url,Map param) { + url = url+"?"; + for(Map.Entry entry:param.entrySet()){ + if(entry.getValue()!=null){ + url+=entry.getKey()+"="+entry.getValue()+"&"; + } + } + String result = url.substring(0,url.length()-1); + return result; + } + + public static void main(String[] args) { + String url = "https://api.ginlong.com:13333/v1/api/userStationList"; + System.out.println(url.substring("https://api.ginlong.com:13333".length())); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.java b/src/main/java/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.java new file mode 100644 index 0000000..5111e1c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.java @@ -0,0 +1,101 @@ +package org.springblade.modules.nh.factory.saj; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.http.util.HttpUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.common.EzTemplateBase; +import org.springblade.modules.nh.factory.saj.resp.SajRet; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.ParameterizedTypeReference; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.client.BufferingClientHttpRequestFactory; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.SimpleClientHttpRequestFactory; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestClientException; + +import java.util.Map; + +@Service +@AllArgsConstructor +public class SajApiRestTemplate extends EzTemplateBase { + + public static String appId = "VH_dTjpujU4"; + private String appSecret = "bpRNe3ChgQ6SiqLc0hnDV6ukujU4PB16aNyr91VJRNrkdTjpLCArYpYjXjKiZhxx"; + + @Autowired + private BladeRedis redis; + + private static final Logger log = LoggerFactory.getLogger(SajApiRestTemplate.class); + + public SajApiRestTemplate() { + super(createRestTemplate(createHttpRequestFactory())); + } + + @Override + public T get(String url, Map uriVariables, ParameterizedTypeReference responseType) throws RestClientException { + HttpHeaders headers = new HttpHeaders(); + HttpHeaders httpHeaders = HttpHeaders.writableHttpHeaders(headers); + callSajHeaders(url, uriVariables, httpHeaders); + HttpEntity entity = new HttpEntity<>(null, httpHeaders); + T t = super.exchange(url, HttpMethod.GET, entity, responseType, uriVariables).getBody(); + if(t instanceof SajRet){ + SajRet ret = (SajRet) t; + if(ret.getCode()==200010){ + if(!redis.exists("saj_access_token_count")){ + redis.del("saj_access_token"); + redis.setEx("saj_access_token_count",1,60L); + return get(url, uriVariables, responseType); + } + } + } + return t; + } + + protected static ClientHttpRequestFactory createHttpRequestFactory() { + return new BufferingClientHttpRequestFactory(new SimpleClientHttpRequestFactory()); + } + + private void callSajHeaders(String url, Map param, HttpHeaders headers) { + headers.set("accessToken", getAccessToken()); + headers.set("clientSign", CommonUtil.genSign(param)); + headers.set("content-language", "zh_CN"); + } + + private String getAccessToken() { + String accessToken = redis.get("saj_access_token"); + if (StringUtil.isBlank(accessToken)) { + // access_token not exists or expired + Map paramMap = Maps.newHashMap(); + paramMap.put("appId", appId); + paramMap.put("appSecret", appSecret); + String accessTokenUrl = "https://developer.saj-electric.cn/prod-api/open/api/access_token"; + String resp = HttpUtil.get(accessTokenUrl, paramMap); + JSONObject json = JSON.parseObject(resp); + if(json.getIntValue("code")==200){ + JSONObject data = json.getJSONObject("data"); + accessToken = data.getString("access_token"); +// accessTokenExpires = data.getIntValue("expires"); + if(StringUtil.isNotBlank(accessToken)){ + redis.setEx("access_token",accessToken,3600L); + } + } + } + return accessToken; + } + + + public static void main(String[] args) { + SajApiRestTemplate restTemplate = new SajApiRestTemplate(); + System.out.println(restTemplate.getAccessToken()); + } +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/req/BaseReq.java b/src/main/java/org/springblade/modules/nh/factory/saj/req/BaseReq.java new file mode 100644 index 0000000..8a428ca --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/req/BaseReq.java @@ -0,0 +1,9 @@ +package org.springblade.modules.nh.factory.saj.req; + +import lombok.Data; +import org.springblade.modules.nh.factory.saj.SajApiRestTemplate; + +@Data +public class BaseReq{ + private String appId = SajApiRestTemplate.appId; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.java b/src/main/java/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.java new file mode 100644 index 0000000..4e8482b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.saj.req; + +import lombok.Data; + +@Data +public class QueryDeviceHistoryReq { + private String deviceSn;// String YES 逆变器SN码 + private String startTime;// String NO 开始日期 yyyy-MM-dd HH:mm:ss 比如2011-11-11 11:11:11 + private String endTime;// String NO 结束日期 yyyy-MM-dd HH:mm:ss 比如2011-11-11 12:11:11 + private Integer timeUnit;// Integer NO 查询时间类型 0分钟; 1日; 2月; 3年 +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/req/QueryPlantEnergyReq.java b/src/main/java/org/springblade/modules/nh/factory/saj/req/QueryPlantEnergyReq.java new file mode 100644 index 0000000..f3edb0f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/req/QueryPlantEnergyReq.java @@ -0,0 +1,10 @@ +package org.springblade.modules.nh.factory.saj.req; + +import lombok.Data; + +@Data +public class QueryPlantEnergyReq{ + private String plantId;// String YES 电站id + private String deviceSns;// String YES 电站下的设备列表(多个用,分隔) + private String clientDate;// String YES 客户端日期 yyyy-MM-dd HH:mm:ss +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/req/SajPageReq.java b/src/main/java/org/springblade/modules/nh/factory/saj/req/SajPageReq.java new file mode 100644 index 0000000..04dc1b1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/req/SajPageReq.java @@ -0,0 +1,9 @@ +package org.springblade.modules.nh.factory.saj.req; + +import lombok.Data; + +@Data +public class SajPageReq extends BaseReq{ + private Integer pageSize;// Integer NO 分页大小,默认100 + private Integer pageNum = 100;// Integer NO 当前页数,默认1 +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/BasePlant.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/BasePlant.java new file mode 100644 index 0000000..15c99b1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/BasePlant.java @@ -0,0 +1,10 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +@Data +public class BasePlant { + private String plantId; // string 电站id + private String plantName; // string 电站名称 + private String NMI; // string 电表NMI +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/DeviceRealtimeData.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/DeviceRealtimeData.java new file mode 100644 index 0000000..2d986bc --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/DeviceRealtimeData.java @@ -0,0 +1,114 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class DeviceRealtimeData { + private String deviceSn;// string 设备sn + private String moduleSn;// string 采集sn + private String dataTime;// Date 数据更新时间 + private String invTime;// Date 设备时间 + private Integer meterAStatus;// String meterA电网 1有电表 0无电表 + private String meterAVolt1;// String meterA电网 电压1 + private String meterACurr1;// String meterA电网 电流1 + private String meterAPowerWatt1;// String meterA电 网有功功率1 + private String meterAPowerVA1;// String meterA电网 视在功率1 + private String meterAFreq1;// String meterA电网 频率1 + private String meterAVolt2;// String meterA电网 电压2 + private String meterACurr2;// String meterA电网 电流2 + private String meterAPowerWatt2;// String meterA电 网有功功率2 + private String meterAPowerVA2;// String meterA电网 视在功率2 + private String meterAFreq2;// String meterA电网 频率2 + private String meterAVolt3;// String meterA电网 电压3 + private String meterACurr3;// String meterA电网 电流3 + private String meterAPowerWatt3;// String meterA电 网有功功率3 + private String meterAPowerVA3;// String meterA电网 视在功率3 + private String meterAFreq3;// String meterA电网 频率3 + private String pv1volt;// String PV1 电压 + private String pv1curr;// String PV1 电流 + private String pv2volt;// String PV2 电压 + private String pv2curr;// String PV2 电流 + private String pv3volt;// String PV3 电压 + private String pv3curr;// String PV3 电流 + private String pv1power;// String PV1 功率 + private String pv2power;// String PV2 功率 + private String pv3power;// String PV3 功率 + private String pv4power;// String PV4 功率 + private String pv5power;// String PV5 功率 + private String pv6power;// String PV6 功率 + private String pv7power;// String PV7 功率 + private String pv8power;// String PV8 功率 + private String pv9power;// String PV9 功率 + private String pv10power;// String PV10 功率 + private String pv11power;// String PV11 功率 + private String pv12power;// String PV12 功率 + private String totalPVPower;// String 当前发电功率(储能机H系列请使用此字段) + private String totalLoadPowerWatt;// String 当前总用电功率-负载功率 + private Double totalGridPowerWatt;// String 当前并网功率(并网机R系列请使用此字段) + private Double backupTotalLoadPowerWatt;// String Backup功率 + + @JsonProperty("rGridVolt") + private Double rGridVolt;// String R相电网电压 + @JsonProperty("rGridFreq") + private Double rGridFreq;// String R相电网频率 + @JsonProperty("rGridCurr") + private Double rGridCurr;// String R相电网电流 + private Double rGridPowerWatt;// String R相电网功率-负载功率 + private Double rInvVolt;// String R相逆变电压 + private Double rInvCurr;// String R相逆变电流 + private Double rInvFreq;// String R相逆变频率 + private Double rInvPowerWatt;// String R相逆变有功功率 + private Double rOutVolt;// String R 相输出电压 + private Double rOutCurr;// String R 相输出电流 + private Double rOutFreq;// String R 相输出频率 + private Double rOutPowerVA;// String R 相输出视在功率 + private Double rOutPowerWatt;// String R 相输出有功功率 + @JsonProperty("sGridVolt") + private Double sGridVolt;// String S相电网电压 + private Double sGridFreq;// String S相电网频率 + @JsonProperty("sGridCurr") + private Double sGridCurr;// String S相电网电流 + private Double sGridPowerWatt;// String S相电网功率-负载功率 + private Double sInvVolt;// String S相逆变电压 + private Double sInvCurr;// String S相逆变电流 + private Double sInvFreq;// String S相逆变频率 + private Double sInvPowerWatt;// String S相逆变有功功率 + private Double sOutVolt;// String S 相输出电压 + private Double sOutCurr;// String S 相输出电流 + private Double sOutFreq;// String S 相输出频率 + private Double sOutPowerVA;// String S 相输出视在功率 + private Double sOutPowerWatt;// String S 相输出有功功率 + @JsonProperty("tGridVolt") + private Double tGridVolt;// String T相电网电压 + private Double tGridFreq;// String T相电网频率 + @JsonProperty("tGridCurr") + private Double tGridCurr;// String T相电网电流 + private Double tGridPowerWatt;// String T相电网功率-负载功率 + private Double tInvVolt;// String T相逆变电压 + private Double tInvCurr;// String T相逆变电流 + private Double tInvFreq;// String T相逆变频率 + private Double tInvPowerWatt;// String T相逆变有功功率 + private Double tOutVolt;// String T 相输出电压 + private Double tOutCurr;// String T 相输出电流 + private Double tOutFreq;// String T 相输出频率 + private Double tOutPowerVA;// String T 相输出视在功率 + private Double tOutPowerWatt;// String T 相输出有功功率 + private Double parallTotalPVMeterEnergy;// String 光伏总发电量 + private Double totalFeedInEnergy;// String 电网总购电量 + private Double totalTotalLoadEnergy;// String 总负载用电量 + private Double totalSellEnergy;// String 总卖电量 + private Double todayLoadEnergy;// String 日负载用电量 + private Double todayPvEnergy;// String 今日发电量 + private Double totalPvEnergy;// String 总pv发电 + private Double gridDirection;// String 1:电网卖电,0:无电网能量流动,-1:电网买电 + private Double todaySellEnergy;// String 今日卖电量 + private Double todayFeedInEnergy;// String 今日买电 + private Double todayBatDisEnergy;// String 今日放电 + private Double todayBatChgEnergy;// String 今日充电 + private Double batteryDirection;// String 正放 负充 + private Double sysGridPowerWatt;// String 电网功率 + private Double sysTotalLoadWatt;// String 负载功率 + private Double sinkTempC;// double 散热器温度 + private Double ambTempC;// double 环境温度 +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDevice.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDevice.java new file mode 100644 index 0000000..4521a92 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDevice.java @@ -0,0 +1,17 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +@Data +public class SajDevice { + private String deviceSn;// string 设备SN码 + private String userName;// string 业主名称 + private String country;// string 设备所在国家 + private String modelType;// string 设备系列,就是适配的机型系列 + private String deviceType;// string 设备型号 + private String isAlarm;// string 是否告警 0否 1是 + private String isOnline;// string 是否在线 0否 1是 + private String plantId;// string 电站id + private String plantName;// string 电站名称 + private String systemPower;// string 容量 +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.java new file mode 100644 index 0000000..2ef80e4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +import java.util.List; + +@Data +public class SajDeviceData { + private String deviceType;//, + private String timeUnit;//, + private List data;// +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.java new file mode 100644 index 0000000..7d14f1f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.java @@ -0,0 +1,11 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +@Data +public class SajDeviceDataItem { + private String dataTime;// + @JsonProperty("pVEnergy") + private Double pVEnergy;// +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPageRet.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPageRet.java new file mode 100644 index 0000000..0f2b88d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPageRet.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +import java.util.List; + +@Data +public class SajPageRet { + private int code; + private String msg; + private long total; // long 总记录数 + private long totalPage; // long 总页数 + private List rows; // List +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.java new file mode 100644 index 0000000..0097ce2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.java @@ -0,0 +1,16 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SajPlantCurrent { + private String updateDate;// Date 上报数据更新时间 + private Double powerNow;// BigDecimal 当前功率 + private Double todayPvEnergy;// BigDecimal 发电量-当日 + private Double monthPvEnergy;// BigDecimal 发电量-月 + private Double yearPvEnergy;// BigDecimal 发电量-年 + private Double totalPvEnergy;// BigDecimal 发电量-累计 + private Double batEnergyPercent;// BigDecimal 电池剩余电量(SOC) +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantData.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantData.java new file mode 100644 index 0000000..7f1e9ed --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantData.java @@ -0,0 +1,25 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +import java.util.Date; + +@Data +public class SajPlantData { + private String plantUid;// string 电站uid + private String deviceSn;// string 电站下的逆变器sn + private Integer type;// Integer 电站类型,0并网,1储能,2交流耦合 + private String plantName;// string 电站名称 + private Double powerNow;// BigDecimal 当前功率 + private Integer deviceStatus;// Integer 逆变器状态(1正常运行,2告警运行,3离线,4历史逆变器,5未监控) + private Double batEnergyPercent;// BigDecimal 电池剩余电量(SOC) + private Double todayPvEnergy;// BigDecimal 当日发电量 + private Double monthPvEnergy;// BigDecimal 月发电量 + private Double yearPvEnergy;// BigDecimal 年发电量 + private Double totalPvEnergy;// BigDecimal 累计发电量 + private String currency;// String 货币符号 + private Date updateDate;// Date 上报数据更新时间 + private Double totalPlantTreeNum;// BigDecimal 累计植树 + private Double totalReduceCo2;// BigDecimal 累计减排二氧化碳 + private String co2UnitOfWeight;// String 二氧化碳重量单位 +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.java new file mode 100644 index 0000000..f6d23db --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.java @@ -0,0 +1,49 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +@Data +public class SajPlantDetail { + private String plantUid;// String 电站UID + private String plantName;// String 电站名称 + private Integer type;// Integer 电站类型,0并网,1储能,3交流耦合 + private Double systemPower;// BigDecimal 电站装机容量 + private Double gridPrice;// BigDecimal 并网电价 + private String currencyName;// String 货币单位简称 + private String currency;// String 货币单位符号 + private String timeZone;// String 时区ID + private String countryCode;// String 国家编码 + private String provinceCode;// String 省份编码 + private String cityCode;// String 城市编码 + private String countyCode;// String 区/县编码 + private String country;// String 国家名称 + private String province;// String 省份名称 + private String city;// String 城市名 + private String county;// String 区/县名称 + private String street;// String 街道/镇名称 + private String streetType;// String 街道类型 + private String address;// String 详细地址 + private String fullAddress;// String 完整地址 + private Double latitude;// BigDecimal 纬度 + private Double longitude;// BigDecimal 经度 + private String zipCode;// String 邮政编码 + private String meterId;// String 电表序列号NMI + private Integer moduleNum;// Integer 组件数量 + private String gridNetType;// String 并网类型(1:全额上网,2:自发自用余额上网,3:离网模式) + private String payMode;// String 出资方式(1:业主全款,2:业主贷款,3:自投电站,4:与业主合资) + private String pvPanelAzimuth;// String 光伏板方位角,单位° + private String pvPanelAngle;// String 光伏板倾角,单位° + private String phone;// String 业主电话 + private String email;// String 业主邮箱 + private String timeZoneName;// String 时区名称 + private String projectPic;// String 电站图片 + private String plantNo;// String 电站编码 + private Integer useType;// Integer 使用类型(0 家庭户用(默认),1 工商业屋顶,2 地面电站,3 扶贫电站) + private Integer isInstallMeter;// Integer 是否安装负载监控(1是,0否) + private Integer secModuleIfNewVersion;// Integer 是否新版负载监控(1是,0否) + private Integer isShared;// Integer 是否为分享电站(1是,0否),注意分享电站不能新增和删除设备,只能修改电站信息和设备信息 + private String ownerName;// String 电站所有人 + private String ownerPhone;// String 电站所有人电话 + private String ownerEmail;// String 电站所有人邮箱 + private String createDate;// String 电站创建时间 +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajRet.java b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajRet.java new file mode 100644 index 0000000..e149599 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/resp/SajRet.java @@ -0,0 +1,10 @@ +package org.springblade.modules.nh.factory.saj.resp; + +import lombok.Data; + +@Data +public class SajRet { + private int code; + private String msg; + private T data; +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.java new file mode 100644 index 0000000..5bbfb10 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.java @@ -0,0 +1,141 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.req.QueryDeviceHistoryReq; +import org.springblade.modules.nh.factory.saj.req.QueryPlantEnergyReq; +import org.springblade.modules.nh.factory.saj.resp.*; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.service.*; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class SajDeviceHistoryEachRunner extends EachRunner { + + private final SajApi sajApi; + private final IMonitorInverterStatService inverterStatService; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryDailyStatService dailyStatService; + private final IMonitorEntryMonthStatService monthStatService; + private final IMonitorEntryYearStatService yearStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId,ctx); + } + + public void handleData(String stationId,Map ctx) throws IOException { + List sns = inverterStatService.getSnsByStation(stationId); + syncLast30Days(stationId,sns); + syncLast12Month(stationId,sns); + } + + private void syncLast30Days(String outStationId,List sns){ + if(CollectionUtil.isEmpty(sns)) return; + + Date end = DateUtil.now(); + Date start = DateUtil.minusMonths(end,1); + List dayEnergList = Lists.newArrayList(); + QueryDeviceHistoryReq req = new QueryDeviceHistoryReq(); + req.setTimeUnit(1); + req.setStartTime(DateUtil.formatDateTime(start)); + req.setEndTime(DateUtil.formatDateTime(end)); + + for(String sn : sns){ + req.setDeviceSn(sn); + SajRet resp = sajApi.getDeviceHistory(req); + if(resp.getCode()==200){ + SajDeviceData data = resp.getData(); + List dataList = data.getData(); + for(SajDeviceDataItem dataItem : dataList){ + if(dataItem.getPVEnergy()!=null){ + DayEnergyDTO dayEnergyDTO = new DayEnergyDTO(); + dayEnergyDTO.setStationId(outStationId); + dayEnergyDTO.setUnit("kwh"); + dayEnergyDTO.setValue(dataItem.getPVEnergy()); + Date time = DateUtil.parse(dataItem.getDataTime(),"yyyy-MM-dd hh:mm:ss"); + dayEnergyDTO.setDate(DateUtil.format(time,"yyyy-MM-dd")); + dayEnergList.add(dayEnergyDTO); + } + } + } + } + + if(dayEnergList.size()>0){ + monthStatService.syncMonthStatData(dayEnergList); + } + } + + private void syncLast12Month(String outStationId,List sns){ + if(CollectionUtil.isEmpty(sns)) return; + + Date end = DateUtil.now(); + Date start = DateUtil.minusMonths(end,24); + List monthEnergyDTOList = Lists.newArrayList(); + QueryDeviceHistoryReq req = new QueryDeviceHistoryReq(); + req.setTimeUnit(2); + req.setStartTime(DateUtil.formatDateTime(start)); + req.setEndTime(DateUtil.formatDateTime(end)); + + for(String sn : sns){ + req.setDeviceSn(sn); + SajRet resp = sajApi.getDeviceHistory(req); + if(resp.getCode()==200){ + SajDeviceData data = resp.getData(); + List dataList = data.getData(); + for(SajDeviceDataItem dataItem : dataList){ + if(dataItem.getPVEnergy()!=null) { + MonthEnergyDTO monthEnergyDTO = new MonthEnergyDTO(); + monthEnergyDTO.setSysType(NhConstants.SYS_TYPE_SAJ); + monthEnergyDTO.setUnit("kwh"); + monthEnergyDTO.setValue(dataItem.getPVEnergy()); + Date time = DateUtil.parse(dataItem.getDataTime(), "yyyy-MM-dd hh:mm:ss"); + monthEnergyDTO.setMonth(DateUtil.format(time, "yyyy-MM")); + monthEnergyDTO.setStationId(outStationId); + monthEnergyDTOList.add(monthEnergyDTO); + } + } + } + } + + if(monthEnergyDTOList.size()>0){ + yearStatService.syncYearStatData(monthEnergyDTOList); + } + } + + private GetStationR newGetStationR(){ + GetStationR r = new GetStationR(); + r.setState(1); + r.setDayEnergy(0D); + r.setMonthEnergy(0D); + r.setYearEnergy(0D); + r.setAllEnergy(0D); + r.setDayEnergyStr("kwh"); + r.setMonthEnergyStr("kwh"); + r.setYearEnergyStr("kwh"); + r.setAllEnergyStr("kwh"); + r.setVendorIndex(1); + r.setPower(0D); + r.setPowerStr("kw"); + r.setDataTimestamp(System.currentTimeMillis()); + return r; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.java new file mode 100644 index 0000000..a493802 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.java @@ -0,0 +1,99 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.req.SajPageReq; +import org.springblade.modules.nh.factory.saj.resp.SajDevice; +import org.springblade.modules.nh.factory.saj.resp.SajDevice; +import org.springblade.modules.nh.factory.saj.resp.SajPageRet; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +@Service +@Slf4j +@AllArgsConstructor +public class SajDeviceListPageAction extends PageAction { + + private final SajApi sajApi; + private final IMonitorInverterStatService inverterStatService; + + @Override + public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { + SajPageReq req = new SajPageReq(); + req.setPageSize(pageSize); + req.setPageNum(page); + + SajPageRet resp = sajApi.queryDevicePage(req); + if (resp.getCode()==200) { + PageInfo ret = new PageInfo<>(); + List data = resp.getRows(); + long pages = resp.getTotalPage(); + ret.setPages((int) pages); + ret.setData(null); + ret.setList(data); + return ret; + } + log.error("query power station monitor data error: {}, code: {}", resp.getMsg(), resp.getRows()); + return null; + } + + @Override + public void handlePageInfo(PageInfo pageInfo, Map ctx) { + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + List convList = conv(list); + try { + Set updateFields = new HashSet<>(); +// updateFields.add("name"); + updateFields.add("sn"); +// updateFields.add("power"); + inverterStatService.syncInverterDetails(convList, NhConstants.SYS_TYPE_SAJ, updateFields); + } catch (Exception ex) { + log.error("sync inverter details error", ex); + } + } + + private List conv(List list) { + List ret = new ArrayList<>(); + for (SajDevice r : list) { + ret.add(convR(r)); + } + return ret; + } + + private GetInverterDetailR convR(SajDevice r) { + GetInverterDetailR ret = new GetInverterDetailR(); + ret.setVendorIndex(1); + ret.setDataTimestamp(new Date().getTime()); + ret.setStationId(r.getPlantId()); + ret.setId(r.getDeviceSn()); + ret.setName(r.getDeviceType()); + ret.setSn(r.getDeviceSn()); + ret.setPower(0D); + ret.setPowerStr("kw"); + ret.setVendorIndex(0); + return ret; + } + + public static void main(String[] args) { + Integer status = 1; + System.out.println(Objects.equals(-1, status)); + System.out.println(Objects.equals(1, status)); + System.out.println(Objects.equals(2, status)); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.java new file mode 100644 index 0000000..8eb7b89 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.java @@ -0,0 +1,134 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.resp.DeviceRealtimeData; +import org.springblade.modules.nh.factory.saj.resp.SajRet; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +/** + * 实时设备数据 + */ +@Service +@AllArgsConstructor +public class SajDeviceRealtimeEachRunner extends EachRunner { + + private final SajApi sajApi; + private final IMonitorInverterStatService inverterStatService; + private final IMonitorInverterDailyStatService inverterDailyStatService; + + @Override + public void handle(String sn, Map ctx) throws IOException { + handleData(sn); + } + + public void handleData(String sn) { + MonitorInverterStatEntity inverterStat = inverterStatService.getBySn(sn); + if(inverterStat==null) return; + SajRet resp = sajApi.getDeviceRealtime(sn); + if(resp.getCode()==200){ + DeviceRealtimeData data = resp.getData(); + if(data!=null){ + GetInverterDetailR inverterDetailR = convR(data); + inverterDetailR.setVendorIndex(1); + inverterDetailR.setStationId(inverterStat.getOutStationId()); + try{ + List inverterDetailRList = Lists.newArrayList(); + inverterDetailRList.add(inverterDetailR); + inverterStatService.syncInverterDetails(inverterDetailRList, NhConstants.SYS_TYPE_SAJ, new HashSet<>()); + }catch (Exception e){ + e.printStackTrace(); + } + try{ + List energyList = Lists.newArrayList(); + InverterHourlyEnergyDTO hourlyEnergyDTO = new InverterHourlyEnergyDTO(); + hourlyEnergyDTO.setJlgl(inverterDetailR.getPac()); + hourlyEnergyDTO.setEnergy(inverterDetailR.getEToday()); + hourlyEnergyDTO.setSn(inverterDetailR.getSn()); + hourlyEnergyDTO.setSyncTime(new Date()); + energyList.add(hourlyEnergyDTO); + inverterDailyStatService.syncHourlyData(NhConstants.SYS_TYPE_SAJ,energyList); + }catch (Exception e){ + e.printStackTrace(); + } + } + } + } + + private GetInverterDetailR convR(DeviceRealtimeData r) { + GetInverterDetailR ret = new GetInverterDetailR(); + + ret.setDataTimestamp(new Date().getTime()); + ret.setId(r.getDeviceSn()); + ret.setName("逆变器"); + ret.setSn(r.getDeviceSn()); + ret.setPower(0d); + ret.setPowerStr("kw"); + //01.正常 02.离线 3.报警 4.故障 5.自定义报警 + //平台1.在线 2.离线,3.报警 + ret.setState(1); + + for(int i=1;i<=12;i++){ + String pvkey = "pv"+i+"volt"; + Object pv= CommonUtil.reflectGetField(r,pvkey); + String pikey = "pv"+i+"curr"; + Object pi= CommonUtil.reflectGetField(r,pikey); + if(pv!=null){ + Double upv = Double.parseDouble(pv.toString()); + if(upv>0){ + CommonUtil.reflectSetField(ret,"uPv"+i, upv); + CommonUtil.reflectSetField(ret,"iPv"+i, Double.parseDouble(pi.toString())); + }else{ + break; + } + + } + } + + ret.setFac(r.getRGridFreq()); + + ret.setReactivePower(0D); + ret.setReactivePowerStr("kwh"); + // + ret.setApparentPower(0D); + ret.setApparentPowerStr("kwh"); + + ret.setPowerFactor(0D); + + ret.setPac(r.getTotalGridPowerWatt()); + ret.setPacStr("w"); + + ret.setETotal(r.getTotalPvEnergy()); + ret.setETotalStr("kwh"); + + ret.setEToday(r.getTodayPvEnergy()); + ret.setETodayStr("kwh"); + + ret.setUAc1(r.getRGridVolt()); + ret.setIAc1(r.getRGridCurr()); + ret.setUAc2(r.getSGridVolt()); + ret.setIAc2(r.getSGridCurr()); + ret.setUAc3(r.getTGridVolt()); + ret.setIAc3(r.getTGridCurr()); + + ret.setInverterTemperature(r.getAmbTempC()); + return ret; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.java new file mode 100644 index 0000000..df46995 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.java @@ -0,0 +1,141 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.TaskControl; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Map; + +@EnableScheduling +@Component +@Slf4j +@AllArgsConstructor +public class SajScheduler { + + private final IMonitorEntryStatService entryStatService; + private final IMonitorInverterStatService inverterStatService; + private final SajStationListPageAction stationListPageAction; + private final SajDeviceListPageAction deviceListPageAction; + private final SajStationDetailEachRunner stationDetailEachRunner; + private final SajStationDataEachRunner stationDataEachRunner; + private final SajDeviceHistoryEachRunner deviceHistoryEachRunner; + private final SajDeviceRealtimeEachRunner deviceRealtimeEachRunner; + private final SajStationFisGenDateEachRunner fisGenDateEachRunner; + private final SajStationStatusEachRunner stationStatusEachRunner; + + + /** + * 每5分钟同步一次电站列表,之所以同步如此频繁,目的是记录电站每小时的发电量。 + */ + @Scheduled(cron = "40 33 * * * ?") + public void syncUserStationList() { + TaskControl.runTask("saj:syncUserStationList", new Runnable() { + @Override + public void run() { + stationListPageAction.start("saj 获取用户电站列表", 100, null,1); + } + }); + } + + /** + * 每5分钟同步一次电站列表,之所以同步如此频繁,目的是记录电站每小时的发电量。 + */ + @Scheduled(cron = "50 */13 * * * ?") + public void syncDeviceList() { + TaskControl.runTask("saj:syncUserStationList", new Runnable() { + @Override + public void run() { + deviceListPageAction.start("saj 获取用户电站列表", 100, null,1); + } + }); + } + + @Scheduled(cron = "10 11 */3 * * ?") + public void syncUserStationDetail() { + TaskControl.runTask("saj:syncUserStationDetail", new Runnable() { + @Override + public void run() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getType, NhConstants.SYS_TYPE_SAJ) + .eq(MonitorEntryStatEntity::getState,0) + .select(MonitorEntryStatEntity::getOutStationId) + .eq(MonitorEntryStatEntity::getVendorIndex,1); + List stationIds = entryStatService.listObjs(queryWrapper); + stationDetailEachRunner.start(stationIds, "获取单个电站详情", 0L, null); + } + }); + } + +// @Scheduled(cron = "10 38 * * * ?") +// public void syncStationCurrent() { +// TaskControl.runTask("saj:syncUserStationData", new Runnable() { +// @Override +// public void run() { +// List stationIds = entryStatService.getStationIds(NhConstants.SYS_TYPE_SAJ); +// stationDataEachRunner.start(stationIds, "获取电站发电量", 0L, null); +// } +// }); +// } + + @Scheduled(cron = "50 30 4 * * ?") + public void syncUserStationMonthYearData() { + TaskControl.runTask("saj:syncUserStationMonthYearData", new Runnable() { + @Override + public void run() { + List stationIds = entryStatService.getStationIds(NhConstants.SYS_TYPE_SAJ); + deviceHistoryEachRunner.start(stationIds, "获取电站发电量", 0L, null); + } + }); + } + + + @Scheduled(cron = "55 15 * * * ?") + public void syncDeviceRealtime() { + TaskControl.runTask("saj:syncDeviceRealtime", new Runnable() { + @Override + public void run() { + List sns = inverterStatService.getInverterSns(NhConstants.SYS_TYPE_SAJ); + deviceRealtimeEachRunner.start(sns, "获取设备实时发电量", 0L, null); + } + }); + } + + @Scheduled(cron = "0 40 * * * ?") + public void syncStationFisGenDate() { + TaskControl.runTask("huawei:syncStationFisGenDate", new Runnable() { + @Override + public void run() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getType, NhConstants.SYS_TYPE_SAJ) + .isNull(MonitorEntryStatEntity::getFisGenerateTime) + .gt(MonitorEntryStatEntity::getEta,0) + .select(MonitorEntryStatEntity::getOutStationId); + List stationIds = entryStatService.listObjs(queryWrapper); + fisGenDateEachRunner.start(stationIds, "获取电站的首日发电时间", 0L, null); + } + }); + } + + @Scheduled(cron = "25 */13 * * * ?") + public void syncStationStatus() { + TaskControl.runTask("huawei:syncStationFisGenDate", new Runnable() { + @Override + public void run() { + List stationIds = entryStatService.getStationIds(NhConstants.SYS_TYPE_SAJ); + stationStatusEachRunner.start(stationIds, "获取电站发电量", 0L, null); + } + }); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDataEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDataEachRunner.java new file mode 100644 index 0000000..426d68c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDataEachRunner.java @@ -0,0 +1,137 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.req.QueryPlantEnergyReq; +import org.springblade.modules.nh.factory.saj.resp.*; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.*; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class SajStationDataEachRunner extends EachRunner { + + private final SajApi sajApi; + private final IMonitorInverterStatService inverterStatService; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryDailyStatService dailyStatService; + private final IMonitorEntryMonthStatService monthStatService; + private final IMonitorEntryYearStatService yearStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId,ctx); + } + + public void handleData(String stationId,Map ctx) throws IOException { + QueryPlantEnergyReq req = new QueryPlantEnergyReq(); + req.setPlantId(stationId); + List sns = inverterStatService.getSnsByStation(stationId); + req.setDeviceSns(StringUtil.join(sns,",")); + syncNow(req); + } + + private void syncLast30Days(QueryPlantEnergyReq req){ + Date now = DateUtil.parse(DateUtil.format(new Date(),"yyyyMMdd"),"yyyyMMdd"); + Date startDate = DateUtil.minusHours(now,1); + List dayEnergList = Lists.newArrayList(); + for(int i=1;i<=30;i++){ + Date localDate = DateUtil.minusDays(startDate,i); + req.setClientDate(DateUtil.formatDateTime(localDate)); + SajRet resp = sajApi.getPlantStatisticsData(req); + if(resp.getCode()==200){ + SajPlantData plant = resp.getData(); + DayEnergyDTO dayEnergyDTO = new DayEnergyDTO(); + dayEnergyDTO.setStationId(req.getPlantId()); + dayEnergyDTO.setUnit("kwh"); + dayEnergyDTO.setValue(plant.getTodayPvEnergy()); + dayEnergyDTO.setDate(DateUtil.formatDate(localDate)); + dayEnergList.add(dayEnergyDTO); + } + } + if(dayEnergList.size()>0){ + monthStatService.syncMonthStatData(dayEnergList); + } + } + + private void syncLast12Month(QueryPlantEnergyReq req){ + Date now = DateUtil.parse(DateUtil.format(new Date(),"yyyyMM"),"yyyyMM"); + Date startDate = DateUtil.minusHours(now,1); + List monthEnergyDTOList = Lists.newArrayList(); + for(int i=0;i<12;i++){ + Date localDate = DateUtil.minusMonths(startDate,i); + req.setClientDate(DateUtil.formatDateTime(localDate)); + SajRet resp = sajApi.getPlantStatisticsData(req); + if(resp.getCode()==200){ + SajPlantData plant = resp.getData(); + MonthEnergyDTO monthEnergyDTO = new MonthEnergyDTO(); + monthEnergyDTO.setSysType(NhConstants.SYS_TYPE_SAJ); + monthEnergyDTO.setUnit("kwh"); + monthEnergyDTO.setValue(plant.getMonthPvEnergy()); + monthEnergyDTO.setMonth(DateUtil.format(localDate,"yyyy-MM")); + monthEnergyDTO.setStationId(req.getPlantId()); + monthEnergyDTOList.add(monthEnergyDTO); + } + } + if(monthEnergyDTOList.size()>0){ + yearStatService.syncYearStatData(monthEnergyDTOList); + } + } + + private void syncNow(QueryPlantEnergyReq req){ + req.setClientDate(DateUtil.formatDateTime(new Date())); + SajRet resp = sajApi.currentPlantData(req); + if(resp.getCode()==200){ + GetStationR r = newGetStationR(); + r.setId(req.getPlantId()); + SajPlantCurrent plant = resp.getData(); + r.setDayEnergy(plant.getTodayPvEnergy()); + r.setMonthEnergy(plant.getMonthPvEnergy()); + r.setYearEnergy(plant.getYearPvEnergy()); + r.setAllEnergy(plant.getTotalPvEnergy()); + r.setPower(plant.getPowerNow()); + List syncList = Lists.newArrayList(); + syncList.add(r); + monitorEntryStatService.syncEntryStat(syncList, NhConstants.SYS_TYPE_SAJ); + dailyStatService.syncEntryDailyStat(syncList, NhConstants.SYS_TYPE_SAJ); + } + } + + private GetStationR newGetStationR(){ + GetStationR r = new GetStationR(); + r.setState(1); + r.setDayEnergy(0D); + r.setMonthEnergy(0D); + r.setYearEnergy(0D); + r.setAllEnergy(0D); + r.setDayEnergyStr("kwh"); + r.setMonthEnergyStr("kwh"); + r.setYearEnergyStr("kwh"); + r.setAllEnergyStr("kwh"); + r.setVendorIndex(1); + r.setPower(0D); + r.setPowerStr("kw"); + r.setDataTimestamp(System.currentTimeMillis()); + return r; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.java new file mode 100644 index 0000000..25c572b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.java @@ -0,0 +1,56 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthR; +import org.springblade.modules.nh.factory.ginlong.dto.stationmonth.GetStationMonthReq; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.resp.SajPlantDetail; +import org.springblade.modules.nh.factory.saj.resp.SajRet; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class SajStationDetailEachRunner extends EachRunner { + + private final SajApi sajApi; + private final IMonitorEntryStatService entryStatService; + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId); + } + + public void handleData(String stationId) throws IOException { + SajRet resp = sajApi.getPlantDetail(stationId); + if(resp.getCode()==200){ + SajPlantDetail detail = resp.getData(); + MonitorEntryStatEntity entryStat = entryStatService.getByOutId(stationId); + if(detail!=null && entryStat!=null){ + entryStat.setCapacity(detail.getSystemPower()); + entryStat.setState(1); + entryStatService.updateById(entryStat); + } + + } + + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.java new file mode 100644 index 0000000..83d0235 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.java @@ -0,0 +1,102 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasData; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasR; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasReqByTime; +import org.springblade.modules.nh.factory.goodwe.dto.getplantsstaticdatas.GetPlantsStaticDatasSiteData; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.req.QueryDeviceHistoryReq; +import org.springblade.modules.nh.factory.saj.resp.SajDeviceData; +import org.springblade.modules.nh.factory.saj.resp.SajDeviceDataItem; +import org.springblade.modules.nh.factory.saj.resp.SajRet; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.*; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class SajStationFisGenDateEachRunner extends EachRunner { + + private final SajApi sajApi; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryYearStatService yearStatService; + private final IMonitorEntryMonthStatService monitorEntryMonthStatService; + private final IMonitorInverterStatService inverterStatService; + + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId, 1); + } + + public void handleData(String stationId,int index) throws IOException { + String month = yearStatService.getFirstMonth(stationId); + if(month==null){ + return; + } + List sns = inverterStatService.getSnsByStation(stationId); + if(CollectionUtil.isEmpty(sns)) return; + + String startStr = month+"-01"; + Date start = DateUtil.parse(startStr,"yyyy-MM-dd"); + Date end = DateUtil.plusMonths(start,1); + QueryDeviceHistoryReq req = new QueryDeviceHistoryReq(); + req.setTimeUnit(1); + req.setStartTime(DateUtil.formatDateTime(start)); + req.setEndTime(DateUtil.formatDateTime(end)); + req.setDeviceSn(sns.get(0)); + SajRet resp = sajApi.getDeviceHistory(req); + + if(resp.getCode()==200){ + SajDeviceData data = resp.getData(); + List dataList = data.getData(); + Date firstDate = null; + List dayEnergList = new ArrayList<>(); + if(dataList!=null && dataList.size()>0){ + for (SajDeviceDataItem s : dataList) { + if(s.getPVEnergy()>0){ + Date date2 = DateUtil.parse(s.getDataTime(),"yyyy-MM-dd hh:mm:ss"); + if(firstDate!=null){ + if(date2.before(firstDate)){ + firstDate = date2; + } + }else{ + firstDate = date2; + } + } + DayEnergyDTO dayEnergyDTO = new DayEnergyDTO(); + dayEnergyDTO.setStationId(stationId); + dayEnergyDTO.setUnit("kwh"); + dayEnergyDTO.setValue(s.getPVEnergy()); + dayEnergyDTO.setDate(s.getDataTime()); + dayEnergList.add(dayEnergyDTO); + } + } + if(firstDate!=null){ + monitorEntryStatService.updateFisDate(stationId,DateUtil.formatDate(firstDate)); + monitorEntryMonthStatService.syncMonthStatData(dayEnergList); + } + + } + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.java new file mode 100644 index 0000000..7af8848 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.java @@ -0,0 +1,107 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.modules.nh.factory.common.PageAction; +import org.springblade.modules.nh.factory.common.PageInfo; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.goodwe.dto.querypowerstationmonitor.QueryPowerStationMonitorR; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.req.SajPageReq; +import org.springblade.modules.nh.factory.saj.resp.BasePlant; +import org.springblade.modules.nh.factory.saj.resp.SajPageRet; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.io.IOException; +import java.util.*; + +@Service +@Slf4j +@AllArgsConstructor +public class SajStationListPageAction extends PageAction { + + private final SajApi sajApi; + private final IMonitorEntryStatService entryStatService; + + @Override + public PageInfo pageData(int page, int pageSize, Map ctx) throws IOException { + SajPageReq req = new SajPageReq(); + req.setPageSize(pageSize); + req.setPageNum(page); + + SajPageRet resp = sajApi.queryPlantPage(req); + if (resp.getCode()==200) { + PageInfo ret = new PageInfo<>(); + List data = resp.getRows(); + long pages = resp.getTotalPage(); + ret.setPages((int) pages); + ret.setData(null); + ret.setList(data); + return ret; + } + log.error("query power station monitor data error: {}, code: {}", resp.getMsg(), resp.getRows()); + return null; + } + + @Override + public void handlePageInfo(PageInfo pageInfo, Map ctx) { + List list = pageInfo.getList(); + if (CollectionUtils.isEmpty(list)) { + return; + } + List convList = conv(pageInfo.getList()); + try { + entryStatService.syncEntryStat(convList, NhConstants.SYS_TYPE_SAJ); + } catch (Exception ex) { + log.error("sync entry stat error", ex); + } + } + + private List conv(List list) { + List ret = new ArrayList<>(); + for (BasePlant r : list) { + ret.add(convR(r)); + } + return ret; + } + + private GetStationR convR(BasePlant r) { + GetStationR ret = new GetStationR(); + ret.setVendorIndex(1); + ret.setDataTimestamp(new Date().getTime()); + ret.setFullHour(null); + ret.setStationName(r.getPlantName()); + ret.setId(r.getPlantId()); + ret.setUserId(null); + ret.setUserName(null); + ret.setUserMobile(null); + ret.setSno(null); + ret.setAddr(null); + ret.setState(0);//0表示未同步基础数据 + ret.setPower(0); + ret.setPowerStr("kw"); + ret.setCapacity(0); + ret.setCapacityStr("kwp"); + ret.setDayEnergy(0); + ret.setDayEnergyStr("kwh"); + ret.setMonthEnergy(0D); + ret.setMonthEnergyStr("kwh"); + ret.setYearEnergy(0D); + ret.setYearEnergyStr("kwh"); + ret.setAllEnergy(0D); + ret.setAllEnergyStr("kwh"); + ret.setNmiCode(r.getNMI()); + return ret; + } + + public static void main(String[] args) { + Integer status = 1; + System.out.println(Objects.equals(-1, status)); + System.out.println(Objects.equals(1, status)); + System.out.println(Objects.equals(2, status)); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.java b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.java new file mode 100644 index 0000000..9ffe599 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.java @@ -0,0 +1,117 @@ +package org.springblade.modules.nh.factory.saj.scheduler; + +import cn.hutool.core.io.unit.DataUnit; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.common.EachRunner; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.D; +import org.springblade.modules.nh.factory.saj.SajApi; +import org.springblade.modules.nh.factory.saj.req.QueryDeviceHistoryReq; +import org.springblade.modules.nh.factory.saj.req.QueryPlantEnergyReq; +import org.springblade.modules.nh.factory.saj.resp.*; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.service.*; +import org.springframework.stereotype.Service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 实时获取电站当前的发电量和功率 + */ +@Service +@AllArgsConstructor +public class SajStationStatusEachRunner extends EachRunner { + + private final SajApi sajApi; + private final IMonitorEntryStatService monitorEntryStatService; + private final IMonitorEntryYearStatService yearStatService; + private final IPowerStationService powerStationService; + private final IMonitorInverterStatService inverterStatService; + private final IMonitorEntryDailyStatService dailyStatService; + + + @Override + public void handle(String stationId, Map ctx) throws IOException { + handleData(stationId, 1); + } + + public void handleData(String stationId,int index) throws IOException { + QueryPlantEnergyReq req = new QueryPlantEnergyReq(); + req.setPlantId(stationId); + req.setClientDate(DateUtil.formatDateTime(new Date())); + SajRet resp = sajApi.getPlantStatisticsData(req); + if(resp.getCode()==200){ + SajPlantData plant = resp.getData(); + + int state = 1; + //逆变器状态(1正常运行,2告警运行,3离线,4历史逆变器,5未监控) + switch (plant.getDeviceStatus()){ + case 1:state=1;break; + case 3:state=3;break; + default:state=2;break; + } + GetStationR r = newGetStationR(); + r.setId(req.getPlantId()); + r.setDayEnergy(plant.getTodayPvEnergy()); + r.setMonthEnergy(plant.getMonthPvEnergy()); + r.setYearEnergy(plant.getYearPvEnergy()); + r.setAllEnergy(plant.getTotalPvEnergy()); + r.setPower(plant.getPowerNow()); + List syncList = Lists.newArrayList(); + syncList.add(r); + + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(MonitorEntryStatEntity::getOutStationId,stationId) + .set(MonitorEntryStatEntity::getState,state) + .set(MonitorEntryStatEntity::getEtd,plant.getTodayPvEnergy()) + .set(MonitorEntryStatEntity::getEtm,plant.getMonthPvEnergy()) + .set(MonitorEntryStatEntity::getEty,plant.getYearPvEnergy()) + .set(MonitorEntryStatEntity::getEta,plant.getTodayPvEnergy()) + .set(MonitorEntryStatEntity::getSyncTime,new Date()); + monitorEntryStatService.update(updateWrapper); + + LambdaUpdateWrapper updateWrapper2 = new LambdaUpdateWrapper<>(); + updateWrapper2.eq(MonitorInverterStatEntity::getSn,plant.getDeviceSn()) + .set(MonitorInverterStatEntity::getState,state); + inverterStatService.update(updateWrapper2); + + LambdaUpdateWrapper updateWrapper3 = new LambdaUpdateWrapper<>(); + updateWrapper3.eq(PowerStationEntity::getOutStationId,stationId) + .set(PowerStationEntity::getStatus,state); + powerStationService.update(updateWrapper3); + + dailyStatService.syncEntryDailyStat(syncList, NhConstants.SYS_TYPE_SAJ); + } + } + + private GetStationR newGetStationR(){ + GetStationR r = new GetStationR(); + r.setState(1); + r.setDayEnergy(0D); + r.setMonthEnergy(0D); + r.setYearEnergy(0D); + r.setAllEnergy(0D); + r.setDayEnergyStr("kwh"); + r.setMonthEnergyStr("kwh"); + r.setYearEnergyStr("kwh"); + r.setAllEnergyStr("kwh"); + r.setVendorIndex(1); + r.setPower(0D); + r.setPowerStr("kw"); + r.setDataTimestamp(System.currentTimeMillis()); + return r; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/job/InefficientScheduler.java b/src/main/java/org/springblade/modules/nh/job/InefficientScheduler.java new file mode 100644 index 0000000..5cf8269 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/job/InefficientScheduler.java @@ -0,0 +1,380 @@ +package org.springblade.modules.nh.job; + + +import cn.hutool.core.math.MathUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.cache.DictCache; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.enums.DictEnum; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.TaskControl; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.*; +import org.springblade.modules.nh.pojo.entity.*; +import org.springblade.modules.nh.pojo.vo.MonitorEntryMonthStatVO; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.service.*; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.*; +import java.time.temporal.ChronoUnit; +import java.util.*; + +@EnableScheduling +@Component +@Slf4j +@AllArgsConstructor +public class InefficientScheduler { + + private final IPowerStationService powerStationService; + + private final IMonitorEntryStatService entryStatService; + + private final IMonitorEntryMonthStatService entryMonthStatService; + + private final IMonitorInverterStatService inverterStatService; + + private final IMonitorInverterDailyStatService dailyStatService; + + private final IInefficientSettingService settingService; + + private final IPowerStationInefficientService inefficientService; + + private final BladeRedis bladeRedis; + + private final String avgKey = "CAL_AVG_PS_HOURS"; + + // 每周一早上0点统计上周的低效电站 + @Scheduled(cron = "30 13 4 * * ?") + public void calInefficientPowerStation() { + if(!isTimeToCal()){ + return; + } + + TaskControl.runTask("inefficient:calInefficientPowerStation", new Runnable() { + @Override + public void run() { + List settingList = settingService.list(); + settingList.forEach(setting->{ + calInefficientSetting(setting); + }); + } + }); + } + + // 按资方-安装类型-地区 计算所有电站的平均发电时间 + @Scheduled(cron = "40 34 1 * * ?") + public void calAvgPowerStationHours() { + if(!isTimeToCal()){ + return; + } + TaskControl.runTask("inefficient:calInefficientPowerStation", new Runnable() { + @Override + public void run() { + executeAvgHours(); + } + }); + } + + public void executeAvgHours(){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.isNotNull(PowerStationEntity::getOutStationId); + List powerStationEntities = powerStationService.list(queryWrapper); + + Map> map = Maps.newHashMap(); + int i=0; + for (PowerStationEntity ps : powerStationEntities) { + Date start = getStartDate(); + Date end = getEndDate(); + Double weekHours = getStationLastWeekHours(ps,start,end); + System.out.println(i++); + if(weekHours>0){ + //计算有发电时间的-省 + String typeAvgKey = getTypeKey(ps); + if(map.containsKey(typeAvgKey)){ + map.get(typeAvgKey).add(weekHours); + }else{ + List typeList = Lists.newArrayList(); + typeList.add(weekHours); + map.put(typeAvgKey, typeList); + } + //计算有发电时间的-市 + String typeAvgKeyCity = getTypeKeyCity(ps); + if(map.containsKey(typeAvgKeyCity)){ + map.get(typeAvgKeyCity).add(weekHours); + }else{ + List typeList = Lists.newArrayList(); + typeList.add(weekHours); + map.put(typeAvgKeyCity, typeList); + } + } + } + + bladeRedis.del(avgKey); + for (Map.Entry> entry : map.entrySet()) { + List hoursList= entry.getValue(); + Double sum = hoursList.stream().mapToDouble(Double::doubleValue).sum(); + Double avgHours = sum/hoursList.size(); + bladeRedis.hSet(avgKey,entry.getKey(),avgHours); + } + } + + public void calInefficientSetting(InefficientSettingEntity setting) { + String planType = DictCache.getValue(DictEnum.SETTING_PLAN_TYPE,setting.getPlanType()); + + List citys = Lists.newArrayList(); + if(StringUtil.isNotBlank(setting.getCitys())){ + String[] tempCitys = null; + if(setting.getCitys().contains(",")){ + tempCitys = setting.getCitys().split(","); + }else{ + tempCitys = setting.getCitys().split("、"); + } + for(String city : tempCitys){ + if(StringUtil.isNotBlank(city)){ + if(!city.contains("市")){ + citys.add(city+"市"); + }else{ + citys.add(city); + } + } + } + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .eq(PowerStationEntity::getCapitalName,setting.getCapitalName()) + .eq(PowerStationEntity::getInstallType,planType) +// .eq(PowerStationEntity::getCustomerType,setting.getCustomerType()) +// .eq(PowerStationEntity::getFilingType,setting.getRecordType()) + .eq(PowerStationEntity::getProvince,setting.getProvince()) + .eq(PowerStationEntity::getApplyStatus,1) + .isNotNull(PowerStationEntity::getOutStationId); + if(CollectionUtil.isNotEmpty(citys)){ + queryWrapper.in(PowerStationEntity::getCity,citys); + } + + List powerStationEntities = powerStationService.list(queryWrapper); + for (PowerStationEntity ps : powerStationEntities) { + calIneffiectStation(setting, ps, CollectionUtil.isNotEmpty(citys)?2:1); + } + + } + + public PowerStationInefficientEntity calIneffiectStation(InefficientSettingEntity setting, PowerStationEntity ps, int type) { + Calendar calendar = Calendar.getInstance(); + int currentMonth = calendar.get(Calendar.MONTH) + 1; + + Double monthGuardHours = (Double) CommonUtil.reflectGetField(setting,"guardHourM"+currentMonth); + Double weekGuardHours = monthGuardHours*getDaysBetween()/CommonUtil.getDaysInCurrentMonth(); + Date end = getEndDate(); + Date start = getStartDate(); + Double avgHours = getAvgHours(ps,type); + Double weekHours = getStationLastWeekHours(ps,start,end); + + PowerStationInefficientEntity inefficientEntity = null; + if(weekHours <= 0){ + return null; + } + + int flag = 0; + if(avgHours>0 && weekHours/avgHours < 0.9){ + flag++; + } + Double guardRate = CommonUtil.retainDoubleNum(weekHours/weekGuardHours,3); + if(guardRate<0.9){ + flag++; + } + + + if(flag>0){ + inefficientEntity = BeanUtil.copyProperties(ps,PowerStationInefficientEntity.class); + inefficientEntity.setStationId(ps.getId()); + inefficientEntity.setInstallType(ps.getInstallType()); + inefficientEntity.setCapacity(ps.getActualCapacity().doubleValue()); + inefficientEntity.setGuardHour(weekGuardHours); + inefficientEntity.setMgHour(weekHours); + inefficientEntity.setAvgHour(avgHours); + inefficientEntity.setGuardRate(guardRate); + inefficientEntity.setFinishRate(CommonUtil.retainDoubleNum(weekHours/ setting.getGuardHourTotal(),3)); + inefficientEntity.setInstallAddress(ps.getProvince()+ ps.getCity()+ ps.getDistrict()+ ps.getAddress()); + + inefficientEntity.setStatus(NhConstants.INEFFICIENT_STATION_STATION_TODO); + MonitorEntryStatVO entryStatVO = entryStatService.getByPowerStation(PowerStationWrapper.build().entityVO(ps)); + if (entryStatVO != null) { + inefficientEntity.setOtm(entryStatVO.getEtm()); + } + inefficientEntity.setId(null); + inefficientEntity.setStart(start); + inefficientEntity.setEnd(end); + inefficientEntity.setIsConfirm(flag==1?"0":"1"); + + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(PowerStationInefficientEntity::getStationId, ps.getId()) + .eq(PowerStationInefficientEntity::getStatus,0); + if(inefficientService.count(lqw)==0){ + inefficientService.save(inefficientEntity); + } + } + return inefficientEntity; + } + + private Double getStationLastWeekHours(PowerStationEntity ps,Date start,Date end){ + Double hours = 0.0D; + if(StringUtil.isNotBlank(ps.getOutStationId())){ + try{ + String[] outStationIds = ps.getOutStationId().split(","); + //获取电站所有逆变器的外部逆变器id + Double totalEnergy = entryMonthStatService.sumEnergy(Arrays.asList(outStationIds),start,end); + hours = totalEnergy/ps.getActualCapacity().doubleValue(); + }catch (Exception e){ + log.error("获取电站等效时间错误:{}",e); + } + + } + return hours; + } + + private Double sumDaysHours(MonitorInverterDailyStatEntity dailyStat){ + Double dayHours = 0.0D; + if(dailyStat==null) return dayHours; + + Double lastHourPower = 0D; + for(int i=1;i<=24;i++){ + String fieldKet = i+""; + if(i<10){ + fieldKet = "0"+fieldKet; + } + Object obj = CommonUtil.reflectGetField(dailyStat,"h"+fieldKet); + if(obj!=null){ + Double val = (Double)obj; + if(val>lastHourPower){ + dayHours += 1; + lastHourPower = (Double) obj; + } + if(val == 0 && lastHourPower > 0){ + break; + } + } + } + return dayHours; + } + + private static long getDaysBetween(){ + Date startDate = getStartDate(); + LocalDate end = LocalDate.now(); + + // 将 java.util.Date 转换为 Instant + Instant instant = startDate.toInstant(); + // 将 Instant 与时区(例如系统默认时区)结合,获取 ZonedDateTime + ZoneId zoneId = ZoneId.systemDefault(); // 也可以指定其他时区,例如 ZoneId.of("UTC") + ZonedDateTime zonedDateTime = instant.atZone(zoneId); + // 从 ZonedDateTime 中提取 LocalDate + LocalDate start = zonedDateTime.toLocalDate(); + long ret = ChronoUnit.DAYS.between(start, end); + return ret; + } + + private static Date getEndDate(){ + String todayStr = DateUtil.format(new Date(), "yyyy-MM-dd"); + return DateUtil.parse(todayStr,"yyyy-MM-dd"); + } + + private static Date getStartDate(){ + Date start = null; + String todayStr = DateUtil.format(new Date(), "yyyy-MM-dd"); + if(dayOfMonth()==1){ + LocalDate today = LocalDate.now(); + int lastMonth = today.getMonthValue()-1; + String month = String.format("%02d",lastMonth); + String startStr = DateUtil.format(new Date(),"yyyy")+"-"+month+"-22"; + start = DateUtil.parse(startStr,"yyyy-MM-dd"); + }else{ + Date today = DateUtil.parse(todayStr,"yyyy-MM-dd"); + start = DateUtil.minusDays(today,7); + } + return start; + } + + private static boolean isTimeToCal(){ + int[] days = new int[]{1,8,15,22}; + for(int day:days){ + if(dayOfMonth()==day) { + return true; + }; + } + return false; + } + + private static int dayOfMonth(){ + // 获取当前日期 + LocalDate today = LocalDate.now(); + // 获取当前月份的第一天 + LocalDate firstDayOfMonth = today.withDayOfMonth(1); + // 计算今天是本月的第几天 + int dayOfMonth = (int) (today.toEpochDay() - firstDayOfMonth.toEpochDay()) + 1; + return dayOfMonth; + } + + private String getTypeKey(PowerStationEntity ps){ + String key = ps.getCapitalName()+"_"+ps.getInstallType()+"_"+ps.getProvince(); + return Func.md5Hex(key); + } + private String getTypeKeyCity(PowerStationEntity ps){ + String key = ps.getCapitalName()+"_"+ps.getInstallType()+"_"+ps.getProvince()+"_"+ps.getCity(); + return Func.md5Hex(key); + } + + public Double getAvgHours(PowerStationEntity ps,int type){ + Double ret = 0D; + if(type==1){ + //根据省获取发电量 + String typeAvgKey = getTypeKey(ps); + ret = bladeRedis.hGet(avgKey,typeAvgKey); + } + if(type==2){ + //根据省获取发电量 + String typeAvgKey = getTypeKeyCity(ps); + ret = bladeRedis.hGet(avgKey,typeAvgKey); + } + if(ret == null){ + ret = 0D; + } + return ret; + } + + public Double getAvgHoursDefault(PowerStationEntity ps){ + //根据市获取发电量 + String typeAvgKey = getTypeKeyCity(ps); + Double ret = bladeRedis.hGet(avgKey,typeAvgKey); + if(ret == null || ret == 0){ + //根据省获取发电量 + typeAvgKey = getTypeKey(ps); + ret = bladeRedis.hGet(avgKey,typeAvgKey); + } + if(ret == null){ + ret = 0D; + } + return ret; + } + + private Double getAvgHoursCity(PowerStationEntity ps){ + String typeAvgKey = getTypeKeyCity(ps); + Double ret = bladeRedis.hGet(avgKey,typeAvgKey); + if(ret == null){ + ret = 0D; + } + return ret; + } + + public static void main(String[] args) { + System.out.println(getDaysBetween()); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/job/UpdateDataScheduler.java b/src/main/java/org/springblade/modules/nh/job/UpdateDataScheduler.java new file mode 100644 index 0000000..5033e08 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/job/UpdateDataScheduler.java @@ -0,0 +1,403 @@ +package org.springblade.modules.nh.job; + + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.TaskControl; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.*; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.collectorlist.GetCollectorListR; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.pojo.entity.*; +import org.springblade.modules.nh.service.*; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.util.Date; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@EnableScheduling +@Component +@Slf4j +@AllArgsConstructor +public class UpdateDataScheduler { + + private final IPowerStationService powerStationService; + private final IDeviceService deviceService; + private final IInverterDataService inverterDataService; + private final IMonitorEntryStatService entryStatService; + private final IMonitorInverterStatService inverterStatService; + private final GinlongApi ginlongApi; + + private final BladeRedis redis; + + private final IInverterUapService uapService; + + @Scheduled(cron = "50 30 15 * * ?") + public void checkPowerStationOutId() { + //每天全量核对一次电站的外部id是否正确 + TaskControl.newSingleInstanceTask("pw:checkPowerStationOutId", new Runnable() { + @Override + public void run() { + int i=0; + for(PowerStationEntity item:powerStationService.list()){ + String stationName = item.getStationCode(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(MonitorEntryStatEntity::getStationName, "%"+stationName+"%"); + MonitorEntryStatEntity current = null; + List list = entryStatService.list(queryWrapper); + for(MonitorEntryStatEntity entryStat : list){ + if(current==null){ + current = entryStat; + }else{ + if(entryStat.getSyncTime().after(current.getSyncTime())){ + current = entryStat; + } + } + } + if(current!=null + && StringUtil.isNotBlank(current.getOutStationId()) + && !current.getOutStationId().equals(item.getOutStationId())){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(PowerStationEntity::getId,item.getId()) + .set(PowerStationEntity::getOutStationId,current.getOutStationId()); + powerStationService.update(updateWrapper); + System.out.println(++i); + } + + } + } + }); + } + +// @Scheduled(cron = "11 25 23 * * ?") +// public void syncOutIdByCollectNo() { +// //通过采集机同步外部电站id +// TaskControl.runTask("pw:syncOutIdByCollectNo", new Runnable() { +// @Override +// public void run() { +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper +// .isNull(DeviceEntity::getOutStationId) +// .eq(DeviceEntity::getBrand, NhConstants.SYS_TYPE_GINLONG) +// .eq(DeviceEntity::getType,2) +// .isNotNull(DeviceEntity::getSn); +// List deviceEntityList = deviceService.list(queryWrapper); +// for(DeviceEntity deviceEntity : deviceEntityList){ +// try { +// IRet ret = ginlongApi.collectorDetail(,null, deviceEntity.getSn()); +// if("0".equals(ret.getCode())){ +// GetCollectorListR r = ret.getData(); +// deviceEntity.setOutDeviceId(r.getId()); +// deviceEntity.setOutStationId(r.getStationId()); +// deviceService.updateById(deviceEntity); +// +// LambdaUpdateWrapper updateWrapper3 = new LambdaUpdateWrapper<>(); +// updateWrapper3.eq(PowerStationEntity::getId, deviceEntity.getStationId()) +// .set(PowerStationEntity::getOutStationId,deviceEntity.getOutStationId()); +// powerStationService.update(updateWrapper3); +// } +// }catch (Exception e){ +// log.error("通过采集机同步外部电站id异常:{}",e); +// } +// ThreadUtil.sleep(2*1000L); +// } +// } +// }); +// } + + + @Scheduled(cron = "18 41 7 * * ?") + public void delUapData() { + TaskControl.runTask("pw:delUapData", new Runnable() { + @Override + public void run() { + Date now = new Date(); + Date pre15Day = DateUtil.minusDays(now,15); + LambdaQueryWrapper deleteWrapper = new LambdaQueryWrapper<>(); + deleteWrapper.lt(InverterUapEntity::getStateTime,pre15Day); + uapService.remove(deleteWrapper); + } + }); + } + + @Scheduled(cron = "18 * * * * ?") + public void saveUapData() { + TaskControl.runTask("pw:saveUapData", new Runnable() { + @Override + public void run() { + Set set =redis.sMembers(NhConstants.UAP_LIST_TEMP_KEY); + redis.del(NhConstants.UAP_LIST_TEMP_KEY); + for(InverterUapEntity uap : set){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(InverterUapEntity::getSn,uap.getSn()) + .eq(InverterUapEntity::getType,uap.getType()) + .eq(InverterUapEntity::getStateTime,uap.getStateTime()); + if(uapService.count(queryWrapper)==0 && uap.getUv1()!=null){ + uapService.save(uap); + } + } + } + }); + } + + @Scheduled(cron = "18 5 23 * * ?") + public void updateDeviceOutIds() { + TaskControl.runTask("pw:updateDeviceOutIds", new Runnable() { + @Override + public void run() { + inverterDataService.updateDeviceOutIds(); + } + }); + } + + @Scheduled(cron = "0 19 17 * * ?") + public void updateStationSnFromDevice() { + TaskControl.runTask("pw:updateStationSnFromDevice", new Runnable() { + @Override + public void run() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.isNull(PowerStationEntity::getSn) + .eq(PowerStationEntity::getIsDeleted,0); + List stationEntityList = powerStationService.list(queryWrapper); + for(PowerStationEntity stationEntity : stationEntityList) { + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(DeviceEntity::getType,1) + .eq(DeviceEntity::getStationId,stationEntity.getId()); + List deviceEntityList = deviceService.list(queryWrapper2); + StringBuilder snSb = new StringBuilder(); + for(DeviceEntity deviceEntity : deviceEntityList) { + snSb.append(deviceEntity.getSn()+","); + } + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(PowerStationEntity::getId,stationEntity.getId()) + .set(PowerStationEntity::getSn,snSb.toString()); + powerStationService.update(updateWrapper); + } + + } + }); + } + +// @Scheduled(cron = "0 11 23 * * ?") +// public void syncInverterStatBySn() { +// //有些设备逆变器没有同步,每晚定时同步一次 +// TaskControl.runTask("pw:syncInverterStatBySn", new Runnable() { +// @Override +// public void run() { +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.isNull(DeviceEntity::getOutDeviceId) +// .eq(DeviceEntity::getBrand, NhConstants.SYS_TYPE_GINLONG) +// .eq(DeviceEntity::getType,1) +// .isNotNull(DeviceEntity::getSn); +// List deviceEntityList = deviceService.list(queryWrapper); +// for (DeviceEntity deviceEntity : deviceEntityList) { +// try{ +// MonitorInverterStatEntity temp =inverterStatService.getBySn(deviceEntity.getSn()); +// IRet ret = ginlongApi.inverterDetail(temp.getVendorIndex(),null,deviceEntity.getSn()); +// if("0".equals(ret.getCode())){ +// MonitorInverterStatEntity inverterStat = inverterStatService.initNewInverterStat(NhConstants.SYS_TYPE_GINLONG,ret.getData()); +// inverterStatService.save(inverterStat); +// +// LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); +// updateWrapper.eq(DeviceEntity::getId, deviceEntity.getId()) +// .set(DeviceEntity::getOutDeviceId,inverterStat.getOutInverterId()); +// deviceService.update(updateWrapper); +// +// LambdaUpdateWrapper updateWrapper2 = new LambdaUpdateWrapper<>(); +// updateWrapper2.eq(InverterDataEntity::getDeviceId, deviceEntity.getId()) +// .set(InverterDataEntity::getOutDeviceId,inverterStat.getOutInverterId()); +// inverterDataService.update(updateWrapper2); +// +// LambdaUpdateWrapper updateWrapper3 = new LambdaUpdateWrapper<>(); +// updateWrapper3.eq(PowerStationEntity::getId, deviceEntity.getStationId()) +// .set(PowerStationEntity::getOutStationId,inverterStat.getOutStationId()); +// powerStationService.update(updateWrapper3); +// } +// }catch (Exception e){ +// log.error("单独同步逆变器数据异常:{}",e); +// } +// } +// } +// }); +// } + +// @Scheduled(cron = "0 31 1 * * ?") +// public void checkInverterHasData() { +// //有些逆变器没有data。每天定时统计一下 +// TaskControl.runTask("pw:checkInverterHasData", new Runnable() { +// @Override +// public void run() { +// LambdaQueryWrapper query = new LambdaQueryWrapper<>(); +// query.eq(DeviceEntity::getType,1); +// List list = deviceService.list(query); +// for (DeviceEntity deviceEntity : list) { +// LambdaQueryWrapper query2 = new LambdaQueryWrapper<>(); +// query2.eq(InverterDataEntity::getDeviceId,deviceEntity.getId()); +// if(inverterDataService.count(query2)==0){ +// LambdaQueryWrapper query3 = new LambdaQueryWrapper<>(); +// query3.eq(InverterDataEntity::getOutDeviceId,deviceEntity.getOutDeviceId()); +// if(inverterDataService.count(query3)>0){ +// inverterDataService.remove(query3); +// } +// +// InverterDataEntity dataEntity = BeanUtil.copyProperties(deviceEntity,InverterDataEntity.class); +// dataEntity.setDeviceId(deviceEntity.getId()); +// dataEntity.setOutDeviceId(deviceEntity.getOutDeviceId()); +// dataEntity.init(); +// inverterDataService.save(dataEntity); +// if(StringUtil.isNotBlank(deviceEntity.getOutDeviceId())){ +// inverterDataService.updateDataFromInverterStatByOutInverterId(deviceEntity.getOutDeviceId()); +// } +// } +// } +// } +// }); +// } + + @Scheduled(cron = "30 22 6 * * ?") + public void updateGoodweEntryMonthYearData() { + //每个小时统计一次固德威的月数据和日数据 + TaskControl.runTask("pw:updateGoodweEntryMonthYearData", new Runnable() { + @Override + public void run() { + entryStatService.updateGoodweEntryMonthYearData(); + } + }); + } + + @Scheduled(cron = "45 25 * * * ?") + public void updatePowerStationBrand() { + //每小时从逆变器品牌同步到电站 + TaskControl.runTask("pw:updatePowerStationBrand", new Runnable() { + @Override + public void run() { + powerStationService.updatePowerStationBrand(); + } + }); + } + + @Scheduled(cron = "18 */5 * * * ?") + public void updateDataFromInverterStat() { + inverterDataService.updateDataFromInverterStat(); + } + + /** + * 每5分钟根据设备的sn同步MonitorInverterStat的外部厂商id到Device。 + */ + @Scheduled(cron = "20 */13 * * * ?") + public void updateDeviceOutDeviceId() { + TaskControl.runTask("pw:updateDeviceOutDeviceId", new Runnable() { + @Override + public void run() { + //查询没有outDeviceId的逆变 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceEntity::getType,1).isNull(DeviceEntity::getOutDeviceId); + deviceService.list(queryWrapper).forEach(deviceEntity -> { + MonitorInverterStatEntity inverterStat = inverterStatService.getBySn(deviceEntity.getSn()); + if(inverterStat != null){ + LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); + updateWrapper1.eq(DeviceEntity::getId,deviceEntity.getId()) + .set(DeviceEntity::getOutDeviceId,inverterStat.getOutInverterId()) + .set(DeviceEntity::getOutStationId,inverterStat.getOutStationId()); + deviceService.update(updateWrapper1); + + LambdaUpdateWrapper updateWrapper2 = new LambdaUpdateWrapper<>(); + updateWrapper2.eq(InverterDataEntity::getDeviceId,deviceEntity.getId()) + .set(InverterDataEntity::getOutDeviceId,inverterStat.getOutInverterId()); + inverterDataService.update(updateWrapper2); + } + }); + } + }); + } + /** + * 每1个小时根据设备的outStationId同步到powerStation。 + */ + @Scheduled(cron = "20 */17 * * * ?") + public void updatePSOutStationId() { + TaskControl.runTask("pw:updatePSOutStationId", new Runnable() { + @Override + public void run() { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.isNull(PowerStationEntity::getOutStationId); + List list = powerStationService.list(query); + for(PowerStationEntity powerStationEntity : list){ + Set outDeviceIdSet = new HashSet<>(); + deviceService.listByPowerStation(powerStationEntity).forEach(pwe->{ + outDeviceIdSet.add(pwe.getOutDeviceId()); + }); + if(outDeviceIdSet.size() > 0){ + LambdaQueryWrapper query2 = new LambdaQueryWrapper<>(); + query2.in(MonitorInverterStatEntity::getOutInverterId,outDeviceIdSet); + List list2 = inverterStatService.list(query2); + Set outStationIdSet = new HashSet<>(); + list2.forEach(mise->{ + outStationIdSet.add(mise.getOutStationId()); + }); + if(outStationIdSet.size() > 0){ + LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); + update.eq(PowerStationEntity::getId,powerStationEntity.getId()) + .set(PowerStationEntity::getOutStationId,String.join(",",outStationIdSet)); + powerStationService.update(update); + } + } + } + } + }); + } + + + /** + * 每天同步电站发电数据 + */ + @Scheduled(cron = "5 44 20 * * ?") + public void checkStationData() { + TaskControl.runTask("pw:checkStationData", new Runnable() { + @Override + public void run() { + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.isNotNull(PowerStationEntity::getOutStationId); + List list = powerStationService.list(query); + for (PowerStationEntity entity : list) { + try { + LambdaQueryWrapper query2 = new LambdaQueryWrapper<>(); + query2.in(MonitorEntryStatEntity::getOutStationId, Func.toLongList(entity.getOutStationId())); + List statList = entryStatService.list(query2); + for(MonitorEntryStatEntity sta :statList){ + if(entity.getEtd() == null){ + entity.setEtd(new BigDecimal(sta.getEtd()).setScale(4, RoundingMode.HALF_UP)); + + }else{ + entity.setEtd((entity.getEtd().add(new BigDecimal(sta.getEtd()))).setScale(4, RoundingMode.HALF_UP)); + } + entity.setEto((entity.getEto().add(new BigDecimal(sta.getEta()))).setScale(4, RoundingMode.HALF_UP)); + } + boolean hd= powerStationService.updateById(entity); + if(!hd){ + log.error("更新数据失败"+ entity.getStationCode()); + } + }catch (Exception e){ + log.error( "更新数据失败===="+e); + } + + + } + + } + }); + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.java b/src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.java new file mode 100644 index 0000000..04eb2be --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springblade.modules.nh.pojo.vo.AlarmCodeVO; +import org.springblade.modules.nh.excel.AlarmCodeExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 故障代码 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-06 + */ +public interface AlarmCodeMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param alarmCode + * @return + */ + List selectAlarmCodePage(IPage page, AlarmCodeVO alarmCode); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportAlarmCode(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml new file mode 100644 index 0000000..2ebedac --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.java b/src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.java new file mode 100644 index 0000000..5ae0b43 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.vo.AlarmInfoVO; +import org.springblade.modules.nh.excel.AlarmInfoExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.nh.pojo.vo.HomeOverviewVO; +import org.springblade.modules.nh.pojo.vo.OverviewStaticDataVo; + +import java.util.List; + +/** + * 设备告警信息表 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-03 + */ +public interface AlarmInfoMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param alarmInfo + * @return + */ + List selectAlarmInfoPage(IPage page, AlarmInfoVO alarmInfo); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportAlarmInfo(@Param("ew") Wrapper queryWrapper); + + OverviewStaticDataVo stationAlarm(@Param("outStationId")String outStationId); + + List getIdCodes(String sysType); + + HomeOverviewVO statusAllAlarm(); + + String getAlarmName(@Param("alarmId") Long alarmId); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.xml new file mode 100644 index 0000000..ed79a18 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/AlarmInfoMapper.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.java b/src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.java new file mode 100644 index 0000000..690fff4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.excel.DeviceExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 设备管理 Mapper 接口 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface DeviceMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param device + * @return + */ + List selectDevicePage(IPage page, DeviceVO device); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportDevice(@Param("ew") Wrapper queryWrapper); + + + String queryIdsByStation(@Param("stationId")Long stationId); + + DeviceVO getByOutDeviceId(@Param("outDeviceId")String outDeviceId); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.xml new file mode 100644 index 0000000..e53526b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/DeviceMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/DeviceMsgMapper.java b/src/main/java/org/springblade/modules/nh/mapper/DeviceMsgMapper.java new file mode 100644 index 0000000..d5af037 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/DeviceMsgMapper.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.nh.pojo.entity.DeviceMsgEntity; + +/** + * 故障代码 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-06 + */ +public interface DeviceMsgMapper extends BaseMapper { + + + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.java b/src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.java new file mode 100644 index 0000000..040e6e8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.vo.InefficientSettingVO; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 低效电站设置 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-14 + */ +public interface InefficientSettingMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param inefficientSetting + * @return + */ + List selectInefficientSettingPage(IPage page, InefficientSettingVO inefficientSetting); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportInefficientSetting(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml new file mode 100644 index 0000000..c80404e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.java b/src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.java new file mode 100644 index 0000000..e42ac3d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.nh.pojo.vo.InverterDataVO; +import org.springblade.modules.nh.excel.InverterDataExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 逆变器数据表 Mapper 接口 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface InverterDataMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param inverterData + * @return + */ + List selectInverterDataPage(IPage page, InverterDataVO inverterData); + + List queryForYXList(IPage page,@Param("startTime")String startTime, @Param("endTime")String endTime); + + void updateDataFromInverterStat(); + + void updateDeviceStateFromInverterStat(); + + void updateTxbOutStationId(); + + + Double sumPacByStationId(@Param("stationId")Long stationId); + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportInverterData(@Param("ew") Wrapper queryWrapper); + + void updateDataFromInverterStatByOutInverterId(@Param("outDeviceId") String outDeviceId); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.xml new file mode 100644 index 0000000..ade277e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/InverterDataMapper.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE nh_inverter_data a + INNER JOIN nh_monitor_inverter_stat b ON a.out_device_id = b.out_inverter_id + SET a.etd = b.etd, + a.etm = b.etm, + a.ety = b.ety, + a.eto = b.eto, + a.real_power = b.real_power, + a.power = b.power, + a.power_factor = b.power_factor, + a.apparent_power = b.apparent_power, + a.apparent_power_str = b.apparent_power_str, + a.reactive_power = b.reactive_power, + a.reactive_power_str = b.reactive_power_str, + a.temperature = b.temperature, + a.fac = b.fac, + a.pac = b.pac, + a.pv_modules = b.pv_modules, + a.uvw_modules = b.ac_modules, + a.pw_hour = b.pw_hour, + a.collector_sn = b.collector_sn, + a.sync_time = NOW() + + + + UPDATE + nh_device d + LEFT JOIN nh_monitor_inverter_stat i on i.sn = d.sn + SET + d.`status` = i.state + WHERE + i.state is not NULL AND i.state!=-1 + + + + UPDATE nh_device d + LEFT JOIN nh_power_station s on s.id = d.station_id + SET + d.out_station_id = s.out_station_id + WHERE + s.out_station_id is not NULL + AND d.type=2 + + + + UPDATE nh_inverter_data a + INNER JOIN nh_monitor_inverter_stat b ON a.out_device_id = b.out_inverter_id + SET a.etd = b.etd, + a.etm = b.etm, + a.ety = b.ety, + a.eto = b.eto, + a.real_power = b.real_power, + a.power = b.power, + a.power_factor = b.power_factor, + a.apparent_power = b.apparent_power, + a.apparent_power_str = b.apparent_power_str, + a.reactive_power = b.reactive_power, + a.reactive_power_str = b.reactive_power_str, + a.temperature = b.temperature, + a.fac = b.fac, + a.pac = b.pac, + a.pv_modules = b.pv_modules, + a.uvw_modules = b.ac_modules, + a.pw_hour = b.pw_hour, + a.collector_sn = b.collector_sn, + a.sync_time = NOW() + WHERE + a.out_device_id = #{outDeviceId} + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.java b/src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.java new file mode 100644 index 0000000..bf8567d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.dto.InverterUapDTO; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.modules.nh.pojo.vo.InverterUapVO; +import org.springblade.modules.nh.excel.InverterUapExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 逆变器电流电压功率数据 Mapper 接口 + * + * @author AlexWang + * @since 2024-11-21 + */ +public interface InverterUapMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param inverterUap + * @return + */ + List selectInverterUapPage(IPage page, InverterUapVO inverterUap); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportInverterUap(@Param("ew") Wrapper queryWrapper); + + List findInverterUapList(String outStationId,String stateTime); + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.xml new file mode 100644 index 0000000..858d542 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/InverterUapMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.java b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.java new file mode 100644 index 0000000..a493881 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryDailyStatVO; +import org.springblade.modules.nh.excel.MonitorEntryDailyStatExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; +import java.util.Map; + +/** + * 电站日统计数据 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface MonitorEntryDailyStatMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param monitorEntryDailyStat + * @return + */ + List selectMonitorEntryDailyStatPage(IPage page, MonitorEntryDailyStatVO monitorEntryDailyStat); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryDailyStat(@Param("ew") Wrapper queryWrapper); + + Map overviewHourStatic(@Param("stationId") Long stationId,@Param("outStationIds") List outStationIds, @Param("statDate") String statDate,@Param("traderId") String traderId); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.xml new file mode 100644 index 0000000..4b3074c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.xml @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.java b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.java new file mode 100644 index 0000000..0fc6977 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryMonthStatVO; +import org.springblade.modules.nh.excel.MonitorEntryMonthStatExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 电站月统计数据 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface MonitorEntryMonthStatMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param monitorEntryMonthStat + * @return + */ + List selectMonitorEntryMonthStatPage(IPage page, MonitorEntryMonthStatVO monitorEntryMonthStat); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryMonthStat(@Param("ew") Wrapper queryWrapper); + + List> overviewMonthStatic(@Param("stationId") Long stationId,@Param("outStationIds") List outStationIds, @Param("statDate") String statDate,@Param("traderId") String traderId); + + List> overviewLastDays(@Param("outStationIds") List outStationIds,@Param("days") Integer days); + + List> overviewLast7Days(@Param("stationId") Long stationId,@Param("outStationIds") List outStationIds,@Param("traderId") String traderId); + + Double sumLast7DaysEnergy(@Param("outStationIds") List outStationIds); + + Double sumEnergy(@Param("outStationIds") List outStationIds, @Param("start")Date start, @Param("end")Date end); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.xml new file mode 100644 index 0000000..3785e06 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.xml @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.java b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.java new file mode 100644 index 0000000..b86097f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.dto.sync.StationIdMap; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.excel.MonitorEntryStatExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 外部电站同步 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-01 + */ +public interface MonitorEntryStatMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param monitorEntryStat + * @return + */ + List selectMonitorEntryStatPage(IPage page, MonitorEntryStatVO monitorEntryStat); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryStat(@Param("ew") Wrapper queryWrapper); + + Double sumDayPowerByStationIds(@Param("outStationIds") List outStationIds); + + List findByStationIds(@Param("stationIds") List stationIds); + + MonitorEntryStatDTO findByOutStationIds(@Param("stationIds") List stationIds); + + List getStationIds(@Param("sysType") String sysType); + List getStationIdsByIndex(@Param("sysType") String sysType,@Param("index") int index); + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml new file mode 100644 index 0000000..d5d34d2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.java b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.java new file mode 100644 index 0000000..567335f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryYearStatVO; +import org.springblade.modules.nh.excel.MonitorEntryYearStatExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 电站能量按年统计 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface MonitorEntryYearStatMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param monitorEntryYearStat + * @return + */ + List selectMonitorEntryYearStatPage(IPage page, MonitorEntryYearStatVO monitorEntryYearStat); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryYearStat(@Param("ew") Wrapper queryWrapper); + + List overviewYearStatic(@Param("stationId") Long stationId, @Param("outStationIds") List outStationIds, @Param("year") int year ,@Param("traderId") String traderId); + + Double sumYearPowerByStationIds(@Param("outStationIds")List outStationIds,@Param("year") String year,@Param("month") String month); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml new file mode 100644 index 0000000..c370d2c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.java b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.java new file mode 100644 index 0000000..2b421af --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterDailyStatVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 逆变器日数据 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-07 + */ +public interface MonitorInverterDailyStatMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param monitorInverterDailyStat + * @return + */ + List selectMonitorInverterDailyStatPage(IPage page, MonitorInverterDailyStatVO monitorInverterDailyStat); + + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.xml new file mode 100644 index 0000000..3ea0a9a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.xml @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.java b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.java new file mode 100644 index 0000000..42f79b6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.dto.sync.InverterIdMap; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.HomeOverviewVO; +import org.springblade.modules.nh.pojo.vo.MonitorInverterStatVO; +import org.springblade.modules.nh.excel.MonitorInverterStatExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 厂家逆变器表 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface MonitorInverterStatMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param monitorInverterStat + * @return + */ + List selectMonitorInverterStatPage(IPage page, MonitorInverterStatVO monitorInverterStat); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorInverterStat(@Param("ew") Wrapper queryWrapper); + + List findByInverterIds(@Param("inverterIds") List inverterIds); + + List getInverterBySns(@Param("sns") List sn, @Param("sysType") String sysType); + + List getInverterSns(String sysType); + List getInverterSnsByIndex(@Param("sysType")String sysType,@Param("index")int index); + + HomeOverviewVO staticsHomeViewData(@Param("outStationIds") List outStationIds); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml new file mode 100644 index 0000000..b114248 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.java b/src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.java new file mode 100644 index 0000000..cbc457d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationInefficientVO; +import org.springblade.modules.nh.excel.PowerStationInefficientExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 低效电站 Mapper 接口 + * + * @author AlexWang + * @since 2024-06-14 + */ +public interface PowerStationInefficientMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param powerStationInefficient + * @return + */ + List selectPowerStationInefficientPage(IPage page, PowerStationInefficientVO powerStationInefficient); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportPowerStationInefficient(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.xml new file mode 100644 index 0000000..b75e12f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.java b/src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.java new file mode 100644 index 0000000..88eea24 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.java @@ -0,0 +1,90 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.mapper; + +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.dto.StationDTO; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.excel.PowerStationExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.nh.pojo.vo.StaticsStatusVO; + +import java.util.List; +import java.util.Map; + +/** + * 电站 Mapper 接口 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface PowerStationMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param powerStation + * @return + */ + List selectPowerStationPage(IPage page, @Param("e") StationDTO powerStation); + + List selectPowerStationListEx( @Param("e") StationDTO powerStation); + + + List selectPowerStationList(IPage page, @Param("e") StationDTO powerStation); + + PowerStationEntity getStationDetailByPowCode(String powCode); + + List getStationListByPowCode(String powCode,String siteId); + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportPowerStation(@Param("ew") Wrapper queryWrapper); + + List staticsStatus(@Param("e")StationDTO powerStation); + + List getOutStationIds(); + + List groupProjectCompany(); + + List getStatusByProvince(@Param("omProviderId") String omProviderId); + + void updatePowerStationBrand(); + + List findMyPowerStation(IPage page,String empId,String siteId,String condition); + + List getSelectPowerStaion(@Param("map") Map map); + + void updateStatusByOutIds(@Param("outStationIds")List outIds,@Param("status")int status); +} diff --git a/src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.xml b/src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.xml new file mode 100644 index 0000000..5312269 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/mapper/PowerStationMapper.xml @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and s.status = #{e.status} + + + and s.sn = #{e.sn} + + + and s.apply_status = #{e.applyStatus} + + + and s.brand = #{e.brand} + + + and ((s.last_status = 3 and s.status=1 and s.during_seconds is not null and s.during_seconds > #{e.offlineDuring}*3600) + or ( s.status=3 and s.last_status_start is not null and s.last_status_start < DATE_SUB(NOW(), INTERVAL #{e.offlineDuring} HOUR))) + + + and ((s.last_status = 2 and s.status=1 and s.during_seconds is not null and s.during_seconds > #{e.errorDuring}*3600) + or (s.status=2 and s.last_status_start is not null and s.last_status_start < DATE_SUB(NOW(), INTERVAL #{e.errorDuring} HOUR))) + + + and s.om_provider_name = #{e.omProviderName} + + + + and s.agent_name like CONCAT('%', #{e.agentName}, '%') + + + and s.capital_name in + + #{item} + + + + and s.order_number like CONCAT('%', #{e.orderNumber}, '%') + + + and s.station_code = #{e.stationCode} + + + and s.source = #{e.source} + + + and s.owner_name like CONCAT('%', #{e.ownerName}, '%') + + + and s.address like CONCAT('%', #{e.address}, '%') + + + and s.apply_no like CONCAT('%', #{e.applyNo}, '%') + + + and s.om_provider_id = #{e.omProviderId} + + + and s.province in + + #{item} + + + + and s.city in + + #{item} + + + + and s.district in + + #{item} + + + + + and s.id in + + #{item} + + + + + and s.om_provider_id in + + #{item} + + + + + + + + + + + + + + + + + + + + + + UPDATE + nh_power_station a + LEFT JOIN nh_device b on b.station_id=a.id + SET + a.brand = b.brand + WHERE + a.brand is NULL + + + + + + UPDATE nh_power_station + SET last_status=`status`, + `status` = #{status}, + last_status_start = last_status_end, + last_status_end = SYSDATE(), + during_seconds=TIMESTAMPDIFF(SECOND, last_status_start, last_status_end) + WHERE + `status`!= #{status} + and out_station_id IN + + #{item} + + + + + + diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.java new file mode 100644 index 0000000..953bd6f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 故障代码 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AlarmCodeDTO extends AlarmCodeEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/AlarmInfoDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/AlarmInfoDTO.java new file mode 100644 index 0000000..eb67571 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/AlarmInfoDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 设备告警信息表 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AlarmInfoDTO extends AlarmInfoEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/DeviceDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/DeviceDTO.java new file mode 100644 index 0000000..3e182da --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/DeviceDTO.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 设备管理 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DeviceDTO extends DeviceEntity { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 输出功率 + */ + @Schema(description = "输出功率") + private BigDecimal pac; + + @Schema(description = "直流发电功率") + private BigDecimal dcPac; + + /** + * 实际安装功率 + */ + @Schema(description = "实际安装功率") + private BigDecimal realPower; + + /** + * 装机容量 + */ + @Schema(description = "装机容量") + private BigDecimal power; + + /** + * 采集器SN + */ + @Schema(description = "采集器SN") + private String collectorSn; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.java new file mode 100644 index 0000000..efa48a2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 低效电站设置 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InefficientSettingDTO extends InefficientSettingEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/InverterDataDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/InverterDataDTO.java new file mode 100644 index 0000000..cc83f8c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/InverterDataDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 逆变器数据表 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InverterDataDTO extends InverterDataEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/InverterUapDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/InverterUapDTO.java new file mode 100644 index 0000000..70579fe --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/InverterUapDTO.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 逆变器电流电压功率数据 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-11-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InverterUapDTO extends InverterUapEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "总功率") + private Double totalPower; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryDailyStatDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryDailyStatDTO.java new file mode 100644 index 0000000..4eea3ce --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryDailyStatDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站日统计数据 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryDailyStatDTO extends MonitorEntryDailyStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryMonthStatDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryMonthStatDTO.java new file mode 100644 index 0000000..2b1cfc3 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryMonthStatDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站月统计数据 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryMonthStatDTO extends MonitorEntryMonthStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.java new file mode 100644 index 0000000..406ce5a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.java @@ -0,0 +1,104 @@ +package org.springblade.modules.nh.pojo.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.nh.pojo.vo.OverviewStaticDataVo; + +import java.io.Serial; +import java.util.Date; + +/** + * 外部电站同步 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-01 + */ +@Data +public class MonitorEntryStatDTO { + /** + * 内部电站id + */ + @Schema(description = "内部系统电站id") + private String innerStationId; + + /** + * 外部系统电站id + */ + @Schema(description = "外部系统电站id") + private String outStationId; + + /** + * 电站名称 + */ + @Schema(description = "电站名称") + private String stationName; + /** + * 装机容量kWp + */ + @Schema(description = "装机容量kWp") + private Double capacity; + /** + * 功率 + */ + @Schema(description = "功率") + private Double power; + /** + * 实时功率 + */ + @Schema(description = "实时功率") + private Double pac; + /** + * 0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特 + */ + @Schema(description = "0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特") + private String type; + /** + * 当日能量kw + */ + @Schema(description = "当日能量kw") + private Double etd; + /** + * 当月能量kw + */ + @Schema(description = "当月能量kw") + private Double etm; + /** + * 当年能量kw + */ + @Schema(description = "当年能量kw") + private Double ety; + /** + * 总能量kw + */ + @Schema(description = "总能量kw") + private Double eta; + /** + * 满发小时数(应该是当天的满发小时数) + */ + @Schema(description = "满发小时数(应该是当天的满发小时数)") + private Double fullHour; + /** + * 电站状态:1 = 在线,2 = 离线,3 = 报警 + */ + @Schema(description = "电站状态:1 = 在线,2 = 离线,3 = 报警") + private Integer state; + /** + * 同步采集时间,并非当前时间,可能是之前的时间 + */ + @Schema(description = "同步采集时间,并非当前时间,可能是之前的时间") + private Date syncTime; + + /** + * 首次发电时间 + */ + private Date fisGenerateTime; + + private OverviewStaticDataVo overviewVo; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryYearStatDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryYearStatDTO.java new file mode 100644 index 0000000..b6be8ea --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorEntryYearStatDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站能量按年统计 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryYearStatDTO extends MonitorEntryYearStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterDailyStatDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterDailyStatDTO.java new file mode 100644 index 0000000..8478689 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterDailyStatDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 逆变器日数据 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorInverterDailyStatDTO extends MonitorInverterDailyStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.java new file mode 100644 index 0000000..ff3cfe5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 厂家逆变器表 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorInverterStatDTO extends MonitorInverterStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationDTO.java new file mode 100644 index 0000000..006e9ea --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationDTO.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PowerStationDTO extends PowerStationEntity { + @Serial + private static final long serialVersionUID = 1L; + + private String brandName; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.java new file mode 100644 index 0000000..6f1093e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto; + +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 低效电站 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PowerStationInefficientDTO extends PowerStationInefficientEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.java new file mode 100644 index 0000000..c0cc367 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.java @@ -0,0 +1,22 @@ +package org.springblade.modules.nh.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import java.io.Serial; +import java.util.Date; + +@Data +public class PowerStationPaymentTimeDTO { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 所属电站ID + */ + @Schema(description = "内部电站ID") + private String innerStationId; + + @Schema(description = "回款时间") + private String paymentTime; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/StationDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/StationDTO.java new file mode 100644 index 0000000..9acd733 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/StationDTO.java @@ -0,0 +1,25 @@ +package org.springblade.modules.nh.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; + +import java.io.Serial; + +@Data +@EqualsAndHashCode(callSuper = true) +public class StationDTO extends PowerStationEntity{ + + @Serial + private static final long serialVersionUID = 1L; + + private String entryIds; + + private String siteIds; + + private String userName; + + private String password; + private Integer offlineDuring; + private Integer errorDuring; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/WeatherHistory.java b/src/main/java/org/springblade/modules/nh/pojo/dto/WeatherHistory.java new file mode 100644 index 0000000..5caa5f2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/WeatherHistory.java @@ -0,0 +1,19 @@ +package org.springblade.modules.nh.pojo.dto; + +import lombok.Data; + +@Data +public class WeatherHistory { + + private String aqiLevel; + private String wind_direction; + private String aqiInfo; + private String wind_power; + private String area; + private String time; + private String min_temperature; + private String max_temperature; + private String aqi; + private String weather; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.java new file mode 100644 index 0000000..db70713 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.java @@ -0,0 +1,130 @@ +package org.springblade.modules.nh.pojo.dto.open; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 逆变器数据表 实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +public class YXInverterDataDTO { + + private Long deviceId; + + private String sn; + /** + * 输出功率 + */ + @Schema(description = "输出功率") + private BigDecimal pac; + /** + * 发电小时数 + */ + @Schema(description = "发电小时数") + private BigDecimal pwHour; + /** + * 实际安装功率 + */ + @Schema(description = "实际安装功率") + private BigDecimal realPower; + /** + * 装机容量 + */ + @Schema(description = "装机容量") + private BigDecimal power; + /** + * 当日发电量 + */ + @Schema(description = "当日发电量") + private BigDecimal etd; + /** + * 当月发电量 + */ + @Schema(description = "当月发电量") + private BigDecimal etm; + /** + * 累计发电量 + */ + @Schema(description = "累计发电量") + private BigDecimal eto; + /** + * 当年发电量 + */ + @Schema(description = "当年发电量") + private BigDecimal ety; + /** + * 直流发电功率 + */ + @Schema(description = "直流发电功率") + private BigDecimal dcPac; + + /** + * 逆变器无功功率 + */ + @Schema(description = "逆变器无功功率") + private BigDecimal reactivePower; + /** + * 逆变器无功功率单位 + */ + @Schema(description = "逆变器无功功率单位") + private String reactivePowerStr; + /** + * 逆变器视在功率 + */ + @Schema(description = "逆变器视在功率") + private BigDecimal apparentPower; + /** + * 逆变器视在功率单位 + */ + @Schema(description = "逆变器视在功率单位") + private String apparentPowerStr; + /** + * 电网频率hz + */ + @Schema(description = "电网频率hz") + private BigDecimal fac; + + @Schema(description = "pv直流电压存贮格式如下(220:10|220:10)") + private List> pvModuleMap; + + @Schema(description = "pv直流电压存贮格式如下(220:10|220:10)") + private List> uvwModulesMap; + +// @Schema(description = "pv直流电压存贮格式如下(220:10|220:10)") +// private List> mpptModulesMap; + + /** + * 温度 + */ + @Schema(description = "温度") + private BigDecimal temperature; + + @Schema(description = "数据同步时间") + private Date syncTime; + + /** + * 逆变器视在功率单位 + */ + @Schema(description = "故障码") + private String faultCode; + + /** + * 逆变器视在功率单位 + */ + @Schema(description = "故障码名称") + private String alarmName; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.java new file mode 100644 index 0000000..cef00b9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.java @@ -0,0 +1,151 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.dto.open; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; + +import java.io.Serial; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 电站 数据传输对象实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +public class YXPowerStationDTO { + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 电站编号 + */ + @Schema(description = "电站编号") + private String stationCode; + + /** + * 电站名称 + */ + @Schema(description = "电站名称") + private String stationName; + + /** + * 业主名称 + */ + @Schema(description = "业主名称") + private String ownerName; + /** + * 业主电话 + */ + @Schema(description = "业主电话") + private String ownerPhone; + /** + * sn码序列号(多个用逗号拼接) + */ + @Schema(description = "sn码序列号(多个用逗号拼接)") + private String sn; + /** + * 省 + */ + @Schema(description = "省") + private String province; + /** + * 市 + */ + @Schema(description = "市") + private String city; + /** + * 区 + */ +// @Schema(description = "区") +// private String district; + /** + * 详细地址 + */ + @Schema(description = "详细地址") + private String address; + + /** + * 实际安装容量 + */ + @Schema(description = "实际安装容量") + private BigDecimal actualCapacity; + /** + * 完工日期 + */ + @Schema(description = "完工日期") + private Date installAcceptTime; + /** + * 首日发电日期 + */ + @Schema(description = "首日发电日期") + private Date startGenDate; + + @Schema(description = "首日并网日期") + private Date mergeTime; + /** + * 进件序号 + */ + @Schema(description = "进件序号") + private String applyNo; + /** + * 日发电 + */ + private Double etd; + /** + * 月发发电 + */ + private Double etm; + /** + * 年发电 + */ + private Double ety; + /** + * 累计发电 + */ + private Double eta; + + /** + * 逆变器ID集合,用,分开 + */ + private String nbqSn; + + public void init(){ + this.etd= 0d; + this.etm = 0d; + this.ety= 0d; + this.ety = 0d; + this.actualCapacity= new BigDecimal(0); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/AlarmCountDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/AlarmCountDTO.java new file mode 100644 index 0000000..4634ceb --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/AlarmCountDTO.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class AlarmCountDTO { + + private String sn; + /** + * 告警数量 + */ + private Integer cnt; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.java new file mode 100644 index 0000000..47231a9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.java @@ -0,0 +1,13 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class DayEnergyDTO { + + private String unit; + private Double value; + private String stationId; + private String date; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.java new file mode 100644 index 0000000..4a6248a --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.java @@ -0,0 +1,16 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class InverterHourlyDataRecord { + private boolean update; + private Record record; + + public static InverterHourlyDataRecord of(Record record, boolean update) { + InverterHourlyDataRecord ret = new InverterHourlyDataRecord(); + ret.setRecord(record); + ret.setUpdate(update); + return ret; + } +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyEnergyDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyEnergyDTO.java new file mode 100644 index 0000000..8a3f64c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyEnergyDTO.java @@ -0,0 +1,18 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +import java.util.Date; + +@Data +public class InverterHourlyEnergyDTO { + + private Date syncTime; + private Double energy; + private String sn; + /** + * 交流功率 + */ + private Double jlgl; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.java new file mode 100644 index 0000000..f99f66e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.java @@ -0,0 +1,15 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class InverterIdMap { + /** + * 本地 inverter id + */ + private String id; + /** + * 外部 inverter id + */ + private String outInverterId; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.java new file mode 100644 index 0000000..018f900 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.java @@ -0,0 +1,52 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +import java.util.Date; + +@Data +public class InverterRealtimeData { + + /** + * 今日发电量 kwh + */ + @JsonProperty("eDay") + private Double eDay; + /** + * kwh + * 总发电量 + */ + @JsonProperty("eTotal") + private Double eTotal; + + /** + * 交流输出功率(W,不是KW) + */ + private Double pac; + /** + * pac, unit kw + */ + private Double pacKw; + /** + * 直流功率,unit: va + */ + private Double dc; + /** + * 装机功率,单位 W + */ + private Double capacity; + /** + * 装机功率,单位 kw + */ + private Double capacityKw; + /** + * 数据采集时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date syncTime; + private String sn; + private Double fullHour; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.java new file mode 100644 index 0000000..33bb199 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.java @@ -0,0 +1,17 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class InverterRecoverDTO { + + /** + * 恢复时间 + */ + private Long recoverTime; + /** + * 唯一标识码 + */ + private String faultCode; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/JlglHourlyDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/JlglHourlyDTO.java new file mode 100644 index 0000000..2b057a6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/JlglHourlyDTO.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class JlglHourlyDTO { + + private int hour; + // unit: kw + private Double jlgl; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/LabelValueDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/LabelValueDTO.java new file mode 100644 index 0000000..aea52fa --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/LabelValueDTO.java @@ -0,0 +1,9 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class LabelValueDTO { + private String label; + private Double value; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/MonthEnergyDTO.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/MonthEnergyDTO.java new file mode 100644 index 0000000..e518861 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/MonthEnergyDTO.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class MonthEnergyDTO { + private String unit; + private Double value; + private String month; + private String stationId; + private String sysType; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/dto/sync/StationIdMap.java b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/StationIdMap.java new file mode 100644 index 0000000..6644f98 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/dto/sync/StationIdMap.java @@ -0,0 +1,9 @@ +package org.springblade.modules.nh.pojo.dto.sync; + +import lombok.Data; + +@Data +public class StationIdMap { + private Long id; + private String outStationId; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/AlarmCodeEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/AlarmCodeEntity.java new file mode 100644 index 0000000..b998f75 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/AlarmCodeEntity.java @@ -0,0 +1,89 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 故障代码 实体类 + * + * @author AlexWang + * @since 2024-06-06 + */ +@Data +@TableName("nh_alarm_code") +@Schema(description = "AlarmCode对象") +public class AlarmCodeEntity extends BaseEntity { + + /** + * 故障品牌 + */ + @Schema(description = "故障品牌") + private String brand; + /** + * 故障主代码 + */ + @Schema(description = "故障主代码") + private String code; + /** + * 子代码 + */ + @Schema(description = "子代码") + private String subCode; + + /** + * 故障主代码 + */ + @Schema(description = "故障原因") + private String reason; + /** + * 故障内容 + */ + @Schema(description = "故障内容") + private String content; + /** + * 处理建议 + */ + @Schema(description = "处理建议") + private String suggestion; + /** + * 故障等级 + */ + @Schema(description = "故障等级") + private Integer level; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/AlarmInfoEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/AlarmInfoEntity.java new file mode 100644 index 0000000..172cc86 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/AlarmInfoEntity.java @@ -0,0 +1,146 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +/** + * 设备告警信息表 实体类 + * + * @author AlexWang + * @since 2024-06-03 + */ +@Data +@TableName("nh_alarm_info") +@Schema(description = "AlarmInfo对象") +public class AlarmInfoEntity extends BaseEntity { + + /** + * 故障唯一标识,爱士唯独有 + */ + @Schema(description = "故障唯一标识,爱士唯独有") + private String idCode; + /** + * 设备序列号 + */ + @Schema(description = "设备序列号") + private String sn; + /** + * 设备名称 + */ + @Schema(description = "设备名称") + private String deviceName; + /** + * 设备类型 + */ + @Schema(description = "设备类型") + private String deviceType; + /** + * + */ + @Schema(description = "") + private Long stationId; + /** + * 内部电站id + */ + @Schema(description = "内部电站id") + private String innerStationId; + /** + * 外部电站id + */ + @Schema(description = "外部电站id") + private String outStationId; + /** + * 电站名称:业主姓名+安装容量+电站编码 + */ + @Schema(description = "电站名称:业主姓名+安装容量+电站编码") + private String stationName; + /** + * 告警类型:1故障、2告警、3提示、4建议 level + */ + @Schema(description = "告警类型:1故障、2告警、3提示、4建议 level") + private String type; + /** + * 故障码 + */ + @Schema(description = "故障码") + private String malfunctionCode; + /** + * 故障来源:0.锦浪 + */ + @Schema(description = "故障来源:0.锦浪") + private String source; + /** + * 告警名称(故障信息) + */ + @Schema(description = "告警名称(故障信息)") + private String alarmName; + /** + * 设备型号 + */ + @Schema(description = "设备型号") + private String model; + /** + * 告警时间(告警开始时间) + */ + @Schema(description = "告警时间(告警开始时间)") + private Date startTime; + + /** + * 恢复时间 + */ + @Schema(description = "恢复时间") + private Date endTime; + /** + * 报警开始时间戳 + */ + @Schema(description = "报警开始时间戳") + private Long startTimeTsp; + /** + * 申报时间 + */ + @Schema(description = "申报时间") + private Date declareTime; + /** + * 申报人姓名 + */ + @Schema(description = "申报人姓名") + private String declareName; + /** + * 申报人userId + */ + @Schema(description = "申报人userId") + private String declareBy; + /** + * 处理时间 + */ + @Schema(description = "处理时间") + private Date dealTime; + /** + * 故障详细 + */ + @Schema(description = "故障详细") + private String faultDetail; + /** + * 处理意见 + */ + @Schema(description = "处理意见") + private String solution; + /** + * 修复建议 + */ + @Schema(description = "修复建议") + private String suggestion; + /** + * 关闭状态 1未关闭 2已关闭 + */ + @Schema(description = "关闭状态 1未关闭 2已关闭") + private String closeStatus; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/DeviceEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/DeviceEntity.java new file mode 100644 index 0000000..3fec7a2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/DeviceEntity.java @@ -0,0 +1,103 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 设备管理 实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@TableName("nh_device") +@Schema(description = "Device对象") +public class DeviceEntity extends BaseEntity { + + /** + * 所属电站ID + */ + @Schema(description = "所属电站ID") + private Long stationId; + /** + * 内部设备ID + */ + @Schema(description = "内部设备ID") + private String innerStationId; + /** + * 内部设备ID + */ + @Schema(description = "内部设备ID") + private String innerDeviceId; + + @Schema(description = "外部电站ID") + private String outStationId; + /** + * 外部逆变器ID + */ + @Schema(description = "外部逆变器ID") + private String outDeviceId; + /** + * 设备品牌0:锦狼,1.aiswei 2.goodwe + */ + @Schema(description = "设备品牌0:锦狼,1.aiswei 2.goodwe") + private String brand; + /** + * 设备类型(1、逆变器2、通讯棒) + */ + @Schema(description = "设备类型(1、逆变器2、通讯棒)") + private Integer type; + /** + * 设备名称 + */ + @Schema(description = "设备名称") + private String name; + /** + * 设备型号 + */ + @Schema(description = "设备型号") + private String mods; + /** + * 设备sn码 + */ + @Schema(description = "设备sn码") + private String sn; + /** + * 设备条码 + */ + @Schema(description = "设备条码") + private String barCode; + /** + * 质保状态(1、在保 0过保) + */ + @Schema(description = "质保状态(1、在保 0过保)") + private Integer warrantyFlag; + /** + * 质保到期时间 + */ + @Schema(description = "质保到期时间") + private Date warrantyExpires; + /** + * 错误码 + */ + @Schema(description = "错误码") + private String faultCode; + + @Schema(description = "故障码名称") + private String alarmName; + + public void init(){ + this.warrantyFlag = 0; + this.type = 1; + } +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/DeviceMsgEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/DeviceMsgEntity.java new file mode 100644 index 0000000..3bd2c44 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/DeviceMsgEntity.java @@ -0,0 +1,51 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +@Data +@TableName("nh_device_msg") +@Schema(description = "DeviceMsg对象") +public class DeviceMsgEntity implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 所属电站ID + */ + @Schema(description = "所属电站ID") + private Long stationId; + + /** + * 设备ID + */ + @Schema(description = "设备ID") + private Long deviceId; + + @Schema(description = "过程信息") + private String msgContent; + + + @Schema(description = "更新人") + private String updateName; + + @Schema(description = "更新时间") + private Date updateTime; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.java new file mode 100644 index 0000000..d23dace --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.java @@ -0,0 +1,159 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 低效电站设置 实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@TableName("nh_inefficient_setting") +@Schema(description = "InefficientSetting对象") +public class InefficientSettingEntity extends BaseEntity { + + + /** + * 资方编码 + */ + @Schema(description = "资方编码") + private String capitalCode; + /** + * 资方名称 + */ + @Schema(description = "资方名称") + private String capitalName; + /** + * 方案类型 + */ + @Schema(description = "方案类型") + private Integer planType; + /** + * 方案名称 + */ + @Schema(description = "方案名称") + private String planName; + /** + * 省份 + */ + @Schema(description = "省份") + private String province; + /** + * 多个城市 + */ + @Schema(description = "多个城市") + private String citys; + /** + * 备案方式 + */ + @Schema(description = "备案方式") + private Integer recordType; + /** + * 客户类型 + */ + @Schema(description = "客户类型") + private Integer customerType; + /** + * 打点位置 + */ + @Schema(description = "打点位置") + private String dotPosition; + /** + * 1月 + */ + @Schema(description = "1月") + private Double guardHourM1; + /** + * 2月 + */ + @Schema(description = "2月") + private Double guardHourM2; + /** + * 3月 + */ + @Schema(description = "3月") + private Double guardHourM3; + /** + * 4月 + */ + @Schema(description = "4月") + private Double guardHourM4; + /** + * 5月 + */ + @Schema(description = "5月") + private Double guardHourM5; + /** + * 6月 + */ + @Schema(description = "6月") + private Double guardHourM6; + /** + * 7月 + */ + @Schema(description = "7月") + private Double guardHourM7; + /** + * 8月 + */ + @Schema(description = "8月") + private Double guardHourM8; + /** + * 9月 + */ + @Schema(description = "9月") + private Double guardHourM9; + /** + * 10月 + */ + @Schema(description = "10月") + private Double guardHourM10; + /** + * 11月 + */ + @Schema(description = "11月") + private Double guardHourM11; + /** + * 12月 + */ + @Schema(description = "12月") + private Double guardHourM12; + /** + * 合计 + */ + @Schema(description = "合计") + private Double guardHourTotal; + + /** + * 年份 + */ + @Schema(description = "年份") + private String year; + + public void calTotal(){ + //累加12个月的合计有效发电时间 + Double total = 0D; + for(int i=1;i<=12;i++){ + Object val = CommonUtil.reflectGetField(this,"guardHourM"+i); + if(val!=null){ + total += (Double) val; + } + } + this.guardHourTotal = total; + } + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/InverterDataEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/InverterDataEntity.java new file mode 100644 index 0000000..c01ba18 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/InverterDataEntity.java @@ -0,0 +1,165 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; +import java.util.Date; + +/** + * 逆变器数据表 实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@TableName("nh_inverter_data") +@Schema(description = "InverterData对象") +public class InverterDataEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 设备ID + */ + @Schema(description = "设备ID") + private Long deviceId; + + @Schema(description = "设备ID") + private String outDeviceId; + + @Schema(description = "设备SN") + private String sn; + /** + * 输出功率 + */ + @Schema(description = "输出功率") + private BigDecimal pac; + /** + * 发电小时数 + */ + @Schema(description = "发电小时数") + private BigDecimal pwHour; + /** + * 实际安装功率 + */ + @Schema(description = "实际安装功率") + private BigDecimal realPower; + /** + * 装机容量 + */ + @Schema(description = "装机容量") + private BigDecimal power; + /** + * 当日发电量 + */ + @Schema(description = "当日发电量") + private BigDecimal etd; + /** + * 当月发电量 + */ + @Schema(description = "当月发电量") + private BigDecimal etm; + /** + * 累计发电量 + */ + @Schema(description = "累计发电量") + private BigDecimal eto; + /** + * 当年发电量 + */ + @Schema(description = "当年发电量") + private BigDecimal ety; + /** + * 直流发电功率 + */ + @Schema(description = "直流发电功率") + private BigDecimal dcPac; + /** + * 采集器SN + */ + @Schema(description = "采集器SN") + private String collectorSn; + /** + * 逆变器无功功率 + */ + @Schema(description = "逆变器无功功率") + private BigDecimal reactivePower; + /** + * 逆变器无功功率单位 + */ + @Schema(description = "逆变器无功功率单位") + private String reactivePowerStr; + /** + * 逆变器视在功率 + */ + @Schema(description = "逆变器视在功率") + private BigDecimal apparentPower; + /** + * 逆变器视在功率单位 + */ + @Schema(description = "逆变器视在功率单位") + private String apparentPowerStr; + /** + * 电网频率hz + */ + @Schema(description = "电网频率hz") + private BigDecimal fac; + /** + * pv直流电压存贮格式如下(220:10|220:10) + */ + @Schema(description = "pv直流电压存贮格式如下(220:10|220:10)") + private String pvModules; + /** + * mppt存贮格式如下(220:10|220:10) + */ + @Schema(description = "mppt存贮格式如下(220:10|220:10)") + private String mpptModules; + /** + * uvw(220:10:55|220:10:55|220:10:55) + */ + @Schema(description = "uvw(220:10:55|220:10:55|220:10:55)") + private String uvwModules; + /** + * 温度 + */ + @Schema(description = "温度") + private BigDecimal temperature; + + @Schema(description = "数据同步时间") + private Date syncTime; + + @Schema(description = "输出因素") + private BigDecimal powerFactor; + + public void init(){ + this.pac = BigDecimal.ZERO; + this.pwHour = BigDecimal.ZERO; + this.powerFactor = BigDecimal.ZERO; + this.apparentPower = BigDecimal.ZERO; + this.power = BigDecimal.ZERO; + this.realPower = BigDecimal.ZERO; + this.dcPac = BigDecimal.ZERO; + this.etd = BigDecimal.ZERO; + this.etm = BigDecimal.ZERO; + this.ety = BigDecimal.ZERO; + this.eto = BigDecimal.ZERO; + this.temperature = BigDecimal.ZERO; + this.fac = BigDecimal.ZERO; + } +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/InverterUapEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/InverterUapEntity.java new file mode 100644 index 0000000..61fb1d3 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/InverterUapEntity.java @@ -0,0 +1,307 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import java.lang.Double; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import java.io.Serializable; + +/** + * 逆变器电流电压功率数据 实体类 + * + * @author AlexWang + * @since 2024-11-21 + */ +@Data +@TableName("nh_inverter_uap") +@Schema(description = "InverterUap对象") +public class InverterUapEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 逆变器sn + */ + @Schema(description = "逆变器sn") + private String sn; + /** + * 外部逆变器id + */ + @Schema(description = "外部逆变器id") + private String outInverterId; + /** + * 外部电站id + */ + @Schema(description = "外部电站id") + private String outStationId; + /** + * 0:锦狼,1.aiswei 2.goodwe + */ + @Schema(description = "0:锦狼,1.aiswei 2.goodwe") + private String sysType; + /** + * 1直流 2交流 + */ + @Schema(description = "1直流 2交流") + private String type; + /** + * 统计时间,一个小时一条,格式:2024-10-10 12:00:00 + */ + @Schema(description = "统计时间,一个小时一条,格式:2024-10-10 12:00:00") + private Date stateTime; + private Date createTime; + /** + * 电压 + */ + @Schema(description = "电压") + private Double uv1; + /** + * + */ + @Schema(description = "") + private Double uv2; + /** + * + */ + @Schema(description = "") + private Double uv3; + /** + * + */ + @Schema(description = "") + private Double uv4; + /** + * + */ + @Schema(description = "") + private Double uv5; + /** + * + */ + @Schema(description = "") + private Double uv6; + /** + * + */ + @Schema(description = "") + private Double uv7; + /** + * + */ + @Schema(description = "") + private Double uv8; + /** + * + */ + @Schema(description = "") + private Double uv9; + /** + * + */ + @Schema(description = "") + private Double uv10; + /** + * + */ + @Schema(description = "") + private Double uv11; + /** + * + */ + @Schema(description = "") + private Double uv12; + /** + * + */ + @Schema(description = "") + private Double uv13; + /** + * + */ + @Schema(description = "") + private Double uv14; + /** + * + */ + @Schema(description = "") + private Double uv15; + /** + * + */ + @Schema(description = "") + private Double uv16; + /** + * 电流 + */ + @Schema(description = "电流") + private Double ia1; + /** + * + */ + @Schema(description = "") + private Double ia2; + /** + * + */ + @Schema(description = "") + private Double ia3; + /** + * + */ + @Schema(description = "") + private Double ia4; + /** + * + */ + @Schema(description = "") + private Double ia5; + /** + * + */ + @Schema(description = "") + private Double ia6; + /** + * + */ + @Schema(description = "") + private Double ia7; + /** + * + */ + @Schema(description = "") + private Double ia8; + /** + * + */ + @Schema(description = "") + private Double ia9; + /** + * + */ + @Schema(description = "") + private Double ia10; + /** + * + */ + @Schema(description = "") + private Double ia11; + /** + * + */ + @Schema(description = "") + private Double ia12; + /** + * + */ + @Schema(description = "") + private Double ia13; + /** + * + */ + @Schema(description = "") + private Double ia14; + /** + * + */ + @Schema(description = "") + private Double ia15; + /** + * + */ + @Schema(description = "") + private Double ia16; + /** + * 功率 + */ + @Schema(description = "功率") + private Double p1; + /** + * + */ + @Schema(description = "") + private Double p2; + /** + * + */ + @Schema(description = "") + private Double p3; + /** + * + */ + @Schema(description = "") + private Double p4; + /** + * + */ + @Schema(description = "") + private Double p5; + /** + * + */ + @Schema(description = "") + private Double p6; + /** + * + */ + @Schema(description = "") + private Double p7; + /** + * + */ + @Schema(description = "") + private Double p8; + /** + * + */ + @Schema(description = "") + private Double p9; + /** + * + */ + @Schema(description = "") + private Double p10; + /** + * + */ + @Schema(description = "") + private Double p11; + /** + * + */ + @Schema(description = "") + private Double p12; + /** + * + */ + @Schema(description = "") + private Double p13; + /** + * + */ + @Schema(description = "") + private Double p14; + /** + * + */ + @Schema(description = "") + private Double p15; + /** + * + */ + @Schema(description = "") + private Double p16; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryDailyStatEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryDailyStatEntity.java new file mode 100644 index 0000000..ef1a938 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryDailyStatEntity.java @@ -0,0 +1,327 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 电站日统计数据 实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@TableName("nh_monitor_entry_daily_stat") +@Schema(description = "MonitorEntryDailyStat对象") +public class MonitorEntryDailyStatEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 数据采集时间 + */ + @Schema(description = "数据采集时间") + private Date syncTime; + private Date createTime; + private Date updateTime; + /** + * 0.锦浪 1,艾士唯,2:goodwe + */ + @Schema(description = "0.锦浪 1,艾士唯,2:goodwe") + private String sysType; + /** + * 日期 + */ + @Schema(description = "日期") + private Date statDate; + /** + * 外部电站id + */ + @Schema(description = "外部电站id") + private String outStationId; + /** + * + */ + @Schema(description = "") + private Long stationId; + /** + * 0时电量kwh + */ + @Schema(description = "0时电量kwh") + private Double h24; + /** + * 1时电量kwh + */ + @Schema(description = "1时电量kwh") + private Double h01; + /** + * 2时电量kwh + */ + @Schema(description = "2时电量kwh") + private Double h02; + /** + * 3时电量kwh + */ + @Schema(description = "3时电量kwh") + private Double h03; + /** + * 4时电量kwh + */ + @Schema(description = "4时电量kwh") + private Double h04; + /** + * 5时电量kwh + */ + @Schema(description = "5时电量kwh") + private Double h05; + /** + * 6时电量kwh + */ + @Schema(description = "6时电量kwh") + private Double h06; + /** + * 7时电量kwh + */ + @Schema(description = "7时电量kwh") + private Double h07; + /** + * 8时电量kwh + */ + @Schema(description = "8时电量kwh") + private Double h08; + /** + * 9时电量kwh + */ + @Schema(description = "9时电量kwh") + private Double h09; + /** + * 10时电量kwh + */ + @Schema(description = "10时电量kwh") + private Double h10; + /** + * 11时电量kwh + */ + @Schema(description = "11时电量kwh") + private Double h11; + /** + * 12时电量kwh + */ + @Schema(description = "12时电量kwh") + private Double h12; + /** + * 13时电量kwh + */ + @Schema(description = "13时电量kwh") + private Double h13; + /** + * 14时电量kwh + */ + @Schema(description = "14时电量kwh") + private Double h14; + /** + * 15时电量kwh + */ + @Schema(description = "15时电量kwh") + private Double h15; + /** + * 16时电量kwh + */ + @Schema(description = "16时电量kwh") + private Double h16; + /** + * 17时电量kwh + */ + @Schema(description = "17时电量kwh") + private Double h17; + /** + * 18时电量kwh + */ + @Schema(description = "18时电量kwh") + private Double h18; + /** + * 19时电量kwh + */ + @Schema(description = "19时电量kwh") + private Double h19; + /** + * 20时电量kwh + */ + @Schema(description = "20时电量kwh") + private Double h20; + /** + * 21时电量kwh + */ + @Schema(description = "21时电量kwh") + private Double h21; + /** + * 22时电量kwh + */ + @Schema(description = "22时电量kwh") + private Double h22; + /** + * 23时电量kwh + */ + @Schema(description = "23时电量kwh") + private Double h23; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl00; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl01; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl02; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl03; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl04; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl05; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl06; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl07; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl08; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl09; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl10; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl11; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl12; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl13; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl14; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl15; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl16; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl17; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl18; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl19; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl20; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl21; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl22; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl23; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryMonthStatEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryMonthStatEntity.java new file mode 100644 index 0000000..91bc60c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryMonthStatEntity.java @@ -0,0 +1,84 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 电站月统计数据 实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@TableName("nh_monitor_entry_month_stat") +@Schema(description = "MonitorEntryMonthStat对象") +public class MonitorEntryMonthStatEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 电站id + */ + @Schema(description = "电站id") + private String outStationId; + /** + * 统计日期 + */ + @Schema(description = "统计日期") + private Date statDate; + + private Date createTime; + private Date updateTime; + + /** + * 能量 kw + */ + @Schema(description = "能量 kw") + private Double energy; + /** + * + */ + @Schema(description = "") + private Long stationId; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryStatEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryStatEntity.java new file mode 100644 index 0000000..f179124 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryStatEntity.java @@ -0,0 +1,145 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.lang.Boolean; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import java.io.Serializable; + +/** + * 外部电站同步 实体类 + * + * @author AlexWang + * @since 2024-06-01 + */ +@Data +@TableName("nh_monitor_entry_stat") +@Schema(description = "MonitorEntryStat对象") +public class MonitorEntryStatEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 外部系统电站id + */ + @Schema(description = "外部系统电站id") + private String outStationId; + /** + * 系统电站id + */ + @Schema(description = "系统电站id") + private Long stationId; + /** + * 电站名称 + */ + @Schema(description = "电站名称") + private String stationName; + /** + * 装机容量kWp + */ + @Schema(description = "装机容量kWp") + private Double capacity; + /** + * 功率 + */ + @Schema(description = "功率") + private Double power; + /** + * 0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特 + */ + @Schema(description = "0.锦浪 1,爱士惟,2:goodwe,3:古瑞瓦特") + private String type; + /** + * 当日能量kw + */ + @Schema(description = "当日能量kw") + private Double etd; + /** + * 当月能量kw + */ + @Schema(description = "当月能量kw") + private Double etm; + /** + * 当年能量kw + */ + @Schema(description = "当年能量kw") + private Double ety; + /** + * 总能量kw + */ + @Schema(description = "总能量kw") + private Double eta; + /** + * 满发小时数(应该是当天的满发小时数) + */ + @Schema(description = "满发小时数(应该是当天的满发小时数)") + private Double fullHour; + /** + * 电站状态:1 = 在线,2 = 离线,3 = 报警 + */ + @Schema(description = "电站状态:1 = 在线,2 = 离线,3 = 报警") + private Integer state; + /** + * 同步采集时间,并非当前时间,可能是之前的时间 + */ + @Schema(description = "同步采集时间,并非当前时间,可能是之前的时间") + private Date syncTime; + + /** + * 创建时间 + */ + @Schema(description = "创建时间") + private Date createTime; + + /** + * 更新时间 + */ + @Schema(description = "更新时间") + private Date updateTime; + + /** + * 首次发电时间 + */ + private Date fisGenerateTime; + + private Integer vendorIndex; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryYearStatEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryYearStatEntity.java new file mode 100644 index 0000000..8d5fd90 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorEntryYearStatEntity.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 电站能量按年统计 实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@TableName("nh_monitor_entry_year_stat") +@Schema(description = "MonitorEntryYearStat对象") +public class MonitorEntryYearStatEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 同步采集时间 + */ + @Schema(description = "同步采集时间") + private Date syncTime; + + private Date createTime; + private Date updateTime; + /** + * 0.锦浪 1,艾士唯,2:goodwe + */ + @Schema(description = "0.锦浪 1,艾士唯,2:goodwe") + private String sysType; + /** + * 外部电站id + */ + @Schema(description = "外部电站id") + private String outStationId; + /** + * 年 + */ + @Schema(description = "年") + private Integer year; + /** + * 月 + */ + @Schema(description = "月") + private Integer month; + /** + * 能量kw + */ + @Schema(description = "能量kw") + private Double energy; + /** + * + */ + @Schema(description = "") + private Long stationId; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.java new file mode 100644 index 0000000..9defdfa --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.java @@ -0,0 +1,308 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import java.lang.Double; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import java.io.Serializable; + +/** + * 逆变器日数据 实体类 + * + * @author AlexWang + * @since 2024-06-07 + */ +@Data +@TableName("nh_monitor_inverter_daily_stat") +@Schema(description = "MonitorInverterDailyStat对象") +public class MonitorInverterDailyStatEntity implements Serializable { + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 外部逆变器id + */ + @Schema(description = "外部逆变器id") + private String outInverterId; + /** + * + */ + @Schema(description = "") + private Long inverterId; + /** + * 同步采集时间 + */ + @Schema(description = "同步采集时间") + private Date syncTime; + + private Date createTime; + private Date updateTime; + /** + * 0.锦浪 1,艾士唯,2:goodwe + */ + @Schema(description = "0.锦浪 1,艾士唯,2:goodwe") + private String sysType; + /** + * 日期 + */ + @Schema(description = "日期") + private Date statDate; + /** + * sn + */ + @Schema(description = "sn") + private String sn; + /** + * 24时电量kwh + */ + @Schema(description = "24时电量kwh") + private Double h24; + /** + * 1时电量kwh + */ + @Schema(description = "1时电量kwh") + private Double h01; + /** + * 2时电量kwh + */ + @Schema(description = "2时电量kwh") + private Double h02; + /** + * 3时电量kwh + */ + @Schema(description = "3时电量kwh") + private Double h03; + /** + * 4时电量kwh + */ + @Schema(description = "4时电量kwh") + private Double h04; + /** + * 5时电量kwh + */ + @Schema(description = "5时电量kwh") + private Double h05; + /** + * 6时电量kwh + */ + @Schema(description = "6时电量kwh") + private Double h06; + /** + * 7时电量kwh + */ + @Schema(description = "7时电量kwh") + private Double h07; + /** + * 8时电量kwh + */ + @Schema(description = "8时电量kwh") + private Double h08; + /** + * 9时电量kwh + */ + @Schema(description = "9时电量kwh") + private Double h09; + /** + * 10时电量kwh + */ + @Schema(description = "10时电量kwh") + private Double h10; + /** + * 11时电量kwh + */ + @Schema(description = "11时电量kwh") + private Double h11; + /** + * 12时电量kwh + */ + @Schema(description = "12时电量kwh") + private Double h12; + /** + * 13时电量kwh + */ + @Schema(description = "13时电量kwh") + private Double h13; + /** + * 14时电量kwh + */ + @Schema(description = "14时电量kwh") + private Double h14; + /** + * 15时电量kwh + */ + @Schema(description = "15时电量kwh") + private Double h15; + /** + * 16时电量kwh + */ + @Schema(description = "16时电量kwh") + private Double h16; + /** + * 17时电量kwh + */ + @Schema(description = "17时电量kwh") + private Double h17; + /** + * 18时电量kwh + */ + @Schema(description = "18时电量kwh") + private Double h18; + /** + * 19时电量kwh + */ + @Schema(description = "19时电量kwh") + private Double h19; + /** + * 20时电量kwh + */ + @Schema(description = "20时电量kwh") + private Double h20; + /** + * 21时电量kwh + */ + @Schema(description = "21时电量kwh") + private Double h21; + /** + * 22时电量kwh + */ + @Schema(description = "22时电量kwh") + private Double h22; + /** + * 23时电量kwh + */ + @Schema(description = "23时电量kwh") + private Double h23; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl00; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl01; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl02; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl03; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl04; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl05; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl06; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl07; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl08; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl09; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl10; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl11; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl12; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl13; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl14; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl15; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl16; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl17; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl18; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl19; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl20; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl21; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl22; + /** + * 00交流功率 + */ + @Schema(description = "00交流功率") + private Double jlgl23; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterStatEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterStatEntity.java new file mode 100644 index 0000000..2447818 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/MonitorInverterStatEntity.java @@ -0,0 +1,236 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 厂家逆变器表 实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@TableName("nh_monitor_inverter_stat") +@Schema(description = "MonitorInverterStat对象") +public class MonitorInverterStatEntity implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 逆变器sn + */ + @Schema(description = "逆变器sn") + private String sn; + /** + * + */ + @Schema(description = "") + private Long inverterId; + /** + * 外部逆变器id + */ + @Schema(description = "外部逆变器id") + private String outInverterId; + /** + * + */ + @Schema(description = "") + private Long stationId; + /** + * 外部电站id + */ + @Schema(description = "外部电站id") + private String outStationId; + /** + * 当日发电量 + */ + @Schema(description = "当日发电量") + private Double etd; + /** + * 当月发电量 + */ + @Schema(description = "当月发电量") + private Double etm; + /** + * 累计发电量 + */ + @Schema(description = "累计发电量") + private Double eto; + /** + * 当年发电量 + */ + @Schema(description = "当年发电量") + private Double ety; + /** + * 更新时间 + */ + @Schema(description = "同部时间") + private Date syncTime; + + /** + * 更新时间 + */ + @Schema(description = "创建时间") + private Date createTime; + /** + * 更新时间 + */ + @Schema(description = "更新时间") + private Date updateTime; + /** + * 实时功率(交流) + */ + @Schema(description = "实时功率(交流)") + private Double pac; + /** + * 发电小时数?(满发?) + */ + @Schema(description = "发电小时数?(满发?)") + private Double pwHour; + /** + * 实际安装功率? + */ + @Schema(description = "实际安装功率?") + private Double realPower; + /** + * 装机容量 + */ + @Schema(description = "装机容量") + private Double power; + /** + * 1.在线 2.离线,3.报警,4.缓存(这是aiswei独有) + */ + @Schema(description = "1.在线 2.离线,3.报警,4.缓存(这是aiswei独有)") + private Integer state; + /** + * 满发小时数 + */ + @Schema(description = "满发小时数") + private Double fullHour; + /** + * 累计满发小时数...取不到 + */ + @Schema(description = "累计满发小时数...取不到") + private Double totalFullHour; + /** + * 质保结束时间 + */ + @Schema(description = "质保结束时间") + private Date updateShelfEndTime; + /** + * 直流功率,单位va + */ + @Schema(description = "直流功率,单位va") + private Double dcPac; + /** + * 采集器sn + */ + @Schema(description = "采集器sn") + private String collectorSn; + /** + * 型号 + */ + @Schema(description = "型号") + private String model; + /** + * 电网频率hz + */ + @Schema(description = "电网频率hz") + private Double fac; + /** + * 逆变器温度 + */ + @Schema(description = "逆变器温度") + private Double temperature; + /** + * 逆变器名称 + */ + @Schema(description = "逆变器名称") + private String name; + /** + * 逆变器无功功率 + */ + @Schema(description = "逆变器无功功率") + private Double reactivePower; + /** + * 逆变器视在功率 + */ + @Schema(description = "逆变器视在功率") + private Double apparentPower; + /** + * 产品型号 + */ + @Schema(description = "产品型号") + private String productModel; + /** + * 逆变器无功功率单位 + */ + @Schema(description = "逆变器无功功率单位") + private String reactivePowerStr; + /** + * 逆变器视在功率单位 + */ + @Schema(description = "逆变器视在功率单位") + private String apparentPowerStr; + /** + * 满发小时数单位 + */ + @Schema(description = "满发小时数单位") + private String fullHourStr; + /** + * 0:锦狼,1.aiswei 2.goodwe + */ + @Schema(description = "0:锦狼,1.aiswei 2.goodwe") + private String sysType; + + private String pvModules; + private String acModules; + + /** + * 功率因素 + */ + private Double powerFactor; + + private Integer vendorIndex; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationEntity.java new file mode 100644 index 0000000..b44389e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationEntity.java @@ -0,0 +1,273 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.math.BigDecimal; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * 电站 实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@TableName("nh_power_station") +@Schema(description = "PowerStation对象") +public class PowerStationEntity extends BaseEntity { + + /** + * 内部电站ID + */ + @Schema(description = "内部电站ID") + private String innerStationId; + /** + * 外部电站ID + */ + @Schema(description = "外部电站ID") + private String outStationId; + /** + * 电站编号 + */ + @Schema(description = "电站编号") + private String stationCode; + /** + * 电站名称 + */ + @Schema(description = "电站名称") + private String stationName; + /** + * 电站图片 + */ + @Schema(description = "电站图片") + private String images; + /** + * 资方编号 + */ + @Schema(description = "资方编号") + private String capitalCode; + /** + * 资方名称 + */ + @Schema(description = "资方名称") + private String capitalName; + /** + * 项目ID + */ + @Schema(description = "项目ID") + private String projectId; + /** + * 项目编号 + */ + @Schema(description = "项目编号") + private String projectCode; + /** + * 项目名称 + */ + @Schema(description = "项目名称") + private String projectName; + /** + * 项目公司ID + */ + @Schema(description = "项目公司ID") + private String projectCompanyId; + /** + * 项目公司名称 + */ + @Schema(description = "项目公司名称") + private String projectCompanyName; + /** + * 安装方式 + */ + @Schema(description = "安装方式") + private String installType; + + /** + * 品牌 + */ + @Schema(description = "逆变器品牌") + private Integer brand; + + /** + * 备案方式 + */ + @Schema(description = "备案方式") + private Integer filingType; + + /** + * 客户类型 + */ + @Schema(description = "客户类型") + private Integer customerType; + /** + * 代理商ID + */ + @Schema(description = "代理商ID") + private String agentId; + /** + * 代理商 + */ + @Schema(description = "代理商") + private String agentName; + /** + * 代理商电话 + */ + @Schema(description = "代理商电话") + private String agentPhone; + /** + * 业主编号 + */ + @Schema(description = "业主编号") + private Long ownerId; + /** + * 业主名称 + */ + @Schema(description = "业主名称") + private String ownerName; + /** + * 业主电话 + */ + @Schema(description = "业主电话") + private String ownerPhone; + /** + * sn码序列号(多个用逗号拼接) + */ + @Schema(description = "sn码序列号(多个用逗号拼接)") + private String sn; + /** + * 省 + */ + @Schema(description = "省") + private String province; + /** + * 市 + */ + @Schema(description = "市") + private String city; + /** + * 区 + */ + @Schema(description = "区") + private String district; + /** + * 详细地址 + */ + @Schema(description = "详细地址") + private String address; + /** + * 纬度 + */ + @Schema(description = "纬度") + private BigDecimal latitude; + /** + * 经度 + */ + @Schema(description = "经度") + private BigDecimal longitude; + /** + * 实际安装容量 + */ + @Schema(description = "实际安装容量") + private BigDecimal actualCapacity; + /** + * 完工日期 + */ + @Schema(description = "完工日期") + private Date installAcceptTime; + /** + * 首日发电日期 + */ + @Schema(description = "首日发电日期") + private Date startGenDate; + + @Schema(description = "首日并网日期") + private Date mergeTime; + /** + * 进件序号 + */ + @Schema(description = "进件序号") + private String applyNo; + /** + * 进件状态 + */ + @Schema(description = "是否显示状态") + private Integer applyStatus; + /** + * 是否关注 + */ + @Schema(description = "是否关注") + private Integer isFollow; + /** + * 运维服务商id + */ + @Schema(description = "运维服务商id") + private String omProviderId; + /** + * 运维服务商名称 + */ + @Schema(description = "运维服务商名称") + private String omProviderName; + + @Schema(description = "绑定解绑人userId") + private Long bindingUnbindId; + /** + * 当期新增发电量 + */ + @Schema(description = "当期新增发电量") + private BigDecimal etd; + /** + * 累计发电量 + */ + @Schema(description = "累计发电量") + private BigDecimal eto; + /** + * 当期新增发电收入 + */ + @Schema(description = "当期新增发电收入") + private BigDecimal etdc; + /** + * 累计发电收入 + */ + @Schema(description = "累计发电收入") + private BigDecimal etoc; + @Schema(description = "运维单号") + private String orderNumber; + + private Integer lastStatus; + private Date lastStatusStart; + private Date lastStatusEnd; + private Long duringSeconds; + + @JsonFormat(pattern ="yyyy-MM-dd") + private Date paymentTime; + + @JsonFormat(pattern ="yyyy-MM-dd") + private Date warrantyExpiresTime; + + @Schema(description = "来源 1.户用 2.友夸") + private String source; + + public void init(){ +// this.latitude= new BigDecimal(0); +// this.longitude = new BigDecimal(0); + + this.applyStatus = 0; + this.isFollow = 0; + + this.etd= new BigDecimal(0); + this.eto = new BigDecimal(0); + + this.etoc= new BigDecimal(0); + this.etdc = new BigDecimal(0); + } +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationInefficientEntity.java b/src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationInefficientEntity.java new file mode 100644 index 0000000..fa0a3e4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/entity/PowerStationInefficientEntity.java @@ -0,0 +1,167 @@ +package org.springblade.modules.nh.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import java.lang.Double; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import org.springblade.core.mp.base.BaseEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * 低效电站 实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@TableName("nh_power_station_inefficient") +@Schema(description = "PowerStationInefficient对象") +public class PowerStationInefficientEntity extends BaseEntity { + + /** + * 外部电站id + */ + @Schema(description = "外部电站id") + private String outStationId; + /** + * 电站id + */ + @Schema(description = "电站id") + private Long stationId; + /** + * 电站编码 + */ + @Schema(description = "电站编码") + private String stationCode; + /** + * 电站名称 + */ + @Schema(description = "电站名称") + private String stationName; + /** + * 资方编码 + */ + @Schema(description = "资方编码") + private String capitalCode; + /** + * 资方名称 + */ + @Schema(description = "资方名称") + private String capitalName; + /** + * 安装方式 + */ + @Schema(description = "安装方式") + private String installType; + /** + * 当月发电小时 + */ + @Schema(description = "发电小时") + private Double mgHour; + + /** + * 当月发电小时 + */ + @Schema(description = "平均发电小时") + private Double avgHour; + + /** + * 保发小时数 + */ + @Schema(description = "保发小时数") + private Double guardHour; + /** + * 保发比率 + */ + @Schema(description = "保发比率") + private Double guardRate; + /** + * 全年完成率 + */ + @Schema(description = "全年完成率") + private Double finishRate; + /** + * 安装容量 + */ + @Schema(description = "安装容量") + private Double capacity; + /** + * 当月电量 + */ + @Schema(description = "当月电量") + private Double otm; + /** + * 业主id + */ + @Schema(description = "业主id") + private String ownerId; + /** + * 业主名称 + */ + @Schema(description = "业主名称") + private String ownerName; + /** + * 业主电话 + */ + @Schema(description = "业主电话") + private String ownerPhone; + /** + * 安装地址 + */ + @Schema(description = "安装地址") + private String installAddress; + /** + * 运维服务商 + */ + @Schema(description = "运维服务商") + private String omProviderName; + /** + * 运维服务商id + */ + @Schema(description = "运维服务商id") + private String omProviderId; + /** + * 转运维时间 + */ + @Schema(description = "转运维时间") + private Date transferTime; + + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + @Schema(description = "统计时间-开始时间") + private Date start; + @DateTimeFormat( + pattern = "yyyy-MM-dd" + ) + @JsonFormat( + pattern = "yyyy-MM-dd" + ) + @Schema(description = "统计时间-结束时间") + private Date end; + + /** + * 备注信息 + */ + @Schema(description = "备注信息") + private String remarks; + /** + * 是否确认低效 + */ + @Schema(description = "是否确认低效 0未确认 1已确认 2确认非低效") + private String isConfirm; + @Schema(description = "工单编号") + private String orderNumber; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.java new file mode 100644 index 0000000..b9edba1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 故障代码 视图实体类 + * + * @author AlexWang + * @since 2024-06-06 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AlarmCodeVO extends AlarmCodeEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.java new file mode 100644 index 0000000..3aae5ae --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; + +import java.io.Serial; + +/** + * 设备告警信息表 视图实体类 + * + * @author AlexWang + * @since 2024-06-03 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AlarmInfoVO extends AlarmInfoEntity { + @Serial + private static final long serialVersionUID = 1L; + + private PowerStationEntity powerStation; + + private DeviceEntity device; + + private String orderNo; + + private String brand; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/DeviceVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/DeviceVO.java new file mode 100644 index 0000000..245c27f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/DeviceVO.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; + +import java.io.Serial; + +/** + * 设备管理 视图实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DeviceVO extends DeviceEntity { + @Serial + private static final long serialVersionUID = 1L; + + private PowerStationEntity station; + + private InverterDataVO inverterData; + + private MonitorInverterStatVO monitorInverter; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/HomeOverviewVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/HomeOverviewVO.java new file mode 100644 index 0000000..2a560b1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/HomeOverviewVO.java @@ -0,0 +1,39 @@ +package org.springblade.modules.nh.pojo.vo; + +import lombok.Data; + +import java.io.Serial; + +/** + * 主页数据视图 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +public class HomeOverviewVO { + @Serial + private static final long serialVersionUID = 1L; + + private int onlineCnt; //在线电站数量 + private int offlineCnt; //在线电站数量 + private int faultCnt; //故障电站数量 + + private double etd; //当日发电总度数 + private double eto; //累计发电总度数 + + private double realPower; //实时功率 + private double totalPower; //装机总功率 + + private double treeCount; //等效植树 + private double totalTreeCount; //全部等效植树 + + private int alarmDealed = 0; + private int alarmDealing = 0; + private int alarmUnDeal = 0; + + private long clzCount=0; + + private long ywcCount=0; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.java new file mode 100644 index 0000000..6ce823f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 低效电站设置 视图实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InefficientSettingVO extends InefficientSettingEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/InverterDataVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/InverterDataVO.java new file mode 100644 index 0000000..a8048d2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/InverterDataVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 逆变器数据表 视图实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InverterDataVO extends InverterDataEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/InverterTreeVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/InverterTreeVO.java new file mode 100644 index 0000000..e64f9e2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/InverterTreeVO.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.system.pojo.entity.Dept; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@Schema(description = "DeptVO对象") +public class InverterTreeVO { + + + private String id; + + private String parentId; + + private String title; + + private String key; + + private String value; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + /** + * 是否有子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Boolean hasChildren; + + + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } + + /** + * 上级机构 + */ + private String parentName; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/InverterUapVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/InverterUapVO.java new file mode 100644 index 0000000..c49ffa7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/InverterUapVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 逆变器电流电压功率数据 视图实体类 + * + * @author AlexWang + * @since 2024-11-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class InverterUapVO extends InverterUapEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryDailyStatVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryDailyStatVO.java new file mode 100644 index 0000000..94abad9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryDailyStatVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站日统计数据 视图实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryDailyStatVO extends MonitorEntryDailyStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryMonthStatVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryMonthStatVO.java new file mode 100644 index 0000000..d54e256 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryMonthStatVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站月统计数据 视图实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryMonthStatVO extends MonitorEntryMonthStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.java new file mode 100644 index 0000000..a187fa4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 外部电站同步 视图实体类 + * + * @author AlexWang + * @since 2024-06-01 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryStatVO extends MonitorEntryStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryYearStatVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryYearStatVO.java new file mode 100644 index 0000000..38864e1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorEntryYearStatVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站能量按年统计 视图实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorEntryYearStatVO extends MonitorEntryYearStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.java new file mode 100644 index 0000000..fe09ba8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 逆变器日数据 视图实体类 + * + * @author AlexWang + * @since 2024-06-07 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorInverterDailyStatVO extends MonitorInverterDailyStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterStatVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterStatVO.java new file mode 100644 index 0000000..c58aa87 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/MonitorInverterStatVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 厂家逆变器表 视图实体类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MonitorInverterStatVO extends MonitorInverterStatEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.java b/src/main/java/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.java new file mode 100644 index 0000000..e868bdb --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.java @@ -0,0 +1,44 @@ +package org.springblade.modules.nh.pojo.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class OverviewStaticDataVo { + + @Schema(description = "装机功率") + private Double currentGL; + + @Schema(description = "装机功率") + private Double ZjGL; + + @Schema(description ="当日发电") + private Double currentEtd; + + @Schema(description ="累计发电") + private Double totalEto; + + @Schema(description ="告警--已处理") + private Integer alarmDeal; + + @Schema(description ="告警--未处理") + private Integer alarmUnDeal; + + @Schema(description ="工单--已处理") + private Integer orderDeal; + + @Schema(description ="工单--未处理") + private Integer orderUnDeal; + + public OverviewStaticDataVo() { + this.currentGL = 0d; + this.ZjGL = 0d; + this.currentGL = 0d; + this.totalEto = 0d; + this.alarmDeal = 0; + this.alarmDeal = 0; + this.orderDeal = 0; + this.orderUnDeal = 0; + } +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.java new file mode 100644 index 0000000..9f1bf02 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.java @@ -0,0 +1,19 @@ +package org.springblade.modules.nh.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +@Data +public class PowerGenerationTrendCoordinatesVO { + + @Schema(description = "x轴坐标") + private List xAxis; + + @Schema(description = "y轴坐标(发电量)") + private List yAxisForElectricity; + + @Schema(description = "y轴坐标(实时功率)") + private List yAxisForPower; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationInefficientVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationInefficientVO.java new file mode 100644 index 0000000..41f2f0d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationInefficientVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 低效电站 视图实体类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PowerStationInefficientVO extends PowerStationInefficientEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationVO.java new file mode 100644 index 0000000..bba3907 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/PowerStationVO.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 电站 视图实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PowerStationVO extends PowerStationEntity { + @Serial + private static final long serialVersionUID = 1L; + + private MonitorEntryStatVO entryStat; + + private OverviewStaticDataVo overviewVo; + + /** + * 异常时长 + */ + private String errDuring; + + /** + * 异常时长 + */ + private String lastDuringStr; + + /** + * 周平均发电量 + */ + private Double weekAvgEnergy; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.java new file mode 100644 index 0000000..f649de0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.java @@ -0,0 +1,12 @@ +package org.springblade.modules.nh.pojo.vo; + +import lombok.Data; + +@Data +public class StaticsMonthVO { + private Integer year; + private String month; + private Double energy; + private Double guardEnergy; + private String guardRate; +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/StaticsStatusVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/StaticsStatusVO.java new file mode 100644 index 0000000..2eba8d5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/StaticsStatusVO.java @@ -0,0 +1,14 @@ +package org.springblade.modules.nh.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +@Data +public class StaticsStatusVO { + + private String name; + + private int status; + private int num; + +} diff --git a/src/main/java/org/springblade/modules/nh/pojo/vo/StationStaticsVO.java b/src/main/java/org/springblade/modules/nh/pojo/vo/StationStaticsVO.java new file mode 100644 index 0000000..51e9281 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/pojo/vo/StationStaticsVO.java @@ -0,0 +1,60 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; + +import java.io.Serial; +import java.util.List; + +/** + * 电站 视图实体类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class StationStaticsVO extends PowerStationEntity { + @Serial + private static final long serialVersionUID = 1L; + + private Integer year; + + private MonitorEntryStatEntity entryStat; + + private Double yesterdayEnergy; + +// private InefficientSettingEntity setting; + private Double currentGuardEnergy; + private Double currentGuardRate; + + private List monthList; +} diff --git a/src/main/java/org/springblade/modules/nh/service/IAlarmCodeService.java b/src/main/java/org/springblade/modules/nh/service/IAlarmCodeService.java new file mode 100644 index 0000000..ad488f1 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IAlarmCodeService.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springblade.modules.nh.pojo.vo.AlarmCodeVO; +import org.springblade.modules.nh.excel.AlarmCodeExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 故障代码 服务类 + * + * @author AlexWang + * @since 2024-06-06 + */ +public interface IAlarmCodeService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param alarmCode + * @return + */ + IPage selectAlarmCodePage(IPage page, AlarmCodeVO alarmCode); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportAlarmCode(Wrapper queryWrapper); + + void syncFaultCode(String sysType, List list); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IAlarmInfoService.java b/src/main/java/org/springblade/modules/nh/service/IAlarmInfoService.java new file mode 100644 index 0000000..5706aee --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IAlarmInfoService.java @@ -0,0 +1,57 @@ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.pojo.dto.sync.InverterRecoverDTO; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.vo.AlarmInfoVO; +import org.springblade.modules.nh.excel.AlarmInfoExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.tool.api.R; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.nh.pojo.vo.OverviewStaticDataVo; + +import java.util.List; + +/** + * 设备告警信息表 服务类 + * + * @author AlexWang + * @since 2024-06-03 + */ +public interface IAlarmInfoService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param alarmInfo + * @return + */ + IPage selectAlarmInfoPage(IPage page, AlarmInfoVO alarmInfo); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportAlarmInfo(Wrapper queryWrapper); + + OverviewStaticDataVo stationAlarm(String outStationId); + + void syncAlarmInfo(List list, String sysType); + + void syncRecoverTime(List recoverList); + + List getIdCodes(String sysTypeAiswei); + + R turnMaintenance(String id); + + String getOrderNo(Long alarmId); + + String getOrderNumber(Long entryId); + +} diff --git a/src/main/java/org/springblade/modules/nh/service/IDeviceService.java b/src/main/java/org/springblade/modules/nh/service/IDeviceService.java new file mode 100644 index 0000000..8089d74 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IDeviceService.java @@ -0,0 +1,62 @@ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; +import org.springblade.modules.nh.excel.PowerStationImport; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationPaymentTimeDTO; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.entity.DeviceMsgEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.excel.DeviceExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 设备管理 服务类 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface IDeviceService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param device + * @return + */ + IPage selectDevicePage(IPage page, DeviceVO device); + + List listByPowerStation(PowerStationEntity powerStationEntity); + + DeviceVO fillDetail(DeviceVO vo); + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportDevice(Wrapper queryWrapper); + + DeviceVO getDetail(Long id); + + R syncDeviceData(DeviceDTO dto); + + DeviceEntity getInverterBySn(String sn); + + void updateSn(Long id,String sn); + + boolean updateGenDate(String id,String time); + + void importPowerStation(List list, Boolean isCovered); + + R materialChangeCauseDeviceChange(List list); + + List editSnMsg(String id); + + void editPaymentTime(PowerStationPaymentTimeDTO paymentTimeDTO); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IInefficientSettingService.java b/src/main/java/org/springblade/modules/nh/service/IInefficientSettingService.java new file mode 100644 index 0000000..47c3165 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IInefficientSettingService.java @@ -0,0 +1,44 @@ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.InefficientSettingVO; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.excel.UserExcel; + +import java.util.List; + +/** + * 低效电站设置 服务类 + * + * @author AlexWang + * @since 2024-06-14 + */ +public interface IInefficientSettingService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param inefficientSetting + * @return + */ + IPage selectInefficientSettingPage(IPage page, InefficientSettingVO inefficientSetting); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportInefficientSetting(Wrapper queryWrapper); + + + void importSetting(List data, Boolean isCovered); + + InefficientSettingEntity getSettingByStation(PowerStationEntity stationEntity); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IInverterDataService.java b/src/main/java/org/springblade/modules/nh/service/IInverterDataService.java new file mode 100644 index 0000000..abe763e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IInverterDataService.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProR; +import org.springblade.modules.nh.pojo.dto.open.YXInverterDataDTO; +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.InverterDataVO; +import org.springblade.modules.nh.excel.InverterDataExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 逆变器数据表 服务类 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface IInverterDataService extends IService { + /** + * 自定义分页 + * + * @param page + * @param inverterData + * @return + */ + IPage selectInverterDataPage(IPage page, InverterDataVO inverterData); + + + void updateDataFromInverterStat(); + + void updateDeviceOutIds(); + + void updateDataFromInverterStatByOutInverterId(@Param("outDeviceId") String outDeviceId); + + Double sumPacByStationId(Long stationId); + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportInverterData(Wrapper queryWrapper); + + + IPage queryYXList(IPage page,String startTime, String endTime); + + void syncFromScheduler(MonitorInverterStatEntity inverterStat); + + void syncFromSchedulerList(List inverterStatList); + + void syncAisweiInverterDatail(List list); + + void syncInverterIU(String outInverterId,String sn,String pvStr,String mpptStr,String uvwStr); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IInverterUapService.java b/src/main/java/org/springblade/modules/nh/service/IInverterUapService.java new file mode 100644 index 0000000..df5f3e8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IInverterUapService.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.modules.nh.pojo.dto.InverterUapDTO; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.modules.nh.pojo.vo.InverterUapVO; +import org.springblade.modules.nh.excel.InverterUapExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + +/** + * 逆变器电流电压功率数据 服务类 + * + * @author AlexWang + * @since 2024-11-21 + */ +public interface IInverterUapService extends IService { + /** + * 自定义分页 + * + * @param page + * @param inverterUap + * @return + */ + IPage selectInverterUapPage(IPage page, InverterUapVO inverterUap); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportInverterUap(Wrapper queryWrapper); + + + Map inverterMap(String outStationId, String stateTime,String ivType); + +} diff --git a/src/main/java/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.java b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.java new file mode 100644 index 0000000..96119ed --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.pojo.dto.sync.JlglHourlyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryDailyStatVO; +import org.springblade.modules.nh.excel.MonitorEntryDailyStatExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 电站日统计数据 服务类 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface IMonitorEntryDailyStatService extends IService { + /** + * 自定义分页 + * + * @param page + * @param monitorEntryDailyStat + * @return + */ + IPage selectMonitorEntryDailyStatPage(IPage page, MonitorEntryDailyStatVO monitorEntryDailyStat); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryDailyStat(Wrapper queryWrapper); + + void syncEntryDailyStat(List list, String sysType); + + void syncEntryDailyJlglStat(List jlglHourlyDTOS, String date, String apikey, String sysTypeAiswei); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.java b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.java new file mode 100644 index 0000000..0151d03 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryMonthStatVO; +import org.springblade.modules.nh.excel.MonitorEntryMonthStatExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 电站月统计数据 服务类 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface IMonitorEntryMonthStatService extends IService { + /** + * 自定义分页 + * + * @param page + * @param monitorEntryMonthStat + * @return + */ + IPage selectMonitorEntryMonthStatPage(IPage page, MonitorEntryMonthStatVO monitorEntryMonthStat); + + + List> overviewLastDays(String outStationIds, Integer days); + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryMonthStat(Wrapper queryWrapper); + + void syncMonthStatData(List dayEnergyList); + + Double sumEnergy(List outStationIds, Date startDate, Date endDate); + + Double getYesterdayEnergy(String outStationId); + + MonitorEntryMonthStatEntity getFirstEnergyDay(String outStationId); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IMonitorEntryStatService.java b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryStatService.java new file mode 100644 index 0000000..80956af --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryStatService.java @@ -0,0 +1,89 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.excel.MonitorEntryStatExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; + +import java.util.List; + +/** + * 外部电站同步 服务类 + * + * @author AlexWang + * @since 2024-06-01 + */ +public interface IMonitorEntryStatService extends IService { + + void updateGoodweEntryMonthYearData(); + + void updateEntryYearData(MonitorEntryStatEntity entryStat, int currentYear, int currentMonth); + + /** + * 自定义分页 + * + * @param page + * @param monitorEntryStat + * @return + */ + IPage selectMonitorEntryStatPage(IPage page, MonitorEntryStatVO monitorEntryStat); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryStat(Wrapper queryWrapper); + + MonitorEntryStatVO realTimeDetail(PowerStationVO vo); + + MonitorEntryStatVO getByPowerStation(PowerStationVO vo); + MonitorEntryStatEntity getByOutId(String outId); + + void syncEntryStat(List list, String sysType); + + List getStationIds(@Param("sysType") String sysType); + List getStationIds(String sysType,int index); + + MonitorEntryStatEntity findByStationId(String stationId); + + void updateFisDate(String stationId, String s); + + MonitorEntryStatDTO findByOutStationIds(List stationIds); + + MonitorEntryStatEntity getEntryStatInCache(String stationId); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IMonitorEntryYearStatService.java b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryYearStatService.java new file mode 100644 index 0000000..3a27ce3 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IMonitorEntryYearStatService.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryYearStatVO; +import org.springblade.modules.nh.excel.MonitorEntryYearStatExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * 电站能量按年统计 服务类 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface IMonitorEntryYearStatService extends IService { + /** + * 自定义分页 + * + * @param page + * @param monitorEntryYearStat + * @return + */ + IPage selectMonitorEntryYearStatPage(IPage page, MonitorEntryYearStatVO monitorEntryYearStat); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorEntryYearStat(Wrapper queryWrapper); + + void syncYearStatData(List monthEnergyDTOList); + + String getFirstMonth(String stationId); + + List listYearByEntry(String outStationId, Integer year); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.java b/src/main/java/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.java new file mode 100644 index 0000000..519ded7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterDailyStatVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Map; + +/** + * 逆变器日数据 服务类 + * + * @author AlexWang + * @since 2024-06-07 + */ +public interface IMonitorInverterDailyStatService extends IService { + /** + * 自定义分页 + * + * @param page + * @param monitorInverterDailyStat + * @return + */ + IPage selectMonitorInverterDailyStatPage(IPage page, MonitorInverterDailyStatVO monitorInverterDailyStat); + + + /** + * 导出数据 + * + * @return + */ + + public Map getInverterGraph(String sn, String time); + + MonitorInverterDailyStatEntity findBySnAndDate(String sn, String date); + + List findByInverterSnsAndDate(List sns, String date, String sysType); + + void syncGinlongInverterForNowHour(List list); + + void syncHourlyData(String sysType, List energyList); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IMonitorInverterStatService.java b/src/main/java/org/springblade/modules/nh/service/IMonitorInverterStatService.java new file mode 100644 index 0000000..79bf0f4 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IMonitorInverterStatService.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProR; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterStatVO; +import org.springblade.modules.nh.excel.MonitorInverterStatExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; +import java.util.Set; + +/** + * 厂家逆变器表 服务类 + * + * @author AlexWang + * @since 2024-06-02 + */ +public interface IMonitorInverterStatService extends IService { + /** + * 自定义分页 + * + * @param page + * @param monitorInverterStat + * @return + */ + IPage selectMonitorInverterStatPage(IPage page, MonitorInverterStatVO monitorInverterStat); + + MonitorInverterStatEntity realtimeDetail(String outInverterId); + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportMonitorInverterStat(Wrapper queryWrapper); + + void syncInverterDetails(List list, String sysType, Set updateFields); + + List getSnsByStation(String outStationId); + List getInverterSns(String sysType); + List getInverterSns(String sysType,int index); + + MonitorInverterStatEntity getBySn(String sn); + + MonitorInverterStatEntity initNewInverterStat(String sysType, GetInverterDetailR inverter); +} diff --git a/src/main/java/org/springblade/modules/nh/service/INHCommonService.java b/src/main/java/org/springblade/modules/nh/service/INHCommonService.java new file mode 100644 index 0000000..e2cf4e6 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/INHCommonService.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.tool.api.R; +import org.springblade.modules.nh.excel.DeviceExcel; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; + +import java.util.List; + +/** + * 设备管理 服务类 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface INHCommonService { + + R queryWeather(String area); + + R queryWeatherHistory(String area,String day); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IPowerStationInefficientService.java b/src/main/java/org/springblade/modules/nh/service/IPowerStationInefficientService.java new file mode 100644 index 0000000..f83c5d7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IPowerStationInefficientService.java @@ -0,0 +1,55 @@ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; +import org.springblade.modules.nh.excel.StationStaticsExcel; +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationInefficientVO; +import org.springblade.modules.nh.excel.PowerStationInefficientExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.nh.pojo.vo.StationStaticsVO; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; + +import java.util.List; +import java.util.Map; + +/** + * 低效电站 服务类 + * + * @author AlexWang + * @since 2024-06-14 + */ +public interface IPowerStationInefficientService extends BaseService { + /** + * 自定义分页 + * + * @param page + * @param powerStationInefficient + * @return + */ + IPage selectPowerStationInefficientPage(IPage page, PowerStationInefficientVO powerStationInefficient); + + + IPage selectAllPage(Map powerStationInefficient, Query query); + + + /** + * 导出数据 + * + * @param + * @return + */ + List exportPowerStationInefficient(Map powerStationInefficient); + + boolean turnMainOrder(String id); + + void fillStaticsVO(StationStaticsVO vo); + + List exportStationStatics(Map powerStation); + + boolean updateSiteName(String entryIds, OperationSiteEntity site); + + boolean deleteSiteName(String entryIds); +} diff --git a/src/main/java/org/springblade/modules/nh/service/IPowerStationService.java b/src/main/java/org/springblade/modules/nh/service/IPowerStationService.java new file mode 100644 index 0000000..51b1578 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/IPowerStationService.java @@ -0,0 +1,102 @@ +package org.springblade.modules.nh.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.modules.nh.excel.PowerStationImport; +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.dto.StationDTO; +import org.springblade.modules.nh.pojo.dto.open.YXPowerStationDTO; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.HomeOverviewVO; +import org.springblade.modules.nh.pojo.vo.InverterTreeVO; +import org.springblade.modules.nh.pojo.vo.PowerGenerationTrendCoordinatesVO; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.excel.PowerStationExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.excel.EntryPaymentTimeExcel; +import org.springblade.modules.operation.excel.EntrySiteExcel; + +import java.util.List; +import java.util.Map; + +/** + * 电站 服务类 + * + * @author AlexWang + * @since 2024-05-31 + */ +public interface IPowerStationService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param powerStation + * @return + */ + IPage selectPowerStationPage(IPage page, StationDTO powerStation); + + + PowerStationVO getStationDetail(PowerStationEntity powerStation); + + PowerStationEntity getStationDetailByPowCode(String powCode); + + List getStationListByPowCode(String powCode); + + HomeOverviewVO staticsHomeOverview(Long traderId); + /** + * 导出数据 + * + * @param + * @return + */ + List exportPowerStation(StationDTO powerStation); + + R syncPowerStation(PowerStationDTO dto); + PowerStationEntity getPowerStationByInId(String inId); + + Map staticsStatus(); + + Map staticsYkStatus(); + + Map powerGenerationTrends(Long entryId,String type,String time,String stationCode); + + PowerStationEntity getByInnerId(String innerStationId); + + PowerStationEntity getByOutStationId(String outStationId); + + Map powerGenTrendsByInnerId(String innerStationId,String type,String time); + + PowerGenerationTrendCoordinatesVO powerGenerationTrendsHome(String type, String traderId); + + PowerGenerationTrendCoordinatesVO statByProjectCompany(String type, String traderId); + + IPage queryListForYX(IPage page,StationDTO powerStation); + + + R>> getMapdistribution(); + + List getLazyTree(String parentId,String parentName,int level); + + InverterTreeVO getTotalTree(); + + void updatePowerStationBrand(); + + IPage findMyPowerStation(IPage page, String empId,String siteId,String condition); + + + List getSelectPowerStaion(Map map); + + R importSite(List data); + + + boolean batchUpdateStation(List stationList); + + + void importPaymentTime(List list); + + +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/AlarmCodeServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/AlarmCodeServiceImpl.java new file mode 100644 index 0000000..1891f8c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/AlarmCodeServiceImpl.java @@ -0,0 +1,90 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.commons.compress.utils.Lists; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.AlarmCodeExcel; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.mapper.AlarmCodeMapper; +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.vo.AlarmCodeVO; +import org.springblade.modules.nh.service.IAlarmCodeService; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 故障代码 服务实现类 + * + * @author AlexWang + * @since 2024-06-06 + */ +@Service +public class AlarmCodeServiceImpl extends BaseServiceImpl implements IAlarmCodeService { + + @Override + public IPage selectAlarmCodePage(IPage page, AlarmCodeVO alarmCode) { + return page.setRecords(baseMapper.selectAlarmCodePage(page, alarmCode)); + } + + + @Override + public List exportAlarmCode(Wrapper queryWrapper) { + List alarmCodeList = baseMapper.exportAlarmCode(queryWrapper); + //alarmCodeList.forEach(alarmCode -> { + // alarmCode.setTypeName(DictCache.getValue(DictEnum.YES_NO, AlarmCode.getType())); + //}); + return alarmCodeList; + } + + @Override + public void syncFaultCode(String sysType, List list) { + + Set codes = list.stream().map(GetAlarmListR::getAlarmCode).collect(Collectors.toSet()); + List exists = findByCodeAndSource(new ArrayList<>(codes), sysType); + Map codeMap = exists.stream().collect(Collectors.toMap(e -> e.getCode(), e -> e)); + Set newsExists = new HashSet<>(); + for (GetAlarmListR alarm : list) { + AlarmCodeEntity r = codeMap.get(alarm.getAlarmCode()); + if (r == null) { + String key = sysType + "$-$" + alarm.getAlarmCode(); + if (!newsExists.contains(key)) { + r = new AlarmCodeEntity(); + r.setBrand(sysType); + r.setCode(alarm.getAlarmCode()); + r.setReason(alarm.getAlarmMsg()); +// r.setContent(alarm.getAlarmMsg()); + + if(StringUtil.isNotBlank(alarm.getAdvice()) + && !StringUtil.containsAny(alarm.getAdvice(),"已恢复")){ + r.setSuggestion(alarm.getAdvice()); + } + + r.setStatus(1); + r.setLevel(Integer.parseInt(alarm.getAlarmLevel())); + newsExists.add(key); + exists.add(r); + } + } else { + r.setReason(alarm.getAlarmMsg()); +// r.setContent(alarm.getAlarmMsg()); + } + } + this.saveOrUpdateBatch(exists); + } + + public List findByCodeAndSource(List codes, String source) { + if (codes.isEmpty()) { + return Lists.newArrayList(); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(AlarmCodeEntity::getBrand,source) + .in(AlarmCodeEntity::getCode,codes); + return this.list(queryWrapper); + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.java new file mode 100644 index 0000000..d219d58 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.java @@ -0,0 +1,419 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.lang3.StringUtils; +import org.springblade.common.cache.DictCache; +import org.springblade.common.constant.MonitorConstants; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.aiswei.constant.Constants; +import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR; +import org.springblade.modules.nh.pojo.dto.sync.InverterRecoverDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.service.impl.OperationOrderOperationInfoServiceImpl; +import org.springblade.modules.order.service.impl.OperationOrderServiceImpl; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.nh.pojo.vo.AlarmInfoVO; +import org.springblade.modules.nh.excel.AlarmInfoExcel; +import org.springblade.modules.nh.mapper.AlarmInfoMapper; +import org.springblade.modules.nh.pojo.vo.OverviewStaticDataVo; +import org.springblade.modules.nh.service.IAlarmInfoService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springblade.modules.order.utils.PlantformUtils; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.service.IRegionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.util.CollectionUtils; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 设备告警信息表 服务实现类 + * + * @author AlexWang + * @since 2024-06-03 + */ +@Service +@AllArgsConstructor +public class AlarmInfoServiceImpl extends BaseServiceImpl implements IAlarmInfoService { + +// private final MonitorInverterStatMapper inverterStatMapper; + + private final IPowerStationService powerStationService; + + private final OperationOrderServiceImpl orderService; + + private final IRegionService regionService; + + private final MonitorEntryStatServiceImpl statService; + + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + + @Override + public IPage selectAlarmInfoPage(IPage page, AlarmInfoVO alarmInfo) { + return page.setRecords(baseMapper.selectAlarmInfoPage(page, alarmInfo)); + } + + @Override + public OverviewStaticDataVo stationAlarm(String outStationId) { + return this.baseMapper.stationAlarm(outStationId); + } + + @Override + public List exportAlarmInfo(Wrapper queryWrapper) { + List alarmInfoList = this.list(queryWrapper); + List result = Lists.newArrayList(); + alarmInfoList.forEach(alarmInfo -> { + + AlarmInfoExcel excel = new AlarmInfoExcel(); + BeanUtil.copyProperties(alarmInfo,excel); + excel.setSource(DictCache.getValue(DictEnum.BRAND, alarmInfo.getSource())); + excel.setType(DictCache.getValue("alarm_type", alarmInfo.getType())); + excel.setCloseStr(DictCache.getValue("alarm_close_status", alarmInfo.getCloseStatus())); + excel.setStatusStr(DictCache.getValue("alarm_info_status", alarmInfo.getStatus())); + if(alarmInfo.getStartTime()!=null){ + excel.setStartTimeStr(DateUtil.formatDateTime(alarmInfo.getStartTime())); + } + PowerStationEntity station = powerStationService.getById(alarmInfo.getStationId()); + if(station!=null){ + excel.setOwnerName(station.getOwnerName()); + excel.setStationCode(station.getStationCode()); + result.add(excel); + } + }); + return result; + } + + private AlarmInfoEntity getByOutStationId(String outStationId) { + List list =this.list(new QueryWrapper().lambda() + .eq(AlarmInfoEntity::getOutStationId, outStationId) + .eq(AlarmInfoEntity::getCloseStatus, "1")); + return list.isEmpty()?null:list.get(0); + } + + @Override + public void syncAlarmInfo(List list, String sysType) { + if (CollectionUtils.isEmpty(list)) { + return; + } + + List alarmList = Lists.newArrayList(); + + List stationEntityList = powerStationService.list(new QueryWrapper().lambda().isNotNull(PowerStationEntity::getOutStationId)); +// List sns = list.stream().map(GetAlarmListR::getAlarmDeviceSn).collect(Collectors.toList()); + +// List inverterStatEntities = inverterStatMapper.getInverterBySns(sns,sysType); +// Map snMapInverter = inverterStatEntities.stream().collect(Collectors.toMap(e -> e.getSn(), e -> e));; + + Map idMapPowerStation = Maps.newHashMap(); + + stationEntityList.forEach(item->{ + idMapPowerStation.put(item.getOutStationId(),item); + }); + + + List closedAlarmDeviceIdList = Lists.newArrayList(); + for (GetAlarmListR alarm : list) { + String outStationId=alarm.getStationId(); +// MonitorInverterStatEntity inverterStat = snMapInverter.get(alarm.getAlarmDeviceSn()); + PowerStationEntity station = idMapPowerStation.get(outStationId); + if(station==null) continue; + + AlarmInfoEntity entity = getByOutStationId(alarm.getStationId()); + if(entity==null){ + entity = new AlarmInfoEntity(); + }else{ + String closeStatus = calCloseStatus(sysType, alarm, entity); + if(MonitorConstants.ALARM_CLOSE_YES.equals(closeStatus)){ + closedAlarmDeviceIdList.add(alarm.getAlarmDeviceSn()); + } + continue; + } + + entity.setSn(alarm.getAlarmDeviceSn()); +// entity.setIdCode(Objects.equals(sysType, NhConstants.SYS_TYPE_AISWEI) ? alarm.getWarningInfoData() : null); +// entity.setDeviceType("0"); +// vs[colMap.get("`device_name`")] = StringUtils.defaultIfBlank(alarm.getMachine(), planMaterial == null ? null : planMaterial.getStr("name")); +// vs[colMap.get("`device_type`")] = (planMaterial == null ? null : planMaterial.getStr("type")); +// if(inverterStat!=null){ +// entity.setDeviceName(inverterStat.getName()); +// } + entity.setStationId(station.getId()); + entity.setOutStationId(alarm.getStationId()); + entity.setStationName(station.getOwnerName()+station.getStationCode()); + entity.setType(convLevel(alarm.getAlarmLevel())); + entity.setMalfunctionCode(alarm.getAlarmCode()); + entity.setSource(sysType); + entity.setAlarmName(alarm.getAlarmMsg()); +// entity.setStatus(Integer.parseInt(MonitorConstants.ALARM_ST_NOT_CONFIRMED)); + + String closeStatus = calCloseStatus(sysType, alarm, entity); + if(MonitorConstants.ALARM_CLOSE_YES.equals(closeStatus)){ + continue; + } + + entity.setModel(alarm.getModel()); + entity.setStartTime(new Date(alarm.getAlarmBeginTime())); + entity.setStartTimeTsp(alarm.getAlarmBeginTime()); +// entity.setStationId(0l); + if (alarm.getAlarmEndTime() != null) { + entity.setEndTime(new Date(alarm.getAlarmEndTime())); + } + entity.setSuggestion(alarm.getAdvice()); + entity.setCloseStatus(closeStatus); + entity.setCreateTime(new Date()); + entity.setUpdateTime(new Date()); + alarmList.add(entity); + } + this.saveOrUpdateBatch(alarmList); + if(!CollectionUtils.isEmpty(closedAlarmDeviceIdList)){ + LambdaUpdateWrapper alarmUpdateWrapper = new LambdaUpdateWrapper<>(); + alarmUpdateWrapper.in(AlarmInfoEntity::getSn, closedAlarmDeviceIdList) + .set(AlarmInfoEntity::getIsDeleted,"1") + .set(AlarmInfoEntity::getCloseStatus,MonitorConstants.ALARM_CLOSE_NO) + .set(AlarmInfoEntity::getSolution,"设备故障已处理,系统同步删除"); + this.update(alarmUpdateWrapper); + } + } + + private String calCloseStatus(String sysType, GetAlarmListR alarm, AlarmInfoEntity entity) { + String closeStatus = MonitorConstants.ALARM_CLOSE_NO; + if(StringUtils.isNotBlank(alarm.getState())){ + //状态:1未确认、2待处理、3处理中、4已解决 + int status = 1; + if(NhConstants.SYS_TYPE_GINLONG.equals(sysType)){ + //0 = 未处理,1 = 已处理,2 = 已恢复 + if(!alarm.getState().equals("0")){ + status = 4; + closeStatus = MonitorConstants.ALARM_CLOSE_YES; + } + } + if(NhConstants.SYS_TYPE_GOODWE.equals(sysType)){ + //状态 1:已处理 0:未处理 + if(alarm.getState().equals("1")){ + status = 4; + closeStatus = MonitorConstants.ALARM_CLOSE_YES; + } + } + entity.setStatus(status); + } + return closeStatus; + } + + // 数据库中存的告警类型:1故障、2告警、3提示、4建议 + // ginlong level 1 = 提示,2 = 一般,3 = 紧急 + // goodwe 没有,因此直接设为 2 = 一般 + // aiswei 没有,因此直接设为 2 = 一般 + private static String convLevel(String alarmLevel) { + if (StringUtils.isBlank(alarmLevel)) { + return MonitorConstants.ALARM_TYPE_ADVICE; + } + switch (alarmLevel) { + case "1": + return MonitorConstants.ALARM_TYPE_TIPS; + case "2": + return MonitorConstants.ALARM_TYPE_WARN; + case "3": + return MonitorConstants.ALARM_TYPE_FAULT; + default: + return MonitorConstants.ALARM_TYPE_ADVICE; + } + } + + @Override + public void syncRecoverTime(List recoverList) { + for (int i = 0, n = recoverList.size(); i < n; i++) { + Date d = new Date(); + d.setTime(recoverList.get(i).getRecoverTime()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(AlarmInfoEntity::getIdCode,recoverList.get(i).getFaultCode()) + .eq(AlarmInfoEntity::getSource,NhConstants.SYS_TYPE_AISWEI) + .set(AlarmInfoEntity::getEndTime,d); + this.update(updateWrapper); + } + } + + @Override + public List getIdCodes(String sysTypeAiswei) { + return this.baseMapper.getIdCodes(sysTypeAiswei); + } + + @Override + public String getOrderNo(Long alarmId) { + List list = orderService.list(new QueryWrapper().lambda().eq(OperationOrderEntity::getAlarmId,alarmId).notIn(OperationOrderEntity::getStatus,"5","6")); + return CollectionUtils.isEmpty(list)?"":list.get(0).getNumber(); + } + + @Override + public String getOrderNumber(Long entryId) { + PowerStationEntity entity = powerStationService.getOne(new QueryWrapper().lambda().eq(PowerStationEntity::getId,entryId)); + return entity!=null?entity.getOrderNumber():""; + } + + + public static String getFirstDayofNextMonth(Date date , String format){ + SimpleDateFormat sdf = new SimpleDateFormat(format); + try { + Calendar calendar = Calendar.getInstance(); + calendar.setTime (date); + calendar.set(Calendar.DAY_OF_MONTH,1); + calendar.add(Calendar.MONTH, 1); + return sdf.format(calendar.getTime()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + @Override + public R turnMaintenance(String id) { + BigDecimal bd = BigDecimal.ZERO; + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + AlarmInfoEntity alarm = getById(id); + if(alarm.getStatus()!=2){ + return R.fail(201,"当前状态不可转运维"); + } + alarm.setStatus(3); + + PowerStationEntity customerEntry = powerStationService.getById(alarm.getStationId()); + if(StringUtils.isBlank(customerEntry.getOmProviderId())){ + throw new ServiceException("该电站未绑定运维商,不可操作"); + } + MonitorEntryStatEntity statEntity = statService.findByStationId(customerEntry.getOutStationId()); + String number = PlantformUtils.getOrderNumber(); + OperationOrderEntity order = new OperationOrderEntity(); + order.setNumber(number); + order.setOrderType("4");//监控转运维 + order.setCreateTime(time); + order.setRepairTime(time); + order.setCreateBy(user.getUserId().toString()); + order.setApplianceCategory(alarm.getDeviceType()); + order.setApplianceModel(alarm.getModel()); + order.setApplianceBarcode(alarm.getSn()); + if (customerEntry != null) { + Long count = orderService.findRetunCountByOrderId(customerEntry.getInnerStationId()); + if(count>0){ + throw new ServiceException("该电站已经转运维,不可重复操作"); + } + order.setAgentId(customerEntry.getAgentId()); + order.setAgentName(customerEntry.getAgentName()); + order.setCustomerName(customerEntry.getOwnerName()); + order.setPowerStationCode(customerEntry.getStationCode()); + order.setCapitalName(customerEntry.getCapitalName()); + order.setCapitalCode(customerEntry.getCapitalCode()); + + Region region = new Region(); + region.setProvinceName(customerEntry.getProvince()); + region.setRegionLevel(1); + Region detail = regionService.getOne(Condition.getQueryWrapper(region)); + if(detail!= null){ + order.setProvinceCode(detail.getProvinceCode()); + } + order.setProvince(customerEntry.getProvince()); + region.setCityName(customerEntry.getCity()); + region.setRegionLevel(2); + Region citys = regionService.getOne(Condition.getQueryWrapper(region)); + if(citys!= null){ + order.setCityCode(citys.getCityCode()); + } + order.setCity(customerEntry.getCity()); + region.setDistrictName(customerEntry.getDistrict()); + region.setRegionLevel(3); + Region distr = regionService.getOne(Condition.getQueryWrapper(region)); + if(distr!= null){ + order.setAreaCode(distr.getDistrictCode()); + } + order.setArea(customerEntry.getDistrict()); + + order.setCustomerAddress(customerEntry.getAddress()); + + order.setCustomerMobile(customerEntry.getOwnerPhone()); + order.setPowerStationName(customerEntry.getStationCode()); + order.setEntryId(customerEntry.getInnerStationId()); + order.setApplianceBrand(DictCache.getValue(DictEnum.DEVICE_BRAND, customerEntry.getBrand())); + if(statEntity.getFisGenerateTime()!= null){ + String shtime = getFirstDayofNextMonth(statEntity.getFisGenerateTime(),"yyyy-MM-dd"); + order.setApplianceBuyTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + order.setPutIntoTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + } + //order.setApplianceBuyTime(DateUtil.plusMonths(customerEntry.getStartGenDate(),1)); + + + + order.setSiteId(customerEntry.getOmProviderId()); + order.setSiteName(customerEntry.getOmProviderName()); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.SITE_STATUS_GET); + order.setDispatchTime(time); + if(order.getWarningStartDay()==null){ + order.setWarningStartDay(DateUtils.addDays(time,3)); + } + }else{ + order.setSiteStatus("0"); + order.setStatus("1"); + } + + order.setRemarks(alarm.getMalfunctionCode()+","+alarm.getAlarmName());//故障码+告警名称(故障信息) + order.setComplaintCount(0); + order.setSiteCost(bd); + order.setAccountsReceivable(bd); + order.setTotalCollections(bd); + order.setMileage(bd); + order.setMileCost(bd); + order.setServiceCost(bd); + order.setFittingCost(bd); + order.setSpecialInstallation("1"); + order.setAlarmId(alarm.getId()); + + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "转运维接入"); + ta.setT(Target.NEW_ORDER); + if (!orderService.save(order)) { + return R.fail(201,"转运维失败"); + } + customerEntry.setOrderNumber(order.getNumber()); + + String str = WebPageFunUtils.appendOrderProcessDetail(ta, ""); + OperationOrderOperationInfoEntity info = new OperationOrderOperationInfoEntity(); + info.setOrderId(order.getId()); + info.setProcessDetail(str); + if(StringUtil.isNotBlank(order.getSiteId())){ + info.setSiteId(order.getSiteId()); + } + powerStationService.updateById(customerEntry); + updateById(alarm); + return R.status(infoService.save(info)); + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/DeviceMsgService.java b/src/main/java/org/springblade/modules/nh/service/impl/DeviceMsgService.java new file mode 100644 index 0000000..aa0e187 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/DeviceMsgService.java @@ -0,0 +1,25 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; + +import org.springblade.modules.nh.mapper.DeviceMsgMapper; +import org.springblade.modules.nh.pojo.entity.DeviceMsgEntity; +import org.springframework.stereotype.Service; + +import java.util.Date; + +@Service +@AllArgsConstructor +public class DeviceMsgService extends ServiceImpl { + + public void saveMsg(Long stationId,Long deviceId,String msgContent,String userName){ + DeviceMsgEntity msgEntity=new DeviceMsgEntity(); + msgEntity.setStationId(stationId); + msgEntity.setDeviceId(deviceId); + msgEntity.setMsgContent(msgContent); + msgEntity.setUpdateName(userName); + msgEntity.setUpdateTime(new Date()); + save(msgEntity); + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/DeviceServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/DeviceServiceImpl.java new file mode 100644 index 0000000..d2d9be9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/DeviceServiceImpl.java @@ -0,0 +1,488 @@ +package org.springblade.modules.nh.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.DeviceExcel; +import org.springblade.modules.nh.excel.PowerStationImport; +import org.springblade.modules.nh.factory.aiswei.constant.ContentType; +import org.springblade.modules.nh.factory.aiswei.constant.HttpHeader; +import org.springblade.modules.nh.factory.aiswei.util.HttpUtils; +import org.springblade.modules.nh.mapper.DeviceMapper; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationPaymentTimeDTO; +import org.springblade.modules.nh.pojo.entity.*; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.pojo.vo.InverterDataVO; +import org.springblade.modules.nh.pojo.vo.MonitorInverterStatVO; +import org.springblade.modules.nh.service.*; +import org.springblade.modules.nh.wrapper.DeviceWrapper; +import org.springblade.modules.nh.wrapper.InverterDataWrapper; +import org.springblade.modules.nh.wrapper.MonitorInverterStatWrapper; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import scala.collection.mutable.StringBuilder; + +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 设备管理 服务实现类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Service +@AllArgsConstructor +public class DeviceServiceImpl extends BaseServiceImpl implements IDeviceService { + + private final IPowerStationService stationService; + + private final IInverterDataService inverterDataService; + + private final IMonitorInverterStatService monitorInverterStatService; + + private final IMonitorEntryStatService monitorEntryStatService; + + private final DeviceMsgService deviceMsgService; + @Autowired + OperationSiteServiceImpl siteService; + @Override + public IPage selectDevicePage(IPage page, DeviceVO device) { + return page.setRecords(baseMapper.selectDevicePage(page, device)); + } + + @Override + public List listByPowerStation(PowerStationEntity powerStationEntity) { + if(powerStationEntity==null || powerStationEntity.getId()==null) { + return Lists.newArrayList(); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceEntity::getStationId,powerStationEntity.getId()) + .eq(DeviceEntity::getType,1) + .isNotNull(DeviceEntity::getOutDeviceId); + return list(queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateSn(Long id, String sn) { + DeviceEntity device =this.getById(id); + if(device==null) return; + + if(device.getSn().equals(sn)){ + return; + } + String contentMsg="修改"+device.getName()+" 设备S/N,原S/N:"+device.getSn()+",修改后S/N:"+sn; + + MonitorInverterStatEntity monitorInverterStat = monitorInverterStatService.getBySn(sn); + + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(DeviceEntity::getId,id) + .set(DeviceEntity::getSn,sn); + if(monitorInverterStat!=null) { + updateWrapper + .set(DeviceEntity::getOutStationId,monitorInverterStat.getOutStationId()) + .set(DeviceEntity::getOutDeviceId,monitorInverterStat.getOutInverterId()); + } + this.update(updateWrapper); + + BladeUser user = AuthUtil.getUser(); + deviceMsgService.saveMsg(device.getStationId(),device.getId(),contentMsg,user.getUserName()); + + if(1==device.getType()){ + LambdaUpdateWrapper inverterDataUpdateWrapper = new LambdaUpdateWrapper<>(); + inverterDataUpdateWrapper.eq(InverterDataEntity::getDeviceId,id) + .set(InverterDataEntity::getSn,sn); + inverterDataService.update(inverterDataUpdateWrapper); + + LambdaUpdateWrapper stationUpdateWrapper = new LambdaUpdateWrapper<>(); + stationUpdateWrapper.eq(PowerStationEntity::getId,device.getStationId()); + if(monitorInverterStat!=null){ + stationUpdateWrapper.set(PowerStationEntity::getOutStationId,monitorInverterStat.getOutStationId()); + } + stationUpdateWrapper.set(PowerStationEntity::getSn,sn); + stationService.update(stationUpdateWrapper); + } + + } + + @Override + public boolean updateGenDate(String id, String time) { + + PowerStationEntity entity = stationService.getById(id); + if(StringUtil.isNotBlank(entity.getOutStationId())){ + LambdaUpdateWrapper statUpdateWrapper = new LambdaUpdateWrapper<>(); + statUpdateWrapper.in(MonitorEntryStatEntity::getOutStationId, Func.toStrList(entity.getOutStationId())) + .set(MonitorEntryStatEntity::getFisGenerateTime,time); + monitorEntryStatService.update(statUpdateWrapper); + } + + LambdaUpdateWrapper stationUpdateWrapper = new LambdaUpdateWrapper<>(); + stationUpdateWrapper.eq(PowerStationEntity::getId,id) + .set(PowerStationEntity::getStartGenDate,time); + Map querys = Maps.newHashMap(); + querys.put("powerStationCode",entity.getStationCode()); + querys.put("time",time); + Map headers = Maps.newHashMap(); + headers.put(HttpHeader.HTTP_HEADER_CONTENT_TYPE, ContentType.CONTENT_TYPE_FORM); + //同步户用系统 + try { + + HttpUtils.doPost("https://www.nhhyy.com/nhet/a","/main/redirect/updateFirstGenerationTime","",headers,querys,""); + }catch (Exception e){ + log.error(e.getMessage()); + } + + return stationService.update(stationUpdateWrapper); + } + + + @Override + public DeviceVO fillDetail(DeviceVO vo) { + + PowerStationEntity station = stationService.getById(vo.getStationId()); + vo.setStation(station); + + //获取外部逆变器的数据 + if(StringUtil.isNotBlank(vo.getOutDeviceId())){ + MonitorInverterStatEntity inverterStat = monitorInverterStatService.realtimeDetail(vo.getOutDeviceId()); + if(inverterStat!=null){ + vo.setMonitorInverter(MonitorInverterStatWrapper.build().entityVO(inverterStat)); +// covertInverterData(vo.getInverterData(),vo.getMonitorInverter()); + inverterDataService.updateDataFromInverterStatByOutInverterId(vo.getOutDeviceId()); + } + } + + //查询逆变器数据表数据 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(InverterDataEntity::getDeviceId,vo.getId()); + InverterDataEntity inverterDataEntity= inverterDataService.getOne(queryWrapper); + + if(inverterDataEntity!=null){ + vo.setInverterData(InverterDataWrapper.build().entityVO(inverterDataEntity)); + } + + return vo; + } + + @Override + public DeviceVO getDetail(Long id) { + DeviceEntity entity = this.getById(id); + + if(entity==null) return null; + + return fillDetail(DeviceWrapper.build().entityVO(entity)); + + } + + @Override + public List exportDevice(Wrapper queryWrapper) { + List deviceList = baseMapper.exportDevice(queryWrapper); + //deviceList.forEach(device -> { + // device.setTypeName(DictCache.getValue(DictEnum.YES_NO, Device.getType())); + //}); + return deviceList; + } + + @Override + public DeviceEntity getInverterBySn(String sn) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceEntity::getSn,sn) + .eq(DeviceEntity::getType,1).eq(DeviceEntity::getIsDeleted,0).last("LIMIT 1"); + return this.getOne(queryWrapper); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R syncDeviceData(DeviceDTO dto) { + String innerStationId = dto.getInnerStationId(); + if(StringUtil.isBlank(innerStationId)){ + return R.fail("设备关联的内部电站ID为空"); + } + if(StringUtil.isBlank(dto.getOutDeviceId())){ + return R.fail("设备关联的外部设备ID为空"); + } + + LambdaQueryWrapper deviceQueryWrapper = new LambdaQueryWrapper<>(); + deviceQueryWrapper.eq(DeviceEntity::getOutDeviceId,dto.getOutDeviceId()) + .or() + .eq(DeviceEntity::getInnerDeviceId,dto.getInnerDeviceId()); + if(this.count(deviceQueryWrapper)>0){ + return R.fail("该设备已同步"); + } + + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PowerStationEntity::getInnerStationId,innerStationId); + PowerStationEntity stationEntity = stationService.getOne(queryWrapper); + if(stationEntity==null){ + return R.fail("设备关联的内部电站未同步"); + } + + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(DeviceEntity::getInnerDeviceId,dto.getInnerDeviceId()); + if(this.count(queryWrapper2)>0){ + return R.fail("设备内部id重复,该电站已同步"); + } + + LambdaQueryWrapper queryWrapper3 = new LambdaQueryWrapper<>(); + queryWrapper3.eq(MonitorInverterStatEntity::getSn,dto.getSn()); + MonitorInverterStatEntity outInverter = monitorInverterStatService.getOne(queryWrapper3); + + DeviceEntity entity = Objects.requireNonNull(BeanUtil.copyProperties(dto, DeviceEntity.class)); + entity.setStationId(stationEntity.getId()); + entity.setOutStationId(null); + if(outInverter!=null){ + entity.setOutDeviceId(outInverter.getOutInverterId()); + }else{ + entity.setOutDeviceId(null); + } + this.save(entity); + + try{ + //逆变器才有数据 + if(entity.getType()==1){ + InverterDataEntity dataEntity = Objects.requireNonNull(BeanUtil.copyProperties(dto, InverterDataEntity.class)); + dataEntity.setDeviceId(entity.getId()); + dataEntity.init(); + if(outInverter!=null){ + dataEntity.setOutDeviceId(outInverter.getOutInverterId()); + if(outInverter.getEtd()!=null){ + dataEntity.setEtd(BigDecimal.valueOf(outInverter.getEtd())); + } + if(outInverter.getEtm()!=null){ + dataEntity.setEtm(BigDecimal.valueOf(outInverter.getEtm())); + } + if(outInverter.getEty()!=null){ + dataEntity.setEty(BigDecimal.valueOf(outInverter.getEty())); + } + if(outInverter.getEto()!=null){ + dataEntity.setEto(BigDecimal.valueOf(outInverter.getEto())); + } + if (outInverter.getRealPower()!=null){ + dataEntity.setRealPower(BigDecimal.valueOf(outInverter.getRealPower())); + } + } + inverterDataService.save(dataEntity); + } + }catch(Exception e){ + log.error("保存InverterData报错,{}",e); + } + + + return R.success("添加设备成功"); + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public R materialChangeCauseDeviceChange(List list) { + int m=0,n=0; + List ids = Lists.newArrayList(); + String inner_station_id=list.get(0).getInnerStationId(); + + //删除系统原来的设备信息 + LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); + updateWrapper1.eq(DeviceEntity::getInnerStationId,inner_station_id) + .set(DeviceEntity::getIsDeleted, BladeConstant.DB_IS_DELETED); + update(updateWrapper1); + + String sn=""; + for(DeviceDTO dto:list){ + try{ + R r= syncDeviceData(dto); + if(r.isSuccess()){ + m++; + if(StringUtil.isNotBlank(dto.getSn())){ + sn=dto.getSn(); + } + }else{ + n++; + ids.add(dto.getInnerDeviceId()); + } + }catch (Exception e){ + n++; + ids.add(dto.getInnerDeviceId()); + } + } + if(StringUtil.isNotBlank(sn)){ + LambdaUpdateWrapper entityLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + entityLambdaUpdateWrapper.eq(PowerStationEntity::getInnerStationId,inner_station_id); + entityLambdaUpdateWrapper.set(PowerStationEntity::getSn,sn); + stationService.update(entityLambdaUpdateWrapper); + } + if(n>0){ + StringBuilder sb = new StringBuilder("物料信息变更批量同步设备同步失败."); + sb.append("成功:"+m+"条;"); + sb.append("失败:"+n+"条;"); + sb.append("失败的内部设备ID集合:"+ JSON.toJSONString(ids)); + return R.fail(sb.toString()); + }else{ + return R.success("物料信息变更批量同步设备同步成功"+m+"条"); + } + } + + @Override + public List editSnMsg(String id) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(DeviceMsgEntity::getDeviceId,id); + queryWrapper.orderByDesc(DeviceMsgEntity::getUpdateTime); + return deviceMsgService.list(queryWrapper); + } + + + private void covertInverterData(InverterDataVO dataEntity, MonitorInverterStatVO outInverter){ + if(dataEntity==null || outInverter==null){ + return; + } + if(outInverter.getEtd()!=null){ + dataEntity.setEtd(BigDecimal.valueOf(outInverter.getEtd())); + } + if(outInverter.getEtm()!=null){ + dataEntity.setEtm(BigDecimal.valueOf(outInverter.getEtm())); + } + if(outInverter.getEty()!=null){ + dataEntity.setEty(BigDecimal.valueOf(outInverter.getEty())); + } + if(outInverter.getEto()!=null){ + dataEntity.setEto(BigDecimal.valueOf(outInverter.getEto())); + } + if(outInverter.getRealPower()!=null){ + dataEntity.setRealPower(BigDecimal.valueOf(outInverter.getRealPower())); + } + if(outInverter.getPac()!=null){ + dataEntity.setPac(BigDecimal.valueOf(outInverter.getPac())); + } + if(outInverter.getPwHour()!=null){ + dataEntity.setPwHour(BigDecimal.valueOf(outInverter.getPwHour())); + } + + } + + @Override + public void importPowerStation(List list, Boolean isCovered) { + int m=0,n=0; + List ids = org.apache.commons.compress.utils.Lists.newArrayList(); + List findSiteList =siteService.findSiteList(); + Map mapsite = findSiteList.stream().collect(Collectors.toMap(e -> e.getName().trim(), e -> e)); + + for(PowerStationImport impo:list){ + try{ + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(PowerStationEntity::getStationCode,impo.getStationCode()); + if(stationService.count(queryWrapper2)>0){ + n++; + continue; + } + String brand = DictCache.getKey(DictEnum.BRAND, impo.getBrand()); + PowerStationEntity entity = Objects.requireNonNull(BeanUtil.copyProperties(impo, PowerStationEntity.class)); + entity.init(); + entity.setInnerStationId(impo.getStationCode()+"736De"); + entity.setApplyStatus(1); + entity.setStationName(entity.getOwnerName()+"的光伏电站"); + entity.setBrand(Integer.valueOf(brand)); + entity.setSource("2"); + if(mapsite.containsKey(entity.getOmProviderName().trim())) { + OperationSiteVO site = mapsite.get(entity.getOmProviderName().trim()); + entity.setOmProviderId(site.getId()); + }else{ + entity.setOmProviderName(""); + } + stationService.save(entity); + + String innerStationId = entity.getInnerStationId(); + if(StringUtil.isNotBlank(impo.getNbqsn())){ + for(String nbqsn :impo.getNbqsn().split(",")){ + DeviceEntity device = new DeviceEntity(); + device.setStationId(entity.getId()); + device.setInnerStationId(innerStationId); + device.setInnerDeviceId(IdUtil.randomUUID().replaceAll("-", "")); + device.setOutStationId(null); + device.setOutDeviceId(null); + device.setType(1); + device.setName("逆变器"); + device.setSn(nbqsn); + device.setBarCode(nbqsn); + device.setBrand(brand); + this.save(device); + + InverterDataEntity dataEntity = new InverterDataEntity(); + dataEntity.setDeviceId(device.getId()); + dataEntity.setSn(nbqsn); + dataEntity.setRealPower(impo.getActualCapacity()); + dataEntity.init(); + inverterDataService.save(dataEntity); + } + + } + if(StringUtil.isNotBlank(impo.getSn())){ + for(String sn :impo.getSn().split(",")){ + DeviceEntity device = new DeviceEntity(); + device.setStationId(entity.getId()); + device.setInnerStationId(innerStationId); + device.setInnerDeviceId(IdUtil.randomUUID().replaceAll("-", "")); + device.setOutStationId(null); + device.setOutDeviceId(null); + device.setType(2); + device.setSn(sn); + device.setName("通讯棒"); + device.setBarCode(sn); + device.setBrand(brand); + this.save(device); + } + } + m++; + + }catch (Exception e){ + n++; + ids.add(impo.getStationCode()); + } + + } + + if(n>0){ + StringBuilder sb = new StringBuilder("批量同步设备同步失败."); + sb.append("成功:"+m+"条;"); + sb.append("失败:"+n+"条;"); + sb.append("失败的电站编码集合:"+ JSON.toJSONString(ids)); + log.debug(sb.toString()); + } + } + + public void editPaymentTime(PowerStationPaymentTimeDTO paymentTimeDTO){ + log.debug("editPaymentTime"); + Date date=DateUtil.parse(paymentTimeDTO.getPaymentTime(),"yyyy-MM-dd"); + Calendar calendar=Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR,1); + Date warrantyExpiresTime=calendar.getTime(); //一年后的时间 + LambdaUpdateWrapper stationUpdateWrapper = new LambdaUpdateWrapper<>(); + stationUpdateWrapper.eq(PowerStationEntity::getInnerStationId,paymentTimeDTO.getInnerStationId()) + .set(PowerStationEntity::getPaymentTime,date) + .set(PowerStationEntity::getWarrantyExpiresTime,warrantyExpiresTime); + stationService.update(stationUpdateWrapper); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.java new file mode 100644 index 0000000..7212fb5 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.java @@ -0,0 +1,151 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.InefficientSettingVO; +import org.springblade.modules.nh.excel.InefficientSettingExcel; +import org.springblade.modules.nh.mapper.InefficientSettingMapper; +import org.springblade.modules.nh.service.IInefficientSettingService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 低效电站设置 服务实现类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Service +@AllArgsConstructor +public class InefficientSettingServiceImpl extends BaseServiceImpl implements IInefficientSettingService { + + private final BladeRedis bladeRedis; + + @Override + public IPage selectInefficientSettingPage(IPage page, InefficientSettingVO inefficientSetting) { + return page.setRecords(baseMapper.selectInefficientSettingPage(page, inefficientSetting)); + } + + + @Override + public List exportInefficientSetting(Wrapper queryWrapper) { + List inefficientSettingList = baseMapper.exportInefficientSetting(queryWrapper); + //inefficientSettingList.forEach(inefficientSetting -> { + // inefficientSetting.setTypeName(DictCache.getValue(DictEnum.YES_NO, InefficientSetting.getType())); + //}); + return inefficientSettingList; + } + + + @Override + public void importSetting(List data, Boolean isCovered) { + + List inefficientSettingEntityList = new ArrayList<>(); + + boolean isRepeat = false; + for(InefficientSettingExcel item: data){ + String planType = DictCache.getKey(DictEnum.SETTING_PLAN_TYPE,item.getPlanTypeStr()); + + +// String customerType = DictCache.getKey(DictEnum.SETTING_CUSTOMER_TYPE,item.getCustomerTypeStr()); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(InefficientSettingEntity::getPlanType, planType) + .eq(InefficientSettingEntity::getCapitalName, item.getCapitalName()) + .eq(InefficientSettingEntity::getProvince,item.getProvince()); +// .eq(InefficientSettingEntity::getCustomerType,customerType); + if(StringUtil.isNotBlank(item.getCitys())){ + queryWrapper.eq(InefficientSettingEntity::getCitys,item.getCitys()); + } + + if(StringUtil.isNotBlank(item.getRecordTypeStr())){ + String recordType = DictCache.getKey(DictEnum.SETTING_RECORD_TYPE,item.getRecordTypeStr()); + queryWrapper.eq(InefficientSettingEntity::getRecordType,recordType); + } + + InefficientSettingEntity entity = getOne(queryWrapper); + if(entity == null){ + entity = new InefficientSettingEntity(); + if(StringUtil.isNotBlank(item.getCapitalName())){ + entity.setCapitalName("广州越秀融资租赁有限公司"); + } + entity.setPlanType(Integer.parseInt(planType)); + + if(StringUtil.isNotBlank(item.getRecordTypeStr())){ + String recordType = DictCache.getKey(DictEnum.SETTING_RECORD_TYPE,item.getRecordTypeStr()); + entity.setRecordType(Integer.parseInt(recordType)); + } +// entity.setCustomerType(Integer.parseInt(customerType)); +// entity.setRecordType(Integer.parseInt(recordType)); + } + BeanUtil.copyProperties(item, entity); + + entity.calTotal(); + + entity.setYear(DateUtil.format(new Date(),"yyyy")); + inefficientSettingEntityList.add(entity); + } + this.saveOrUpdateBatch(inefficientSettingEntityList); + } + + @Override + public InefficientSettingEntity getSettingByStation(PowerStationEntity stationEntity) { + if(stationEntity == null){return null;} + + String planType = DictCache.getKey(DictEnum.SETTING_PLAN_TYPE,stationEntity.getInstallType()); + + String inefficient_setting_key = "setting:"; + String city = stationEntity.getCity().replaceAll("市",""); + String provinceKey = inefficient_setting_key+stationEntity.getCapitalName()+"-"+stationEntity.getProvince()+"-"+planType; + String cityKey = provinceKey+"-"+city; + + if(bladeRedis.exists(cityKey)){ + return bladeRedis.get(cityKey); + } + if(bladeRedis.exists(provinceKey)){ + return bladeRedis.get(provinceKey); + } + + InefficientSettingEntity ret = null; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(InefficientSettingEntity::getCapitalName, stationEntity.getCapitalName()) + .eq(InefficientSettingEntity::getProvince, stationEntity.getProvince()) + .like(InefficientSettingEntity::getCitys,"%"+city+"%") + .eq(InefficientSettingEntity::getPlanType,planType); + List cityEntitys =this.list(queryWrapper); + InefficientSettingEntity cityEntity; + if(CollectionUtil.isNotEmpty(cityEntitys)){ + cityEntity = cityEntitys.get(0); + bladeRedis.setEx(cityKey, cityEntity,6*60*60L); + ret = cityEntity; + }else{ + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(InefficientSettingEntity::getCapitalName, stationEntity.getCapitalName()) + .eq(InefficientSettingEntity::getProvince, stationEntity.getProvince()) + .eq(InefficientSettingEntity::getPlanType,planType); + List list =this.list(queryWrapper2); + ret = CollectionUtil.isNotEmpty(list)?list.get(0):null; + if(ret != null){ + bladeRedis.setEx(provinceKey, ret,6*60*60L); + } + } + + return ret; + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.java new file mode 100644 index 0000000..c35a36d --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.java @@ -0,0 +1,267 @@ +package org.springblade.modules.nh.service.impl; + +import cn.hutool.core.date.DateUnit; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProR; +import org.springblade.modules.nh.mapper.DeviceMapper; +import org.springblade.modules.nh.pojo.dto.open.YXInverterDataDTO; +import org.springblade.modules.nh.pojo.dto.open.YXPowerStationDTO; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.InverterDataVO; +import org.springblade.modules.nh.excel.InverterDataExcel; +import org.springblade.modules.nh.mapper.InverterDataMapper; +import org.springblade.modules.nh.service.IInverterDataService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 逆变器数据表 服务实现类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Service +@AllArgsConstructor +public class InverterDataServiceImpl extends ServiceImpl implements IInverterDataService { + + private final DeviceMapper deviceMapper; + + @Override + public IPage selectInverterDataPage(IPage page, InverterDataVO inverterData) { + return page.setRecords(baseMapper.selectInverterDataPage(page, inverterData)); + } + + + @Override + public List exportInverterData(Wrapper queryWrapper) { + List inverterDataList = baseMapper.exportInverterData(queryWrapper); + //inverterDataList.forEach(inverterData -> { + // inverterData.setTypeName(DictCache.getValue(DictEnum.YES_NO, InverterData.getType())); + //}); + return inverterDataList; + } + + @Override + public void updateDataFromInverterStat() { + try{ + this.baseMapper.updateDataFromInverterStat(); + }catch (Exception e){ + log.error("updateDataFromInverterStat error:{}", e); + } + try{ + this.baseMapper.updateDeviceStateFromInverterStat(); + }catch (Exception e){ + log.error("updateDeviceStateFromInverterStat error:{}", e); + } + } + + @Override + public void updateDeviceOutIds() { + this.baseMapper.updateTxbOutStationId(); + } + + @Override + public Double sumPacByStationId(Long stationId) { + return this.baseMapper.sumPacByStationId(stationId); + } + + @Override + public void updateDataFromInverterStatByOutInverterId(String outDeviceId) { + this.baseMapper.updateDataFromInverterStatByOutInverterId(outDeviceId); + } + + @Override + public IPage queryYXList(IPage page,String startTime, String endTime) { + List list = this.baseMapper.queryForYXList(page,startTime,endTime); + List result = Lists.newArrayList(); + for(InverterDataVO item : list) { + YXInverterDataDTO dto = BeanUtil.copyProperties(item, YXInverterDataDTO.class); + + DeviceEntity entity= deviceMapper.selectById(item.getDeviceId()); + if(entity!= null){ + dto.setSn(entity.getSn()); + dto.setFaultCode(entity.getFaultCode()); + dto.setAlarmName(entity.getAlarmName()); + }else{ + dto.setSn(item.getSn()); + } + try{ + String pvStr = item.getPvModules(); + System.out.println(pvStr); + if(StringUtil.isNoneBlank(pvStr)){ + List> mapList = Lists.newArrayList(); + String[] pvArr= pvStr.split("\\|"); + for(int i=0;i pvMap = Maps.newHashMap(); + pvMap.put("name","pv"+(i+1)); + pvMap.put("iPv",pvData[1]); + pvMap.put("upv",pvData[0]); + mapList.add(pvMap); + } + + dto.setPvModuleMap(mapList); + } + String uvwStr = item.getUvwModules(); + System.out.println(uvwStr); + if(StringUtil.isNoneBlank(uvwStr)){ + List> map = Lists.newArrayList(); + String[] uvwArr= uvwStr.split("\\|"); + for(int i=0;i pvMap = Maps.newHashMap(); + pvMap.put("name","ac"+(i+1)); + pvMap.put("uAc",pvData[0]); + pvMap.put("iAc",pvData[1]); + pvMap.put("fac",pvData[2]); + map.add(pvMap); + } + dto.setUvwModulesMap(map); + } + }catch (Exception e){ + e.printStackTrace(); + log.error("Exception : "+e); + + } + result.add(dto); + }; + page.setRecords(result); + return page; + } + + @Override + public void syncFromScheduler(MonitorInverterStatEntity inverterStat) { + if(StringUtil.isBlank(inverterStat.getOutInverterId())) return; + Date now = new Date(); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper + .eq(InverterDataEntity::getOutDeviceId,inverterStat.getOutInverterId()) + .set(InverterDataEntity::getSyncTime,now); + if(inverterStat.getPwHour()!=null){ + updateWrapper.set(InverterDataEntity::getPwHour,inverterStat.getPwHour()); + } + if(inverterStat.getEtd()!=null){ + updateWrapper.set(InverterDataEntity::getEtd,inverterStat.getEtd()); + } + if(inverterStat.getEtm()!=null){ + updateWrapper.set(InverterDataEntity::getEtm,inverterStat.getEtm()); + } + if(inverterStat.getEty()!=null){ + updateWrapper.set(InverterDataEntity::getEty,inverterStat.getEty()); + } + if(inverterStat.getEto()!=null){ + updateWrapper.set(InverterDataEntity::getEto,inverterStat.getEto()); + } + if(inverterStat.getPac()!=null){ + updateWrapper.set(InverterDataEntity::getPac,inverterStat.getPac()); + } + if(inverterStat.getFac()!=null){ + updateWrapper.set(InverterDataEntity::getFac,inverterStat.getFac()); + } + if(inverterStat.getDcPac()!=null){ + updateWrapper.set(InverterDataEntity::getDcPac,inverterStat.getDcPac()); + } + if(inverterStat.getTemperature()!=null){ + updateWrapper.set(InverterDataEntity::getTemperature,inverterStat.getTemperature()); + } + if(inverterStat.getReactivePower()!=null){ + updateWrapper.set(InverterDataEntity::getReactivePower,inverterStat.getReactivePower()); + } + if(StringUtil.isNotBlank(inverterStat.getReactivePowerStr())){ + updateWrapper.set(InverterDataEntity::getReactivePowerStr,inverterStat.getReactivePowerStr()); + } + if(inverterStat.getApparentPower()!=null){ + updateWrapper.set(InverterDataEntity::getApparentPower,inverterStat.getApparentPower()); + } + if(StringUtil.isNotBlank(inverterStat.getApparentPowerStr())){ + updateWrapper.set(InverterDataEntity::getApparentPowerStr,inverterStat.getApparentPowerStr()); + } + if(inverterStat.getCollectorSn()!=null){ + updateWrapper.set(InverterDataEntity::getCollectorSn,inverterStat.getCollectorSn()); + } + if(inverterStat.getRealPower()!=null){ + updateWrapper.set(InverterDataEntity::getRealPower,inverterStat.getRealPower()); + } + if(inverterStat.getPowerFactor()!=null){ + updateWrapper.set(InverterDataEntity::getPowerFactor,inverterStat.getPowerFactor()); + } + if(StringUtil.isNotBlank(inverterStat.getPvModules())){ + updateWrapper.set(InverterDataEntity::getPvModules,inverterStat.getPvModules()); + } + if(StringUtil.isNotBlank(inverterStat.getAcModules())){ + updateWrapper.set(InverterDataEntity::getUvwModules,inverterStat.getAcModules()); + } +// if(inverterStat.getUpdateShelfEndTime()!=null){ +// updateWrapper.set(InverterDataEntity::get,inverterStat.getUpdateShelfEndTime()); +// } + this.update(updateWrapper); + + LambdaUpdateWrapper updateWrapper2 = new LambdaUpdateWrapper<>(); + updateWrapper2.eq(DeviceEntity::getOutDeviceId,inverterStat.getOutInverterId()) + .set(DeviceEntity::getUpdateTime,now); + if(inverterStat.getState()!=null){ + updateWrapper2.set(DeviceEntity::getStatus,inverterStat.getState()); + } + if(inverterStat.getUpdateShelfEndTime()!=null){ + updateWrapper2.set(DeviceEntity::getWarrantyExpires,inverterStat.getUpdateShelfEndTime()); + if(now.before(inverterStat.getUpdateShelfEndTime())){ + updateWrapper2.set(DeviceEntity::getWarrantyFlag,1); + }else{ + updateWrapper2.set(DeviceEntity::getWarrantyFlag,0); + } + } + deviceMapper.update(updateWrapper2); + } + + @Override + public void syncFromSchedulerList(List inverterStatList) { + inverterStatList.forEach(e->{ + this.syncFromScheduler(e); + }); + } + + @Override + public void syncAisweiInverterDatail(List list) { + list.forEach(r->{ + //va1~3 ac电压 ia1~3 ac电流 + String rstStr = CommonUtil.assembleIUData("va","ia",3,r); + //v1~5 pv电压 i1~5 pv电流 + String pvStr = CommonUtil.assembleIUData("v","i",5,r); + syncInverterIU(null,r.getSn(),pvStr,null,rstStr); + }); + } + + @Override + public void syncInverterIU(String outInverterId, String sn, String pvStr, String mpptStr, String uvwStr) { + if(StringUtil.isBlank(outInverterId) && StringUtil.isBlank(sn)) return; + + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + if(StringUtil.isNotBlank(outInverterId)){ + updateWrapper.eq(InverterDataEntity::getOutDeviceId,outInverterId); + } + if(StringUtil.isNotBlank(sn)){ + updateWrapper.eq(InverterDataEntity::getSn,sn); + } + updateWrapper.set(InverterDataEntity::getPvModules,pvStr) + .set(InverterDataEntity::getMpptModules,mpptStr) + .set(InverterDataEntity::getUvwModules,uvwStr); + + this.update(updateWrapper); + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.java new file mode 100644 index 0000000..f4d0584 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.java @@ -0,0 +1,134 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service.impl; + +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.pojo.dto.InverterUapDTO; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.modules.nh.pojo.vo.InverterUapVO; +import org.springblade.modules.nh.excel.InverterUapExcel; +import org.springblade.modules.nh.mapper.InverterUapMapper; +import org.springblade.modules.nh.service.IInverterUapService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import java.util.List; +import java.util.Map; + +/** + * 逆变器电流电压功率数据 服务实现类 + * + * @author AlexWang + * @since 2024-11-21 + */ +@Service +public class InverterUapServiceImpl extends ServiceImpl implements IInverterUapService { + + @Override + public IPage selectInverterUapPage(IPage page, InverterUapVO inverterUap) { + return page.setRecords(baseMapper.selectInverterUapPage(page, inverterUap)); + } + + + @Override + public List exportInverterUap(Wrapper queryWrapper) { + List inverterUapList = baseMapper.exportInverterUap(queryWrapper); + //inverterUapList.forEach(inverterUap -> { + // inverterUap.setTypeName(DictCache.getValue(DictEnum.YES_NO, InverterUap.getType())); + //}); + return inverterUapList; + } + + @Override + public Map inverterMap(String outStationId, String stateTime,String ivType) { + List list = baseMapper.findInverterUapList(outStationId,stateTime); + Map maps = Maps.newHashMap(); + List XStr= Lists.newArrayList(); //X轴 + List Yxjsjd= Lists.newArrayList(); + if("voltage".equals(ivType)){//电压 + List fdlY1= Lists.newArrayList(); //直流电压的Y轴 + List fdlY2= Lists.newArrayList(); //直流电压的Y轴 + List fdlY3= Lists.newArrayList(); //直流电压的Y轴 + List fdlY4= Lists.newArrayList(); //直流电压的Y轴 + List fdlY5= Lists.newArrayList(); //直流电压的Y轴 + List fdlY6= Lists.newArrayList(); //直流电压的Y轴 + for(InverterUapDTO dto :list){ + XStr.add(DateUtil.format(dto.getStateTime(),"HH:mm")); + fdlY1.add(dto.getUv1()); + fdlY2.add(dto.getUv2()); + fdlY3.add(dto.getUv3()); + fdlY4.add(dto.getUv4()); + fdlY5.add(dto.getUv5()); + fdlY6.add(dto.getUv6()); + } + Yxjsjd.add(fdlY1); + Yxjsjd.add(fdlY2); + Yxjsjd.add(fdlY3); + Yxjsjd.add(fdlY4); + Yxjsjd.add(fdlY5); + Yxjsjd.add(fdlY6); + + }else if("electricCurrent".equals(ivType)){//电流 + List fdlY1= Lists.newArrayList(); //直流电压的Y轴 + List fdlY2= Lists.newArrayList(); //直流电压的Y轴 + List fdlY3= Lists.newArrayList(); //直流电压的Y轴 + List fdlY4= Lists.newArrayList(); //直流电压的Y轴 + List fdlY5= Lists.newArrayList(); //直流电压的Y轴 + List fdlY6= Lists.newArrayList(); //直流电压的Y轴 + for(InverterUapDTO dto :list){ + XStr.add(DateUtil.format(dto.getStateTime(),"HH:mm")); + fdlY1.add(dto.getIa1()); + fdlY2.add(dto.getIa2()); + fdlY3.add(dto.getIa3()); + fdlY4.add(dto.getIa4()); + fdlY5.add(dto.getIa5()); + fdlY6.add(dto.getIa6()); + } + Yxjsjd.add(fdlY1); + Yxjsjd.add(fdlY2); + Yxjsjd.add(fdlY3); + Yxjsjd.add(fdlY4); + Yxjsjd.add(fdlY5); + Yxjsjd.add(fdlY6); + + }else if("power".equals(ivType)){//功率 + List fdlY= Lists.newArrayList(); //直流电压的Y轴 + for(InverterUapDTO dto :list){ + XStr.add(DateUtil.format(dto.getStateTime(),"HH:mm")); + fdlY.add(dto.getTotalPower()); + } + Yxjsjd.add(fdlY); + } + maps.put("Yxjsjd",Yxjsjd); + maps.put("XStr",XStr); + return maps; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryDailyStatServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryDailyStatServiceImpl.java new file mode 100644 index 0000000..7e9f8f2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryDailyStatServiceImpl.java @@ -0,0 +1,125 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.time.DateUtils; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.pojo.dto.sync.JlglHourlyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryDailyStatVO; +import org.springblade.modules.nh.excel.MonitorEntryDailyStatExcel; +import org.springblade.modules.nh.mapper.MonitorEntryDailyStatMapper; +import org.springblade.modules.nh.service.IMonitorEntryDailyStatService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.util.ReflectionUtils; + +import java.lang.reflect.Field; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 电站日统计数据 服务实现类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Slf4j +@Service +public class MonitorEntryDailyStatServiceImpl extends ServiceImpl implements IMonitorEntryDailyStatService { + + @Override + public IPage selectMonitorEntryDailyStatPage(IPage page, MonitorEntryDailyStatVO monitorEntryDailyStat) { + return page.setRecords(baseMapper.selectMonitorEntryDailyStatPage(page, monitorEntryDailyStat)); + } + + + @Override + public List exportMonitorEntryDailyStat(Wrapper queryWrapper) { + List monitorEntryDailyStatList = baseMapper.exportMonitorEntryDailyStat(queryWrapper); + //monitorEntryDailyStatList.forEach(monitorEntryDailyStat -> { + // monitorEntryDailyStat.setTypeName(DictCache.getValue(DictEnum.YES_NO, MonitorEntryDailyStat.getType())); + //}); + return monitorEntryDailyStatList; + } + + @Override + public void syncEntryDailyStat(List list, String sysType) { + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + List batchlist = Lists.newArrayList(); + Date now = new Date(); + + for (GetStationR s : list) { + Long dataTimestamp = s.getDataTimestamp(); // 采集时间 + Date syncTime = new Date(dataTimestamp); + if (!DateUtils.isSameDay(syncTime, now)) { + continue; + } + int hours = syncTime.getHours(); // 0-23 + + + MonitorEntryDailyStatEntity dailyStatEntity = getByStatDateAndstationId(df.format(syncTime), s.getId()); + if (dailyStatEntity == null) { + dailyStatEntity = new MonitorEntryDailyStatEntity(); + dailyStatEntity.setCreateTime(new Date()); + } + + try{ + Field field= dailyStatEntity.getClass().getDeclaredField(String.format("h%02d", hours + 1)); + ReflectionUtils.makeAccessible(field); + ReflectionUtils.setField(field, dailyStatEntity, UnitUtil.convEnergy(s.getDayEnergy(), s.getDayEnergyStr())); + }catch (Exception e){ + log.error("syncEntryDailyStat error,e:",e); + continue; + } + dailyStatEntity.setSysType(sysType); + dailyStatEntity.setSyncTime(syncTime); + dailyStatEntity.setUpdateTime(new Date()); + dailyStatEntity.setStatDate(syncTime); + dailyStatEntity.setOutStationId(s.getId()); + batchlist.add(dailyStatEntity); + } + + this.saveOrUpdateBatch(batchlist); + } + + private MonitorEntryDailyStatEntity getByStatDateAndstationId(String statDate, String outStationId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryDailyStatEntity::getStatDate,statDate) + .eq(MonitorEntryDailyStatEntity::getOutStationId,outStationId); + return this.getOne(queryWrapper); + } + + @Override + public void syncEntryDailyJlglStat(List list, String date, String stationId, String sysType) { + Date now = new Date(); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryDailyStatEntity::getStatDate,date) + .eq(MonitorEntryDailyStatEntity::getOutStationId,stationId); + MonitorEntryDailyStatEntity entity = this.getOne(queryWrapper); + + if (entity == null) { + entity = new MonitorEntryDailyStatEntity(); + entity.setCreateTime(now); + entity.setUpdateTime(now); + entity.setSyncTime(now); + entity.setStatDate(DateUtil.parse(date,"yyyy-MM-dd")); + entity.setOutStationId(stationId); + entity.setSysType(sysType); + } + for (JlglHourlyDTO s : list) { + CommonUtil.reflectSetField(entity,String.format("jlgl%02d", s.getHour()),s.getJlgl()); + } + this.saveOrUpdate(entity); + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.java new file mode 100644 index 0000000..f8936f8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.java @@ -0,0 +1,194 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryMonthStatVO; +import org.springblade.modules.nh.excel.MonitorEntryMonthStatExcel; +import org.springblade.modules.nh.mapper.MonitorEntryMonthStatMapper; +import org.springblade.modules.nh.service.IMonitorEntryMonthStatService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.*; + +/** + * 电站月统计数据 服务实现类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Service +@AllArgsConstructor +public class MonitorEntryMonthStatServiceImpl extends ServiceImpl implements IMonitorEntryMonthStatService { + + private final BladeRedis bladeRedis; + + @Override + public IPage selectMonitorEntryMonthStatPage(IPage page, MonitorEntryMonthStatVO monitorEntryMonthStat) { + return page.setRecords(baseMapper.selectMonitorEntryMonthStatPage(page, monitorEntryMonthStat)); + } + + @Override + public List> overviewLastDays(String outStationIds, Integer days) { + if(days==null) { + days=3; + } + List ids = CommonUtil.splitOutStationIds(outStationIds); + if(CollectionUtil.isEmpty(ids)) + return null; + + List> list = this.baseMapper.overviewLastDays(ids,days); + Date now = new Date(); + for(int i=1;i<=days;i++){ + String key = DateUtil.format(DateUtil.minusDays(now,i),"yyyy-MM-dd"); + boolean hasFlag = false; + for(Map map:list){ + if(map.get("day").equals(key)){ + hasFlag = true; + } + } + if(!hasFlag){ + Map map0= new HashMap<>(); + map0.put("day",key); + map0.put("energy",0); + list.add(map0); + } + } + + // 根据"age"键的值对列表进行排序 + Collections.sort(list, new Comparator>() { + @Override + public int compare(Map o1, Map o2) { + // 确保比较的值是Integer类型 + String day1 = (String) o1.get("day"); + String day2 = (String) o2.get("day"); + return day1.compareTo(day2); + } + }); + + + + + return list; + } + + @Override + public List exportMonitorEntryMonthStat(Wrapper queryWrapper) { + List monitorEntryMonthStatList = baseMapper.exportMonitorEntryMonthStat(queryWrapper); + //monitorEntryMonthStatList.forEach(monitorEntryMonthStat -> { + // monitorEntryMonthStat.setTypeName(DictCache.getValue(DictEnum.YES_NO, MonitorEntryMonthStat.getType())); + //}); + return monitorEntryMonthStatList; + } + + @Override + public void syncMonthStatData(List dayEnergyList) { + if(CollectionUtil.isEmpty(dayEnergyList)) return; + + List list = Lists.newArrayList(); + + for (DayEnergyDTO item : dayEnergyList) { + Date now = new Date(); + double energy = UnitUtil.convEnergy(item.getValue(), item.getUnit()); + MonitorEntryMonthStatEntity entity = new MonitorEntryMonthStatEntity(); + entity.setOutStationId(item.getStationId()); + entity.setStatDate(DateUtil.parse(item.getDate(),"yyyy-MM-dd")); + entity.setCreateTime(now); + entity.setUpdateTime(now); + entity.setEnergy(energy); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryMonthStatEntity::getStatDate,entity.getStatDate()) + .eq(MonitorEntryMonthStatEntity::getOutStationId,entity.getOutStationId()); + List tempList =this.list(queryWrapper); + if(CollectionUtil.isEmpty(tempList)){ + list.add(entity); + }else{ + MonitorEntryMonthStatEntity entity1 = tempList.get(0); + LambdaUpdateWrapper updateWrapper2=new LambdaUpdateWrapper<>(); + updateWrapper2.eq(MonitorEntryMonthStatEntity::getId,entity1.getId()) + .set(MonitorEntryMonthStatEntity::getEnergy,energy) + .set(MonitorEntryMonthStatEntity::getUpdateTime,now); + this.update(updateWrapper2); + + } + + } + this.saveBatch(list,100); + + + + } + + @Override + public Double sumEnergy(List outStationIds, Date startDate, Date endDate) { + Double result = this.baseMapper.sumEnergy(outStationIds,startDate,endDate); + return result!=null?result:0.0; + } + + @Override + public Double getYesterdayEnergy(String outStationId) { + String STATION_YESTERDAY_ENERGY = "STATION_YESTERDAY_ENERGY"; + String STATION_YESTERDAY_ENERGY_TIME = "STATION_YESTERDAY_ENERGY_OUT_TIME"; + + if(CommonUtil.isOutTime(bladeRedis.get(STATION_YESTERDAY_ENERGY_TIME),6*60)){ + bladeRedis.del(STATION_YESTERDAY_ENERGY); + Date yesterday = DateUtil.minusDays(DateUtil.now(),1); + LambdaQueryWrapper monthQuery = new LambdaQueryWrapper<>(); + monthQuery.eq(MonitorEntryMonthStatEntity::getStatDate,DateUtil.format(yesterday,"yyyy-MM-dd")); + List totallist = list(monthQuery); + for(MonitorEntryMonthStatEntity item:totallist){ + bladeRedis.hSet(STATION_YESTERDAY_ENERGY,item.getOutStationId(),item.getEnergy()); + } + bladeRedis.set(STATION_YESTERDAY_ENERGY_TIME,System.currentTimeMillis()); + } + return bladeRedis.hGet(STATION_YESTERDAY_ENERGY,outStationId); + } + + @Override + public MonitorEntryMonthStatEntity getFirstEnergyDay(String outStationId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryMonthStatEntity::getOutStationId,outStationId) + .gt(MonitorEntryMonthStatEntity::getEnergy,0) + .orderByAsc(MonitorEntryMonthStatEntity::getStatDate) + .last("limit 1"); + return this.getOne(queryWrapper); + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryStatServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryStatServiceImpl.java new file mode 100644 index 0000000..4583e67 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryStatServiceImpl.java @@ -0,0 +1,324 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.userstationlist.GetStationR; +import org.springblade.modules.nh.mapper.PowerStationMapper; +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.dto.sync.StationIdMap; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import org.springblade.modules.nh.excel.MonitorEntryStatExcel; +import org.springblade.modules.nh.mapper.MonitorEntryStatMapper; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.service.IMonitorEntryStatService; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springblade.modules.nh.wrapper.MonitorEntryStatWrapper; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 外部电站同步 服务实现类 + * + * @author AlexWang + * @since 2024-06-01 + */ +@Service +@AllArgsConstructor +public class MonitorEntryStatServiceImpl extends ServiceImpl implements IMonitorEntryStatService { + + private final GinlongApi ginlongApi; + + private final IMonitorEntryYearStatService yearStatService; + + private final PowerStationMapper powerStationMapper; + + private final BladeRedis bladeRedis; + + @Override + public void updateGoodweEntryMonthYearData() { + Long start = System.currentTimeMillis(); + + LocalDate today = LocalDate.now(); + int currentYear = today.getYear(); + int currentMonth = today.getMonthValue(); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getType,NhConstants.SYS_TYPE_GOODWE); + List list = this.list(queryWrapper); + for (MonitorEntryStatEntity entryStat : list) { + updateEntryYearData(entryStat, currentYear, currentMonth); + } + + System.out.println("updateGoodweEntryMonthYearData:"+(System.currentTimeMillis()-start)); + } + + @Override + public void updateEntryYearData(MonitorEntryStatEntity entryStat, int currentYear, int currentMonth) { + Double monthEnergy = 0d; + Double yearEnergy = 0d; + LambdaQueryWrapper queryYearStat = new LambdaQueryWrapper<>(); + queryYearStat.eq(MonitorEntryYearStatEntity::getSysType, entryStat.getType()) + .eq(MonitorEntryYearStatEntity::getYear, currentYear) + .eq(MonitorEntryYearStatEntity::getOutStationId, entryStat.getOutStationId()); + List yearStatEntityList = yearStatService.list(queryYearStat); + for(MonitorEntryYearStatEntity yearStatEntity : yearStatEntityList){ + yearEnergy+=yearStatEntity.getEnergy(); + if(currentMonth ==yearStatEntity.getMonth()){ + if(yearStatEntity.getEnergy()>0){ + monthEnergy = yearStatEntity.getEnergy(); + } + } + } + if(monthEnergy>0 || yearEnergy>0){ + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(MonitorEntryStatEntity::getOutStationId, entryStat.getOutStationId()) + .set(MonitorEntryStatEntity::getEtm,monthEnergy) + .set(MonitorEntryStatEntity::getEty,yearEnergy); + if(entryStat.getEta()!=null && yearEnergy > entryStat.getEta()){ + updateWrapper.set(MonitorEntryStatEntity::getEta,yearEnergy); + } + this.update(updateWrapper); + } + } + + @Override + public IPage selectMonitorEntryStatPage(IPage page, MonitorEntryStatVO monitorEntryStat) { + return page.setRecords(baseMapper.selectMonitorEntryStatPage(page, monitorEntryStat)); + } + + + @Override + public List exportMonitorEntryStat(Wrapper queryWrapper) { + List monitorEntryStatList = baseMapper.exportMonitorEntryStat(queryWrapper); + //monitorEntryStatList.forEach(monitorEntryStat -> { + // monitorEntryStat.setTypeName(DictCache.getValue(DictEnum.YES_NO, MonitorEntryStat.getType())); + //}); + return monitorEntryStatList; + } + + @Override + public MonitorEntryStatVO realTimeDetail(PowerStationVO vo) { + if(vo==null || StringUtil.isBlank(vo.getOutStationId())){ + return null; + } + MonitorEntryStatEntity entryStat = getMonitorEntryStatEntity(vo); + if(entryStat== null){ + return null; + } + if(NhConstants.SYS_TYPE_GINLONG.equals(entryStat.getType())){ + IRet ret = ginlongApi.stationDetail(entryStat.getVendorIndex(),vo.getOutStationId()); + GetStationR r = ret.getData(); + if(r!=null){ + genEntryFromRemoteStation(entryStat,r); + } + this.updateById(entryStat); + } + return MonitorEntryStatWrapper.build().entityVO(entryStat); + } + + @Override + public MonitorEntryStatVO getByPowerStation(PowerStationVO vo) { + if(vo==null || StringUtil.isBlank(vo.getOutStationId())){ + return null; + } + MonitorEntryStatEntity entryStat = getMonitorEntryStatEntity(vo); + return MonitorEntryStatWrapper.build().entityVO(entryStat); + } + + @Override + public MonitorEntryStatEntity getByOutId(String outId) { + PowerStationVO vo = new PowerStationVO(); + vo.setOutStationId(outId); + return getMonitorEntryStatEntity(vo); + } + + private MonitorEntryStatEntity getMonitorEntryStatEntity(PowerStationVO vo) { + String outStationId = vo.getOutStationId(); + if(!StringUtil.isNotBlank(outStationId)){ + return null; + } + List stationIds = Lists.newArrayList(); + for(String str:vo.getOutStationId().split(",")){ + stationIds.add(str); + } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(MonitorEntryStatEntity::getOutStationId,stationIds); + List entryStatList = this.list(queryWrapper); + MonitorEntryStatEntity entryStat = new MonitorEntryStatEntity(); + for(MonitorEntryStatEntity entryStatEntity : entryStatList){ + if(entryStat.getId()==null){ + BeanUtil.copyProperties(entryStatEntity,entryStat); + }else{ + entryStat.setEtd(CommonUtil.sum(entryStat.getEtd(),entryStatEntity.getEtd())); + entryStat.setEtm(CommonUtil.sum(entryStat.getEtm(),entryStatEntity.getEtm())); + entryStat.setEty(CommonUtil.sum(entryStat.getEty(),entryStatEntity.getEty())); + entryStat.setEta(CommonUtil.sum(entryStat.getEta(),entryStatEntity.getEta())); + } + } + return entryStat; + } + + @Override + public List getStationIds(String sysType) { + return this.baseMapper.getStationIds(sysType); + } + @Override + public List getStationIds(String sysType,int index) { + return this.baseMapper.getStationIdsByIndex(sysType,index); + } + + @Override + public MonitorEntryStatEntity findByStationId(String stationId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorEntryStatEntity::getOutStationId,stationId); + return this.getOne(queryWrapper); + } + + @Override + public void updateFisDate(String outStationId, String firstDate) { + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.lambda() + .eq(MonitorEntryStatEntity::getOutStationId,outStationId) + .set(MonitorEntryStatEntity::getFisGenerateTime,firstDate); + this.update(updateWrapper); + } + + @Override + public MonitorEntryStatDTO findByOutStationIds(List stationIds) { + return baseMapper.findByOutStationIds(stationIds); + } + + @Override + public void syncEntryStat(List list, String sysType) { + List stationIds = list.stream().map(GetStationR::getId).collect(Collectors.toList()); + List stationIdsMaps = this.baseMapper.findByStationIds(stationIds); + Map outStationId2LocalIdMap = stationIdsMaps.stream().collect(Collectors.toMap(StationIdMap::getOutStationId, StationIdMap::getId)); + + List updates = new ArrayList<>(); + for (GetStationR station : list) { + String id = station.getId(); + if (outStationId2LocalIdMap.containsKey(id)) { + updates.add(station); + } else { + MonitorEntryStatEntity stat = new MonitorEntryStatEntity(); + stat.setOutStationId(station.getId()); + stat.setType(sysType); + stat.setVendorIndex(station.getVendorIndex()); + genEntryFromRemoteStation(stat, station); + save(stat); + } + } + + if (!updates.isEmpty()) { + if(NhConstants.SYS_TYPE_SAJ.equals(sysType)){ + return; + } + List rs = new ArrayList<>(); + List normalIds = Lists.newArrayList(); + List warnIds = Lists.newArrayList(); + List offlineIds = Lists.newArrayList(); + + + for (GetStationR u : updates) { + MonitorEntryStatEntity r = new MonitorEntryStatEntity(); + r.setVendorIndex(u.getVendorIndex()); + r.setId(outStationId2LocalIdMap.get(u.getId())); + r.setOutStationId(u.getId()); + r.setType(sysType); + r.setEtd(UnitUtil.convEnergy(u.getDayEnergy(), u.getDayEnergyStr())); + r.setEtm(UnitUtil.convEnergy(u.getMonthEnergy(), u.getMonthEnergyStr())); + r.setEty(UnitUtil.convEnergy(u.getYearEnergy(), u.getYearEnergyStr())); + r.setEta(UnitUtil.convEnergy(u.getAllEnergy(), u.getAllEnergyStr())); + + r.setStationName(u.getStationName()); + + r.setCapacity(UnitUtil.convPower(u.getCapacity(), u.getCapacityStr())); + r.setState(u.getState()); + r.setFullHour(u.getFullHour()); + r.setSyncTime(new Date(u.getDataTimestamp())); + r.setUpdateTime(new Date()); + r.setPower(UnitUtil.convPower(u.getPower(), u.getPowerStr())); + + if(u.getFisGenerateTime()!=null){ + r.setFisGenerateTime(new Date(u.getFisGenerateTime())); + } + rs.add(r); + + switch(u.getState()){ + case 1:normalIds.add(u.getId());break; + case 2:offlineIds.add(u.getId());break; + case 3:warnIds.add(u.getId());break; + } + } + + if(!normalIds.isEmpty()){ + powerStationMapper.updateStatusByOutIds(normalIds,1); + } + if(!warnIds.isEmpty()){ + powerStationMapper.updateStatusByOutIds(warnIds,2); + } + if(!offlineIds.isEmpty()){ + powerStationMapper.updateStatusByOutIds(offlineIds,3); + } + + this.saveOrUpdateBatch(rs); + } + } + + private MonitorEntryStatEntity genEntryFromRemoteStation(MonitorEntryStatEntity stat, GetStationR station) { + stat.setState(station.getState()); + stat.setEtd(UnitUtil.convEnergy(station.getDayEnergy(), station.getDayEnergyStr())); + stat.setEtm(UnitUtil.convEnergy(station.getMonthEnergy(), station.getMonthEnergyStr())); + stat.setEty(UnitUtil.convEnergy(station.getYearEnergy(), station.getYearEnergyStr())); + stat.setEta(UnitUtil.convEnergy(station.getAllEnergy(), station.getAllEnergyStr())); + stat.setStationName(station.getStationName()); + stat.setCapacity(UnitUtil.convPower(station.getCapacity(), station.getCapacityStr())); + stat.setFullHour(station.getFullHour()); + stat.setCreateTime(new Date()); + stat.setSyncTime(new Date(station.getDataTimestamp())); + if(station.getFisGenerateTime()!=null){ + stat.setFisGenerateTime(new Date(station.getFisGenerateTime())); + } + stat.setUpdateTime(new Date()); + stat.setPower(UnitUtil.convPower(station.getPower(), station.getPowerStr())); // 功率 + return stat; + } + + @Override + public MonitorEntryStatEntity getEntryStatInCache(String stationId) { + if(StringUtil.isBlank(stationId)) return null; + + String STAT_TEMP_MAP_KEY = "stat_temp_map_key"; + String STAT_TEMP_MAP_TIME_KEY = "stat_temp_map_time_key"; + if(CommonUtil.isOutTime(bladeRedis.get(STAT_TEMP_MAP_TIME_KEY),15)){ + bladeRedis.del(STAT_TEMP_MAP_KEY); + List statEntityList = this.list(); + for(MonitorEntryStatEntity statEntity : statEntityList){ + bladeRedis.hSet(STAT_TEMP_MAP_KEY,statEntity.getOutStationId(),statEntity); + } + bladeRedis.set(STAT_TEMP_MAP_TIME_KEY,System.currentTimeMillis()); + } + + return bladeRedis.hGet(STAT_TEMP_MAP_KEY,stationId); + } + +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.java new file mode 100644 index 0000000..66e9793 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.java @@ -0,0 +1,223 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.D; +import org.springblade.modules.nh.pojo.dto.sync.DayEnergyDTO; +import org.springblade.modules.nh.pojo.dto.sync.MonthEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryYearStatVO; +import org.springblade.modules.nh.excel.MonitorEntryYearStatExcel; +import org.springblade.modules.nh.mapper.MonitorEntryYearStatMapper; +import org.springblade.modules.nh.service.IMonitorEntryYearStatService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 电站能量按年统计 服务实现类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Service +@AllArgsConstructor +public class MonitorEntryYearStatServiceImpl extends ServiceImpl implements IMonitorEntryYearStatService { + + private final BladeRedis bladeRedis; + + @Override + public IPage selectMonitorEntryYearStatPage(IPage page, MonitorEntryYearStatVO monitorEntryYearStat) { + return page.setRecords(baseMapper.selectMonitorEntryYearStatPage(page, monitorEntryYearStat)); + } + + + @Override + public List exportMonitorEntryYearStat(Wrapper queryWrapper) { + List monitorEntryYearStatList = baseMapper.exportMonitorEntryYearStat(queryWrapper); + //monitorEntryYearStatList.forEach(monitorEntryYearStat -> { + // monitorEntryYearStat.setTypeName(DictCache.getValue(DictEnum.YES_NO, MonitorEntryYearStat.getType())); + //}); + return monitorEntryYearStatList; + } + + @Override + public void syncYearStatData(List monthEnergyDTOList) { + if(CollectionUtil.isEmpty(monthEnergyDTOList)) return; + + List list = Lists.newArrayList(); + List updateYearStatList = Lists.newArrayList(); + for (MonthEnergyDTO item : monthEnergyDTOList) { + Date now = new Date(); + double energy = UnitUtil.convEnergy(item.getValue(), item.getUnit()); + MonitorEntryYearStatEntity entity = new MonitorEntryYearStatEntity(); +//`id`,`create_time`,`sync_time`,`update_time`,`sys_type`,`station_id`,`year`,`month`,`energy` + entity.setCreateTime(now); + entity.setSyncTime(now); + entity.setUpdateTime(now); + entity.setSysType(item.getSysType()); + entity.setOutStationId(item.getStationId()); + String time = item.getMonth(); + String[] splits = time.split("-"); + entity.setYear(Integer.valueOf(splits[0])); + entity.setMonth(Integer.valueOf(splits[1])); + entity.setEnergy(energy); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper + .eq(MonitorEntryYearStatEntity::getYear,entity.getYear()) + .eq(MonitorEntryYearStatEntity::getMonth,entity.getMonth()) + .eq(MonitorEntryYearStatEntity::getOutStationId,entity.getOutStationId()); + +// List yearStatList = baseMapper.selectList(queryWrapper); + + + if(this.count(queryWrapper)==0){ + list.add(entity); + }else{ +// if(energy > 0){ + LambdaUpdateWrapper yearStatUpdateWrapper = new LambdaUpdateWrapper<>(); + yearStatUpdateWrapper + .eq(MonitorEntryYearStatEntity::getOutStationId,entity.getOutStationId()) + .eq(MonitorEntryYearStatEntity::getYear,entity.getYear()) + .eq(MonitorEntryYearStatEntity::getMonth,entity.getMonth()) + .set(MonitorEntryYearStatEntity::getEnergy,energy) + .set(MonitorEntryYearStatEntity::getSyncTime,new Date()); + this.update(yearStatUpdateWrapper); +// } + } + } + this.saveBatch(list,100); + +// if(CollectionUtil.isNotEmpty(updateYearStatList)){ +// this.updateBatchById(updateYearStatList); +// } + } + + @Override + public String getFirstMonth(String outId) { + LambdaQueryWrapper query2 = new LambdaQueryWrapper<>(); + query2.eq(MonitorEntryYearStatEntity::getOutStationId,outId) + .gt(MonitorEntryYearStatEntity::getEnergy,0D) + .orderByAsc(MonitorEntryYearStatEntity::getYear,MonitorEntryYearStatEntity::getMonth) + .last("limit 1"); + MonitorEntryYearStatEntity yearStatEntity = getOne(query2); + if(yearStatEntity==null){ + return null; + } + String month = yearStatEntity.getYear()+"-"+String.format("%02d", yearStatEntity.getMonth()); + return month; + } + + @Override + public List listYearByEntry(String outStationId, Integer year) { + String LIST_YEAR_ENTRY = "list_year_entry_"+year+"_key:"; + String LIST_YEAR_TIME_ENTRY = "list_year_entry_time_"+year+"_key"; + + if(CommonUtil.isOutTime(bladeRedis.get(LIST_YEAR_TIME_ENTRY),12*60)){ + bladeRedis.del(LIST_YEAR_ENTRY); + LambdaQueryWrapper query2 = new LambdaQueryWrapper<>(); + query2.eq(MonitorEntryYearStatEntity::getYear,year) + .orderByDesc(MonitorEntryYearStatEntity::getOutStationId) + .orderByAsc(MonitorEntryYearStatEntity::getMonth); + List totalList = list(query2); + List yearStatList = Lists.newArrayList(); + String tempStationId = null; + for(MonitorEntryYearStatEntity item : totalList){ + if(tempStationId==null){ + tempStationId = item.getOutStationId(); + } + if(!item.getOutStationId().equals(tempStationId) && yearStatList.size() > 0){ + bladeRedis.hSet(LIST_YEAR_ENTRY,tempStationId,yearStatList); + tempStationId = item.getOutStationId(); + yearStatList = Lists.newArrayList(); + } + yearStatList.add(item); + } + if(yearStatList.size() > 0){ + bladeRedis.hSet(LIST_YEAR_ENTRY,tempStationId,yearStatList); + } + bladeRedis.set(LIST_YEAR_TIME_ENTRY,System.currentTimeMillis()); + } + List ret = null; + if(outStationId.contains(",")){ + String[] splits = outStationId.split(","); + for (String outId : splits) { + List tempList = bladeRedis.hGet(LIST_YEAR_ENTRY,outId); + if(CollectionUtil.isNotEmpty(tempList)){ + if(ret==null){ + ret = tempList; + }else{ + for(int i=1;i<=12;i++){ + MonitorEntryYearStatEntity yearStat = getMonthFromList(ret,i); + MonitorEntryYearStatEntity nextYear = getMonthFromList(tempList,i); + if(nextYear!=null){ + if(yearStat==null){ + ret.add(nextYear); + }else{ + yearStat.setEnergy(yearStat.getEnergy()+nextYear.getEnergy()); + } + } + } + } + } + } + }else{ + ret = bladeRedis.hGet(LIST_YEAR_ENTRY,outStationId); + } + + return ret!=null?ret:Lists.newArrayList(); + } + + private MonitorEntryYearStatEntity getMonthFromList(List list,int month){ + if(CollectionUtil.isEmpty(list)){ + return null; + } + MonitorEntryYearStatEntity ret = null; + for(MonitorEntryYearStatEntity item : list){ + if(item.getMonth()==month){ + ret = item; + break; + } + } + return ret; + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.java new file mode 100644 index 0000000..80d2892 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.java @@ -0,0 +1,289 @@ +package org.springblade.modules.nh.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.mapper.MonitorInverterStatMapper; +import org.springblade.modules.nh.pojo.dto.sync.InverterHourlyEnergyDTO; +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterDailyStatVO; +import org.springblade.modules.nh.mapper.MonitorInverterDailyStatMapper; +import org.springblade.modules.nh.service.IMonitorInverterDailyStatService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.util.CollectionUtils; +import org.springframework.util.ReflectionUtils; + +import java.lang.reflect.Field; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 逆变器日数据 服务实现类 + * + * @author AlexWang + * @since 2024-06-07 + */ +@Service +@AllArgsConstructor +public class MonitorInverterDailyStatServiceImpl extends ServiceImpl implements IMonitorInverterDailyStatService { + + private final MonitorInverterStatMapper monitorInverterStatMapper; + + @Override + public Map getInverterGraph(String sn, String time) { + time = time.substring(0,10); + Map ret = new HashMap<>(); + List pacList = CommonUtil.repeatNum(24, 0d); + List etdList = CommonUtil.repeatNum(24, 0d); + ret.put("pac", pacList); + ret.put("pacTimeList", CommonUtil.hourListFrom0()); + ret.put("etdTimeList", CommonUtil.hourListFrom1()); + ret.put("etd", etdList); + + MonitorInverterDailyStatEntity entity = findBySnAndDate(sn, time); + + if (entity != null) { + for (int i = 0; i < 24; i++) { + pacList.set(i, CommonUtil.getDoubleByFile(MonitorInverterDailyStatEntity.class,entity,String.format("jlgl%02d", i))); + etdList.set(i, CommonUtil.getDoubleByFile(MonitorInverterDailyStatEntity.class,entity, String.format("h%02d", i + 1))); + } + } + int hours = new Date().getHours(); + for (int i = 1; i < hours + 1; i++) { + if (etdList.get(i) == 0) { + etdList.set(i, etdList.get(i - 1)); + } + } + return ret; + } + + @Override + public MonitorInverterDailyStatEntity findBySnAndDate(String sn, String date) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorInverterDailyStatEntity::getSn,sn) + .eq(MonitorInverterDailyStatEntity::getStatDate,date); + return this.getOne(queryWrapper); + } + + + @Override + public IPage selectMonitorInverterDailyStatPage(IPage page, MonitorInverterDailyStatVO monitorInverterDailyStat) { + return page.setRecords(baseMapper.selectMonitorInverterDailyStatPage(page, monitorInverterDailyStat)); + } + + + @Override + public List findByInverterSnsAndDate(List sns, String date, String sysType) { +// SqlBuilder sb = new SqlBuilder() +// .line("select * from crm_monitor_inverter_daily_stat") +// .inst("where sn in", sns) +// .line("and sys_type=?", sysType) +// .line("and stat_date=?", date); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorInverterDailyStatEntity::getSysType,sysType) + .eq(MonitorInverterDailyStatEntity::getStatDate,date) + .in(MonitorInverterDailyStatEntity::getSn,sns); + return this.list(queryWrapper); + } + + @Override + public void syncGinlongInverterForNowHour(List list) { + if (CollectionUtils.isEmpty(list)) { + return; + } + Date now = new Date(); + List inverterHourlyEnergyDTOS = new ArrayList<>(); + for (GetInverterDetailR d : list) { + Long dataTimestamp = d.getDataTimestamp(); + Date syncDate = new Date(dataTimestamp); + Double todayEnergy = UnitUtil.convEnergy(d.getEToday(), d.getETodayStr()); + if (!DateUtil.isSameDay(now, syncDate)) { + continue; + } + InverterHourlyEnergyDTO dto = new InverterHourlyEnergyDTO(); + dto.setSyncTime(syncDate); + dto.setJlgl(UnitUtil.convPower(d.getPac(), d.getPacStr())); + dto.setEnergy(todayEnergy); + dto.setSn(d.getSn()); + inverterHourlyEnergyDTOS.add(dto); + } + syncHourlyData(NhConstants.SYS_TYPE_GINLONG, inverterHourlyEnergyDTOS); + } + + @Override + public void syncHourlyData(String sysType, List energyList) { + if (energyList.isEmpty()) { + return; + } + + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Map> snGroups = energyList.stream().collect(Collectors.groupingBy(e -> { + return inverterDailyKey(e.getSn(), df.format(e.getSyncTime())); + })); + sortSnDailyGroups(snGroups); + Set>> entries = snGroups.entrySet(); + List inverterHourlyDataRecords = Lists.newArrayList(); + Set sns = energyList.stream().map(InverterHourlyEnergyDTO::getSn).collect(Collectors.toSet()); + List inverterList = monitorInverterStatMapper.getInverterBySns(new ArrayList<>(sns), sysType); + + Map sn2InverterMap = inverterList.stream().collect(Collectors.toMap(MonitorInverterStatEntity::getSn, e -> e)); + Map existsInverterDailyMap = getExistsInverterDaily(sysType, energyList, df); + + for (Map.Entry> entry : entries) { + String key = entry.getKey(); + String[] split = key.split(";"); + String sn = split[0]; + String syncDate = split[1]; + MonitorInverterStatEntity inverterStat = sn2InverterMap.get(sn); + if (inverterStat != null) { + MonitorInverterDailyStatEntity hourlyData = createHourlyDataRecord(sn, syncDate, inverterStat.getOutInverterId(), existsInverterDailyMap, sysType, entry.getValue()); + if(hourlyData!=null && hourlyData.getId()==null){ + fillDefaultValue(hourlyData); + } + inverterHourlyDataRecords.add(hourlyData); + } + } + this.saveOrUpdateBatch(inverterHourlyDataRecords); + } + + private MonitorInverterDailyStatEntity createHourlyDataRecord(String sn, + String date, + String inverterId, + Map existsInverterDailyMap, + String sysType, + List hourlyEnergyDTOS) { + MonitorInverterDailyStatEntity exists = existsInverterDailyMap.get(inverterDailyKey(sn, date)); + MonitorInverterDailyStatEntity r = exists; + Date now = new Date(); + if (r == null) { + r = new MonitorInverterDailyStatEntity(); + r.setCreateTime(now); + r.setUpdateTime(now); + r.setSysType(sysType); + r.setStatDate(DateUtil.parseDate(date)); + r.setSn(sn); + r.setOutInverterId(inverterId); + }else{ + if(NhConstants.SYS_TYPE_GOODWE.equals(sysType)){ + boolean isEnergy = false; + for (InverterHourlyEnergyDTO datum : hourlyEnergyDTOS){ + if(datum!=null && datum.getEnergy() !=null && datum.getEnergy()>0){ + isEnergy = true; + break; + } + } + if(isEnergy){ + for(int i=0;i<24;i++){ + String nl = String.format("h%02d", i + 1); + CommonUtil.reflectSetField(r,nl,0d); + } + } + + } + } + + for (InverterHourlyEnergyDTO datum : hourlyEnergyDTOS) { + Date syncDate = datum.getSyncTime(); + int hours = syncDate.getHours(); // 0-23 + if (datum.getEnergy() != null) { + String field = String.format("h%02d", hours + 1); + Double val = (Double) CommonUtil.reflectGetField(r,field); + if(val==null ){ + val = datum.getEnergy(); + }else{ + val = val + datum.getEnergy(); + } + CommonUtil.reflectSetField(r,field,val); + } + if (datum.getJlgl() != null) { + String field = String.format("jlgl%02d", hours); + Double val = (Double) CommonUtil.reflectGetField(r,field); + if(val==null ){ + val = datum.getJlgl(); + }else{ + val = val + datum.getJlgl(); + } + CommonUtil.reflectSetField(r,field,val); + } + r.setSyncTime(syncDate); + } + return r; + } + + private static void fillDefaultValue(MonitorInverterDailyStatEntity record){ + try{ + for (int i = 0; i < 24; i++) { + String hCol = String.format("h%02d", i + 1); + // 获取类的Class对象 + Class cls = record.getClass(); + // 获取私有字段的Field对象 + Field hfield = cls.getDeclaredField(hCol); + ReflectionUtils.makeAccessible(hfield); + Object hval = ReflectionUtils.getField(hfield,record); + if (hval == null) { + ReflectionUtils.setField(hfield,record,0d); + } + String jlglCol = String.format("jlgl%02d", i); + Field jfield = cls.getDeclaredField(jlglCol); + ReflectionUtils.makeAccessible(jfield); + Object jval = ReflectionUtils.getField(jfield,record); + if (jval == null) { + ReflectionUtils.setField(jfield,record,0d); + } + + }}catch (Exception e){ + e.printStackTrace(); + } + } + + private static void fillDefaultValue(List createList) { + for (MonitorInverterDailyStatEntity record : createList) { + fillDefaultValue(record); + } + + + } + + private static String inverterDailyKey(String sn, String date) { + return sn + ";" + date; + } + + private void sortSnDailyGroups(Map> snGroups) { + Set>> entries = snGroups.entrySet(); + for (Map.Entry> entry : entries) { + entry.getValue().sort(new Comparator() { + @Override + public int compare(InverterHourlyEnergyDTO o1, InverterHourlyEnergyDTO o2) { + return (int) (o1.getSyncTime().getTime() - o2.getSyncTime().getTime()); + } + }); + } + } + + private Map getExistsInverterDaily(String sysType, List energyList, DateFormat df) { + Map> sameDateSnGroups = energyList.stream().collect(Collectors.groupingBy(e -> df.format(e.getSyncTime()))); + Map snsDate2RecordMap = Maps.newHashMap(); + for (Map.Entry> stringListEntry : sameDateSnGroups.entrySet()) { + String syncDate = stringListEntry.getKey(); + Set sns = stringListEntry.getValue().stream().map(InverterHourlyEnergyDTO::getSn).collect(Collectors.toSet()); + List exists = findByInverterSnsAndDate(new ArrayList<>(sns), syncDate, sysType); + for (MonitorInverterDailyStatEntity exist : exists) { + snsDate2RecordMap.put(inverterDailyKey(exist.getSn(), syncDate), exist); + } + } + return snsDate2RecordMap; + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.java new file mode 100644 index 0000000..0babd8e --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.java @@ -0,0 +1,466 @@ +package org.springblade.modules.nh.service.impl; + +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springblade.common.constant.NhConstants; +import org.springblade.common.enums.SysType; +import org.springblade.common.utils.CommonUtil; +import org.springblade.common.utils.UnitUtil; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.MonitorInverterStatExcel; +import org.springblade.modules.nh.factory.aiswei.dto.getinverterdatapagepro.GetInverterDataPageProR; +import org.springblade.modules.nh.factory.ginlong.GinlongApi; +import org.springblade.modules.nh.factory.ginlong.IRet; +import org.springblade.modules.nh.factory.ginlong.dto.inverterdetaillist.GetInverterDetailR; +import org.springblade.modules.nh.factory.goodwe.GoodweApi; +import org.springblade.modules.nh.factory.goodwe.GoodweRet; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.D; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.GetInventersMoreDetailInfoBySnResp; +import org.springblade.modules.nh.mapper.MonitorInverterStatMapper; +import org.springblade.modules.nh.pojo.dto.sync.InverterIdMap; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterStatVO; +import org.springblade.modules.nh.service.IInverterDataService; +import org.springblade.modules.nh.service.IMonitorInverterStatService; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 厂家逆变器表 服务实现类 + * + * @author AlexWang + * @since 2024-06-02 + */ +@Slf4j +@Service +@AllArgsConstructor +public class MonitorInverterStatServiceImpl extends ServiceImpl implements IMonitorInverterStatService { + + private final GinlongApi ginlongApi; + + private final GoodweApi goodweApi; + + private final BladeRedis redis; + + @Override + public IPage selectMonitorInverterStatPage(IPage page, MonitorInverterStatVO monitorInverterStat) { + return page.setRecords(baseMapper.selectMonitorInverterStatPage(page, monitorInverterStat)); + } + + @Override + public MonitorInverterStatEntity realtimeDetail(String outInverterId) { + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(MonitorInverterStatEntity::getOutInverterId,outInverterId); + MonitorInverterStatEntity inverterStat = this.getOne(queryWrapper2); + if(inverterStat== null){ + return null; + } + if(NhConstants.SYS_TYPE_GINLONG.equals(inverterStat.getSysType())){ + IRet ret = ginlongApi.inverterDetail(inverterStat.getVendorIndex(),outInverterId,null); + GetInverterDetailR r = ret.getData(); + if(r != null){ + extractedUpdateFields(NhConstants.SYS_TYPE_GINLONG,inverterStat,r,new HashSet<>()); + this.updateById(inverterStat); + } + + }else if(NhConstants.SYS_TYPE_GOODWE.equals(inverterStat.getSysType())){ + String rediskey = "goodwe_inverter_"+inverterStat.getSn(); + GetInventersMoreDetailInfoBySnResp resp = redis.get(rediskey); + if(resp==null){ + GoodweRet ret = goodweApi.getInventersDetailBySn(1,inverterStat.getSn()); + resp = ret.getData(); + if(resp!=null){ + redis.setEx(rediskey,resp,5*60L); + } + } + if(resp!=null){ + convertGoodweInverterDetailResp(inverterStat,resp); + this.updateById(inverterStat); + } + } + + return inverterStat; + } + + @Override + public List exportMonitorInverterStat(Wrapper queryWrapper) { + List monitorInverterStatList = baseMapper.exportMonitorInverterStat(queryWrapper); + //monitorInverterStatList.forEach(monitorInverterStat -> { + // monitorInverterStat.setTypeName(DictCache.getValue(DictEnum.YES_NO, MonitorInverterStat.getType())); + //}); + return monitorInverterStatList; + } + + @Override + public void syncInverterDetails(List list, String sysType, Set updateFields) { + List inverterIds = list.stream().map(GetInverterDetailR::getId).collect(Collectors.toList()); + List inverterIdsMaps = this.baseMapper.findByInverterIds(inverterIds); + Map inverterId2LocalIdMap = inverterIdsMaps.stream().collect(Collectors.toMap(InverterIdMap::getOutInverterId, InverterIdMap::getId)); + + List updates = new ArrayList<>(); + for (GetInverterDetailR inverter : list) { + String id = inverter.getId(); + if (inverterId2LocalIdMap.containsKey(id)) { + updates.add(inverter); + } else { + MonitorInverterStatEntity stat = initNewInverterStat(sysType, inverter); + stat.setVendorIndex(inverter.getVendorIndex()); + if (StringUtils.isBlank(inverter.getStationId())) { + log.error("sync inverter detail error, sn:{}, sys_type:{}", inverter.getSn(), new SysType(sysType)); + } else { + try{ + this.save(stat); + }catch (Exception e){ + log.error("sync inverter detail error,this.save(stat) sn:{},e:{}", inverter.getSn(), e); + } + } + } + } + + if (!updates.isEmpty()) { + List rs = Lists.newArrayList(); + for (GetInverterDetailR u : updates) { + if(NhConstants.SYS_TYPE_SAJ.equals(sysType) + && u.getVendorIndex()==0){ + //三晶设备同步任务不更新 + continue; + } + MonitorInverterStatEntity r = new MonitorInverterStatEntity(); + r.setVendorIndex(u.getVendorIndex()); + Long inverterId = Long.parseLong(inverterId2LocalIdMap.get(u.getId())); + r.setId(inverterId); + r.setSn(u.getSn());// 逆变器sn + + r.setInverterId(inverterId); + r.setOutInverterId(u.getId());// 外部逆变器id + + r.setOutStationId(u.getStationId());// 外部电站id + if (StringUtils.isBlank(u.getStationId())) { + continue; + } + if (updateFields.contains("sys_type") || updateFields.isEmpty()) { + r.setSysType(sysType); + } + extractedUpdateFields(sysType , r, u, updateFields); + + rs.add(r); + } + +// inverterDataService.syncFromSchedulerList(rs); + boolean flag = this.updateBatchById(rs); + + log.info("逆变器 detail list updated flag is: {}", flag); + } + } + + @Override + public MonitorInverterStatEntity initNewInverterStat(String sysType, GetInverterDetailR inverter) { + MonitorInverterStatEntity stat = new MonitorInverterStatEntity(); + stat.setSn(inverter.getSn()); // 逆变器sn + stat.setOutInverterId(inverter.getId()); // 外部逆变器id + stat.setOutStationId(inverter.getStationId()); // 外部电站id + stat.setEtd(UnitUtil.convEnergy(inverter.getEToday(), inverter.getETodayStr())); // 当日发电量 + stat.setEtm(UnitUtil.convEnergy(inverter.getEMonth(), inverter.getEMonthStr())); // 当月发电量 + stat.setEto(UnitUtil.convEnergy(inverter.getETotal(), inverter.getETotalStr())); // 累计发电量 + stat.setEty(UnitUtil.convEnergy(inverter.getEYear(), inverter.getEYearStr())); // 当年发电量 + stat.setCreateTime(new Date()); // 创建时间 + stat.setSyncTime(new Date(inverter.getDataTimestamp())); // 更新时间 + stat.setPac(UnitUtil.convPower(inverter.getPac(), inverter.getPacStr())); // 实时交流功率--有功功率 + stat.setPwHour(inverter.getFullHour()); // 发电小时数?(满发?) + stat.setRealPower(UnitUtil.convPower(inverter.getPower(), inverter.getPowerStr())); // 实际安装功率?没什么用,可以考虑去掉 + stat.setPower(UnitUtil.convPower(inverter.getPower(), inverter.getPowerStr())); // 装机容量--锦浪有 + stat.setState(inverter.getState()); // 1.在线 2.离线,3.报警 + stat.setFullHour(inverter.getFullHour()); // 满发小时数 + stat.setFullHourStr(inverter.getFullHourStr()); // 满发小时数单位 + if (inverter.getUpdateShelfEndTime() != null) { + stat.setUpdateShelfEndTime(new Date(inverter.getUpdateShelfEndTime())); // 质保结束时间 + } + stat.setDcPac(UnitUtil.convVa(inverter.getDcPac(), inverter.getDcPacStr())); + stat.setTemperature(inverter.getInverterTemperature()); + stat.setProductModel(inverter.getProductModel()); + stat.setApparentPower(inverter.getApparentPower()); + stat.setApparentPowerStr(inverter.getApparentPowerStr()); + stat.setReactivePower(inverter.getReactivePower()); + stat.setReactivePowerStr(inverter.getReactivePowerStr()); + stat.setName(inverter.getName()); + stat.setFac(UnitUtil.convHz(inverter.getFac(), inverter.getFacStr())); + stat.setUpdateTime(new Date()); // 更新时间 + stat.setCollectorSn(inverter.getCollectorsn()); // 采集器sn + stat.setModel(inverter.getModel()); + stat.setSysType(sysType); + stat.setPowerFactor(inverter.getPowerFactor()); + stat.setFac(inverter.getFac()); + + String pvModules = assemblePvModules(inverter,sysType); + stat.setPvModules(pvModules); + String acModules = assembleRSTModules(inverter,sysType); + stat.setAcModules(acModules); + return stat; + } + + private void extractedUpdateFields(String sysType,MonitorInverterStatEntity r, GetInverterDetailR u,Set updateFields) { + if (updateFields.contains("etd") || updateFields.isEmpty()) { + r.setEtd(UnitUtil.convEnergy(u.getEToday(), u.getETodayStr()));// 当日发电量 + } + if (updateFields.contains("etm") || updateFields.isEmpty()) { + r.setEtm(UnitUtil.convEnergy(u.getEMonth(), u.getEMonthStr()));// 当月发电量 + } + if (updateFields.contains("eto") || updateFields.isEmpty()) { + r.setEto(UnitUtil.convEnergy(u.getETotal(), u.getETotalStr())); + } + if (updateFields.contains("ety") || updateFields.isEmpty()) { + r.setEty(UnitUtil.convEnergy(u.getEYear(), u.getEYearStr())); + } + if (updateFields.contains("sync_time") || updateFields.isEmpty()) { + r.setSyncTime(new Date(u.getDataTimestamp())); + } + if (updateFields.contains("pac") || updateFields.isEmpty()) { + r.setPac(UnitUtil.convPower(u.getPac(), u.getPacStr())); + } + if (updateFields.contains("pw_hour") || updateFields.isEmpty()) { + r.setPwHour(u.getFullHour()); + } + if (updateFields.contains("real_power") || updateFields.isEmpty()) { + r.setRealPower(UnitUtil.convPower(u.getPower(), u.getPowerStr())); + } + if (updateFields.contains("power") || updateFields.isEmpty()) { + r.setPower(UnitUtil.convPower(u.getPower(), u.getPowerStr())); + } + if (updateFields.contains("state") || updateFields.isEmpty()) { + r.setState(u.getState()); + } + if (updateFields.contains("full_hour") || updateFields.isEmpty()) { + r.setFullHour(u.getFullHour());// 满发小时数 + } + if (updateFields.contains("full_hour_str") || updateFields.isEmpty()) { + r.setFullHourStr(u.getFullHourStr());// 满发小时数单位 + } + if (u.getUpdateShelfEndTime() != null) { + r.setUpdateShelfEndTime(new Date(u.getUpdateShelfEndTime()));// 质保结束时间 + } + if (updateFields.contains("dc_pac") || updateFields.isEmpty()) { // goodwe 是计算出来的,通过 trySyncGoodweInverterStat 方法更新的,aiswei似乎没办法拿到 + r.setDcPac(UnitUtil.convVa(u.getDcPac(), u.getDcPacStr()));// 逆变器总直流输入功率,锦浪有该字段,且单位为VA,W和 VA是一回事吗? + } + if (updateFields.contains("fac") || updateFields.isEmpty()) { + r.setFac(UnitUtil.convHz(u.getFac(), u.getFacStr())); + } + r.setUpdateTime(new Date()); + if (updateFields.contains("model") || updateFields.isEmpty()) { + r.setModel(u.getModel()); + } + if (updateFields.contains("temperature") || updateFields.isEmpty()) { + r.setTemperature(u.getInverterTemperature()); + } + if (updateFields.contains("name") || updateFields.isEmpty()) { + r.setName(u.getName()); + } + if (updateFields.contains("reactive_power") || updateFields.isEmpty()) { + r.setReactivePower(u.getReactivePower()); + } + if (updateFields.contains("reactive_power_str") || updateFields.isEmpty()) { + r.setReactivePowerStr(u.getReactivePowerStr()); + } + if (updateFields.contains("apparent_power") || updateFields.isEmpty()) { + r.setApparentPower(u.getApparentPower()); + } + if (updateFields.contains("apparent_power_str") || updateFields.isEmpty()) { + r.setApparentPowerStr(u.getApparentPowerStr()); + } + if (updateFields.contains("product_model") || updateFields.isEmpty()) { + r.setProductModel(u.getProductModel()); + } + + if (updateFields.contains("collector_sn") || updateFields.isEmpty()) { + r.setCollectorSn(u.getCollectorsn()); + } + + if (updateFields.contains("power_factor") || updateFields.isEmpty()) { + r.setPowerFactor(u.getPowerFactor()); + } + + if (updateFields.contains("fac") || updateFields.isEmpty()) { + r.setFac(u.getFac()); + } + + String pvModules = assemblePvModules(u,sysType); + r.setPvModules(pvModules); + String acModules = assembleRSTModules(u,sysType); + r.setAcModules(acModules); + } + + @Override + public MonitorInverterStatEntity getBySn(String sn) { + if(StringUtil.isBlank(sn)) + return null; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorInverterStatEntity::getSn,sn); + if(count(queryWrapper)>1){ + return null; + } + return getOne(queryWrapper); + } + + @Override + public List getSnsByStation(String outStationId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MonitorInverterStatEntity::getOutStationId, outStationId) + .select(MonitorInverterStatEntity::getSn); + List snList = this.listObjs(queryWrapper); + return snList; + } + + @Override + public List getInverterSns(String sysType) { + return this.baseMapper.getInverterSns(sysType); + } + @Override + public List getInverterSns(String sysType,int index) { + return this.baseMapper.getInverterSnsByIndex(sysType,index); + } + + private String assemblePvModules(GetInverterDetailR detail,String sysType){ + InverterUapEntity pvUap = new InverterUapEntity(); + pvUap.setCreateTime(new Date()); + pvUap.setSn(detail.getSn()); // 逆变器sn + pvUap.setOutInverterId(detail.getId()); // 外部逆变器id + pvUap.setOutStationId(detail.getStationId()); // 外部电站id + pvUap.setSysType(sysType); + pvUap.setType(NhConstants.UAP_TYPE_DC); + pvUap.setStateTime(CommonUtil.getNowHour()); + + List list = Lists.newArrayList(); + for(int i=1;i<=16;i++){ + Object iPvObj = CommonUtil.reflectGetField(detail,"iPv"+i); + Object uPvObj = CommonUtil.reflectGetField(detail,"uPv"+i); + if(iPvObj==null||uPvObj==null){ + break; + } + if(iPvObj.equals(0d) && uPvObj.equals(0d)){ + break; + } + try{ + CommonUtil.reflectSetField(pvUap,"uv"+i,uPvObj); + CommonUtil.reflectSetField(pvUap,"ia"+i,iPvObj); + CommonUtil.reflectSetField(pvUap,"p"+i,(Double)uPvObj*(Double)iPvObj); + }catch (Exception e){ + + } + list.add(uPvObj+":"+iPvObj); + } + + sendInverterDataToRedis(pvUap); + return String.join("|", list); + } + + private String assembleRSTModules(GetInverterDetailR detail,String sysType){ + InverterUapEntity pvUap = new InverterUapEntity(); + pvUap.setCreateTime(new Date()); + pvUap.setSn(detail.getSn()); // 逆变器sn + pvUap.setOutInverterId(detail.getId()); // 外部逆变器id + pvUap.setOutStationId(detail.getStationId()); // 外部电站id + pvUap.setSysType(sysType); + pvUap.setType(NhConstants.UAP_TYPE_AC); + pvUap.setStateTime(CommonUtil.getNowHour()); + + List list = Lists.newArrayList(); + for(int i=1;i<=3;i++){ + Object iPvObj = CommonUtil.reflectGetField(detail,"iAc"+i); + Object uPvObj = CommonUtil.reflectGetField(detail,"uAc"+i); + if(iPvObj==null||uPvObj==null){ + break; + } + if(iPvObj.equals(0d) && uPvObj.equals(0d)){ + break; + } + try{ + CommonUtil.reflectSetField(pvUap,"uv"+i,uPvObj); + CommonUtil.reflectSetField(pvUap,"ia"+i,iPvObj); + CommonUtil.reflectSetField(pvUap,"p"+i,(Double)uPvObj*(Double)iPvObj); + }catch (Exception e){ + + } + list.add(uPvObj+":"+iPvObj); + } + sendInverterDataToRedis(pvUap); + return String.join("|", list); + } + + private void sendInverterDataToRedis(InverterUapEntity pvUap){ + // 获取当前日期和时间 + LocalDateTime now = LocalDateTime.now(); + if(now.getHour()>=8 && now.getHour()<18){ + redis.sAdd(NhConstants.UAP_LIST_TEMP_KEY, pvUap); + } + } + + private void convertGoodweInverterDetailResp(MonitorInverterStatEntity stat,GetInventersMoreDetailInfoBySnResp inverter){ + + if(inverter==null) return; + + stat.setEtd(inverter.getEday()); // 当日发电量 +// stat.setEtm(UnitUtil.convEnergy(inverter.getEMonth(), inverter.getEMonthStr())); // 当月发电量 + stat.setEto(inverter.getEtotal()); // 累计发电量 +// stat.setEty(UnitUtil.convEnergy(inverter.getEYear(), inverter.getEYearStr())); // 当年发电量 + stat.setSyncTime(new Date()); // 更新时间 + stat.setPac(inverter.getOut_pac()); // 实时交流功率--有功功率 +// stat.setPwHour(inverter.getFullHour()); // 发电小时数?(满发?) + stat.setRealPower(inverter.getCapacity()); // 实际安装功率?没什么用,可以考虑去掉 + stat.setPower(inverter.getCapacity()); // 装机容量--锦浪有 + stat.setState(inverter.getStatus()); // 1.在线 2.离线,3.报警 +// stat.setFullHour(inverter.getFullHour()); // 满发小时数 +// stat.setFullHourStr(inverter.getFullHourStr()); // 满发小时数单位 +// if (inverter.getUpdateShelfEndTime() != null) { +// stat.setUpdateShelfEndTime(new Date(inverter.getUpdateShelfEndTime())); // 质保结束时间 +// } +// stat.setDcPac(UnitUtil.convVa(inverter.getDcPac(), inverter.getDcPacStr())); + stat.setTemperature(inverter.getTempperature()); +// stat.setProductModel(inverter.getProductModel()); +// stat.setApparentPower(inverter.getApparentPower()); +// stat.setApparentPowerStr(inverter.getApparentPowerStr()); +// stat.setReactivePower(inverter.getReactivePower()); +// stat.setReactivePowerStr(inverter.getReactivePowerStr()); + stat.setName(inverter.getName()); +// stat.setFac(UnitUtil.convHz(inverter.getFac(), inverter.getFacStr())); + stat.setUpdateTime(new Date()); // 更新时间 +// stat.setCollectorSn(inverter.getCollectorsn()); // 采集器sn +// stat.setModel(inverter.getModel()); +// stat.setSysType(sysType); +// stat.setPowerFactor(inverter.getPowerFactor()); +// stat.setFac(inverter.getFac()); + + D d = inverter.getD(); + stat.setPac(UnitUtil.convPower(d.getPac(), "w")); + + String pvModules = CommonUtil.assembleIUData("vpv","ipv",12,d); + stat.setPvModules(pvModules); + String acModules = CommonUtil.assembleIUData("vac","iac",3,d); + stat.setAcModules(acModules); + + } + + + // public static void main(String[] args) { +// GetInverterDetailR r = new GetInverterDetailR(); +// for(int i=1;i<10;i++){ +// CommonUtil.reflectSetField(r,"iPv"+i,10d+i); +// CommonUtil.reflectSetField(r,"uPv"+i,200d+i); +// } +// System.out.println(JSON.toJSONString(r)); +// System.out.println(assemblePvModules(r)); +// } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.java new file mode 100644 index 0000000..235aa0c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.java @@ -0,0 +1,97 @@ +package org.springblade.modules.nh.service.impl; + +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.http.util.HttpUtil; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.DeviceExcel; +import org.springblade.modules.nh.mapper.DeviceMapper; +import org.springblade.modules.nh.pojo.dto.DeviceDTO; +import org.springblade.modules.nh.pojo.dto.WeatherHistory; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import org.springblade.modules.nh.service.IDeviceService; +import org.springblade.modules.nh.service.IInverterDataService; +import org.springblade.modules.nh.service.INHCommonService; +import org.springblade.modules.nh.service.IPowerStationService; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 设备管理 服务实现类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Service +@AllArgsConstructor +public class NHCommonServiceImpl implements INHCommonService { + + private final BladeRedis bladeRedis; + + @Override + public R queryWeather(String area) { + if(StringUtil.isBlank(area)){ + area = "合肥"; + } + String resp = CommonUtil.queryWeather(area); + JSONObject json = JSON.parseObject(resp); + if(json.getInteger("showapi_res_code")==0){ + return R.data(json.getJSONObject("showapi_res_body")); + }else{ + return R.fail(json.getString("showapi_res_error")); + } + } + + @Override + public R queryWeatherHistory(String area, String day) { + Date data = DateUtil.parse(day,"yyyy-MM-dd"); + String month = DateUtil.format(data,"yyyyMM"); + String dayStr = DateUtil.format(data,"yyyyMMdd"); + String key = area+"-"+month; + if(bladeRedis.exists(key)){ + List weatherList = bladeRedis.get(key); + return R.data(getWeatherByDayInMonth(weatherList,dayStr)); + } + + String resp = CommonUtil.queryWeatherByMonth(area,month); + JSONObject json = JSON.parseObject(resp); + if(json.getInteger("showapi_res_code")==0){ + JSONArray array = json.getJSONObject("showapi_res_body").getJSONArray("list"); + List weatherList = array.toJavaList(WeatherHistory.class); + bladeRedis.setEx(key,weatherList,30*60L); + return R.data(getWeatherByDayInMonth(weatherList,dayStr)); + }else{ + return R.fail(json.getString("showapi_res_error")); + } + } + + private WeatherHistory getWeatherByDayInMonth(List weatherList, String day){ + WeatherHistory result = null; + for(WeatherHistory weatherHistory : weatherList){ + if(weatherHistory.getTime().equals(day)){ + result = weatherHistory; + break; + } + } + return result; + } +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/PowerStationInefficientServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/PowerStationInefficientServiceImpl.java new file mode 100644 index 0000000..89faff0 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/PowerStationInefficientServiceImpl.java @@ -0,0 +1,422 @@ +package org.springblade.modules.nh.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.google.common.collect.Sets; +import lombok.AllArgsConstructor; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.lang3.StringUtils; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.*; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.modules.nh.excel.StationStaticsExcel; +import org.springblade.modules.nh.pojo.entity.*; +import org.springblade.modules.nh.pojo.vo.PowerStationInefficientVO; +import org.springblade.modules.nh.excel.PowerStationInefficientExcel; +import org.springblade.modules.nh.mapper.PowerStationInefficientMapper; +import org.springblade.modules.nh.pojo.vo.StaticsMonthVO; +import org.springblade.modules.nh.pojo.vo.StationStaticsVO; +import org.springblade.modules.nh.service.*; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.operation.service.impl.PlatformEmployeeServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.service.impl.OperationOrderOperationInfoServiceImpl; +import org.springblade.modules.order.service.impl.OperationOrderServiceImpl; +import org.springblade.modules.order.utils.PlantformUtils; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.service.IRegionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 低效电站 服务实现类 + * + * @author AlexWang + * @since 2024-06-14 + */ +@Service +@AllArgsConstructor +public class PowerStationInefficientServiceImpl extends BaseServiceImpl implements IPowerStationInefficientService { + + private final IMonitorEntryStatService entryStatService; + private final IMonitorEntryYearStatService yearStatService; + private final IMonitorEntryMonthStatService monthStatService; + private final IInefficientSettingService inefficientSettingService; + + private final OperationOrderServiceImpl orderService; + + private final IPowerStationService powerStationService; + + private final IRegionService regionService; + + private final OperationSiteServiceImpl siteService; + private final OperationSiteEmployeeMapper employeeMapper; + + private final PlatformEmployeeServiceImpl platformEmployeeService; + + private final OperationOrderOperationInfoServiceImpl infoService; + private final BladeRedis bladeRedis; + + @Override + public IPage selectPowerStationInefficientPage(IPage page, PowerStationInefficientVO powerStationInefficient) { + + + return page.setRecords(baseMapper.selectPowerStationInefficientPage(page, powerStationInefficient)); + } + + @Override + public IPage selectAllPage(Map powerStationInefficient, Query query) { + + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerStationInefficient.put("omProviderId",site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerStationInefficient.put("omProviderId",authVo.getId()); + }else if("4".equals(user.getDeptId())) { // + EmpAuthVo authVoP = platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if (authVoP != null) { + powerStationInefficient.put("omProviderId", authVoP.getId()); + powerStationInefficient.put("capitalName", authVoP.getPartnerName()); + + } + } + QueryWrapper wrapper = Condition.getQueryWrapper(powerStationInefficient, PowerStationInefficientEntity.class); + if("0".equals(powerStationInefficient.get("status_equal")) && "1".equals(powerStationInefficient.get("isConfirm"))){ + wrapper.and( + wrappera -> wrappera.lambda().ge(PowerStationInefficientEntity::getStart, LocalDate.now().minusDays(7)) + .or().inSql(PowerStationInefficientEntity::getOrderNumber,"select number from sf_operation_order o where o.number = order_number and o.status in('1','2','3')") + ); + + }else if("1".equals(powerStationInefficient.get("isConfirm"))){ + wrapper.lambda().lt(PowerStationInefficientEntity::getStart, LocalDate.now().minusDays(7)); + } + wrapper.lambda().gt(PowerStationInefficientEntity::getMgHour,0); + return this.page(Condition.getPage(query), wrapper); + } + + @Override + public void fillStaticsVO(StationStaticsVO vo) { + if(vo == null){return;} + + if(StringUtil.isNotBlank(vo.getOutStationId())){ + vo.setEntryStat(entryStatService.getEntryStatInCache(vo.getOutStationId())); + + InefficientSettingEntity setting = inefficientSettingService.getSettingByStation(vo); + + Calendar calendar = Calendar.getInstance(); + int currentMonth = calendar.get(Calendar.MONTH) + 1; + int currentYear = calendar.get(Calendar.YEAR); + if(setting!=null){ + Double currentGuardHour= (Double) CommonUtil.reflectGetField(setting,"guardHourM"+currentMonth); + vo.setCurrentGuardEnergy(CommonUtil.round(currentGuardHour*vo.getActualCapacity().doubleValue(),3)); + if(vo.getEntryStat()!=null && vo.getEntryStat().getEtm()!=null){ + vo.setCurrentGuardRate(CommonUtil.round(vo.getEntryStat().getEtm()/vo.getCurrentGuardEnergy(),3)); + } + } + + List monthList = Lists.newArrayList(); + + List monthDataList = yearStatService.listYearByEntry(vo.getOutStationId(),vo.getYear()); + + Map monthMap = monthDataList.stream().collect(Collectors.toMap(MonitorEntryYearStatEntity::getMonth, o -> o)); + for(int i=1;i<=12;i++){ + MonitorEntryYearStatEntity monthData = monthMap.get(i); + if(monthData==null){ + monthData = new MonitorEntryYearStatEntity(); + monthData.setYear(vo.getYear()); + monthData.setMonth(i); + monthData.setEnergy(0D); + } + + StaticsMonthVO monthVO = new StaticsMonthVO(); + monthVO.setYear(vo.getYear()); + if(monthData.getEnergy()>50000){ + monthData.setEnergy(monthData.getEnergy()/1000); + } + monthVO.setMonth(monthData.getMonth()+""); + monthVO.setEnergy(CommonUtil.round(monthData.getEnergy(),3)); + if(vo.getEntryStat()!=null + && currentYear == vo.getYear() + && i==currentMonth + && vo.getEntryStat().getEtm()!=null){ + monthVO.setEnergy(vo.getEntryStat().getEtm()); + } + if(setting!=null){ + Double guardHour= (Double) CommonUtil.reflectGetField(setting,"guardHourM"+monthData.getMonth()); + monthVO.setGuardEnergy(CommonUtil.round(guardHour*vo.getActualCapacity().doubleValue(),3)); + Double guardRate = CommonUtil.setScale(monthVO.getEnergy()/monthVO.getGuardEnergy()*100,0); + monthVO.setGuardRate(guardRate+"%"); + } + monthList.add(monthVO); + } + + vo.setMonthList(monthList); + + vo.setYesterdayEnergy(monthStatService.getYesterdayEnergy(vo.getOutStationId())); + } + } + + @Override + public List exportStationStatics(Map powerStation) { + Integer year = 2025; + if(powerStation.containsKey("year")){ + year = Integer.valueOf(powerStation.get("year").toString()); + powerStation.remove("year"); + } + Set delKeys = Sets.newHashSet(); + for(String key :powerStation.keySet()){ + if(key.contains("$")){ + delKeys.add(key); + } + } + delKeys.forEach(key->{ + powerStation.remove(key); + }); + + + + QueryWrapper queryWrapper =Condition.getQueryWrapper(powerStation, PowerStationEntity.class); + //queryWrapper.lambda().gt(PowerStationEntity::getEto,0); + queryWrapper.lambda().eq(PowerStationEntity::getApplyStatus,1); + List list =powerStationService.list(queryWrapper); + List stationStaticsList = PowerStationWrapper.build().staticsListVO(list); + List result = Lists.newArrayList(); + for(StationStaticsVO vo : stationStaticsList){ + vo.setYear(year); + fillStaticsVO(vo); + + StationStaticsExcel excel = new StationStaticsExcel(); + BeanUtil.copyProperties(vo,excel); + excel.setActualCapacityStr(vo.getActualCapacity() != null?vo.getActualCapacity().doubleValue():0); + excel.setCurrentGuardEnergyStr(vo.getCurrentGuardEnergy()); + if(vo.getCurrentGuardRate() != null){ + excel.setCurrentGuardRateStr(CommonUtil.setScale(vo.getCurrentGuardRate()*100,0)+"%"); + } + + MonitorEntryStatEntity entryStat = vo.getEntryStat(); + if(entryStat!=null){ + excel.setEtdStr(entryStat.getEtd()); + excel.setEtmStr(entryStat.getEtm()); + if(entryStat.getFisGenerateTime()!=null){ + excel.setFisGenerateTimeStr(DateUtil.format(entryStat.getFisGenerateTime(),"yyyy-MM-dd")); + } + for(int i=0;i<12;i++){ + StaticsMonthVO monthVO = vo.getMonthList().get(i); + CommonUtil.reflectSetField(excel,"energy_"+monthVO.getMonth(),monthVO.getEnergy()); + CommonUtil.reflectSetField(excel,"guardEnergy_"+monthVO.getMonth(),monthVO.getGuardEnergy()); + CommonUtil.reflectSetField(excel,"guardRate_"+monthVO.getMonth(),monthVO.getGuardRate()); + } + } + result.add(excel); + } + return result; + } + + @Override + public boolean updateSiteName(String entryIds, OperationSiteEntity site) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(PowerStationInefficientEntity::getOmProviderId,site.getId()).set(PowerStationInefficientEntity::getOmProviderName,site.getName()) + .in(PowerStationInefficientEntity::getStationId, Func.toLongList(entryIds)); + return this.update(updateWrapper); + } + + @Override + public boolean deleteSiteName(String entryIds) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.set(PowerStationInefficientEntity::getOmProviderId,"").set(PowerStationInefficientEntity::getOmProviderName,"") + .in(PowerStationInefficientEntity::getStationId, Func.toLongList(entryIds)); + return this.update(updateWrapper); + } + + + @Override + public List exportPowerStationInefficient(Map powerStationMap) { + + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerStationMap.put("omProviderId",site.getId()); + + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerStationMap.put("omProviderId",authVo.getId()); + }else if("4".equals(user.getDeptId())) { // + EmpAuthVo authVoP = platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if (authVoP != null) { + powerStationMap.put("omProviderId", authVoP.getId()); + powerStationMap.put("capitalName", authVoP.getPartnerName()); + + } + } + QueryWrapper wrapper = Condition.getQueryWrapper(powerStationMap, PowerStationInefficientEntity.class); + if("0".equals(powerStationMap.get("status_equal")) && "1".equals(powerStationMap.get("isConfirm"))){ + wrapper.and( + wrappera -> wrappera.lambda().ge(PowerStationInefficientEntity::getStart, LocalDate.now().minusDays(7)) + .or().inSql(PowerStationInefficientEntity::getOrderNumber,"select number from sf_operation_order o where o.number = order_number and o.status in('1','2','3')") + ); + }else if("1".equals(powerStationMap.get("isConfirm"))){ + wrapper.lambda().lt(PowerStationInefficientEntity::getStart, LocalDate.now().minusDays(7)); + } + + List powerStationInefficientList = this.list(wrapper); + List result = Lists.newArrayList(); + + powerStationInefficientList.forEach(powerStationInefficient -> { + PowerStationInefficientExcel excel = new PowerStationInefficientExcel(); + BeanUtil.copyProperties(powerStationInefficient,excel); + String startStr = DateUtil.format(powerStationInefficient.getStart(), "yyyy-MM-dd"); + String endStr = DateUtil.format(powerStationInefficient.getEnd(), "yyyy-MM-dd"); + excel.setStart_and(startStr+"-"+endStr); + result.add(excel); +// powerStationInefficient.setTypeName(DictCache.getValue(DictEnum.YES_NO, PowerStationInefficient.getType())); + }); + return result; + } + + @Override + public boolean turnMainOrder(String id) { + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + PowerStationInefficientEntity customerEntry = getById(id); + PowerStationEntity entity = powerStationService.getStationDetailByPowCode(customerEntry.getStationCode()); + if(entity == null){ + throw new ServiceException("该电站已不存在"); + } + if(StringUtil.isBlank(customerEntry.getOmProviderId())){ + if(StringUtil.isBlank(entity.getOmProviderId())){ + throw new ServiceException("该电站未绑定运维商,不可转运维"); + } + customerEntry.setOmProviderId(entity.getOmProviderId()); + customerEntry.setOmProviderName(entity.getOmProviderName()); + } + Long count = orderService.findRetunCountByOrderId(entity.getInnerStationId()); + if(count>0){ + throw new ServiceException("该电站已经转运维,不可重复操作"); + } + BigDecimal bd = BigDecimal.ZERO; + String number = PlantformUtils.getOrderNumber(); + OperationOrderEntity order = new OperationOrderEntity(); + order.setNumber(number); + order.setOrderType("5");//监控转运维 + order.setCreateTime(time); + order.setRepairTime(time); + order.setCreateBy(user.getUserId().toString()); + + order.setCustomerName(customerEntry.getOwnerName()); + order.setPowerStationCode(customerEntry.getStationCode()); + order.setCapitalName(customerEntry.getCapitalName()); + order.setCapitalCode(customerEntry.getCapitalCode()); + Region region = new Region(); + region.setProvinceName(entity.getProvince()); + region.setRegionLevel(1); + Region detail = regionService.getOne(Condition.getQueryWrapper(region)); + if(detail!= null){ + order.setProvinceCode(detail.getProvinceCode()); + } + order.setProvince(entity.getProvince()); + region.setCityName(entity.getCity()); + region.setRegionLevel(2); + Region citys = regionService.getOne(Condition.getQueryWrapper(region)); + if(citys!= null){ + order.setCityCode(citys.getCityCode()); + } + order.setCity(entity.getCity()); + region.setDistrictName(entity.getDistrict()); + region.setRegionLevel(3); + Region distr = regionService.getOne(Condition.getQueryWrapper(region)); + if(distr!= null){ + order.setAreaCode(distr.getDistrictCode()); + } + order.setArea(entity.getDistrict()); + + order.setCustomerAddress(entity.getAddress()); + + order.setCustomerMobile(customerEntry.getOwnerPhone()); + order.setPowerStationName(customerEntry.getStationCode()); + order.setEntryId(entity.getInnerStationId()); + order.setAgentId(entity.getAgentId()); + order.setAgentName(entity.getAgentName()); + order.setApplianceBrand(DictCache.getValue(DictEnum.DEVICE_BRAND, entity.getBrand())); + if(entity.getStartGenDate()!= null){ + String shtime = orderService.getFirstDayofNextMonth(entity.getStartGenDate(),"yyyy-MM-dd"); + order.setApplianceBuyTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + order.setPutIntoTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + } + order.setApplianceBarcode(entity.getSn()); + if(StringUtils.isNotBlank(customerEntry.getOmProviderId())){ + order.setSiteId(customerEntry.getOmProviderId()); + order.setSiteName(customerEntry.getOmProviderName()); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.SITE_STATUS_GET); + order.setDispatchTime(time); + if(order.getWarningStartDay()==null){ + order.setWarningStartDay(DateUtils.addDays(time,3)); + } + } + + //order.setRemarks(alarm.getMalfunctionCode()+","+alarm.getAlarmName());//故障码+告警名称(故障信息) + order.setComplaintCount(0); + order.setSiteCost(bd); + order.setAccountsReceivable(bd); + order.setTotalCollections(bd); + order.setMileage(bd); + order.setMileCost(bd); + order.setServiceCost(bd); + order.setFittingCost(bd); + order.setSpecialInstallation("1"); + + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "转运维接入"); + ta.setT(Target.NEW_ORDER); + if (!orderService.save(order)) { + throw new ServiceException("该电站转运维失败"); + } + customerEntry.setOrderNumber(order.getNumber()); + entity.setOrderNumber(order.getNumber()); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, ""); + OperationOrderOperationInfoEntity info = new OperationOrderOperationInfoEntity(); + info.setOrderId(order.getId()); + info.setProcessDetail(str); + if(StringUtil.isNotBlank(order.getSiteId())){ + info.setSiteId(order.getSiteId()); + } + powerStationService.updateById(entity); + updateById(customerEntry); + return infoService.save(info); + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.java b/src/main/java/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.java new file mode 100644 index 0000000..eec990b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.java @@ -0,0 +1,1274 @@ +package org.springblade.modules.nh.service.impl; + +import cn.hutool.core.util.IdUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import lombok.AllArgsConstructor; +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.lang3.StringUtils; +import org.jetbrains.annotations.NotNull; +import org.springblade.common.cache.DictCache; +import org.springblade.common.constant.CommonConstant; +import org.springblade.common.enums.DictEnum; +import org.springblade.common.utils.CommonUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.excel.PowerStationExcel; +import org.springblade.modules.nh.excel.PowerStationImport; +import org.springblade.modules.nh.mapper.*; +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.dto.PowerStationDTO; +import org.springblade.modules.nh.pojo.dto.StationDTO; +import org.springblade.modules.nh.pojo.dto.open.YXPowerStationDTO; +import org.springblade.modules.nh.pojo.entity.*; +import org.springblade.modules.nh.pojo.vo.*; +import org.springblade.modules.nh.service.*; +import org.springblade.modules.nh.wrapper.PowerStationWrapper; +import org.springblade.modules.operation.excel.EntryPaymentTimeExcel; +import org.springblade.modules.operation.excel.EntrySiteExcel; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.operation.service.impl.PlatformEmployeeServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.mapper.OperationOrderMapper; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.vo.OrderHomeVo; +import org.springblade.modules.order.pojo.vo.OrderListConditionVo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import scala.collection.mutable.StringBuilder; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.LocalDate; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 电站 服务实现类 + * + * @author AlexWang + * @since 2024-05-31 + */ +@Service +@AllArgsConstructor +public class PowerStationServiceImpl extends BaseServiceImpl implements IPowerStationService { + + private final IMonitorEntryStatService entryStatService; + + private final MonitorEntryDailyStatMapper dailyStatMapper; + private final MonitorEntryMonthStatMapper monthStatMapper; + private final MonitorEntryYearStatMapper yearStatMapper; + + private final MonitorEntryStatMapper entryStatMapper; + + private final AlarmInfoMapper alarmInfoMapper; + + private final DeviceMapper deviceMapper; + + private final MonitorInverterStatMapper monitorInverterStatMapper; + + private final BladeRedis bladeRedis; + @Autowired + OperationSiteServiceImpl siteService; + @Autowired + OperationSiteEmployeeMapper employeeMapper; + + @Autowired + PlatformEmployeeServiceImpl platformEmployeeService; + + private final OperationOrderMapper operationOrderMapper; + + + + + + private final IInverterDataService inverterDataService; + + + @Override + public IPage selectPowerStationPage(IPage page, StationDTO powerStation) { + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerStation.setOmProviderId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerStation.setOmProviderId(authVo.getSiteId()); + powerStation.setProvince(authVo.getProvinces()); + powerStation.setCity(authVo.getCity()); + powerStation.setDistrict(authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + powerStation.setSiteIds(authVoP.getSiteId()); + if(StringUtil.isBlank(powerStation.getProvince())){ + powerStation.setProvince(authVoP.getProvinces()); + } + + powerStation.setCity(authVoP.getCity()); + powerStation.setDistrict(authVoP.getArea()); + powerStation.setEntryIds(authVoP.getEntryId()); + if(StringUtil.isBlank(powerStation.getCapitalName())){ + powerStation.setCapitalName(authVoP.getPartnerName()); + } + } + + } +// if(powerStation.getEto() == null){ +// powerStation.setEto(new BigDecimal("1")); +// } + + // powerStation.setApplyStatus(1); + List list = baseMapper.selectPowerStationPage(page, powerStation); + for(PowerStationVO vo : list){ + vo.setEntryStat(entryStatService.getByPowerStation(vo)); + if(isDuringTime(vo)){ + String during = CommonUtil.calDuringToNow(vo.getLastStatusStart()); + if(vo.getStatus()==2){ + vo.setErrDuring(during); + }else{ + vo.setLastDuringStr(during); + } + + }else{ + vo.setErrDuring(""); + vo.setLastDuringStr(""); + } + vo.setAddress(vo.getAddress().replaceAll(vo.getProvince()+vo.getCity(),"")); + } + return page.setRecords(list); + } + + private boolean isDuringTime(PowerStationVO vo){ + boolean ret = false; + String today = DateUtil.format(new Date(),"yyyyMMdd"); + Date start = DateUtil.parse(today+"080000","yyyyMMddHHmmss"); + Date end = DateUtil.parse(today+"180000","yyyyMMddHHmmss"); + Date now = new Date(); + if(vo.getStatus()!=1){ + if(end.after(now) && start.before(now)){ + ret = true; + } + } + return ret; + } + + @Override + public PowerStationVO getStationDetail(PowerStationEntity powerStation) { + PowerStationEntity entity=null; + if(powerStation.getId()!= null){ + entity= this.getById(powerStation.getId()); + }else if(StringUtil.isNotBlank(powerStation.getStationCode())){ + entity= this.getStationDetailByPowCode(powerStation.getStationCode()); + } + PowerStationVO vo = PowerStationWrapper.build().entityVO(entity); + vo.setEntryStat(entryStatService.realTimeDetail(vo)); + vo.setOverviewVo(alarmInfoMapper.stationAlarm(vo.getOutStationId())); + return vo; + } + + @Override + public PowerStationEntity getStationDetailByPowCode(String powCode) { + return baseMapper.getStationDetailByPowCode(powCode); + } + + @Override + public List getStationListByPowCode(String powCode) { + BladeUser user = AuthUtil.getUser(); + String siteId = null; + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + siteId = site.getId(); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + siteId = authVo.getSiteId(); + } + + return baseMapper.getStationListByPowCode(powCode,siteId); + } + + + @Override + public HomeOverviewVO staticsHomeOverview(Long traderId) { + List outStationIds = this.baseMapper.getOutStationIds(); + HomeOverviewVO vo = monitorInverterStatMapper.staticsHomeViewData(outStationIds); + StationDTO powerStation=new StationDTO(); + OrderListConditionVo ordervo = new OrderListConditionVo(); + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerStation.setOmProviderId(site.getId()); + ordervo.setSiteId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerStation.setOmProviderId(authVo.getSiteId()); + powerStation.setProvince(authVo.getProvinces()); + powerStation.setCity(authVo.getCity()); + powerStation.setDistrict(authVo.getArea()); + ordervo.setSiteId(authVo.getId()); + ordervo.setProvinces(authVo.getProvinces()); + ordervo.setCity(authVo.getCity()); + ordervo.setArea(authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + powerStation.setSiteIds(authVoP.getSiteId()); + powerStation.setProvince(authVoP.getProvinces()); + powerStation.setCity(authVoP.getCity()); + powerStation.setDistrict(authVoP.getArea()); + powerStation.setEntryIds(authVoP.getEntryId()); + powerStation.setCapitalName(authVoP.getPartnerName()); + ordervo.setSiteIds(authVoP.getSiteId()); + ordervo.setProvinces(authVoP.getProvinces()); + ordervo.setCity(authVoP.getCity()); + ordervo.setArea(authVoP.getArea()); + ordervo.setEntryIds(authVoP.getEntryId()); + } + + } + List status = this.baseMapper.staticsStatus(powerStation); + status.forEach(item -> { + switch (item.getStatus()){ + case 1:vo.setOnlineCnt(item.getNum());break; + case 2:vo.setOfflineCnt(item.getNum());break; + case 3:vo.setFaultCnt(item.getNum());break; + } + }); + vo.setTreeCount(vo.getEtd()*0.0054); + vo.setTotalTreeCount(vo.getEto()*0.0054); + + HomeOverviewVO temp = alarmInfoMapper.statusAllAlarm(); + vo.setAlarmDealed(temp.getAlarmDealed()); + vo.setAlarmDealing(temp.getAlarmDealing()); + vo.setAlarmUnDeal(temp.getAlarmUnDeal()); + + OrderHomeVo orderHomeVo = operationOrderMapper.findOrderHomeIndex(ordervo); + vo.setClzCount(orderHomeVo.getFwzCount()); + vo.setYwcCount(orderHomeVo.getYwcCount()); + return vo; + } + + @Override + public void updatePowerStationBrand() { + this.baseMapper.updatePowerStationBrand(); + } + + @Override + public List exportPowerStation(StationDTO powerSta) { + // List powerStationList = this.list(queryWrapper); + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerSta.setOmProviderId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerSta.setOmProviderId(authVo.getSiteId()); + powerSta.setProvince(authVo.getProvinces()); + powerSta.setCity(authVo.getCity()); + powerSta.setDistrict(authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + powerSta.setSiteIds(authVoP.getSiteId()); + if(StringUtil.isBlank(powerSta.getProvince())){ + powerSta.setProvince(authVoP.getProvinces()); + } + + powerSta.setCity(authVoP.getCity()); + powerSta.setDistrict(authVoP.getArea()); + powerSta.setEntryIds(authVoP.getEntryId()); + if(StringUtil.isBlank(powerSta.getCapitalName())){ + powerSta.setCapitalName(authVoP.getPartnerName()); + } + } + } + + /* if(powerSta.getEto() == null){ + powerSta.setEto(new BigDecimal("1")); + } +*/ + //powerSta.setApplyStatus(1); + List powerStationList = baseMapper.selectPowerStationListEx(powerSta); + + // List outIds = powerStationList.stream().map(PowerStationEntity::getOutStationId).collect(Collectors.toList());; + + List statEntityList = entryStatService.list(); + Map outIdToObjMap = statEntityList.stream() // 将list转换为Stream + .collect(Collectors.toMap(MonitorEntryStatEntity::getOutStationId, obj -> obj)); + + List excelList = Lists.newArrayList(); + powerStationList.forEach(powerStation -> { + PowerStationExcel excel = BeanUtil.copyProperties(powerStation, PowerStationExcel.class); + excel.setStatusStr(DictCache.getValue(DictEnum.POWER_STATION_STATUS, powerStation.getStatus())); + //excel.setAddress(powerStation.getDistrict()+powerStation.getAddress()); + + String outStationId = powerStation.getOutStationId(); + + if(StringUtil.isNotBlank(outStationId)){ + MonitorEntryStatEntity entryStat = new MonitorEntryStatEntity(); + for(String str:powerStation.getOutStationId().split(",")){ + MonitorEntryStatEntity entryStatEntity = outIdToObjMap.get(str); + if(entryStatEntity != null){ + if(entryStat.getId()==null){ + BeanUtil.copyProperties(entryStatEntity,entryStat); + }else{ + entryStat.setEtd(CommonUtil.sum(entryStat.getEtd(),entryStatEntity.getEtd())); + entryStat.setEtm(CommonUtil.sum(entryStat.getEtm(),entryStatEntity.getEtm())); + entryStat.setEty(CommonUtil.sum(entryStat.getEty(),entryStatEntity.getEty())); + entryStat.setEta(CommonUtil.sum(entryStat.getEta(),entryStatEntity.getEta())); + } + } + } + /* LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(MonitorEntryStatEntity::getOutStationId,stationIds); + List entryStatList = entryStatService.list(queryWrapper);*/ + + + if(entryStat.getFisGenerateTime()!=null){ + excel.setFisGenTime(DateUtil.formatDateTime(entryStat.getFisGenerateTime())); + } + excel.setEtd(entryStat.getEtd()); + excel.setEtm(entryStat.getEtm()); + excel.setEty(entryStat.getEty()); + excel.setEto(entryStat.getEta()); + + } + excel.initDefaultData(); + //Integer brand=powerStation.getBrand(); + excel.setBrand(DictCache.getValue(DictEnum.DEVICE_BRAND, powerStation.getBrand())); + excel.setActualCapacity(powerStation.getActualCapacity()!=null?powerStation.getActualCapacity().doubleValue():0L); + if(isDuringTime(PowerStationWrapper.build().entityVO(powerStation))){ + String during = CommonUtil.calDuringToNow(powerStation.getLastStatusStart()); + if(powerStation.getStatus()==2){ + excel.setErrDuring(during); + }else{ + excel.setLastDuringStr(during); + } + + }else{ + excel.setErrDuring(""); + excel.setLastDuringStr(""); + } + + excelList.add(excel); + // powerStation.setTypeName(DictCache.getValue(DictEnum.YES_NO, PowerStation.getType())); + }); + return excelList; + } + + @Override + public List getLazyTree(String parentId, String parentName, int level) { + + List result = Lists.newArrayList(); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + queryWrapper.eq(PowerStationEntity::getOmProviderId,site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + queryWrapper.eq(PowerStationEntity::getOmProviderId,authVo.getSiteId()) + .eq(PowerStationEntity::getProvince,authVo.getProvinces()) + .eq(PowerStationEntity::getCity,authVo.getCity()) + .eq(PowerStationEntity::getDistrict,authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + queryWrapper.eq(PowerStationEntity::getOmProviderId,authVoP.getSiteId()); + } + } + + switch (level) { + case 0:{ + queryWrapper + .select(PowerStationEntity::getCapitalCode,PowerStationEntity::getCapitalName) + .groupBy(PowerStationEntity::getCapitalName); + List> listMaps = this.listMaps(queryWrapper); + listMaps.forEach(res->{ + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(true); + String code = (String) res.get("capital_code"); + String name = (String) res.get("capital_name"); + vo.setId(name); + vo.setParentId("0"); + vo.setKey(code); + vo.setTitle(name); + vo.setValue(code); + result.add(vo); + }); + break; + } + case 1:{ + queryWrapper + .select(PowerStationEntity::getProjectCompanyId,PowerStationEntity::getProjectCompanyName) + .eq(PowerStationEntity::getCapitalName, parentName) + .groupBy(PowerStationEntity::getProjectCompanyName); + List> listMaps = this.listMaps(queryWrapper); + listMaps.forEach(res->{ + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(true); + String code = (String) res.get("project_company_id"); + String name = (String) res.get("project_company_name"); + vo.setId(name); + vo.setParentId(parentName); + vo.setKey(code); + vo.setTitle(name); + vo.setValue(code); + result.add(vo); + }); + break; + } + case 2:{ + queryWrapper + .select(PowerStationEntity::getCity) + .eq(PowerStationEntity::getProjectCompanyName, parentName) + .groupBy(PowerStationEntity::getCity); + List> listMaps = this.listMaps(queryWrapper); + listMaps.forEach(res->{ + String city = (String) res.get("city"); + InverterTreeVO vo = new InverterTreeVO(); + vo.setId(parentName+city); + vo.setParentId(parentName); + vo.setHasChildren(true); + vo.setKey(city); + vo.setTitle(city); + vo.setValue(city); + result.add(vo); + }); + break; + } + case 3:{ + queryWrapper.eq(PowerStationEntity::getCity, parentName) + .eq(PowerStationEntity::getProjectCompanyName, parentId); + List listMaps = this.list(queryWrapper); + Set idSet = new HashSet<>(); + listMaps.forEach(res->{ + String treeId = parentName+"-"+res.getAgentName(); + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(true); + vo.setId(treeId); + vo.setParentId(parentId+parentName); + vo.setKey(parentName); + vo.setTitle(res.getAgentName()); + vo.setValue(res.getId()+""); + if(!idSet.contains(treeId)){ + result.add(vo); + idSet.add(treeId); + } + + }); + break; + } + case 4:{ + queryWrapper.eq(PowerStationEntity::getCity, parentId) + .eq(PowerStationEntity::getAgentName, parentName); + List listMaps = this.list(queryWrapper); + listMaps.forEach(res->{ + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(false); + vo.setId(res.getId()+""); + vo.setParentId(parentId+parentName); + vo.setKey(res.getId()+""); + vo.setTitle(res.getOwnerName()+"-"+res.getActualCapacity()+"KW-"+res.getStationCode()); + vo.setValue(res.getId()+""); + result.add(vo); + }); + break; + } + } + + + return result; + } + + @Override + public InverterTreeVO getTotalTree() { + InverterTreeVO treeVo = new InverterTreeVO(); + treeVo.setHasChildren(true); + treeVo.setId("0"); + treeVo.setTitle("全部"); + getChildTree(treeVo,null,null,0); + return treeVo; + } + + private void getChildTree(InverterTreeVO parent,String parentId, String parentName, int level) { + if (level > 4 || parent==null) return; + + List result = Lists.newArrayList(); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + switch (level) { + case 0: { + queryWrapper + .select(PowerStationEntity::getCapitalCode, PowerStationEntity::getCapitalName) + .groupBy(PowerStationEntity::getCapitalName); + List> listMaps = this.listMaps(queryWrapper); + listMaps.forEach(res -> { + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(true); + String code = (String) res.get("capital_code"); + String name = (String) res.get("capital_name"); + vo.setId(name); + vo.setParentId("0"); + vo.setKey(code); + vo.setTitle(name); + vo.setValue(code); + result.add(vo); + }); + break; + } + case 1: { + queryWrapper + .select(PowerStationEntity::getProjectCompanyId, PowerStationEntity::getProjectCompanyName) + .eq(PowerStationEntity::getCapitalName, parentName) + .groupBy(PowerStationEntity::getProjectCompanyName); + List> listMaps = this.listMaps(queryWrapper); + listMaps.forEach(res -> { + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(true); + String code = (String) res.get("project_company_id"); + String name = (String) res.get("project_company_name"); + vo.setId(name); + vo.setParentId(parentName); + vo.setKey(code); + vo.setTitle(name); + vo.setValue(code); + result.add(vo); + }); + break; + } + case 2: { + queryWrapper + .select(PowerStationEntity::getCity) + .eq(PowerStationEntity::getProjectCompanyName, parentName) + .groupBy(PowerStationEntity::getCity); + List> listMaps = this.listMaps(queryWrapper); + listMaps.forEach(res -> { + String city = (String) res.get("city"); + InverterTreeVO vo = new InverterTreeVO(); + vo.setId(parentName + city); + vo.setParentId(parentName); + vo.setHasChildren(true); + vo.setKey(city); + vo.setTitle(city); + vo.setValue(city); + result.add(vo); + }); + break; + } + case 3: { + queryWrapper.eq(PowerStationEntity::getCity, parentName) + .eq(PowerStationEntity::getProjectCompanyName, parentId); + List listMaps = this.list(queryWrapper); + listMaps.forEach(res -> { + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(true); + vo.setId(parentName + "-" + res.getAgentName()); + vo.setParentId(parentId + parentName); + vo.setKey(parentName); + vo.setTitle(res.getAgentName()); + vo.setValue(res.getId() + ""); + result.add(vo); + }); + break; + } + case 4: { + queryWrapper.eq(PowerStationEntity::getCity, parentId) + .eq(PowerStationEntity::getAgentName, parentName); + List listMaps = this.list(queryWrapper); + listMaps.forEach(res -> { + InverterTreeVO vo = new InverterTreeVO(); + vo.setHasChildren(false); + vo.setId(res.getId() + ""); + vo.setParentId(parentId + parentName); + vo.setKey(res.getId() + ""); + vo.setTitle(res.getOwnerName() + "-" + res.getActualCapacity() + "KW-" + res.getStationCode()); + vo.setValue(res.getId() + ""); + result.add(vo); + }); + break; + } + + + } + + if(result.size()==0) { + parent.setHasChildren(false); + }else{ + parent.setHasChildren(true); + parent.setChildren(result); + parent.getChildren().forEach(e->{ + String key1 = e.getId(); + String key2 = e.getTitle(); + int nextLvl = level+1; + if (nextLvl == 3) { + key1 = e.getParentId(); + key2 = e.getTitle(); + } + if (nextLvl == 4) { + key1 = e.getKey(); + key2 = e.getTitle(); + } + getChildTree(e,key1,key2,nextLvl); + }); + } + } + + @Override + public PowerStationEntity getPowerStationByInId(String inId) { + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(PowerStationEntity::getInnerStationId,inId); + return getOne(queryWrapper2); + } + + @Override + public R syncPowerStation(PowerStationDTO dto) { + if(StringUtil.isBlank(dto.getInnerStationId())){ + return R.fail("内部电站ID为空"); + } + +// if(StringUtil.isBlank(dto.getOutStationId())){ +// return R.fail("外部电站ID为空"); +// } + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PowerStationEntity::getInnerStationId,dto.getInnerStationId()); + if(this.count(queryWrapper)>0){ + return R.data(501,null,"电站内部id重复,该电站已同步"); + } + LambdaQueryWrapper queryWrapper2 = new LambdaQueryWrapper<>(); + queryWrapper2.eq(PowerStationEntity::getStationCode,dto.getStationCode()); + if(this.count(queryWrapper2)>0){ + return R.data(501,null,"电站Code重复,该电站已同步"); + } + + PowerStationEntity entity = Objects.requireNonNull(BeanUtil.copyProperties(dto, PowerStationEntity.class)); + entity.init(); + entity.setOutStationId(null); + if(dto.getApplyStatus()==null){ + entity.setApplyStatus(0); + } + entity.setAddress(entity.getProvince()+entity.getCity()+entity.getDistrict()+entity.getAddress()); + this.save(entity); + + return R.success("添加电站成功"); + } + + @Override + public R>> getMapdistribution() { + + String omProviderId = siteService.getOmProviderId(); + + List> result = Lists.newArrayList(); + + List list = this.baseMapper.getStatusByProvince(omProviderId); + Map current = null; + String currntName = ""; + for(StaticsStatusVO vo : list){ + if(!StringUtil.equals(currntName,vo.getName())){ + currntName = vo.getName(); + if(current!=null){ + result.add(current); + } + current = Maps.newHashMap(); + current.put("province",currntName); + current.put("total",vo.getNum()); + if(vo.getStatus()!=1){ + current.put("error",vo.getNum()); + }else{ + current.put("error",0); + } + }else{ + current.put("total",(int)current.get("total")+vo.getNum()); + if(vo.getStatus()!=1){ + current.put("error",vo.getNum()+(int)current.get("error")); + } + } + } + result.add(current); + + return R.data(result); + } + + @Override + public IPage queryListForYX(IPage page,StationDTO powerStation) { + + List yxList = Lists.newArrayList(); + List list = baseMapper.selectPowerStationList(page,powerStation); + + for(PowerStationVO vo : list){ + YXPowerStationDTO dto = PowerStationWrapper.build().entityYXDTO(vo); + dto.setAddress(vo.getDistrict()+vo.getAddress()); + dto.setNbqSn(deviceMapper.queryIdsByStation(vo.getId())); + MonitorEntryStatVO entryVO = entryStatService.getByPowerStation(vo); + if(entryVO!=null){ + dto.setEtd(entryVO.getEtd()); + dto.setEtm(entryVO.getEtm()); + dto.setEty(entryVO.getEty()); + dto.setEta(entryVO.getEta()); + } + yxList.add(dto); + } + + return page.setRecords(yxList); + } + + @Override + public Map staticsStatus() { + StationDTO powerStation=new StationDTO(); + Map map = Maps.newHashMap(); + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerStation.setOmProviderId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerStation.setOmProviderId(authVo.getSiteId()); + powerStation.setProvince(authVo.getProvinces()); + powerStation.setCity(authVo.getCity()); + powerStation.setDistrict(authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + powerStation.setSiteIds(authVoP.getSiteId()); + powerStation.setProvince(authVoP.getProvinces()); + powerStation.setCity(authVoP.getCity()); + powerStation.setDistrict(authVoP.getArea()); + powerStation.setEntryIds(authVoP.getEntryId()); + powerStation.setCapitalName(authVoP.getPartnerName()); + + } + + } + powerStation.setApplyStatus(1); + for(StaticsStatusVO vo : this.baseMapper.staticsStatus(powerStation)){ + map.put(String.valueOf(vo.getStatus()),vo.getNum()); + } + return map; + } + + @Override + public Map staticsYkStatus() { + StationDTO powerStation=new StationDTO(); + Map map = Maps.newHashMap(); + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + powerStation.setOmProviderId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + powerStation.setOmProviderId(authVo.getSiteId()); + powerStation.setProvince(authVo.getProvinces()); + powerStation.setCity(authVo.getCity()); + powerStation.setDistrict(authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=platformEmployeeService.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + powerStation.setSiteIds(authVoP.getSiteId()); + powerStation.setProvince(authVoP.getProvinces()); + powerStation.setCity(authVoP.getCity()); + powerStation.setDistrict(authVoP.getArea()); + powerStation.setEntryIds(authVoP.getEntryId()); + + powerStation.setCapitalName(authVoP.getPartnerName()); + } + + } + powerStation.setSource("2"); + for(StaticsStatusVO vo : this.baseMapper.staticsStatus(powerStation)){ + map.put(String.valueOf(vo.getStatus()),vo.getNum()); + } + return map; + } + + @Override + public PowerGenerationTrendCoordinatesVO powerGenerationTrendsHome(String type, String traderId) { + BladeUser user = AuthUtil.getUser(); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + traderId=site.getId(); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + traderId=authVo.getSiteId(); + } + String redisKey = "POWER_GENERATION_TRENDS_HOME:"+type+traderId; + PowerGenerationTrendCoordinatesVO vo = bladeRedis.get(redisKey); + if(vo!=null){ + return vo; + } + PowerGenerationTrendCoordinatesVO trend = new PowerGenerationTrendCoordinatesVO(); + List xAxis = new ArrayList<>(); + List yAxisForElectricity = new ArrayList<>(); + + xAxis.add("0"); + yAxisForElectricity.add(0); + + List outStationIds = this.baseMapper.getOutStationIds(); + + if("day".equals(type)){ //按日统计 + String time = DateUtil.format(new Date(),"yyyy-MM-dd"); + Map resMap = dailyStatMapper.overviewHourStatic(null,outStationIds, time,traderId); + for (int i = 1; i < 25; i++) { + if (i < 10) { + xAxis.add("0" + i); + } else { + xAxis.add(String.valueOf(i)); + } + if (resMap == null) { + yAxisForElectricity.add(0d); + } else { + if (i == 1) { + yAxisForElectricity.add(resMap.get("h" + i)); + } else { + BigDecimal v = new BigDecimal(resMap.get("h" + i).toString()).subtract(CommonUtil.getPreHourMax(resMap,i)); + if (v.compareTo(BigDecimal.ZERO) < 0) { + yAxisForElectricity.add(0); + } else { + yAxisForElectricity.add(v); + } + } + } + } + }else if("week".equals(type)){ //按日统计 + List> weekList = monthStatMapper.overviewLast7Days(null, outStationIds,traderId); + String month = DateUtil.format(new Date(),"MM"); + for(Map map : weekList){ + xAxis.add(map.get("DAY").toString()); + Double fdl = (Double) map.get("energy"); + yAxisForElectricity.add(fdl); + } + }else if("month".equals(type)){ //按日统计 + String time = DateUtil.format(new Date(),"yyyy-MM"); + List> monList = monthStatMapper.overviewMonthStatic(null, outStationIds,time,traderId); + Double fdl = null; + +// monList.forEach(mon -> { +// xAxis.add(mon.get("day").toString()); +// Double fdl = (Double) mon.get("energy"); +// yAxisForElectricity.add(fdl); +// }); + + for (int i = 1; i <= getDaysOfMonth(time); i++) { + if (i < 10) { + xAxis.add("0" + i); + } else { + xAxis.add(String.valueOf(i)); + } + fdl = 0d; + for (Map map : monList) { + if (Integer.valueOf(map.get("day").toString()) == i) { + fdl = (Double) map.get("energy"); + } + } + yAxisForElectricity.add(fdl); + } + }else if("year".equals(type)){ //按月统计 + String year=DateUtil.format(new Date(),"yyyy"); + List yerList = yearStatMapper.overviewYearStatic(null, outStationIds,Integer.valueOf(year),traderId); + Double fdl = null; + for (int i = 1; i <= 12; i++) { + if (i < 10) { + xAxis.add("0" + i); + } else { + xAxis.add(String.valueOf(i)); + } + fdl = 0d; + for (MonitorEntryYearStatEntity map : yerList) { + if (map.getMonth() == i) { + fdl += map.getEnergy(); + } + } + if (fdl != null) { + yAxisForElectricity.add(fdl); + } else { + yAxisForElectricity.add(0d); + } + } + } + + trend.setXAxis(xAxis); + trend.setYAxisForElectricity(CommonUtil.retainNum(yAxisForElectricity,1)); + + List powerList = CommonUtil.repeatNum(xAxis.size(),0D); + trend.setYAxisForPower(powerList); + + bladeRedis.setEx(redisKey,trend,15*60L); + return trend; + } + + @Override + public PowerGenerationTrendCoordinatesVO statByProjectCompany(String type, String traderId) { + String redisKey = "HOME_PROJECT_COMPANY:"+type; + + PowerGenerationTrendCoordinatesVO vo = bladeRedis.get(redisKey); + if(vo!=null){ + return vo; + } + + //查询出来所有电站 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List stationEntityList = this.list(queryWrapper); + + //用来保存所有的公司与电站ID的关联 + Map> companyStationIdsMap = Maps.newHashMap(); + + stationEntityList.forEach(entity->{ + if(StringUtil.isNoneBlank(entity.getProjectCompanyName())){ + List ids; + if(companyStationIdsMap.containsKey(entity.getProjectCompanyName())){ + ids = companyStationIdsMap.get(entity.getProjectCompanyName()); + }else{ + ids = Lists.newArrayList(); + } + ids.add(entity.getOutStationId()); + if(!companyStationIdsMap.containsKey(entity.getProjectCompanyName())){ + companyStationIdsMap.put(entity.getProjectCompanyName(),ids); + } + } + }); + + List xAxis = new ArrayList<>(); + List yAxisForElectricity = new ArrayList<>(); + List powerList = new ArrayList<>(); + PowerGenerationTrendCoordinatesVO trend = new PowerGenerationTrendCoordinatesVO(); + + Map top5map = Maps.newHashMap(); + + companyStationIdsMap.forEach((companyName, stationIds) -> { + String year = DateUtil.format(new Date(),"yyyy"); + String month = DateUtil.format(new Date(),"MM"); + Double yAxis = 0d; + if("year".equals(type)){ + yAxis = yearStatMapper.sumYearPowerByStationIds(stationIds,year,null); + }else if("month".equals(type)){ + yAxis = yearStatMapper.sumYearPowerByStationIds(stationIds,year,month); + }else if("week".equals(type)){ + yAxis = monthStatMapper.sumLast7DaysEnergy(stationIds); + }else{ + yAxis = entryStatMapper.sumDayPowerByStationIds(stationIds); + } + + if(yAxis!=null){ + if(top5map.size()<5){ + top5map.put(companyName,yAxis); + }else{ + for (Map.Entry entry : top5map.entrySet()) { + String key = entry.getKey(); + Double value = entry.getValue(); + if(yAxis>value){ + top5map.remove(key); + top5map.put(companyName,yAxis); + break; + } + } + } + } + + + }); + + List vals = new ArrayList<>(top5map.values()); + +// yAxisForElectricity.addAll(top5map.values()); + + Collections.sort(vals,new Comparator() { + public int compare(Double a, Double b) { + return a.compareTo(b) ; // 降序排序 + } + }); + + for(int i=0;i entry : top5map.entrySet()) { + String key = entry.getKey(); + Double value = entry.getValue(); + if(vals.get(i)==value){ + xAxis.add(key); + yAxisForElectricity.add(value); + } + } + } + + + + trend.setXAxis(xAxis); + trend.setYAxisForElectricity(yAxisForElectricity); + trend.setYAxisForPower(powerList); + + bladeRedis.setEx(redisKey,trend,5*60L); + return trend; + } + + @Override + public Map powerGenerationTrends(Long stationId, String type, String time,String stationCode) { + PowerStationEntity powerStation = null; + if(stationId != null){ + powerStation = this.getById(stationId); + }else if(StringUtil.isNotBlank(stationCode)){ + powerStation = this.getStationDetailByPowCode(stationCode); + } + + return powerGenTrendsByStation(type, time, powerStation); + } + + @Override + public PowerStationEntity getByInnerId(String innerStationId) { + if(StringUtil.isBlank(innerStationId)) return null; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PowerStationEntity::getInnerStationId,innerStationId); + PowerStationEntity entity = this.getOne(queryWrapper); + return entity; + } + + @Override + public PowerStationEntity getByOutStationId(String outStationId) { + if(StringUtil.isBlank(outStationId)) return null; + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PowerStationEntity::getOutStationId,outStationId); + List list = this.list(queryWrapper); + return CollectionUtil.isNotEmpty(list)?list.get(0):null; + } + + @Override + public Map powerGenTrendsByInnerId(String innerStationId, String type, String time) { + PowerStationEntity entity = this.getByInnerId(innerStationId); + if(entity==null){return Maps.newHashMap();} + return powerGenTrendsByStation(type, time, entity); + } + + private Map powerGenTrendsByStation(String type, String time, PowerStationEntity powerStation) { + List XStr= Lists.newArrayList(); //X轴 + List fdlY= Lists.newArrayList(); //发电量的Y轴 + + XStr.add("0"); + fdlY.add("0"); + + + List outStationIds = Lists.newArrayList(); + if(powerStation.getOutStationId()!=null){ + for(String str:powerStation.getOutStationId().split(",")){ + outStationIds.add(str); + } + }else{ + Map result=Maps.newHashMap(); + result.put("XStr", XStr); + result.put("fdlY",fdlY); + return result; + } + BigDecimal total= BigDecimal.ZERO; + if("day".equals(type)){ //按日统计 + Map resMap = dailyStatMapper.overviewHourStatic(null,outStationIds, time,""); + for (int i = 1; i < 25; i++) { + if (i < 10) { + XStr.add("0" + i); + } else { + XStr.add(String.valueOf(i)); + } + if (resMap == null) { + fdlY.add(0); + } else { + if (i == 1) { + fdlY.add(resMap.get("h" + i)); + total = new BigDecimal(resMap.get("h" + i).toString()); + } else { + BigDecimal v = new BigDecimal(resMap.get("h" + i).toString()).subtract(CommonUtil.getPreHourMax(resMap,i)); + if (v.compareTo(BigDecimal.ZERO) < 0) { + fdlY.add(0); + } else { + fdlY.add(v.setScale(2, RoundingMode.HALF_UP)); + total = total.add(v); + } + } + } + } + }else if("month".equals(type)){ //按月统计 + List> monList = monthStatMapper.overviewMonthStatic(null, outStationIds, time,""); + Double fdl = null; + for (int i = 1; i <= getDaysOfMonth(time); i++) { + if (i < 10) { + XStr.add("0" + i); + } else { + XStr.add(String.valueOf(i)); + } + fdl = 0d; + for (Map map : monList) { + if (Integer.valueOf(map.get("day").toString()) == i) { + fdl = (Double) map.get("energy"); + + } + } + fdlY.add(CommonUtil.round(fdl,3)); + } + MonitorEntryStatDTO dto = entryStatMapper.findByOutStationIds(outStationIds); + total = dto != null ?new BigDecimal(dto.getEtm()):BigDecimal.ZERO; + }else if("week".equals(type)){ //按日统计 + List> weekList = monthStatMapper.overviewLast7Days(null, outStationIds,""); + Double fdl = null; + + for(Map map : weekList){ + XStr.add(map.get("DAY").toString()); + fdl = (Double) map.get("energy"); + fdlY.add(CommonUtil.round(fdl,3)); + total = total.add(new BigDecimal(fdl)); + } + }else if("year".equals(type)){ //按年统计 + List yerList = yearStatMapper.overviewYearStatic(null,outStationIds, 2024,""); + Double fdl = null; + for (int i = 1; i <= 12; i++) { + if (i < 10) { + XStr.add("0" + i); + } else { + XStr.add(String.valueOf(i)); + } + fdl = 0d; + for (MonitorEntryYearStatEntity map : yerList) { + if (map.getMonth() == i) { + fdl = map.getEnergy(); + break; + } + } + if (fdl != null) { + fdlY.add(CommonUtil.round(fdl,3)); + total = total.add(new BigDecimal(fdl)); + } else { + fdlY.add(0d); + } + } + } + Map result=Maps.newHashMap(); + result.put("XStr", XStr); + result.put("fdlY",fdlY); + result.put("total",total.setScale(4, RoundingMode.HALF_UP)); + return result; + } + + public static int getDaysOfMonth(String dateStr) { + LocalDate date = LocalDate.parse(dateStr + "-01"); + return date.lengthOfMonth(); + } + + @Override + public IPage findMyPowerStation(IPage page, String empId,String siteId,String condition) { + List list = baseMapper.findMyPowerStation(page, empId,siteId,condition); + return page.setRecords(list); + } + + + @Override + public List getSelectPowerStaion(Map map){ + return baseMapper.getSelectPowerStaion(map); + } + + @Override + public R importSite(List data) { + //siteService + int shiB = 0, m=0; + List findSiteList =siteService.findSiteList(); + Map mapsite = findSiteList.stream().collect(Collectors.toMap(e -> e.getName().trim(), e -> e)); + StringBuilder sf = new StringBuilder(); + BladeUser user= AuthUtil.getUser(); + //获取所有运维商 + List entry = Lists.newArrayList(); + for(EntrySiteExcel en :data){ + if(mapsite.containsKey(en.getName().trim())){ + OperationSiteVO site = mapsite.get(en.getName().trim()); + PowerStationEntity powerStation = getStationDetailByPowCode(en.getStationCode().trim()); + if(powerStation==null){ + sf.append(en.getStationCode()+"电站系统中未查到。"); + shiB++; + continue; + } + powerStation.setOmProviderName(site.getName()); + powerStation.setOmProviderId(site.getId()); + powerStation.setBindingUnbindId(user.getUserId()); + entry.add(powerStation); + m++; + }else{ + sf.append(en.getName()+"系统中未查到"); + shiB++; + } + } + if(entry.size()>0){ + if(!updateBatchById(entry)){ + log.debug("更新数据失败=============="); + shiB = data.size(); + } + } + + if(shiB>0){ + StringBuilder sb = new StringBuilder("批量绑定运维商失败."); + sb.append("成功:"+m+"条;"); + sb.append("失败:"+shiB+"条;"); + sb.append("失败原因:"+sf.toString()); + return R.fail(sb.toString()); + }else{ + return R.success("批量绑定运维商成功"+m+"条"); + } + } + + @Override + public boolean batchUpdateStation(List stationList) { + List list = Lists.newArrayList(); + stationList.stream().forEach(station->{ + PowerStationEntity entity = this.getPowerStationByInId(station.getInnerStationId()); + entity.setStartGenDate(station.getStartGenDate()); + list.add(entity); + + }); + return updateBatchById(list); + } + + @Override + public void importPaymentTime(List list) { + for(EntryPaymentTimeExcel paymentTimeExcel:list){ + try{ + if(paymentTimeExcel.getStationCode()==null || paymentTimeExcel.getPaymentTime()==null){ + continue; + } + PowerStationEntity powerStation = getStationDetailByPowCode(paymentTimeExcel.getStationCode().trim()); + if(powerStation==null || powerStation.getPaymentTime()!=null){ + continue; + }else{ + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(PowerStationEntity::getId,powerStation.getId()); + updateWrapper.set(PowerStationEntity::getPaymentTime,paymentTimeExcel.getPaymentTime()); + Date warrantyTime=DateUtils.addYears(paymentTimeExcel.getPaymentTime(),1); + updateWrapper.set(PowerStationEntity::getWarrantyExpiresTime,warrantyTime); + update(updateWrapper); + LambdaUpdateWrapper orderEntityLambdaUpdateWrapper=new LambdaUpdateWrapper<>(); + orderEntityLambdaUpdateWrapper.eq(OperationOrderEntity::getEntryId,powerStation.getInnerStationId()); + orderEntityLambdaUpdateWrapper.set(OperationOrderEntity::getPaymentTime,paymentTimeExcel.getPaymentTime()); + orderEntityLambdaUpdateWrapper.set(OperationOrderEntity::getWarrantyExpiresTime,warrantyTime); + operationOrderMapper.update(orderEntityLambdaUpdateWrapper); + } + }catch (Exception e){ + e.printStackTrace(); + log.error("importPaymentTime e:",e); + } + + } + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.java new file mode 100644 index 0000000..0bb3a53 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springblade.modules.nh.pojo.vo.AlarmCodeVO; +import java.util.Objects; + +/** + * 故障代码 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-06 + */ +public class AlarmCodeWrapper extends BaseEntityWrapper { + + public static AlarmCodeWrapper build() { + return new AlarmCodeWrapper(); + } + + @Override + public AlarmCodeVO entityVO(AlarmCodeEntity alarmCode) { + AlarmCodeVO alarmCodeVO = Objects.requireNonNull(BeanUtil.copyProperties(alarmCode, AlarmCodeVO.class)); + + //User createUser = UserCache.getUser(alarmCode.getCreateUser()); + //User updateUser = UserCache.getUser(alarmCode.getUpdateUser()); + //alarmCodeVO.setCreateUserName(createUser.getName()); + //alarmCodeVO.setUpdateUserName(updateUser.getName()); + + return alarmCodeVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/AlarmInfoWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/AlarmInfoWrapper.java new file mode 100644 index 0000000..2ecb2aa --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/AlarmInfoWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.vo.AlarmInfoVO; +import java.util.Objects; + +/** + * 设备告警信息表 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-03 + */ +public class AlarmInfoWrapper extends BaseEntityWrapper { + + public static AlarmInfoWrapper build() { + return new AlarmInfoWrapper(); + } + + @Override + public AlarmInfoVO entityVO(AlarmInfoEntity alarmInfo) { + AlarmInfoVO alarmInfoVO = Objects.requireNonNull(BeanUtil.copyProperties(alarmInfo, AlarmInfoVO.class)); + + //User createUser = UserCache.getUser(alarmInfo.getCreateUser()); + //User updateUser = UserCache.getUser(alarmInfo.getUpdateUser()); + //alarmInfoVO.setCreateUserName(createUser.getName()); + //alarmInfoVO.setUpdateUserName(updateUser.getName()); + + return alarmInfoVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/DeviceWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/DeviceWrapper.java new file mode 100644 index 0000000..d7cc015 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/DeviceWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.pojo.vo.DeviceVO; +import java.util.Objects; + +/** + * 设备管理 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-05-31 + */ +public class DeviceWrapper extends BaseEntityWrapper { + + public static DeviceWrapper build() { + return new DeviceWrapper(); + } + + @Override + public DeviceVO entityVO(DeviceEntity device) { + DeviceVO deviceVO = Objects.requireNonNull(BeanUtil.copyProperties(device, DeviceVO.class)); + + //User createUser = UserCache.getUser(device.getCreateUser()); + //User updateUser = UserCache.getUser(device.getUpdateUser()); + //deviceVO.setCreateUserName(createUser.getName()); + //deviceVO.setUpdateUserName(updateUser.getName()); + + return deviceVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.java new file mode 100644 index 0000000..ea776e2 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.InefficientSettingEntity; +import org.springblade.modules.nh.pojo.vo.InefficientSettingVO; +import java.util.Objects; + +/** + * 低效电站设置 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-14 + */ +public class InefficientSettingWrapper extends BaseEntityWrapper { + + public static InefficientSettingWrapper build() { + return new InefficientSettingWrapper(); + } + + @Override + public InefficientSettingVO entityVO(InefficientSettingEntity inefficientSetting) { + InefficientSettingVO inefficientSettingVO = Objects.requireNonNull(BeanUtil.copyProperties(inefficientSetting, InefficientSettingVO.class)); + + //User createUser = UserCache.getUser(inefficientSetting.getCreateUser()); + //User updateUser = UserCache.getUser(inefficientSetting.getUpdateUser()); + //inefficientSettingVO.setCreateUserName(createUser.getName()); + //inefficientSettingVO.setUpdateUserName(updateUser.getName()); + + return inefficientSettingVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/InverterDataWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/InverterDataWrapper.java new file mode 100644 index 0000000..44de53c --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/InverterDataWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.nh.pojo.vo.InverterDataVO; +import java.util.Objects; + +/** + * 逆变器数据表 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-05-31 + */ +public class InverterDataWrapper extends BaseEntityWrapper { + + public static InverterDataWrapper build() { + return new InverterDataWrapper(); + } + + @Override + public InverterDataVO entityVO(InverterDataEntity inverterData) { + InverterDataVO inverterDataVO = Objects.requireNonNull(BeanUtil.copyProperties(inverterData, InverterDataVO.class)); + + //User createUser = UserCache.getUser(inverterData.getCreateUser()); + //User updateUser = UserCache.getUser(inverterData.getUpdateUser()); + //inverterDataVO.setCreateUserName(createUser.getName()); + //inverterDataVO.setUpdateUserName(updateUser.getName()); + + return inverterDataVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/InverterUapWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/InverterUapWrapper.java new file mode 100644 index 0000000..abca73f --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/InverterUapWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.InverterUapEntity; +import org.springblade.modules.nh.pojo.vo.InverterUapVO; +import java.util.Objects; + +/** + * 逆变器电流电压功率数据 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-11-21 + */ +public class InverterUapWrapper extends BaseEntityWrapper { + + public static InverterUapWrapper build() { + return new InverterUapWrapper(); + } + + @Override + public InverterUapVO entityVO(InverterUapEntity inverterUap) { + InverterUapVO inverterUapVO = Objects.requireNonNull(BeanUtil.copyProperties(inverterUap, InverterUapVO.class)); + + //User createUser = UserCache.getUser(inverterUap.getCreateUser()); + //User updateUser = UserCache.getUser(inverterUap.getUpdateUser()); + //inverterUapVO.setCreateUserName(createUser.getName()); + //inverterUapVO.setUpdateUserName(updateUser.getName()); + + return inverterUapVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryDailyStatWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryDailyStatWrapper.java new file mode 100644 index 0000000..aec1a25 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryDailyStatWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.MonitorEntryDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryDailyStatVO; +import java.util.Objects; + +/** + * 电站日统计数据 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-02 + */ +public class MonitorEntryDailyStatWrapper extends BaseEntityWrapper { + + public static MonitorEntryDailyStatWrapper build() { + return new MonitorEntryDailyStatWrapper(); + } + + @Override + public MonitorEntryDailyStatVO entityVO(MonitorEntryDailyStatEntity monitorEntryDailyStat) { + MonitorEntryDailyStatVO monitorEntryDailyStatVO = Objects.requireNonNull(BeanUtil.copyProperties(monitorEntryDailyStat, MonitorEntryDailyStatVO.class)); + + //User createUser = UserCache.getUser(monitorEntryDailyStat.getCreateUser()); + //User updateUser = UserCache.getUser(monitorEntryDailyStat.getUpdateUser()); + //monitorEntryDailyStatVO.setCreateUserName(createUser.getName()); + //monitorEntryDailyStatVO.setUpdateUserName(updateUser.getName()); + + return monitorEntryDailyStatVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryMonthStatWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryMonthStatWrapper.java new file mode 100644 index 0000000..48c73e9 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryMonthStatWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.MonitorEntryMonthStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryMonthStatVO; +import java.util.Objects; + +/** + * 电站月统计数据 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-02 + */ +public class MonitorEntryMonthStatWrapper extends BaseEntityWrapper { + + public static MonitorEntryMonthStatWrapper build() { + return new MonitorEntryMonthStatWrapper(); + } + + @Override + public MonitorEntryMonthStatVO entityVO(MonitorEntryMonthStatEntity monitorEntryMonthStat) { + MonitorEntryMonthStatVO monitorEntryMonthStatVO = Objects.requireNonNull(BeanUtil.copyProperties(monitorEntryMonthStat, MonitorEntryMonthStatVO.class)); + + //User createUser = UserCache.getUser(monitorEntryMonthStat.getCreateUser()); + //User updateUser = UserCache.getUser(monitorEntryMonthStat.getUpdateUser()); + //monitorEntryMonthStatVO.setCreateUserName(createUser.getName()); + //monitorEntryMonthStatVO.setUpdateUserName(updateUser.getName()); + + return monitorEntryMonthStatVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.java new file mode 100644 index 0000000..a5ed0e8 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.dto.MonitorEntryStatDTO; +import org.springblade.modules.nh.pojo.entity.MonitorEntryStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryStatVO; +import java.util.Objects; + +/** + * 外部电站同步 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-01 + */ +public class MonitorEntryStatWrapper extends BaseEntityWrapper { + + public static MonitorEntryStatWrapper build() { + return new MonitorEntryStatWrapper(); + } + + @Override + public MonitorEntryStatVO entityVO(MonitorEntryStatEntity monitorEntryStat) { + if(monitorEntryStat==null){ + return null; + } + MonitorEntryStatVO monitorEntryStatVO = Objects.requireNonNull(BeanUtil.copyProperties(monitorEntryStat, MonitorEntryStatVO.class)); + + //User createUser = UserCache.getUser(monitorEntryStat.getCreateUser()); + //User updateUser = UserCache.getUser(monitorEntryStat.getUpdateUser()); + //monitorEntryStatVO.setCreateUserName(createUser.getName()); + //monitorEntryStatVO.setUpdateUserName(updateUser.getName()); + + return monitorEntryStatVO; + } + + public MonitorEntryStatDTO entityDTO(MonitorEntryStatEntity monitorEntryStat) { + if(monitorEntryStat==null){ + return null; + } + MonitorEntryStatDTO dto = Objects.requireNonNull(BeanUtil.copyProperties(monitorEntryStat, MonitorEntryStatDTO.class)); + + return dto; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.java new file mode 100644 index 0000000..75b4037 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.MonitorEntryYearStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorEntryYearStatVO; +import java.util.Objects; + +/** + * 电站能量按年统计 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-02 + */ +public class MonitorEntryYearStatWrapper extends BaseEntityWrapper { + + public static MonitorEntryYearStatWrapper build() { + return new MonitorEntryYearStatWrapper(); + } + + @Override + public MonitorEntryYearStatVO entityVO(MonitorEntryYearStatEntity monitorEntryYearStat) { + MonitorEntryYearStatVO monitorEntryYearStatVO = Objects.requireNonNull(BeanUtil.copyProperties(monitorEntryYearStat, MonitorEntryYearStatVO.class)); + + //User createUser = UserCache.getUser(monitorEntryYearStat.getCreateUser()); + //User updateUser = UserCache.getUser(monitorEntryYearStat.getUpdateUser()); + //monitorEntryYearStatVO.setCreateUserName(createUser.getName()); + //monitorEntryYearStatVO.setUpdateUserName(updateUser.getName()); + + return monitorEntryYearStatVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterDailyStatWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterDailyStatWrapper.java new file mode 100644 index 0000000..f8cd671 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterDailyStatWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.MonitorInverterDailyStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterDailyStatVO; +import java.util.Objects; + +/** + * 逆变器日数据 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-07 + */ +public class MonitorInverterDailyStatWrapper extends BaseEntityWrapper { + + public static MonitorInverterDailyStatWrapper build() { + return new MonitorInverterDailyStatWrapper(); + } + + @Override + public MonitorInverterDailyStatVO entityVO(MonitorInverterDailyStatEntity monitorInverterDailyStat) { + MonitorInverterDailyStatVO monitorInverterDailyStatVO = Objects.requireNonNull(BeanUtil.copyProperties(monitorInverterDailyStat, MonitorInverterDailyStatVO.class)); + + //User createUser = UserCache.getUser(monitorInverterDailyStat.getCreateUser()); + //User updateUser = UserCache.getUser(monitorInverterDailyStat.getUpdateUser()); + //monitorInverterDailyStatVO.setCreateUserName(createUser.getName()); + //monitorInverterDailyStatVO.setUpdateUserName(updateUser.getName()); + + return monitorInverterDailyStatVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterStatWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterStatWrapper.java new file mode 100644 index 0000000..18bd8a7 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/MonitorInverterStatWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.MonitorInverterStatEntity; +import org.springblade.modules.nh.pojo.vo.MonitorInverterStatVO; +import java.util.Objects; + +/** + * 厂家逆变器表 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-02 + */ +public class MonitorInverterStatWrapper extends BaseEntityWrapper { + + public static MonitorInverterStatWrapper build() { + return new MonitorInverterStatWrapper(); + } + + @Override + public MonitorInverterStatVO entityVO(MonitorInverterStatEntity monitorInverterStat) { + MonitorInverterStatVO monitorInverterStatVO = Objects.requireNonNull(BeanUtil.copyProperties(monitorInverterStat, MonitorInverterStatVO.class)); + + //User createUser = UserCache.getUser(monitorInverterStat.getCreateUser()); + //User updateUser = UserCache.getUser(monitorInverterStat.getUpdateUser()); + //monitorInverterStatVO.setCreateUserName(createUser.getName()); + //monitorInverterStatVO.setUpdateUserName(updateUser.getName()); + + return monitorInverterStatVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/PowerStationInefficientWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/PowerStationInefficientWrapper.java new file mode 100644 index 0000000..e9ba66b --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/PowerStationInefficientWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.entity.PowerStationInefficientEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationInefficientVO; +import java.util.Objects; + +/** + * 低效电站 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-06-14 + */ +public class PowerStationInefficientWrapper extends BaseEntityWrapper { + + public static PowerStationInefficientWrapper build() { + return new PowerStationInefficientWrapper(); + } + + @Override + public PowerStationInefficientVO entityVO(PowerStationInefficientEntity powerStationInefficient) { + PowerStationInefficientVO powerStationInefficientVO = Objects.requireNonNull(BeanUtil.copyProperties(powerStationInefficient, PowerStationInefficientVO.class)); + + //User createUser = UserCache.getUser(powerStationInefficient.getCreateUser()); + //User updateUser = UserCache.getUser(powerStationInefficient.getUpdateUser()); + //powerStationInefficientVO.setCreateUserName(createUser.getName()); + //powerStationInefficientVO.setUpdateUserName(updateUser.getName()); + + return powerStationInefficientVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/nh/wrapper/PowerStationWrapper.java b/src/main/java/org/springblade/modules/nh/wrapper/PowerStationWrapper.java new file mode 100644 index 0000000..e8da859 --- /dev/null +++ b/src/main/java/org/springblade/modules/nh/wrapper/PowerStationWrapper.java @@ -0,0 +1,99 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.nh.wrapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.nh.pojo.dto.open.YXPowerStationDTO; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.pojo.vo.PowerStationVO; +import org.springblade.modules.nh.pojo.vo.StationStaticsVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 电站 包装类,返回视图层所需的字段 + * + * @author AlexWang + * @since 2024-05-31 + */ +public class PowerStationWrapper extends BaseEntityWrapper { + + public static PowerStationWrapper build() { + return new PowerStationWrapper(); + } + + @Override + public PowerStationVO entityVO(PowerStationEntity powerStation) { + PowerStationVO powerStationVO = Objects.requireNonNull(BeanUtil.copyProperties(powerStation, PowerStationVO.class)); + + //User createUser = UserCache.getUser(powerStation.getCreateUser()); + //User updateUser = UserCache.getUser(powerStation.getUpdateUser()); + //powerStationVO.setCreateUserName(createUser.getName()); + //powerStationVO.setUpdateUserName(updateUser.getName()); + + return powerStationVO; + } + + public IPage pageStaticsVO(IPage pages) { + List records = this.staticsListVO(pages.getRecords()); + IPage pageVo = new Page(pages.getCurrent(), pages.getSize(), pages.getTotal()); + pageVo.setRecords(records); + return pageVo; + } + + public List staticsListVO(List list) { + return (List)list.stream().map(this::staticsVO).collect(Collectors.toList()); + } + + public StationStaticsVO staticsVO(PowerStationEntity powerStation) { + + StationStaticsVO stationStaticsVO = Objects.requireNonNull(BeanUtil.copyProperties(powerStation, StationStaticsVO.class)); + + //User createUser = UserCache.getUser(powerStation.getCreateUser()); + //User updateUser = UserCache.getUser(powerStation.getUpdateUser()); + //powerStationVO.setCreateUserName(createUser.getName()); + //powerStationVO.setUpdateUserName(updateUser.getName()); + + return stationStaticsVO; + } + + public YXPowerStationDTO entityYXDTO(PowerStationEntity powerStation) { + YXPowerStationDTO dto = Objects.requireNonNull(BeanUtil.copyProperties(powerStation, YXPowerStationDTO.class)); + + //User createUser = UserCache.getUser(powerStation.getCreateUser()); + //User updateUser = UserCache.getUser(powerStation.getUpdateUser()); + //powerStationVO.setCreateUserName(createUser.getName()); + //powerStationVO.setUpdateUserName(updateUser.getName()); + + return dto; + } + +} diff --git a/src/main/java/org/springblade/modules/operation/constant/SourceConstants.java b/src/main/java/org/springblade/modules/operation/constant/SourceConstants.java new file mode 100644 index 0000000..c204419 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/constant/SourceConstants.java @@ -0,0 +1,30 @@ +package org.springblade.modules.operation.constant; + +public class SourceConstants { + + public static final String ZERO="0"; + public static final String ONE="1"; + public static final String TWO="2"; + public static final String THREE="3"; + public static final String FOUR="4"; + + public static final String TYPR_GW="gw"; + + public static final String TYPR_ZY="zy"; + + + /** + * 状态 + */ + public static final String STATUS_ZERO="0"; + + public static final String STATUS_ONE="1"; + + public static final String STATUS_TWO="2"; + + + + + + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/AnnouncementReadinfoController.java b/src/main/java/org/springblade/modules/operation/controller/AnnouncementReadinfoController.java new file mode 100644 index 0000000..96e9477 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/AnnouncementReadinfoController.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.operation.pojo.entity.AnnouncementReadinfoEntity; +import org.springblade.modules.operation.service.IAnnouncementReadinfoService; +import org.springframework.web.bind.annotation.*; +import org.springblade.core.boot.ctrl.BladeController; + +/** + * 平台通知查看明细 控制器 + * + * @author lzp + * @since 2024-06-25 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/announcementReadinfo") +@Tag(name = "平台通知查看明细", description = "平台通知查看明细接口") +public class AnnouncementReadinfoController extends BladeController { + + private final IAnnouncementReadinfoService readinfoService; + + + /** + * 平台通知查看明细 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 1) + @Operation(summary = "新增", description = "传入platformAnnouncement") + public R save(@Valid @RequestBody AnnouncementReadinfoEntity readinfoEntity) { + return R.status(readinfoService.save(readinfoEntity)); + } + + + + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationRoleController.java b/src/main/java/org/springblade/modules/operation/controller/OperationRoleController.java new file mode 100644 index 0000000..2168b29 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationRoleController.java @@ -0,0 +1,217 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.SysCache; +import org.springblade.common.cache.UserCache; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.constant.AuthConstant; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.nh.pojo.entity.InverterDataEntity; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.pojo.vo.GrantVO; +import org.springblade.modules.system.pojo.vo.RoleVO; +import org.springblade.modules.system.service.IRoleService; +import org.springblade.modules.system.wrapper.RoleWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_USER_NAME + "/role") +@Tag(name = "角色开放接口", description = "角色") +public class OperationRoleController extends BladeController { + + private final IRoleService roleService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入role") + public R detail(Role role) { + Role detail = roleService.getOne(Condition.getQueryWrapper(role)); + return R.data(RoleWrapper.build().entityVO(detail)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "roleName", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "roleAlias", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "parentId", description = "父类id", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "列表", description = "传入role") + public R> list(@Parameter(hidden = true) @RequestParam Map role, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(role, Role.class); + List list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(RoleWrapper.build().listNodeVO(list)); + } + + /** + * 获取角色树形结构 + */ + @GetMapping("/tree") + @ApiOperationSupport(order = 3) + @Operation(summary = "树形结构", description = "树形结构") + public R> tree(String tenantId, BladeUser bladeUser) { + List tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + return R.data(tree); + } + + /** + * 获取指定角色树形结构 + */ + @GetMapping("/tree-by-id") + @ApiOperationSupport(order = 4) + @Operation(summary = "树形结构", description = "树形结构") + public R> treeById(Long roleId, BladeUser bladeUser) { + Role role = SysCache.getRole(roleId); + List tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId()); + return R.data(tree); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入role") + public R submit(@Valid @RequestBody Role role) { + + role.setParentId(2L); + return R.status(roleService.submit(role)); + } + + + /** + * 修改 + */ + @PostMapping("/updateRole") + @ApiOperationSupport(order = 9) + @Operation(summary = "修改", description = "传入role") + public R updateRole(@Valid String roleName,String householdRoleId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(Role::getHouseholdRoleId,householdRoleId); + Role role = roleService.getOne(queryWrapper); + role.setRoleName(roleName); + role.setParentId(2L); + return R.status(roleService.updateById(role)); + } + + + + + @PostMapping("/batchSubmit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入role") + public R batchSubmit(@Valid @RequestBody List roles) { + roles.forEach(role -> { + role.setParentId(2L); + role.setTenantId("000000"); + }); + + return R.status(roleService.saveBatch(roles)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(roleService.removeRole(ids)); + } + + /** + * 设置角色权限 + */ + @PostMapping("/grant") + @ApiOperationSupport(order = 7) + @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合") + public R grant(@RequestBody GrantVO grantVO) { + /*CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE);*/ + boolean temp = roleService.grant(grantVO.getRoleIds(), grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds()); + return R.status(temp); + } + + /** + * 下拉数据源 + */ + @PreAuth(AuthConstant.PERMIT_ALL) + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @Operation(summary = "下拉数据源", description = "传入id集合") + public R> select(Long userId, String roleId) { + if (Func.isNotEmpty(userId)) { + User user = UserCache.getUser(userId); + roleId = user.getRoleId(); + } + List list = roleService.list(Wrappers.lambdaQuery().in(Role::getId, Func.toLongList(roleId))); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationServiceMeasuresController.java b/src/main/java/org/springblade/modules/operation/controller/OperationServiceMeasuresController.java new file mode 100644 index 0000000..f86e3a0 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationServiceMeasuresController.java @@ -0,0 +1,162 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.operation.pojo.dto.OperationServiceMeasuresDTO; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceMeasuresVO; +import org.springblade.modules.operation.excel.OperationServiceMeasuresExcel; +import org.springblade.modules.operation.wrapper.OperationServiceMeasuresWrapper; +import org.springblade.modules.operation.service.IOperationServiceMeasuresService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 服务措施表 控制器 + * + * @author lzp + * @since 2024-06-18 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationServiceMeasures") +@Tag(name = "服务措施表", description = "服务措施表接口") +public class OperationServiceMeasuresController extends BladeController { + + private final IOperationServiceMeasuresService operationServiceMeasuresService; + + /** + * 服务措施表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationServiceMeasures") + public R detail(OperationServiceMeasuresEntity operationServiceMeasures) { + OperationServiceMeasuresEntity detail = operationServiceMeasuresService.getOne(Condition.getQueryWrapper(operationServiceMeasures)); + return R.data(OperationServiceMeasuresWrapper.build().entityVO(detail)); + } + /** + * 服务措施表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入operationServiceMeasures") + public R> list(@Parameter(hidden = true) @RequestParam Map operationServiceMeasures, Query query) { + IPage pages = operationServiceMeasuresService.page(Condition.getPage(query), Condition.getQueryWrapper(operationServiceMeasures, OperationServiceMeasuresEntity.class)); + return R.data(OperationServiceMeasuresWrapper.build().pageVO(pages)); + } + + /** + * 服务措施表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationServiceMeasures") + public R> page(OperationServiceMeasuresVO operationServiceMeasures, Query query) { + IPage pages = operationServiceMeasuresService.selectOperationServiceMeasuresPage(Condition.getPage(query), operationServiceMeasures); + return R.data(pages); + } + + /** + * 服务措施表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationServiceMeasures") + public R save(@Valid @RequestBody OperationServiceMeasuresDTO operationServiceMeasures) { + return R.status(operationServiceMeasuresService.saveServiceMeasures(operationServiceMeasures)); + } + + /** + * 服务措施表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationServiceMeasures") + public R update(@Valid @RequestBody OperationServiceMeasuresEntity operationServiceMeasures) { + return R.status(operationServiceMeasuresService.updateById(operationServiceMeasures)); + } + + /** + * 服务措施表 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入operationServiceMeasures") + public R submit(@Valid @RequestBody OperationServiceMeasuresEntity operationServiceMeasures) { + return R.status(operationServiceMeasuresService.saveOrUpdate(operationServiceMeasures)); + } + + /** + * 服务措施表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String id) { + return R.status(operationServiceMeasuresService.removeById(id)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-operationServiceMeasures") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationServiceMeasures") + public void exportOperationServiceMeasures(@Parameter(hidden = true) @RequestParam Map operationServiceMeasures, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(operationServiceMeasures, OperationServiceMeasuresEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(OperationServiceMeasures::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(OperationServiceMeasuresEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = operationServiceMeasuresService.exportOperationServiceMeasures(queryWrapper); + ExcelUtil.export(response, "服务措施表数据" + DateUtil.time(), "服务措施表数据表", list, OperationServiceMeasuresExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationServiceTypeController.java b/src/main/java/org/springblade/modules/operation/controller/OperationServiceTypeController.java new file mode 100644 index 0000000..3e5dcc5 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationServiceTypeController.java @@ -0,0 +1,164 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.operation.pojo.dto.OperationServiceTypeDTO; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceTypeVO; +import org.springblade.modules.operation.excel.OperationServiceTypeExcel; +import org.springblade.modules.operation.wrapper.OperationServiceTypeWrapper; +import org.springblade.modules.operation.service.IOperationServiceTypeService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 服务类型基础信息 控制器 + * + * @author BladeX + * @since 2024-06-17 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationServiceType") +@Tag(name = "服务类型基础信息", description = "服务类型基础信息接口") +public class OperationServiceTypeController extends BladeController { + + private final IOperationServiceTypeService operationServiceTypeService; + + /** + * 服务类型基础信息 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationServiceType") + public R detail(OperationServiceTypeEntity operationServiceType) { + OperationServiceTypeEntity detail = operationServiceTypeService.getOne(Condition.getQueryWrapper(operationServiceType)); + return R.data(OperationServiceTypeWrapper.build().entityVO(detail)); + } + /** + * 服务类型基础信息 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "不分页", description = "传入operationServiceType") + public R> list() { + List pages = operationServiceTypeService.pageServiceType(); + return R.data(pages); + } + + /** + * 服务类型基础信息 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationServiceType") + public R> page(OperationServiceTypeVO operationServiceType, Query query) { + IPage pages = operationServiceTypeService.selectOperationServiceTypePage(Condition.getPage(query), operationServiceType); + return R.data(pages); + } + + /** + * 服务类型基础信息 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationServiceType") + public R save(@Valid @RequestBody OperationServiceTypeDTO dto) { + return R.status(operationServiceTypeService.saveList(dto)); + } + + /** + * 服务类型基础信息 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationServiceType") + public R update(@Valid @RequestBody OperationServiceTypeEntity operationServiceType) { + return R.status(operationServiceTypeService.updateById(operationServiceType)); + } + + /** + * 服务类型基础信息 新增或修改 + */ +/* + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入operationServiceType") + public R submit(@Valid @RequestBody OperationServiceTypeEntity operationServiceType) { + return R.status(operationServiceTypeService.saveOrUpdate(operationServiceType)); + } +*/ + + /** + * 服务类型基础信息 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String id) { + return R.status(operationServiceTypeService.deleteStatus(id)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-operationServiceType") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationServiceType") + public void exportOperationServiceType(@Parameter(hidden = true) @RequestParam Map operationServiceType, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(operationServiceType, OperationServiceTypeEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(OperationServiceType::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(OperationServiceTypeEntity::getStatus, BladeConstant.DB_NOT_DELETED); + List list = operationServiceTypeService.exportOperationServiceType(queryWrapper); + ExcelUtil.export(response, "服务类型基础信息数据" + DateUtil.time(), "服务类型基础信息数据表", list, OperationServiceTypeExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationSiteController.java b/src/main/java/org/springblade/modules/operation/controller/OperationSiteController.java new file mode 100644 index 0000000..5b3849c --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationSiteController.java @@ -0,0 +1,174 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; + +import org.apache.commons.compress.utils.Lists; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.excel.OperationSiteExcel; +import org.springblade.modules.operation.wrapper.OperationSiteWrapper; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.excel.EntrySiteExcel; +import org.springblade.modules.operation.service.IOperationSiteService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; + +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 网点基础信息表 控制器 + * + * @author lzp + * @since 2024-06-13 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationSite") +@Tag(name = "网点基础信息表", description = "网点基础信息表接口") +public class OperationSiteController extends BladeController { + + private final IOperationSiteService operationSiteService; + + /** + * 网点基础信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationSite") + public R detail(@Parameter(name = "主键id", required = true) @RequestParam String id) { + OperationSiteVO detail = operationSiteService.getSiteDetail(id); + return R.data(detail); + } + + + /** + * 网点基础信息表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "不分页", description = "传入operationSite") + public R> list(@Parameter(hidden = true) @RequestParam Map operationSite) { + operationSite.put("status","0"); + List list = operationSiteService.list(Condition.getQueryWrapper(operationSite, OperationSiteEntity.class)); + return R.data(list); + } + + /** + * 网点基础信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationSite") + public R> page(OperationSiteVO operationSite, Query query) { + IPage pages = operationSiteService.selectOperationSitePage(Condition.getPage(query), operationSite); + return R.data(pages); + } + + + /** + * 网点基础信息表 自定义分页 + */ + @GetMapping("/findSiteAmountPage") + @ApiOperationSupport(order = 3) + @Operation(summary = "结算账户", description = "传入operationSite") + public R> findSiteAmountPage(OperationSiteVO operationSite, Query query) { + IPage pages = operationSiteService.findSiteAmountPage(Condition.getPage(query), operationSite); + return R.data(pages); + } + + + + /** + * 网点基础信息表 新增 + */ +/* @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationSite") + public R save(@Valid @RequestBody OperationSiteVO operationSite) { + return operationSiteService.saveSite(operationSite); + }*/ + + /** + * 网点基础信息表 修改 + */ +/* @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationSite") + public R update(@Valid @RequestBody OperationSiteVO operationSite) { + return operationSiteService.updateSite(operationSite); + }*/ + + /** + * 启用禁用 + */ + @PostMapping("/updateStatus") + @ApiOperationSupport(order = 6) + @Operation(summary = "启用/禁用", description = "传入参数") + public R updateStatus(@Parameter(name = "主键id", required = true) @RequestParam String id,@Parameter(name = "状态值", required = true) @RequestParam String status){ + return R.status(operationSiteService.updateStatus(id,status)); + } + + + /** + * 网点基础信息表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "主键", required = true) @RequestParam String id) { + return R.status(operationSiteService.deleteSite(id)); + } + + /** + * 导出数据 + */ + @GetMapping("/export-operationSite") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationSite") + public void exportOperationSite(OperationSiteVO operationSite, BladeUser bladeUser, HttpServletResponse response) { + List list = operationSiteService.selectOperationSiteList(operationSite); + + ExcelUtil.export(response, "网点基础信息表数据" + DateUtil.time(), "网点基础信息表数据表", list, OperationSiteExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationSiteEmployeeController.java b/src/main/java/org/springblade/modules/operation/controller/OperationSiteEmployeeController.java new file mode 100644 index 0000000..5c7678e --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationSiteEmployeeController.java @@ -0,0 +1,177 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.operation.pojo.dto.OperationSiteEmployeeDTO; +import org.springblade.modules.operation.pojo.vo.EditSiteEmpAuthVo; +import org.springblade.modules.system.pojo.entity.User; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteEmployeeVO; +import org.springblade.modules.operation.excel.OperationSiteEmployeeExcel; +import org.springblade.modules.operation.wrapper.OperationSiteEmployeeWrapper; +import org.springblade.modules.operation.service.IOperationSiteEmployeeService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 服务商员工信息表 控制器 + * + * @author lzp + * @since 2024-06-18 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationSiteEmployee") +@Tag(name = "服务商员工信息表", description = "服务商员工信息表接口") +public class OperationSiteEmployeeController extends BladeController { + + private final IOperationSiteEmployeeService operationSiteEmployeeService; + + /** + * 服务商员工信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationSiteEmployee") + public R detail(String id) { + OperationSiteEmployeeVO detail = operationSiteEmployeeService.getSiteEmployee(id); + return R.data(detail); + } + /** + * 服务商员工信息表 不分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "不分页", description = "传入operationSiteEmployee") + public R> list(OperationSiteEmployeeVO operationSiteEmploye, Query query) { + IPage page =Condition.getPage(query); + page.setSize(100L); + operationSiteEmploye.setIsDeleted(0); + IPage pages = operationSiteEmployeeService.selectOperationSiteEmployeePage(page, operationSiteEmploye); + return R.data(pages); + } + + /** + * 服务商员工信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationSiteEmployee") + public R> page(OperationSiteEmployeeVO operationSiteEmployee, Query query) { + + IPage pages = operationSiteEmployeeService.selectOperationSiteEmployeePage(Condition.getPage(query), operationSiteEmployee); + return R.data(pages); + } + + /** + * 服务商员工信息表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationSiteEmployee") + public R save(@Valid @RequestBody OperationSiteEmployeeDTO operationSiteEmployee) { + return operationSiteEmployeeService.saveSiteEmp(operationSiteEmployee); + } + + /** + * 服务商员工信息表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationSiteEmployee") + public R update(@Valid @RequestBody OperationSiteEmployeeDTO operationSiteEmployee) { + return R.status(operationSiteEmployeeService.updateSiteEmp(operationSiteEmployee)); + } + + /** + * 服务商员工信息表 新增或修改 + */ + @PostMapping("/updateStatus") + @ApiOperationSupport(order = 6) + @Operation(summary = "禁用或启用", description = "传入id") + public R updateStatus(@Parameter(name = "主键id", required = true) @RequestParam String id,@Parameter(name = "状态值", required = true) @RequestParam String status) { + return R.status(operationSiteEmployeeService.updateEmpStatus(id, status)); + } + + /** + * 服务商员工信息表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "主键", required = true) @RequestParam String id) { + return R.status(operationSiteEmployeeService.deleteSiteEmp(id)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-operationSiteEmployee") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationSiteEmployee") + public void exportOperationSiteEmployee(@Parameter(hidden = true) @RequestParam Map operationSiteEmployee, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(operationSiteEmployee, OperationSiteEmployeeEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(OperationSiteEmployee::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(OperationSiteEmployeeEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = operationSiteEmployeeService.exportOperationSiteEmployee(queryWrapper); + ExcelUtil.export(response, "服务商员工信息表数据" + DateUtil.time(), "服务商员工信息表数据表", list, OperationSiteEmployeeExcel.class); + } + + //编辑服务商员工数据权限 + @PostMapping("/editSiteEmpAuth") + @ApiOperationSupport(order = 4) + @Operation(summary = "编辑服务商员工数据权限", description = "传入siteEmpAuthVo") + public R editSiteEmpAuth(@Valid @RequestBody EditSiteEmpAuthVo siteEmpAuthVo){ + return R.status(operationSiteEmployeeService.editSiteEmpAuth(siteEmpAuthVo)); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationSiteRoleController.java b/src/main/java/org/springblade/modules/operation/controller/OperationSiteRoleController.java new file mode 100644 index 0000000..d6c4c20 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationSiteRoleController.java @@ -0,0 +1,161 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteRoleVO; +import org.springblade.modules.operation.excel.OperationSiteRoleExcel; +import org.springblade.modules.operation.wrapper.OperationSiteRoleWrapper; +import org.springblade.modules.operation.service.IOperationSiteRoleService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 服务商员工角色 控制器 + * + * @author lzp + * @since 2024-06-19 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationSiteRole") +@Tag(name = "服务商员工角色", description = "服务商员工角色接口") +public class OperationSiteRoleController extends BladeController { + + private final IOperationSiteRoleService operationSiteRoleService; + + /** + * 服务商员工角色 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationSiteRole") + public R detail(OperationSiteRoleEntity operationSiteRole) { + OperationSiteRoleEntity detail = operationSiteRoleService.getOne(Condition.getQueryWrapper(operationSiteRole)); + return R.data(OperationSiteRoleWrapper.build().entityVO(detail)); + } + /** + * 服务商员工角色 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "不分页", description = "传入operationSiteRole") + public R> list(BladeUser bladeUser) { + List pages = operationSiteRoleService.roleList(bladeUser); + return R.data(pages); + } + + /** + * 服务商员工角色 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationSiteRole") + public R> page(OperationSiteRoleVO operationSiteRole, Query query) { + IPage pages = operationSiteRoleService.selectOperationSiteRolePage(Condition.getPage(query), operationSiteRole); + return R.data(pages); + } + + /** + * 服务商员工角色 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationSiteRole") + public R save(@Valid @RequestBody OperationSiteRoleEntity operationSiteRole) { + return R.status(operationSiteRoleService.saveRole(operationSiteRole)); + } + + /** + * 服务商员工角色 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationSiteRole") + public R update(@Valid @RequestBody OperationSiteRoleEntity operationSiteRole) { + return R.status(operationSiteRoleService.updateById(operationSiteRole)); + } + + /** + * 服务商员工角色 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入operationSiteRole") + public R submit(@Valid @RequestBody OperationSiteRoleEntity operationSiteRole) { + return R.status(operationSiteRoleService.saveOrUpdate(operationSiteRole)); + } + + /** + * 服务商员工角色 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String id) { + return R.status(operationSiteRoleService.deletaStatus(id)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-operationSiteRole") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationSiteRole") + public void exportOperationSiteRole(@Parameter(hidden = true) @RequestParam Map operationSiteRole, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(operationSiteRole, OperationSiteRoleEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(OperationSiteRole::getTenantId, bladeUser.getTenantId()); + //} + queryWrapper.lambda().eq(OperationSiteRoleEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = operationSiteRoleService.exportOperationSiteRole(queryWrapper); + ExcelUtil.export(response, "服务商员工角色数据" + DateUtil.time(), "服务商员工角色数据表", list, OperationSiteRoleExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/OperationTechnicalDataController.java b/src/main/java/org/springblade/modules/operation/controller/OperationTechnicalDataController.java new file mode 100644 index 0000000..c923b23 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/OperationTechnicalDataController.java @@ -0,0 +1,146 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import org.springblade.modules.operation.pojo.vo.OperationTechnicalDataVO; +import org.springblade.modules.operation.excel.OperationTechnicalDataExcel; +import org.springblade.modules.operation.wrapper.OperationTechnicalDataWrapper; +import org.springblade.modules.operation.service.IOperationTechnicalDataService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 技术资料表 控制器 + * + * @author BladeX + * @since 2024-06-26 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationTechnicalData") +@Tag(name = "技术资料表", description = "技术资料表接口") +public class OperationTechnicalDataController extends BladeController { + + private final IOperationTechnicalDataService operationTechnicalDataService; + + /** + * 技术资料表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationTechnicalData") + public R detail(OperationTechnicalDataEntity operationTechnicalData) { + OperationTechnicalDataEntity detail = operationTechnicalDataService.getOne(Condition.getQueryWrapper(operationTechnicalData)); + return R.data(OperationTechnicalDataWrapper.build().entityVO(detail)); + } + /** + * 技术资料表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入operationTechnicalData") + public R> list(@Parameter(hidden = true) @RequestParam Map operationTechnicalData, Query query) { + operationTechnicalData.put("status","0"); + IPage pages = operationTechnicalDataService.page(Condition.getPage(query), Condition.getQueryWrapper(operationTechnicalData, OperationTechnicalDataEntity.class).orderByDesc("create_time")); + return R.data(OperationTechnicalDataWrapper.build().pageVO(pages)); + } + + @GetMapping("/page") + @ApiOperationSupport(order = 2) + @Operation(summary = "管理员分页", description = "传入operationTechnicalData") + public R> page(OperationTechnicalDataVO technicalDataVO, Query query) { + IPage pages = operationTechnicalDataService.selectOperationTechnicalDataPage(Condition.getPage(query), technicalDataVO); + return R.data(pages); + } + + /** + * 技术资料表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationTechnicalData") + public R save(@Valid @RequestBody OperationTechnicalDataEntity operationTechnicalData) { + return R.status(operationTechnicalDataService.addTechnical(operationTechnicalData)); + } + + /** + * 技术资料表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationTechnicalData") + public R update(@Valid @RequestBody OperationTechnicalDataEntity operationTechnicalData) { + return R.status(operationTechnicalDataService.updateTechnical(operationTechnicalData)); + } + + /** + * 技术资料表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(name = "主键集合", required = true) @RequestParam String ids) { + return R.status(operationTechnicalDataService.deleteTechnical(ids)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-operationTechnicalData") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationTechnicalData") + public void exportOperationTechnicalData(@Parameter(hidden = true) @RequestParam Map operationTechnicalData, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(operationTechnicalData, OperationTechnicalDataEntity.class); + queryWrapper.lambda().eq(OperationTechnicalDataEntity::getStatus, BladeConstant.DB_NOT_DELETED); + List list = operationTechnicalDataService.exportOperationTechnicalData(queryWrapper); + ExcelUtil.export(response, "技术资料表数据" + DateUtil.time(), "技术资料表数据表", list, OperationTechnicalDataExcel.class); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/PlatformAnnouncementController.java b/src/main/java/org/springblade/modules/operation/controller/PlatformAnnouncementController.java new file mode 100644 index 0000000..2e86431 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/PlatformAnnouncementController.java @@ -0,0 +1,136 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.apache.commons.lang3.StringEscapeUtils; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.PlatformAnnouncementEntity; +import org.springblade.modules.operation.pojo.vo.PlatformAnnouncementVO; +import org.springblade.modules.operation.wrapper.PlatformAnnouncementWrapper; +import org.springblade.modules.operation.service.IPlatformAnnouncementService; +import org.springblade.core.boot.ctrl.BladeController; + +import java.util.Date; +import java.util.Map; +import java.util.List; + +/** + * 平台通知公告表 控制器 + * + * @author lzp + * @since 2024-06-25 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/platformAnnouncement") +@Tag(name = "平台通知公告表", description = "平台通知公告表接口") +public class PlatformAnnouncementController extends BladeController { + + private final IPlatformAnnouncementService platformAnnouncementService; + + /** + * 平台通知公告表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入platformAnnouncement") + public R detail(PlatformAnnouncementVO platformAnnouncement) { + PlatformAnnouncementVO detail = platformAnnouncementService.findAnnouncementDetail(platformAnnouncement); + return R.data(detail); + } + /** + * 平台通知公告表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "普通列表分页", description = "传入platformAnnouncement") + public R> list(PlatformAnnouncementVO platformAnnouncement, Query query,BladeUser bladeUser) { + platformAnnouncement.setReadId(bladeUser.getUserId()); + List pages = platformAnnouncementService.findAnnouncementList(Condition.getPage(query), platformAnnouncement); + return R.data(pages); + } + + /** + * 平台通知公告表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "管理员分页", description = "传入platformAnnouncement") + public R> page(PlatformAnnouncementVO platformAnnouncement, Query query) { + IPage pages = platformAnnouncementService.selectPlatformAnnouncementPage(Condition.getPage(query), platformAnnouncement); + return R.data(pages); + } + + /** + * 平台通知公告表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入platformAnnouncement") + public R save(@Valid PlatformAnnouncementEntity platformAnnouncement,BladeUser bladeUser) { + platformAnnouncement.setStatus("0"); + platformAnnouncement.setCreateTime(new Date()); + platformAnnouncement.setCreateBy(bladeUser.getUserId().toString()); + return R.status(platformAnnouncementService.save(platformAnnouncement)); + } + + /** + * 平台通知公告表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入platformAnnouncement") + public R update(@Valid PlatformAnnouncementEntity platformAnnouncement) { + return R.status(platformAnnouncementService.updateById(platformAnnouncement)); + } + + /** + * 平台通知公告表 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入id") + public R remove(@Parameter(name = "主键", required = true) @RequestParam String id ) { + PlatformAnnouncementEntity platformAnnouncement = platformAnnouncementService.getById(id); + platformAnnouncement.setStatus("1"); + return R.status(platformAnnouncementService.updateById(platformAnnouncement)); + } + + + +} diff --git a/src/main/java/org/springblade/modules/operation/controller/PlatformEmployeeController.java b/src/main/java/org/springblade/modules/operation/controller/PlatformEmployeeController.java new file mode 100644 index 0000000..561926c --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/controller/PlatformEmployeeController.java @@ -0,0 +1,94 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.PlatformEmployeeVO; +import org.springblade.modules.operation.excel.PlatformEmployeeExcel; +import org.springblade.modules.operation.wrapper.PlatformEmployeeWrapper; +import org.springblade.modules.operation.service.IPlatformEmployeeService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 平台员工权限表 控制器 + * + * @author BladeX + * @since 2024-06-27 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/platformEmployee") +@Tag(name = "平台员工权限表", description = "平台员工权限表接口") +public class PlatformEmployeeController extends BladeController { + + private final IPlatformEmployeeService platformEmployeeService; + + /** + * 平台员工权限表 详情 + */ + @GetMapping("/empDetail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入platformEmployee") + public R empDetail(@Parameter(name = "userId",description = "主键id",required = true) @RequestParam String userId) { + PlatformEmployeeEntity detail = platformEmployeeService.empDetail(userId); + return R.data(PlatformEmployeeWrapper.build().entityVO(detail)); + } + + /** + * 编辑 员工权限 + */ + @PostMapping("/editeEmpAuth") + @ApiOperationSupport(order = 6) + @Operation(summary = "编辑员工权限", description = "传入platformEmployee") + public R editeEmpAuth(@Valid @RequestBody PlatformEmployeeEntity platformEmployee) { + return R.status(platformEmployeeService.editeEmpAuth(platformEmployee)); + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/EntryPaymentTimeExcel.java b/src/main/java/org/springblade/modules/operation/excel/EntryPaymentTimeExcel.java new file mode 100644 index 0000000..b54f324 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/EntryPaymentTimeExcel.java @@ -0,0 +1,32 @@ +package org.springblade.modules.operation.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class EntryPaymentTimeExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("电站编号") + private String stationCode; + + @ExcelProperty("投放通过时间(yyyy-MM-dd)") + @JsonFormat(pattern ="yyyy-MM-dd") + @JSONField(format = "yyyy-MM-dd") + private Date paymentTime; +} diff --git a/src/main/java/org/springblade/modules/operation/excel/EntrySiteExcel.java b/src/main/java/org/springblade/modules/operation/excel/EntrySiteExcel.java new file mode 100644 index 0000000..357ec13 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/EntrySiteExcel.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; +import java.math.BigDecimal; + + +/** + * 网点基础信息表 Excel实体类 + * + * @author lzp + * @since 2024-06-13 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class EntrySiteExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + @ExcelProperty("运维商名称") + private String name; + + @ExcelProperty("电站编号") + private String stationCode; + + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.java b/src/main/java/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.java new file mode 100644 index 0000000..2a395a5 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 服务措施表 Excel实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationServiceMeasuresExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 服务类型id + */ + @ColumnWidth(20) + @ExcelProperty("服务类型id") + private String serviceTypeId; + /** + * 服务类型 + */ + @ColumnWidth(20) + @ExcelProperty("服务类型") + private String serviceType; + /** + * 服务措施 + */ + @ColumnWidth(20) + @ExcelProperty("服务措施") + private String serviceMeasures; + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/OperationServiceTypeExcel.java b/src/main/java/org/springblade/modules/operation/excel/OperationServiceTypeExcel.java new file mode 100644 index 0000000..d50e87f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/OperationServiceTypeExcel.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 服务类型基础信息 Excel实体类 + * + * @author BladeX + * @since 2024-06-17 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationServiceTypeExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 类型名称 + */ + @ColumnWidth(20) + @ExcelProperty("类型名称") + private String name; + /** + * 排序 + */ + @ColumnWidth(20) + @ExcelProperty("排序") + private Integer sort; + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/OperationSiteEmployeeExcel.java b/src/main/java/org/springblade/modules/operation/excel/OperationSiteEmployeeExcel.java new file mode 100644 index 0000000..5ee1e86 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/OperationSiteEmployeeExcel.java @@ -0,0 +1,128 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 服务商员工信息表 Excel实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationSiteEmployeeExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 对应user表记录id + */ + @ColumnWidth(20) + @ExcelProperty("对应user表记录id") + private String userId; + /** + * 姓名 + */ + @ColumnWidth(20) + @ExcelProperty("姓名") + private String name; + /** + * 手机号码 + */ + @ColumnWidth(20) + @ExcelProperty("手机号码") + private String mobile; + /** + * 入职时间 + */ + @ColumnWidth(20) + @ExcelProperty("入职时间") + private Date hiredate; + /** + * 1.信息员 2.工程师 3.备件员 + */ + @ColumnWidth(20) + @ExcelProperty("1.信息员 2.工程师 3.备件员") + private Integer role; + /** + * 服务品类 + */ + @ColumnWidth(20) + @ExcelProperty("服务品类") + private String category; + /** + * 创建人user_id + */ + @ColumnWidth(20) + @ExcelProperty("创建人user_id") + private String createBy; + /** + * 覆盖省份,多个用逗号隔开 + */ + @ColumnWidth(20) + @ExcelProperty("覆盖省份,多个用逗号隔开") + private String provinces; + /** + * 服务商id + */ + @ColumnWidth(20) + @ExcelProperty("服务商id") + private String siteId; + /** + * 工作年限 + */ + @ColumnWidth(20) + @ExcelProperty("工作年限") + private String years; + /** + * 相关资质图片 + */ + @ColumnWidth(20) + @ExcelProperty("相关资质图片") + private String licenseImg; + /** + * 诚信服务二维码 0.有 1.没有 + */ + @ColumnWidth(20) + @ExcelProperty("诚信服务二维码 0.有 1.没有") + private String qrcode; + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/OperationSiteExcel.java b/src/main/java/org/springblade/modules/operation/excel/OperationSiteExcel.java new file mode 100644 index 0000000..0f42129 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/OperationSiteExcel.java @@ -0,0 +1,80 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + +/** + * 网点基础信息表 Excel实体类 + * + * @author lzp + * @since 2024-06-13 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationSiteExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + @ExcelProperty("运维商名称") + private String name; + + @ExcelProperty("联系人") + private String contacts; + + @ExcelProperty("添加时间") + private Date createTime; + + @ExcelProperty("手机号码") + private String mobile; + @ExcelProperty("省") + private String province; + @ExcelProperty("市") + private String city; + @ExcelProperty("区县") + private String area; + @ExcelProperty("详细地址") + private String address; + + @ExcelProperty("员工数量") + private Long amount; + @ExcelProperty("工程师数量") + private Long empamount; +} diff --git a/src/main/java/org/springblade/modules/operation/excel/OperationSiteRoleExcel.java b/src/main/java/org/springblade/modules/operation/excel/OperationSiteRoleExcel.java new file mode 100644 index 0000000..ad609e6 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/OperationSiteRoleExcel.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import lombok.Data; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 服务商员工角色 Excel实体类 + * + * @author lzp + * @since 2024-06-19 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationSiteRoleExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 角色名称 + */ + @ColumnWidth(20) + @ExcelProperty("角色名称") + private String name; + /** + * 服务商id + */ + @ColumnWidth(20) + @ExcelProperty("服务商id") + private String siteId; + /** + * 状态 0.正常 1.删除 + */ + @ColumnWidth(20) + @ExcelProperty("状态 0.正常 1.删除") + private Integer isDeleted; + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.java b/src/main/java/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.java new file mode 100644 index 0000000..0b77469 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 技术资料表 Excel实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationTechnicalDataExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 资料名称 + */ + @ColumnWidth(20) + @ExcelProperty("资料名称") + private String name; + /** + * 资料说明 + */ + @ColumnWidth(20) + @ExcelProperty("资料说明") + private String description; + /** + * 路径 + */ + @ColumnWidth(20) + @ExcelProperty("路径") + private String href; + /** + * 创建人userId + */ + @ColumnWidth(20) + @ExcelProperty("创建人userId") + private String createBy; + /** + * 创建人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("创建人姓名") + private String creator; + +} diff --git a/src/main/java/org/springblade/modules/operation/excel/PlatformEmployeeExcel.java b/src/main/java/org/springblade/modules/operation/excel/PlatformEmployeeExcel.java new file mode 100644 index 0000000..9a06ae6 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/excel/PlatformEmployeeExcel.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 平台员工权限表 Excel实体类 + * + * @author BladeX + * @since 2024-06-27 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PlatformEmployeeExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + @ColumnWidth(20) + @ExcelProperty("用户id") + private String userId; + /** + * 覆盖省份,多个用逗号隔开 + */ + @ColumnWidth(20) + @ExcelProperty("覆盖省份,多个用逗号隔开") + private String provices; + /** + * 覆盖市,多个用逗号隔开 + */ + @ColumnWidth(20) + @ExcelProperty("覆盖市,多个用逗号隔开") + private String city; + /** + * 覆盖区县,多个用逗号隔开 + */ + @ColumnWidth(20) + @ExcelProperty("覆盖区县,多个用逗号隔开") + private String area; + /** + * 关联服务商,多个用逗号隔开 + */ + @ColumnWidth(20) + @ExcelProperty("关联服务商,多个用逗号隔开") + private String siteId; + /** + * 关联电站,多个用逗号隔开 + */ + @ColumnWidth(20) + @ExcelProperty("关联电站,多个用逗号隔开") + private String entryId; + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String createName; + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.java b/src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.java new file mode 100644 index 0000000..6fb680b --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.java @@ -0,0 +1,43 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.AnnouncementReadinfoEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 平台通知查看明细 Mapper 接口 + * + * @author lzp + * @since 2024-06-25 + */ +public interface AnnouncementReadinfoMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml new file mode 100644 index 0000000..30c9115 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.java b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.java new file mode 100644 index 0000000..e52b32a --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceMeasuresVO; +import org.springblade.modules.operation.excel.OperationServiceMeasuresExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 服务措施表 Mapper 接口 + * + * @author lzp + * @since 2024-06-18 + */ +public interface OperationServiceMeasuresMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationServiceMeasures + * @return + */ + List selectOperationServiceMeasuresPage(IPage page, OperationServiceMeasuresVO operationServiceMeasures); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationServiceMeasures(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.xml new file mode 100644 index 0000000..498b656 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.java b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.java new file mode 100644 index 0000000..af3b3db --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceTypeVO; +import org.springblade.modules.operation.excel.OperationServiceTypeExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 服务类型基础信息 Mapper 接口 + * + * @author BladeX + * @since 2024-06-17 + */ +public interface OperationServiceTypeMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationServiceType + * @return + */ + List selectOperationServiceTypePage(IPage page, OperationServiceTypeVO operationServiceType); + + + List pageServiceType(); + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationServiceType(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml new file mode 100644 index 0000000..4bb9c55 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.java b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.java new file mode 100644 index 0000000..8ab2e35 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.pojo.vo.OperationEmpVo; +import org.springblade.modules.operation.pojo.vo.OperationSiteEmployeeVO; +import org.springblade.modules.operation.excel.OperationSiteEmployeeExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 服务商员工信息表 Mapper 接口 + * + * @author lzp + * @since 2024-06-18 + */ +public interface OperationSiteEmployeeMapper extends BaseMapper { + + + OperationSiteEmployeeVO getSiteEmployee(String id); + + /** + * 自定义分页 + * + * @param page + * @param operationSiteEmployee + * @return + */ + List selectOperationSiteEmployeePage(IPage page, OperationSiteEmployeeVO operationSiteEmployee); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSiteEmployee(@Param("ew") Wrapper queryWrapper); + + long findEmpCount(String id); + + String findSiteIdByUserId(Long userId); + + EmpAuthVo findEmpAuthByUserId(Long userId); + + + OperationEmpVo findByEmpIds(String empIds); + + OperationSiteEmployeeEntity findByuserId(Long userId); +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml new file mode 100644 index 0000000..1077139 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.java b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.java new file mode 100644 index 0000000..5824a17 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.excel.OperationSiteExcel; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.excel.EntrySiteExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 网点基础信息表 Mapper 接口 + * + * @author lzp + * @since 2024-06-13 + */ +public interface OperationSiteMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationSite + * @return + */ + List selectOperationSitePage(IPage page, OperationSiteVO operationSite); + List selectOperationSiteList(@Param("operationSite") OperationSiteVO operationSite); + + List findSiteAmountPage(IPage page, OperationSiteVO operationSite); + List findSiteList(); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSite(@Param("ew") Wrapper queryWrapper); + + OperationSiteVO getSiteDetail(String siteId); + + + OperationSiteEntity findSiteByUserId(Long userId); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.xml new file mode 100644 index 0000000..9096485 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteMapper.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.java b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.java new file mode 100644 index 0000000..a7206cb --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteRoleVO; +import org.springblade.modules.operation.excel.OperationSiteRoleExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 服务商员工角色 Mapper 接口 + * + * @author lzp + * @since 2024-06-19 + */ +public interface OperationSiteRoleMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationSiteRole + * @return + */ + List selectOperationSiteRolePage(IPage page, OperationSiteRoleVO operationSiteRole); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSiteRole(@Param("ew") Wrapper queryWrapper); + + List roleList(String siteId); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml new file mode 100644 index 0000000..b54027f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.java b/src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.java new file mode 100644 index 0000000..d3369d0 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import org.springblade.modules.operation.pojo.vo.OperationTechnicalDataVO; +import org.springblade.modules.operation.excel.OperationTechnicalDataExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 技术资料表 Mapper 接口 + * + * @author BladeX + * @since 2024-06-26 + */ +public interface OperationTechnicalDataMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationTechnicalData + * @return + */ + List selectOperationTechnicalDataPage(IPage page, OperationTechnicalDataVO operationTechnicalData); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationTechnicalData(@Param("ew") Wrapper queryWrapper); + + + int deleteTechnical(@Param("ids") String ids,@Param("userName") String userName); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml new file mode 100644 index 0000000..f970b10 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + UPDATE `sf_operation_technical_data` SET status='1',update_name=#{userName},update_time=NOW() WHERE id IN + + #{item} + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.java b/src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.java new file mode 100644 index 0000000..72a5270 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.operation.pojo.entity.PlatformAnnouncementEntity; +import org.springblade.modules.operation.pojo.vo.PlatformAnnouncementVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 平台通知公告表 Mapper 接口 + * + * @author lzp + * @since 2024-06-25 + */ +public interface PlatformAnnouncementMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param platformAnnouncement + * @return + */ + List selectPlatformAnnouncementPage(IPage page, PlatformAnnouncementVO platformAnnouncement); + + + List findAnnouncementList(IPage page, @Param("plat") PlatformAnnouncementVO plat); + + PlatformAnnouncementVO findAnnouncementDetail(@Param("plat") PlatformAnnouncementVO plat); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml new file mode 100644 index 0000000..1ec292e --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.java b/src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.java new file mode 100644 index 0000000..b4ba29e --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.java @@ -0,0 +1,69 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.mapper; + +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.pojo.vo.PlatformEmployeeVO; +import org.springblade.modules.operation.excel.PlatformEmployeeExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 平台员工权限表 Mapper 接口 + * + * @author BladeX + * @since 2024-06-27 + */ +public interface PlatformEmployeeMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param platformEmployee + * @return + */ + List selectPlatformEmployeePage(IPage page, PlatformEmployeeVO platformEmployee); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportPlatformEmployee(@Param("ew") Wrapper queryWrapper); + + EmpAuthVo findPlatEmpAuthByUserId(Long userId); + + List findEmpUserId(String roleId,String province,String city,String siteId); + List getFitUserEmpId(@Param("userIds") String userIds,@Param("province") String province,@Param("city") String city,@Param("siteId") String siteId,@Param("ifOrder") String ifOrder); + +} diff --git a/src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.xml b/src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.xml new file mode 100644 index 0000000..7d6ef6d --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.java new file mode 100644 index 0000000..2574618 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.util.List; + +/** + * 服务措施表 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationServiceMeasuresDTO extends OperationServiceMeasuresEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "服务措施集合", requiredMode = Schema.RequiredMode.REQUIRED) + private List measures; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.java new file mode 100644 index 0000000..698362a --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.util.List; + +/** + * 服务类型基础信息 数据传输对象实体类 + * + * @author BladeX + * @since 2024-06-17 + */ +@Data +public class OperationServiceTypeDTO { + @Serial + private static final long serialVersionUID = 1L; + + private List typelist; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteDTO.java new file mode 100644 index 0000000..9a4c73a --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 网点基础信息表 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteDTO extends OperationSiteEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.java new file mode 100644 index 0000000..e5bbcf0 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商员工信息表 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteEmployeeDTO extends OperationSiteEmployeeEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "登录账号") + private String loginName; + @Schema(description = "登录密码") + private String password; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteRoleDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteRoleDTO.java new file mode 100644 index 0000000..dcafd0a --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationSiteRoleDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商员工角色 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteRoleDTO extends OperationSiteRoleEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/OperationTechnicalDataDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationTechnicalDataDTO.java new file mode 100644 index 0000000..c3057ab --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/OperationTechnicalDataDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 技术资料表 数据传输对象实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationTechnicalDataDTO extends OperationTechnicalDataEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.java b/src/main/java/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.java new file mode 100644 index 0000000..a5a4821 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.dto; + +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 平台员工权限表 数据传输对象实体类 + * + * @author BladeX + * @since 2024-06-27 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformEmployeeDTO extends PlatformEmployeeEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.java new file mode 100644 index 0000000..d1a8dbe --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.java @@ -0,0 +1,88 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 平台通知查看明细 实体类 + * + * @author lzp + * @since 2024-06-25 + */ +@Data +@TableName("sf_announcement_readinfo") +@Schema(description = "AnnouncementReadinfo对象") +public class AnnouncementReadinfoEntity implements Serializable { + + + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + /** + * 查看人userId + */ + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema(description = "查看人userId") + private Long readId; + /** + * 查看人姓名 + */ + @Schema(description = "查看人姓名") + private String reader; + /** + * 公告id + */ + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema(description = "公告id") + private Long platformAnnouncementId; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceMeasuresEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceMeasuresEntity.java new file mode 100644 index 0000000..fc73e10 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceMeasuresEntity.java @@ -0,0 +1,87 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 服务措施表 实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@TableName("sf_operation_service_measures") +@Schema(description = "OperationServiceMeasures对象") +public class OperationServiceMeasuresEntity implements Serializable { + + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + /** + * 服务类型id + */ + @Schema(description = "服务类型id", requiredMode = Schema.RequiredMode.REQUIRED) + private String serviceTypeId; + /** + * 服务类型 + */ + @Schema(description = "服务类型") + private String serviceType; + /** + * 服务措施 + */ + @Schema(description = "服务措施", requiredMode = Schema.RequiredMode.REQUIRED) + private String serviceMeasures; + + + private Date createTime; + + @Schema(description = "删除状态 0.正常 1.删除") + private Integer isDeleted; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceTypeEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceTypeEntity.java new file mode 100644 index 0000000..570d409 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationServiceTypeEntity.java @@ -0,0 +1,89 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; + + +import java.io.Serializable; + +import java.util.Date; + +/** + * 服务类型基础信息 实体类 + * + * @author BladeX + * @since 2024-06-17 + */ +@Data +@TableName("sf_operation_service_type") +@Schema(description = "OperationServiceType对象") +public class OperationServiceTypeEntity implements Serializable { + + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + /** + * 类型名称 + */ + + @Schema(description = "类型名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + + @Schema(description = "代码值", requiredMode = Schema.RequiredMode.REQUIRED) + private String code; + + @Schema(description = "资方id", requiredMode = Schema.RequiredMode.REQUIRED) + private String partnerId; + @Schema(description = "资方名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String partnerName; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + + private Date createTime; + @Schema(description = "状态 0.正常 1.删除") + private String status; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.java new file mode 100644 index 0000000..b951400 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.java @@ -0,0 +1,152 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * 服务商员工信息表 实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@TableName("sf_operation_site_employee") +@Schema(description = "OperationSiteEmployee对象") +public class OperationSiteEmployeeEntity implements Serializable { + + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 对应user表记录id + */ + @Schema(description = "对应user表记录id") + private Long userId; + /** + * 姓名 + */ + @Schema(description = "姓名") + private String name; + /** + * 手机号码 + */ + @Schema(description = "手机号码") + private String mobile; + /** + * 入职时间 + */ + @JsonFormat(pattern ="yyyy-MM-dd") + @Schema(description = "入职时间") + private Date hiredate; + /** + * 1.信息员 2.工程师 3.备件员 + */ + @Schema(description = "1.信息员 2.工程师 3.备件员") + @JsonSerialize( + using = ToStringSerializer.class + ) + private Long role; + /** + * 服务品类 + */ + @Schema(description = "服务品类") + private String category; + /** + * 创建人user_id + */ + @Schema(description = "创建人user_id") + private String createBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + /** + * 覆盖省份,多个用逗号隔开 + */ + @Schema(description = "覆盖省份,多个用逗号隔开") + private String provinces; + + @Schema(description = "覆盖市,多个用逗号隔开") + private String city; + /** + * 覆盖区县,多个用逗号隔开 + */ + @Schema(description = "覆盖区县,多个用逗号隔开") + private String area; + + /** + * 服务商id + */ + @Schema(description = "服务商id",requiredMode = Schema.RequiredMode.REQUIRED) + private String siteId; + /** + * 工作年限 + */ + @Schema(description = "工作年限") + private String years; + /** + * 相关资质图片 + */ + @Schema(description = "相关资质图片") + private String licenseImg; + /** + * 诚信服务二维码 0.有 1.没有 + */ + @Schema(description = "诚信服务二维码 0.有 1.没有") + private String qrcode; + + @Schema( + description = "是否已删除" + ) + private Integer isDeleted; + + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEntity.java new file mode 100644 index 0000000..707d0fd --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteEntity.java @@ -0,0 +1,128 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 网点基础信息表 实体类 + * + * @author lzp + * @since 2024-06-13 + */ +@Data +@TableName("sf_operation_site") +@Schema(description = "OperationSite对象") +public class OperationSiteEntity implements Serializable { + + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + @Schema(description = "对应user表记录id") + private Long userId; + @Schema(description = "服务商编号,即唯一码:以录入时间生成编号") + private String number; + @Schema(description = "服务商名称", requiredMode = Schema.RequiredMode.REQUIRED) + private String name; + @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED) + private String contacts; + @Schema(description = "企业法人") + private String corporator; + @NotEmpty(message = "省不能为空") + @Schema(description = "省", requiredMode = Schema.RequiredMode.REQUIRED) + private String province; + @Schema(description = "市", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "市不能为空") + private String city; + @Schema(description = "区县", requiredMode = Schema.RequiredMode.REQUIRED) + @NotEmpty(message = "区县不能为空") + private String area; + @Schema(description = "省代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String provinceCode; + @Schema(description = "市代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String cityCode; + @Schema(description = "区县代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String areaCode; + @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED) + private String address; + @Schema(description = "纬度,经度") + private String lnglat; + @Schema(description = "手机号码", requiredMode = Schema.RequiredMode.REQUIRED) + private String mobile; + @Schema(description = "营业执照号") + private String licenseNumber; + @Schema(description = "营业执照图片地址、相关资质") + private String licenseImg; + @Schema(description = "状态(0:启用 1:删除;2:未授权;3.禁用;4暂未合作)") + private String status; + @Schema(description = "审核标示 0.注册默认值(未完善资料) 1.完善资料 3特殊服务商标记(暂时只可手动设置)") + private String checkFlag; + @Schema(description = "备注") + private String remarks; + @Schema(description = "创建人user_id") + private Long createBy; + @Schema(description = "创建时间") + private Date createTime; + @Schema(description = "更新时间") + private Date updateTime; + @Schema(description = "可提现金额") + private BigDecimal withdrawableCash; + @Schema(description = "钱包总额") + private BigDecimal totalWallet; + @Schema(description = "服务商拒单次数") + private Integer refusalCount; + /** + * 保证金金额 + */ + @Schema(description = "保证金金额") + private BigDecimal earnestMoney; + /** + * 缴纳保证金 1.是 2.否 默认否 + */ + @Schema(description = "缴纳保证金 1.是 2.否 默认否") + private String payTheDeposit; + /** + * 结算方式 1.单次结算 2.包月结算 + */ + @Schema(description = "结算方式 1.单次结算 2.包月结算") + private String setType; + + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.java new file mode 100644 index 0000000..1d2f22d --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serializable; + +/** + * 服务商员工角色 实体类 + * + * @author lzp + * @since 2024-06-19 + */ +@Data +@TableName("sf_operation_site_role") +@Schema(description = "OperationSiteRole对象") +public class OperationSiteRoleEntity implements Serializable { + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + /** + * 角色名称 + */ + @Schema(description = "角色名称") + private String name; + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + + @Schema( + description = "状态 0.正常 1.删除" + ) + private Integer isDeleted; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/OperationTechnicalDataEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationTechnicalDataEntity.java new file mode 100644 index 0000000..8483a24 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/OperationTechnicalDataEntity.java @@ -0,0 +1,105 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 技术资料表 实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +@TableName("sf_operation_technical_data") +@Schema(description = "OperationTechnicalData对象") +public class OperationTechnicalDataEntity implements Serializable { + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + /** + * 资料名称 + */ + @Schema(description = "资料名称") + private String name; + /** + * 资料说明 + */ + @Schema(description = "资料说明") + private String description; + /** + * 路径 + */ + @Schema(description = "路径") + private String href; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建时间") + private Date createTime; + /** + * 创建人userId + */ + @Schema(description = "创建人userId") + private String createBy; + /** + * 创建人姓名 + */ + @Schema(description = "创建人姓名") + private String creator; + + private String status; + + private String updateName; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "修改时间") + private Date updateTime; + @Schema(description = "文件名称") + private String originalName; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.java new file mode 100644 index 0000000..6b5a727 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.java @@ -0,0 +1,111 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 平台通知公告表 实体类 + * + * @author lzp + * @since 2024-06-25 + */ +@Data +@TableName("sf_platform_announcement") +@Schema(description = "PlatformAnnouncement对象") +public class PlatformAnnouncementEntity implements Serializable { + + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private Long id; + + /** + * 公告标题 + */ + @Schema(description = "公告标题") + private String title; + /** + * 图文内容 + */ + @Schema(description = "图文内容") + private String html; + /** + * 附件 + */ + @Schema(description = "附件") + private String fileUrl; + /** + * 创建人userId + */ + @Schema(description = "创建人userId") + private String createBy; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建时间") + private Date createTime; + + /** + * 创建人姓名 + */ + @Schema(description = "创建人姓名") + private String creator; + /** + * 公告类型 1.系统通知 2.公司公告 3.功能升级 + */ + @Schema(description = "公告类型 1.系统通知 2.公司公告 3.功能升级") + private String objType; + /** + * 适用的服务商 + */ + @Schema(description = "适用的服务商") + private String siteId; + + @Schema(description = "0正常 1删除") + private String status; + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.java b/src/main/java/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.java new file mode 100644 index 0000000..0bee819 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.java @@ -0,0 +1,108 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * 平台员工权限表 实体类 + * + * @author BladeX + * @since 2024-06-27 + */ +@Data +@TableName("sf_platform_employee") +@Schema(description = "PlatformEmployee对象") +public class PlatformEmployeeEntity implements Serializable { + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_ID + ) + private String id; + /** + * 用户id + */ + @Schema(description = "用户id") + private String userId; + /** + * 覆盖省份,多个用逗号隔开 + */ + @Schema(description = "覆盖省份,多个用逗号隔开") + private String provinces; + /** + * 覆盖市,多个用逗号隔开 + */ + @Schema(description = "覆盖市,多个用逗号隔开") + private String city; + /** + * 覆盖区县,多个用逗号隔开 + */ + @Schema(description = "覆盖区县,多个用逗号隔开") + private String area; + /** + * 关联服务商,多个用逗号隔开 + */ + @Schema(description = "关联服务商,多个用逗号隔开") + private String siteId; + /** + * 关联电站,多个用逗号隔开 + */ + @Schema(description = "关联电站,多个用逗号隔开") + private String entryId; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String createName; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建时间") + private Date createTime; + + @Schema(description = "关联资方id,多个用逗号隔开") + private String partnerName; + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.java new file mode 100644 index 0000000..da5eb38 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import org.springblade.modules.operation.pojo.entity.AnnouncementReadinfoEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 平台通知查看明细 视图实体类 + * + * @author lzp + * @since 2024-06-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class AnnouncementReadinfoVO extends AnnouncementReadinfoEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/EditSiteEmpAuthVo.java b/src/main/java/org/springblade/modules/operation/pojo/vo/EditSiteEmpAuthVo.java new file mode 100644 index 0000000..a38538e --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/EditSiteEmpAuthVo.java @@ -0,0 +1,29 @@ +package org.springblade.modules.operation.pojo.vo; + + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +@Data +public class EditSiteEmpAuthVo { + + @Schema(description = "对应user表记录id") + @NotBlank(message = "必传项不能为空!") + private String id; + + /** + * 覆盖省份,多个用逗号隔开 + */ + @Schema(description = "覆盖省份,多个用逗号隔开") + private String provinces; + + @Schema(description = "覆盖市,多个用逗号隔开") + private String city; + /** + * 覆盖区县,多个用逗号隔开 + */ + @Schema(description = "覆盖区县,多个用逗号隔开") + private String area; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/EmpAuthVo.java b/src/main/java/org/springblade/modules/operation/pojo/vo/EmpAuthVo.java new file mode 100644 index 0000000..e2d4ab0 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/EmpAuthVo.java @@ -0,0 +1,24 @@ +package org.springblade.modules.operation.pojo.vo; + +import lombok.Data; + +@Data +public class EmpAuthVo { + private String id; + + private String provinces; + + private String city; + + private String area; + + private String siteId; + + private String entryId; + + private Long role; + + private String partnerName; + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationEmpVo.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationEmpVo.java new file mode 100644 index 0000000..5cdeacd --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationEmpVo.java @@ -0,0 +1,24 @@ +package org.springblade.modules.operation.pojo.vo; + +public class OperationEmpVo { + + private String empName; + + private String empMobile; + + public String getEmpName() { + return empName; + } + + public void setEmpName(String empName) { + this.empName = empName; + } + + public String getEmpMobile() { + return empMobile; + } + + public void setEmpMobile(String empMobile) { + this.empMobile = empMobile; + } +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceMeasuresVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceMeasuresVO.java new file mode 100644 index 0000000..b6083ea --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceMeasuresVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务措施表 视图实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationServiceMeasuresVO extends OperationServiceMeasuresEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.java new file mode 100644 index 0000000..9eb738f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务类型基础信息 视图实体类 + * + * @author BladeX + * @since 2024-06-17 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationServiceTypeVO extends OperationServiceTypeEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteEmployeeVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteEmployeeVO.java new file mode 100644 index 0000000..05590e5 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteEmployeeVO.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商员工信息表 视图实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteEmployeeVO extends OperationSiteEmployeeEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "登录账号") + private String loginName; + @Schema(description = "登录密码") + private String password; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteRoleVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteRoleVO.java new file mode 100644 index 0000000..cd36856 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteRoleVO.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商员工角色 视图实体类 + * + * @author lzp + * @since 2024-06-19 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteRoleVO extends OperationSiteRoleEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "员工数量") + private Long empCount; + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteVO.java new file mode 100644 index 0000000..f8d1416 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationSiteVO.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 网点基础信息表 视图实体类 + * + * @author lzp + * @since 2024-06-13 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationSiteVO extends OperationSiteEntity { + @Serial + private static final long serialVersionUID = 1L; + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "员工数量") + private Long amount; + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "工程师数量") + private Long empamount; + @Schema(description = "登录账号") + private String loginName; + @Schema(description = "登录密码") + private String password; + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "结算数量") + private Long orderSetCount; + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.java new file mode 100644 index 0000000..43d4eee --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 技术资料表 视图实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationTechnicalDataVO extends OperationTechnicalDataEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.java new file mode 100644 index 0000000..4b48344 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.java @@ -0,0 +1,58 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.operation.pojo.entity.PlatformAnnouncementEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 平台通知公告表 视图实体类 + * + * @author lzp + * @since 2024-06-25 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformAnnouncementVO extends PlatformAnnouncementEntity { + @Serial + private static final long serialVersionUID = 1L; + @Schema(description = "阅读明细id,参数为空则未读 ,有值则已读") + private String bid; + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema(description = "查看人userId") + private Long readId; + + + +} diff --git a/src/main/java/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.java b/src/main/java/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.java new file mode 100644 index 0000000..436364f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.pojo.vo; + +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 平台员工权限表 视图实体类 + * + * @author BladeX + * @since 2024-06-27 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PlatformEmployeeVO extends PlatformEmployeeEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IAnnouncementReadinfoService.java b/src/main/java/org/springblade/modules/operation/service/IAnnouncementReadinfoService.java new file mode 100644 index 0000000..bcadb92 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IAnnouncementReadinfoService.java @@ -0,0 +1,41 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.pojo.entity.AnnouncementReadinfoEntity; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 平台通知查看明细 服务类 + * + * @author lzp + * @since 2024-06-25 + */ +public interface IAnnouncementReadinfoService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IOperationServiceMeasuresService.java b/src/main/java/org/springblade/modules/operation/service/IOperationServiceMeasuresService.java new file mode 100644 index 0000000..99fd067 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IOperationServiceMeasuresService.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.pojo.dto.OperationServiceMeasuresDTO; +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceMeasuresVO; +import org.springblade.modules.operation.excel.OperationServiceMeasuresExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 服务措施表 服务类 + * + * @author lzp + * @since 2024-06-18 + */ +public interface IOperationServiceMeasuresService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationServiceMeasures + * @return + */ + IPage selectOperationServiceMeasuresPage(IPage page, OperationServiceMeasuresVO operationServiceMeasures); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationServiceMeasures(Wrapper queryWrapper); + + boolean saveServiceMeasures(OperationServiceMeasuresDTO dto); + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IOperationServiceTypeService.java b/src/main/java/org/springblade/modules/operation/service/IOperationServiceTypeService.java new file mode 100644 index 0000000..4644b10 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IOperationServiceTypeService.java @@ -0,0 +1,69 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.pojo.dto.OperationServiceTypeDTO; +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceTypeVO; +import org.springblade.modules.operation.excel.OperationServiceTypeExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 服务类型基础信息 服务类 + * + * @author BladeX + * @since 2024-06-17 + */ +public interface IOperationServiceTypeService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationServiceType + * @return + */ + IPage selectOperationServiceTypePage(IPage page, OperationServiceTypeVO operationServiceType); + + List pageServiceType(); + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationServiceType(Wrapper queryWrapper); + + + boolean saveList(OperationServiceTypeDTO dto); + + boolean deleteStatus(String id); + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IOperationSiteEmployeeService.java b/src/main/java/org/springblade/modules/operation/service/IOperationSiteEmployeeService.java new file mode 100644 index 0000000..4af357d --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IOperationSiteEmployeeService.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.tool.api.R; +import org.springblade.modules.operation.pojo.dto.OperationSiteEmployeeDTO; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.EditSiteEmpAuthVo; +import org.springblade.modules.operation.pojo.vo.OperationSiteEmployeeVO; +import org.springblade.modules.operation.excel.OperationSiteEmployeeExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 服务商员工信息表 服务类 + * + * @author lzp + * @since 2024-06-18 + */ +public interface IOperationSiteEmployeeService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationSiteEmployee + * @return + */ + IPage selectOperationSiteEmployeePage(IPage page, OperationSiteEmployeeVO operationSiteEmployee); + + OperationSiteEmployeeVO getSiteEmployee(String id); + + OperationSiteEmployeeEntity getEmployeByUserId(Long userId); + + R saveSiteEmp(OperationSiteEmployeeDTO dto); + + boolean updateSiteEmp(OperationSiteEmployeeDTO dto); + + boolean updateEmpStatus(String id,String status); + + boolean deleteSiteEmp(String id); + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSiteEmployee(Wrapper queryWrapper); + + boolean editSiteEmpAuth(EditSiteEmpAuthVo authVo); + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IOperationSiteRoleService.java b/src/main/java/org/springblade/modules/operation/service/IOperationSiteRoleService.java new file mode 100644 index 0000000..3b7cb81 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IOperationSiteRoleService.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.secure.BladeUser; +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteRoleVO; +import org.springblade.modules.operation.excel.OperationSiteRoleExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 服务商员工角色 服务类 + * + * @author lzp + * @since 2024-06-19 + */ +public interface IOperationSiteRoleService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationSiteRole + * @return + */ + IPage selectOperationSiteRolePage(IPage page, OperationSiteRoleVO operationSiteRole); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSiteRole(Wrapper queryWrapper); + + List roleList(BladeUser bladeUser); + + + boolean deletaStatus(String id); + + boolean saveRole(OperationSiteRoleEntity operationSiteRole); + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IOperationSiteService.java b/src/main/java/org/springblade/modules/operation/service/IOperationSiteService.java new file mode 100644 index 0000000..365a34f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IOperationSiteService.java @@ -0,0 +1,84 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.operation.excel.OperationSiteExcel; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.excel.EntrySiteExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * 网点基础信息表 服务类 + * + * @author lzp + * @since 2024-06-13 + */ +public interface IOperationSiteService extends IService { + String getOmProviderId(); + + /** + * 自定义分页 + * + * @param page + * @param operationSite + * @return + */ + IPage selectOperationSitePage(IPage page, OperationSiteVO operationSite); + + + List selectOperationSiteList(OperationSiteVO operationSite); + + /** + * 结算账户 + */ + IPage findSiteAmountPage(IPage page, OperationSiteVO operationSite); + + + List findSiteList(); + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationSite(Wrapper queryWrapper); + + String saveSite(OperationSiteApplyEntity operationSite); + + + boolean updateStatus(String id,String status); + + + OperationSiteVO getSiteDetail(String siteId); + + boolean deleteSite(String id); +} diff --git a/src/main/java/org/springblade/modules/operation/service/IOperationTechnicalDataService.java b/src/main/java/org/springblade/modules/operation/service/IOperationTechnicalDataService.java new file mode 100644 index 0000000..e75338f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IOperationTechnicalDataService.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import org.springblade.modules.operation.pojo.vo.OperationTechnicalDataVO; +import org.springblade.modules.operation.excel.OperationTechnicalDataExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 技术资料表 服务类 + * + * @author BladeX + * @since 2024-06-26 + */ +public interface IOperationTechnicalDataService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationTechnicalData + * @return + */ + IPage selectOperationTechnicalDataPage(IPage page, OperationTechnicalDataVO operationTechnicalData); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationTechnicalData(Wrapper queryWrapper); + + boolean addTechnical(OperationTechnicalDataEntity dataEntity); + + boolean updateTechnical(OperationTechnicalDataEntity dataEntity); + + boolean deleteTechnical(String ids); + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IPlatformAnnouncementService.java b/src/main/java/org/springblade/modules/operation/service/IPlatformAnnouncementService.java new file mode 100644 index 0000000..9e3f2a5 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IPlatformAnnouncementService.java @@ -0,0 +1,56 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.pojo.entity.PlatformAnnouncementEntity; +import org.springblade.modules.operation.pojo.vo.PlatformAnnouncementVO; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * 平台通知公告表 服务类 + * + * @author lzp + * @since 2024-06-25 + */ +public interface IPlatformAnnouncementService extends IService { + /** + * 自定义分页 + * + * @param page + * @param platformAnnouncement + * @return + */ + IPage selectPlatformAnnouncementPage(IPage page, PlatformAnnouncementVO platformAnnouncement); + + + List findAnnouncementList(IPage page,PlatformAnnouncementVO vo); + + PlatformAnnouncementVO findAnnouncementDetail(PlatformAnnouncementVO plat); + +} diff --git a/src/main/java/org/springblade/modules/operation/service/IPlatformEmployeeService.java b/src/main/java/org/springblade/modules/operation/service/IPlatformEmployeeService.java new file mode 100644 index 0000000..db65786 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/IPlatformEmployeeService.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.pojo.vo.PlatformEmployeeVO; +import org.springblade.modules.operation.excel.PlatformEmployeeExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 平台员工权限表 服务类 + * + * @author BladeX + * @since 2024-06-27 + */ +public interface IPlatformEmployeeService extends IService { + + PlatformEmployeeEntity empDetail(String userId); + + boolean editeEmpAuth(PlatformEmployeeEntity employeeEntity); + + + EmpAuthVo findPlatEmpAuthByUserId(Long userId); +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.java new file mode 100644 index 0000000..2b7151f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.operation.pojo.entity.AnnouncementReadinfoEntity; +import org.springblade.modules.operation.mapper.AnnouncementReadinfoMapper; +import org.springblade.modules.operation.service.IAnnouncementReadinfoService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.List; + +/** + * 平台通知查看明细 服务实现类 + * + * @author lzp + * @since 2024-06-25 + */ +@Service +public class AnnouncementReadinfoServiceImpl extends ServiceImpl implements IAnnouncementReadinfoService { + + + + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.java new file mode 100644 index 0000000..4dc9ac0 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.java @@ -0,0 +1,90 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.compress.utils.Lists; +import org.springblade.modules.operation.pojo.dto.OperationServiceMeasuresDTO; +import org.springblade.modules.operation.pojo.dto.OperationServiceTypeDTO; +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceMeasuresVO; +import org.springblade.modules.operation.excel.OperationServiceMeasuresExcel; +import org.springblade.modules.operation.mapper.OperationServiceMeasuresMapper; +import org.springblade.modules.operation.service.IOperationServiceMeasuresService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; + +import java.util.Date; +import java.util.List; + +/** + * 服务措施表 服务实现类 + * + * @author lzp + * @since 2024-06-18 + */ +@Service +public class OperationServiceMeasuresServiceImpl extends ServiceImpl implements IOperationServiceMeasuresService { + + @Autowired + OperationServiceTypeServiceImpl typeService; + @Override + public IPage selectOperationServiceMeasuresPage(IPage page, OperationServiceMeasuresVO operationServiceMeasures) { + return page.setRecords(baseMapper.selectOperationServiceMeasuresPage(page, operationServiceMeasures)); + } + + + @Override + public List exportOperationServiceMeasures(Wrapper queryWrapper) { + List operationServiceMeasuresList = baseMapper.exportOperationServiceMeasures(queryWrapper); + //operationServiceMeasuresList.forEach(operationServiceMeasures -> { + // operationServiceMeasures.setTypeName(DictCache.getValue(DictEnum.YES_NO, OperationServiceMeasures.getType())); + //}); + return operationServiceMeasuresList; + } + + @Override + public boolean saveServiceMeasures(OperationServiceMeasuresDTO dto) { + List list = Lists.newArrayList(); + OperationServiceTypeEntity type = typeService.getById(dto.getServiceTypeId()); + Date date=new Date(); + for(String name :dto.getMeasures()){ + OperationServiceMeasuresEntity entity = new OperationServiceMeasuresDTO(); + entity.setServiceMeasures(name); + entity.setServiceType(type.getName()); + entity.setServiceTypeId(dto.getServiceTypeId()); + entity.setIsDeleted(0); + entity.setCreateTime(date); + list.add(entity); + } + return saveBatch(list,list.size()); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/OperationServiceTypeServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/OperationServiceTypeServiceImpl.java new file mode 100644 index 0000000..119cb0c --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/OperationServiceTypeServiceImpl.java @@ -0,0 +1,99 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.compress.utils.Lists; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.operation.pojo.dto.OperationServiceTypeDTO; +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceTypeVO; +import org.springblade.modules.operation.excel.OperationServiceTypeExcel; +import org.springblade.modules.operation.mapper.OperationServiceTypeMapper; +import org.springblade.modules.operation.service.IOperationServiceTypeService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.Date; +import java.util.List; + +/** + * 服务类型基础信息 服务实现类 + * + * @author BladeX + * @since 2024-06-17 + */ +@Service +public class OperationServiceTypeServiceImpl extends ServiceImpl implements IOperationServiceTypeService { + + @Override + public IPage selectOperationServiceTypePage(IPage page, OperationServiceTypeVO operationServiceType) { + return page.setRecords(baseMapper.selectOperationServiceTypePage(page, operationServiceType)); + } + + @Override + public List pageServiceType() { + return baseMapper.pageServiceType(); + } + + + @Override + public List exportOperationServiceType(Wrapper queryWrapper) { + List operationServiceTypeList = baseMapper.exportOperationServiceType(queryWrapper); + //operationServiceTypeList.forEach(operationServiceType -> { + // operationServiceType.setTypeName(DictCache.getValue(DictEnum.YES_NO, OperationServiceType.getType())); + //}); + return operationServiceTypeList; + } + + @Override + public boolean saveList(OperationServiceTypeDTO dto) { + + List types = Lists.newArrayList(); + int sort =1; + for(OperationServiceTypeEntity entity :dto.getTypelist()){ + entity.setSort(sort); + entity.setCreateTime(new Date()); + entity.setStatus("0"); + sort ++; + types.add(entity); + } + return saveBatch(types); + } + + @Override + public boolean deleteStatus(String id) { + if(StringUtil.isBlank(id)) return false; + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper + .eq(OperationServiceTypeEntity::getId,id); + updateWrapper.set(OperationServiceTypeEntity::getStatus,"1"); + return this.update(updateWrapper); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.java new file mode 100644 index 0000000..82a0208 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.java @@ -0,0 +1,222 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DigestUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.operation.pojo.dto.OperationSiteEmployeeDTO; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EditSiteEmpAuthVo; +import org.springblade.modules.operation.pojo.vo.OperationSiteEmployeeVO; +import org.springblade.modules.operation.excel.OperationSiteEmployeeExcel; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.service.IOperationSiteEmployeeService; +import org.springblade.modules.system.pojo.entity.RoleMenu; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.impl.UserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 服务商员工信息表 服务实现类 + * + * @author lzp + * @since 2024-06-18 + */ +@Service +public class OperationSiteEmployeeServiceImpl extends ServiceImpl implements IOperationSiteEmployeeService { + @Autowired + UserServiceImpl userService; + @Autowired + OperationSiteServiceImpl siteService; + @Override + public IPage selectOperationSiteEmployeePage(IPage page, OperationSiteEmployeeVO operationSiteEmployee) { + BladeUser bladeUser = AuthUtil.getUser(); + User dquser = userService.getById(bladeUser.getUserId()); + if("3".equals(dquser.getDeptId())){ + OperationSiteEntity site = siteService.findSiteByUserId(bladeUser.getUserId()); + operationSiteEmployee.setSiteId(site.getId()); + }else if("5".equals(dquser.getDeptId())){ + String siteId = baseMapper.findSiteIdByUserId(bladeUser.getUserId()); + operationSiteEmployee.setSiteId(siteId); + } + return page.setRecords(baseMapper.selectOperationSiteEmployeePage(page, operationSiteEmployee)); + } + + @Override + public OperationSiteEmployeeVO getSiteEmployee(String id) { + return baseMapper.getSiteEmployee(id); + } + + @Override + public OperationSiteEmployeeEntity getEmployeByUserId(Long userId) { + return baseMapper.findByuserId(userId); + } + + + @Override + @Transactional(rollbackFor = Exception.class) + public R saveSiteEmp(OperationSiteEmployeeDTO dto) { + BladeUser bladeUser = AuthUtil.getUser(); + User dquser = userService.getById(bladeUser.getUserId()); + if(!"3".equals(dquser.getDeptId()) && !"5".equals(dquser.getDeptId())){ + return R.fail(201,"当前账号无权添加服务工程师"); + } + if(userService.userByAccount(bladeUser.getTenantId(), dto.getLoginName()) != null){ + return R.fail(201,"登录账号已存在"); + } + OperationSiteEmployeeEntity emp = new OperationSiteEmployeeEntity(); + if("3".equals(dquser.getDeptId())){ + OperationSiteEntity site = siteService.findSiteByUserId(bladeUser.getUserId()); + emp.setSiteId(site.getId()); + }else if("5".equals(dquser.getDeptId())){ + String siteId = baseMapper.findSiteIdByUserId(bladeUser.getUserId()); + emp.setSiteId(siteId); + } + User user = new User(); + user.setStatus(dto.getIsDeleted()); + user.setUserType(1); + user.setIsDeleted(dto.getIsDeleted()); + user.setName(dto.getName()); + user.setTenantId("000000"); + user.setRealName(dto.getName()); + user.setRoleId("1803307073501319170"); + if(dto.getRole()==1){ + user.setDeptId("6"); + }else{ + user.setDeptId("5"); + } + user.setPostId("1803302359644688386"); + user.setAccount(dto.getLoginName()); + user.setPassword(dto.getPassword()); + boolean userck = userService.submit(user); + if(!userck){ + return R.fail(201,"保存失败"); + } + emp.setUserId(user.getId()); + emp.setName(dto.getName()); + emp.setMobile(dto.getMobile()); + emp.setRole(dto.getRole()); + emp.setIsDeleted(dto.getIsDeleted()); + emp.setYears(dto.getYears()); + emp.setHiredate(dto.getHiredate()); + emp.setCreateTime(new Date()); + return R.status(save(emp)); + } + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateSiteEmp(OperationSiteEmployeeDTO dto) { + BladeUser bladeUser = AuthUtil.getUser(); + OperationSiteEmployeeEntity emp =getById(dto.getId()); + if(userService.userByAccountUserId(bladeUser.getTenantId(), dto.getLoginName(),emp.getUserId()) != null){ + throw new ServiceException("登录账号已存在"); + } + User user = userService.userByUserId(emp.getUserId()); + user.setAccount(dto.getLoginName()); + if(StringUtil.isNotBlank(dto.getPassword()) && !"password".equals(dto.getPassword())){ + user.setPassword(DigestUtil.encrypt(dto.getPassword())); + } + user.setStatus(dto.getIsDeleted()); + + boolean userck = userService.updateById(user); + if(!userck){ + return false; + } + emp.setRole(dto.getRole()); + emp.setIsDeleted(dto.getIsDeleted()); + emp.setName(dto.getName()); + emp.setMobile(dto.getMobile()); + emp.setYears(dto.getYears()); + emp.setHiredate(dto.getHiredate()); + return updateById(emp); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateEmpStatus(String id, String status) { + OperationSiteEmployeeEntity emp = getBaseMapper().selectById(id); + emp.setIsDeleted(Integer.valueOf(status)); + User us = userService.userByUserId(emp.getUserId()); + us.setStatus(Integer.valueOf(status)); + boolean chstatus = userService.updateById(us); + if(!chstatus){ + throw new ServiceException("操作失败"); + } + return baseMapper.updateById(emp)>0; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteSiteEmp(String id) { + OperationSiteEmployeeEntity emp = getBaseMapper().selectById(id); + emp.setIsDeleted(1); + /* User us = userService.userByUserId(emp.getUserId()); + us.setStatus(2);// 1.正常 2.其他 + us.setIsDeleted(1);*/ + userService.update(Wrappers.update().lambda().set(User::getStatus, 2).set(User ::getIsDeleted,1).eq(User::getId, emp.getUserId())); + return updateById(emp); + } + + public long findEmpCount(String id){ + return baseMapper.findEmpCount(id); + } + + + @Override + public List exportOperationSiteEmployee(Wrapper queryWrapper) { + List operationSiteEmployeeList = baseMapper.exportOperationSiteEmployee(queryWrapper); + + return operationSiteEmployeeList; + } + + @Override + public boolean editSiteEmpAuth(EditSiteEmpAuthVo authVo) { + BladeUser bladeUser = AuthUtil.getUser(); + OperationSiteEmployeeEntity emp =getById(authVo.getId()); + emp.setProvinces(authVo.getProvinces()); + emp.setCity(authVo.getCity()); + emp.setArea(authVo.getArea()); + emp.setUpdateTime(new Date()); + return updateById(emp); + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.java new file mode 100644 index 0000000..3f752c7 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.java @@ -0,0 +1,125 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteRoleVO; +import org.springblade.modules.operation.excel.OperationSiteRoleExcel; +import org.springblade.modules.operation.mapper.OperationSiteRoleMapper; +import org.springblade.modules.operation.service.IOperationSiteRoleService; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.impl.UserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import java.util.List; + +/** + * 服务商员工角色 服务实现类 + * + * @author lzp + * @since 2024-06-19 + */ +@Service +public class OperationSiteRoleServiceImpl extends ServiceImpl implements IOperationSiteRoleService { + @Autowired + UserServiceImpl userService; + @Autowired + OperationSiteServiceImpl siteService; + @Autowired + OperationSiteEmployeeMapper employeeMapper; + @Override + public IPage selectOperationSiteRolePage(IPage page, OperationSiteRoleVO operationSiteRole) { + BladeUser user = AuthUtil.getUser(); + if("3".equals(user.getDeptId())){ + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + operationSiteRole.setSiteId(site.getId()); + }else if("5".equals(user.getDeptId())){ + String siteId = employeeMapper.findSiteIdByUserId(user.getUserId()); + operationSiteRole.setSiteId(siteId); + }else{ + return null; + } + + return page.setRecords(baseMapper.selectOperationSiteRolePage(page, operationSiteRole)); + } + + + @Override + public List exportOperationSiteRole(Wrapper queryWrapper) { + List operationSiteRoleList = baseMapper.exportOperationSiteRole(queryWrapper); + //operationSiteRoleList.forEach(operationSiteRole -> { + // operationSiteRole.setTypeName(DictCache.getValue(DictEnum.YES_NO, OperationSiteRole.getType())); + //}); + return operationSiteRoleList; + } + + @Override + public List roleList(BladeUser bladeUser) { + User dquser = userService.getById(bladeUser.getUserId()); + String siteId=""; + if("3".equals(dquser.getDeptId())){ + OperationSiteEntity site = siteService.findSiteByUserId(bladeUser.getUserId()); + siteId=site.getId(); + }else if("5".equals(dquser.getDeptId())){ + siteId = employeeMapper.findSiteIdByUserId(bladeUser.getUserId()); + } + return baseMapper.roleList(siteId); + } + + @Override + public boolean deletaStatus(String id) { + OperationSiteRoleEntity role = baseMapper.selectById(id); + role.setIsDeleted(1); + return updateById(role); + } + + @Override + public boolean saveRole(OperationSiteRoleEntity operationSiteRole) { + BladeUser user = AuthUtil.getUser(); + User dquser = userService.getById(user.getUserId()); + if("3".equals(dquser.getDeptId())){ + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + operationSiteRole.setSiteId(site.getId()); + }else if("5".equals(dquser.getDeptId())){ + String siteId = employeeMapper.findSiteIdByUserId(user.getUserId()); + operationSiteRole.setSiteId(siteId); + }else{ + throw new ServiceException("当前账号不可操作"); + } + operationSiteRole.setIsDeleted(0); + return save(operationSiteRole); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.java new file mode 100644 index 0000000..295a99a --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.java @@ -0,0 +1,270 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DigestUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.apply.operationSiteApply.pojo.entity.OperationSiteApplyEntity; +import org.springblade.modules.operation.constant.SourceConstants; +import org.springblade.modules.operation.excel.OperationSiteExcel; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import org.springblade.modules.operation.excel.EntrySiteExcel; +import org.springblade.modules.operation.mapper.OperationSiteMapper; +import org.springblade.modules.operation.service.IOperationSiteService; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.impl.UserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 网点基础信息表 服务实现类 + * + * @author lzp + * @since 2024-06-13 + */ +@Service +public class OperationSiteServiceImpl extends ServiceImpl implements IOperationSiteService { + + @Autowired + UserServiceImpl userService; + @Autowired + OperationSiteEmployeeMapper employeeMapper; + + @Override + public String getOmProviderId() { + BladeUser user = AuthUtil.getUser(); + String omProviderId = null; + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = this.baseMapper.findSiteByUserId(user.getUserId()); + omProviderId = site.getId(); + } else if ("5".equals(user.getDeptId())|| "6".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo!=null){ + omProviderId =authVo.getSiteId(); + } + } + return omProviderId; + } + + @Override + public IPage selectOperationSitePage(IPage page, OperationSiteVO operationSite) { + operationSite.setId(getOmProviderId()); + return page.setRecords(baseMapper.selectOperationSitePage(page, operationSite)); + } + + public List selectOperationSiteList(OperationSiteVO operationSite){ + operationSite.setId(getOmProviderId()); + return baseMapper.selectOperationSiteList(operationSite); + } + + @Override + public IPage findSiteAmountPage(IPage page, OperationSiteVO operationSite) { + operationSite.setId(getOmProviderId()); + return page.setRecords(baseMapper.findSiteAmountPage(page, operationSite)); + } + + + @Override + public List findSiteList(){ + return baseMapper.findSiteList(); + } + + + @Override + public List exportOperationSite(Wrapper queryWrapper) { + + List operationSiteList = baseMapper.exportOperationSite(queryWrapper); + //operationSiteList.forEach(operationSite -> { + // operationSite.setTypeName(DictCache.getValue(DictEnum.YES_NO, OperationSite.getType())); + //}); + + return operationSiteList; + } + + public OperationSiteEntity findSiteByUserId(Long userId){ + return baseMapper.findSiteByUserId(userId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String saveSite(OperationSiteApplyEntity operationSite) { + if(StringUtil.isNotBlank(operationSite.getSiteId())){ + return updateSite(operationSite); + } + + BladeUser bladeUser = AuthUtil.getUser(); + if(userService.userByAccount(bladeUser.getTenantId(), operationSite.getLoginName()) != null){ + throw new ServiceException("登录账号已存在"); + } + OperationSiteEntity siteName = baseMapper.selectOne(Wrappers.query().lambda().eq(OperationSiteEntity::getName,operationSite.getName()).ne(OperationSiteEntity::getStatus,"1")); + if(siteName!= null){ + throw new ServiceException("服务商名称已存在"); + } + OperationSiteEntity site = new OperationSiteEntity(); + + User user = new User(); + user.setStatus(Integer.valueOf(operationSite.getSiteStatus())); + user.setIsDeleted(Integer.valueOf(operationSite.getSiteStatus())); + user.setUserType(1); + user.setTenantId("000000"); + user.setName(operationSite.getName()); + user.setAccount(operationSite.getLoginName()); + user.setPassword(operationSite.getPassword()); + user.setRealName(operationSite.getName()); + user.setRoleId("1798170366724702210"); + user.setDeptId("3"); + user.setPostId("1803302359644688386"); + //user.setStatus(0); + boolean userck = userService.submit(user); + if(!userck){ + throw new ServiceException("登录账号保存失败"); + } + site.setUserId(user.getId()); + site.setStatus(operationSite.getSiteStatus()); + site.setCreateBy(bladeUser.getUserId()); + site.setCreateTime(new Date()); + site.setCheckFlag(SourceConstants.ONE); + site.setName(operationSite.getName()); + site.setContacts(operationSite.getContacts()); + site.setMobile(operationSite.getMobile()); + site.setProvince(operationSite.getProvince()); + site.setCity(operationSite.getCity()); + site.setArea(operationSite.getArea()); + site.setProvinceCode(operationSite.getProvinceCode()); + site.setCityCode(operationSite.getCityCode()); + site.setAreaCode(operationSite.getAreaCode()); + site.setAddress(operationSite.getAddress()); + site.setLicenseImg(operationSite.getLicenseImg()); + site.setTotalWallet(BigDecimal.ZERO); + site.setWithdrawableCash(BigDecimal.ZERO); + site.setRefusalCount(0); + site.setSetType(operationSite.getSetType()); + site.setEarnestMoney(operationSite.getEarnestMoney()); + site.setPayTheDeposit(operationSite.getPayTheDeposit()); + if(!save(site)){ + throw new ServiceException("登录账号保存失败"); + } + return site.getId(); + } + + + @Transactional(rollbackFor = Exception.class) + public String updateSite(OperationSiteApplyEntity operationSite) { + BladeUser bladeUser = AuthUtil.getUser(); + OperationSiteEntity site =getById(operationSite.getSiteId()); + if(userService.userByAccountUserId(bladeUser.getTenantId(), operationSite.getLoginName(),site.getUserId()) != null){ + throw new ServiceException("登录账号已存在"); + } + OperationSiteEntity siteName = baseMapper.selectOne(Wrappers.query().lambda().eq(OperationSiteEntity::getName,operationSite.getName()).ne(OperationSiteEntity::getStatus,"1").ne(OperationSiteEntity::getId,operationSite.getSiteId())); + if(siteName!= null){ + throw new ServiceException("服务商名称已存在"); + } + + User user = userService.userByUserId(site.getUserId()); + user.setAccount(operationSite.getLoginName()); + if(StringUtil.isNotBlank(operationSite.getPassword())){ + user.setPassword(DigestUtil.encrypt(operationSite.getPassword())); + } + if("3".equals(operationSite.getSiteStatus())){ + user.setStatus(3); + }else{ + user.setStatus(0); + } + user.setRealName(operationSite.getName()); + user.setName(operationSite.getName()); + boolean userck = userService.updateById(user); + if(!userck){ + throw new ServiceException("更新保存失败"); + } + site.setStatus(operationSite.getSiteStatus()); + site.setName(operationSite.getName()); + site.setContacts(operationSite.getContacts()); + site.setMobile(operationSite.getMobile()); + site.setProvince(operationSite.getProvince()); + site.setCity(operationSite.getCity()); + site.setArea(operationSite.getArea()); + site.setProvinceCode(operationSite.getProvinceCode()); + site.setCityCode(operationSite.getCityCode()); + site.setAreaCode(operationSite.getAreaCode()); + site.setAddress(operationSite.getAddress()); + site.setLicenseImg(operationSite.getLicenseImg()); + site.setEarnestMoney(operationSite.getEarnestMoney()); + site.setPayTheDeposit(operationSite.getPayTheDeposit()); + updateById(site); + return site.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateStatus(String id, String status) { + //BladeUser user = AuthUtil.getUser(); + OperationSiteEntity site = getBaseMapper().selectById(id); + site.setStatus(status); + site.setUpdateTime(new Date()); + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper + .eq(User::getId,site.getUserId()).set(User::getStatus,status); + userService.update(updateWrapper); + return updateById(site); + } + + @Override + public OperationSiteVO getSiteDetail(String siteId) { + return getBaseMapper().getSiteDetail(siteId); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteSite(String id) { + + //employeeService.findEmpCount(id); + + OperationSiteEntity site = getBaseMapper().selectById(id); + site.setStatus("1"); + site.setUpdateTime(new Date()); + + userService.deleteLogic(Func.toLongList(site.getUserId().toString())); + return updateById(site); + } + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/OperationTechnicalDataServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/OperationTechnicalDataServiceImpl.java new file mode 100644 index 0000000..ce36e87 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/OperationTechnicalDataServiceImpl.java @@ -0,0 +1,100 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import org.springblade.modules.operation.pojo.vo.OperationTechnicalDataVO; +import org.springblade.modules.operation.excel.OperationTechnicalDataExcel; +import org.springblade.modules.operation.mapper.OperationTechnicalDataMapper; +import org.springblade.modules.operation.service.IOperationTechnicalDataService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 技术资料表 服务实现类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Service +public class OperationTechnicalDataServiceImpl extends ServiceImpl implements IOperationTechnicalDataService { + + @Override + public IPage selectOperationTechnicalDataPage(IPage page, OperationTechnicalDataVO operationTechnicalData) { + return page.setRecords(baseMapper.selectOperationTechnicalDataPage(page, operationTechnicalData)); + } + + + @Override + public List exportOperationTechnicalData(Wrapper queryWrapper) { + List operationTechnicalDataList = baseMapper.exportOperationTechnicalData(queryWrapper); + return operationTechnicalDataList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addTechnical(OperationTechnicalDataEntity dataEntity) { + BladeUser user = AuthUtil.getUser(); + if(StringUtil.isBlank(dataEntity.getName())){ + throw new ServiceException("标题不能为空!"); + } + if(StringUtil.isBlank(dataEntity.getHref())){ + throw new ServiceException("附件不能为空!"); + } + dataEntity.setCreator(user.getNickName()); + dataEntity.setStatus("0"); + dataEntity.setCreateTime(new Date()); + dataEntity.setCreateBy(String.valueOf(user.getUserId())); + return save(dataEntity); + } + + @Override + public boolean updateTechnical(OperationTechnicalDataEntity dataEntity) { + BladeUser user = AuthUtil.getUser(); + dataEntity.setUpdateTime(new Date()); + dataEntity.setUpdateName(user.getNickName()); + return updateById(dataEntity); + } + + @Override + public boolean deleteTechnical(String ids) { + BladeUser user = AuthUtil.getUser(); + int i=baseMapper.deleteTechnical(ids,user.getNickName()); + return i>0?true:false; + } + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.java new file mode 100644 index 0000000..83c7e46 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jodd.util.StringUtil; +import org.apache.commons.lang.StringEscapeUtils; +import org.springblade.modules.operation.pojo.entity.PlatformAnnouncementEntity; +import org.springblade.modules.operation.pojo.vo.PlatformAnnouncementVO; +import org.springblade.modules.operation.mapper.PlatformAnnouncementMapper; +import org.springblade.modules.operation.service.IPlatformAnnouncementService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * 平台通知公告表 服务实现类 + * + * @author lzp + * @since 2024-06-25 + */ +@Service +public class PlatformAnnouncementServiceImpl extends ServiceImpl implements IPlatformAnnouncementService { + + @Override + public IPage selectPlatformAnnouncementPage(IPage page, PlatformAnnouncementVO platformAnnouncement) { + List list=baseMapper.selectPlatformAnnouncementPage(page, platformAnnouncement); + return page.setRecords(list); + } + + @Override + public List findAnnouncementList(IPage page,PlatformAnnouncementVO vo) { + + return baseMapper.findAnnouncementList(page,vo); + } + + @Override + public PlatformAnnouncementVO findAnnouncementDetail(PlatformAnnouncementVO plat) { + return baseMapper.findAnnouncementDetail(plat); + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.java b/src/main/java/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.java new file mode 100644 index 0000000..c5d72e9 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.java @@ -0,0 +1,104 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.pojo.vo.PlatformEmployeeVO; +import org.springblade.modules.operation.excel.PlatformEmployeeExcel; +import org.springblade.modules.operation.mapper.PlatformEmployeeMapper; +import org.springblade.modules.operation.service.IPlatformEmployeeService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 平台员工权限表 服务实现类 + * + * @author BladeX + * @since 2024-06-27 + */ +@Service +public class PlatformEmployeeServiceImpl extends ServiceImpl implements IPlatformEmployeeService { + + @Override + public PlatformEmployeeEntity empDetail(String userId) { + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(PlatformEmployeeEntity::getUserId,userId); + PlatformEmployeeEntity employeeEntity=getOne(queryWrapper); + if(employeeEntity==null){ + return new PlatformEmployeeEntity(); + }else { + return employeeEntity; + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean editeEmpAuth(PlatformEmployeeEntity employeeEntity) { + BladeUser user = AuthUtil.getUser(); + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(PlatformEmployeeEntity::getUserId,employeeEntity.getUserId()); + PlatformEmployeeEntity oldEmployData=getOne(queryWrapper); + if(oldEmployData==null){ + employeeEntity.setCreateTime(new Date()); + employeeEntity.setCreateName(user.getNickName()); + return saveOrUpdate(employeeEntity); + }else{ + oldEmployData.setProvinces(employeeEntity.getProvinces()); + oldEmployData.setCity(employeeEntity.getCity()); + oldEmployData.setArea(employeeEntity.getArea()); + oldEmployData.setSiteId(employeeEntity.getSiteId()); + oldEmployData.setEntryId(employeeEntity.getEntryId()); + oldEmployData.setPartnerName(employeeEntity.getPartnerName()); + return updateById(oldEmployData); + } + + } + + @Override + public EmpAuthVo findPlatEmpAuthByUserId(Long userId){ + return baseMapper.findPlatEmpAuthByUserId(userId); + } + + public List findEmpUserId(String roleId,String province,String city,String siteId){ + return baseMapper.findEmpUserId(roleId, province, city, siteId); + } + public List getFitUserEmpId(String roleId,String province,String city,String siteId,String ifOrder){ + return baseMapper.getFitUserEmpId(roleId, province, city, siteId,ifOrder); + } +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.java new file mode 100644 index 0000000..f56a983 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.AnnouncementReadinfoEntity; +import org.springblade.modules.operation.pojo.vo.AnnouncementReadinfoVO; + +import java.util.Objects; + +/** + * 平台通知查看明细 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-25 + */ +public class AnnouncementReadinfoWrapper extends BaseEntityWrapper { + + public static AnnouncementReadinfoWrapper build() { + return new AnnouncementReadinfoWrapper(); + } + + + @Override + public AnnouncementReadinfoVO entityVO(AnnouncementReadinfoEntity entity) { + return null; + } +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.java new file mode 100644 index 0000000..4dc8404 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceMeasuresVO; +import java.util.Objects; + +/** + * 服务措施表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-18 + */ +public class OperationServiceMeasuresWrapper extends BaseEntityWrapper { + + public static OperationServiceMeasuresWrapper build() { + return new OperationServiceMeasuresWrapper(); + } + + @Override + public OperationServiceMeasuresVO entityVO(OperationServiceMeasuresEntity operationServiceMeasures) { + OperationServiceMeasuresVO operationServiceMeasuresVO = Objects.requireNonNull(BeanUtil.copyProperties(operationServiceMeasures, OperationServiceMeasuresVO.class)); + + //User createUser = UserCache.getUser(operationServiceMeasures.getCreateUser()); + //User updateUser = UserCache.getUser(operationServiceMeasures.getUpdateUser()); + //operationServiceMeasuresVO.setCreateUserName(createUser.getName()); + //operationServiceMeasuresVO.setUpdateUserName(updateUser.getName()); + + return operationServiceMeasuresVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.java new file mode 100644 index 0000000..4a10c0f --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.vo.OperationServiceTypeVO; +import java.util.Objects; + +/** + * 服务类型基础信息 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2024-06-17 + */ +public class OperationServiceTypeWrapper extends BaseEntityWrapper { + + public static OperationServiceTypeWrapper build() { + return new OperationServiceTypeWrapper(); + } + + @Override + public OperationServiceTypeVO entityVO(OperationServiceTypeEntity operationServiceType) { + OperationServiceTypeVO operationServiceTypeVO = Objects.requireNonNull(BeanUtil.copyProperties(operationServiceType, OperationServiceTypeVO.class)); + + //User createUser = UserCache.getUser(operationServiceType.getCreateUser()); + //User updateUser = UserCache.getUser(operationServiceType.getUpdateUser()); + //operationServiceTypeVO.setCreateUserName(createUser.getName()); + //operationServiceTypeVO.setUpdateUserName(updateUser.getName()); + + return operationServiceTypeVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteEmployeeWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteEmployeeWrapper.java new file mode 100644 index 0000000..c4185b4 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteEmployeeWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteEmployeeVO; +import java.util.Objects; + +/** + * 服务商员工信息表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-18 + */ +public class OperationSiteEmployeeWrapper extends BaseEntityWrapper { + + public static OperationSiteEmployeeWrapper build() { + return new OperationSiteEmployeeWrapper(); + } + + @Override + public OperationSiteEmployeeVO entityVO(OperationSiteEmployeeEntity operationSiteEmployee) { + OperationSiteEmployeeVO operationSiteEmployeeVO = Objects.requireNonNull(BeanUtil.copyProperties(operationSiteEmployee, OperationSiteEmployeeVO.class)); + + //User createUser = UserCache.getUser(operationSiteEmployee.getCreateUser()); + //User updateUser = UserCache.getUser(operationSiteEmployee.getUpdateUser()); + //operationSiteEmployeeVO.setCreateUserName(createUser.getName()); + //operationSiteEmployeeVO.setUpdateUserName(updateUser.getName()); + + return operationSiteEmployeeVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.java new file mode 100644 index 0000000..953561b --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.OperationSiteRoleEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteRoleVO; +import java.util.Objects; + +/** + * 服务商员工角色 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-19 + */ +public class OperationSiteRoleWrapper extends BaseEntityWrapper { + + public static OperationSiteRoleWrapper build() { + return new OperationSiteRoleWrapper(); + } + + @Override + public OperationSiteRoleVO entityVO(OperationSiteRoleEntity operationSiteRole) { + OperationSiteRoleVO operationSiteRoleVO = Objects.requireNonNull(BeanUtil.copyProperties(operationSiteRole, OperationSiteRoleVO.class)); + + //User createUser = UserCache.getUser(operationSiteRole.getCreateUser()); + //User updateUser = UserCache.getUser(operationSiteRole.getUpdateUser()); + //operationSiteRoleVO.setCreateUserName(createUser.getName()); + //operationSiteRoleVO.setUpdateUserName(updateUser.getName()); + + return operationSiteRoleVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteWrapper.java new file mode 100644 index 0000000..9340d3d --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/OperationSiteWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.OperationSiteVO; +import java.util.Objects; + +/** + * 网点基础信息表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-13 + */ +public class OperationSiteWrapper extends BaseEntityWrapper { + + public static OperationSiteWrapper build() { + return new OperationSiteWrapper(); + } + + @Override + public OperationSiteVO entityVO(OperationSiteEntity operationSite) { + OperationSiteVO operationSiteVO = Objects.requireNonNull(BeanUtil.copyProperties(operationSite, OperationSiteVO.class)); + + //User createUser = UserCache.getUser(operationSite.getCreateUser()); + //User updateUser = UserCache.getUser(operationSite.getUpdateUser()); + //operationSiteVO.setCreateUserName(createUser.getName()); + //operationSiteVO.setUpdateUserName(updateUser.getName()); + + return operationSiteVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.java new file mode 100644 index 0000000..f483a61 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.OperationTechnicalDataEntity; +import org.springblade.modules.operation.pojo.vo.OperationTechnicalDataVO; +import java.util.Objects; + +/** + * 技术资料表 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2024-06-26 + */ +public class OperationTechnicalDataWrapper extends BaseEntityWrapper { + + public static OperationTechnicalDataWrapper build() { + return new OperationTechnicalDataWrapper(); + } + + @Override + public OperationTechnicalDataVO entityVO(OperationTechnicalDataEntity operationTechnicalData) { + OperationTechnicalDataVO operationTechnicalDataVO = Objects.requireNonNull(BeanUtil.copyProperties(operationTechnicalData, OperationTechnicalDataVO.class)); + + //User createUser = UserCache.getUser(operationTechnicalData.getCreateUser()); + //User updateUser = UserCache.getUser(operationTechnicalData.getUpdateUser()); + //operationTechnicalDataVO.setCreateUserName(createUser.getName()); + //operationTechnicalDataVO.setUpdateUserName(updateUser.getName()); + + return operationTechnicalDataVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.java new file mode 100644 index 0000000..c9f1b69 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.PlatformAnnouncementEntity; +import org.springblade.modules.operation.pojo.vo.PlatformAnnouncementVO; +import java.util.Objects; + +/** + * 平台通知公告表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-25 + */ +public class PlatformAnnouncementWrapper extends BaseEntityWrapper { + + public static PlatformAnnouncementWrapper build() { + return new PlatformAnnouncementWrapper(); + } + + @Override + public PlatformAnnouncementVO entityVO(PlatformAnnouncementEntity platformAnnouncement) { + PlatformAnnouncementVO platformAnnouncementVO = Objects.requireNonNull(BeanUtil.copyProperties(platformAnnouncement, PlatformAnnouncementVO.class)); + + //User createUser = UserCache.getUser(platformAnnouncement.getCreateUser()); + //User updateUser = UserCache.getUser(platformAnnouncement.getUpdateUser()); + //platformAnnouncementVO.setCreateUserName(createUser.getName()); + //platformAnnouncementVO.setUpdateUserName(updateUser.getName()); + + return platformAnnouncementVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.java b/src/main/java/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.java new file mode 100644 index 0000000..5ec6e97 --- /dev/null +++ b/src/main/java/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.operation.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.operation.pojo.entity.PlatformEmployeeEntity; +import org.springblade.modules.operation.pojo.vo.PlatformEmployeeVO; +import java.util.Objects; + +/** + * 平台员工权限表 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2024-06-27 + */ +public class PlatformEmployeeWrapper extends BaseEntityWrapper { + + public static PlatformEmployeeWrapper build() { + return new PlatformEmployeeWrapper(); + } + + @Override + public PlatformEmployeeVO entityVO(PlatformEmployeeEntity platformEmployee) { + PlatformEmployeeVO platformEmployeeVO = Objects.requireNonNull(BeanUtil.copyProperties(platformEmployee, PlatformEmployeeVO.class)); + + //User createUser = UserCache.getUser(platformEmployee.getCreateUser()); + //User updateUser = UserCache.getUser(platformEmployee.getUpdateUser()); + //platformEmployeeVO.setCreateUserName(createUser.getName()); + //platformEmployeeVO.setUpdateUserName(updateUser.getName()); + + return platformEmployeeVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/constant/DeliverOrderConstants.java b/src/main/java/org/springblade/modules/order/constant/DeliverOrderConstants.java new file mode 100644 index 0000000..2360ea9 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/constant/DeliverOrderConstants.java @@ -0,0 +1,186 @@ +package org.springblade.modules.order.constant; + +/** + * @author hongzq + */ +public class DeliverOrderConstants { + + /** + * 类型 发货单 + */ + public static final String TYPE_FH = "1"; + + /** + * 类型 补库单 + */ + public static final String TYPE_BK = "2"; + + /** + * 已删除 + */ + public static final String DELETED = "0"; + + /** + * 待发货 + */ + public static final String WAIT_DELIVER = "1"; + + /** + * 待入库 + */ + public static final String WAIT_IN_STOCK = "2"; + + /** + * 已撤销 + */ + public static final String CANCELED = "3"; + + /** + * 仓库打回 + */ + public static final String WAREHOUSE_REFUSE = "4"; + + /** + * 待审核 + */ + public static final String WAIT_AUDIT = "5"; + + /** + * 审核未通过 + */ + public static final String AUDIT_FAIL = "6"; + + /** + * 已完成 + */ + public static final String COMPLETED = "7"; + + /** + * 部分入库 + */ + public static final String EIGTH = "8"; + + /** + * 删除 + */ + public static final short OPT_DELETE = 0; + + /** + * 创建 + */ + public static final short OPT_CREATE = 1; + + /** + * 编辑 + */ + public static final short OPT_EDIT = 2; + + /** + * 撤销 + */ + public static final short OPT_CANCEL = 3; + + /** + * 改派 + */ + public static final short OPT_CHANGE = 4; + + /** + * 拆单 + */ + public static final short OPT_SPLIT = 5; + + /** + * 发货 + */ + public static final short OPT_FH = 6; + + /** + * 仓库打回 + */ + public static final short OPT_DH = 7; + + /** + * 入库 + */ + public static final short OPT_RK = 8; + + /** + * 审核未通过 + */ + public static final short OPT_AUDIT_FAIL = 9; + + /** + * 审核通过 + */ + public static final short OPT_AUDIT_APPROVE =10; + + /** + * 操作类型 合并 + */ + public static final short OPT_MERGE = 11; + + //分配 + public static final short OPT_DIS = 12; + + //拒发货 + public static final short OPT_REFUSE = 13; + + //驳回 + public static final short OPT_BH = 16; + // + /** + * 发货单审核未通过 + */ + public static final short FHD_SH_TG= 14; + + /** + * 发货单审核通过 + */ + public static final short FHD_SH_NOT=15; + + + /** + * 订单状态 0.已删除 1.待审批 2.采购分配 3.分配打回 4.采购审批 5.待发货 6.待签收 7.已完成 8.已并单 9.发货打回 10.暂存 a.发货审核不通过 b.拒发货 c.已拆单 + */ + public static final String STATUS_DELETED = "0"; + public static final String STATUS_WAIT_AUDIT = "1"; + public static final String STATUS_PROCUREMENT_ALLOCATION = "2"; + public static final String STATUS_ALLOCATION_REJECT = "3"; + public static final String STATUS_PROCUREMENT_APPROVAL = "4"; + public static final String STATUS_WAIT_DELIVER = "5"; + public static final String STATUS_WAIT_SIGN_IN = "6"; + public static final String STATUS_COMPLETED = "7"; + public static final String STATUS_MERGED = "8"; + public static final String STATUS_DELIVER_REJECT = "9"; + + public static final String STATUS_TEMPLE_SAVE = "10"; + public static final String STATUS_SPLIT = "a"; + public static final String STATUS_REFUSE = "b"; + public static final String STATUS_SPLIT2 = "c"; + + public static final String STATUS_SAPZC = "d"; + + /** + * 订单来源 1.项目订单(从项目管理下批量下单的订单) 2.自主下单(代理商自主下单的订单) 3.平台采购(平台创建的采购订单,订单前缀CG) 4.合并发货(项目订单、自主下单的两单合并后的订单) + */ + public static final String TYPE_PROJECT = "1"; + public static final String TYPE_AUTONOMOUS = "2"; + public static final String TYPE_PURCHASE = "3"; + public static final String TYPE_MERGED = "4"; + + public static final String EXAMINE_STATUS_ONE = "1"; + public static final String EXAMINE_STATUS_TWO = "2"; + public static final String EXAMINE_STATUS_THREE = "3"; + public static final String EXAMINE_STATUS_FIVE = "4"; + + + /** + * 订单类型 pattern + * 订单类型 1.平台采购(供应链创建的采购单,即仓库采购单) 2.供应商直发(订单分配由供应商直发给代理商的订单)3.平台发货(订单分配由供应链发货的订单) + */ + public static final String PATTERN_PLAT_PURCHASE="1"; + public static final String PATTERN_SUPPLY="2"; + public static final String PATTERN_PLAT_DELIVER="3"; + +} diff --git a/src/main/java/org/springblade/modules/order/constant/MaterialBatchConstants.java b/src/main/java/org/springblade/modules/order/constant/MaterialBatchConstants.java new file mode 100644 index 0000000..d1c12cf --- /dev/null +++ b/src/main/java/org/springblade/modules/order/constant/MaterialBatchConstants.java @@ -0,0 +1,13 @@ +package org.springblade.modules.order.constant; + +public class MaterialBatchConstants { + + /** + * 关联业务类型:1.出库单 2.入库单 3.盘点单 4.采购单 6.调拨入库 + */ + public static final String TYPE_OUT = "1"; + public static final String TYPE_IN = "2"; + public static final String TYPE_INVENTORY = "3"; + public static final String TYPE_PROCUREMENT = "4"; + public static final String TYPE_ALLOCATE = "6"; +} diff --git a/src/main/java/org/springblade/modules/order/constant/OrderConstants.java b/src/main/java/org/springblade/modules/order/constant/OrderConstants.java new file mode 100644 index 0000000..9f81ac4 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/constant/OrderConstants.java @@ -0,0 +1,107 @@ +package org.springblade.modules.order.constant; + +/** + * @author hongzq + */ +public class OrderConstants { + + + /** + *warranty_type 保修类型:1.保内 2.保外 + */ + public static final String WARRANTY_TYPE_ONE="1"; + public static final String WARRANTY_TYPE_TWO="2"; + + + + /** + * fitting_flag 配件标记,0无备件 1待发备件 2已发备件 + */ + public static final String FITTING_FLAG_NO ="0"; + public static final String FITTING_FLAG_WAIT = "1"; + public static final String FITTING_FLAG_WAY = "2"; + + /** + * status 单平台操作状态:1.待派工 2.服务中 3.待回访 4.待结算 5.已完成 6.无效工单 7.取消工单,默认1 + */ + public static final String ORDER_STATUS_DIS="1"; + public static final String ORDER_STATUS_SERVICE="2"; + public static final String ORDER_STATUS_CALL="3"; + public static final String ORDER_STATUS_SETTLE="4"; + public static final String ORDER_STATUS_FINISH="5"; + public static final String ORDER_STATUS_INVALID="6"; + public static final String ORDER_STATUS_CANCEL="7"; + + + /** + * site_status 工单服务商操作状态:0尚未指派给服务商 1待服务商接单 2服务商已拒单 3待服务商派工 4待工程师接单 5待上门 6服务中 7已完工 8派工取消 9无效工单 + */ + public static final String SITE_STATUS_ZERO="0"; + public static final String SITE_STATUS_GET="1"; + public static final String SITE_STATUS_REFUSE="2"; + public static final String SITE_STATUS_DIS="3"; + public static final String SITE_STATUS_RECEIVE="4"; + public static final String SITE_STATUS_DOOR="5"; + public static final String SITE_STATUS_SERVICE="6"; + public static final String SITE_STATUS_FINISH="7"; + public static final String SITE_STATUS_INVALID="9"; + + /** + *dispatch 派工状态:0.待接单 1.已接单 2.已拒单 3.维修已完工 4.已转派 5.派工取消 + */ + public static final String DISPATCH_STATUS_DJD="0"; + public static final String DISPATCH_STATUS_YJD="1"; + public static final String DISPATCH_STATUS_REFUSE="2"; + public static final String DISPATCH_STATUS_FINISH="3"; + public static final String DISPATCH_STATUS_CHANGE="4"; + public static final String DISPATCH_STATUS_CANCEL="5"; + + /** + * promise_flag 标记本次派工是否预约:0未预约 1已预约。默认0 + */ + public static final String FLAG_ZERO="0"; + public static final String FLAG_ONE="1"; + + /** + * completion_result 完工结果:0.正常完工 1.服务商确认无效 + */ + public static final String RESULT_ZERO="0"; + + /** + *result 回访结果:列表写死 1.已回访 2.仍需上门 , 3 无人接听 ,4回访不通过 5多次回访 + */ + public static final String RESULT_OK="1"; + public static final String RESULT_BAD="2"; + public static final String RESULT_NO_MAN="3"; + public static final String RESULT_NO_REFUSE="4"; + public static final String RESULT_NO_MANY="5"; + + /** + * feedback_type 反馈类型:0 过程反馈 1服务完成反馈 2服务无法完成反馈 + */ + public static final String FEEDBACK_PROCESS="0"; + public static final String FEEDBACK_FINISH="1"; + + /** + * sf_operation_order_site_dispatch 派工状态:0.待接单 1.已接单 2.已拒单 3.维修已完工 4.已转派 5.派工取消 + * status + */ + public static final String SITE_DISPATCH_STATUS_WAIT="0"; + public static final String SITE_DISPATCH_STATUS_YJD="1"; + public static final String SITE_DISPATCH_STATUS_REFUSE="2"; + public static final String SITE_DISPATCH_STATUS_FINISH="3"; + public static final String SITE_DISPATCH_STATUS_CHANGE="4"; + public static final String SITE_DISPATCH_STATUS_CANCEL="5"; + + /** + * 审核结果 审核结果 1已完成、2仍需上门 + */ + public static final String CASLLBACK_RESULT_ONE ="1"; + public static final String CASLLBACK_RESULT_TWO ="2"; + + /** + * 状态:0正常 1删除 + */ + public static final String STATUS_USE ="0"; + public static final String STATUS_DELETE ="1"; +} diff --git a/src/main/java/org/springblade/modules/order/constant/PendingOrderConstants.java b/src/main/java/org/springblade/modules/order/constant/PendingOrderConstants.java new file mode 100644 index 0000000..47dd9e1 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/constant/PendingOrderConstants.java @@ -0,0 +1,35 @@ +package org.springblade.modules.order.constant; + +public class PendingOrderConstants { + + /** + * 订单类型 盘点单 + */ + public static final String PD = "1"; + + /** + * 订单类型 调拨单 + */ + public static final String DB = "2"; + + /** + * 订单类型 入库 + */ + public static final String RK = "3"; + + /** + * 状态 待审批 + */ + public static final String WAIT_AUDIT = "1"; + + /** + * 状态 已审批 + */ + public static final String AUDITED = "2"; + + /** + * 状态 + */ + public static final String REJECT = "3"; + public static final String DELETED = "4"; +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderCallbackController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderCallbackController.java new file mode 100644 index 0000000..99f8aa5 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderCallbackController.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.order.pojo.vo.SelectVo; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderCallbackVO; +import org.springblade.modules.order.excel.OperationOrderCallbackExcel; +import org.springblade.modules.order.wrapper.OperationOrderCallbackWrapper; +import org.springblade.modules.order.service.IOperationOrderCallbackService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工单回访表 控制器 + * + * @author BladeX + * @since 2024-06-21 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrderCallback") +@Tag(name = "工单回访表", description = "工单回访表接口") +public class OperationOrderCallbackController extends BladeController { + + private final IOperationOrderCallbackService operationOrderCallbackService; + + + /** + * 工单回访 + */ + @PostMapping("/addOrderCllBack") + @ApiOperationSupport(order = 1) + @Operation(summary = "工单回访", description = "传入operationOrderCallback") + public R addOrderCllBack(@Valid @RequestBody OperationOrderCallbackEntity operationOrderCallback) { + return R.status(operationOrderCallbackService.addOrderCllBack(operationOrderCallback)); + } + + //获取设备品牌 + @GetMapping("/getAllBrand") + @ApiOperationSupport(order = 2) + @Operation(summary = "获取设备品牌") + public R getAllBrand(){ + List list=operationOrderCallbackService.getAllBrand(); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderController.java new file mode 100644 index 0000000..1f8b6f4 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderController.java @@ -0,0 +1,181 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.controller; + +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.order.pojo.vo.ExamineOrderVo; +import org.springblade.modules.order.pojo.vo.OrderHomeVo; +import org.springblade.modules.order.pojo.vo.OrderListConditionVo; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderVO; +import org.springblade.modules.order.excel.OperationOrderExcel; +import org.springblade.modules.order.wrapper.OperationOrderWrapper; +import org.springblade.modules.order.service.IOperationOrderService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工单基础信息表 控制器 + * + * @author lzp + * @since 2024-06-18 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrder") +@Tag(name = "工单基础信息表", description = "工单基础信息表接口") +public class OperationOrderController extends BladeController { + + private final IOperationOrderService operationOrderService; + + /** + * 工单基础信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入id" ) + public R detail(@Parameter(name = "id",description = "主键id",required = true) @RequestParam String id) { + OperationOrderVO detail = operationOrderService.findOrderDetail(id); + return R.data(detail); + } + + /** + * 工单基础信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationOrder") + public R> page(OrderListConditionVo conditionVo, Query query) { + IPage pages = operationOrderService.selectOperationOrderPage(Condition.getPage(query), conditionVo); + return R.data(pages); + } + + /** + * 工单基础信息表 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入operationOrder") + public R save(@Valid @RequestBody OperationOrderEntity operationOrder) { + return operationOrderService.saveOrder(operationOrder); + } + + /** + * 工单基础信息表 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入operationOrder") + public R update(@Valid @RequestBody OperationOrderEntity operationOrder) { + return R.status(operationOrderService.updateOrder(operationOrder)); + } + + + /** + * 无效/删除工单 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除/无效", description = "传入id") + public R remove(@Parameter(name = "id",description = "主键id",required = true) @RequestParam String id, + @Parameter(name = "status", description = " 6.无效工单 7.删除",required = true) @RequestParam String status, + @Parameter(name="disableResource",description = "无效原因") String disableResource) { + return R.status(operationOrderService.deleteLogic(id,status,disableResource)); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-operationOrder") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入operationOrder") + public void exportOperationOrder(@Parameter(hidden = true) @RequestParam Map operationOrder, BladeUser bladeUser, HttpServletResponse response) { + + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(OperationOrder::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(OperationOrderEntity::getsta, BladeConstant.DB_NOT_DELETED); + List list = operationOrderService.exportOperationOrder(operationOrder); + ExcelUtil.export(response, "工单基础信息表数据" + DateUtil.time(), "工单基础信息表数据表", list, OperationOrderExcel.class); + } + /** + * 小程序首页统计 + */ + @GetMapping("/orderHomeIndex") + @ApiOperationSupport(order = 10) + @Operation(summary = "小程序首页统计", description = "无参数" ) + public R orderHomeIndex() { + return R.data(operationOrderService.orderHomeIndex()); + } + + + @PostMapping("/turnMainOrder") + @ApiOperationSupport(order = 15) + @Operation(summary = "电站转运维", description = "传入id") + public R turnMainOrder(@Parameter(name = "id",description = "id",required = true) @RequestParam String id) { + + return R.status(operationOrderService.turnMainOrder(id)); + } + /** + * 审核工单 + */ + @PostMapping("/toExamineOrder") + @Parameters({ + @Parameter(name = "id", description = "主键id",required = true), + @Parameter(name = "callbackResult", description = "审核结果 1已完成、2仍需上门",required = true), + @Parameter(name = "memoNote", description = "审核备注") + }) + @ApiOperationSupport(order = 16) + @Operation(summary = "审核工单", description = "传入id") + public R toExamineOrder(@Valid @RequestBody ExamineOrderVo exc ) { + return R.status(operationOrderService.toExamineOrder(exc)); + } +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderDispatchController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderDispatchController.java new file mode 100644 index 0000000..f65e8a9 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderDispatchController.java @@ -0,0 +1,91 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderDispatchVO; +import org.springblade.modules.order.wrapper.OperationOrderDispatchWrapper; +import org.springblade.modules.order.service.IOperationOrderDispatchService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工单平台派工表 控制器 + * + * @author lzp + * @since 2024-06-20 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrderDispatch") +@Tag(name = "工单平台派工表", description = "工单平台派工表接口") +public class OperationOrderDispatchController extends BladeController { + + private final IOperationOrderDispatchService operationOrderDispatchService; + + + /** + * 工单平台派工表 新增 + */ + @PostMapping("/dispatchOrderSite") + @ApiOperationSupport(order = 4) + @Operation(summary = "派工服务商", description = "传入operationOrderDispatch") + public R dispatchOrderSite(@Parameter(name = "工单id", required = true) @RequestParam String orderId, + @Parameter(name = "服务商id", required = true) @RequestParam String siteId) { + return R.status(operationOrderDispatchService.dispatchOrderSite(orderId, siteId)); + } + + + @PostMapping(value = "/receiveOrder") + @ApiOperationSupport(order = 10) + @Operation(summary = "服务商接单", description = "传入orderIds") + public R receiveOrder(@Parameter(name = "orderIds", description = "工单id,多个逗号拼接", required = true) @RequestParam String orderIds) { + return R.status(operationOrderDispatchService.receiveOrder(orderIds)); + } + +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderFeedbackController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderFeedbackController.java new file mode 100644 index 0000000..ea7ab56 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderFeedbackController.java @@ -0,0 +1,91 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.order.excel.OperationOrderFeedbackExcel; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderFeedbackVO; +import org.springblade.modules.order.service.IOperationOrderFeedbackService; +import org.springblade.modules.order.wrapper.OperationOrderFeedbackWrapper; +import org.springframework.web.bind.annotation.*; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 工单反馈表 控制器 + * + * @author lzp + * @since 2024-06-21 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrderFeedback") +@Tag(name = "工单反馈表", description = "工单反馈表接口") +public class OperationOrderFeedbackController extends BladeController { + + private final IOperationOrderFeedbackService operationOrderFeedbackService; + + /** + * 工单过程反馈 + 服务完成 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "工单过程反馈 + 服务完成", description = "传入operationOrderFeedback") + public R save(@Valid @RequestBody OperationOrderFeedbackVO operationOrderFeedback) { + return R.status(operationOrderFeedbackService.feedbackSealingSheet(operationOrderFeedback)); + } + + //电站的过程反馈信息 + @GetMapping(value = "/listFeedback") + @ApiOperationSupport(order = 5) + @Operation(summary = "过程反馈信息") + public R listFeedback(@Parameter(name = "orderId",description = "工单id",required = true) @RequestParam String orderId){ + List list=operationOrderFeedbackService.listFeedback(orderId); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderLetterController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderLetterController.java new file mode 100644 index 0000000..39b3d15 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderLetterController.java @@ -0,0 +1,57 @@ +package org.springblade.modules.order.controller; + +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.api.R; +import org.springblade.modules.order.pojo.dto.OrderLetterDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderLetterEntity; +import org.springblade.modules.order.service.impl.OperationOrderLetterService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrderLetter") +@Tag(name = "工单公函表", description = "工单公函表") +public class OperationOrderLetterController extends BladeController { + + @Autowired + private OperationOrderLetterService operationOrderLetterService; + /** + * 上传/修改 公函 + */ + @PostMapping("/saveLetter") + @ApiOperationSupport(order = 1) + @Operation(summary = "上传/修改 公函", description = "传入") + public R saveLetter(@Valid @RequestBody OrderLetterDTO orderLetterDTO) { + return R.status(operationOrderLetterService.saveLetter(orderLetterDTO)); + } + + /** + * 删除公函 + */ + @GetMapping(value = "/deleteLetter") + @ApiOperationSupport(order = 2) + @Operation(summary = "删除公函", description = "传入id") + public R deleteLetter(@Parameter(name = "公函id", required = true) @RequestParam String id){ + return R.status(operationOrderLetterService.deleteLetter(id)); + } + + /** + * 获取工单的公函记录 + */ + @GetMapping(value = "/getOrderLetterList") + @ApiOperationSupport(order = 3) + @Operation(summary = "获取工单的公函记录", description = "传入工单id") + public R> getOrderLetterList(@Parameter(name = "orderId工单id", required = true) @RequestParam String orderId){ + List list =operationOrderLetterService.getOrderLetterList(orderId); + return R.data(list); + } +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderSettleController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderSettleController.java new file mode 100644 index 0000000..926640d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderSettleController.java @@ -0,0 +1,116 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.modules.order.pojo.dto.OperationOrderSettleDTO; +import org.springblade.modules.order.pojo.form.OperationOrderConditionForm; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.order.pojo.entity.OperationOrderSettleEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSettleVO; +import org.springblade.modules.order.wrapper.OperationOrderSettleWrapper; +import org.springblade.modules.order.service.IOperationOrderSettleService; +import org.springblade.core.boot.ctrl.BladeController; +import java.util.Map; + +/** + * 工单结算表 控制器 + * + * @author BladeX + * @since 2024-06-26 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrderSettle") +@Tag(name = "工单结算表", description = "工单结算表接口") +public class OperationOrderSettleController extends BladeController { + + private final IOperationOrderSettleService operationOrderSettleService; + + /** + * 工单结算表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入operationOrderSettle") + public R detail(OperationOrderSettleEntity operationOrderSettle) { + OperationOrderSettleEntity detail = operationOrderSettleService.getOne(Condition.getQueryWrapper(operationOrderSettle)); + return R.data(OperationOrderSettleWrapper.build().entityVO(detail)); + } + /** + * 工单结算表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入operationOrderSettle") + public R> list(@Parameter(hidden = true) @RequestParam Map operationOrderSettle, Query query) { + IPage pages = operationOrderSettleService.page(Condition.getPage(query), Condition.getQueryWrapper(operationOrderSettle, OperationOrderSettleEntity.class)); + return R.data(OperationOrderSettleWrapper.build().pageVO(pages)); + } + + /** + * 工单结算表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入operationOrderSettle") + public R> page(OperationOrderConditionForm operationOrderSettle, Query query) { + IPage pages = operationOrderSettleService.selectOperationOrderSettlePage(Condition.getPage(query), operationOrderSettle); + return R.data(pages); + } + + /** + * 结算 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "结算", description = "传入operationOrderSettle") + public R save(@Valid @RequestBody OperationOrderSettleDTO orderSettleDTO) { + return R.status(operationOrderSettleService.saveOrderSettle(orderSettleDTO)); + } + + /** + * 修改结算 是/否 + */ + @GetMapping(value = "editIfSettle") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改结算 是/否", description = "传入") + public R editIfSettle(@Parameter(name = "orderIds工单id,多个逗号拼接", required = true) @RequestParam String orderIds + ,@Parameter(name = "是否需要结算:1是 0否", required = true) @RequestParam String ifSettle){ + return R.status(operationOrderSettleService.ifSettle(orderIds,ifSettle)); + } + +} diff --git a/src/main/java/org/springblade/modules/order/controller/OperationOrderSiteDispatchController.java b/src/main/java/org/springblade/modules/order/controller/OperationOrderSiteDispatchController.java new file mode 100644 index 0000000..5c82a60 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/controller/OperationOrderSiteDispatchController.java @@ -0,0 +1,103 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.controller; + +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSiteDispatchVO; +import org.springblade.modules.order.excel.OperationOrderSiteDispatchExcel; +import org.springblade.modules.order.wrapper.OperationOrderSiteDispatchWrapper; +import org.springblade.modules.order.service.IOperationOrderSiteDispatchService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; + +import java.util.Map; +import java.util.List; + +import jakarta.servlet.http.HttpServletResponse; + +/** + * 服务商派工表 控制器 + * + * @author hx + * @since 2024-06-21 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/operationOrderSiteDispatch") +@Tag(name = "服务商派工表", description = "服务商派工表接口") +public class OperationOrderSiteDispatchController extends BladeController { + + private final IOperationOrderSiteDispatchService operationOrderSiteDispatchService; + + + //服务商派工 + @PostMapping(value = "siteDispatchOrder") + @ApiOperationSupport(order = 1) + @Operation(summary = "服务商派工", description = "传入orderIds") + public R siteDispatchOrder(@Parameter(name = "orderIds", description = "工单id,多个逗号拼接", required = true) @RequestParam String orderIds + , @Parameter(name = "empIds", description = "工程师id,多个逗号拼接", required = true) @RequestParam String empIds) { + return R.status(operationOrderSiteDispatchService.siteDispatchOrder(orderIds, empIds)); + } + + @PostMapping(value = "transferSiteOrder") + @ApiOperationSupport(order = 3) + @Operation(summary = "服务商转派", description = "传入orderIds") + public R transferSiteOrder(@Parameter(name = "orderIds", description = "工单id,多个逗号拼接", required = true) @RequestParam String orderIds + , @Parameter(name = "empIds", description = "工程师id,多个逗号拼接", required = true) @RequestParam String empIds) { + return R.status(operationOrderSiteDispatchService.transferSiteOrder(orderIds, empIds)); + } + + + + + + //工程师接单 + @PostMapping(value = "empReceiveOrde") + @ApiOperationSupport(order = 2) + @Operation(summary = "工程师接单", description = "传入orderId") + public R empReceiveOrde(@Parameter(name = "orderId", description = "工单id", required = true) @RequestParam String orderId) { + return R.status(operationOrderSiteDispatchService.empReceiveOrde(orderId)); + } +} diff --git a/src/main/java/org/springblade/modules/order/excel/OperationOrderCallbackExcel.java b/src/main/java/org/springblade/modules/order/excel/OperationOrderCallbackExcel.java new file mode 100644 index 0000000..faf9110 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/excel/OperationOrderCallbackExcel.java @@ -0,0 +1,85 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.excel; + + +import lombok.Data; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工单回访表 Excel实体类 + * + * @author BladeX + * @since 2024-06-21 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationOrderCallbackExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工单id + */ + @ColumnWidth(20) + @ExcelProperty("工单id") + private String orderId; + /** + * 回访人id + */ + @ColumnWidth(20) + @ExcelProperty("回访人id") + private String createBy; + /** + * 回访人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("回访人姓名") + private String createName; + /** + * 服务态度:1.满意 2.一般 3.不满意 + */ + @ColumnWidth(20) + @ExcelProperty("服务态度:1.满意 2.一般 3.不满意") + private String serviceAttitude; + /** + * 回访内容 + */ + @ColumnWidth(20) + @ExcelProperty("回访内容") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/order/excel/OperationOrderExcel.java b/src/main/java/org/springblade/modules/order/excel/OperationOrderExcel.java new file mode 100644 index 0000000..a408eca --- /dev/null +++ b/src/main/java/org/springblade/modules/order/excel/OperationOrderExcel.java @@ -0,0 +1,278 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.excel; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import lombok.Data; + +import java.util.Date; +import java.math.BigDecimal; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工单基础信息表 Excel实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationOrderExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + /** + * 服务商名称 + */ + @ColumnWidth(20) + @ExcelProperty("服务商名称") + private String siteName; + /** + * 工单编号,生成规则:WX(维修)、 AN(安装)年月日时分+随机四位(工单编号不可重复),例如WX2019041012247567 + */ + @ColumnWidth(20) + @ExcelProperty("工单编号") + private String number; + + @ColumnWidth(20) + @ExcelProperty("工单状态") + private String status; + + /** + * 电站编码 + */ + @ColumnWidth(20) + @ExcelProperty("电站编码") + private String powerStationCode; + + /** + * 用户姓名 + */ + @ColumnWidth(20) + @ExcelProperty("业主姓名") + private String customerName; + + /** + * 用户联系方式一 + */ + @ColumnWidth(20) + @ExcelProperty("联系方式") + private String customerMobile; + @ColumnWidth(20) + @ExcelProperty("省") + private String province; + @ColumnWidth(20) + @ExcelProperty("市") + private String city; + @ColumnWidth(20) + @ExcelProperty("区县") + private String area; + + /** + * 用户详细地址 + */ + @ColumnWidth(20) + @ExcelProperty("地址") + private String customerAddress; + @ColumnWidth(20) + @ExcelProperty("服务类型") + private String serviceType; + /** + * 服务措施 + */ + @ColumnWidth(20) + @ExcelProperty("服务措施") + private String serviceMeasures; + + /** + * 设备品牌 + */ + @ColumnWidth(20) + @ExcelProperty("设备品牌") + private String applianceBrand; + + /** + * 设备序列号 + */ + @ColumnWidth(20) + @ExcelProperty("设备sn") + private String applianceBarcode; + + + /** + * 设备类型 + */ + @ColumnWidth(20) + @ExcelProperty("设备类型") + private String applianceCategory; + + + /** + * 设备容量 + */ + @ColumnWidth(20) + @ExcelProperty("设备容量") + private BigDecimal applianceCapacity; + + + + /** + * 备注(故障描述) + */ + @ColumnWidth(20) + @ExcelProperty("故障描述") + private String remarks; + + /** + * 工单来源类型:1.用户在线报修 2.平台录入 3.其他 默认2 ,4电商 + */ + @ColumnWidth(20) + @ExcelProperty("信息来源") + private String orderType; + /** + * 工程师姓名 + */ + @ColumnWidth(20) + @ExcelProperty("工程师姓名") + private String employeName; + + + /** + * 工单报修时间 + */ + @ColumnWidth(20) + @ExcelProperty("创建时间") + private Date repairTime; + + + /** + /** + * 预约时间 + */ + @ColumnWidth(20) + @ExcelProperty("预约时间") + private Date promiseTime; + /** + * 平台派工时间 + */ + @ColumnWidth(20) + @ExcelProperty("平台派工时间") + private Date dispatchTime; + /** + * 服务商接单时间 + */ + @ColumnWidth(20) + @ExcelProperty("服务商接单时间") + private Date processTime; + + + /** + * 服务商派工时间 + */ + @ColumnWidth(20) + @ExcelProperty("服务商派工时间") + private Date siteDispatchTime; + /** + * 工程师接单时间 + */ + @ColumnWidth(20) + @ExcelProperty("工程师接单时间") + private Date siteProcessTime; + + /** + * 服务商的服务完工时间 + */ + @ColumnWidth(20) + @ExcelProperty("完工时间") + private Date endTime; + /** + * 投运日期 + */ + @ColumnWidth(20) + @ExcelProperty("投运日期") + private Date applianceBuyTime; + + @ExcelProperty("完工时间差") + private String disEndTime; + + /** + * 资方名称 + */ + @ExcelProperty("资方名称") + private String capitalName; + + @ExcelProperty("审核备注") + private String memoNote; + + @ExcelProperty("投放通过时间") + private String paymentTime; + + + @ExcelProperty("质保到期时间") + private String warrantyExpiresTime; + + + @ExcelProperty( "是否超期") + private String ifOverDue; + + + @ExcelProperty("延期次数") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer extensionCount; + + @ExcelProperty("预警时间") + private String warningStartDay; + + + + @ExcelProperty("结算") + private String ifSettle; + + @ExcelProperty("扣款金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal deductionAmount; + + + @ExcelProperty("结算金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal settleAmount; + + + @ExcelProperty("实际支付金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal actualAmount; + + +} diff --git a/src/main/java/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.java b/src/main/java/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.java new file mode 100644 index 0000000..fc107da --- /dev/null +++ b/src/main/java/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.java @@ -0,0 +1,170 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工单反馈表 Excel实体类 + * + * @author lzp + * @since 2024-06-21 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationOrderFeedbackExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * order表主键id + */ + @ColumnWidth(20) + @ExcelProperty("order表主键id") + private String orderId; + /** + * 反馈时间 + */ + @ColumnWidth(20) + @ExcelProperty("反馈时间") + private Date feedbackTime; + /** + * 反馈人id:对应角色子表主键id + */ + @ColumnWidth(20) + @ExcelProperty("反馈人id:对应角色子表主键id") + private String feedbackId; + /** + * 反馈人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("反馈人姓名") + private String feedbackName; + /** + * 反馈文字内容,维修工反馈维修过程内容,信息员可反馈记录客户催单/(缺件:+配件描述) + */ + @ColumnWidth(20) + @ExcelProperty("反馈文字内容,维修工反馈维修过程内容,信息员可反馈记录客户催单/(缺件:+配件描述)") + private String feedback; + /** + * 反馈结果 + */ + @ColumnWidth(20) + @ExcelProperty("反馈结果") + private String feedbackResult; + /** + * 反馈设备主图片路径(可存放多个图片路径,以","隔开) + */ + @ColumnWidth(20) + @ExcelProperty("反馈设备主图片路径(可存放多个图片路径,以隔开)") + private String feedbackImg; + /** + * 备注 + */ + @ColumnWidth(20) + @ExcelProperty("备注") + private String remarks; + /** + * 服务商id + */ + @ColumnWidth(20) + @ExcelProperty("服务商id") + private String siteId; + /** + * 反馈类型:0 过程反馈 1服务完成反馈 2服务无法完成反馈 + */ + @ColumnWidth(20) + @ExcelProperty("反馈类型:0 过程反馈 1服务完成反馈 2服务无法完成反馈") + private String feedbackType; + /** + * 设备名称 (安装时会使用) + */ + @ColumnWidth(20) + @ExcelProperty("设备名称 (安装时会使用)") + private String deviceName; + /** + * 设备规格型号 + */ + @ColumnWidth(20) + @ExcelProperty("设备规格型号") + private String deviceModel; + /** + * 设备机身编码 + */ + @ColumnWidth(20) + @ExcelProperty("设备机身编码") + private String deviceMachineCode; + /** + * 钢结构图片 + */ + @ColumnWidth(20) + @ExcelProperty("钢结构图片") + private String steelStructureImg; + /** + * 支架图片 + */ + @ColumnWidth(20) + @ExcelProperty("支架图片") + private String bracketImg; + /** + * 组件图片 + */ + @ColumnWidth(20) + @ExcelProperty("组件图片") + private String assemblyImg; + /** + * 设备接线 + */ + @ColumnWidth(20) + @ExcelProperty("设备接线") + private String deviceImg; + /** + * 是否遮挡照片 + */ + @ColumnWidth(20) + @ExcelProperty("是否遮挡照片") + private String shelterImg; + /** + * 全景照片 + */ + @ColumnWidth(20) + @ExcelProperty("全景照片") + private String panoramaImg; + +} diff --git a/src/main/java/org/springblade/modules/order/excel/OperationOrderSettleExcel.java b/src/main/java/org/springblade/modules/order/excel/OperationOrderSettleExcel.java new file mode 100644 index 0000000..239e7e7 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/excel/OperationOrderSettleExcel.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.excel; + + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 工单结算表 Excel实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationOrderSettleExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 工单id + */ + @ColumnWidth(20) + @ExcelProperty("工单id") + private String orderId; + /** + * 结算金额 + */ + @ColumnWidth(20) + @ExcelProperty("结算金额") + private BigDecimal settleAmount; + /** + * 结算备注 + */ + @ColumnWidth(20) + @ExcelProperty("结算备注") + private String remarks; + /** + * 结算时间 + */ + @ColumnWidth(20) + @ExcelProperty("结算时间") + private Date settleTime; + /** + * 结算人 + */ + @ColumnWidth(20) + @ExcelProperty("结算人") + private String settleBy; + /** + * 结算人姓名 + */ + @ColumnWidth(20) + @ExcelProperty("结算人姓名") + private String settleByName; + +} diff --git a/src/main/java/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.java b/src/main/java/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.java new file mode 100644 index 0000000..851d5a5 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.java @@ -0,0 +1,116 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 服务商派工表 Excel实体类 + * + * @author hx + * @since 2024-06-21 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class OperationOrderSiteDispatchExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 关联工单id + */ + @ColumnWidth(20) + @ExcelProperty("关联工单id") + private String orderId; + /** + * 服务商id + */ + @ColumnWidth(20) + @ExcelProperty("服务商id") + private String siteId; + /** + * 工程师id(多个逗号拼接) + */ + @ColumnWidth(20) + @ExcelProperty("工程师id(多个逗号拼接)") + private String employeId; + /** + * 工程师姓名(多个逗号拼接) + */ + @ColumnWidth(20) + @ExcelProperty("工程师姓名(多个逗号拼接)") + private String employeName; + /** + * 工单派工时间 + */ + @ColumnWidth(20) + @ExcelProperty("工单派工时间") + private Date dispatchTime; + /** + * 对待接收的派工处理时间,接单为接单时间,拒单为拒单时间 + */ + @ColumnWidth(20) + @ExcelProperty("对待接收的派工处理时间,接单为接单时间,拒单为拒单时间") + private Date processTime; + /** + * 工程师修改预约的操作时间 + */ + @ColumnWidth(20) + @ExcelProperty("工程师修改预约的操作时间") + private Date promiseTime; + /** + * 服务完工时间 + */ + @ColumnWidth(20) + @ExcelProperty("服务完工时间") + private Date endTime; + /** + * 上门服务时间 + */ + @ColumnWidth(20) + @ExcelProperty("上门服务时间") + private Date dropInTime; + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String creator; + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.java new file mode 100644 index 0000000..b888cae --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderCallbackVO; +import org.springblade.modules.order.excel.OperationOrderCallbackExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.order.pojo.vo.SelectVo; + +import java.util.List; + +/** + * 工单回访表 Mapper 接口 + * + * @author BladeX + * @since 2024-06-21 + */ +public interface OperationOrderCallbackMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderCallback + * @return + */ + List selectOperationOrderCallbackPage(IPage page, OperationOrderCallbackVO operationOrderCallback); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderCallback(@Param("ew") Wrapper queryWrapper); + + + List getAllBrand(); +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml new file mode 100644 index 0000000..740d9ce --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.java new file mode 100644 index 0000000..ec97e5d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderDispatchVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 工单平台派工表 Mapper 接口 + * + * @author lzp + * @since 2024-06-20 + */ +public interface OperationOrderDispatchMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderDispatch + * @return + */ + List selectOperationOrderDispatchPage(IPage page, OperationOrderDispatchVO operationOrderDispatch); + + + OperationOrderDispatchEntity findOrderDisByOrderId(String orderId); + + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.xml new file mode 100644 index 0000000..9e19892 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.java new file mode 100644 index 0000000..eea4600 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.order.excel.OperationOrderFeedbackExcel; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderFeedbackVO; + +import java.util.List; + +/** + * 工单反馈表 Mapper 接口 + * + * @author lzp + * @since 2024-06-21 + */ +public interface OperationOrderFeedbackMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderFeedback + * @return + */ + List selectOperationOrderFeedbackPage(IPage page, OperationOrderFeedbackVO operationOrderFeedback); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderFeedback(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.xml new file mode 100644 index 0000000..b50b40d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.java new file mode 100644 index 0000000..e209e1f --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.java @@ -0,0 +1,18 @@ +package org.springblade.modules.order.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.order.pojo.entity.OperationOrderLetterEntity; + +import java.math.BigDecimal; + +public interface OperationOrderLetterMapper extends BaseMapper { + + String ifLatestRecord(@Param("orderId") String orderId); + + OperationOrderLetterEntity getLatestLetter(@Param("id") String id); + + //获取公函中的扣款总额 + BigDecimal getTotalDeductionAmount(@Param("orderId") String orderId); + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml new file mode 100644 index 0000000..d1539d1 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.java new file mode 100644 index 0000000..ad26b5a --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.java @@ -0,0 +1,92 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.vo.*; +import org.springblade.modules.order.excel.OperationOrderExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 工单基础信息表 Mapper 接口 + * + * @author lzp + * @since 2024-06-18 + */ +public interface OperationOrderMapper extends BaseMapper { + + OperationOrderVO getOrderDetail(@Param("orderId") String orderId); + + OperationOrderFeedbackEntity getLatestByOrderId(@Param("orderId") String orderId); + + /** + * 自定义分页 + * + * @param page + * @param order + * @return + */ + List selectOperationOrderPage(IPage page, @Param("order") OrderListConditionVo order); + + OrderHomeVo findOrderHomeIndex(@Param("order") OrderListConditionVo order); + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrder(@Param("order") Map queryWrapper); + + OrderHomeVo orderHomeIndex(String siteId,String empId); + + int changeDispatchOrderStatus(@Param("orderId") String orderId,@Param("userName") String userName,@Param("date") Date date); + + int changeSiteDispatchOrderStatus(@Param("orderId") String orderId,@Param("userName") String userName,@Param("date") Date date); + + EmpAuthVo findPlatEmpAuthByUserId(Long userId); + + List findOrderList(IPage page); + + List findOrderFeedImgs(String orderId); + + Long findRetunCountByOrderId(String entryId); + + Long coutNoFinishFittingApply(@Param("orderNumber") String orderNumber); + + OrderStaticVo homeOrderStatic(@Param("order") OrderListConditionVo order); + + OrderHomeVo pcOrderHomeIndex(@Param("order") OrderListConditionVo order); + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.xml new file mode 100644 index 0000000..955faac --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderMapper.xml @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and o.site_id=#{order.siteId} + + + and o.number like concat('%',#{order.number},'%') + + + and o.power_station_code like concat('%',#{order.powerStationCode},'%') + + + and o.customer_name like concat('%',#{order.customerName},'%') + + + and o.customer_mobile like concat('%',#{order.customerMobile},'%') + + + and concat_ws('',o.province,o.city,o.area,o.customer_address) like concat('%', #{order.customerAddress}, '%') + + + and o.site_name like concat('%',#{order.siteName},'%') + + + and o.order_type=#{order.orderType} + + + and o.warranty_type=#{order.warrantyType} + + + and o.service_measures=#{order.serviceMeasures} + + + and o.appliance_category=#{order.applianceCategory} + + + and FIND_IN_SET(#{order.employeId},o.employe_id) + + + and FIND_IN_SET(#{order.employeName},o.employe_name) + + + and o.service_type=#{order.serviceType} + + + and o.create_time >= concat(#{order.createTimeSta}, ' 00:00:00') + + + and o.create_time <= concat(#{order.createTimeEnd}, ' 23:59:59') + + + and o.dispatch_time >= concat(#{order.dispatchTimeSta}, ' 00:00:00') + + + and o.dispatch_time <= concat(#{order.dispatchTimeEnd}, ' 23:59:59') + + + and o.end_time >= concat(#{order.endTimeSta}, ' 00:00:00') + + + and o.end_time <= concat(#{order.endTimeEnd}, ' 23:59:59') + + + + and o.site_dispatch_time >= concat(#{order.siteDispatchTimeSta}, ' 00:00:00') + + + and o.site_dispatch_time <= concat(#{order.siteDispatchTimeEnd}, ' 23:59:59') + + + + and o.capital_name in + + #{item} + + + + + and o.status in + + #{item} + + + + and o.site_status in + + #{item} + + + + + and o.province in + + #{item} + + + + + and o.city in + + #{item} + + + + and o.area in + + #{item} + + + + + and o.site_id in + + #{item} + + + + + and o.entry_id in + + #{item} + + + + + and (o.number like concat('%',#{order.smallCondition},'%') + or o.customer_mobile like concat('%',#{order.smallCondition},'%') + or o.customer_name like concat('%',#{order.smallCondition},'%') + ) + + + + + + and DATEDIFF(NOW(), o.warranty_expires_time)<=0 + + + and DATEDIFF(NOW(), o.warranty_expires_time)>0 + + + + + and o.if_settle=#{order.ifSettle} + + + + + + and DATEDIFF(NOW(), o.warning_start_day)<=0 + + + and DATEDIFF(NOW(), o.warning_start_day)>0 + + + + + + + + + + + + + UPDATE `sf_operation_order_dispatch` SET status='5', update_time=#{date},update_by=#{userName},remarks='无效' WHERE order_id=#{orderId} AND status !='5' + + + + UPDATE `sf_operation_order_site_dispatch` SET status='5', update_time=#{date},update_name=#{userName} WHERE order_id=#{orderId} AND status !='5' + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.java new file mode 100644 index 0000000..5f0ac9f --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.java @@ -0,0 +1,55 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderOperationInfoVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 工单操作/跟踪明细记录表 Mapper 接口 + * + * @author lzp + * @since 2024-06-20 + */ +public interface OperationOrderOperationInfoMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderOperationInfo + * @return + */ + List selectOperationOrderOperationInfoPage(IPage page, OperationOrderOperationInfoVO operationOrderOperationInfo); + + OperationOrderOperationInfoEntity findInfoByOrderId(String orderId,String siteId); + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml new file mode 100644 index 0000000..475ac91 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.java new file mode 100644 index 0000000..94d2629 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import org.springblade.modules.order.pojo.dto.OperationOrderSettleDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderSettleEntity; +import org.springblade.modules.order.pojo.form.OperationOrderConditionForm; +import org.springblade.modules.order.pojo.vo.OperationOrderSettleVO; +import org.springblade.modules.order.excel.OperationOrderSettleExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 工单结算表 Mapper 接口 + * + * @author BladeX + * @since 2024-06-26 + */ +public interface OperationOrderSettleMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderSettle + * @return + */ + List selectOperationOrderSettlePage(IPage page, @Param("settleVo") OperationOrderConditionForm settleVo); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderSettle(@Param("ew") Wrapper queryWrapper); + + + OperationOrderSettleDTO getByOrderId(@Param("orderId") String orderId); +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml new file mode 100644 index 0000000..2744ce9 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + and o.number like concat('%',#{settleVo.orderNumber},'%') + + + and s.site_id=#{settleVo.siteId} + + + + and o.province in + + #{item} + + + + + and o.city in + + #{item} + + + + and o.area in + + #{item} + + + + + and o.site_id in + + #{item} + + + + + and o.entry_id in + + #{item} + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.java b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.java new file mode 100644 index 0000000..f8680f4 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.mapper; + +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSiteDispatchVO; +import org.springblade.modules.order.excel.OperationOrderSiteDispatchExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 服务商派工表 Mapper 接口 + * + * @author hx + * @since 2024-06-21 + */ +public interface OperationOrderSiteDispatchMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param operationOrderSiteDispatch + * @return + */ + List selectOperationOrderSiteDispatchPage(IPage page, OperationOrderSiteDispatchVO operationOrderSiteDispatch); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderSiteDispatch(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml new file mode 100644 index 0000000..d518719 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.java b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.java new file mode 100644 index 0000000..610f034 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.dto; + +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单回访表 数据传输对象实体类 + * + * @author BladeX + * @since 2024-06-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderCallbackDTO extends OperationOrderCallbackEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderDTO.java b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderDTO.java new file mode 100644 index 0000000..62603cd --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.dto; + +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单基础信息表 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderDTO extends OperationOrderEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.java b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.java new file mode 100644 index 0000000..20c9aa3 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; + +import java.io.Serial; + +/** + * 工单反馈表 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderFeedbackDTO extends OperationOrderFeedbackEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.java b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.java new file mode 100644 index 0000000..17f42fd --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import java.math.BigDecimal; + +/** + * 工单结算表 数据传输对象实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +public class OperationOrderSettleDTO { + + + @Schema(description = "结算id,修改的时候用") + private String settleId; + /* + 工单id + */ + @Schema(description = "工单id") + @NotBlank(message = "工单id不能为空!") + private String orderId; + /** + * 结算金额 + */ + @Schema(description = "结算金额") + @NotNull(message = "结算金额不能为空!") + private BigDecimal settleAmount; + + @Schema(description = "扣款金额") + private BigDecimal deductionAmount; + + @Schema(description = "实际支付金额") + @NotNull(message = "实际支付金额不能为空!") + private BigDecimal actualAmount; + /** + * 结算备注 + */ + @Schema(description = "结算备注") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSiteDispatchDTO.java b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSiteDispatchDTO.java new file mode 100644 index 0000000..7b9f1ab --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/dto/OperationOrderSiteDispatchDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.dto; + +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商派工表 数据传输对象实体类 + * + * @author hx + * @since 2024-06-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderSiteDispatchDTO extends OperationOrderSiteDispatchEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/dto/OrderLetterDTO.java b/src/main/java/org/springblade/modules/order/pojo/dto/OrderLetterDTO.java new file mode 100644 index 0000000..e6f5496 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/dto/OrderLetterDTO.java @@ -0,0 +1,39 @@ +package org.springblade.modules.order.pojo.dto; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import java.math.BigDecimal; +import java.util.Date; + +@Data +public class OrderLetterDTO { + + @Schema(description = "公函id") + private String id; + + @Schema(description = "order表主键id") + @NotBlank(message = "工单id不能为空") + private String orderId; + + @Schema(description = "预警时间") + @NotNull(message = "预警时间不能为空") + @JsonFormat(pattern ="yyyy-MM-dd") + @JSONField(format = "yyyy-MM-dd") + private Date warningDay; + + @Schema(description = "扣款金额") + @NotNull(message = "扣款金额不能为空") + private BigDecimal deductionAmount; + + @Schema(description = "公函地址") + @NotBlank(message = "公函不能为空") + private String letterPath; + + @Schema(description = "公函文件名称") + private String letterFileName; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.java new file mode 100644 index 0000000..4c66e01 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serializable; +import java.util.Date; + +/** + * 工单回访表 实体类 + * + * @author BladeX + * @since 2024-06-21 + */ +@Data +@TableName("sf_operation_order_callback") +@Schema(description = "OperationOrderCallback对象") +public class OperationOrderCallbackEntity implements Serializable { + + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 工单id + */ + @Schema(description = "工单id") + private String orderId; + /** + * 回访人id + */ + @Schema(description = "回访人id") + private String createBy; + /** + * 回访人姓名 + */ + @Schema(description = "回访人姓名") + private String createName; + + private Date createTime; + /** + * 服务态度:1.满意 2.一般 3.不满意 + */ + @Schema(description = "服务态度:1.满意 2.一般 3.不满意") + private String serviceAttitude; + /** + * 回访内容 + */ + @Schema(description = "回访内容") + private String remarks; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderDispatchEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderDispatchEntity.java new file mode 100644 index 0000000..8670ba9 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderDispatchEntity.java @@ -0,0 +1,139 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 工单平台派工表 实体类 + * + * @author lzp + * @since 2024-06-20 + */ +@Data +@TableName("sf_operation_order_dispatch") +@Schema(description = "OperationOrderDispatch对象") +public class OperationOrderDispatchEntity implements Serializable { + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + + /** + * order表主键id + */ + @Schema(description = "order表主键id") + private String orderId; + /** + * 工单派工时间 + */ + @Schema(description = "工单派工时间") + private Date dispatchTime; + /** + * 对待接收的派工处理时间,接单为接单时间,拒单为拒单时间 + */ + @Schema(description = "对待接收的派工处理时间,接单为接单时间,拒单为拒单时间") + private Date processTime; + /** + * 服务完工时间 + */ + @Schema(description = "服务完工时间") + private Date endTime; + /** + * 标记本次派工是否预约:0未预约 1已预约。默认0 + */ + @Schema(description = "标记本次派工是否预约:0未预约 1已预约。默认0") + private String promiseFlag; + /** + * 服务商/信息员修改预约的操作时间 + */ + @Schema(description = "服务商/信息员修改预约的操作时间") + private Date promiseTime; + /** + * 上门维修时间 + */ + @Schema(description = "上门维修时间") + private Date dropInTime; + /** + * 更新操作人 + */ + @Schema(description = "更新操作人") + private String updateBy; + + private Date updateTime; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + /** + * 平台派工操作人id + */ + @Schema(description = "平台派工操作人id") + private String employeeId; + /** + * 平台派工操作人姓名 + */ + @Schema(description = "平台派工操作人姓名") + private String employeeName; + @Schema(description = "派工状态:0.待接单 1.已接单 2.已拒单 3.维修已完工 4.已转派 5.派工取消") + private String status; + + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + /** + * 服务商名称 + */ + @Schema(description = "服务商名称") + private String siteName; + /** + * 完工结果:0.正常完工 1.服务商确认无效 + */ + @Schema(description = "完工结果:0.正常完工 1.服务商确认无效") + private String completionResult; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderEntity.java new file mode 100644 index 0000000..3b51a5c --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderEntity.java @@ -0,0 +1,490 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import jakarta.validation.constraints.NotEmpty; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.math.BigDecimal; + +/** + * 工单基础信息表 实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@TableName("sf_operation_order") +@Schema(description = "OperationOrder对象") +public class OperationOrderEntity implements Serializable { + + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 工单编号,生成规则:WX(维修)、 AN(安装)年月日时分+随机四位(工单编号不可重复),例如WX2019041012247567 + */ + @Schema(description = "工单编号,生成规则:WX(维修)、 AN(安装)年月日时分+随机四位(工单编号不可重复),例如WX2019041012247567") + private String number; + /** + * 工单来源类型:1.用户在线报修 2.平台录入 3.其他 默认2 ,4电商 + */ + @Schema(description = "工单来源类型:1.用户在线报修 2.平台录入 3.其他 默认2 ,4电商") + private String orderType; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "创建时间") + private Date createTime; + /** + * 工单报修时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "工单报修时间") + private Date repairTime; + /** + * 工单创建人user_id + */ + @Schema(description = "工单创建人user_id") + private String createBy; + /** + * 设备品牌 + */ + @Schema(description = "设备品牌") + private String applianceBrand; + /** + * 设备类型 + */ + @Schema(description = "设备类型") + private String applianceCategory; + /** + * 设备型号 + */ + @Schema(description = "设备型号") + private String applianceModel; + /** + * 设备条码 + */ + @Schema(description = "设备条码(设备SN)") + private String applianceBarcode; + /** + * 投运日期 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "投运日期") + private Date applianceBuyTime; + /** + * 设备容量 + */ + @Schema(description = "设备容量") + private BigDecimal applianceCapacity; + /** + * 设备序列号 + */ + @Schema(description = "设备序列号") + private String applianceMachineCode; + /** + * 用户姓名 + */ + @Schema(description = "用户姓名") + @NotEmpty(message = "用户姓名不能为空") + private String customerName; + /** + * 省 + */ + @NotEmpty(message = "省不能为空") + @Schema(description = "省") + private String province; + /** + * 市 + */ + @NotEmpty(message = "市不能为空") + @Schema(description = "市") + private String city; + /** + * 区 + */ + @NotEmpty(message = "区县不能为空") + @Schema(description = "区") + private String area; + @Schema(description = "省代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String provinceCode; + @Schema(description = "市代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String cityCode; + @Schema(description = "区县代码", requiredMode = Schema.RequiredMode.REQUIRED) + private String areaCode; + + /** + * 用户id 只有用户在app报修时才有 + */ + @Schema(description = "用户id 只有用户在app报修时才有") + private String customerId; + /** + * 用户详细地址 + */ + @NotEmpty(message = "用户详细地址不能为空") + @Schema(description = "用户详细地址") + private String customerAddress; + /** + * 用户联系方式一 + */ + @NotEmpty(message = "联系方式不能为空") + @Schema(description = "用户联系方式一") + private String customerMobile; + /** + * 用户联系方式二 + */ + @Schema(description = "用户联系方式二") + private String customerTelephone; + /** + * 用户的坐标信息:(格式:纬度,经度) + */ + @Schema(description = "用户的坐标信息:(格式:纬度,经度)") + private String customerLnglat; + /** + * 预约时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd") + @Schema(description = "预约时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date promiseTime; + /** + * 时间要求,6:00-8:00,8:00-10:00,10:00-12:00,12:00-14:00,14:00-16:00,16:00-18:00,18:00-20:00,20:00-22:00 + */ + @Schema(description = "时间要求,6:00-8:00,8:00-10:00,10:00-12:00,12:00-14:00,14:00-16:00,16:00-18:00,18:00-20:00,20:00-22:00") + private String promiseLimit; + /** + * 保修类型:1.保内 2.保外 + */ + @Schema(description = "保修类型:1.保内 2.保外") + private String warrantyType; + /** + * 服务类型: 01 客户纠纷 02.电网问题 03.设备故障 04.收益异常 05.低效设备 06.基他工单 + */ + @Schema(description = "服务类型: 01 客户纠纷 02.电网问题 03.设备故障 04.收益异常 05.低效设备 06.基他工单") + @NotEmpty(message = "服务类型不能为空") + private String serviceType; + /** + * 服务措施 + */ + @Schema(description = "服务措施") + private String serviceMeasures; + /** + * 备注(故障描述) + */ + @Schema(description = "备注(故障描述)") + private String remarks; + /** + * 预约标记:0未预约 1已预约 + */ + @Schema(description = "预约标记:0未预约 1已预约") + private String promiseFlag; + /** + * 投诉标记:0无投诉 1有投诉(默认为0) + */ + @Schema(description = "投诉标记:0无投诉 1有投诉(默认为0)") + private String complaintFlag; + /** + * 配件标记,0无备件 1待发备件 2已发备件 + */ + @Schema(description = "配件标记,0无备件 1待发备件 2已发备件") + private String fittingFlag; + /** + * 报修图片 多张用逗号" , " 隔开 + */ + @Schema(description = "报修图片 多张用逗号 隔开") + private String bdImgs; + /** + * 标记类型id + */ + @Schema(description = "标记类型id") + private String flag; + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + /** + * 服务商名称 + */ + @Schema(description = "服务商名称") + private String siteName; + /** + * 代理商id + */ + @Schema(description = "代理商id") + private String agentId; + /** + * 代理商名称 + */ + @Schema(description = "代理商名称") + private String agentName; + + /** + * 工程师id + */ + @Schema(description = "工程师id") + private String employeId; + /** + * 工程师姓名 + */ + @Schema(description = "工程师姓名") + private String employeName; + /** + * 工程师手机号码 + */ + @Schema(description = "工程师手机号码") + private String employeMobile; + /** + * 更新人姓名 + */ + @Schema(description = "更新人姓名") + private String updateName; + /** + * 最新过程:如 修改预约时间、上门维修、缺件等 + */ + @Schema(description = "最新过程:如 修改预约时间、上门维修、缺件等") + private String latestProcess; + /** + * 最新过程时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "最新过程时间") + private Date latestProcessTime; + /** + * 投诉次数 + */ + @Schema(description = "投诉次数") + private Integer complaintCount; + /** + * 服务商结算费 + */ + @Schema(description = "服务商结算费") + private BigDecimal siteCost; + /** + * 应收金额 + */ + @Schema(description = "应收金额") + private BigDecimal accountsReceivable; + /** + * 收款总额 + */ + @Schema(description = "收款总额") + private BigDecimal totalCollections; + @Schema(description = "工单平台操作状态:1.待派工 2.服务中 3.待回访 4.待结算 5.已完成 6.无效工单 7.取消工单,默认1") + private String status; + /** + * 工单服务商操作状态:0尚未指派给服务商 1待服务商接单 2服务商已拒单 3待服务商派工 4待工程师接单 5待上门 6服务中 7已完工 8派工取消 9无效工单 + */ + @Schema(description = "工单服务商操作状态:0尚未指派给服务商 1待服务商接单 2服务商已拒单 3待服务商派工 4待工程师接单 5待上门 6服务中 7已完工 8派工取消 9无效工单") + private String siteStatus; + /** + * 平台派工时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "平台派工时间") + private Date dispatchTime; + /** + * 服务商接单时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "服务商接单时间") + private Date processTime; + /** + * 服务商派工时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "服务商派工时间") + private Date siteDispatchTime; + /** + * 工程师接单时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "工程师接单时间") + private Date siteProcessTime; + /** + * 服务商的服务完工时间 + */ + @TableField(updateStrategy = FieldStrategy.IGNORED) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "服务商的服务完工时间") + private Date endTime; + /** + * 服务商的工程师上门时间 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "服务商的工程师上门时间") + private Date dropInTime; + /** + * 无效原因 + */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "无效原因") + private String disableResource; + /** + * 回访结果 1已完成、2仍需上门 + */ + @Schema(description = "回访结果 1已完成、2仍需上门") + private String callbackResult; + /** + * 工单的里程 + */ + @Schema(description = "工单的里程") + private BigDecimal mileage; + /** + * 里程费 + */ + @Schema(description = "里程费") + private BigDecimal mileCost; + /** + * 服务费 + */ + @Schema(description = "服务费") + private BigDecimal serviceCost; + /** + * 备件费用 + */ + @Schema(description = "备件费用") + private BigDecimal fittingCost; + /** + * 电站名称 + */ + @Schema(description = "电站名称") + private String powerStationName; + /** + * 电站编码 + */ + @NotEmpty(message = "电站编码不能为空") + @Schema(description = "电站编码") + private String powerStationCode; + /** + * 电站id + */ + @Schema(description = "电站id") + private String entryId; + /** + * 重要程度:1.紧急 2.一般 + */ + @Schema(description = "重要程度:1.紧急 2.一般") + private String level; + /** + * 销售商 + */ + @Schema(description = "销售商") + private String pleaseReferMall; + /** + * 发票号码 + */ + @Schema(description = "发票号码") + private String invoice; + /** + * 特殊安装单(渠道安装单) 1否 、2是 默认为 1 + */ + @Schema(description = "特殊安装单(渠道安装单) 1否 、2是 默认为 1") + private String specialInstallation; + /** + * 保修卡生成标记:0未生成 1已生成 + */ + @Schema(description = "保修卡生成标记:0未生成 1已生成") + private String warrantyFlag; + /** + * 直接封单备注 + */ + @Schema(description = "直接封单备注") + private String memoNote; + + @Schema(description = "投运时间") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern ="yyyy-MM-dd") + @JSONField(format = "yyyy-MM-dd") + private Date putIntoTime; + + private String createName; + + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Schema(description = "结算时间") + private Date settleTime; + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema(description = "故障id") + private Long alarmId; + + /** + * 资方编号 + */ + @Schema(description = "资方编号") + private String capitalCode; + /** + * 资方名称 + */ + @Schema(description = "资方名称") + private String capitalName; + + @Schema(description = "延期次数") + @JsonSerialize(nullsUsing = NullSerializer.class) + private Integer extensionCount; + + @Schema(description = "预警时间") + @JsonFormat(pattern ="yyyy-MM-dd") + @JSONField(format = "yyyy-MM-dd") + private Date warningStartDay; + + @Schema(description = "回款时间(投放通过时间)") + @JsonFormat(pattern ="yyyy-MM-dd") + @JSONField(format = "yyyy-MM-dd") + private Date paymentTime; + + @Schema(description = "质保到期时间") + @JsonFormat(pattern ="yyyy-MM-dd") + @JSONField(format = "yyyy-MM-dd") + private Date warrantyExpiresTime; + + + @Schema(description = "是否需要结算:1是 0否") + private String ifSettle; + + @Schema(description = "扣款金额") + private BigDecimal deductionTotalAmount; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.java new file mode 100644 index 0000000..0646dee --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.java @@ -0,0 +1,111 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 工单反馈表 实体类 + * + * @author lzp + * @since 2024-06-21 + */ +@Data +@TableName("sf_operation_order_feedback") +@Schema(description = "OperationOrderFeedback对象") +public class OperationOrderFeedbackEntity implements Serializable { + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * order表主键id + */ + @Schema(description = "order表主键id") + private String orderId; + /** + * 反馈时间 + */ + @Schema(description = "反馈时间") + private Date feedbackTime; + /** + * 反馈人id:对应角色子表主键id + */ + @Schema(description = "反馈人id:对应角色子表主键id") + private String feedbackId; + /** + * 反馈人姓名 + */ + @Schema(description = "反馈人姓名") + private String feedbackName; + /** + * 反馈文字内容,维修工反馈维修过程内容,信息员可反馈记录客户催单/(缺件:+配件描述) + */ + @Schema(description = "反馈文字内容,维修工反馈维修过程内容,信息员可反馈记录客户催单/(缺件:+配件描述)") + private String feedback; + /** + * 反馈结果 + */ + @Schema(description = "反馈结果") + private String feedbackResult; + /** + * 反馈设备主图片路径(可存放多个图片路径,以","隔开) + */ + @Schema(description = "反馈设备主图片路径(可存放多个图片路径,以隔开)") + private String feedbackImg; + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + /** + * 反馈类型:0 过程反馈 1服务完成反馈 2服务无法完成反馈 + */ + @Schema(description = "反馈类型:0 过程反馈 1服务完成反馈 2服务无法完成反馈") + private String feedbackType; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.java new file mode 100644 index 0000000..a82957d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.java @@ -0,0 +1,61 @@ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +@Data +@TableName("sf_operation_order_letter") +@Schema(description = "OperationOrderLetterEntity对象") +public class OperationOrderLetterEntity implements Serializable { + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + + /** + * order表主键id + */ + @Schema(description = "order表主键id") + private String orderId; + + @Schema(description = "预警时间") + private Date warningDay; + + @Schema(description = "扣款金额") + private BigDecimal deductionAmount; + + @Schema(description = "公函地址") + private String letterPath; + + @Schema(description = "公函文件名称") + private String letterFileName; + + @Schema(description = "上传时间") + private Date createTime; + + @Schema(description = "上传人姓名") + private String createName; + + @Schema(description = "修改时间") + private Date updateTime; + + @Schema(description = "修改人") + private String updateName; + + @Schema(description = "状态:0正常 1删除") + private String status; +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.java new file mode 100644 index 0000000..302420b --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serializable; + +/** + * 工单操作/跟踪明细记录表 实体类 + * + * @author lzp + * @since 2024-06-20 + */ +@Data +@TableName("sf_operation_order_operation_info") +@Schema(description = "OperationOrderOperationInfo对象") +public class OperationOrderOperationInfoEntity implements Serializable { + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * 关联工单id + */ + @Schema(description = "关联工单id") + private String orderId; + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + /** + * 过程信息详情,Json格式List列表存储:字段有 时间-2017-04-05 15:16:50 操作人-王佳贤 操作内容-品牌商修改了条码 + */ + @Schema(description = "过程信息详情,Json格式List列表存储:字段有 时间-2017-04-05 15:16:50 操作人-王佳贤 操作内容-品牌商修改了条码") + private String processDetail; + /** + * 跟踪信息详情(平台人员操作),Json格式List列表存储:字段有 时间-2017-04-05 15:16:50 操作人-王佳贤 操作内容-品牌商修改了条码 + */ + @Schema(description = "跟踪信息详情(平台人员操作),Json格式List列表存储:字段有 时间-2017-04-05 15:16:50 操作人-王佳贤 操作内容-品牌商修改了条码") + private String trackDetail; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.java new file mode 100644 index 0000000..5320a93 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.java @@ -0,0 +1,104 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 工单结算表 实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +@TableName("sf_operation_order_settle") +@Schema(description = "OperationOrderSettle对象") +public class OperationOrderSettleEntity implements Serializable { + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + /** + * 工单id + */ + @Schema(description = "工单id") + private String orderId; + /** + * 结算金额 + */ + @Schema(description = "结算金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal settleAmount; + + @Schema(description = "扣款金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal deductionAmount; + + @Schema(description = "实际支付金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal actualAmount; + /** + * 结算备注 + */ + @Schema(description = "结算备注") + private String remarks; + /** + * 结算时间 + */ + @Schema(description = "结算时间") + private Date settleTime; + /** + * 结算人 + */ + @Schema(description = "结算人") + private String settleBy; + /** + * 结算人姓名 + */ + @Schema(description = "结算人姓名") + private String settleByName; + + + private String siteId; + + private String status; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.java b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.java new file mode 100644 index 0000000..cf410d5 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.java @@ -0,0 +1,124 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 服务商派工表 实体类 + * + * @author hx + * @since 2024-06-21 + */ +@Data +@TableName("sf_operation_order_site_dispatch") +@Schema(description = "OperationOrderSiteDispatch对象") +public class OperationOrderSiteDispatchEntity implements Serializable { + + @JsonSerialize( + using = ToStringSerializer.class + ) + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 关联工单id + */ + @Schema(description = "关联工单id") + private String orderId; + /** + * 服务商id + */ + @Schema(description = "服务商id") + private String siteId; + /** + * 工程师id(多个逗号拼接) + */ + @Schema(description = "工程师id(多个逗号拼接)") + private String employeId; + /** + * 工程师姓名(多个逗号拼接) + */ + @Schema(description = "工程师姓名(多个逗号拼接)") + private String employeName; + /** + * 工单派工时间 + */ + @Schema(description = "工单派工时间") + private Date dispatchTime; + /** + * 对待接收的派工处理时间,接单为接单时间,拒单为拒单时间 + */ + @Schema(description = "对待接收的派工处理时间,接单为接单时间,拒单为拒单时间") + private Date processTime; + /** + * 工程师修改预约的操作时间 + */ + @Schema(description = "工程师修改预约的操作时间") + private Date promiseTime; + /** + * 服务完工时间 + */ + @Schema(description = "服务完工时间") + private Date endTime; + /** + * 上门服务时间 + */ + @Schema(description = "上门服务时间") + private Date dropInTime; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String creator; + + private String status; + + private Date createTime; + + + private Date updateTime; + + private String updateName; +} diff --git a/src/main/java/org/springblade/modules/order/pojo/form/ComplaintForm.java b/src/main/java/org/springblade/modules/order/pojo/form/ComplaintForm.java new file mode 100644 index 0000000..29e33f6 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/form/ComplaintForm.java @@ -0,0 +1,112 @@ +package org.springblade.modules.order.pojo.form; + +public class ComplaintForm { + private String type; + private String orderNumber; + private String feedbackType; + private String title; + private String titleNew; + private String otherFeedbackType; + private String feedbackInfoType; + private String feedbackInfo; + private String otherTitle; + private String description; + private String imgs; + private String complaintName; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getOrderNumber() { + return orderNumber; + } + + public void setOrderNumber(String orderNumber) { + this.orderNumber = orderNumber; + } + + public String getFeedbackType() { + return feedbackType; + } + + public void setFeedbackType(String feedbackType) { + this.feedbackType = feedbackType; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getTitleNew() { + return titleNew; + } + + public void setTitleNew(String titleNew) { + this.titleNew = titleNew; + } + + public String getOtherFeedbackType() { + return otherFeedbackType; + } + + public void setOtherFeedbackType(String otherFeedbackType) { + this.otherFeedbackType = otherFeedbackType; + } + + public String getFeedbackInfoType() { + return feedbackInfoType; + } + + public void setFeedbackInfoType(String feedbackInfoType) { + this.feedbackInfoType = feedbackInfoType; + } + + public String getFeedbackInfo() { + return feedbackInfo; + } + + public void setFeedbackInfo(String feedbackInfo) { + this.feedbackInfo = feedbackInfo; + } + + public String getOtherTitle() { + return otherTitle; + } + + public void setOtherTitle(String otherTitle) { + this.otherTitle = otherTitle; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getImgs() { + return imgs; + } + + public void setImgs(String imgs) { + this.imgs = imgs; + } + + public String getComplaintName() { + return complaintName; + } + + public void setComplaintName(String complaintName) { + this.complaintName = complaintName; + } +} diff --git a/src/main/java/org/springblade/modules/order/pojo/form/ComplaintReply.java b/src/main/java/org/springblade/modules/order/pojo/form/ComplaintReply.java new file mode 100644 index 0000000..8e06c5d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/form/ComplaintReply.java @@ -0,0 +1,31 @@ +package org.springblade.modules.order.pojo.form; + +public class ComplaintReply { + private String p; + private String t; + private String c; + + public String getP() { + return p; + } + + public void setP(String p) { + this.p = p; + } + + public String getT() { + return t; + } + + public void setT(String t) { + this.t = t; + } + + public String getC() { + return c; + } + + public void setC(String c) { + this.c = c; + } +} diff --git a/src/main/java/org/springblade/modules/order/pojo/form/EvaluationForm.java b/src/main/java/org/springblade/modules/order/pojo/form/EvaluationForm.java new file mode 100644 index 0000000..d5d0d6f --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/form/EvaluationForm.java @@ -0,0 +1,50 @@ +package org.springblade.modules.order.pojo.form; + +import org.hibernate.validator.constraints.NotBlank; + +public class EvaluationForm { + private String id; + /** + * 评价满意度 + */ + private String level; + /** + * 留言 + */ + private String description; + + @NotBlank + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @NotBlank + public String getLevel() { + return level; + } + + public void setLevel(String level) { + this.level = level; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String toString() { + return "EvaluationForm{" + + "id='" + id + '\'' + + ", level='" + level + '\'' + + ", description='" + description + '\'' + + '}'; + } +} diff --git a/src/main/java/org/springblade/modules/order/pojo/form/FeedbackForm.java b/src/main/java/org/springblade/modules/order/pojo/form/FeedbackForm.java new file mode 100644 index 0000000..c0e6ef9 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/form/FeedbackForm.java @@ -0,0 +1,26 @@ +package org.springblade.modules.order.pojo.form; + +import org.hibernate.validator.constraints.NotBlank; + +public class FeedbackForm { + private String id; + private String feedback; + + @NotBlank + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @NotBlank + public String getFeedback() { + return feedback; + } + + public void setFeedback(String feedback) { + this.feedback = feedback; + } +} diff --git a/src/main/java/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.java b/src/main/java/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.java new file mode 100644 index 0000000..adaa41d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.java @@ -0,0 +1,38 @@ +package org.springblade.modules.order.pojo.form; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class OperationOrderConditionForm{ + + @Schema(description = "工单编号") + private String orderNumber; + + @Schema(description = "电站编码") + private String powerStationCode; + + @Schema(description = "服务商id") + private String siteId; + + @Schema(description = "工程师id") + private String empId; + + @Schema(description = "结算时间--开始") + private String settleTimeSta; + + @Schema(description = "结算时间--结束") + private String settleTimeEnd; + + + private String provinces; + + private String city; + + private String area; + + private String entryIds; + + private String siteIds; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/ExamineOrderVo.java b/src/main/java/org/springblade/modules/order/pojo/vo/ExamineOrderVo.java new file mode 100644 index 0000000..8ee83e5 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/ExamineOrderVo.java @@ -0,0 +1,13 @@ +package org.springblade.modules.order.pojo.vo; + +import lombok.Data; + +@Data +public class ExamineOrderVo { + + String id; + String callbackResult; + String memoNote; + + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.java new file mode 100644 index 0000000..415e08d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单回访表 视图实体类 + * + * @author BladeX + * @since 2024-06-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderCallbackVO extends OperationOrderCallbackEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderDispatchVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderDispatchVO.java new file mode 100644 index 0000000..9992f01 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderDispatchVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单平台派工表 视图实体类 + * + * @author lzp + * @since 2024-06-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderDispatchVO extends OperationOrderDispatchEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderFeedbackVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderFeedbackVO.java new file mode 100644 index 0000000..ff3b496 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderFeedbackVO.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.util.Date; + +/** + * 工单反馈表 视图实体类 + * + * @author lzp + * @since 2024-06-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderFeedbackVO extends OperationOrderFeedbackEntity { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "设备品牌") + private String applianceBrand; + + @Schema(description = "设备S/N") + private String applianceBarcode; + + @Schema(description = "保修类型") + private String warrantyType; + + @Schema(description = "投运时间",type = "date",format="yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd") + private Date putIntoTime; + + @Schema(description = "服务措施") + private String serviceMeasures; + @Schema(description = "服务类型") + private String serviceType; +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderOperationInfoVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderOperationInfoVO.java new file mode 100644 index 0000000..a5be405 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderOperationInfoVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 工单操作/跟踪明细记录表 视图实体类 + * + * @author lzp + * @since 2024-06-20 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderOperationInfoVO extends OperationOrderOperationInfoEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.java new file mode 100644 index 0000000..851cd41 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.java @@ -0,0 +1,120 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.order.pojo.entity.OperationOrderSettleEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 工单结算表 视图实体类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Data +public class OperationOrderSettleVO { + + @Schema(description = "id") + private String id; + /** + * 工单id + */ + @Schema(description = "工单id") + private String orderId; + /** + * 结算金额 + */ + @Schema(description = "结算金额") + private BigDecimal settleAmount; + /** + * 结算备注 + */ + @Schema(description = "结算备注") + private String settleRemarks; + /** + * 结算时间 + */ + @Schema(description = "结算时间") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date settleTime; + + @Schema(description = "工单编号") + private String orderNumber; + + @Schema(description = "电站编码") + private String powerStationCode; + + @Schema(description = "运维服务商") + private String siteName; + + @Schema(description = "工程师") + private String employeName; + + + @Schema(description = "服务类型") + private String serviceType; + + + @Schema(description = "服务措施") + private String serviceMeasures; + + + @Schema(description = "保修类型") + private String warrantyType; + + + @Schema(description = "设备品牌") + private String applianceBrand; + + + @Schema(description = "设备类型") + private String applianceCategory; + + + @Schema(description = "工单编号") + private String appliance_model; + + @Schema(description = "故障描述") + private String remarks; + + @Schema(description = "业主姓名") + private String customerName; + + @Schema(description = "联系方式") + private String customerMobile; + + @Schema(description = "安装地址") + private String address; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.java new file mode 100644 index 0000000..eeb5755 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 服务商派工表 视图实体类 + * + * @author hx + * @since 2024-06-21 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderSiteDispatchVO extends OperationOrderSiteDispatchEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderVO.java b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderVO.java new file mode 100644 index 0000000..fe549ae --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OperationOrderVO.java @@ -0,0 +1,91 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import org.springblade.modules.order.pojo.dto.OperationOrderSettleDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.utils.Target; + +import java.io.Serial; +import java.math.BigDecimal; +import java.util.List; + +/** + * 工单基础信息表 视图实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class OperationOrderVO extends OperationOrderEntity { + @Serial + private static final long serialVersionUID = 1L; + @Schema(description = "过程信息") + private List guochengList; + + @Schema(description = "服务措施名称") + private String serviceMeasuresName; + + @Schema(description = "服务类型名称") + private String serviceTypeName; + + + private OperationOrderFeedbackEntity feedbackEntity; + @Schema(description = "反馈图片") + private List feedImgs; + + @Schema(description = "完工时间差") + private String disEndTime; + + @Schema(description = "是否超期 1是 0否( 统计的是是否超出质保期的电站)") + private String ifOverDue; + + @Schema(description = "费用结算信息") + private OperationOrderSettleDTO orderSettleDTO; + + @Schema(description = "告警名称") + private String alarmName; + + @Schema(description = "结算金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal settleAmount; + + @Schema(description = "扣款金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal deductionAmount; + + @Schema(description = "实际支付金额") + @JsonSerialize(nullsUsing = NullSerializer.class) + private BigDecimal actualAmount; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OrderHomeVo.java b/src/main/java/org/springblade/modules/order/pojo/vo/OrderHomeVo.java new file mode 100644 index 0000000..8f87686 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OrderHomeVo.java @@ -0,0 +1,24 @@ +package org.springblade.modules.order.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class OrderHomeVo { + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "待接单数量") + private Long djdCount; + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "服务中数量") + private Long fwzCount; + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "已完成数量") + private Long ywcCount; + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "工单查询全部数量") + private Long allCount; + + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OrderListConditionVo.java b/src/main/java/org/springblade/modules/order/pojo/vo/OrderListConditionVo.java new file mode 100644 index 0000000..83d6739 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OrderListConditionVo.java @@ -0,0 +1,98 @@ +package org.springblade.modules.order.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class OrderListConditionVo { + + @Schema(description = "创建时间--开始") + private String createTimeSta; + + @Schema(description = "创建时间--结束") + private String createTimeEnd; + + @Schema(description = "派工时间--开始") + private String dispatchTimeSta; + + @Schema(description = "派工时间--结束") + private String dispatchTimeEnd; + + @Schema(description = "服务商派工时间--开始") + private String siteDispatchTimeSta; + + @Schema(description = "服务商派工时间--结束") + private String siteDispatchTimeEnd; + + private String orderType; + + + @Schema(description = "完工时间--开始") + private String endTimeSta; + + @Schema(description = "完工时间--结束") + private String endTimeEnd; + + @Schema(description = "服务商id") + private String siteId; + + private String number; + + private String powerStationCode; + + private String customerName; + + private String customerMobile; + + private String customerAddress; + + private String siteName; + + private String warrantyType; + + private String serviceMeasures; + + private String applianceCategory; + + private String employeId; + + private String employeName; + + private String serviceType; + + private String status; + + private String siteStatus; + + @Schema(description = "小程序查询条件(工单编号、手机号、业主姓名)") + private String smallCondition; + + private String provinces; + + private String city; + + private String area; + + private String entryIds; + + private String siteIds; + + @Schema(description = "资方名称") + private String capitalName; + + @Schema(description = "是否超期 1是 0否") + private String ifOverDue; + + @Schema(description = "是否需要结算:1是 0否") + private String ifSettle; + + + @Schema(description = "预警工单 1是 0否") + private String ifWarningOrder; + + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OrderStaticVo.java b/src/main/java/org/springblade/modules/order/pojo/vo/OrderStaticVo.java new file mode 100644 index 0000000..b0a1f3b --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OrderStaticVo.java @@ -0,0 +1,27 @@ +package org.springblade.modules.order.pojo.vo; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data +public class OrderStaticVo { + + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "平台端--未处理数量") + private Long notFinishCount; + + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "平台端--已处理数量") + private Long finishCount; + + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "运营商端--未处理数量") + private Long sitNotFinishCount; + + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "运营商端--已处理数量") + private Long sitFinishCount; + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/OrderVo.java b/src/main/java/org/springblade/modules/order/pojo/vo/OrderVo.java new file mode 100644 index 0000000..5a42973 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/OrderVo.java @@ -0,0 +1,39 @@ +package org.springblade.modules.order.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +@Data + +public class OrderVo { + @Schema(description = "进件序号") + private String partnersContractNumber;// + + @Schema(description = "平台派工时间") + private String dispatchTime; + + @Schema(description = "工单编号") + private String number; + + @Schema(description = "工单来源类型:5监控") + private String orderType; + + @Schema(description = "工单类型: 安装/维修/咨询 ") + private String serviceType; + + @Schema(description = "工单平台操作状态:1.待派工 2.服务中 3.待回访 4.待结算 5.已完成 6.无效工单 7.取消工单,默认1") + private String status; + + @Schema(description = "备注(故障描述)") + private String remarks; + + @Schema(description = "服务商名称") + private String siteName; + @Schema(description = "工程师姓名") + private String employeName; + @Schema(description = "完工时间") + private String endTime; + + + +} diff --git a/src/main/java/org/springblade/modules/order/pojo/vo/SelectVo.java b/src/main/java/org/springblade/modules/order/pojo/vo/SelectVo.java new file mode 100644 index 0000000..e7660bb --- /dev/null +++ b/src/main/java/org/springblade/modules/order/pojo/vo/SelectVo.java @@ -0,0 +1,15 @@ +package org.springblade.modules.order.pojo.vo; + +import lombok.Data; + +@Data +public class SelectVo { + + public String name; + + public String id; + + public String code; + + private String number; +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderCallbackService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderCallbackService.java new file mode 100644 index 0000000..63d5a82 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderCallbackService.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderCallbackVO; +import org.springblade.modules.order.excel.OperationOrderCallbackExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.order.pojo.vo.SelectVo; + +import java.util.List; + +/** + * 工单回访表 服务类 + * + * @author BladeX + * @since 2024-06-21 + */ +public interface IOperationOrderCallbackService extends IService { + + boolean addOrderCllBack(OperationOrderCallbackEntity entity); + + List getAllBrand(); +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderDispatchService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderDispatchService.java new file mode 100644 index 0000000..6514979 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderDispatchService.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderDispatchVO; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 工单平台派工表 服务类 + * + * @author lzp + * @since 2024-06-20 + */ +public interface IOperationOrderDispatchService extends IService { + + boolean dispatchOrderSite(String orderId,String siteId); + + OperationOrderDispatchEntity findOrderDisByOrderId(String orderId); + + boolean receiveOrder(String orderIds); + + OperationOrderDispatchEntity getByOrderId(String orderId); + +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderFeedbackService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderFeedbackService.java new file mode 100644 index 0000000..915e081 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderFeedbackService.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.order.excel.OperationOrderFeedbackExcel; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderFeedbackVO; + +import java.util.List; + +/** + * 工单反馈表 服务类 + * + * @author lzp + * @since 2024-06-21 + */ +public interface IOperationOrderFeedbackService extends IService { + + + boolean feedbackSealingSheet(OperationOrderFeedbackVO feedback); + + + List listFeedback(String orderId); +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderOperationInfoService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderOperationInfoService.java new file mode 100644 index 0000000..4b6fa4d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderOperationInfoService.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderOperationInfoVO; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * 工单操作/跟踪明细记录表 服务类 + * + * @author lzp + * @since 2024-06-20 + */ +public interface IOperationOrderOperationInfoService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationOrderOperationInfo + * @return + */ + IPage selectOperationOrderOperationInfoPage(IPage page, OperationOrderOperationInfoVO operationOrderOperationInfo); + + OperationOrderOperationInfoEntity findInfoByOrderId(String orderId); + +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderService.java new file mode 100644 index 0000000..bb913e7 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderService.java @@ -0,0 +1,87 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.tool.api.R; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.vo.*; +import org.springblade.modules.order.excel.OperationOrderExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; + +import java.util.List; +import java.util.Map; + +/** + * 工单基础信息表 服务类 + * + * @author lzp + * @since 2024-06-18 + */ +public interface IOperationOrderService extends IService { + + + OperationOrderVO findOrderDetail(String orderId); + + + /** + * 自定义分页 + * + * @param page + * @param + * @return + */ + IPage selectOperationOrderPage(IPage page, OrderListConditionVo conditionVo); + + R saveOrder(OperationOrderEntity operationOrder); + + + boolean updateOrder(OperationOrderEntity operationOrder); + + /** + * 导出数据 + * + * @param operationOrder + * @return + */ + List exportOperationOrder( Map operationOrder); + + boolean deleteLogic(String id,String status, String disableResource); + + OrderHomeVo orderHomeIndex(); + + boolean turnMainOrder(String id); + + boolean toExamineOrder(ExamineOrderVo exc ); + + OrderStaticVo homeOrderStatic(); + + OrderHomeVo pcOrderHomeIndex(); + + List findOrderListBySiteId(String code); +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderSettleService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderSettleService.java new file mode 100644 index 0000000..c930a93 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderSettleService.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.order.pojo.dto.OperationOrderSettleDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderSettleEntity; +import org.springblade.modules.order.pojo.form.OperationOrderConditionForm; +import org.springblade.modules.order.pojo.vo.OperationOrderSettleVO; +import org.springblade.modules.order.excel.OperationOrderSettleExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 工单结算表 服务类 + * + * @author BladeX + * @since 2024-06-26 + */ +public interface IOperationOrderSettleService extends IService { + /** + * 自定义分页 + * + * @param page + * @param operationOrderSettle + * @return + */ + IPage selectOperationOrderSettlePage(IPage page, OperationOrderConditionForm operationOrderSettle); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportOperationOrderSettle(Wrapper queryWrapper); + + boolean saveOrderSettle(OperationOrderSettleDTO orderSettleDTO); + + boolean ifSettle(String orderIds,String ifSettle); + +} diff --git a/src/main/java/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.java b/src/main/java/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.java new file mode 100644 index 0000000..f19e78d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.java @@ -0,0 +1,53 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSiteDispatchVO; +import org.springblade.modules.order.excel.OperationOrderSiteDispatchExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import java.util.List; + +/** + * 服务商派工表 服务类 + * + * @author hx + * @since 2024-06-21 + */ +public interface IOperationOrderSiteDispatchService extends IService { + + boolean siteDispatchOrder(String orderIds,String empIds); + + boolean transferSiteOrder(String orderIds,String empIds); + + boolean empReceiveOrde(String orderId); + + OperationOrderSiteDispatchEntity getByOrderId(String orderId); + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.java new file mode 100644 index 0000000..a89142f --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.java @@ -0,0 +1,124 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.factory.goodwe.dto.getinventersmoredetailinfobysn.D; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderCallbackVO; +import org.springblade.modules.order.excel.OperationOrderCallbackExcel; +import org.springblade.modules.order.mapper.OperationOrderCallbackMapper; +import org.springblade.modules.order.pojo.vo.SelectVo; +import org.springblade.modules.order.service.IOperationOrderCallbackService; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 工单回访表 服务实现类 + * + * @author BladeX + * @since 2024-06-21 + */ +@Service +public class OperationOrderCallbackServiceImpl extends ServiceImpl implements IOperationOrderCallbackService { + + Logger logger= LoggerFactory.getLogger(getClass()); + + @Autowired + OperationOrderServiceImpl orderService; + + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + + //工单回访 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean addOrderCllBack(OperationOrderCallbackEntity entity) { + logger.info("addOrderCllBack orderId:{},result:{}",entity.getOrderId(),entity.getServiceAttitude()); + + OperationOrderEntity order = orderService.getById(entity.getOrderId()); + if(!OrderConstants.ORDER_STATUS_CALL.equals(order.getStatus()) && !OrderConstants.ORDER_STATUS_SETTLE.equals(order.getStatus())){ + throw new ServiceException("工单状态不支持回访操作,请刷新!"); + } + if(OrderConstants.RESULT_OK.equals(order.getCallbackResult())){ + throw new ServiceException("工单已回访,请勿在次回访!"); + } + BladeUser user = AuthUtil.getUser(); + Date date=new Date(); + order.setCallbackResult(OrderConstants.RESULT_OK); + order.setLatestProcess(user.getNickName() + "工单回访"); + order.setLatestProcessTime(date); + Boolean flag1= orderService.updateById(order); + if(!flag1){ + throw new ServiceException("修改工单表失败!"); + } + //更新过程信息 + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(date)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "工单回访"); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + ta.setT(Target.MESS_CALLBACK); + if(StringUtil.isBlank(info.getId())){ + info.setOrderId(order.getId()); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + if(!infoService.saveOrUpdate(info)){ + throw new ServiceException("保存过程信息失败!"); + } + entity.setCreateName(user.getNickName()); + entity.setCreateBy(user.getUserId().toString()); + entity.setCreateTime(date); + return save(entity); + } + + @Override + public List getAllBrand() { + List list=baseMapper.getAllBrand(); + return list; + } + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderDispatchServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderDispatchServiceImpl.java new file mode 100644 index 0000000..b4203bf --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderDispatchServiceImpl.java @@ -0,0 +1,204 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.time.DateUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.OperationEmpVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderDispatchVO; +import org.springblade.modules.order.mapper.OperationOrderDispatchMapper; +import org.springblade.modules.order.service.IOperationOrderDispatchService; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 工单平台派工表 服务实现类 + * + * @author lzp + * @since 2024-06-20 + */ +@Service +public class OperationOrderDispatchServiceImpl extends ServiceImpl implements IOperationOrderDispatchService { + Logger logger= LoggerFactory.getLogger(getClass()); + + @Autowired + OperationOrderServiceImpl orderService; + @Autowired + OperationSiteServiceImpl siteService; + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean dispatchOrderSite(String orderId, String siteId) { + BladeUser blUser = AuthUtil.getUser(); + Date time = new Date(); + OperationSiteEntity site = siteService.getById(siteId); + OperationOrderEntity order = orderService.getById(orderId); + if(!OrderConstants.ORDER_STATUS_DIS.equals(order.getStatus())){ + throw new ServiceException("当前状态发生改变,请刷新在试"); + } + /* if(StringUtil.isBlank(order.getServiceType())){ + throw new ServiceException("服务类型为空,请先维护服务类型"); + }*/ + order.setSiteId(siteId); + order.setSiteName(site.getName()); + order.setUpdateName(blUser.getNickName()); + order.setDispatchTime(time); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.DISPATCH_STATUS_YJD); + if(order.getWarningStartDay()==null){ + order.setWarningStartDay(DateUtils.addDays(time,3)); + } + if(!orderService.updateById(order)){ + return false; + } + OperationOrderDispatchEntity dis = new OperationOrderDispatchEntity(); + dis.setOrderId(orderId); + dis.setDispatchTime(time); + dis.setStatus(OrderConstants.DISPATCH_STATUS_DJD); + dis.setSiteId(siteId); + dis.setSiteName(site.getName()); + //更新过程信息 + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(blUser.getNickName()); + ta.setC("平台人员:"+blUser.getNickName() + "派工至"+site.getName()+"服务商"); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + if(info== null){ + info = new OperationOrderOperationInfoEntity(); + } + ta.setT(Target.DISPATCH_ORDER); + if(StringUtil.isBlank(info.getId())){ + info.setOrderId(order.getId()); + } + if(StringUtil.isNotBlank(order.getSiteId())){ + info.setSiteId(order.getSiteId()); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + if(!infoService.updateById(info)){ + return false; + } + return save(dis); + } + + @Override + public OperationOrderDispatchEntity findOrderDisByOrderId(String orderId) { + return baseMapper.findOrderDisByOrderId(orderId); + } + + + //服务商接单 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean receiveOrder(String orderIds) { + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + logger.info(">>>>>>>>>>>>>>>>>接单 receiveOrder:orderIds:{}", orderIds); + String[] ids = orderIds.split(","); + Date date = new Date(); + for (String id : ids) { + OperationOrderEntity order = orderService.getById(id); + if (!OrderConstants.SITE_STATUS_GET.equals(order.getSiteStatus()) || !OrderConstants.ORDER_STATUS_SERVICE.equals(order.getStatus())) { + //该工单已不在待接单状态,无法接工单 + throw new ServiceException("该工单已不在待接单状态,无法接工单!"); + } + order.setSiteStatus(OrderConstants.SITE_STATUS_DIS); + order.setLatestProcess("工单已被 " + user.getNickName()+"接单"); + order.setLatestProcessTime(date); + order.setProcessTime(date); + order.setUpdateName(user.getNickName()); + + Boolean flg=orderService.updateById(order); + if(!flg){ + throw new ServiceException("修改工单表失败!"); + } + + OperationOrderDispatchEntity ordis = getById(id); + if (ordis != null) { + ordis.setStatus(OrderConstants.SITE_STATUS_DIS); + ordis.setProcessTime(date); + if(!saveOrUpdate(ordis)) { + throw new ServiceException("修改派单表失败!"); + } + } + + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC("服务商工单已被 "+user.getNickName() + "接单 "); + ta.setT(Target.NEW_ORDER); + + + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + if(StringUtil.isBlank(info.getId())){ + info.setOrderId(order.getId()); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + if(!infoService.updateById(info)){ + return false; + } + } + return true; + } + + + public OperationOrderDispatchEntity getByOrderId(String orderId){ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(OperationOrderDispatchEntity::getOrderId,orderId); + queryWrapper.ne(OperationOrderDispatchEntity::getStatus,OrderConstants.DISPATCH_STATUS_CANCEL); + OperationOrderDispatchEntity dispatchEntity=getOne(queryWrapper); + return dispatchEntity; + } + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderFeedbackServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderFeedbackServiceImpl.java new file mode 100644 index 0000000..09a5e42 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderFeedbackServiceImpl.java @@ -0,0 +1,185 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.excel.OperationOrderFeedbackExcel; +import org.springblade.modules.order.mapper.OperationOrderFeedbackMapper; +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderFeedbackVO; +import org.springblade.modules.order.service.IOperationOrderFeedbackService; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; + +/** + * 工单反馈表 服务实现类 + * + * @author lzp + * @since 2024-06-21 + */ +@Service +public class OperationOrderFeedbackServiceImpl extends ServiceImpl implements IOperationOrderFeedbackService { + + @Autowired + OperationOrderServiceImpl orderService; + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + @Autowired + OperationOrderDispatchServiceImpl dispatchService; + + @Autowired + OperationOrderSiteDispatchServiceImpl siteDispatchService; + + //工单反馈 过程反馈+服务完成 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean feedbackSealingSheet(OperationOrderFeedbackVO feedback) { + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + OperationOrderEntity or = orderService.getById(feedback.getOrderId()); + if (StringUtil.isNotBlank(feedback.getApplianceBrand())) { + or.setApplianceBrand(feedback.getApplianceBrand()); + } + if (StringUtil.isNotBlank(feedback.getApplianceBarcode())) { + or.setApplianceBarcode(feedback.getApplianceBarcode()); + } + if (StringUtil.isNotBlank(feedback.getWarrantyType())) { + or.setWarrantyType(feedback.getWarrantyType()); + } + if (StringUtil.isNotBlank(feedback.getServiceType())) { + or.setServiceType(feedback.getServiceType()); + } + /*if (feedback.getPutIntoTime() != null) { + or.setPutIntoTime(feedback.getPutIntoTime()); + }*/ + if (StringUtil.isNotBlank(feedback.getServiceMeasures())) { + or.setServiceMeasures(feedback.getServiceMeasures()); + } + String strr=StringUtil.isBlank(feedback.getFeedback())?"":",反馈内容:"+feedback.getFeedback(); + if ("1".equals(feedback.getFeedbackType())) { //0 过程反馈 1服务完成反馈 + if (StringUtil.isBlank(feedback.getApplianceBrand()) || StringUtil.isBlank(feedback.getApplianceBarcode()) || StringUtil.isBlank(feedback.getWarrantyType()) || StringUtil.isBlank(feedback.getServiceMeasures())) { + throw new ServiceException("必传项不能为空!"); + } + //判断是否有审核中的物料申请 + long count=orderService.getBaseMapper().coutNoFinishFittingApply(or.getNumber()); + if(count>0){ + throw new ServiceException("该工单有未完成的物料申请,不能完工!"); + } + if(StringUtil.isBlank(or.getServiceType())){ + throw new ServiceException("服务类型为空,请先维护服务类型"); + } + if (!OrderConstants.SITE_STATUS_RECEIVE.equals(or.getSiteStatus()) && !OrderConstants.SITE_STATUS_DOOR.equals(or.getSiteStatus()) && !OrderConstants.SITE_STATUS_SERVICE.equals(or.getSiteStatus())) { + throw new ServiceException("不满足反馈封单条件"); + } + or.setLatestProcessTime(new Date()); + or.setLatestProcess(user.getNickName() + "反馈封单,反馈内容:" + feedback.getFeedback()); + if (or.getDropInTime() == null) { + or.setDropInTime(time); + } + or.setEndTime(time); + or.setStatus(OrderConstants.ORDER_STATUS_SETTLE); + or.setSiteStatus(OrderConstants.SITE_STATUS_FINISH); + orderService.updateById(or); + + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + + ta.setC(user.getNickName() + "服务完工" + strr); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(feedback.getOrderId()); + ta.setT(Target.MESS_CALLBACK_TWICE); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + infoService.updateById(info); + + OperationOrderDispatchEntity dis = dispatchService.findOrderDisByOrderId(feedback.getOrderId()); + if(dis!= null){ + dis.setStatus(OrderConstants.DISPATCH_STATUS_FINISH); + dis.setUpdateBy(user.getUserId().toString()); + dis.setUpdateTime(time); + dis.setEndTime(time); + if (dis.getDropInTime() == null) { + dis.setDropInTime(time); + } + dispatchService.updateById(dis); + } + } else { + + if(StringUtil.isBlank(feedback.getFeedback()) || StringUtil.isBlank(feedback.getFeedbackImg())){ + throw new ServiceException("反馈信息不能为空!"); + } + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "过程反馈" + strr); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(feedback.getOrderId()); + ta.setT(Target.MESS_CALLBACK_TWICE); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + infoService.updateById(info); + + or.setLatestProcessTime(time); + or.setLatestProcess(user.getNickName() + "过程反馈" + strr); + orderService.updateById(or); + } + + feedback.setFeedbackId(user.getUserId().toString()); + feedback.setFeedbackName(user.getNickName()); + feedback.setSiteId(or.getSiteId()); + feedback.setFeedbackTime(time); + return save(feedback); + } + + //工单的反馈信息 + @Override + public List listFeedback(String orderId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OperationOrderFeedbackEntity::getOrderId, orderId); + queryWrapper.orderByDesc(OperationOrderFeedbackEntity::getFeedbackTime); + List list = list(queryWrapper); + return list; + } + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderLetterService.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderLetterService.java new file mode 100644 index 0000000..ad2f583 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderLetterService.java @@ -0,0 +1,138 @@ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.Query; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.time.DateUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.mapper.OperationOrderLetterMapper; +import org.springblade.modules.order.pojo.dto.OrderLetterDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderLetterEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Service +public class OperationOrderLetterService extends ServiceImpl { + + Logger logger= LoggerFactory.getLogger(getClass()); + + @Autowired + private OperationOrderServiceImpl orderService; + + + /** + * 上传/修改 公函 + * 开发说明:仅可对最新一条记录进行编辑和删除;历史公函记录,仅可修改扣款金额;公函重新上传后,清空再次预警时间和扣款金额,需再次填写;删除提示:是否确认删除公函信息? + */ + @Transactional(rollbackFor = Exception.class) + public boolean saveLetter(OrderLetterDTO letterDTO){ + logger.info("saveLetter id:{}",letterDTO.getId()); + OperationOrderLetterEntity letterEntity; + BladeUser user = AuthUtil.getUser(); + OperationOrderEntity order = orderService.getById(letterDTO.getOrderId()); + if(order==null){ + throw new ServiceException("未找到工单信息!"); + } + if(StringUtil.isBlank(letterDTO.getId())){ + letterEntity=new OperationOrderLetterEntity(); + letterEntity.setOrderId(letterDTO.getOrderId()); + letterEntity.setCreateTime(new Date()); + letterEntity.setCreateName(user.getNickName()); + letterEntity.setStatus(OrderConstants.STATUS_USE); + letterEntity.setWarningDay(letterDTO.getWarningDay()); + letterEntity.setDeductionAmount(letterDTO.getDeductionAmount()); + letterEntity.setLetterPath(letterDTO.getLetterPath()); + letterEntity.setLetterFileName(letterDTO.getLetterFileName()); + + int count=order.getExtensionCount()==null?1:order.getExtensionCount()+1; + BigDecimal deductionAmount=order.getDeductionTotalAmount()==null?BigDecimal.ZERO:order.getDeductionTotalAmount(); + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(OperationOrderEntity::getId,letterDTO.getOrderId()); + updateWrapper.set(OperationOrderEntity::getExtensionCount,count); + updateWrapper.set(OperationOrderEntity::getWarningStartDay,letterDTO.getWarningDay()); + updateWrapper.set(OperationOrderEntity::getDeductionTotalAmount,deductionAmount.add(letterEntity.getDeductionAmount())); + orderService.update(updateWrapper); + }else{ + letterEntity=getById(letterDTO.getId()); + + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(OperationOrderEntity::getId,letterDTO.getOrderId()); + updateWrapper.set(OperationOrderEntity::getDeductionTotalAmount,order.getDeductionTotalAmount().subtract(letterEntity.getDeductionAmount()).add(letterDTO.getDeductionAmount())); + //判断是否是最新一次的记录 + String latestId= baseMapper.ifLatestRecord(letterDTO.getOrderId()); + if(letterDTO.getId().equals(latestId)){ + letterEntity.setWarningDay(letterDTO.getWarningDay()); + letterEntity.setLetterPath(letterDTO.getLetterPath()); + letterEntity.setLetterFileName(letterDTO.getLetterFileName()); + if(order.getWarningStartDay().compareTo(letterDTO.getWarningDay())!=0){ + updateWrapper.set(OperationOrderEntity::getWarningStartDay,letterDTO.getWarningDay()); + + } + } + orderService.update(updateWrapper); + + letterEntity.setDeductionAmount(letterDTO.getDeductionAmount()); + letterEntity.setUpdateTime(new Date()); + letterEntity.setUpdateName(user.getNickName()); + } + return saveOrUpdate(letterEntity); + } + + /** + * 删除公函 + */ + @Transactional(rollbackFor = Exception.class) + public boolean deleteLetter(String id){ + logger.info(">>deleteLetter id:{}",id); + OperationOrderLetterEntity letterEntity= getById(id); + //判断是否是最新一次的记录 + String latestId= baseMapper.ifLatestRecord(letterEntity.getOrderId()); + if(!id.equals(latestId)){ + throw new ServiceException("非最后一次记录,不能删除!"); + } + OperationOrderEntity order = orderService.getById(letterEntity.getOrderId()); + Date warningTime; + //获取上一次的公函记录,修改预警时间 + OperationOrderLetterEntity latestLetter= baseMapper.getLatestLetter(id); + if(latestLetter==null){ + warningTime= DateUtils.addDays(order.getDispatchTime(),3); + }else{ + warningTime=letterEntity.getWarningDay(); + } + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.eq(OperationOrderEntity::getId,letterEntity.getOrderId()); + updateWrapper.set(OperationOrderEntity::getWarningStartDay,warningTime); + updateWrapper.set(OperationOrderEntity::getExtensionCount,order.getExtensionCount()-1); + updateWrapper.set(OperationOrderEntity::getDeductionTotalAmount,order.getDeductionTotalAmount().subtract(letterEntity.getDeductionAmount())); + orderService.update(updateWrapper); + + letterEntity.setStatus(OrderConstants.STATUS_DELETE); + letterEntity.setUpdateTime(new Date()); + BladeUser user = AuthUtil.getUser(); + letterEntity.setUpdateName(user.getNickName()); + return updateById(letterEntity); + } + + public List getOrderLetterList(String orderId){ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(OperationOrderLetterEntity::getOrderId,orderId); + queryWrapper.eq(OperationOrderLetterEntity::getStatus,OrderConstants.STATUS_USE); + queryWrapper.orderByAsc(OperationOrderLetterEntity::getCreateTime); + return list(queryWrapper); + } + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderOperationInfoServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderOperationInfoServiceImpl.java new file mode 100644 index 0000000..3368fc4 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderOperationInfoServiceImpl.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderOperationInfoVO; +import org.springblade.modules.order.mapper.OperationOrderOperationInfoMapper; +import org.springblade.modules.order.service.IOperationOrderOperationInfoService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * 工单操作/跟踪明细记录表 服务实现类 + * + * @author lzp + * @since 2024-06-20 + */ +@Service +public class OperationOrderOperationInfoServiceImpl extends ServiceImpl implements IOperationOrderOperationInfoService { + + @Override + public IPage selectOperationOrderOperationInfoPage(IPage page, OperationOrderOperationInfoVO operationOrderOperationInfo) { + return page.setRecords(baseMapper.selectOperationOrderOperationInfoPage(page, operationOrderOperationInfo)); + } + + @Override + public OperationOrderOperationInfoEntity findInfoByOrderId(String orderId) { + + return baseMapper.findInfoByOrderId(orderId,""); + } + + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.java new file mode 100644 index 0000000..d1b393b --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.java @@ -0,0 +1,704 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.time.DateUtils; +import org.apache.commons.lang3.StringUtils; +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.mapper.AlarmInfoMapper; +import org.springblade.modules.nh.pojo.entity.PowerStationEntity; +import org.springblade.modules.nh.service.impl.PowerStationServiceImpl; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationServiceMeasuresEntity; +import org.springblade.modules.operation.pojo.entity.OperationServiceTypeEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteEmployeeEntity; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationServiceMeasuresServiceImpl; +import org.springblade.modules.operation.service.impl.OperationServiceTypeServiceImpl; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.mapper.OperationOrderLetterMapper; +import org.springblade.modules.order.mapper.OperationOrderSettleMapper; +import org.springblade.modules.order.pojo.dto.OperationOrderSettleDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.*; +import org.springblade.modules.order.excel.OperationOrderExcel; +import org.springblade.modules.order.mapper.OperationOrderMapper; +import org.springblade.modules.order.service.IOperationOrderService; +import org.springblade.modules.order.utils.PlantformUtils; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springblade.modules.order.wrapper.OperationOrderWrapper; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.service.IRegionService; +import org.springblade.modules.system.service.impl.UserServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 工单基础信息表 服务实现类 + * + * @author lzp + * @since 2024-06-18 + */ +@Service +public class OperationOrderServiceImpl extends ServiceImpl implements IOperationOrderService { + @Autowired + UserServiceImpl userService; + @Autowired + OperationSiteServiceImpl siteService; + @Autowired + OperationSiteEmployeeMapper employeeMapper; + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + + @Autowired + PowerStationServiceImpl powerStationService; + + @Autowired + IRegionService regionService; + + @Autowired + OperationServiceTypeServiceImpl serviceTypeService; + @Autowired + OperationServiceMeasuresServiceImpl serviceMeasuresService; + + @Autowired + private OperationOrderSettleMapper orderSettleMapper; + + @Autowired + private AlarmInfoMapper alarmInfoMapper; + + @Autowired + private OperationOrderLetterMapper orderLetterMapper; + + @Override + public OperationOrderVO findOrderDetail(String orderId) { + OperationOrderEntity order = baseMapper.getOrderDetail(orderId); + OperationOrderVO vo = OperationOrderWrapper.build().entityVO(order); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(orderId); + if (info != null) { + List list = WebPageFunUtils.getOrderProcess(info.getProcessDetail()); + vo.setGuochengList(list); + } + OperationOrderFeedbackEntity feedbackEntity=baseMapper.getLatestByOrderId(orderId); + if(feedbackEntity==null){ + feedbackEntity=new OperationOrderFeedbackEntity(); + } + vo.setFeedbackEntity(feedbackEntity); + List feedImgs = baseMapper.findOrderFeedImgs(orderId); + vo.setFeedImgs(feedImgs); + //费用结算信息 + OperationOrderSettleDTO orderSettleDTO=orderSettleMapper.getByOrderId(orderId); + if(orderSettleDTO==null){ + orderSettleDTO=new OperationOrderSettleDTO(); + //如果有上传公函,获取公函里面的扣款金额 + BigDecimal totalDedutionAumount=orderLetterMapper.getTotalDeductionAmount(order.getId()); + orderSettleDTO.setDeductionAmount(totalDedutionAumount); + } + vo.setOrderSettleDTO(orderSettleDTO); + //获取告警名称 + if(order.getAlarmId()!=null){ + String alarmName=alarmInfoMapper.getAlarmName(order.getAlarmId()); + vo.setAlarmName(alarmName); + } + return vo; + } + + @Override + public IPage selectOperationOrderPage(IPage page, OrderListConditionVo conditionVo) { + BladeUser user = AuthUtil.getUser(); + // User dquser = userService.getById(user.getUserId()); + //3.服务商 4.平台员工 5.服务商人员 + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + conditionVo.setSiteId(site.getId()); + } else if ("5".equals(user.getDeptId())|| "6".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo!=null){ + conditionVo.setSiteId(authVo.getSiteId()); + conditionVo.setProvinces(authVo.getProvinces()); + conditionVo.setCity(authVo.getCity()); + conditionVo.setArea(authVo.getArea()); + if(authVo.getRole()==1){ + conditionVo.setEmployeId(authVo.getId()); + } + } + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=baseMapper.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + conditionVo.setSiteIds(authVoP.getSiteId()); + + conditionVo.setProvinces(authVoP.getProvinces()); + conditionVo.setCity(authVoP.getCity()); + conditionVo.setArea(authVoP.getArea()); + conditionVo.setEntryIds(authVoP.getEntryId()); + //conditionVo.setCapitalName(authVoP.getPartnerName()); + if(StringUtil.isBlank(conditionVo.getCapitalName())){ + conditionVo.setCapitalName(authVoP.getPartnerName()); + } + } + + } + List list = baseMapper.selectOperationOrderPage(page, conditionVo); + for(OperationOrderVO order : list ){ + if(order.getProcessTime()!= null && order.getEndTime() != null){ + String hour= PlantformUtils.pastHour(order.getEndTime(),order.getProcessTime()); + order.setDisEndTime(hour); + }else if(order.getProcessTime()!= null && !OrderConstants.ORDER_STATUS_INVALID.equals(order.getStatus())){ + String hour= PlantformUtils.pastHour(new Date(),order.getProcessTime()); + order.setDisEndTime(hour); + } + order.setCustomerAddress(order.getCustomerAddress().replace(order.getProvince(),"").replace(order.getCity(),"")); + } + return page.setRecords(list); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R saveOrder(OperationOrderEntity order) { + BladeUser user = AuthUtil.getUser(); + + Date time = new Date(); + if("3".equals(user.getDeptId())){ //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + order.setSiteId(site.getId()); + order.setSiteName(site.getName()); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.SITE_STATUS_DIS); + order.setDispatchTime(time); + }else if("5".equals(user.getDeptId())){ //服务商员工 + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + OperationSiteEntity site = siteService.getById(emp.getSiteId()); + order.setSiteId(emp.getSiteId()); + order.setSiteName(site.getName()); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.SITE_STATUS_DIS); + order.setDispatchTime(time); + } + /*if(StringUtil.isBlank(order.getServiceType())){ + throw new ServiceException("服务类型为空,请先维护服务类型"); + }*/ + String number = PlantformUtils.getOrderNumber(); + order.setCreateBy(user.getUserId().toString()); + order.setCreateName(user.getNickName()); + order.setCreateTime(time); + order.setNumber(number); + order.setOrderType("1"); + order.setLatestProcess(user.getNickName() + "报修"); + order.setLatestProcessTime(time); + order.setSiteCost(BigDecimal.ZERO); + order.setServiceCost(BigDecimal.ZERO); + order.setFittingCost(BigDecimal.ZERO); + order.setMileage(BigDecimal.ZERO); + order.setMileCost(BigDecimal.ZERO); + order.setAccountsReceivable(BigDecimal.ZERO); + order.setTotalCollections(BigDecimal.ZERO); + if (StringUtil.isNotBlank(order.getPowerStationCode())) { + //获取电站信息 + PowerStationEntity entity = powerStationService.getStationDetailByPowCode(order.getPowerStationCode()); + if (entity == null) { + R.fail(201,"当前电站编码不存在"); + } + Long count = findRetunCountByOrderId(entity.getInnerStationId()); + if(count>0){ + throw new ServiceException("该电站已经转运维,不可重复操作"); + } + order.setCapitalCode(entity.getCapitalCode()); + order.setCapitalName(entity.getCapitalName()); + order.setEntryId(entity.getInnerStationId()); + order.setAgentId(entity.getAgentId()); + order.setAgentName(entity.getAgentName()); + order.setPaymentTime(entity.getPaymentTime()); + order.setWarrantyExpiresTime(entity.getWarrantyExpiresTime()); + if(entity.getStartGenDate()!= null){ + String shtime = getFirstDayofNextMonth(entity.getStartGenDate(),"yyyy-MM-dd"); + order.setApplianceBuyTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + order.setPutIntoTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + } + //order.setApplianceBuyTime(DateUtil.plusMonths(entity.getStartGenDate(),1)); + } + + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "接入"); + ta.setT(Target.NEW_ORDER); + if (!save(order)) { + return R.fail(201,"保存失败,请刷新在试"); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, ""); + OperationOrderOperationInfoEntity info = new OperationOrderOperationInfoEntity(); + info.setOrderId(order.getId()); + info.setProcessDetail(str); + if(StringUtil.isNotBlank(order.getSiteId())){ + info.setSiteId(order.getSiteId()); + } + if(!infoService.save(info)){ + return R.fail(201,"保存失败,请刷新在试"); + } + return R.status(true); + } + + //修改工单 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateOrder(OperationOrderEntity operationOrder){ + BladeUser user = AuthUtil.getUser(); + Date time=new Date(); + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "修改工单"); + operationOrder.setLatestProcess(user.getNickName()+"修改工单"); + operationOrder.setLatestProcessTime(time); + if (!updateById(operationOrder)) { + return false; + } + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(operationOrder.getId()); + ta.setT(2); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + return infoService.updateById(info); + } + + + @Override + public boolean turnMainOrder(String id) { + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + PowerStationEntity customerEntry = powerStationService.getById(id); + if(StringUtil.isBlank(customerEntry.getOmProviderId())){ + throw new ServiceException("该电站未绑定运维商,不可转运维"); + } + + Long count = findRetunCountByOrderId(customerEntry.getInnerStationId()); + if(count>0){ + throw new ServiceException("该电站已经转运维,不可重复操作"); + } + BigDecimal bd = BigDecimal.ZERO; + String number = PlantformUtils.getOrderNumber(); + OperationOrderEntity order = new OperationOrderEntity(); + order.setNumber(number); + order.setOrderType("2");//监控转运维 + order.setCreateTime(time); + order.setRepairTime(time); + order.setCreateBy(user.getUserId().toString()); + + order.setCustomerName(customerEntry.getOwnerName()); + order.setPowerStationCode(customerEntry.getStationCode()); + order.setCapitalName(customerEntry.getCapitalName()); + order.setCapitalCode(customerEntry.getCapitalCode()); + Region region = new Region(); + region.setProvinceName(customerEntry.getProvince()); + region.setRegionLevel(1); + Region detail = regionService.getOne(Condition.getQueryWrapper(region)); + if(detail!= null){ + order.setProvinceCode(detail.getProvinceCode()); + } + order.setProvince(customerEntry.getProvince()); + region.setCityName(customerEntry.getCity()); + region.setRegionLevel(2); + Region citys = regionService.getOne(Condition.getQueryWrapper(region)); + if(citys!= null){ + order.setCityCode(citys.getCityCode()); + } + order.setCity(customerEntry.getCity()); + region.setDistrictName(customerEntry.getDistrict()); + region.setRegionLevel(3); + Region distr = regionService.getOne(Condition.getQueryWrapper(region)); + if(distr!= null){ + order.setAreaCode(distr.getDistrictCode()); + } + order.setArea(customerEntry.getDistrict()); + + order.setCustomerAddress(customerEntry.getAddress()); + + order.setCustomerMobile(customerEntry.getOwnerPhone()); + order.setPowerStationName(customerEntry.getStationCode()); + order.setEntryId(customerEntry.getInnerStationId()); + order.setApplianceBrand(DictCache.getValue(DictEnum.DEVICE_BRAND, customerEntry.getBrand())); + if(customerEntry.getStartGenDate()!= null){ + String shtime = getFirstDayofNextMonth(customerEntry.getStartGenDate(),"yyyy-MM-dd"); + order.setApplianceBuyTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + order.setPutIntoTime(DateUtil.parse(shtime,"yyyy-MM-dd")); + } + order.setApplianceBarcode(customerEntry.getSn()); + if(StringUtils.isNotBlank(customerEntry.getOmProviderId())){ + order.setSiteId(customerEntry.getOmProviderId()); + order.setSiteName(customerEntry.getOmProviderName()); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.SITE_STATUS_GET); + order.setDispatchTime(time); + if(order.getWarningStartDay()==null){ + order.setWarningStartDay(DateUtils.addDays(time,3)); + } + } + order.setAgentId(customerEntry.getAgentId()); + order.setAgentName(customerEntry.getAgentName()); + //order.setRemarks(alarm.getMalfunctionCode()+","+alarm.getAlarmName());//故障码+告警名称(故障信息) + order.setComplaintCount(0); + order.setSiteCost(bd); + order.setAccountsReceivable(bd); + order.setTotalCollections(bd); + order.setMileage(bd); + order.setMileCost(bd); + order.setServiceCost(bd); + order.setFittingCost(bd); + order.setSpecialInstallation("1"); + order.setPaymentTime(customerEntry.getPaymentTime()); + order.setWarrantyExpiresTime(customerEntry.getWarrantyExpiresTime()); + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "转运维接入"); + ta.setT(Target.NEW_ORDER); + if (!save(order)) { + throw new ServiceException("该电站转运维失败"); + } + customerEntry.setOrderNumber(order.getNumber()); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, ""); + OperationOrderOperationInfoEntity info = new OperationOrderOperationInfoEntity(); + info.setOrderId(order.getId()); + info.setProcessDetail(str); + if(StringUtil.isNotBlank(order.getSiteId())){ + info.setSiteId(order.getSiteId()); + } + powerStationService.updateById(customerEntry); + return infoService.save(info); + } + + public static String getFirstDayofNextMonth(Date date , String format){ + SimpleDateFormat sdf = new SimpleDateFormat(format); + try { + Calendar calendar = Calendar.getInstance(); + calendar.setTime (date); + calendar.set(Calendar.DAY_OF_MONTH,1); + calendar.add(Calendar.MONTH, 1); + return sdf.format(calendar.getTime()); + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + + @Override + public boolean toExamineOrder(ExamineOrderVo exc ) { + String callbackResult = exc.getCallbackResult(); + String memoNote = exc.getMemoNote(); + OperationOrderEntity order = getById(exc.getId()); + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + String cName = "审核"; + if (!OrderConstants.ORDER_STATUS_SETTLE.equals(order.getStatus())) { + throw new ServiceException("工单状态发生改变,不满足审核条件"); + } + //工单服务商操作状态:0尚未指派给服务商 1待服务商接单 2服务商已拒单 3待服务商派工 4待工程师接单 5待上门 6服务中 7已完工 8派工取消 9无效工单 + //工单平台操作状态:1.待派工 2.服务中 3.待回访 4.待结算 5.已完成 6.无效工单 7.取消工单,默认1 + if(OrderConstants.CASLLBACK_RESULT_TWO.equals(callbackResult)){ + //任需上门 + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteStatus(OrderConstants.SITE_STATUS_SERVICE); + order.setEndTime(null); + cName = cName+",驳回;"; + }else{ + //已完成 + //判断是否有审核中的物料申请 + long count=baseMapper.coutNoFinishFittingApply(order.getNumber()); + if(count>0){ + throw new ServiceException("该工单有未完成的物料申请,不能完工!"); + } + order.setStatus(OrderConstants.ORDER_STATUS_FINISH); + cName = cName+",通过;"; + order.setSettleTime(new Date()); + //查询电站 + PowerStationEntity station = powerStationService.getStationDetailByPowCode(order.getPowerStationCode()); + if(station != null){ + station.setOrderNumber(""); + powerStationService.updateById(station); + } + + //去除电站的工单编号 + } + cName = cName+memoNote; + order.setCallbackResult(callbackResult); + order.setMemoNote(memoNote); + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + cName); + //判断是否需要结算--根据电站运维商和代理商是否为同一个,工单是否在质保期内;两者有一个不满足,则工单判断为需要结算; + if(!order.getSiteName().equals(order.getAgentName()) || (order.getWarrantyExpiresTime()!=null && (order.getWarrantyExpiresTime().compareTo(new Date()))<0)){ + order.setIfSettle("1"); + }else{ + order.setIfSettle("0"); + } +//return t); + if (!this.update(order, Wrappers.update().lambda().eq(OperationOrderEntity::getId, order.getId()))) { + return false; + } + ta.setC(user.getNickName() + "操作" + cName); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + ta.setT(2); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + return infoService.updateById(info); + } + + @Override + public List exportOperationOrder(Map operationOrder) { + BladeUser user = AuthUtil.getUser(); + //User dquser = userService.getById(user.getUserId()); + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + operationOrder.put("siteId", site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + operationOrder.put("siteId", authVo.getSiteId()); + operationOrder.put("provinces",authVo.getProvinces()); + operationOrder.put("city",authVo.getCity()); + operationOrder.put("area",authVo.getArea()); + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=baseMapper.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + operationOrder.put("siteIds", authVoP.getSiteId()); + operationOrder.put("provinces",authVoP.getProvinces()); + operationOrder.put("city",authVoP.getCity()); + operationOrder.put("area",authVoP.getArea()); + operationOrder.put("entryIds",authVoP.getEntryId()); + operationOrder.put("capitalName",authVoP.getPartnerName()); + } + } + // + List listType = serviceTypeService.list(new QueryWrapper().lambda().eq(OperationServiceTypeEntity::getStatus,"0")); + Map maps =listType.stream().collect(Collectors.toMap(OperationServiceTypeEntity::getId, OperationServiceTypeEntity::getName)); + List listMea = serviceMeasuresService.list(new QueryWrapper().lambda().eq(OperationServiceMeasuresEntity::getIsDeleted,"0")); + Map mapsmea =listMea.stream().collect(Collectors.toMap(OperationServiceMeasuresEntity::getId, OperationServiceMeasuresEntity::getServiceMeasures)); + List operationOrderList = baseMapper.exportOperationOrder(operationOrder); + for(OperationOrderExcel order : operationOrderList ){ + if(order.getProcessTime()!= null && order.getEndTime() != null){ + String hour= PlantformUtils.pastHour(order.getEndTime(),order.getProcessTime()); + order.setDisEndTime(hour); + }else if(order.getProcessTime()!= null&& !OrderConstants.ORDER_STATUS_INVALID.equals(order.getStatus())){ + String hour= PlantformUtils.pastHour(new Date(),order.getProcessTime()); + order.setDisEndTime(hour); + } + order.setStatus(DictCache.getValue(DictEnum.ORDER_STATUS, order.getStatus())); + order.setOrderType(DictCache.getValue(DictEnum.ORDER_TYPE, order.getOrderType())); + if(StringUtil.isNotBlank(order.getServiceType())){ + order.setServiceType(maps.get(Long.valueOf(order.getServiceType()))); + } + if(StringUtil.isNotBlank(order.getServiceMeasures())){ + order.setServiceMeasures(mapsmea.get(Long.valueOf(order.getServiceMeasures()))); + } + if(StringUtil.isNotBlank(order.getIfOverDue())){ + if("1".equals(order.getIfOverDue())){ + order.setIfOverDue("是"); + }else{ + order.setIfOverDue("否"); + } + } + if(StringUtil.isNotBlank(order.getIfSettle())){ + if("1".equals(order.getIfSettle())){ + order.setIfSettle("是"); + }else{ + order.setIfSettle("否"); + } + } + //order.setServiceMeasures(DictCache.getValue(DictEnum.ORDER_TYPE, order.getServiceMeasures())); + } + return operationOrderList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteLogic(String id, String status, String disableResource) { + BladeUser user = AuthUtil.getUser(); + Date time = new Date(); + String cName = "无效"; + OperationOrderEntity order = getById(id); + if (OrderConstants.ORDER_STATUS_FINISH.equals(order.getStatus())) { + throw new ServiceException("已完成的工单不可操作"); + } + if (OrderConstants.ORDER_STATUS_INVALID.equals(status)) { //无效工单 + if (StringUtil.isBlank(disableResource)) { + throw new ServiceException("请输入无效原因!"); + } + order.setSiteStatus(OrderConstants.SITE_STATUS_INVALID); //无效工单 + //修改派工单表的状态 + baseMapper.changeDispatchOrderStatus(order.getId(), user.getNickName(), time); + baseMapper.changeSiteDispatchOrderStatus(order.getId(), user.getNickName(), time); + } + if ("7".equals(status)) { + if (!OrderConstants.ORDER_STATUS_INVALID.equals(order.getStatus())) { + throw new ServiceException("只有无效工单才可操作删除"); + } + cName = "删除"; + } + //查询电站 + PowerStationEntity station = powerStationService.getStationDetailByPowCode(order.getPowerStationCode()); + if(station != null){ + station.setOrderNumber(""); + powerStationService.updateById(station); + } + + order.setStatus(status); + order.setDisableResource(disableResource); + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(time)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + cName); + + if (!updateById(order)) { + return false; + } + ta.setC(user.getNickName() + "操作" + cName); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + ta.setT(2); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + return infoService.updateById(info); + } + + @Override + public OrderHomeVo orderHomeIndex() { + BladeUser user = AuthUtil.getUser(); + if (!"6".equals(user.getDeptId())) { + return new OrderHomeVo(); + } + OperationSiteEmployeeEntity emp = employeeMapper.findByuserId(user.getUserId()); + + return baseMapper.orderHomeIndex(emp.getSiteId(), emp.getId().toString()); + } + + public IPage findOrderList(IPage page){ + List list = baseMapper.findOrderList(page); + return page.setRecords(list); + } + + public Long findRetunCountByOrderId(String entryId){ + return baseMapper.findRetunCountByOrderId(entryId); + } + + + @Override + public OrderStaticVo homeOrderStatic() { + OrderListConditionVo conditionVo=new OrderListConditionVo(); + BladeUser user = AuthUtil.getUser(); + // User dquser = userService.getById(user.getUserId()); + //3.服务商 4.平台员工 5.服务商人员 + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + conditionVo.setSiteId(site.getId()); + } else if ("5".equals(user.getDeptId())|| "6".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo!=null){ + conditionVo.setSiteId(authVo.getSiteId()); + conditionVo.setProvinces(authVo.getProvinces()); + conditionVo.setCity(authVo.getCity()); + conditionVo.setArea(authVo.getArea()); + if(authVo.getRole()==1){ + conditionVo.setEmployeId(authVo.getId()); + } + } + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=baseMapper.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + conditionVo.setSiteIds(authVoP.getSiteId()); + conditionVo.setProvinces(authVoP.getProvinces()); + conditionVo.setCity(authVoP.getCity()); + conditionVo.setArea(authVoP.getArea()); + conditionVo.setEntryIds(authVoP.getEntryId()); + conditionVo.setCapitalName(authVoP.getPartnerName()); + } + } + return baseMapper.homeOrderStatic(conditionVo); + } + + @Override + public OrderHomeVo pcOrderHomeIndex(){ + OrderListConditionVo conditionVo=new OrderListConditionVo(); + BladeUser user = AuthUtil.getUser(); + // User dquser = userService.getById(user.getUserId()); + //3.服务商 4.平台员工 5.服务商人员 + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + conditionVo.setSiteId(site.getId()); + } else if ("5".equals(user.getDeptId())|| "6".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo!=null){ + conditionVo.setSiteId(authVo.getSiteId()); + conditionVo.setProvinces(authVo.getProvinces()); + conditionVo.setCity(authVo.getCity()); + conditionVo.setArea(authVo.getArea()); + if(authVo.getRole()==1){ + conditionVo.setEmployeId(authVo.getId()); + } + } + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=baseMapper.findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + conditionVo.setSiteIds(authVoP.getSiteId()); + conditionVo.setProvinces(authVoP.getProvinces()); + conditionVo.setCity(authVoP.getCity()); + conditionVo.setArea(authVoP.getArea()); + conditionVo.setEntryIds(authVoP.getEntryId()); + conditionVo.setCapitalName(authVoP.getPartnerName()); + } + } + return baseMapper.pcOrderHomeIndex(conditionVo); + } + + @Override + public List findOrderListBySiteId(String station_code) { + List list = this.list(new QueryWrapper().lambda().eq(OperationOrderEntity::getPowerStationCode,station_code).notIn(OperationOrderEntity::getStatus,"5","6","7")); + return list; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderSettleServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderSettleServiceImpl.java new file mode 100644 index 0000000..b999182 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderSettleServiceImpl.java @@ -0,0 +1,208 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.nh.service.impl.AlarmInfoServiceImpl; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.entity.OperationSiteEntity; +import org.springblade.modules.operation.pojo.vo.EmpAuthVo; +import org.springblade.modules.operation.service.impl.OperationSiteServiceImpl; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.mapper.OperationOrderLetterMapper; +import org.springblade.modules.order.pojo.dto.OperationOrderSettleDTO; +import org.springblade.modules.order.pojo.dto.OrderLetterDTO; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderSettleEntity; +import org.springblade.modules.order.pojo.form.OperationOrderConditionForm; +import org.springblade.modules.order.pojo.vo.OperationOrderSettleVO; +import org.springblade.modules.order.excel.OperationOrderSettleExcel; +import org.springblade.modules.order.mapper.OperationOrderSettleMapper; +import org.springblade.modules.order.service.IOperationOrderSettleService; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 工单结算表 服务实现类 + * + * @author BladeX + * @since 2024-06-26 + */ +@Service +public class OperationOrderSettleServiceImpl extends ServiceImpl implements IOperationOrderSettleService { + + @Autowired + OperationOrderServiceImpl orderService; + + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + + @Autowired + OperationSiteServiceImpl siteService; + @Autowired + OperationSiteEmployeeMapper employeeMapper; + @Autowired + AlarmInfoServiceImpl alarmInfoService; + + @Autowired + private OperationOrderLetterMapper orderLetterMapper; + + + @Override + public IPage selectOperationOrderSettlePage(IPage page, OperationOrderConditionForm conditionVo) { + BladeUser user = AuthUtil.getUser(); + //3.服务商 4.平台员工 5.服务商人员 + if ("3".equals(user.getDeptId())) { //服务商 + OperationSiteEntity site = siteService.findSiteByUserId(user.getUserId()); + conditionVo.setSiteId(site.getId()); + } else if ("5".equals(user.getDeptId())) { //服务商人员 + EmpAuthVo authVo=employeeMapper.findEmpAuthByUserId(user.getUserId()); + if(authVo!=null){ + conditionVo.setSiteId(authVo.getSiteId()); + conditionVo.setProvinces(authVo.getProvinces()); + conditionVo.setCity(authVo.getCity()); + conditionVo.setArea(authVo.getArea()); + } + }else if("4".equals(user.getDeptId())){ //平台员工 + EmpAuthVo authVoP=orderService.getBaseMapper().findPlatEmpAuthByUserId(user.getUserId()); + if(authVoP!= null){ + conditionVo.setSiteIds(authVoP.getSiteId()); + conditionVo.setProvinces(authVoP.getProvinces()); + conditionVo.setCity(authVoP.getCity()); + conditionVo.setArea(authVoP.getArea()); + conditionVo.setEntryIds(authVoP.getEntryId()); + } + } + return page.setRecords(baseMapper.selectOperationOrderSettlePage(page, conditionVo)); + } + + + @Override + public List exportOperationOrderSettle(Wrapper queryWrapper) { + List operationOrderSettleList = baseMapper.exportOperationOrderSettle(queryWrapper); + //operationOrderSettleList.forEach(operationOrderSettle -> { + // operationOrderSettle.setTypeName(DictCache.getValue(DictEnum.YES_NO, OperationOrderSettle.getType())); + //}); + return operationOrderSettleList; + } + + //结算 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean saveOrderSettle(OperationOrderSettleDTO orderSettleDTO) { + BladeUser user = AuthUtil.getUser(); + OperationOrderEntity orderEntity=orderService.getById(orderSettleDTO.getOrderId()); + Date date=new Date(); + OperationOrderSettleEntity settleEntity; + String processStr=""; + if(StringUtil.isBlank(orderSettleDTO.getSettleId())){ + /*orderEntity.setLatestProcess(user.getNickName()+"操作结算"); + orderEntity.setLatestProcessTime(date); + orderEntity.setUpdateName(user.getNickName()); + orderService.updateById(orderEntity);*/ + settleEntity=new OperationOrderSettleEntity(); + settleEntity.setOrderId(orderEntity.getId()); + settleEntity.setSettleBy(String.valueOf(user.getUserId())); + settleEntity.setSettleByName(user.getNickName()); + settleEntity.setSettleTime(date); + settleEntity.setSiteId(orderEntity.getSiteId()); + processStr="操作结算"; + }else{ + settleEntity=getById(orderSettleDTO.getSettleId()); + processStr="修改结算"; + } + settleEntity.setSettleAmount(orderSettleDTO.getSettleAmount()); + settleEntity.setDeductionAmount(orderSettleDTO.getDeductionAmount()); + //扣款总额:每次上传公函时,填写的扣款费用总额,当电站上传过公函,则扣款总额获取公函中的扣款总额信息,不可修改;当电站没有上传过公函,则可手动填写扣款金额; + //获取公函中的扣款总额 + BigDecimal totalDedutionAumount=orderLetterMapper.getTotalDeductionAmount(orderEntity.getId()); + if(totalDedutionAumount!=null){ + if(totalDedutionAumount.compareTo(orderSettleDTO.getDeductionAmount())!=0){ + throw new ServiceException("电站上传过公函,扣款总额获取公函中的扣款总额信息,不可修改!扣款总额应该为: "+totalDedutionAumount); + } + settleEntity.setDeductionAmount(totalDedutionAumount); + } + + settleEntity.setActualAmount(settleEntity.getSettleAmount().subtract(settleEntity.getDeductionAmount())); + settleEntity.setRemarks(orderSettleDTO.getRemarks()); + + if(!saveOrUpdate(settleEntity)){ + return false; + } + + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(date)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + processStr); + + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(orderEntity.getId()); + ta.setT(2); + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + return infoService.updateById(info); + } + + @Override + public boolean ifSettle(String orderIds, String ifSettle) { + int i=1; + for(String orderId:orderIds.split(",")){ + if("0".equals(ifSettle)){//不需要结算了,那么判断一下,之前有没有结算记录,如果有,那么不能修改 + OperationOrderSettleDTO settleDTO=baseMapper.getByOrderId(orderId); + if(settleDTO!=null){ + throw new ServiceException("第"+i+"条工单已结算,不支持修改!"); + } + } + i++; + } + + LambdaUpdateWrapper updateWrapper=new LambdaUpdateWrapper<>(); + updateWrapper.in(OperationOrderEntity::getId,orderIds.split(",")); + updateWrapper.set(OperationOrderEntity::getIfSettle,ifSettle); + return orderService.update(updateWrapper); + } + + +} diff --git a/src/main/java/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.java b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.java new file mode 100644 index 0000000..d334170 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.java @@ -0,0 +1,321 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.fitting.pojo.entity.OperationOrderMaterialEntity; +import org.springblade.modules.fitting.pojo.entity.PlatformFittingApplyEntity; +import org.springblade.modules.fitting.service.impl.OperationOrderMaterialServiceImpl; +import org.springblade.modules.fitting.service.impl.PlatformFittingApplyServiceImpl; +import org.springblade.modules.nh.pojo.entity.DeviceEntity; +import org.springblade.modules.operation.mapper.OperationSiteEmployeeMapper; +import org.springblade.modules.operation.pojo.vo.OperationEmpVo; +import org.springblade.modules.order.constant.OrderConstants; +import org.springblade.modules.order.mapper.OperationOrderSiteDispatchMapper; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSiteDispatchVO; +import org.springblade.modules.order.excel.OperationOrderSiteDispatchExcel; +import org.springblade.modules.order.service.IOperationOrderSiteDispatchService; +import org.springblade.modules.order.utils.Target; +import org.springblade.modules.order.utils.WebPageFunUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.commons.util.IdUtils; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * 服务商派工表 服务实现类 + * + * @author hx + * @since 2024-06-21 + */ +@Service +public class OperationOrderSiteDispatchServiceImpl extends ServiceImpl implements IOperationOrderSiteDispatchService { + + Logger logger = LoggerFactory.getLogger(getClass()); + + @Autowired + OperationSiteEmployeeMapper employeeMapper; + + @Autowired + OperationOrderServiceImpl orderService; + + @Autowired + OperationOrderOperationInfoServiceImpl infoService; + @Autowired + PlatformFittingApplyServiceImpl applyService; + + @Autowired + OperationOrderMaterialServiceImpl materialService; + + + //服务商派工 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean siteDispatchOrder(String orderIds, String empIds) { + logger.info(">>>>>>>>>>>服务商派工 siteDispatchOrder orderIds:{},empId:{} ", orderIds, empIds); + String empNames = ""; //erp那边过来的 map里面有值 + String empMobiles = ""; + BladeUser user = AuthUtil.getUser(); + if (StringUtil.isNotBlank(empIds)) { + OperationEmpVo record = employeeMapper.findByEmpIds(empIds); + if (record == null) { + throw new ServiceException("服务商工程师不存在!"); + } + empNames = record.getEmpName(); + empMobiles = record.getEmpMobile(); + } + Date date = new Date(); + String[] ids = orderIds.split(","); + List dispatches = new ArrayList<>(); + //List orderList = new ArrayList<>(); + for (String id : ids) { + OperationOrderEntity order = orderService.getById(id); + if (!OrderConstants.ORDER_STATUS_SERVICE.equals(order.getStatus())) { + throw new ServiceException("工单状态不支持派工操作,请刷新!"); + } + if (!OrderConstants.SITE_STATUS_DIS.equals(order.getSiteStatus())) { //平台可以跳过服务商接单 直接派工 + throw new ServiceException("工单状态不支持派工操作!"); + } + /* if(StringUtil.isBlank(order.getServiceType())){ + throw new ServiceException("服务类型为空,请先维护服务类型"); + }*/ + order.setSiteStatus(OrderConstants.SITE_STATUS_RECEIVE); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteDispatchTime(date); + order.setLatestProcess(user.getNickName() + "派工给" + empNames); + order.setLatestProcessTime(date); + order.setEmployeId(empIds); + order.setEmployeName(empNames); + order.setEmployeMobile(empMobiles); + + OperationOrderSiteDispatchEntity siteDis = new OperationOrderSiteDispatchEntity(); + siteDis.setOrderId(order.getId()); + siteDis.setSiteId(order.getSiteId()); + siteDis.setEmployeId(empIds); + siteDis.setEmployeName(empNames); + siteDis.setDispatchTime(date); + siteDis.setCreateTime(date); + siteDis.setCreator(user.getNickName()); + siteDis.setStatus(OrderConstants.SITE_DISPATCH_STATUS_WAIT); + dispatches.add(siteDis); + + //更新过程信息 + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(date)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "派工至" + empNames + " 工程师 "); + ta.setT(Target.Site_DISPATCH); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + if(info ==null){ + info = new OperationOrderOperationInfoEntity(); + } + if (StringUtil.isBlank(info.getId())) { + info.setOrderId(order.getId()); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + if (!infoService.saveOrUpdate(info)) { + return false; + } + Boolean flag1 = orderService.updateById(order); + if (!flag1) { + throw new ServiceException("修改工单表失败!"); + } + } + Boolean fa = saveBatch(dispatches); + if (!fa) throw new ServiceException("保存派工失败!"); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean transferSiteOrder(String orderIds, String empIds) { + logger.info(">>>>>>>>>>>服务商转派 siteDispatchOrder orderIds:{},empId:{} ", orderIds, empIds); + String empNames = ""; //erp那边过来的 map里面有值 + String empMobiles = ""; + BladeUser user = AuthUtil.getUser(); + if (StringUtil.isNotBlank(empIds)) { + OperationEmpVo record = employeeMapper.findByEmpIds(empIds); + if (record == null) { + throw new ServiceException("服务商工程师不存在!"); + } + empNames = record.getEmpName(); + empMobiles = record.getEmpMobile(); + } + Date date = new Date(); + String[] ids = orderIds.split(","); + List dispatches = new ArrayList<>(); + for (String id : ids) { + OperationOrderEntity order = orderService.getById(id); + if (!OrderConstants.ORDER_STATUS_SERVICE.equals(order.getStatus())) { + throw new ServiceException("工单状态不支持转派操作,请刷新!"); + } + /* if (!OrderConstants.SITE_STATUS_DIS.equals(order.getSiteStatus())) { //平台可以跳过服务商接单 直接派工 + throw new ServiceException("工单状态不支持派工操作!"); + }*/ + //检查是否有未完成的物料申请 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.eq(PlatformFittingApplyEntity::getOrderNumber,order.getNumber()).notIn(PlatformFittingApplyEntity::getStatus, Func.toLongList("5,6")); + List applIst = applyService.list(wrapper); + if(!CollectionUtils.isEmpty(applIst)){ + throw new ServiceException("工单有未完成的物料申请,不可转派!"); + } + LambdaQueryWrapper openwrapper = new LambdaQueryWrapper(); + openwrapper.eq(OperationOrderMaterialEntity::getOrderId,order.getNumber()).eq(OperationOrderMaterialEntity::getStatus, "0"); + List aopenList = materialService.list(openwrapper); + if(!CollectionUtils.isEmpty(aopenList)){ + throw new ServiceException("工单有使用的物料,不可转派!"); + } + + order.setSiteStatus(OrderConstants.SITE_STATUS_RECEIVE); + order.setStatus(OrderConstants.ORDER_STATUS_SERVICE); + order.setSiteDispatchTime(date); + order.setLatestProcess(user.getNickName() + "派工给" + empNames); + order.setLatestProcessTime(date); + order.setEmployeId(empIds); + order.setEmployeName(empNames); + order.setEmployeMobile(empMobiles); + + UpdateWrapper oldDis = new UpdateWrapper<>(); + oldDis.lambda().set(OperationOrderSiteDispatchEntity::getStatus,"5").eq(OperationOrderSiteDispatchEntity::getOrderId,order.getId()).ne(OperationOrderSiteDispatchEntity::getStatus,"5"); + if(!this.update(oldDis)){ + throw new ServiceException("转派失败,工单状态不支持转派操作,请刷新!"); + } + OperationOrderSiteDispatchEntity siteDis = new OperationOrderSiteDispatchEntity(); + siteDis.setOrderId(order.getId()); + siteDis.setSiteId(order.getSiteId()); + siteDis.setEmployeId(empIds); + siteDis.setEmployeName(empNames); + siteDis.setDispatchTime(date); + siteDis.setCreateTime(date); + siteDis.setCreator(user.getNickName()); + siteDis.setStatus(OrderConstants.SITE_DISPATCH_STATUS_WAIT); + dispatches.add(siteDis); + + //更新过程信息 + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(date)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "转派至" + empNames + " 工程师 "); + ta.setT(Target.Site_DISPATCH); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + if(info ==null){ + info = new OperationOrderOperationInfoEntity(); + } + if (StringUtil.isBlank(info.getId())) { + info.setOrderId(order.getId()); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + if (!infoService.saveOrUpdate(info)) { + return false; + } + Boolean flag1 = orderService.updateById(order); + if (!flag1) { + throw new ServiceException("转派工单表失败!"); + } + } + Boolean fa = saveBatch(dispatches); + if (!fa) throw new ServiceException("转派工单表失败!"); + return true; + } + + + + //工程师接单 + @Override + @Transactional(rollbackFor = Exception.class) + public boolean empReceiveOrde(String orderId) { + logger.info("empReceiveOrde orderId:{}", orderId); + BladeUser user = AuthUtil.getUser(); + OperationOrderEntity order = orderService.getById(orderId); + if (!OrderConstants.SITE_STATUS_RECEIVE.equals(order.getSiteStatus())) { + throw new ServiceException("工单状态不支持接单操作!"); + } + Date date = new Date(); + order.setSiteStatus(OrderConstants.SITE_STATUS_SERVICE); + order.setSiteProcessTime(date); + order.setLatestProcess("工程师" + user.getNickName() + "接单"); + order.setLatestProcessTime(date); + + //更新过程信息 + Target ta = new Target(); + ta.setD(DateUtil.formatDateTime(date)); + ta.setP(user.getNickName()); + ta.setC(user.getNickName() + "接单 "); + OperationOrderOperationInfoEntity info = infoService.findInfoByOrderId(order.getId()); + ta.setT(Target.ACCEPT_ORDER); + if (StringUtil.isBlank(info.getId())) { + info.setOrderId(order.getId()); + } + String str = WebPageFunUtils.appendOrderProcessDetail(ta, info.getProcessDetail()); + info.setProcessDetail(str); + if (!infoService.updateById(info)) { + return false; + } + + Boolean flag1 = orderService.updateById(order); + if (!flag1) { + throw new ServiceException("修改工单表失败!"); + } + + LambdaUpdateWrapper updateWrapper1 = new LambdaUpdateWrapper<>(); + updateWrapper1.eq(OperationOrderSiteDispatchEntity::getOrderId, orderId) + .set(OperationOrderSiteDispatchEntity::getProcessTime, date) + .set(OperationOrderSiteDispatchEntity::getStatus, OrderConstants.DISPATCH_STATUS_YJD); + return update(updateWrapper1); + } + + public OperationOrderSiteDispatchEntity getByOrderId(String orderId){ + LambdaQueryWrapper queryWrapper=new LambdaQueryWrapper<>(); + queryWrapper.eq(OperationOrderSiteDispatchEntity::getOrderId,orderId); + queryWrapper.ne(OperationOrderSiteDispatchEntity::getStatus,OrderConstants.DISPATCH_STATUS_CANCEL); + return getOne(queryWrapper); + } + +} diff --git a/src/main/java/org/springblade/modules/order/utils/ExcelReader.java b/src/main/java/org/springblade/modules/order/utils/ExcelReader.java new file mode 100644 index 0000000..add9c8e --- /dev/null +++ b/src/main/java/org/springblade/modules/order/utils/ExcelReader.java @@ -0,0 +1,63 @@ +package org.springblade.modules.order.utils; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.exception.ExcelAnalysisException; +import com.alibaba.excel.read.builder.ExcelReaderBuilder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springblade.core.excel.listener.DataListener; +import org.springblade.core.excel.util.ExcelUtil; +import org.springframework.web.multipart.MultipartFile; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + +/** + * @author hongzq + */ +public class ExcelReader { + + private static Logger logger = LoggerFactory.getLogger(ExcelReader.class); + + public static List readExcel(MultipartFile excel, Class clazz) { + DataListener dataListener = new DataListener() { + @Override + public void invokeHeadMap(Map headMap, AnalysisContext context) { + logger.info("读取到的表头: {}", headMap); + checkExcelHeader(headMap, clazz); + } + }; + ExcelReaderBuilder builder = ExcelUtil.getReaderBuilder(excel, dataListener, clazz); + if (builder == null) { + return null; + } else { + builder.doReadAll(); + return dataListener.getDataList(); + } + } + + private static void checkExcelHeader(Map headMap, Class clazz) { + Field[] fields = clazz.getDeclaredFields(); + List list = new ArrayList<>(); + for (Field field : fields) { + ExcelProperty excelProperty = field.getAnnotation(ExcelProperty.class); + if (excelProperty != null) { + list.add(excelProperty); + } + } + list.sort(Comparator.comparingInt(ExcelProperty::order)); + for (int i = 0; i < list.size(); i++) { + ExcelProperty excelProperty = list.get(i); + System.out.println(excelProperty.value()); + System.out.println(excelProperty.value()[0]); + System.out.println(headMap.get(i)); + if (!excelProperty.value()[0].equals(headMap.get(i))) { + throw new ExcelAnalysisException("模板不匹配"); + } + } + } +} diff --git a/src/main/java/org/springblade/modules/order/utils/PlantformUtils.java b/src/main/java/org/springblade/modules/order/utils/PlantformUtils.java new file mode 100644 index 0000000..27040cd --- /dev/null +++ b/src/main/java/org/springblade/modules/order/utils/PlantformUtils.java @@ -0,0 +1,127 @@ +package org.springblade.modules.order.utils; + +import com.google.common.collect.Lists; +import org.springblade.core.tool.utils.DigestUtil; + +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Random; + +public class PlantformUtils { + public static String getPositiveRandomWithRang(int max, int min) { + String r = "1234"; + if (max > 0 && min > 0 && max >= min) { + Random random = new Random(); + int s = random.nextInt(max) % (max - min + 1) + min; + r = String.valueOf(s); + } + return r; + } + public static String getPositiveRandomWithRang(int count) { + StringBuffer sb = new StringBuffer(); + String str = "0123456789"; + Random r = new Random(); + for (int i = 0; i < count; i++) { + int num = r.nextInt(str.length()); + sb.append(str.charAt(num)); + str = str.replace((str.charAt(num) + ""), ""); + } + return sb.toString(); + } + /** + * 生成随机数 + * @return + */ + public static synchronized String getSiteNumber() { + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + return sdf.format(new Date()) + getPositiveRandomWithRang(4); + } + + /** + * 生成随机数--工单编号 + * @return + */ + public static synchronized String getOrderNumber() { + SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm"); + return sdf.format(new Date()) + getPositiveRandomWithRang(4); + } + + /** + * 根据指定规则生成单号 + */ + public static synchronized String findOrderNumber(String start){ + SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmm"); + return start+sdf.format(new Date()) + getPositiveRandomWithRang(4); + } + + public static synchronized String findMateialNumber(String start){ + SimpleDateFormat sdf = new SimpleDateFormat("yyHHmmss"); + return start+sdf.format(new Date()) + getPositiveRandomWithRang(4); + } + + public static synchronized String getFittingApplyNumber() { + SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss"); + return sdf.format(new Date()) + getPositiveRandomWithRang(3); + } + /** + * + * @param date1 + * @param date2 + * @return + */ + public static String pastHour(Date date1,Date date2) { + long hour= 0; + long day = 0; + String phour = "0"; + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + try + { + long diff = date1.getTime() - date2.getTime(); + day = diff / nd; //天数 + hour = diff % nd / nh; + long min = diff % nd % nh / nm; + float price = (day*24) +(float)hour+((float) min/60f); + DecimalFormat decimalFormat=new DecimalFormat("0.00");//构造方法的字符格式这里如果小数不足2位,会以0补足. + phour=decimalFormat.format(price); + } catch (Exception e) { + e.printStackTrace(); + } + return phour; + } + /** + * 生成合同编号 + * + * @return + */ + public static synchronized String getContractNumber(String profix, int index) { + SimpleDateFormat sdf = new SimpleDateFormat("yyHHmmss"); + StringBuilder s = new StringBuilder(String.valueOf(index)); + while (s.toString().length() < 4) { + s.insert(0, "0"); + } + return profix + sdf.format(new Date()) + s.toString(); + } + + + public static List getPromiseLimit(){ + List list = Lists.newArrayList(); + list.add("6:00-8:00"); + list.add("8:00-10:00"); + list.add("10:00-12:00"); + list.add("12:00-14:00"); + list.add("14:00-16:00"); + list.add("16:00-18:00"); + list.add("18:00-20:00"); + list.add("20:00-22:00"); + return list; + } + + public static void main(String[] args) { + System.out.println(DigestUtil.encrypt("123456")); + } + +} diff --git a/src/main/java/org/springblade/modules/order/utils/Target.java b/src/main/java/org/springblade/modules/order/utils/Target.java new file mode 100644 index 0000000..1a887bc --- /dev/null +++ b/src/main/java/org/springblade/modules/order/utils/Target.java @@ -0,0 +1,68 @@ +package org.springblade.modules.order.utils; + +/** + * 消息的具体类,比如工单的过程消息和备件端反馈消息等用来解析json字符串存储的 + * + * @author ivan + * + */ +public class Target { + + public static final int ORDER_ZZJ = 0; + public static final int NEW_ORDER = 1; + public static final int DISPATCH_ORDER = 2; + public static final int REDIRECT_DISPATCH_ORDER = 3; + public static final int Site_DISPATCH = 4; + public static final int CANCEL_WAIT_NOT_DISPATCH = 5; + public static final int INVALID_ORDER = 6; + public static final int ACCEPT_ORDER = 7; + public static final int REJECT_ORDER = 8; + public static final int MODIFY_YY_TIME = 9; + public static final int MODIFY_YHMSG = 10; + public static final int MESS_CALLBACK = 13; + public static final int MESS_CALLBACK_TWICE = 14; + public static final int MESS_SETTLEMENT = 15; + public static final int DIRECTLY_CLOSE = 16; + public static final int FEEDBACK_CLOSE = 17; + public static final int COMPLETE_ORDER = 18; + public static final int MARK_ORDER = 19; + + + private String p; + private String c; + private String d; + + private int t; + + public String getP() { + return p; + } + + public void setP(String p) { + this.p = p; + } + + public String getC() { + return c; + } + + public void setC(String c) { + this.c = c; + } + + public String getD() { + return d; + } + + public void setD(String d) { + this.d = d; + } + + public int getT() { + return t; + } + + public void setT(int t) { + this.t = t; + } +} diff --git a/src/main/java/org/springblade/modules/order/utils/WebPageFunUtils.java b/src/main/java/org/springblade/modules/order/utils/WebPageFunUtils.java new file mode 100644 index 0000000..5b71ea6 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/utils/WebPageFunUtils.java @@ -0,0 +1,237 @@ +package org.springblade.modules.order.utils; + +import com.google.common.collect.Lists; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.order.pojo.form.ComplaintReply; + +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +public class WebPageFunUtils { + + /** + * 获取工单的详细过程信息 + * + * @param pros + * as:2017-05-04 21:40:32#@工单接入@#@2017-05-05 10:01:40#@工单进行派工 + * @return + */ + public static ArrayList getOrderProcess(String pros) { + try { + ArrayList list = Lists.newArrayList(); + if (StringUtils.isNotBlank(pros)) { + Gson gson = new Gson(); + list = gson.fromJson(pros, new TypeToken>() { + }.getType()); + } + // 升序 按时间升序排序 + Collections.sort(list, new Comparator() { + public int compare(Target o1, Target o2) { + return o1.getD().compareTo(o2.getD()); + } + }); + return list; + } catch (Exception ex) { + return new ArrayList<>(); + } + } + + + /** + * g跟踪信息 + */ + public static ArrayList getFittingProcess(String pros) { + ArrayList list = Lists.newArrayList(); + if (StringUtils.isNotBlank(pros)) { + Gson gson = new Gson(); + list = gson.fromJson(pros, new TypeToken>() { + }.getType()); + } + // 降序 按时间降序排序 + Collections.sort(list, new Comparator() { + public int compare(ComplaintReply o1, ComplaintReply o2) { + return -o1.getT().compareTo(o2.getT()); + } + }); + return list; + } + + public static ArrayList getFittingProcessWithoutSort(String pros) { + ArrayList list = Lists.newArrayList(); + if (StringUtils.isNotBlank(pros)) { + Gson gson = new Gson(); + list = gson.fromJson(pros, new TypeToken>() { + }.getType()); + } + return list; + } + + public static ArrayList getProcessWithoutSort(String pros) { + ArrayList list = Lists.newArrayList(); + if (StringUtils.isNotBlank(pros)) { + Gson gson = new Gson(); + list = gson.fromJson(pros, new TypeToken>() { + }.getType()); + } + return list; + } + + public static ArrayList getOrderProcessDesc(String pros) { + try { + ArrayList list = Lists.newArrayList(); + if (StringUtils.isNotBlank(pros)) { + Gson gson = new Gson(); + list = gson.fromJson(pros, new TypeToken>() { + }.getType()); + } + // 升序 按时间升序排序 + Collections.sort(list, new Comparator() { + public int compare(Target o1, Target o2) { + return o2.getD().compareTo(o1.getD()); + } + }); + return list; + } catch (Exception ex) { + return new ArrayList<>(); + } + } + + + public static String appendProcessDetails(List ta, String existsDetail) { + for (ComplaintReply t : ta) { + if (t == null || StringUtil.isBlank(t.getC())) { + throw new IllegalArgumentException(); + } + } + + try { + ArrayList list = getFittingProcessWithoutSort(existsDetail);// 先前已经存在的过程信息 + list.addAll(ta); + Collections.sort(list, new Comparator() { + public int compare(ComplaintReply o1, ComplaintReply o2) { + return o1.getT().compareTo(o2.getT()); + } + }); + Gson gson = new Gson(); + return gson.toJson(list, new TypeToken>() { + }.getType()); + } catch (Exception ex) { + return existsDetail; + } + } + + /** + * 拼接过程信息 + */ + public static String appendOrderProcessDetail(Target ta, String existsDetail) { + if (ta == null || StringUtil.isBlank(ta.getC())) { + throw new IllegalArgumentException(); + } + try { + ArrayList list = getProcessWithoutSort(existsDetail);// 先前已经存在的过程信息 + list.add(ta); + Collections.sort(list, new Comparator() { + public int compare(Target o1, Target o2) { + return o1.getD().compareTo(o2.getD()); + } + }); + Gson gson = new Gson(); + return gson.toJson(list, new TypeToken>() { + }.getType()); + } catch (Exception ex) { + return existsDetail; + } + } + + /** + * 拼接过程信息 + */ + public static String appendProcessDetail(ComplaintReply ta, String existsDetail) { + if (ta == null || StringUtil.isBlank(ta.getC())) { + throw new IllegalArgumentException(); + } + try { + ArrayList list = getFittingProcessWithoutSort(existsDetail);// 先前已经存在的过程信息 + list.add(ta); + Collections.sort(list, new Comparator() { + public int compare(ComplaintReply o1, ComplaintReply o2) { + return o1.getT().compareTo(o2.getT()); + } + }); + Gson gson = new Gson(); + return gson.toJson(list, new TypeToken>() { + }.getType()); + } catch (Exception ex) { + return existsDetail; + } + } + + /** + * 获取总费用 + */ + public static String getOrderTotalFee(int len, Object... fees) { + Double totalFee = 0d; + if (fees != null) { + for (Object fee : fees) { + totalFee += Double.valueOf(String.valueOf(fee)); + } + } + if (totalFee > 0) { + return String.valueOf(totalFee); + } + return "0"; + } + + public static Double getTotalFee(Object... fees) { + Double result = 0d; + if (fees != null) { + for (Object fee : fees) { + Double item = 0d; + try { + item = Double.valueOf(String.valueOf(fee)); + } catch (Exception e) { + // + } + result += item; + } + } + return result; + } + + public static String getOrderTotalFee(Object fee1, Object fee2, Object fee3) { + return getOrderTotalFee(3, fee1, fee2, fee3); + } + + public static String getOrderTotalFeeNew(Object fee1, Object fee2, Object fee3, Object fee4, Object fee5, Object fee6, Object fee7, Object fee8, Object fee9) { + return getOrderTotalFeeNew(8, fee1, fee2, fee3, fee4, fee5, fee6, fee7, fee8, fee9); + } + + public static String getOrderTotalFeeNew(int len, Object... fees) { + Double totalFee = 0d; + if (fees != null) { + int i = 0; + for (Object fee : fees) { + if (fee == null) { + fee = 0; + } + if (i == 0) { + totalFee -= Double.valueOf(String.valueOf(fee)); + }else { + totalFee += Double.valueOf(String.valueOf(fee)); + } + i++; + } + } + if (totalFee > 0) { + DecimalFormat df = new DecimalFormat("#.00"); + return String.valueOf(df.format(totalFee)); + } + return "0"; + } +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderCallbackWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderCallbackWrapper.java new file mode 100644 index 0000000..20b682a --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderCallbackWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderCallbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderCallbackVO; +import java.util.Objects; + +/** + * 工单回访表 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2024-06-21 + */ +public class OperationOrderCallbackWrapper extends BaseEntityWrapper { + + public static OperationOrderCallbackWrapper build() { + return new OperationOrderCallbackWrapper(); + } + + @Override + public OperationOrderCallbackVO entityVO(OperationOrderCallbackEntity operationOrderCallback) { + OperationOrderCallbackVO operationOrderCallbackVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderCallback, OperationOrderCallbackVO.class)); + + //User createUser = UserCache.getUser(operationOrderCallback.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderCallback.getUpdateUser()); + //operationOrderCallbackVO.setCreateUserName(createUser.getName()); + //operationOrderCallbackVO.setUpdateUserName(updateUser.getName()); + + return operationOrderCallbackVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.java new file mode 100644 index 0000000..0ac3981 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderDispatchVO; +import java.util.Objects; + +/** + * 工单平台派工表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-20 + */ +public class OperationOrderDispatchWrapper extends BaseEntityWrapper { + + public static OperationOrderDispatchWrapper build() { + return new OperationOrderDispatchWrapper(); + } + + @Override + public OperationOrderDispatchVO entityVO(OperationOrderDispatchEntity operationOrderDispatch) { + OperationOrderDispatchVO operationOrderDispatchVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderDispatch, OperationOrderDispatchVO.class)); + + //User createUser = UserCache.getUser(operationOrderDispatch.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderDispatch.getUpdateUser()); + //operationOrderDispatchVO.setCreateUserName(createUser.getName()); + //operationOrderDispatchVO.setUpdateUserName(updateUser.getName()); + + return operationOrderDispatchVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.java new file mode 100644 index 0000000..44c246c --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.java @@ -0,0 +1,60 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderFeedbackEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderFeedbackVO; + +import java.util.Objects; + +/** + * 工单反馈表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-21 + */ +public class OperationOrderFeedbackWrapper extends BaseEntityWrapper { + + public static OperationOrderFeedbackWrapper build() { + return new OperationOrderFeedbackWrapper(); + } + + @Override + public OperationOrderFeedbackVO entityVO(OperationOrderFeedbackEntity operationOrderFeedback) { + OperationOrderFeedbackVO operationOrderFeedbackVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderFeedback, OperationOrderFeedbackVO.class)); + + //User createUser = UserCache.getUser(operationOrderFeedback.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderFeedback.getUpdateUser()); + //operationOrderFeedbackVO.setCreateUserName(createUser.getName()); + //operationOrderFeedbackVO.setUpdateUserName(updateUser.getName()); + + return operationOrderFeedbackVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.java new file mode 100644 index 0000000..e28f1d1 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderOperationInfoEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderOperationInfoVO; +import java.util.Objects; + +/** + * 工单操作/跟踪明细记录表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-20 + */ +public class OperationOrderOperationInfoWrapper extends BaseEntityWrapper { + + public static OperationOrderOperationInfoWrapper build() { + return new OperationOrderOperationInfoWrapper(); + } + + @Override + public OperationOrderOperationInfoVO entityVO(OperationOrderOperationInfoEntity operationOrderOperationInfo) { + OperationOrderOperationInfoVO operationOrderOperationInfoVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderOperationInfo, OperationOrderOperationInfoVO.class)); + + //User createUser = UserCache.getUser(operationOrderOperationInfo.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderOperationInfo.getUpdateUser()); + //operationOrderOperationInfoVO.setCreateUserName(createUser.getName()); + //operationOrderOperationInfoVO.setUpdateUserName(updateUser.getName()); + + return operationOrderOperationInfoVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.java new file mode 100644 index 0000000..b00fc9d --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderSettleEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSettleVO; +import java.util.Objects; + +/** + * 工单结算表 包装类,返回视图层所需的字段 + * + * @author BladeX + * @since 2024-06-26 + */ +public class OperationOrderSettleWrapper extends BaseEntityWrapper { + + public static OperationOrderSettleWrapper build() { + return new OperationOrderSettleWrapper(); + } + + @Override + public OperationOrderSettleVO entityVO(OperationOrderSettleEntity operationOrderSettle) { + OperationOrderSettleVO operationOrderSettleVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderSettle, OperationOrderSettleVO.class)); + + //User createUser = UserCache.getUser(operationOrderSettle.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderSettle.getUpdateUser()); + //operationOrderSettleVO.setCreateUserName(createUser.getName()); + //operationOrderSettleVO.setUpdateUserName(updateUser.getName()); + + return operationOrderSettleVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.java new file mode 100644 index 0000000..9da1165 --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderSiteDispatchEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderSiteDispatchVO; +import java.util.Objects; + +/** + * 服务商派工表 包装类,返回视图层所需的字段 + * + * @author hx + * @since 2024-06-21 + */ +public class OperationOrderSiteDispatchWrapper extends BaseEntityWrapper { + + public static OperationOrderSiteDispatchWrapper build() { + return new OperationOrderSiteDispatchWrapper(); + } + + @Override + public OperationOrderSiteDispatchVO entityVO(OperationOrderSiteDispatchEntity operationOrderSiteDispatch) { + OperationOrderSiteDispatchVO operationOrderSiteDispatchVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrderSiteDispatch, OperationOrderSiteDispatchVO.class)); + + //User createUser = UserCache.getUser(operationOrderSiteDispatch.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrderSiteDispatch.getUpdateUser()); + //operationOrderSiteDispatchVO.setCreateUserName(createUser.getName()); + //operationOrderSiteDispatchVO.setUpdateUserName(updateUser.getName()); + + return operationOrderSiteDispatchVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/order/wrapper/OperationOrderWrapper.java b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderWrapper.java new file mode 100644 index 0000000..c4b66ba --- /dev/null +++ b/src/main/java/org/springblade/modules/order/wrapper/OperationOrderWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.order.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.order.pojo.entity.OperationOrderEntity; +import org.springblade.modules.order.pojo.vo.OperationOrderVO; +import java.util.Objects; + +/** + * 工单基础信息表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-18 + */ +public class OperationOrderWrapper extends BaseEntityWrapper { + + public static OperationOrderWrapper build() { + return new OperationOrderWrapper(); + } + + @Override + public OperationOrderVO entityVO(OperationOrderEntity operationOrder) { + OperationOrderVO operationOrderVO = Objects.requireNonNull(BeanUtil.copyProperties(operationOrder, OperationOrderVO.class)); + + //User createUser = UserCache.getUser(operationOrder.getCreateUser()); + //User updateUser = UserCache.getUser(operationOrder.getUpdateUser()); + //operationOrderVO.setCreateUserName(createUser.getName()); + //operationOrderVO.setUpdateUserName(updateUser.getName()); + + return operationOrderVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/partner/controller/PartnerController.java b/src/main/java/org/springblade/modules/partner/controller/PartnerController.java new file mode 100644 index 0000000..4af00c0 --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/controller/PartnerController.java @@ -0,0 +1,108 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import lombok.AllArgsConstructor; +import jakarta.validation.Valid; + +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.nh.pojo.entity.AlarmCodeEntity; +import org.springframework.web.bind.annotation.*; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import org.springblade.modules.partner.pojo.vo.PartnerVO; +import org.springblade.modules.partner.excel.PartnerExcel; +import org.springblade.modules.partner.wrapper.PartnerWrapper; +import org.springblade.modules.partner.service.IPartnerService; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import java.util.Map; +import java.util.List; +import jakarta.servlet.http.HttpServletResponse; + +/** + * 合作商基础信息表 控制器 + * + * @author lzp + * @since 2024-06-18 + */ +@RestController +@AllArgsConstructor +@RequestMapping("sf/partner") +@Tag(name = "合作商基础信息表", description = "合作商基础信息表接口") +public class PartnerController extends BladeController { + + private final IPartnerService partnerService; + + /** + * 合作商基础信息表 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入partner") + public R detail(PartnerEntity partner) { + PartnerEntity detail = partnerService.getOne(Condition.getQueryWrapper(partner)); + return R.data(PartnerWrapper.build().entityVO(detail)); + } + /** + * 合作商基础信息表 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "不分页", description = "传入partner") + public R> list() { + List pages = partnerService.listPartner(); + return R.data(pages); + } + + /** + * 合作商基础信息表 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入partner") + public R> page(PartnerVO partner, Query query) { + IPage pages = partnerService.selectPartnerPage(Condition.getPage(query), partner); + return R.data(pages); + } + + + +} diff --git a/src/main/java/org/springblade/modules/partner/excel/PartnerExcel.java b/src/main/java/org/springblade/modules/partner/excel/PartnerExcel.java new file mode 100644 index 0000000..2a3448b --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/excel/PartnerExcel.java @@ -0,0 +1,176 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.excel; + + +import lombok.Data; + +import java.util.Date; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import java.io.Serializable; +import java.io.Serial; + + +/** + * 合作商基础信息表 Excel实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class PartnerExcel implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 授权类型:1.接口授权 2.账号授权 3.无授权 + */ + @ColumnWidth(20) + @ExcelProperty("授权类型:1.接口授权 2.账号授权 3.无授权") + private String authType; + /** + * 对应user表记录id + */ + @ColumnWidth(20) + @ExcelProperty("对应user表记录id") + private String userId; + /** + * 资方名称 + */ + @ColumnWidth(20) + @ExcelProperty("资方名称") + private String name; + /** + * 联系电话 + */ + @ColumnWidth(20) + @ExcelProperty("联系电话") + private String mobile; + /** + * 负责人 + */ + @ColumnWidth(20) + @ExcelProperty("负责人") + private String personInCharge; + /** + * 省 + */ + @ColumnWidth(20) + @ExcelProperty("省") + private String province; + /** + * 市 + */ + @ColumnWidth(20) + @ExcelProperty("市") + private String city; + /** + * 区县 + */ + @ColumnWidth(20) + @ExcelProperty("区县") + private String area; + /** + * 详细地址 + */ + @ColumnWidth(20) + @ExcelProperty("详细地址") + private String address; + /** + * 合作商logo + */ + @ColumnWidth(20) + @ExcelProperty("合作商logo") + private String logo; + /** + * 授权项目 + */ + @ColumnWidth(20) + @ExcelProperty("授权项目") + private String authorizedId; + /** + * 创建人user_id + */ + @ColumnWidth(20) + @ExcelProperty("创建人user_id") + private String createBy; + /** + * 创建人 + */ + @ColumnWidth(20) + @ExcelProperty("创建人") + private String creator; + /** + * 更新人user_id + */ + @ColumnWidth(20) + @ExcelProperty("更新人user_id") + private String updateBy; + /** + * 更新人 + */ + @ColumnWidth(20) + @ExcelProperty("更新人") + private String updateName; + /** + * 营业执照 + */ + @ColumnWidth(20) + @ExcelProperty("营业执照") + private String certificationImg; + /** + * 统一信用代码 + */ + @ColumnWidth(20) + @ExcelProperty("统一信用代码") + private String unifiedCreditCode; + /** + * 营业执照文件名(包含后缀)。 + */ + @ColumnWidth(20) + @ExcelProperty("营业执照文件名(包含后缀)。") + private String certificationImgName; + /** + * 是否开启超龄:1.开启 2.关闭 + */ + @ColumnWidth(20) + @ExcelProperty("是否开启超龄:1.开启 2.关闭") + private String overageFlag; + /** + * 是否开通二类卡:1.是 0.否 + */ + @ColumnWidth(20) + @ExcelProperty("是否开通二类卡:1.是 0.否") + private String isOpenBankCard; + +} diff --git a/src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.java b/src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.java new file mode 100644 index 0000000..d289339 --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.mapper; + +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import org.springblade.modules.partner.pojo.vo.PartnerVO; +import org.springblade.modules.partner.excel.PartnerExcel; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import java.util.List; + +/** + * 合作商基础信息表 Mapper 接口 + * + * @author lzp + * @since 2024-06-18 + */ +public interface PartnerMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param partner + * @return + */ + List selectPartnerPage(IPage page, PartnerVO partner); + + List listPartner(); + + + /** + * 获取导出数据 + * + * @param queryWrapper + * @return + */ + List exportPartner(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.xml b/src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.xml new file mode 100644 index 0000000..83c3c1e --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/mapper/PartnerMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/partner/pojo/dto/PartnerDTO.java b/src/main/java/org/springblade/modules/partner/pojo/dto/PartnerDTO.java new file mode 100644 index 0000000..17ffe57 --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/pojo/dto/PartnerDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.pojo.dto; + +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 合作商基础信息表 数据传输对象实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PartnerDTO extends PartnerEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/partner/pojo/entity/PartnerEntity.java b/src/main/java/org/springblade/modules/partner/pojo/entity/PartnerEntity.java new file mode 100644 index 0000000..414bbda --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/pojo/entity/PartnerEntity.java @@ -0,0 +1,164 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema; + +import java.io.Serializable; +import java.util.Date; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +/** + * 合作商基础信息表 实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@TableName("sf_partner") +@Schema(description = "Partner对象") +public class PartnerEntity implements Serializable { + + + @Schema( + description = "主键id" + ) + @TableId( + value = "id", + type = IdType.ASSIGN_UUID + ) + private String id; + + /** + * 授权类型:1.接口授权 2.账号授权 3.无授权 + */ + @Schema(description = "授权类型:1.接口授权 2.账号授权 3.无授权") + private String authType; + /** + * 对应user表记录id + */ + @Schema(description = "对应user表记录id") + private String userId; + /** + * 资方名称 + */ + @Schema(description = "资方名称") + private String name; + /** + * 联系电话 + */ + @Schema(description = "联系电话") + private String mobile; + /** + * 负责人 + */ + @Schema(description = "负责人") + private String personInCharge; + /** + * 省 + */ + @Schema(description = "省") + private String province; + /** + * 市 + */ + @Schema(description = "市") + private String city; + /** + * 区县 + */ + @Schema(description = "区县") + private String area; + /** + * 详细地址 + */ + @Schema(description = "详细地址") + private String address; + /** + * 合作商logo + */ + @Schema(description = "合作商logo") + private String logo; + /** + * 授权项目 + */ + @Schema(description = "授权项目") + private String authorizedId; + /** + * 创建人user_id + */ + @Schema(description = "创建人user_id") + private String createBy; + /** + * 创建人 + */ + @Schema(description = "创建人") + private String creator; + /** + * 更新人user_id + */ + @Schema(description = "更新人user_id") + private String updateBy; + /** + * 更新人 + */ + @Schema(description = "更新人") + private String updateName; + /** + * 营业执照 + */ + @Schema(description = "营业执照") + private String certificationImg; + /** + * 统一信用代码 + */ + @Schema(description = "统一信用代码") + private String unifiedCreditCode; + /** + * 营业执照文件名(包含后缀)。 + */ + @Schema(description = "营业执照文件名(包含后缀)。") + private String certificationImgName; + /** + * 是否开启超龄:1.开启 2.关闭 + */ + @Schema(description = "是否开启超龄:1.开启 2.关闭") + private String overageFlag; + /** + * 是否开通二类卡:1.是 0.否 + */ + @Schema(description = "是否开通二类卡:1.是 0.否") + private String isOpenBankCard; + +} diff --git a/src/main/java/org/springblade/modules/partner/pojo/vo/PartnerVO.java b/src/main/java/org/springblade/modules/partner/pojo/vo/PartnerVO.java new file mode 100644 index 0000000..042372f --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/pojo/vo/PartnerVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.pojo.vo; + +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import org.springblade.core.tool.node.INode; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.io.Serial; + +/** + * 合作商基础信息表 视图实体类 + * + * @author lzp + * @since 2024-06-18 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PartnerVO extends PartnerEntity { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/partner/service/IPartnerService.java b/src/main/java/org/springblade/modules/partner/service/IPartnerService.java new file mode 100644 index 0000000..377e05c --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/service/IPartnerService.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import org.springblade.modules.partner.pojo.vo.PartnerVO; +import org.springblade.modules.partner.excel.PartnerExcel; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 合作商基础信息表 服务类 + * + * @author lzp + * @since 2024-06-18 + */ +public interface IPartnerService extends IService { + /** + * 自定义分页 + * + * @param page + * @param partner + * @return + */ + IPage selectPartnerPage(IPage page, PartnerVO partner); + + List listPartner(); + + + /** + * 导出数据 + * + * @param queryWrapper + * @return + */ + List exportPartner(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/partner/service/impl/PartnerServiceImpl.java b/src/main/java/org/springblade/modules/partner/service/impl/PartnerServiceImpl.java new file mode 100644 index 0000000..47cc24c --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/service/impl/PartnerServiceImpl.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import org.springblade.modules.partner.pojo.vo.PartnerVO; +import org.springblade.modules.partner.excel.PartnerExcel; +import org.springblade.modules.partner.mapper.PartnerMapper; +import org.springblade.modules.partner.service.IPartnerService; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 合作商基础信息表 服务实现类 + * + * @author lzp + * @since 2024-06-18 + */ +@Service +public class PartnerServiceImpl extends ServiceImpl implements IPartnerService { + + @Override + public IPage selectPartnerPage(IPage page, PartnerVO partner) { + return page.setRecords(baseMapper.selectPartnerPage(page, partner)); + } + + @Override + public List listPartner() { + + return baseMapper.listPartner(); + + } + + + @Override + public List exportPartner(Wrapper queryWrapper) { + List partnerList = baseMapper.exportPartner(queryWrapper); + //partnerList.forEach(partner -> { + // partner.setTypeName(DictCache.getValue(DictEnum.YES_NO, Partner.getType())); + //}); + return partnerList; + } + +} diff --git a/src/main/java/org/springblade/modules/partner/wrapper/PartnerWrapper.java b/src/main/java/org/springblade/modules/partner/wrapper/PartnerWrapper.java new file mode 100644 index 0000000..0b73fa6 --- /dev/null +++ b/src/main/java/org/springblade/modules/partner/wrapper/PartnerWrapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.partner.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.partner.pojo.entity.PartnerEntity; +import org.springblade.modules.partner.pojo.vo.PartnerVO; +import java.util.Objects; + +/** + * 合作商基础信息表 包装类,返回视图层所需的字段 + * + * @author lzp + * @since 2024-06-18 + */ +public class PartnerWrapper extends BaseEntityWrapper { + + public static PartnerWrapper build() { + return new PartnerWrapper(); + } + + @Override + public PartnerVO entityVO(PartnerEntity partner) { + PartnerVO partnerVO = Objects.requireNonNull(BeanUtil.copyProperties(partner, PartnerVO.class)); + + //User createUser = UserCache.getUser(partner.getCreateUser()); + //User updateUser = UserCache.getUser(partner.getUpdateUser()); + //partnerVO.setCreateUserName(createUser.getName()); + //partnerVO.setUpdateUserName(updateUser.getName()); + + return partnerVO; + } + + +} diff --git a/src/main/java/org/springblade/modules/resource/builder/OssBuilder.java b/src/main/java/org/springblade/modules/resource/builder/OssBuilder.java new file mode 100644 index 0000000..0ee7395 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/builder/OssBuilder.java @@ -0,0 +1,163 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.builder; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import lombok.AllArgsConstructor; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.enums.OssEnum; +import org.springblade.core.oss.enums.OssStatusEnum; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.core.tool.utils.WebUtil; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.service.IOssService; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE; + +/** + * Oss云存储统一构建类 + * + * @author Chill + */ +@AllArgsConstructor +public class OssBuilder { + + public static final String OSS_CODE = "oss:code:"; + public static final String OSS_PARAM_KEY = "code"; + + private final OssProperties ossProperties; + private final IOssService ossService; + private final FlowExecutor flowExecutor; + + /** + * OssTemplate配置缓存池 + */ + private final Map templatePool = new ConcurrentHashMap<>(); + + /** + * oss配置缓存池 + */ + private final Map ossPool = new ConcurrentHashMap<>(); + + /** + * 获取template + * + * @return OssTemplate + */ + public OssTemplate template() { + return template(StringPool.EMPTY); + } + + /** + * 获取template + * + * @param code 资源编号 + * @return OssTemplate + */ + public OssTemplate template(String code) { + String tenantId = AuthUtil.getTenantId(); + return template(tenantId, code); + } + + /** + * 获取template + * + * @param tenantId 租户ID + * @param code 资源编号 + * @return OssTemplate + */ + public OssTemplate template(String tenantId, String code) { + Oss oss = getOss(tenantId, code); + + OssContext ossContext = new OssContext(); + ossContext.setOss(oss); + ossContext.setOssProperties(ossProperties); + ossContext.setOssPool(ossPool); + ossContext.setTemplatePool(templatePool); + + LiteflowResponse resp = flowExecutor.execute2Resp("ossChain", tenantId, ossContext); + if (resp.isSuccess()) { + OssContext contextBean = resp.getFirstContextBean(); + return contextBean.getOssTemplate(); + } else { + throw new ServiceException("未获取到对应的对象存储配置"); + } + } + + /** + * 获取对象存储实体 + * + * @param tenantId 租户ID + * @return Oss + */ + public Oss getOss(String tenantId, String code) { + String key = tenantId; + LambdaQueryWrapper lqw = Wrappers.query().lambda().eq(Oss::getTenantId, tenantId); + // 获取传参的资源编号并查询,若有则返回,若没有则调启用的配置 + String ossCode = StringUtil.isBlank(code) ? WebUtil.getParameter(OSS_PARAM_KEY) : code; + if (StringUtil.isNotBlank(ossCode)) { + key = key.concat(StringPool.DASH).concat(ossCode); + lqw.eq(Oss::getOssCode, ossCode); + } else { + lqw.eq(Oss::getStatus, OssStatusEnum.ENABLE.getNum()); + } + Oss oss = CacheUtil.get(RESOURCE_CACHE, OSS_CODE, key, () -> { + Oss o = ossService.getOne(lqw); + // 若为空则调用默认配置 + if (o == null || o.getId() == null) { + Oss defaultOss = new Oss(); + defaultOss.setId(0L); + defaultOss.setCategory(OssEnum.of(ossProperties.getName()).getCategory()); + defaultOss.setEndpoint(ossProperties.getEndpoint()); + defaultOss.setTransformEndpoint(ossProperties.getTransformEndpoint()); + defaultOss.setBucketName(ossProperties.getBucketName()); + defaultOss.setAccessKey(ossProperties.getAccessKey()); + defaultOss.setSecretKey(ossProperties.getSecretKey()); + return defaultOss; + } else { + return o; + } + }); + if (oss == null || oss.getId() == null) { + throw new ServiceException("未获取到对应的对象存储配置"); + } else { + return oss; + } + } + +} diff --git a/src/main/java/org/springblade/modules/resource/builder/SmsBuilder.java b/src/main/java/org/springblade/modules/resource/builder/SmsBuilder.java new file mode 100644 index 0000000..7241b7e --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/builder/SmsBuilder.java @@ -0,0 +1,168 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.builder; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import lombok.AllArgsConstructor; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.sms.enums.SmsEnum; +import org.springblade.core.sms.enums.SmsStatusEnum; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.core.tool.utils.WebUtil; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; +import org.springblade.modules.resource.service.ISmsService; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE; + +/** + * Sms短信服务统一构建类 + * + * @author Chill + */ +@AllArgsConstructor +public class SmsBuilder { + + public static final String SMS_CODE = "sms:code:"; + public static final String SMS_PARAM_KEY = "code"; + + private final SmsProperties smsProperties; + private final ISmsService smsService; + private final BladeRedis bladeRedis; + private final FlowExecutor flowExecutor; + + /** + * SmsTemplate配置缓存池 + */ + private final Map templatePool = new ConcurrentHashMap<>(); + + /** + * Sms配置缓存池 + */ + private final Map smsPool = new ConcurrentHashMap<>(); + + + /** + * 获取template + * + * @return SmsTemplate + */ + public SmsTemplate template() { + return template(StringPool.EMPTY); + } + + /** + * 获取template + * + * @param code 资源编号 + * @return SmsTemplate + */ + public SmsTemplate template(String code) { + String tenantId = AuthUtil.getTenantId(); + return template(tenantId, code); + } + + /** + * 获取template + * + * @param tenantId 租户ID + * @param code 资源编号 + * @return SmsTemplate + */ + public SmsTemplate template(String tenantId, String code) { + Sms sms = getSms(tenantId, code); + + SmsContext smsContext = new SmsContext(); + smsContext.setSms(sms); + smsContext.setSmsProperties(smsProperties); + smsContext.setSmsPool(smsPool); + smsContext.setTemplatePool(templatePool); + smsContext.setBladeRedis(bladeRedis); + + LiteflowResponse resp = flowExecutor.execute2Resp("smsChain", tenantId, smsContext); + if (resp.isSuccess()) { + SmsContext contextBean = resp.getFirstContextBean(); + return contextBean.getSmsTemplate(); + } else { + throw new ServiceException("未获取到对应的短信配置"); + } + } + + + /** + * 获取短信实体 + * + * @param tenantId 租户ID + * @return Sms + */ + public Sms getSms(String tenantId, String code) { + String key = tenantId; + LambdaQueryWrapper lqw = Wrappers.query().lambda().eq(Sms::getTenantId, tenantId); + // 获取传参的资源编号并查询,若有则返回,若没有则调启用的配置 + String smsCode = StringUtil.isBlank(code) ? WebUtil.getParameter(SMS_PARAM_KEY) : code; + if (StringUtil.isNotBlank(smsCode)) { + key = key.concat(StringPool.DASH).concat(smsCode); + lqw.eq(Sms::getSmsCode, smsCode); + } else { + lqw.eq(Sms::getStatus, SmsStatusEnum.ENABLE.getNum()); + } + Sms sms = CacheUtil.get(RESOURCE_CACHE, SMS_CODE, key, () -> { + Sms s = smsService.getOne(lqw); + // 若为空则调用默认配置 + if (s == null || s.getId() == null) { + Sms defaultSms = new Sms(); + defaultSms.setId(0L); + defaultSms.setTemplateId(smsProperties.getTemplateId()); + defaultSms.setRegionId(smsProperties.getRegionId()); + defaultSms.setCategory(SmsEnum.of(smsProperties.getName()).getCategory()); + defaultSms.setAccessKey(smsProperties.getAccessKey()); + defaultSms.setSecretKey(smsProperties.getSecretKey()); + defaultSms.setSignName(smsProperties.getSignName()); + return defaultSms; + } else { + return s; + } + }); + if (sms == null || sms.getId() == null) { + throw new ServiceException("未获取到对应的短信配置"); + } else { + return sms; + } + } + +} diff --git a/src/main/java/org/springblade/modules/resource/config/BladeOssConfiguration.java b/src/main/java/org/springblade/modules/resource/config/BladeOssConfiguration.java new file mode 100644 index 0000000..9146280 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/config/BladeOssConfiguration.java @@ -0,0 +1,56 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.config; + +import com.yomahub.liteflow.core.FlowExecutor; +import lombok.AllArgsConstructor; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.modules.resource.builder.OssBuilder; +import org.springblade.modules.resource.service.IOssService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Oss配置类 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AllArgsConstructor +public class BladeOssConfiguration { + + private final OssProperties ossProperties; + + private final IOssService ossService; + + private final FlowExecutor flowExecutor; + + @Bean + public OssBuilder ossBuilder() { + return new OssBuilder(ossProperties, ossService, flowExecutor); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/config/BladeSmsConfiguration.java b/src/main/java/org/springblade/modules/resource/config/BladeSmsConfiguration.java new file mode 100644 index 0000000..6ff159e --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/config/BladeSmsConfiguration.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.config; + +import com.yomahub.liteflow.core.FlowExecutor; +import lombok.AllArgsConstructor; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.modules.resource.builder.SmsBuilder; +import org.springblade.modules.resource.service.ISmsService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * Sms配置类 + * + * @author Chill + */ +@Configuration(proxyBeanMethods = false) +@AllArgsConstructor +public class BladeSmsConfiguration { + + private final SmsProperties smsProperties; + + private final ISmsService smsService; + + private final BladeRedis bladeRedis; + + private final FlowExecutor flowExecutor; + + @Bean + public SmsBuilder smsBuilder() { + return new SmsBuilder(smsProperties, smsService, bladeRedis, flowExecutor); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/controller/AttachController.java b/src/main/java/org/springblade/modules/resource/controller/AttachController.java new file mode 100644 index 0000000..e5422a0 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/controller/AttachController.java @@ -0,0 +1,136 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Attach; +import org.springblade.modules.resource.service.IAttachService; +import org.springblade.modules.resource.pojo.vo.AttachVO; +import org.springframework.web.bind.annotation.*; + +/** + * 附件表 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_RESOURCE_NAME + "/attach") +@Tag(name = "附件", description = "附件") +public class AttachController extends BladeController { + + private final IAttachService attachService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入attach") + public R detail(Attach attach) { + Attach detail = attachService.getOne(Condition.getQueryWrapper(attach)); + return R.data(detail); + } + + /** + * 分页 附件表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入attach") + public R> list(Attach attach, Query query) { + IPage pages = attachService.page(Condition.getPage(query), Condition.getQueryWrapper(attach)); + return R.data(pages); + } + + /** + * 自定义分页 附件表 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入attach") + public R> page(AttachVO attach, Query query) { + IPage pages = attachService.selectAttachPage(Condition.getPage(query), attach); + return R.data(pages); + } + + /** + * 新增 附件表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入attach") + public R save(@Valid @RequestBody Attach attach) { + return R.status(attachService.save(attach)); + } + + /** + * 修改 附件表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入attach") + public R update(@Valid @RequestBody Attach attach) { + return R.status(attachService.updateById(attach)); + } + + /** + * 新增或修改 附件表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入attach") + public R submit(@Valid @RequestBody Attach attach) { + return R.status(attachService.saveOrUpdate(attach)); + } + + + /** + * 删除 附件表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(attachService.deleteLogic(Func.toLongList(ids))); + } + + +} diff --git a/src/main/java/org/springblade/modules/resource/controller/OssController.java b/src/main/java/org/springblade/modules/resource/controller/OssController.java new file mode 100644 index 0000000..c9e40bb --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/controller/OssController.java @@ -0,0 +1,160 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.service.IOssService; +import org.springblade.modules.resource.pojo.vo.OssVO; +import org.springblade.modules.resource.wrapper.OssWrapper; +import org.springframework.web.bind.annotation.*; + +import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE; + +/** + * 控制器 + * + * @author BladeX + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_RESOURCE_NAME + "/oss") +@PreAuth(RoleConstant.HAS_ROLE_ADMIN) +@Tag(name = "对象存储接口", description = "对象存储接口") +public class OssController extends BladeController { + + private final IOssService ossService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入oss") + public R detail(Oss oss) { + Oss detail = ossService.getOne(Condition.getQueryWrapper(oss)); + return R.data(OssWrapper.build().entityVO(detail)); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入oss") + public R> list(Oss oss, Query query) { + IPage pages = ossService.page(Condition.getPage(query), Condition.getQueryWrapper(oss)); + return R.data(OssWrapper.build().pageVO(pages)); + } + + /** + * 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入oss") + public R> page(OssVO oss, Query query) { + IPage pages = ossService.selectOssPage(Condition.getPage(query), oss); + return R.data(pages); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入oss") + public R save(@Valid @RequestBody Oss oss) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(ossService.save(oss)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入oss") + public R update(@Valid @RequestBody Oss oss) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(ossService.updateById(oss)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入oss") + public R submit(@Valid @RequestBody Oss oss) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(ossService.submit(oss)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(ossService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 启用 + */ + @PostMapping("/enable") + @ApiOperationSupport(order = 8) + @Operation(summary = "配置启用", description = "传入id") + public R enable(@Parameter(description = "主键", required = true) @RequestParam Long id) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(ossService.enable(id)); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/controller/SmsController.java b/src/main/java/org/springblade/modules/resource/controller/SmsController.java new file mode 100644 index 0000000..4978b28 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/controller/SmsController.java @@ -0,0 +1,161 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.service.ISmsService; +import org.springblade.modules.resource.pojo.vo.SmsVO; +import org.springblade.modules.resource.wrapper.SmsWrapper; +import org.springframework.web.bind.annotation.*; + +import static org.springblade.core.cache.constant.CacheConstant.RESOURCE_CACHE; + +/** + * 短信配置表 控制器 + * + * @author BladeX + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_RESOURCE_NAME + "/sms") +@PreAuth(RoleConstant.HAS_ROLE_ADMIN) +@Tag(name = "短信配置表", description = "短信配置表接口") +public class SmsController extends BladeController { + + private final ISmsService smsService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入sms") + public R detail(Sms sms) { + Sms detail = smsService.getOne(Condition.getQueryWrapper(sms)); + return R.data(SmsWrapper.build().entityVO(detail)); + } + + /** + * 分页 短信配置表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入sms") + public R> list(Sms sms, Query query) { + IPage pages = smsService.page(Condition.getPage(query), Condition.getQueryWrapper(sms)); + return R.data(SmsWrapper.build().pageVO(pages)); + } + + + /** + * 自定义分页 短信配置表 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入sms") + public R> page(SmsVO sms, Query query) { + IPage pages = smsService.selectSmsPage(Condition.getPage(query), sms); + return R.data(pages); + } + + /** + * 新增 短信配置表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入sms") + public R save(@Valid @RequestBody Sms sms) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(smsService.save(sms)); + } + + /** + * 修改 短信配置表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入sms") + public R update(@Valid @RequestBody Sms sms) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(smsService.updateById(sms)); + } + + /** + * 新增或修改 短信配置表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入sms") + public R submit(@Valid @RequestBody Sms sms) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(smsService.submit(sms)); + } + + + /** + * 删除 短信配置表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(smsService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 启用 + */ + @PostMapping("/enable") + @ApiOperationSupport(order = 8) + @Operation(summary = "配置启用", description = "传入id") + public R enable(@Parameter(description = "主键", required = true) @RequestParam Long id) { + CacheUtil.clear(RESOURCE_CACHE); + return R.status(smsService.enable(id)); + } + + +} diff --git a/src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java b/src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java new file mode 100644 index 0000000..4f47c12 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/endpoint/OssEndpoint.java @@ -0,0 +1,256 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.endpoint; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.oss.model.BladeFile; +import org.springblade.core.oss.model.OssFile; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.FileUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.builder.OssBuilder; +import org.springblade.modules.resource.pojo.entity.Attach; +import org.springblade.modules.resource.service.IAttachService; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +/** + * 对象存储端点 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@Tag(name = "对象存储端点", description = "对象存储端点") +@RequestMapping(AppConstant.APPLICATION_RESOURCE_NAME + "/oss/endpoint") +public class OssEndpoint { + + /** + * 对象存储构建类 + */ + private final OssBuilder ossBuilder; + + /** + * 附件表服务 + */ + private final IAttachService attachService; + + /** + * 创建存储桶 + * + * @param bucketName 存储桶名称 + * @return Bucket + */ + @SneakyThrows + @PostMapping("/make-bucket") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R makeBucket(@RequestParam String bucketName) { + ossBuilder.template().makeBucket(bucketName); + return R.success("创建成功"); + } + + /** + * 创建存储桶 + * + * @param bucketName 存储桶名称 + * @return R + */ + @SneakyThrows + @PostMapping("/remove-bucket") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R removeBucket(@RequestParam String bucketName) { + ossBuilder.template().removeBucket(bucketName); + return R.success("删除成功"); + } + + /** + * 拷贝文件 + * + * @param fileName 存储桶对象名称 + * @param destBucketName 目标存储桶名称 + * @param destFileName 目标存储桶对象名称 + * @return R + */ + @SneakyThrows + @PostMapping("/copy-file") + public R copyFile(@RequestParam String fileName, @RequestParam String destBucketName, String destFileName) { + ossBuilder.template().copyFile(fileName, destBucketName, destFileName); + return R.success("操作成功"); + } + + /** + * 获取文件信息 + * + * @param fileName 存储桶对象名称 + * @return InputStream + */ + @SneakyThrows + @GetMapping("/stat-file") + public R statFile(@RequestParam String fileName) { + return R.data(ossBuilder.template().statFile(fileName)); + } + + /** + * 获取文件相对路径 + * + * @param fileName 存储桶对象名称 + * @return String + */ + @SneakyThrows + @GetMapping("/file-path") + public R filePath(@RequestParam String fileName) { + return R.data(ossBuilder.template().filePath(fileName)); + } + + + /** + * 获取文件外链 + * + * @param fileName 存储桶对象名称 + * @return String + */ + @SneakyThrows + @GetMapping("/file-link") + public R fileLink(@RequestParam String fileName) { + return R.data(ossBuilder.template().fileLink(fileName)); + } + + /** + * 上传文件 + * + * @param file 文件 + * @return ObjectStat + */ + @SneakyThrows + @PostMapping("/put-file") + public R putFile(@RequestParam MultipartFile file) { + BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream()); + return R.data(bladeFile); + } + + /** + * 上传文件 + * + * @param fileName 存储桶对象名称 + * @param file 文件 + * @return ObjectStat + */ + @SneakyThrows + @PostMapping("/put-file-by-name") + public R putFile(@RequestParam String fileName, @RequestParam MultipartFile file) { + BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream()); + return R.data(bladeFile); + } + + /** + * 上传文件并保存至附件表 + * + * @param file 文件 + * @return ObjectStat + */ + @SneakyThrows + @PostMapping("/put-file-attach") + public R putFileAttach(@RequestParam MultipartFile file) { + String fileName = file.getOriginalFilename(); + BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream()); + Long attachId = buildAttach(fileName, file.getSize(), bladeFile); + bladeFile.setAttachId(attachId); + return R.data(bladeFile); + } + + /** + * 上传文件并保存至附件表 + * + * @param fileName 存储桶对象名称 + * @param file 文件 + * @return ObjectStat + */ + @SneakyThrows + @PostMapping("/put-file-attach-by-name") + public R putFileAttach(@RequestParam String fileName, @RequestParam MultipartFile file) { + BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream()); + Long attachId = buildAttach(fileName, file.getSize(), bladeFile); + bladeFile.setAttachId(attachId); + return R.data(bladeFile); + } + + /** + * 构建附件表 + * + * @param fileName 文件名 + * @param fileSize 文件大小 + * @param bladeFile 对象存储文件 + * @return attachId + */ + private Long buildAttach(String fileName, Long fileSize, BladeFile bladeFile) { + String fileExtension = FileUtil.getFileExtension(fileName); + Attach attach = new Attach(); + attach.setDomainUrl(bladeFile.getDomain()); + attach.setLink(bladeFile.getLink()); + attach.setName(bladeFile.getName()); + attach.setOriginalName(bladeFile.getOriginalName()); + attach.setAttachSize(fileSize); + attach.setExtension(fileExtension); + attachService.save(attach); + return attach.getId(); + } + + /** + * 删除文件 + * + * @param fileName 存储桶对象名称 + * @return R + */ + @SneakyThrows + @PostMapping("/remove-file") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R removeFile(@RequestParam String fileName) { + ossBuilder.template().removeFile(fileName); + return R.success("操作成功"); + } + + /** + * 批量删除文件 + * + * @param fileNames 存储桶对象名称集合 + * @return R + */ + @SneakyThrows + @PostMapping("/remove-files") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R removeFiles(@RequestParam String fileNames) { + ossBuilder.template().removeFiles(Func.toStrList(fileNames)); + return R.success("操作成功"); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/endpoint/SmsEndpoint.java b/src/main/java/org/springblade/modules/resource/endpoint/SmsEndpoint.java new file mode 100644 index 0000000..50a850c --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/endpoint/SmsEndpoint.java @@ -0,0 +1,188 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.endpoint; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.SneakyThrows; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.sms.model.SmsCode; +import org.springblade.core.sms.model.SmsData; +import org.springblade.core.sms.model.SmsResponse; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.builder.SmsBuilder; +import org.springblade.modules.resource.utils.SmsUtil; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Map; + +import static org.springblade.modules.resource.utils.SmsUtil.*; + +/** + * 短信服务端点 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_RESOURCE_NAME + "/sms/endpoint") +@Tag(name = "短信服务端点", description = "短信服务端点") +public class SmsEndpoint { + + /** + * 短信服务构建类 + */ + private final SmsBuilder smsBuilder; + + //================================= 短信服务校验 ================================= + + /** + * 短信验证码发送 + * + * @param phone 手机号 + */ + @SneakyThrows + @PostMapping("/send-validate") + public R sendValidate(@RequestParam String phone) { + Map params = SmsUtil.getValidateParams(); + SmsCode smsCode = smsBuilder.template().sendValidate(new SmsData(params).setKey(PARAM_KEY), phone); + return smsCode.isSuccess() ? R.data(smsCode, SEND_SUCCESS) : R.fail(SEND_FAIL); + } + + /** + * 校验短信 + * + * @param smsCode 短信校验信息 + */ + @SneakyThrows + @PostMapping("/validate-message") + public R validateMessage(SmsCode smsCode) { + boolean validate = smsBuilder.template().validateMessage(smsCode); + return validate ? R.success(VALIDATE_SUCCESS) : R.fail(VALIDATE_FAIL); + } + + //========== 通用短信自定义发送(支持自定义params参数传递, 推荐用于测试, 不推荐用于生产环境) ========== + + /** + * 发送信息 + * + * @param code 资源编号 + * @param params 自定义短信参数 + * @param phones 手机号集合 + */ + @SneakyThrows + @PostMapping("/send-message") + public R sendMessage(@RequestParam String code, @RequestParam String params, @RequestParam String phones) { + SmsData smsData = new SmsData(JsonUtil.readMap(params, String.class, String.class)); + return send(code, smsData, phones); + } + + //========== 指定短信服务发送(可根据各种场景自定拓展定制, 损失灵活性增加安全性, 推荐用于生产环境) ========== + + /** + * 短信通知 + * + * @param phones 手机号集合 + */ + @SneakyThrows + @PostMapping("/send-notice") + public R sendNotice(@RequestParam String phones) { + Map params = new HashMap<>(3); + params.put("title", "通知标题"); + params.put("content", "通知内容"); + params.put("date", "通知时间"); + SmsData smsData = new SmsData(params); + return send(smsData, phones); + } + + /** + * 订单通知 + * + * @param phones 手机号集合 + */ + @SneakyThrows + @PostMapping("/send-order") + public R sendOrder(@RequestParam String phones) { + Map params = new HashMap<>(3); + params.put("orderNo", "订单编号"); + params.put("packageNo", "快递单号"); + params.put("user", "收件人"); + SmsData smsData = new SmsData(params); + return send(smsData, phones); + } + + /** + * 会议通知 + * + * @param phones 手机号集合 + */ + @SneakyThrows + @PostMapping("/send-meeting") + public R sendMeeting(@RequestParam String phones) { + Map params = new HashMap<>(2); + params.put("roomId", "会议室"); + params.put("topic", "会议主题"); + params.put("date", "会议时间"); + SmsData smsData = new SmsData(params); + return send(smsData, phones); + } + + //================================= 通用短信发送接口 ================================= + + /** + * 通用短信发送接口 + * + * @param smsData 短信内容 + * @param phones 手机号列表 + * @return 是否发送成功 + */ + private R send(SmsData smsData, String phones) { + SmsResponse response = smsBuilder.template().sendMessage(smsData, Func.toStrList(phones)); + return response.isSuccess() ? R.success(SEND_SUCCESS) : R.fail(SEND_FAIL); + } + + /** + * 通用短信发送接口 + * + * @param code 资源编号 + * @param smsData 短信内容 + * @param phones 手机号列表 + * @return 是否发送成功 + */ + private R send(String code, SmsData smsData, String phones) { + SmsResponse response = smsBuilder.template(code).sendMessage(smsData, Func.toStrList(phones)); + return response.isSuccess() ? R.success(SEND_SUCCESS) : R.fail(SEND_FAIL); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/mapper/AttachMapper.java b/src/main/java/org/springblade/modules/resource/mapper/AttachMapper.java new file mode 100644 index 0000000..8dbc51c --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/mapper/AttachMapper.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.mapper; + +import org.springblade.modules.resource.pojo.entity.Attach; +import org.springblade.modules.resource.pojo.vo.AttachVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + +/** + * 附件表 Mapper 接口 + * + * @author Chill + */ +public interface AttachMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param attach + * @return + */ + List selectAttachPage(IPage page, AttachVO attach); + +} diff --git a/src/main/java/org/springblade/modules/resource/mapper/AttachMapper.xml b/src/main/java/org/springblade/modules/resource/mapper/AttachMapper.xml new file mode 100644 index 0000000..2c6c3ff --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/mapper/AttachMapper.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/resource/mapper/OssMapper.java b/src/main/java/org/springblade/modules/resource/mapper/OssMapper.java new file mode 100644 index 0000000..e7fba58 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/mapper/OssMapper.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.pojo.vo.OssVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author BladeX + */ +public interface OssMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param oss + * @return + */ + List selectOssPage(IPage page, OssVO oss); + +} diff --git a/src/main/java/org/springblade/modules/resource/mapper/OssMapper.xml b/src/main/java/org/springblade/modules/resource/mapper/OssMapper.xml new file mode 100644 index 0000000..d16260b --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/mapper/OssMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/resource/mapper/SmsMapper.java b/src/main/java/org/springblade/modules/resource/mapper/SmsMapper.java new file mode 100644 index 0000000..9ef9ed4 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/mapper/SmsMapper.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.pojo.vo.SmsVO; + +import java.util.List; + +/** + * 短信配置表 Mapper 接口 + * + * @author BladeX + */ +public interface SmsMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param sms + * @return + */ + List selectSmsPage(IPage page, SmsVO sms); + +} diff --git a/src/main/java/org/springblade/modules/resource/mapper/SmsMapper.xml b/src/main/java/org/springblade/modules/resource/mapper/SmsMapper.xml new file mode 100644 index 0000000..568cb3c --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/mapper/SmsMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/resource/pojo/entity/Attach.java b/src/main/java/org/springblade/modules/resource/pojo/entity/Attach.java new file mode 100644 index 0000000..dd8003d --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/entity/Attach.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; + +/** + * 附件表实体类 + * + * @author Chill + */ +@Data +@TableName("blade_attach") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "附件表") +public class Attach extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 附件地址 + */ + @Schema(description = "附件地址") + private String link; + /** + * 附件域名 + */ + @Schema(description = "附件域名") + private String domainUrl; + /** + * 附件名称 + */ + @Schema(description = "附件名称") + private String name; + /** + * 附件原名 + */ + @Schema(description = "附件原名") + private String originalName; + /** + * 附件拓展名 + */ + @Schema(description = "附件拓展名") + private String extension; + /** + * 附件大小 + */ + @Schema(description = "附件大小") + private Long attachSize; + + +} diff --git a/src/main/java/org/springblade/modules/resource/pojo/entity/Oss.java b/src/main/java/org/springblade/modules/resource/pojo/entity/Oss.java new file mode 100644 index 0000000..2021ecb --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/entity/Oss.java @@ -0,0 +1,105 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; + +/** + * 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_oss") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "Oss对象") +public class Oss extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 所属分类 + */ + @Schema(description = "所属分类") + private Integer category; + + /** + * 资源编号 + */ + @Schema(description = "资源编号") + private String ossCode; + + /** + * 资源地址 + */ + @Schema(description = "资源地址") + private String endpoint; + + /** + * 外网资源地址 + */ + @Schema(description = "外网资源地址") + private String transformEndpoint; + /** + * accessKey + */ + @Schema(description = "accessKey") + private String accessKey; + /** + * secretKey + */ + @Schema(description = "secretKey") + private String secretKey; + /** + * 空间名 + */ + @Schema(description = "空间名") + private String bucketName; + /** + * 应用ID TencentCOS需要 + */ + @Schema(description = "应用ID") + private String appId; + /** + * 地域简称 TencentCOS需要 + */ + @Schema(description = "地域简称") + private String region; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/resource/pojo/entity/Sms.java b/src/main/java/org/springblade/modules/resource/pojo/entity/Sms.java new file mode 100644 index 0000000..e5124b3 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/entity/Sms.java @@ -0,0 +1,93 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; + +/** + * 短信配置表实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_sms") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "短信配置表") +public class Sms extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 资源编号 + */ + @Schema(description = "资源编号") + private String smsCode; + + /** + * 模板ID + */ + @Schema(description = "模板ID") + private String templateId; + /** + * 分类 + */ + @Schema(description = "分类") + private Integer category; + /** + * accessKey + */ + @Schema(description = "accessKey") + private String accessKey; + /** + * secretKey + */ + @Schema(description = "secretKey") + private String secretKey; + /** + * regionId + */ + @Schema(description = "regionId") + private String regionId; + /** + * 短信签名 + */ + @Schema(description = "短信签名") + private String signName; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/resource/pojo/enums/SmsCodeEnum.java b/src/main/java/org/springblade/modules/resource/pojo/enums/SmsCodeEnum.java new file mode 100644 index 0000000..ee3ec92 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/enums/SmsCodeEnum.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import org.springblade.core.tool.utils.StringPool; + +/** + * Sms资源编码枚举类 + * + * @author Chill + * @apiNote 该枚举类对应短信配置模块的资源编码,可根据业务需求自行拓展 + */ +@Getter +@AllArgsConstructor +public enum SmsCodeEnum { + + /** + * 默认编号 + */ + DEFAULT(StringPool.EMPTY, 1), + + /** + * 验证码编号 + */ + VALIDATE("qiniu-validate", 2), + + /** + * 通知公告编号 + */ + NOTICE("notice", 3), + + /** + * 下单通知编号 + */ + ORDER("order", 4), + + /** + * 会议通知编号 + */ + MEETING("meeting", 5), + ; + + final String name; + final int category; + +} diff --git a/src/main/java/org/springblade/modules/resource/pojo/vo/AttachVO.java b/src/main/java/org/springblade/modules/resource/pojo/vo/AttachVO.java new file mode 100644 index 0000000..46957ff --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/vo/AttachVO.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.resource.pojo.entity.Attach; + +import java.io.Serial; + +/** + * 附件表视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "附件表VO") +public class AttachVO extends Attach { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/resource/pojo/vo/OssVO.java b/src/main/java/org/springblade/modules/resource/pojo/vo/OssVO.java new file mode 100644 index 0000000..854db45 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/vo/OssVO.java @@ -0,0 +1,32 @@ +package org.springblade.modules.resource.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.resource.pojo.entity.Oss; + +import java.io.Serial; + +/** + * OssVO + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "对象存储表") +public class OssVO extends Oss { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 分类名 + */ + private String categoryName; + + /** + * 是否启用 + */ + private String statusName; + +} diff --git a/src/main/java/org/springblade/modules/resource/pojo/vo/SmsVO.java b/src/main/java/org/springblade/modules/resource/pojo/vo/SmsVO.java new file mode 100644 index 0000000..c653c11 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/pojo/vo/SmsVO.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.resource.pojo.entity.Sms; + +import java.io.Serial; + +/** + * 短信配置表视图实体类 + * + * @author BladeX + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "短信配置表") +public class SmsVO extends Sms { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 分类名 + */ + private String categoryName; + + /** + * 是否启用 + */ + private String statusName; + +} diff --git a/src/main/java/org/springblade/modules/resource/rule/context/OssContext.java b/src/main/java/org/springblade/modules/resource/rule/context/OssContext.java new file mode 100644 index 0000000..ee358ca --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/context/OssContext.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.context; + +import lombok.Data; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.modules.resource.pojo.entity.Oss; + +import java.util.Map; + +/** + * Oss上下文 + * + * @author Chill + */ +@Data +public class OssContext { + /** + * 是否有缓存 + */ + private Boolean isCached; + /** + * oss数据 + */ + private Oss oss; + /** + * oss规则 + */ + private OssRule ossRule; + /** + * oss接口 + */ + private OssTemplate ossTemplate; + /** + * oss配置 + */ + private OssProperties ossProperties; + /** + * OssTemplate配置缓存池 + */ + private Map templatePool; + /** + * oss配置缓存池 + */ + private Map ossPool; + + +} diff --git a/src/main/java/org/springblade/modules/resource/rule/context/SmsContext.java b/src/main/java/org/springblade/modules/resource/rule/context/SmsContext.java new file mode 100644 index 0000000..bee4805 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/context/SmsContext.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.context; + +import lombok.Data; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.modules.resource.pojo.entity.Sms; + +import java.util.Map; + +/** + * Sms上下文 + * + * @author Chill + */ +@Data +public class SmsContext { + /** + * 是否有缓存 + */ + private Boolean isCached; + /** + * sms数据 + */ + private Sms sms; + /** + * sms接口 + */ + private SmsTemplate smsTemplate; + /** + * sms配置 + */ + private SmsProperties smsProperties; + /** + * redis工具 + */ + private BladeRedis bladeRedis; + /** + * SmsTemplate配置缓存池 + */ + private Map templatePool; + /** + * sms配置缓存池 + */ + private Map smsPool; + + +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/AliOssRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/AliOssRule.java new file mode 100644 index 0000000..34a58b6 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/AliOssRule.java @@ -0,0 +1,85 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.aliyun.oss.ClientConfiguration; +import com.aliyun.oss.OSSClient; +import com.aliyun.oss.common.auth.CredentialsProvider; +import com.aliyun.oss.common.auth.DefaultCredentialProvider; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.AliossTemplate; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.pojo.entity.Oss; + +/** + * 阿里云存储构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "aliOssRule", name = "阿里云OSS构建") +public class AliOssRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssRule ossRule = contextBean.getOssRule(); + + // 创建配置类 + OssProperties ossProperties = new OssProperties(); + ossProperties.setEndpoint(oss.getEndpoint()); + ossProperties.setTransformEndpoint(oss.getTransformEndpoint()); + ossProperties.setAccessKey(oss.getAccessKey()); + ossProperties.setSecretKey(oss.getSecretKey()); + ossProperties.setBucketName(oss.getBucketName()); + // 创建ClientConfiguration + ClientConfiguration conf = new ClientConfiguration(); + // 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。 + conf.setMaxConnections(1024); + // 设置Socket层传输数据的超时时间,默认为50000毫秒。 + conf.setSocketTimeout(50000); + // 设置建立连接的超时时间,默认为50000毫秒。 + conf.setConnectionTimeout(50000); + // 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。 + conf.setConnectionRequestTimeout(1000); + // 设置连接空闲超时时间。超时则关闭连接,默认为60000毫秒。 + conf.setIdleConnectionTime(60000); + // 设置失败请求重试次数,默认为3次。 + conf.setMaxErrorRetry(5); + CredentialsProvider credentialsProvider = new DefaultCredentialProvider(ossProperties.getAccessKey(), ossProperties.getSecretKey()); + // 创建客户端 + OSSClient ossClient = new OSSClient(ossProperties.getEndpoint(), credentialsProvider, conf); + OssTemplate ossTemplate = new AliossTemplate(ossClient, ossProperties, ossRule); + + // 设置上下文 + contextBean.setOssTemplate(ossTemplate); + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/AmazonS3Rule.java b/src/main/java/org/springblade/modules/resource/rule/oss/AmazonS3Rule.java new file mode 100644 index 0000000..a9b7335 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/AmazonS3Rule.java @@ -0,0 +1,89 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.amazonaws.ClientConfiguration; +import com.amazonaws.auth.AWSCredentials; +import com.amazonaws.auth.AWSStaticCredentialsProvider; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.client.builder.AwsClientBuilder; +import com.amazonaws.regions.Regions; +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.AmazonS3ClientBuilder; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.S3Template; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.template.BladeS3Template; + +/** + * Amazon S3 云存储构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "amazonS3Rule", name = "amazonS3OSS构建") +public class AmazonS3Rule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssRule ossRule = contextBean.getOssRule(); + + // 创建配置类 + OssProperties ossProperties = new OssProperties(); + ossProperties.setEndpoint(oss.getEndpoint()); + ossProperties.setTransformEndpoint(oss.getTransformEndpoint()); + ossProperties.setAccessKey(oss.getAccessKey()); + ossProperties.setSecretKey(oss.getSecretKey()); + ossProperties.setBucketName(oss.getBucketName()); + ossProperties.setRegion(oss.getRegion()); + // 创建客户端 + AWSCredentials credentials = new BasicAWSCredentials(ossProperties.getAccessKey(), ossProperties.getSecretKey()); + ClientConfiguration clientConfiguration = new ClientConfiguration(); + clientConfiguration.setSignerOverride("AWSS3V4SignerType"); + AmazonS3 amazonS3 = AmazonS3ClientBuilder + .standard() + .withEndpointConfiguration(new AwsClientBuilder. + EndpointConfiguration(ossProperties.getEndpoint(), + StringUtil.isBlank(ossProperties.getRegion()) ? Regions.DEFAULT_REGION.name() : Regions.fromName(ossProperties.getRegion()).getName())) + .withPathStyleAccessEnabled(true) + .withClientConfiguration(clientConfiguration) + .withCredentials(new AWSStaticCredentialsProvider(credentials)) + .build(); + BladeS3Template ossTemplate = new BladeS3Template(amazonS3, ossRule, ossProperties); + + // 设置上下文 + contextBean.setOssTemplate(ossTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/FinallyOssRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/FinallyOssRule.java new file mode 100644 index 0000000..ca2d758 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/FinallyOssRule.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; + +import java.util.Map; + +/** + * Oss后置处理 + * + * @author Chill + */ +@LiteflowComponent(id = "finallyOssRule", name = "OSS构建后置处理") +public class FinallyOssRule extends NodeComponent { + @Override + public void process() throws Exception { + String tenantId = this.getRequestData(); + OssContext contextBean = this.getContextBean(OssContext.class); + Map ossPool = contextBean.getOssPool(); + Map templatePool = contextBean.getTemplatePool(); + + if (contextBean.getIsCached()) { + OssTemplate template = templatePool.get(tenantId); + contextBean.setOssTemplate(template); + } else { + Oss oss = contextBean.getOss(); + OssTemplate template = contextBean.getOssTemplate(); + if (Func.hasEmpty(template, oss)) { + throw new ServiceException("OSS接口读取失败!"); + } else { + templatePool.put(tenantId, template); + ossPool.put(tenantId, oss); + } + } + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/HuaweiObsRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/HuaweiObsRule.java new file mode 100644 index 0000000..d3743e1 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/HuaweiObsRule.java @@ -0,0 +1,83 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.obs.services.ObsClient; +import com.obs.services.ObsConfiguration; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.HuaweiObsTemplate; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; + +/** + * 华为云存储构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "huaweiObsRule", name = "华为OSS构建") +public class HuaweiObsRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssRule ossRule = contextBean.getOssRule(); + + // 创建配置类 + OssProperties ossProperties = new OssProperties(); + ossProperties.setEndpoint(oss.getEndpoint()); + ossProperties.setTransformEndpoint(oss.getTransformEndpoint()); + ossProperties.setAccessKey(oss.getAccessKey()); + ossProperties.setSecretKey(oss.getSecretKey()); + ossProperties.setBucketName(oss.getBucketName()); + // 使用可定制各参数的配置类(ObsConfiguration)创建OBS客户端(ObsClient),创建完成后不支持再次修改参数 + ObsConfiguration conf = new ObsConfiguration(); + conf.setEndPoint(ossProperties.getEndpoint()); + // 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。 + conf.setMaxConnections(1024); + // 设置Socket层传输数据的超时时间,默认为50000毫秒。 + conf.setSocketTimeout(50000); + // 设置建立连接的超时时间,默认为50000毫秒。 + conf.setConnectionTimeout(50000); + // 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。 + conf.setConnectionTimeout(1000); + // 设置连接空闲超时时间。超时则关闭连接,默认为60000毫秒。 + conf.setIdleConnectionTime(60000); + // 设置失败请求重试次数,默认为3次。 + conf.setMaxErrorRetry(5); + // 创建客户端 + ObsClient obsClient = new ObsClient(ossProperties.getAccessKey(), ossProperties.getSecretKey(), conf); + OssTemplate ossTemplate = new HuaweiObsTemplate(obsClient, ossProperties, ossRule); + + // 设置上下文 + contextBean.setOssTemplate(ossTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/MinioRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/MinioRule.java new file mode 100644 index 0000000..ed45453 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/MinioRule.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import io.minio.MinioClient; +import org.springblade.core.oss.MinioTemplate; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; + +/** + * Minio云存储构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "minioRule", name = "minioOSS构建") +public class MinioRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssRule ossRule = contextBean.getOssRule(); + + // 创建配置类 + OssProperties ossProperties = new OssProperties(); + ossProperties.setEndpoint(oss.getEndpoint()); + ossProperties.setTransformEndpoint(oss.getTransformEndpoint()); + ossProperties.setAccessKey(oss.getAccessKey()); + ossProperties.setSecretKey(oss.getSecretKey()); + ossProperties.setBucketName(oss.getBucketName()); + // 创建客户端 + MinioClient minioClient = MinioClient.builder() + .endpoint(oss.getEndpoint()) + .credentials(oss.getAccessKey(), oss.getSecretKey()) + .build(); + OssTemplate ossTemplate = new MinioTemplate(minioClient, ossRule, ossProperties); + + // 设置上下文 + contextBean.setOssTemplate(ossTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/OssBuildRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/OssBuildRule.java new file mode 100644 index 0000000..7cd9def --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/OssBuildRule.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.oss.enums.OssEnum; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.pojo.entity.Oss; + +/** + * Oss构建判断 + * + * @author Chill + */ +@LiteflowComponent(id = "ossBuildRule", name = "OSS构建条件判断") +public class OssBuildRule extends NodeSwitchComponent { + + @Override + public String processSwitch() { + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + if (oss.getCategory() == OssEnum.MINIO.getCategory()) { + return "minioRule"; + } else if (oss.getCategory() == OssEnum.QINIU.getCategory()) { + return "qiniuOssRule"; + } else if (oss.getCategory() == OssEnum.ALI.getCategory()) { + return "aliOssRule"; + } else if (oss.getCategory() == OssEnum.TENCENT.getCategory()) { + return "tencentCosRule"; + } else if (oss.getCategory() == OssEnum.HUAWEI.getCategory()) { + return "huaweiObsRule"; + } else if (oss.getCategory() == OssEnum.AMAZONS3.getCategory()) { + return "amazonS3Rule"; + } + throw new ServiceException("未找到OSS配置"); + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/OssCacheRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/OssCacheRule.java new file mode 100644 index 0000000..29e8f93 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/OssCacheRule.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springblade.modules.resource.rule.context.OssContext; + +/** + * Oss缓存判断 + * + * @author Chill + */ +@LiteflowComponent(id = "ossCacheRule", name = "OSS缓存判断") +public class OssCacheRule extends NodeSwitchComponent { + + @Override + public String processSwitch() { + OssContext contextBean = this.getContextBean(OssContext.class); + // 若判断配置已缓存则直接读取,否则进入下一步构建新数据 + if (contextBean.getIsCached()) { + return "ossReadRule"; + } else { + return "ossNewRule"; + } + } + +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/OssDataRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/OssDataRule.java new file mode 100644 index 0000000..70a99c9 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/OssDataRule.java @@ -0,0 +1,54 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.BladeOssRule; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.pojo.entity.Oss; + +/** + * OSS数据创建 + * + * @author Chill + */ +@LiteflowComponent(id = "ossDataRule", name = "OSS数据创建") +public class OssDataRule extends NodeComponent { + @Override + public void process() throws Exception { + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssProperties ossProperties = contextBean.getOssProperties(); + // 若采用默认设置则开启多租户模式, 若是用户自定义oss则不开启 + if (oss.getEndpoint().equals(ossProperties.getEndpoint()) && oss.getAccessKey().equals(ossProperties.getAccessKey()) && ossProperties.getTenantMode()) { + contextBean.setOssRule(new BladeOssRule(Boolean.TRUE)); + } else { + contextBean.setOssRule(new BladeOssRule(Boolean.FALSE)); + } + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/OssReadRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/OssReadRule.java new file mode 100644 index 0000000..01336e7 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/OssReadRule.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.pojo.entity.Oss; + +import java.util.Map; + +/** + * OSS缓存读取校验 + * + * @author Chill + */ +@LiteflowComponent(id = "ossReadRule", name = "OSS缓存读取校验") +public class OssReadRule extends NodeComponent { + @Override + public void process() throws Exception { + String tenantId = this.getRequestData(); + OssContext contextBean = this.getContextBean(OssContext.class); + Map ossPool = contextBean.getOssPool(); + Map templatePool = contextBean.getTemplatePool(); + Oss ossCached = ossPool.get(tenantId); + OssTemplate template = templatePool.get(tenantId); + if (Func.hasEmpty(template, ossCached)) { + throw new ServiceException("OSS缓存读取失败!"); + } + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/OssTemplateRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/OssTemplateRule.java new file mode 100644 index 0000000..e6417bf --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/OssTemplateRule.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.rule.context.OssContext; + +/** + * OSS接口读取校验 + * + * @author Chill + */ +@LiteflowComponent(id = "ossTemplateRule", name = "OSS接口读取校验") +public class OssTemplateRule extends NodeComponent { + @Override + public void process() throws Exception { + OssContext contextBean = this.getContextBean(OssContext.class); + OssTemplate ossTemplate = contextBean.getOssTemplate(); + + if (Func.isEmpty(ossTemplate)) { + throw new ServiceException("OSS接口读取失败!"); + } + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/PreOssRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/PreOssRule.java new file mode 100644 index 0000000..ed52895 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/PreOssRule.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.rule.context.OssContext; +import org.springblade.modules.resource.pojo.entity.Oss; + +import java.util.Map; + +/** + * Oss前置处理 + * + * @author Chill + */ +@LiteflowComponent(id = "preOssRule", name = "OSS构建前置处理") +public class PreOssRule extends NodeComponent { + @Override + public void process() throws Exception { + String tenantId = this.getRequestData(); + OssContext contextBean = this.getContextBean(OssContext.class); + Map ossPool = contextBean.getOssPool(); + Map templatePool = contextBean.getTemplatePool(); + Oss oss = contextBean.getOss(); + Oss ossCached = ossPool.get(tenantId); + OssTemplate template = templatePool.get(tenantId); + // 若为空或者不一致,则重新加载 + if (Func.hasEmpty(template, ossCached) + || !Func.equalsSafe(oss.getEndpoint(), ossCached.getEndpoint()) + || !Func.equalsSafe(oss.getTransformEndpoint(), ossCached.getTransformEndpoint()) + || !Func.equalsSafe(oss.getAccessKey(), ossCached.getAccessKey())) { + contextBean.setIsCached(Boolean.FALSE); + } else { + contextBean.setIsCached(Boolean.TRUE); + } + } + +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/QiniuOssRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/QiniuOssRule.java new file mode 100644 index 0000000..4f1797f --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/QiniuOssRule.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.qiniu.storage.BucketManager; +import com.qiniu.storage.Configuration; +import com.qiniu.storage.Region; +import com.qiniu.storage.UploadManager; +import com.qiniu.util.Auth; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.QiniuTemplate; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; + +/** + * 七牛云存储构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "qiniuOssRule", name = "七牛OSS构建") +public class QiniuOssRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssRule ossRule = contextBean.getOssRule(); + + + // 创建配置类 + OssProperties ossProperties = new OssProperties(); + ossProperties.setEndpoint(oss.getEndpoint()); + ossProperties.setTransformEndpoint(oss.getTransformEndpoint()); + ossProperties.setAccessKey(oss.getAccessKey()); + ossProperties.setSecretKey(oss.getSecretKey()); + ossProperties.setBucketName(oss.getBucketName()); + // 创建客户端 + Configuration cfg = new Configuration(Region.autoRegion()); + Auth auth = Auth.create(oss.getAccessKey(), oss.getSecretKey()); + UploadManager uploadManager = new UploadManager(cfg); + BucketManager bucketManager = new BucketManager(auth, cfg); + OssTemplate ossTemplate = new QiniuTemplate(auth, uploadManager, bucketManager, ossProperties, ossRule); + + // 设置上下文 + contextBean.setOssTemplate(ossTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/oss/TencentCosRule.java b/src/main/java/org/springblade/modules/resource/rule/oss/TencentCosRule.java new file mode 100644 index 0000000..c9f68ac --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/oss/TencentCosRule.java @@ -0,0 +1,87 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.oss; + +import com.qcloud.cos.COSClient; +import com.qcloud.cos.ClientConfig; +import com.qcloud.cos.auth.BasicCOSCredentials; +import com.qcloud.cos.auth.COSCredentials; +import com.qcloud.cos.region.Region; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.TencentCosTemplate; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.rule.context.OssContext; + +/** + * 腾讯云存储构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "tencentCosRule", name = "腾讯云OSS构建") +public class TencentCosRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + OssContext contextBean = this.getContextBean(OssContext.class); + Oss oss = contextBean.getOss(); + OssRule ossRule = contextBean.getOssRule(); + + // 创建配置类 + OssProperties ossProperties = new OssProperties(); + ossProperties.setEndpoint(oss.getEndpoint()); + ossProperties.setTransformEndpoint(oss.getTransformEndpoint()); + ossProperties.setAccessKey(oss.getAccessKey()); + ossProperties.setSecretKey(oss.getSecretKey()); + ossProperties.setBucketName(oss.getBucketName()); + ossProperties.setAppId(oss.getAppId()); + ossProperties.setRegion(oss.getRegion()); + // 初始化用户身份信息(secretId, secretKey) + COSCredentials credentials = new BasicCOSCredentials(ossProperties.getAccessKey(), ossProperties.getSecretKey()); + // 设置 bucket 的区域, COS 地域的简称请参照 https://cloud.tencent.com/document/product/436/6224 + Region region = new Region(ossProperties.getRegion()); + // clientConfig 中包含了设置 region, https(默认 http), 超时, 代理等 set 方法, 使用可参见源码或者常见问题 Java SDK 部分。 + ClientConfig clientConfig = new ClientConfig(region); + // 设置OSSClient允许打开的最大HTTP连接数,默认为1024个。 + clientConfig.setMaxConnectionsCount(1024); + // 设置Socket层传输数据的超时时间,默认为50000毫秒。 + clientConfig.setSocketTimeout(50000); + // 设置建立连接的超时时间,默认为50000毫秒。 + clientConfig.setConnectionTimeout(50000); + // 设置从连接池中获取连接的超时时间(单位:毫秒),默认不超时。 + clientConfig.setConnectionRequestTimeout(1000); + COSClient cosClient = new COSClient(credentials, clientConfig); + OssTemplate ossTemplate = new TencentCosTemplate(cosClient, ossProperties, ossRule); + + // 设置上下文 + contextBean.setOssTemplate(ossTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/AliSmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/AliSmsRule.java new file mode 100644 index 0000000..701b80b --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/AliSmsRule.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.aliyuncs.DefaultAcsClient; +import com.aliyuncs.IAcsClient; +import com.aliyuncs.profile.DefaultProfile; +import com.aliyuncs.profile.IClientProfile; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.AliSmsTemplate; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +/** + * 阿里云短信构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "aliSmsRule", name = "阿里SMS构建") +public class AliSmsRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + SmsContext contextBean = this.getContextBean(SmsContext.class); + Sms sms = contextBean.getSms(); + BladeRedis bladeRedis = contextBean.getBladeRedis(); + + SmsProperties smsProperties = new SmsProperties(); + smsProperties.setTemplateId(sms.getTemplateId()); + smsProperties.setAccessKey(sms.getAccessKey()); + smsProperties.setSecretKey(sms.getSecretKey()); + smsProperties.setRegionId(sms.getRegionId()); + smsProperties.setSignName(sms.getSignName()); + IClientProfile profile = DefaultProfile.getProfile(smsProperties.getRegionId(), smsProperties.getAccessKey(), smsProperties.getSecretKey()); + IAcsClient acsClient = new DefaultAcsClient(profile); + SmsTemplate smsTemplate = new AliSmsTemplate(smsProperties, acsClient, bladeRedis); + + + // 设置上下文 + contextBean.setSmsTemplate(smsTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/CacheSmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/CacheSmsRule.java new file mode 100644 index 0000000..9472756 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/CacheSmsRule.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +import java.util.Map; + +/** + * 缓存短信构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "cacheSmsRule", name = "缓存SMS构建") +public class CacheSmsRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + String tenantId = this.getRequestData(); + SmsContext contextBean = this.getContextBean(SmsContext.class); + + Map smsPool = contextBean.getSmsPool(); + Map templatePool = contextBean.getTemplatePool(); + Sms smsCached = smsPool.get(tenantId); + SmsTemplate template = templatePool.get(tenantId); + if (Func.hasEmpty(template, smsCached)) { + throw new ServiceException("SMS缓存读取失败!"); + } + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/FinallySmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/FinallySmsRule.java new file mode 100644 index 0000000..a2b5512 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/FinallySmsRule.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +import java.util.Map; + +/** + * Sms后置处理 + * + * @author Chill + */ +@LiteflowComponent(id = "finallySmsRule", name = "SMS构建后置处理") +public class FinallySmsRule extends NodeComponent { + @Override + public void process() throws Exception { + String tenantId = this.getRequestData(); + SmsContext contextBean = this.getContextBean(SmsContext.class); + Map smsPool = contextBean.getSmsPool(); + Map templatePool = contextBean.getTemplatePool(); + + if (contextBean.getIsCached()) { + SmsTemplate template = templatePool.get(tenantId); + contextBean.setSmsTemplate(template); + } else { + Sms sms = contextBean.getSms(); + SmsTemplate template = contextBean.getSmsTemplate(); + if (Func.hasEmpty(template, sms)) { + throw new ServiceException("SMS接口读取失败!"); + } else { + templatePool.put(tenantId, template); + smsPool.put(tenantId, sms); + } + } + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/PreSmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/PreSmsRule.java new file mode 100644 index 0000000..1ffc7f5 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/PreSmsRule.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +import java.util.Map; + +/** + * Sms前置处理 + * + * @author Chill + */ +@LiteflowComponent(id = "preSmsRule", name = "SMS构建前置处理") +public class PreSmsRule extends NodeComponent { + @Override + public void process() throws Exception { + String tenantId = this.getRequestData(); + SmsContext contextBean = this.getContextBean(SmsContext.class); + Map smsPool = contextBean.getSmsPool(); + Map templatePool = contextBean.getTemplatePool(); + Sms sms = contextBean.getSms(); + Sms smsCached = smsPool.get(tenantId); + SmsTemplate template = templatePool.get(tenantId); + // 若为空或者不一致,则重新加载 + if (Func.hasEmpty(template, smsCached) || !sms.getTemplateId().equals(smsCached.getTemplateId()) || !sms.getAccessKey().equals(smsCached.getAccessKey())) { + contextBean.setIsCached(Boolean.FALSE); + } else { + contextBean.setIsCached(Boolean.TRUE); + } + } + +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/QiniuSmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/QiniuSmsRule.java new file mode 100644 index 0000000..1ed21b4 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/QiniuSmsRule.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.qiniu.sms.SmsManager; +import com.qiniu.util.Auth; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.QiniuSmsTemplate; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +/** + * 七牛云短信构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "qiniuSmsRule", name = "七牛SMS构建") +public class QiniuSmsRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + SmsContext contextBean = this.getContextBean(SmsContext.class); + Sms sms = contextBean.getSms(); + BladeRedis bladeRedis = contextBean.getBladeRedis(); + + SmsProperties smsProperties = new SmsProperties(); + smsProperties.setTemplateId(sms.getTemplateId()); + smsProperties.setAccessKey(sms.getAccessKey()); + smsProperties.setSecretKey(sms.getSecretKey()); + smsProperties.setSignName(sms.getSignName()); + Auth auth = Auth.create(smsProperties.getAccessKey(), smsProperties.getSecretKey()); + SmsManager smsManager = new SmsManager(auth); + SmsTemplate smsTemplate = new QiniuSmsTemplate(smsProperties, smsManager, bladeRedis); + + // 设置上下文 + contextBean.setSmsTemplate(smsTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/SmsBuildRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/SmsBuildRule.java new file mode 100644 index 0000000..8af8fb0 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/SmsBuildRule.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.sms.enums.SmsEnum; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +/** + * Sms构建判断 + * + * @author Chill + */ +@LiteflowComponent(id = "smsBuildRule", name = "SMS构建条件判断") +public class SmsBuildRule extends NodeSwitchComponent { + + @Override + public String processSwitch() { + SmsContext contextBean = this.getContextBean(SmsContext.class); + Sms sms = contextBean.getSms(); + + if (contextBean.getIsCached()) { + return "cacheSmsRule"; + } else if (sms.getCategory() == SmsEnum.YUNPIAN.getCategory()) { + return "yunpianSmsRule"; + } else if (sms.getCategory() == SmsEnum.QINIU.getCategory()) { + return "qiniuSmsRule"; + } else if (sms.getCategory() == SmsEnum.ALI.getCategory()) { + return "aliSmsRule"; + } else if (sms.getCategory() == SmsEnum.TENCENT.getCategory()) { + return "tencentSmsRule"; + } + + throw new ServiceException("未找到SMS配置"); + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/TencentSmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/TencentSmsRule.java new file mode 100644 index 0000000..0b1e7d4 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/TencentSmsRule.java @@ -0,0 +1,66 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.github.qcloudsms.SmsMultiSender; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.sms.TencentSmsTemplate; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +/** + * 腾讯云短信构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "tencentSmsRule", name = "腾讯SMS构建") +public class TencentSmsRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + SmsContext contextBean = this.getContextBean(SmsContext.class); + Sms sms = contextBean.getSms(); + BladeRedis bladeRedis = contextBean.getBladeRedis(); + + SmsProperties smsProperties = new SmsProperties(); + smsProperties.setTemplateId(sms.getTemplateId()); + smsProperties.setAccessKey(sms.getAccessKey()); + smsProperties.setSecretKey(sms.getSecretKey()); + smsProperties.setSignName(sms.getSignName()); + SmsMultiSender smsSender = new SmsMultiSender(Func.toInt(smsProperties.getAccessKey()), sms.getSecretKey()); + SmsTemplate smsTemplate = new TencentSmsTemplate(smsProperties, smsSender, bladeRedis); + + // 设置上下文 + contextBean.setSmsTemplate(smsTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/rule/sms/YunpianSmsRule.java b/src/main/java/org/springblade/modules/resource/rule/sms/YunpianSmsRule.java new file mode 100644 index 0000000..2997c67 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/rule/sms/YunpianSmsRule.java @@ -0,0 +1,64 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.rule.sms; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import com.yunpian.sdk.YunpianClient; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.sms.SmsTemplate; +import org.springblade.core.sms.YunpianSmsTemplate; +import org.springblade.core.sms.props.SmsProperties; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.rule.context.SmsContext; + +/** + * 云片短信构建类 + * + * @author Chill + */ +@LiteflowComponent(id = "yunpianSmsRule", name = "云片SMS构建") +public class YunpianSmsRule extends NodeComponent { + + @Override + public void process() throws Exception { + // 获取上下文 + SmsContext contextBean = this.getContextBean(SmsContext.class); + Sms sms = contextBean.getSms(); + BladeRedis bladeRedis = contextBean.getBladeRedis(); + + SmsProperties smsProperties = new SmsProperties(); + smsProperties.setTemplateId(sms.getTemplateId()); + smsProperties.setAccessKey(sms.getAccessKey()); + smsProperties.setSignName(sms.getSignName()); + YunpianClient client = new YunpianClient(smsProperties.getAccessKey()).init(); + SmsTemplate smsTemplate = new YunpianSmsTemplate(smsProperties, client, bladeRedis); + + // 设置上下文 + contextBean.setSmsTemplate(smsTemplate); + + } +} diff --git a/src/main/java/org/springblade/modules/resource/service/IAttachService.java b/src/main/java/org/springblade/modules/resource/service/IAttachService.java new file mode 100644 index 0000000..3136d36 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/service/IAttachService.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.service; + +import org.springblade.modules.resource.pojo.entity.Attach; +import org.springblade.modules.resource.pojo.vo.AttachVO; +import org.springblade.core.mp.base.BaseService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * 附件表 服务类 + * + * @author Chill + */ +public interface IAttachService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param attach + * @return + */ + IPage selectAttachPage(IPage page, AttachVO attach); + +} diff --git a/src/main/java/org/springblade/modules/resource/service/IOssService.java b/src/main/java/org/springblade/modules/resource/service/IOssService.java new file mode 100644 index 0000000..6bd6411 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/service/IOssService.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.pojo.vo.OssVO; + +/** + * 服务类 + * + * @author BladeX + */ +public interface IOssService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param oss + * @return + */ + IPage selectOssPage(IPage page, OssVO oss); + + /** + * 提交oss信息 + * + * @param oss + * @return + */ + boolean submit(Oss oss); + + /** + * 启动配置 + * + * @param id + * @return + */ + boolean enable(Long id); + +} diff --git a/src/main/java/org/springblade/modules/resource/service/ISmsService.java b/src/main/java/org/springblade/modules/resource/service/ISmsService.java new file mode 100644 index 0000000..5719956 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/service/ISmsService.java @@ -0,0 +1,65 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.pojo.vo.SmsVO; + +/** + * 短信配置表 服务类 + * + * @author BladeX + */ +public interface ISmsService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param sms + * @return + */ + IPage selectSmsPage(IPage page, SmsVO sms); + + /** + * 提交oss信息 + * + * @param oss + * @return + */ + boolean submit(Sms oss); + + /** + * 启动配置 + * + * @param id + * @return + */ + boolean enable(Long id); + +} diff --git a/src/main/java/org/springblade/modules/resource/service/impl/AttachServiceImpl.java b/src/main/java/org/springblade/modules/resource/service/impl/AttachServiceImpl.java new file mode 100644 index 0000000..4846b18 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/service/impl/AttachServiceImpl.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.service.impl; + +import org.springblade.modules.resource.pojo.entity.Attach; +import org.springblade.modules.resource.pojo.vo.AttachVO; +import org.springblade.modules.resource.mapper.AttachMapper; +import org.springblade.modules.resource.service.IAttachService; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.core.metadata.IPage; + +/** + * 附件表 服务实现类 + * + * @author Chill + */ +@Service +public class AttachServiceImpl extends BaseServiceImpl implements IAttachService { + + @Override + public IPage selectAttachPage(IPage page, AttachVO attach) { + return page.setRecords(baseMapper.selectAttachPage(page, attach)); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/service/impl/OssServiceImpl.java b/src/main/java/org/springblade/modules/resource/service/impl/OssServiceImpl.java new file mode 100644 index 0000000..e36a949 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/service/impl/OssServiceImpl.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.pojo.vo.OssVO; +import org.springblade.modules.resource.mapper.OssMapper; +import org.springblade.modules.resource.service.IOssService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 服务实现类 + * + * @author BladeX + */ +@Service +public class OssServiceImpl extends BaseServiceImpl implements IOssService { + + @Override + public IPage selectOssPage(IPage page, OssVO oss) { + return page.setRecords(baseMapper.selectOssPage(page, oss)); + } + + @Override + public boolean submit(Oss oss) { + LambdaQueryWrapper lqw = Wrappers.query().lambda() + .eq(Oss::getOssCode, oss.getOssCode()).eq(Oss::getTenantId, AuthUtil.getTenantId()); + Long cnt = baseMapper.selectCount(Func.isEmpty(oss.getId()) ? lqw : lqw.notIn(Oss::getId, oss.getId())); + if (cnt > 0L) { + throw new ServiceException("当前资源编号已存在!"); + } + return this.saveOrUpdate(oss); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean enable(Long id) { + // 先禁用 + boolean temp1 = this.update(Wrappers.update().lambda().set(Oss::getStatus, 1)); + // 在启用 + boolean temp2 = this.update(Wrappers.update().lambda().set(Oss::getStatus, 2).eq(Oss::getId, id)); + return temp1 && temp2; + } + +} diff --git a/src/main/java/org/springblade/modules/resource/service/impl/SmsServiceImpl.java b/src/main/java/org/springblade/modules/resource/service/impl/SmsServiceImpl.java new file mode 100644 index 0000000..efc0e98 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/service/impl/SmsServiceImpl.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.mapper.SmsMapper; +import org.springblade.modules.resource.service.ISmsService; +import org.springblade.modules.resource.pojo.vo.SmsVO; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * 短信配置表 服务实现类 + * + * @author BladeX + */ +@Service +public class SmsServiceImpl extends BaseServiceImpl implements ISmsService { + + @Override + public IPage selectSmsPage(IPage page, SmsVO sms) { + return page.setRecords(baseMapper.selectSmsPage(page, sms)); + } + + @Override + public boolean submit(Sms sms) { + LambdaQueryWrapper lqw = Wrappers.query().lambda() + .eq(Sms::getSmsCode, sms.getSmsCode()).eq(Sms::getTenantId, AuthUtil.getTenantId()); + Long cnt = baseMapper.selectCount(Func.isEmpty(sms.getId()) ? lqw : lqw.notIn(Sms::getId, sms.getId())); + if (cnt > 0L) { + throw new ServiceException("当前资源编号已存在!"); + } + return this.saveOrUpdate(sms); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean enable(Long id) { + // 先禁用 + boolean temp1 = this.update(Wrappers.update().lambda().set(Sms::getStatus, 1)); + // 在启用 + boolean temp2 = this.update(Wrappers.update().lambda().set(Sms::getStatus, 2).eq(Sms::getId, id)); + return temp1 && temp2; + } + +} diff --git a/src/main/java/org/springblade/modules/resource/template/BladeS3Template.java b/src/main/java/org/springblade/modules/resource/template/BladeS3Template.java new file mode 100644 index 0000000..ffa6f99 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/template/BladeS3Template.java @@ -0,0 +1,309 @@ +package org.springblade.modules.resource.template; + +import com.amazonaws.services.s3.AmazonS3; +import com.amazonaws.services.s3.model.*; +import org.springblade.core.oss.OssTemplate; +import org.springblade.core.oss.enums.PolicyType; +import org.springblade.core.oss.model.BladeFile; +import org.springblade.core.oss.model.OssFile; +import org.springblade.core.oss.props.OssProperties; +import org.springblade.core.oss.rule.OssRule; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.io.InputStream; +import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +public class BladeS3Template implements OssTemplate { + + private final AmazonS3 client; + private final OssRule ossRule; + private final OssProperties ossProperties; + + public BladeS3Template(AmazonS3 client, OssRule ossRule, OssProperties ossProperties) { + this.client = client; + this.ossRule = ossRule; + this.ossProperties = ossProperties; + } + + public void makeBucket(String bucketName) { + if (!this.client.doesBucketExistV2(this.getBucketName(bucketName))) { + this.client.createBucket(this.getBucketName(bucketName)); + this.client.setBucketPolicy(new SetBucketPolicyRequest(this.getBucketName(bucketName), getPolicyType(this.getBucketName(bucketName), PolicyType.READ))); + } + + } + + public Bucket getBucket() { + try { + return this.getBucket(this.getBucketName()); + } catch (Throwable var2) { + throw var2; + } + } + + public Bucket getBucket(String bucketName) { + try { + Optional bucketOptional = this.client.listBuckets().stream().filter((bucket) -> { + return bucket.getName().equals(this.getBucketName(bucketName)); + }).findFirst(); + return (Bucket)bucketOptional.orElse((Bucket) null); + } catch (Throwable var3) { + throw var3; + } + } + + public List listBuckets() { + try { + return this.client.listBuckets(); + } catch (Throwable var2) { + throw var2; + } + } + + public void removeBucket(String bucketName) { + this.client.deleteBucket(new DeleteBucketRequest(this.getBucketName(bucketName))); + } + + public boolean bucketExists(String bucketName) { + return this.client.doesBucketExistV2(this.getBucketName(bucketName)); + } + + public void copyFile(String bucketName, String fileName, String destBucketName) { + this.copyFile(bucketName, fileName, destBucketName, fileName); + } + + public void copyFile(String bucketName, String fileName, String destBucketName, String destFileName) { + this.client.copyObject(new CopyObjectRequest(this.getBucketName(bucketName), fileName, this.getBucketName(destBucketName), destFileName)); + } + + public OssFile statFile(String fileName) { + return this.statFile(this.ossProperties.getBucketName(), fileName); + } + + public OssFile statFile(String bucketName, String fileName) { + S3Object stat = this.client.getObject(new GetObjectRequest(this.getBucketName(bucketName), fileName)); + OssFile ossFile = new OssFile(); + ossFile.setName(Func.isEmpty(stat.getKey()) ? fileName : stat.getKey()); + ossFile.setLink(this.fileLink(ossFile.getName())); + ossFile.setHash(String.valueOf(stat.hashCode())); + ossFile.setLength(stat.getObjectMetadata().getContentLength()); + ossFile.setPutTime(stat.getObjectMetadata().getLastModified()); + ossFile.setContentType(stat.getObjectMetadata().getContentType()); + return ossFile; + } + + public InputStream statFileStream(String fileName) { + return this.statFileStream(this.getBucketName(), fileName); + } + + public InputStream statFileStream(String bucketName, String fileName) { + return this.client.getObject(new GetObjectRequest(this.getBucketName(bucketName), fileName)).getObjectContent(); + } + + public String filePath(String fileName) { + return this.getBucketName().concat("/").concat(fileName); + } + + public String filePath(String bucketName, String fileName) { + return this.getBucketName(bucketName).concat("/").concat(fileName); + } + + public String fileLink(String fileName) { + try { + return this.getEndpoint().concat("/").concat(this.getBucketName()).concat("/").concat(fileName); + } catch (Throwable var3) { + throw var3; + } + } + + public String fileLink(String bucketName, String fileName) { + try { + return this.getEndpoint().concat("/").concat(this.getBucketName(bucketName)).concat("/").concat(fileName); + } catch (Throwable var4) { + throw var4; + } + } + + public BladeFile putFile(MultipartFile file) { + try { + return this.putFile(this.ossProperties.getBucketName(), file.getOriginalFilename(), file); + } catch (Throwable var3) { + throw var3; + } + } + + public BladeFile putFile(String fileName, MultipartFile file) { + try { + return this.putFile(this.ossProperties.getBucketName(), fileName, file); + } catch (Throwable var4) { + throw var4; + } + } + + public BladeFile putFile(String bucketName, String fileName, MultipartFile file) { + try { + return this.putFile(bucketName, file.getOriginalFilename(), file.getInputStream()); + } catch (Throwable var5) { + try { + throw var5; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } + + public BladeFile putFile(String fileName, InputStream stream) { + return this.putFile(this.ossProperties.getBucketName(), fileName, stream); + } + + public BladeFile putFile(String bucketName, String fileName, InputStream stream) { + return this.putFile(bucketName, fileName, stream, "application/octet-stream"); + } + + public BladeFile putFile(String bucketName, String fileName, InputStream stream, String contentType) { + try { + this.makeBucket(bucketName); + String originalName = fileName; + ObjectMetadata objectMetadata = new ObjectMetadata(); + objectMetadata.setContentType(contentType); + objectMetadata.setCacheControl("public, max-age=604800"); + fileName = this.getFileName(fileName); + PutObjectRequest req = new PutObjectRequest(this.getBucketName(bucketName), fileName, stream, objectMetadata); + req.withCannedAcl(CannedAccessControlList.PublicRead); + this.client.putObject(req); + BladeFile file = new BladeFile(); + file.setOriginalName(originalName); + file.setName(fileName); + file.setDomain(this.getOssHost(bucketName)); + file.setLink(this.fileLink(bucketName, fileName)); + return file; + } catch (Throwable var8) { + throw var8; + } + } + + public void removeFile(String fileName) { + this.removeFile(this.ossProperties.getBucketName(), fileName); + } + + public void removeFile(String bucketName, String fileName) { + this.client.deleteObject(bucketName, fileName); + } + + public void removeFiles(List fileNames) { + this.removeFiles(this.ossProperties.getBucketName(), fileNames); + } + + public void removeFiles(String bucketName, List fileNames) { + List keyVersions = (List)fileNames.stream().map(DeleteObjectsRequest.KeyVersion::new).collect(Collectors.toList()); + DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(this.getBucketName()); + this.client.deleteObjects(deleteObjectsRequest.withKeys(keyVersions)); + } + + private String getBucketName() { + return this.getBucketName(this.ossProperties.getBucketName()); + } + + private String getBucketName(String bucketName) { + return this.ossRule.bucketName(bucketName); + } + + private String getFileName(String originalFilename) { + return this.ossRule.fileName(originalFilename); + } + + public static String getPolicyType(String bucketName, PolicyType policyType) { + StringBuilder builder = new StringBuilder(); + builder.append("{\n"); + builder.append(" \"Statement\": [\n"); + builder.append(" {\n"); + builder.append(" \"Action\": [\n"); + switch (policyType) { + case WRITE: + builder.append(" \"s3:GetBucketLocation\",\n"); + builder.append(" \"s3:ListBucketMultipartUploads\"\n"); + break; + case READ_WRITE: + builder.append(" \"s3:GetBucketLocation\",\n"); + builder.append(" \"s3:ListBucket\",\n"); + builder.append(" \"s3:ListBucketMultipartUploads\"\n"); + break; + default: + builder.append(" \"s3:GetBucketLocation\"\n"); + } + + builder.append(" ],\n"); + builder.append(" \"Effect\": \"Allow\",\n"); + builder.append(" \"Principal\": \"*\",\n"); + builder.append(" \"Resource\": \"arn:aws:s3:::"); + builder.append(bucketName); + builder.append("\"\n"); + builder.append(" },\n"); + if (PolicyType.READ.equals(policyType)) { + builder.append(" {\n"); + builder.append(" \"Action\": [\n"); + builder.append(" \"s3:ListBucket\"\n"); + builder.append(" ],\n"); + builder.append(" \"Effect\": \"Deny\",\n"); + builder.append(" \"Principal\": \"*\",\n"); + builder.append(" \"Resource\": \"arn:aws:s3:::"); + builder.append(bucketName); + builder.append("\"\n"); + builder.append(" },\n"); + } + + builder.append(" {\n"); + builder.append(" \"Action\": "); + switch (policyType) { + case WRITE: + builder.append("[\n"); + builder.append(" \"s3:AbortMultipartUpload\",\n"); + builder.append(" \"s3:DeleteObject\",\n"); + builder.append(" \"s3:ListMultipartUploadParts\",\n"); + builder.append(" \"s3:PutObject\"\n"); + builder.append(" ],\n"); + break; + case READ_WRITE: + builder.append("[\n"); + builder.append(" \"s3:AbortMultipartUpload\",\n"); + builder.append(" \"s3:DeleteObject\",\n"); + builder.append(" \"s3:GetObject\",\n"); + builder.append(" \"s3:ListMultipartUploadParts\",\n"); + builder.append(" \"s3:PutObject\"\n"); + builder.append(" ],\n"); + break; + default: + builder.append("\"s3:GetObject\",\n"); + } + + builder.append(" \"Effect\": \"Allow\",\n"); + builder.append(" \"Principal\": \"*\",\n"); + builder.append(" \"Resource\": \"arn:aws:s3:::"); + builder.append(bucketName); + builder.append("/*\"\n"); + builder.append(" }\n"); + builder.append(" ],\n"); + builder.append(" \"Version\": \"2012-10-17\"\n"); + builder.append("}\n"); + return builder.toString(); + } + + public String getOssHost(String bucketName) { + String var10000 = this.getEndpoint(); + return var10000 + "/" + this.getBucketName(bucketName); + } + + public String getOssHost() { + return this.getOssHost(this.ossProperties.getBucketName()); + } + + public String getEndpoint() { + return StringUtil.isBlank(this.ossProperties.getTransformEndpoint()) ? this.ossProperties.getEndpoint() : this.ossProperties.getTransformEndpoint(); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/utils/SmsUtil.java b/src/main/java/org/springblade/modules/resource/utils/SmsUtil.java new file mode 100644 index 0000000..d5cbb00 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/utils/SmsUtil.java @@ -0,0 +1,118 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.utils; + +import org.springblade.core.sms.model.SmsCode; +import org.springblade.core.sms.model.SmsData; +import org.springblade.core.sms.model.SmsResponse; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.RandomType; +import org.springblade.core.tool.utils.SpringUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.resource.builder.SmsBuilder; + +import java.util.HashMap; +import java.util.Map; + +/** + * 短信服务工具类 + * + * @author Chill + */ +public class SmsUtil { + + public static final String PARAM_KEY = "code"; + public static final String SEND_SUCCESS = "短信发送成功"; + public static final String SEND_FAIL = "短信发送失败"; + public static final String VALIDATE_SUCCESS = "短信校验成功"; + public static final String VALIDATE_FAIL = "短信校验失败"; + + + private static SmsBuilder smsBuilder; + + /** + * 获取短信服务构建类 + * + * @return SmsBuilder + */ + public static SmsBuilder getBuilder() { + if (smsBuilder == null) { + smsBuilder = SpringUtil.getBean(SmsBuilder.class); + } + return smsBuilder; + } + + /** + * 获取短信验证码参数 + * + * @return 验证码参数 + */ + public static Map getValidateParams() { + Map params = new HashMap<>(1); + params.put(PARAM_KEY, StringUtil.random(6, RandomType.INT)); + return params; + } + + /** + * 发送短信 + * + * @param code 资源编号 + * @param params 模板参数 + * @param phones 手机号集合 + * @return 发送结果 + */ + public static SmsResponse sendMessage(String code, Map params, String phones) { + SmsData smsData = new SmsData(params); + return getBuilder().template(code).sendMessage(smsData, Func.toStrList(phones)); + } + + /** + * 发送验证码 + * + * @param code 资源编号 + * @param phone 手机号 + * @return 发送结果 + */ + public static SmsCode sendValidate(String code, String phone) { + Map params = SmsUtil.getValidateParams(); + return getBuilder().template(code).sendValidate(new SmsData(params).setKey(PARAM_KEY), phone); + } + + /** + * 校验短信 + * + * @param code 资源编号 + * @param id 校验id + * @param value 校验值 + * @param phone 手机号 + * @return 发送结果 + */ + public static boolean validateMessage(String code, String id, String value, String phone) { + SmsCode smsCode = new SmsCode().setId(id).setValue(value).setPhone(phone); + return getBuilder().template(code).validateMessage(smsCode); + } + +} diff --git a/src/main/java/org/springblade/modules/resource/wrapper/OssWrapper.java b/src/main/java/org/springblade/modules/resource/wrapper/OssWrapper.java new file mode 100644 index 0000000..f0093b8 --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/wrapper/OssWrapper.java @@ -0,0 +1,58 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.resource.pojo.entity.Oss; +import org.springblade.modules.resource.pojo.vo.OssVO; + +import java.util.Objects; + +/** + * 包装类,返回视图层所需的字段 + * + * @author BladeX + */ +public class OssWrapper extends BaseEntityWrapper { + + public static OssWrapper build() { + return new OssWrapper(); + } + + @Override + public OssVO entityVO(Oss oss) { + OssVO ossVO = Objects.requireNonNull(BeanUtil.copyProperties(oss, OssVO.class)); + String categoryName = DictCache.getValue(DictEnum.OSS, oss.getCategory()); + String statusName = DictCache.getValue(DictEnum.YES_NO, oss.getStatus()); + ossVO.setCategoryName(categoryName); + ossVO.setStatusName(statusName); + return ossVO; + } + +} diff --git a/src/main/java/org/springblade/modules/resource/wrapper/SmsWrapper.java b/src/main/java/org/springblade/modules/resource/wrapper/SmsWrapper.java new file mode 100644 index 0000000..74ef5bb --- /dev/null +++ b/src/main/java/org/springblade/modules/resource/wrapper/SmsWrapper.java @@ -0,0 +1,58 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.resource.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.resource.pojo.entity.Sms; +import org.springblade.modules.resource.pojo.vo.SmsVO; + +import java.util.Objects; + +/** + * 短信配置表包装类,返回视图层所需的字段 + * + * @author BladeX + */ +public class SmsWrapper extends BaseEntityWrapper { + + public static SmsWrapper build() { + return new SmsWrapper(); + } + + @Override + public SmsVO entityVO(Sms sms) { + SmsVO smsVO = Objects.requireNonNull(BeanUtil.copyProperties(sms, SmsVO.class)); + String categoryName = DictCache.getValue(DictEnum.SMS, sms.getCategory()); + String statusName = DictCache.getValue(DictEnum.YES_NO, sms.getStatus()); + smsVO.setCategoryName(categoryName); + smsVO.setStatusName(statusName); + return smsVO; + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/ApiScopeController.java b/src/main/java/org/springblade/modules/system/controller/ApiScopeController.java new file mode 100644 index 0000000..f1b7eca --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/ApiScopeController.java @@ -0,0 +1,132 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.ApiScope; +import org.springblade.modules.system.service.IApiScopeService; +import org.springblade.modules.system.pojo.vo.ApiScopeVO; +import org.springblade.modules.system.wrapper.ApiScopeWrapper; +import org.springframework.web.bind.annotation.*; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 接口权限控制器 + * + * @author BladeX + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/api-scope") +@Tag(name = "接口权限", description = "接口权限") +public class ApiScopeController extends BladeController { + + private final IApiScopeService apiScopeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入dataScope") + public R detail(ApiScope dataScope) { + ApiScope detail = apiScopeService.getOne(Condition.getQueryWrapper(dataScope)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入dataScope") + public R> list(ApiScope dataScope, Query query) { + IPage pages = apiScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope)); + return R.data(ApiScopeWrapper.build().pageVO(pages)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增", description = "传入dataScope") + public R save(@Valid @RequestBody ApiScope dataScope) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(apiScopeService.save(dataScope)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 4) + @Operation(summary = "修改", description = "传入dataScope") + public R update(@Valid @RequestBody ApiScope dataScope) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(apiScopeService.updateById(dataScope)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入dataScope") + public R submit(@Valid @RequestBody ApiScope dataScope) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(apiScopeService.saveOrUpdate(dataScope)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(apiScopeService.deleteLogic(Func.toLongList(ids))); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/AuthClientController.java b/src/main/java/org/springblade/modules/system/controller/AuthClientController.java new file mode 100644 index 0000000..66f8154 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/AuthClientController.java @@ -0,0 +1,127 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.AuthClient; +import org.springblade.modules.system.service.IAuthClientService; +import org.springframework.web.bind.annotation.*; + +/** + * 应用管理控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/client") +@Tag(name = "应用管理", description = "应用管理") +@PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) +public class AuthClientController extends BladeController { + + private final IAuthClientService clientService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入client") + public R detail(AuthClient authClient) { + AuthClient detail = clientService.getOne(Condition.getQueryWrapper(authClient)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入client") + public R> list(AuthClient authClient, Query query) { + IPage pages = clientService.page(Condition.getPage(query), Condition.getQueryWrapper(authClient)); + return R.data(pages); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增", description = "传入client") + public R save(@Valid @RequestBody AuthClient authClient) { + return R.status(clientService.save(authClient)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 4) + @Operation(summary = "修改", description = "传入client") + public R update(@Valid @RequestBody AuthClient authClient) { + return R.status(clientService.updateById(authClient)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入client") + public R submit(@Valid @RequestBody AuthClient authClient) { + return R.status(clientService.saveOrUpdate(authClient)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(clientService.deleteLogic(Func.toLongList(ids))); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/DataScopeController.java b/src/main/java/org/springblade/modules/system/controller/DataScopeController.java new file mode 100644 index 0000000..bd1a31a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/DataScopeController.java @@ -0,0 +1,132 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.DataScope; +import org.springblade.modules.system.service.IDataScopeService; +import org.springblade.modules.system.pojo.vo.DataScopeVO; +import org.springblade.modules.system.wrapper.DataScopeWrapper; +import org.springframework.web.bind.annotation.*; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 数据权限控制器 + * + * @author BladeX + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/data-scope") +@Tag(name = "数据权限", description = "数据权限") +public class DataScopeController extends BladeController { + + private final IDataScopeService dataScopeService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入dataScope") + public R detail(DataScope dataScope) { + DataScope detail = dataScopeService.getOne(Condition.getQueryWrapper(dataScope)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入dataScope") + public R> list(DataScope dataScope, Query query) { + IPage pages = dataScopeService.page(Condition.getPage(query), Condition.getQueryWrapper(dataScope)); + return R.data(DataScopeWrapper.build().pageVO(pages)); + } + + /** + * 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增", description = "传入dataScope") + public R save(@Valid @RequestBody DataScope dataScope) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(dataScopeService.save(dataScope)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 4) + @Operation(summary = "修改", description = "传入dataScope") + public R update(@Valid @RequestBody DataScope dataScope) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(dataScopeService.updateById(dataScope)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入dataScope") + public R submit(@Valid @RequestBody DataScope dataScope) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(dataScopeService.saveOrUpdate(dataScope)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(dataScopeService.deleteLogic(Func.toLongList(ids))); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java new file mode 100644 index 0000000..9432b87 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java @@ -0,0 +1,167 @@ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.DictCache; +import org.springblade.common.cache.UserCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IDeptService; +import org.springblade.modules.system.pojo.vo.DeptVO; +import org.springblade.modules.system.wrapper.DeptWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/dept") +@Tag(name = "部门", description = "部门") +public class DeptController extends BladeController { + + private final IDeptService deptService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入dept") + public R detail(Dept dept) { + Dept detail = deptService.getOne(Condition.getQueryWrapper(dept)); + return R.data(DeptWrapper.build().entityVO(detail)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "列表", description = "传入dept") + public R> list(@Parameter(hidden = true) @RequestParam Map dept, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(dept, Dept.class); + List list = deptService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Dept::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(DeptWrapper.build().listNodeVO(list)); + } + + /** + * 懒加载列表 + */ + @GetMapping("/lazy-list") + @Parameters({ + @Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "fullName", description = "部门全称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "懒加载列表", description = "传入dept") + public R> lazyList(@Parameter(hidden = true) @RequestParam Map dept, Long parentId, BladeUser bladeUser) { + List list = deptService.lazyList(bladeUser.getTenantId(), parentId, dept); + return R.data(DeptWrapper.build().listNodeLazyVO(list)); + } + + /** + * 获取部门树形结构 + */ + @GetMapping("/tree") + @ApiOperationSupport(order = 4) + @Operation(summary = "树形结构", description = "树形结构") + public R> tree(String tenantId, BladeUser bladeUser) { + List tree = deptService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + return R.data(tree); + } + + /** + * 懒加载获取部门树形结构 + */ + @GetMapping("/lazy-tree") + @ApiOperationSupport(order = 5) + @Operation(summary = "懒加载树形结构", description = "树形结构") + public R> lazyTree(String tenantId, Long parentId, BladeUser bladeUser) { + List tree = deptService.lazyTree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()), parentId); + return R.data(tree); + } + + /** + * 新增或修改 + */ + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入dept") + public R submit(@Valid @RequestBody Dept dept) { + if (deptService.submit(dept)) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + // 返回懒加载树更新节点所需字段 + Kv kv = Kv.create().set("id", String.valueOf(dept.getId())).set("tenantId", dept.getTenantId()) + .set("deptCategoryName", DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory())); + return R.data(kv); + } + return R.fail("操作失败"); + } + + /** + * 删除 + */ + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(deptService.removeDept(ids)); + } + + /** + * 下拉数据源 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @Operation(summary = "下拉数据源", description = "传入id集合") + public R> select(Long userId, String deptId) { + if (Func.isNotEmpty(userId)) { + User user = UserCache.getUser(userId); + deptId = user.getDeptId(); + } + List list = deptService.list(Wrappers.lambdaQuery().in(Dept::getId, Func.toLongList(deptId))); + return R.data(list); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/DictBizController.java b/src/main/java/org/springblade/modules/system/controller/DictBizController.java new file mode 100644 index 0000000..1b93de1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/DictBizController.java @@ -0,0 +1,220 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.common.constant.CommonConstant; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.service.IDictBizService; +import org.springblade.modules.system.pojo.vo.DictBizVO; +import org.springblade.modules.system.wrapper.DictBizWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/dict-biz") +@Tag(name = "业务字典", description = "业务字典") +public class DictBizController extends BladeController { + + private final IDictBizService dictService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入dict") + public R detail(DictBiz dict) { + DictBiz detail = dictService.getOne(Condition.getQueryWrapper(dict)); + return R.data(DictBizWrapper.build().entityVO(detail)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "code", description = "字典编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "dictValue", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "列表", description = "传入dict") + public R> list(@Parameter(hidden = true) @RequestParam Map dict) { + List list = dictService.list(Condition.getQueryWrapper(dict, DictBiz.class).lambda().orderByAsc(DictBiz::getSort)); + return R.data(DictBizWrapper.build().listNodeVO(list)); + } + + /** + * 顶级列表 + */ + @GetMapping("/parent-list") + @Parameters({ + @Parameter(name = "code", description = "字典编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "dictValue", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "列表", description = "传入dict") + public R> parentList(@Parameter(hidden = true) @RequestParam Map dict, Query query) { + return R.data(dictService.parentList(dict, query)); + } + + /** + * 子列表 + */ + @GetMapping("/child-list") + @Parameters({ + @Parameter(name = "code", description = "字典编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "dictValue", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "parentId", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 4) + @Operation(summary = "列表", description = "传入dict") + public R> childList(@Parameter(hidden = true) @RequestParam Map dict, @RequestParam(required = false, defaultValue = "-1") Long parentId) { + return R.data(dictService.childList(dict, parentId)); + } + + /** + * 获取字典树形结构 + */ + @GetMapping("/tree") + @ApiOperationSupport(order = 5) + @Operation(summary = "树形结构", description = "树形结构") + public R> tree() { + List tree = dictService.tree(); + return R.data(tree); + } + + /** + * 获取字典树形结构 + */ + @GetMapping("/parent-tree") + @ApiOperationSupport(order = 5) + @Operation(summary = "树形结构", description = "树形结构") + public R> parentTree() { + List tree = dictService.parentTree(); + return R.data(tree); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入dict") + public R submit(@Valid @RequestBody DictBiz dict) { + CacheUtil.clear(DICT_CACHE); + return R.status(dictService.submit(dict)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(DICT_CACHE); + return R.status(dictService.removeDict(ids)); + } + + /** + * 获取字典 + */ + @GetMapping("/dictionary") + @ApiOperationSupport(order = 8) + @Operation(summary = "获取字典", description = "获取字典") + public R> dictionary(String code) { + List tree = dictService.getList(code); + return R.data(tree); + } + + /** + * 获取字典树 + */ + @GetMapping("/dictionary-tree") + @ApiOperationSupport(order = 9) + @Operation(summary = "获取字典树", description = "获取字典树") + public R> dictionaryTree(String code) { + List tree = dictService.getList(code); + return R.data(DictBizWrapper.build().listNodeVO(tree)); + } + + /** + * 字典键值列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 10) + @Operation(summary = "字典键值列表", description = "字典键值列表") + public R> select() { + List list = dictService.list(Wrappers.query().lambda().eq(DictBiz::getParentId, CommonConstant.TOP_PARENT_ID)); + list.forEach(dict -> dict.setDictValue(dict.getCode() + StringPool.COLON + StringPool.SPACE + dict.getDictValue())); + return R.data(list); + } + + /** + * 字典全列表 + */ + @GetMapping("/select-all") + @ApiOperationSupport(order = 11) + @Operation(summary = "字典全列表", description = "字典全列表") + public R> selectAll() { + List list = dictService.list(Wrappers.query().lambda().eq(DictBiz::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + return R.data(list); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/DictController.java b/src/main/java/org/springblade/modules/system/controller/DictController.java new file mode 100644 index 0000000..55bfd72 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/DictController.java @@ -0,0 +1,218 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.common.constant.CommonConstant; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.service.IDictService; +import org.springblade.modules.system.pojo.vo.DictVO; +import org.springblade.modules.system.wrapper.DictWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/dict") +@Tag(name = "系统字典", description = "系统字典") +public class DictController extends BladeController { + + private final IDictService dictService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入dict") + public R detail(Dict dict) { + Dict detail = dictService.getOne(Condition.getQueryWrapper(dict)); + return R.data(DictWrapper.build().entityVO(detail)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "code", description = "字典编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "dictValue", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "列表", description = "传入dict") + public R> list(@Parameter(hidden = true) @RequestParam Map dict) { + List list = dictService.list(Condition.getQueryWrapper(dict, Dict.class).lambda().orderByAsc(Dict::getSort)); + return R.data(DictWrapper.build().listNodeVO(list)); + } + + /** + * 顶级列表 + */ + @GetMapping("/parent-list") + @Parameters({ + @Parameter(name = "code", description = "字典编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "dictValue", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "列表", description = "传入dict") + public R> parentList(@Parameter(hidden = true) @RequestParam Map dict, Query query) { + return R.data(dictService.parentList(dict, query)); + } + + /** + * 子列表 + */ + @GetMapping("/child-list") + @Parameters({ + @Parameter(name = "code", description = "字典编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "dictValue", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "parentId", description = "字典名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 4) + @Operation(summary = "列表", description = "传入dict") + public R> childList(@Parameter(hidden = true) @RequestParam Map dict, @RequestParam(required = false, defaultValue = "-1") Long parentId) { + return R.data(dictService.childList(dict, parentId)); + } + + /** + * 获取字典树形结构 + */ + @GetMapping("/tree") + @ApiOperationSupport(order = 5) + @Operation(summary = "树形结构", description = "树形结构") + public R> tree() { + List tree = dictService.tree(); + return R.data(tree); + } + + /** + * 获取字典树形结构 + */ + @GetMapping("/parent-tree") + @ApiOperationSupport(order = 5) + @Operation(summary = "树形结构", description = "树形结构") + public R> parentTree() { + List tree = dictService.parentTree(); + return R.data(tree); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + public R submit(@Valid @RequestBody Dict dict) { + CacheUtil.clear(DICT_CACHE, Boolean.FALSE); + return R.status(dictService.submit(dict)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(DICT_CACHE, Boolean.FALSE); + return R.status(dictService.removeDict(ids)); + } + + /** + * 获取字典 + */ + @GetMapping("/dictionary") + @ApiOperationSupport(order = 8) + @Operation(summary = "获取字典", description = "获取字典") + public R> dictionary(String code) { + List tree = dictService.getList(code); + return R.data(tree); + } + + /** + * 获取字典树 + */ + @GetMapping("/dictionary-tree") + @ApiOperationSupport(order = 9) + @Operation(summary = "获取字典树", description = "获取字典树") + public R> dictionaryTree(String code) { + List tree = dictService.getList(code); + return R.data(DictWrapper.build().listNodeVO(tree)); + } + + /** + * 字典键值列表 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 10) + @Operation(summary = "字典键值列表", description = "字典键值列表") + public R> select() { + List list = dictService.list(Wrappers.query().lambda().eq(Dict::getParentId, CommonConstant.TOP_PARENT_ID)); + list.forEach(dict -> dict.setDictValue(dict.getCode() + StringPool.COLON + StringPool.SPACE + dict.getDictValue())); + return R.data(list); + } + + /** + * 字典全列表 + */ + @GetMapping("/select-all") + @ApiOperationSupport(order = 11) + @Operation(summary = "字典全列表", description = "字典全列表") + public R> selectAll() { + List list = dictService.list(Wrappers.query().lambda().eq(Dict::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/LogApiController.java b/src/main/java/org/springblade/modules/system/controller/LogApiController.java new file mode 100644 index 0000000..ecbe65b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/LogApiController.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Parameter; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.log.model.LogApi; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.modules.system.service.ILogApiService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_LOG_NAME + "/api") +public class LogApiController { + + private final ILogApiService logService; + + /** + * 查询单条 + */ + @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R detail(LogApi log) { + return R.data(logService.getOne(Condition.getQueryWrapper(log))); + } + + /** + * 查询多条(分页) + */ + @GetMapping("/list") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R> list(@Parameter(hidden = true) @RequestParam Map log, Query query) { + IPage pages = logService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(log, LogApi.class)); + return R.data(pages); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/LogErrorController.java b/src/main/java/org/springblade/modules/system/controller/LogErrorController.java new file mode 100644 index 0000000..c6ec9b4 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/LogErrorController.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Parameter; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.log.model.LogError; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.modules.system.service.ILogErrorService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_LOG_NAME + "/error") +public class LogErrorController { + + private final ILogErrorService errorLogService; + + /** + * 查询单条 + */ + @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R detail(LogError logError) { + return R.data(errorLogService.getOne(Condition.getQueryWrapper(logError))); + } + + /** + * 查询多条(分页) + */ + @GetMapping("/list") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R> list(@Parameter(hidden = true) @RequestParam Map logError, Query query) { + IPage pages = errorLogService.page(Condition.getPage(query.setDescs("create_time")), Condition.getQueryWrapper(logError, LogError.class)); + return R.data(pages); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/LogUsualController.java b/src/main/java/org/springblade/modules/system/controller/LogUsualController.java new file mode 100644 index 0000000..625f209 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/LogUsualController.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.Parameter; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.log.model.LogUsual; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.modules.system.service.ILogUsualService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_LOG_NAME + "/usual") +public class LogUsualController { + + private final ILogUsualService logService; + + /** + * 查询单条 + */ + @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R detail(LogUsual log) { + return R.data(logService.getOne(Condition.getQueryWrapper(log))); + } + + /** + * 查询多条(分页) + */ + @GetMapping("/list") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R> list(@Parameter(hidden = true) @RequestParam Map log, Query query) { + IPage pages = logService.page(Condition.getPage(query), Condition.getQueryWrapper(log, LogUsual.class)); + return R.data(pages); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/MenuController.java b/src/main/java/org/springblade/modules/system/controller/MenuController.java new file mode 100644 index 0000000..1b0012e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/MenuController.java @@ -0,0 +1,336 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.node.TreeNode; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Menu; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.entity.RoleMenu; +import org.springblade.modules.system.pojo.entity.TopMenu; +import org.springblade.modules.system.service.IMenuService; +import org.springblade.modules.system.service.IRoleService; +import org.springblade.modules.system.service.ITopMenuService; +import org.springblade.modules.system.pojo.vo.CheckedTreeVO; +import org.springblade.modules.system.pojo.vo.GrantTreeVO; +import org.springblade.modules.system.pojo.vo.MenuVO; +import org.springblade.modules.system.wrapper.MenuWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.MENU_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/menu") +@Tag(name = "菜单", description = "菜单") +public class MenuController extends BladeController { + + private final IMenuService menuService; + private final ITopMenuService topMenuService; + + private final IRoleService roleService; + + /** + * 详情 + */ + @GetMapping("/detail") + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入menu") + public R detail(Menu menu) { + Menu detail = menuService.getOne(Condition.getQueryWrapper(menu)); + return R.data(MenuWrapper.build().entityVO(detail)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 2) + @Operation(summary = "列表", description = "传入menu") + public R> list(@Parameter(hidden = true) @RequestParam Map menu) { + List

list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().orderByAsc(Menu::getSort)); + return R.data(MenuWrapper.build().listNodeVO(list)); + } + + /** + * 懒加载列表 + */ + @GetMapping("/lazy-list") + @Parameters({ + @Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 3) + @Operation(summary = "懒加载列表", description = "传入menu") + public R> lazyList(Long parentId, @Parameter(hidden = true) @RequestParam Map menu) { + List list = menuService.lazyList(parentId, menu); + return R.data(MenuWrapper.build().listNodeLazyVO(list)); + } + + /** + * 菜单列表 + */ + @GetMapping("/menu-list") + @Parameters({ + @Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 4) + @Operation(summary = "菜单列表", description = "传入menu") + public R> menuList(@Parameter(hidden = true) @RequestParam Map menu) { + List list = menuService.list(Condition.getQueryWrapper(menu, Menu.class).lambda().eq(Menu::getCategory, 1).orderByAsc(Menu::getSort)); + return R.data(MenuWrapper.build().listNodeVO(list)); + } + + /** + * 懒加载菜单列表 + */ + @GetMapping("/lazy-menu-list") + @Parameters({ + @Parameter(name = "code", description = "菜单编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "菜单名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 5) + @Operation(summary = "懒加载菜单列表", description = "传入menu") + public R> lazyMenuList(Long parentId, @Parameter(hidden = true) @RequestParam Map menu) { + List list = menuService.lazyMenuList(parentId, menu); + return R.data(MenuWrapper.build().listNodeLazyVO(list)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入menu") + public R submit(@Valid @RequestBody Menu menu) { + if (menuService.submit(menu)) { + CacheUtil.clear(MENU_CACHE); + CacheUtil.clear(MENU_CACHE, Boolean.FALSE); + // 返回懒加载树更新节点所需字段 + Kv kv = Kv.create().set("id", String.valueOf(menu.getId())); + return R.data(kv); + } + return R.fail("操作失败"); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @ApiOperationSupport(order = 7) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(MENU_CACHE); + CacheUtil.clear(MENU_CACHE, Boolean.FALSE); + return R.status(menuService.removeMenu(ids)); + } + + /** + * 前端菜单数据 + */ + @GetMapping("/routes") + @ApiOperationSupport(order = 8) + @Operation(summary = "前端菜单数据", description = "前端菜单数据") + public R> routes(BladeUser user, Long topMenuId) { + List list = menuService.routes((user == null) ? null : user.getRoleId(), topMenuId); + return R.data(list); + } + + /** + * 前端菜单数据 + */ + @GetMapping("/routes-ext") + @ApiOperationSupport(order = 9) + @Operation(summary = "前端菜单数据", description = "前端菜单数据") + public R> routesExt(BladeUser user, Long topMenuId) { + List list = menuService.routesExt(user.getRoleId(), topMenuId); + return R.data(list); + } + + /** + * 前端按钮数据 + */ + @GetMapping("/buttons") + @ApiOperationSupport(order = 10) + @Operation(summary = "前端按钮数据", description = "前端按钮数据") + public R> buttons(BladeUser user) { + List list = menuService.buttons(user.getRoleId()); + return R.data(list); + } + + /** + * 获取菜单树形结构 + */ + @GetMapping("/tree") + @ApiOperationSupport(order = 11) + @Operation(summary = "树形结构", description = "树形结构") + public R> tree() { + List tree = menuService.tree(); + return R.data(tree); + } + + /** + * 获取权限分配树形结构 + */ + @GetMapping("/grant-tree") + @ApiOperationSupport(order = 12) + @Operation(summary = "权限分配树形结构", description = "权限分配树形结构") + public R grantTree(BladeUser user) { + GrantTreeVO vo = new GrantTreeVO(); + vo.setMenu(menuService.grantTree(user)); + vo.setDataScope(menuService.grantDataScopeTree(user)); + vo.setApiScope(menuService.grantApiScopeTree(user)); + return R.data(vo); + } + + /** + * 获取权限分配树形结构 + */ + @GetMapping("/role-tree-keys") + @ApiOperationSupport(order = 13) + @Operation(summary = "角色所分配的树", description = "角色所分配的树") + public R roleTreeKeys(String roleIds) { + CheckedTreeVO vo = new CheckedTreeVO(); + vo.setMenu(menuService.roleTreeKeys(roleIds)); + vo.setDataScope(menuService.dataScopeTreeKeys(roleIds)); + vo.setApiScope(menuService.apiScopeTreeKeys(roleIds)); + return R.data(vo); + } + /** + * 户用系统获取角色菜单权限 + */ + @GetMapping("/roleTreeKeysHy") + @ApiOperationSupport(order = 18) + @Operation(summary = "角色所分配的集合", description = "角色所分配的集合") + public R roleTreeKeysHy(String roleIds) { + Role role =roleService.getOne(Wrappers.query().lambda().eq(Role::getHouseholdRoleId,roleIds)); + if(role== null){ + return R.fail(201,"角色不存在"); + } + GrantTreeVO vo = new GrantTreeVO(); + vo.setMenu(menuService.grantTreeAll()); + List roleList = menuService.roleTreeKeys(role.getId().toString()); + //获取所有分配的权限id + vo.setHydataScope(roleList); + return R.data(vo); + } + + + + /** + * 获取顶部菜单树形结构 + */ + @GetMapping("/grant-top-tree") + @ApiOperationSupport(order = 14) + @Operation(summary = "顶部菜单树形结构", description = "顶部菜单树形结构") + public R grantTopTree(BladeUser user) { + GrantTreeVO vo = new GrantTreeVO(); + vo.setMenu(menuService.grantTopTree(user)); + return R.data(vo); + } + + /** + * 获取顶部菜单树形结构 + */ + @GetMapping("/top-tree-keys") + @ApiOperationSupport(order = 15) + @Operation(summary = "顶部菜单所分配的树", description = "顶部菜单所分配的树") + public R topTreeKeys(String topMenuIds) { + CheckedTreeVO vo = new CheckedTreeVO(); + vo.setMenu(menuService.topTreeKeys(topMenuIds)); + return R.data(vo); + } + + /** + * 顶部菜单数据 + */ + @GetMapping("/top-menu") + @ApiOperationSupport(order = 16) + @Operation(summary = "顶部菜单数据", description = "顶部菜单数据") + public R> topMenu(BladeUser user) { + if (Func.isEmpty(user)) { + return null; + } + List list = topMenuService.list(Wrappers.query().lambda().orderByAsc(TopMenu::getSort)); + return R.data(list); + } + + /** + * 获取配置的角色权限 + */ + @GetMapping("auth-routes") + @ApiOperationSupport(order = 17) + @Operation(summary = "菜单的角色权限") + public R> authRoutes(BladeUser user) { + if (Func.isEmpty(user)) { + return null; + } + return R.data(menuService.authRoutes(user)); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/ParamController.java b/src/main/java/org/springblade/modules/system/controller/ParamController.java new file mode 100644 index 0000000..edbf817 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/ParamController.java @@ -0,0 +1,124 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Param; +import org.springblade.modules.system.service.IParamService; +import org.springframework.web.bind.annotation.*; + +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.PARAM_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/param") +@Tag(name = "参数配置", description = "参数配置") +public class ParamController extends BladeController { + + private final IParamService paramService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入param") + public R detail(Param param) { + Param detail = paramService.getOne(Condition.getQueryWrapper(param)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "paramName", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "paramKey", description = "参数键名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "paramValue", description = "参数键值", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入param") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R> list(@Parameter(hidden = true) @RequestParam Map param, Query query) { + IPage pages = paramService.page(Condition.getPage(query), Condition.getQueryWrapper(param, Param.class)); + return R.data(pages); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增或修改", description = "传入param") + public R submit(@Valid @RequestBody Param param) { + CacheUtil.clear(PARAM_CACHE); + CacheUtil.clear(PARAM_CACHE, Boolean.FALSE); + return R.status(paramService.saveOrUpdate(param)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 4) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(PARAM_CACHE); + CacheUtil.clear(PARAM_CACHE, Boolean.FALSE); + return R.status(paramService.deleteLogic(Func.toLongList(ids))); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/PostController.java b/src/main/java/org/springblade/modules/system/controller/PostController.java new file mode 100644 index 0000000..5f22f8e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/PostController.java @@ -0,0 +1,159 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.service.IPostService; +import org.springblade.modules.system.pojo.vo.PostVO; +import org.springblade.modules.system.wrapper.PostWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 岗位表 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/post") +@Tag(name = "岗位", description = "岗位") +public class PostController extends BladeController { + + private final IPostService postService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入post") + public R detail(Post post) { + Post detail = postService.getOne(Condition.getQueryWrapper(post)); + return R.data(PostWrapper.build().entityVO(detail)); + } + + /** + * 分页 岗位表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入post") + public R> list(Post post, Query query) { + IPage pages = postService.page(Condition.getPage(query), Condition.getQueryWrapper(post)); + return R.data(PostWrapper.build().pageVO(pages)); + } + + + /** + * 自定义分页 岗位表 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入post") + public R> page(PostVO post, Query query) { + IPage pages = postService.selectPostPage(Condition.getPage(query), post); + return R.data(pages); + } + + /** + * 新增 岗位表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入post") + public R save(@Valid @RequestBody Post post) { + CacheUtil.clear(SYS_CACHE); + return R.status(postService.save(post)); + } + + /** + * 修改 岗位表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入post") + public R update(@Valid @RequestBody Post post) { + CacheUtil.clear(SYS_CACHE); + return R.status(postService.updateById(post)); + } + + /** + * 新增或修改 岗位表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入post") + public R submit(@Valid @RequestBody Post post) { + CacheUtil.clear(SYS_CACHE); + return R.status(postService.saveOrUpdate(post)); + } + + + /** + * 删除 岗位表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE); + return R.status(postService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 下拉数据源 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @Operation(summary = "下拉数据源", description = "传入post") + public R> select(String tenantId, BladeUser bladeUser) { + List list = postService.list(Wrappers.query().lambda().eq(Post::getTenantId, Func.toStrWithEmpty(tenantId, bladeUser.getTenantId()))); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/RegionController.java b/src/main/java/org/springblade/modules/system/controller/RegionController.java new file mode 100644 index 0000000..9ab4f53 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/RegionController.java @@ -0,0 +1,239 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.excel.RegionExcel; +import org.springblade.modules.system.excel.RegionImporter; +import org.springblade.modules.system.service.IRegionService; +import org.springblade.modules.system.pojo.vo.RegionVO; +import org.springblade.modules.system.wrapper.RegionWrapper; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 行政区划表 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/region") +@Tag(name = "行政区划", description = "行政区划") +public class RegionController extends BladeController { + + private final IRegionService regionService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入region") + public R detail(Region region) { + Region detail = regionService.getOne(Condition.getQueryWrapper(region)); + return R.data(RegionWrapper.build().entityVO(detail)); + } + + /** + * 分页 行政区划表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入region") + public R> list(Region region, Query query) { + IPage pages = regionService.page(Condition.getPage(query), Condition.getQueryWrapper(region)); + return R.data(pages); + } + + /** + * 懒加载列表 + */ + @GetMapping("/lazy-list") + @Parameters({ + @Parameter(name = "code", description = "区划编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "区划名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "懒加载列表", description = "传入menu") + public R> lazyList(String parentCode, @Parameter(hidden = true) @RequestParam Map menu) { + List list = regionService.lazyList(parentCode, menu); + return R.data(RegionWrapper.build().listNodeLazyVO(list)); + } + + /** + * 懒加载列表 + */ + @GetMapping("/lazy-tree") + @Parameters({ + @Parameter(name = "code", description = "区划编号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "name", description = "区划名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 4) + @Operation(summary = "懒加载列表", description = "传入menu") + public R> lazyTree(String parentCode, @Parameter(hidden = true) @RequestParam Map menu) { + List list = regionService.lazyTree(parentCode, menu); + return R.data(RegionWrapper.build().listNodeLazyVO(list)); + } + + /** + * 新增 行政区划表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增", description = "传入region") + public R save(@Valid @RequestBody Region region) { + return R.status(regionService.save(region)); + } + + /** + * 修改 行政区划表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 6) + @Operation(summary = "修改", description = "传入region") + public R update(@Valid @RequestBody Region region) { + return R.status(regionService.updateById(region)); + } + + /** + * 新增或修改 行政区划表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 7) + @Operation(summary = "新增或修改", description = "传入region") + public R submit(@Valid @RequestBody Region region) { + return R.status(regionService.submit(region)); + } + + + /** + * 删除 行政区划表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 8) + @Operation(summary = "删除", description = "传入主键") + public R remove(@Parameter(description = "主键", required = true) @RequestParam String id) { + return R.status(regionService.removeRegion(id)); + } + + /** + * 行政区划下拉数据源 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 9) + @Operation(summary = "下拉数据源", description = "传入tenant") + public R> select(@RequestParam(required = false)String code,@RequestParam(required = false)String provinceNames,@RequestParam(required = false)String cityNames) { + LambdaQueryWrapper wrappers=Wrappers.query().lambda(); + if(StringUtil.isNotBlank(code)){ + wrappers.eq(Region::getParentCode, code); + }else if(StringUtil.isNotBlank(provinceNames)){ + wrappers.in(Region::getProvinceName, provinceNames.split(",")).eq(Region::getRegionLevel,2); + }else if(StringUtil.isNotBlank(cityNames)){ + wrappers.in(Region::getCityName, cityNames.split(",")).eq(Region::getRegionLevel,3); + }else{ + wrappers.eq(Region::getParentCode, "00"); + } + List list = regionService.list(wrappers); + return R.data(list); + } + + /** + * 行政区划下拉数据源 + */ + @GetMapping("/selectCityByProvince") + @ApiOperationSupport(order = 9) + @Operation(summary = "下拉数据源", description = "传入tenant") + public R> selectCityByProvince(@RequestParam(required = false, defaultValue = "北京市") String provinceName) { + List list = regionService.list(Wrappers.query().lambda().eq(Region::getProvinceName, provinceName).eq(Region::getRegionLevel,2)); + return R.data(list); + } + + /** + * 导入行政区划数据 + */ + @PostMapping("import-region") + @ApiOperationSupport(order = 10) + @Operation(summary = "导入行政区划", description = "传入excel") + public R importRegion(MultipartFile file, Integer isCovered) { + RegionImporter regionImporter = new RegionImporter(regionService, isCovered == 1); + ExcelUtil.save(file, regionImporter, RegionExcel.class); + return R.success("操作成功"); + } + + /** + * 导出行政区划数据 + */ + @GetMapping("export-region") + @ApiOperationSupport(order = 11) + @Operation(summary = "导出行政区划", description = "传入user") + public void exportRegion(@Parameter(hidden = true) @RequestParam Map region, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(region, Region.class); + List list = regionService.exportRegion(queryWrapper); + ExcelUtil.export(response, "行政区划数据" + DateUtil.time(), "行政区划数据表", list, RegionExcel.class); + } + + /** + * 导出模板 + */ + @GetMapping("export-template") + @ApiOperationSupport(order = 12) + @Operation(summary = "导出模板") + public void exportUser(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "行政区划模板", "行政区划表", list, RegionExcel.class); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/RoleController.java b/src/main/java/org/springblade/modules/system/controller/RoleController.java new file mode 100644 index 0000000..0d9918d --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/RoleController.java @@ -0,0 +1,189 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.SysCache; +import org.springblade.common.cache.UserCache; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.constant.AuthConstant; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.service.IRoleService; +import org.springblade.modules.system.pojo.vo.GrantVO; +import org.springblade.modules.system.pojo.vo.RoleVO; +import org.springblade.modules.system.wrapper.RoleWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/role") +@Tag(name = "角色", description = "角色") +public class RoleController extends BladeController { + + private final IRoleService roleService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入role") + public R detail(Role role) { + Role detail = roleService.getOne(Condition.getQueryWrapper(role)); + return R.data(RoleWrapper.build().entityVO(detail)); + } + + /** + * 列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "roleName", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "roleAlias", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "列表", description = "传入role") + public R> list(@Parameter(hidden = true) @RequestParam Map role, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(role, Role.class); + if(!AuthUtil.isAdmin()){ + List list = roleService.list(queryWrapper.lambda().notIn(Role::getId,Func.toLongList("1123598816738675201,1798170366724702210,1803307073501319170"))); + return R.data(RoleWrapper.build().listNodeVO(list)); + } + List list = roleService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Role::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(RoleWrapper.build().listNodeVO(list)); + } + + /** + * 获取角色树形结构 + */ + @PreAuth(AuthConstant.PERMIT_ALL) + @GetMapping("/tree") + @ApiOperationSupport(order = 3) + @Operation(summary = "树形结构", description = "树形结构") + public R> tree(String tenantId, BladeUser bladeUser) { + List tree = roleService.tree(Func.toStrWithEmpty(tenantId, bladeUser.getTenantId())); + return R.data(tree); + } + + /** + * 获取指定角色树形结构 + */ + @GetMapping("/tree-by-id") + @ApiOperationSupport(order = 4) + @Operation(summary = "树形结构", description = "树形结构") + public R> treeById(Long roleId, BladeUser bladeUser) { + Role role = SysCache.getRole(roleId); + List tree = roleService.tree(Func.notNull(role) ? role.getTenantId() : bladeUser.getTenantId()); + return R.data(tree); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入role") + public R submit(@Valid @RequestBody Role role) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(roleService.submit(role)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(roleService.removeRole(ids)); + } + + /** + * 设置角色权限 + */ + @PostMapping("/grant") + @ApiOperationSupport(order = 7) + @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合") + public R grant(@RequestBody GrantVO grantVO) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + boolean temp = roleService.grant(grantVO.getRoleIds(), grantVO.getMenuIds(), grantVO.getDataScopeIds(), grantVO.getApiScopeIds()); + return R.status(temp); + } + + /** + * 下拉数据源 + */ + @PreAuth(AuthConstant.PERMIT_ALL) + @GetMapping("/select") + @ApiOperationSupport(order = 8) + @Operation(summary = "下拉数据源", description = "传入id集合") + public R> select(Long userId, String roleId) { + if (Func.isNotEmpty(userId)) { + User user = UserCache.getUser(userId); + roleId = user.getRoleId(); + } + List list = roleService.list(Wrappers.lambdaQuery().in(Role::getId, Func.toLongList(roleId))); + return R.data(list); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/SearchController.java b/src/main/java/org/springblade/modules/system/controller/SearchController.java new file mode 100644 index 0000000..b3b37ec --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/SearchController.java @@ -0,0 +1,134 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.service.IDeptService; +import org.springblade.modules.system.service.IPostService; +import org.springblade.modules.system.service.IRoleService; +import org.springblade.modules.system.service.IUserService; +import org.springblade.modules.system.pojo.vo.DeptVO; +import org.springblade.modules.system.pojo.vo.PostVO; +import org.springblade.modules.system.pojo.vo.RoleVO; +import org.springblade.modules.system.pojo.vo.UserVO; +import org.springblade.modules.system.wrapper.PostWrapper; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 查询控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/search") +@Tag(name = "信息查询", description = "信息查询") +public class SearchController { + + private final IRoleService roleService; + + private final IDeptService deptService; + + private final IPostService postService; + + private final IUserService userService; + + /** + * 角色信息查询 + */ + @GetMapping("/role") + @ApiOperationSupport(order = 1) + @Operation(summary = "角色信息查询", description = "传入roleName或者parentId") + public R> roleSearch(String roleName, Long parentId) { + return R.data(roleService.search(roleName, parentId)); + } + + /** + * 部门信息查询 + */ + @GetMapping("/dept") + @ApiOperationSupport(order = 2) + @Operation(summary = "部门信息查询", description = "传入deptName或者parentId") + public R> deptSearch(String deptName, Long parentId) { + return R.data(deptService.search(deptName, parentId)); + } + + /** + * 岗位信息查询 + */ + @GetMapping("/post") + @ApiOperationSupport(order = 3) + @Operation(summary = "岗位信息查询", description = "传入postName") + public R> postSearch(String postName, Query query) { + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); + if (Func.isNotBlank(postName)) { + queryWrapper.like(Post::getPostName, postName); + } + IPage pages = postService.page(Condition.getPage(query), queryWrapper); + return R.data(PostWrapper.build().pageVO(pages)); + } + + + /** + * 用户列表查询 + */ + @Parameters({ + @Parameter(name = "name", description = "人员姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "postName", description = "职位名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "current", description = "当前页数", in = ParameterIn.QUERY, schema = @Schema(type = "int")), + @Parameter(name = "size", description = "每页数量", in = ParameterIn.QUERY, schema = @Schema(type = "int")) + }) + @ApiOperationSupport(order = 4) + @Operation(summary = "用户列表查询", description = "用户列表查询") + @GetMapping("/user") + public R> userSearch(@Parameter(hidden = true) UserVO user, @Parameter(hidden = true) Query query) { + return R.data(userService.selectUserSearch(user, query)); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/TenantController.java b/src/main/java/org/springblade/modules/system/controller/TenantController.java new file mode 100644 index 0000000..f6c5517 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/TenantController.java @@ -0,0 +1,240 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Tenant; +import org.springblade.modules.system.pojo.entity.TenantPackage; +import org.springblade.modules.system.service.ITenantPackageService; +import org.springblade.modules.system.service.ITenantService; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +import static org.springblade.common.cache.SysCache.TENANT_PACKAGE_ID; +import static org.springblade.common.cache.SysCache.TENANT_TENANT_ID; +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; +import static org.springblade.core.tenant.constant.TenantBaseConstant.TENANT_DATASOURCE_CACHE; +import static org.springblade.core.tenant.constant.TenantBaseConstant.TENANT_DATASOURCE_EXIST_KEY; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/tenant") +@Tag(name = "租户管理", description = "租户管理") +public class TenantController extends BladeController { + + private final ITenantService tenantService; + private final ITenantPackageService tenantPackageService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入tenant") + public R detail(Tenant tenant) { + Tenant detail = tenantService.getOne(Condition.getQueryWrapper(tenant)); + return R.data(detail); + } + + /** + * 分页 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "tenantId", description = "参数名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "tenantName", description = "角色别名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "contactNumber", description = "联系电话", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入tenant") + public R> list(@Parameter(hidden = true) @RequestParam Map tenant, Query query, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(tenant, Tenant.class); + IPage pages = tenantService.page(Condition.getPage(query), (!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(pages); + } + + /** + * 下拉数据源 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 3) + @Operation(summary = "下拉数据源", description = "传入tenant") + public R> select(Tenant tenant, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(tenant); + List list = tenantService.list((!bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID)) ? queryWrapper.lambda().eq(Tenant::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(list); + } + + /** + * 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 4) + @Operation(summary = "分页", description = "传入tenant") + public R> page(Tenant tenant, Query query) { + IPage pages = tenantService.selectTenantPage(Condition.getPage(query), tenant); + return R.data(pages); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入tenant") + public R submit(@Valid @RequestBody Tenant tenant) { + return R.status(tenantService.submitTenant(tenant)); + } + + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(tenantService.removeTenant(Func.toLongList(ids))); + } + + /** + * 授权配置 + */ + @PostMapping("/setting") + @ApiOperationSupport(order = 7) + @Operation(summary = "授权配置", description = "传入ids,accountNumber,expireTime") + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + public R setting(@Parameter(description = "主键集合", required = true) @RequestParam String ids, @Parameter(description = "账号额度") Integer accountNumber, @Parameter(description = "过期时间") Date expireTime) { + return R.status(tenantService.setting(accountNumber, expireTime, ids)); + } + + /** + * 数据源配置 + */ + @PostMapping("datasource") + @ApiOperationSupport(order = 8) + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @Operation(summary = "数据源配置", description = "传入datasource_id") + public R datasource(@Parameter(description = "租户ID", required = true) @RequestParam String tenantId, @Parameter(description = "数据源ID", required = true) @RequestParam Long datasourceId) { + CacheUtil.evict(TENANT_DATASOURCE_CACHE, TENANT_DATASOURCE_EXIST_KEY, tenantId, Boolean.FALSE); + return R.status(tenantService.update(Wrappers.update().lambda().set(Tenant::getDatasourceId, datasourceId).eq(Tenant::getTenantId, tenantId))); + } + + /** + * 根据名称查询列表 + * + * @param name 租户名称 + */ + @GetMapping("/find-by-name") + @ApiOperationSupport(order = 9) + @Operation(summary = "详情", description = "传入tenant") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R> findByName(String name) { + List list = tenantService.list(Wrappers.query().lambda().like(Tenant::getTenantName, name)); + return R.data(list); + } + + /** + * 根据域名查询信息 + * + * @param domain 域名 + */ + @GetMapping("/info") + @ApiOperationSupport(order = 10) + @Operation(summary = "配置信息", description = "传入domain") + public R info(String domain) { + Tenant tenant = tenantService.getOne(Wrappers.query().lambda().eq(Tenant::getDomainUrl, domain)); + Kv kv = Kv.create(); + if (tenant != null) { + kv.set("tenantId", tenant.getTenantId()) + .set("domain", tenant.getDomainUrl()) + .set("backgroundUrl", tenant.getBackgroundUrl()); + } + return R.data(kv); + } + + /** + * 根据租户ID查询产品包详情 + * + * @param tenantId 租户ID + */ + @GetMapping("/package-detail") + @ApiOperationSupport(order = 11) + @Operation(summary = "产品包详情", description = "传入tenantId") + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + public R packageDetail(Long tenantId) { + Tenant tenant = tenantService.getById(tenantId); + return R.data(tenantPackageService.getById(tenant.getPackageId())); + } + + /** + * 产品包配置 + */ + @PostMapping("/package-setting") + @ApiOperationSupport(order = 12) + @PreAuth(RoleConstant.HAS_ROLE_ADMINISTRATOR) + @Operation(summary = "产品包配置", description = "传入packageId") + public R packageSetting(@Parameter(description = "租户ID", required = true) @RequestParam String tenantId, @Parameter(description = "产品包ID") Long packageId) { + CacheUtil.evict(SYS_CACHE, TENANT_TENANT_ID, tenantId, Boolean.FALSE); + CacheUtil.evict(SYS_CACHE, TENANT_PACKAGE_ID, tenantId, Boolean.FALSE); + return R.status(tenantService.update(Wrappers.update().lambda().set(Tenant::getPackageId, packageId).eq(Tenant::getTenantId, tenantId))); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/TenantPackageController.java b/src/main/java/org/springblade/modules/system/controller/TenantPackageController.java new file mode 100644 index 0000000..4b4fa38 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/TenantPackageController.java @@ -0,0 +1,143 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.TenantPackage; +import org.springblade.modules.system.service.ITenantPackageService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 租户产品表 控制器 + * + * @author BladeX + */ +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/tenant-package") +@Tag(name = "租户产品包", description = "租户产品包") +public class TenantPackageController extends BladeController { + + private final ITenantPackageService tenantPackageService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入tenantPackage") + public R detail(TenantPackage tenantPackage) { + TenantPackage detail = tenantPackageService.getOne(Condition.getQueryWrapper(tenantPackage)); + return R.data(detail); + } + + /** + * 分页 租户产品表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入tenantPackage") + public R> list(TenantPackage tenantPackage, Query query) { + IPage pages = tenantPackageService.page(Condition.getPage(query), Condition.getQueryWrapper(tenantPackage)); + return R.data(pages); + } + + /** + * 新增 租户产品表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 3) + @Operation(summary = "新增", description = "传入tenantPackage") + public R save(@Valid @RequestBody TenantPackage tenantPackage) { + return R.status(tenantPackageService.save(tenantPackage)); + } + + /** + * 修改 租户产品表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 4) + @Operation(summary = "修改", description = "传入tenantPackage") + public R update(@Valid @RequestBody TenantPackage tenantPackage) { + return R.status(tenantPackageService.updateById(tenantPackage)); + } + + /** + * 新增或修改 租户产品表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 5) + @Operation(summary = "新增或修改", description = "传入tenantPackage") + public R submit(@Valid @RequestBody TenantPackage tenantPackage) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(tenantPackageService.saveOrUpdate(tenantPackage)); + } + + + /** + * 删除 租户产品表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + CacheUtil.clear(SYS_CACHE, Boolean.FALSE); + return R.status(tenantPackageService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 下拉数据源 + */ + @GetMapping("/select") + @ApiOperationSupport(order = 7) + @Operation(summary = "下拉数据源", description = "传入tenant") + @PreAuth(RoleConstant.HAS_ROLE_ADMIN) + public R> select(TenantPackage tenantPackage) { + return R.data(tenantPackageService.list(Condition.getQueryWrapper(tenantPackage))); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/controller/TopMenuController.java b/src/main/java/org/springblade/modules/system/controller/TopMenuController.java new file mode 100644 index 0000000..1bd9f9b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/TopMenuController.java @@ -0,0 +1,145 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.TopMenu; +import org.springblade.modules.system.service.ITopMenuService; +import org.springblade.modules.system.pojo.vo.GrantVO; +import org.springframework.web.bind.annotation.*; + +import static org.springblade.core.cache.constant.CacheConstant.MENU_CACHE; +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 顶部菜单表 控制器 + * + * @author BladeX + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/topmenu") +@Tag(name = "顶部菜单表", description = "顶部菜单") +@PreAuth(RoleConstant.HAS_ROLE_ADMIN) +public class TopMenuController extends BladeController { + + private final ITopMenuService topMenuService; + + /** + * 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入topMenu") + public R detail(TopMenu topMenu) { + TopMenu detail = topMenuService.getOne(Condition.getQueryWrapper(topMenu)); + return R.data(detail); + } + + /** + * 分页 顶部菜单表 + */ + @GetMapping("/list") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入topMenu") + public R> list(TopMenu topMenu, Query query) { + IPage pages = topMenuService.page(Condition.getPage(query), Condition.getQueryWrapper(topMenu).lambda().orderByAsc(TopMenu::getSort)); + return R.data(pages); + } + + /** + * 新增 顶部菜单表 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入topMenu") + public R save(@Valid @RequestBody TopMenu topMenu) { + return R.status(topMenuService.save(topMenu)); + } + + /** + * 修改 顶部菜单表 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入topMenu") + public R update(@Valid @RequestBody TopMenu topMenu) { + return R.status(topMenuService.updateById(topMenu)); + } + + /** + * 新增或修改 顶部菜单表 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入topMenu") + public R submit(@Valid @RequestBody TopMenu topMenu) { + return R.status(topMenuService.saveOrUpdate(topMenu)); + } + + + /** + * 删除 顶部菜单表 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(topMenuService.deleteLogic(Func.toLongList(ids))); + } + + /** + * 设置顶部菜单 + */ + @PostMapping("/grant") + @ApiOperationSupport(order = 8) + @Operation(summary = "顶部菜单配置", description = "传入topMenuId集合以及menuId集合") + public R grant(@RequestBody GrantVO grantVO) { + CacheUtil.clear(SYS_CACHE); + CacheUtil.clear(MENU_CACHE); + CacheUtil.clear(MENU_CACHE, Boolean.FALSE); + boolean temp = topMenuService.grant(grantVO.getTopMenuIds(), grantVO.getMenuIds()); + return R.status(temp); + } + +} diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java new file mode 100644 index 0000000..13d4e8f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/controller/UserController.java @@ -0,0 +1,330 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.Parameters; +import io.swagger.v3.oas.annotations.enums.ParameterIn; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.CacheNames; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.redis.cache.BladeRedis; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.annotation.PreAuth; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.excel.UserExcel; +import org.springblade.modules.system.excel.UserImporter; +import org.springblade.modules.system.service.IUserService; +import org.springblade.modules.system.pojo.vo.UserVO; +import org.springblade.modules.system.wrapper.UserWrapper; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.USER_CACHE; + +/** + * 控制器 + * + * @author Chill + */ +@NonDS +@RestController +@AllArgsConstructor +@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/user") +@Tag(name = "用户", description = "用户") +public class UserController { + + private final IUserService userService; + private final BladeRedis bladeRedis; + + /** + * 查询单条 + */ + @ApiOperationSupport(order = 1) + @Operation(summary = "查看详情", description = "传入id") + @GetMapping("/detail") + + public R detail(User user) { + User detail = userService.getOne(Condition.getQueryWrapper(user)); + return R.data(UserWrapper.build().entityVO(detail)); + } + + /** + * 查询单条 + */ + @ApiOperationSupport(order = 2) + @Operation(summary = "查看详情", description = "传入id") + @GetMapping("/info") + public R info(BladeUser user) { + User detail = userService.getById(user.getUserId()); + return R.data(UserWrapper.build().entityVO(detail)); + } + + /** + * 用户列表 + */ + @GetMapping("/list") + @Parameters({ + @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "列表", description = "传入account和realName") + public R> list(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) { + if(!AuthUtil.isAdmin()){ + deptId = 4L; + } + List pages = userService.selectUserList(user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId())); + return R.data(UserWrapper.build().listVO(pages)); + } + + /** + * 自定义用户列表 + */ + @GetMapping("/page") + @Parameters({ + @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + }) + @ApiOperationSupport(order = 3) + @Operation(summary = "列表", description = "传入account和realName") + public R> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) { + if(!AuthUtil.isAdmin()){ + deptId = 4L; + } + IPage pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (bladeUser.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? StringPool.EMPTY : bladeUser.getTenantId())); + return R.data(UserWrapper.build().pageVO(pages)); + } + + /** + * 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增或修改", description = "传入User") + public R submit(@Valid @RequestBody User user) { + CacheUtil.clear(USER_CACHE); + user.setDeptId("4"); + user.setStatus(0); + user.setName(user.getRealName()); + user.setUserType(1); + return R.status(userService.submit(user)); + } + + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入User") + public R update(@Valid @RequestBody User user) { + CacheUtil.clear(USER_CACHE); + return R.status(userService.updateUser(user)); + } + + /** + * 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 6) + @Operation(summary = "删除", description = "传入id集合") + public R remove(@RequestParam String ids) { + CacheUtil.clear(USER_CACHE); + return R.status(userService.removeUser(ids)); + } + + /** + * 设置菜单权限 + */ + @PostMapping("/grant") + @ApiOperationSupport(order = 7) + @Operation(summary = "权限设置", description = "传入roleId集合以及menuId集合") + public R grant(@Parameter(description = "userId集合", required = true) @RequestParam String userIds, + @Parameter(description = "roleId集合", required = true) @RequestParam String roleIds) { + boolean temp = userService.grant(userIds, roleIds); + return R.status(temp); + } + + /** + * 重置密码 + */ + @PostMapping("/reset-password") + @ApiOperationSupport(order = 8) + @Operation(summary = "初始化密码", description = "传入userId集合") + public R resetPassword(@Parameter(description = "userId集合", required = true) @RequestParam String userIds) { + boolean temp = userService.resetPassword(userIds); + return R.status(temp); + } + + /** + * 修改密码 + */ + @PostMapping("/update-password") + @ApiOperationSupport(order = 9) + @Operation(summary = "修改密码", description = "传入密码") + public R updatePassword(BladeUser user, @Parameter(description = "旧密码", required = true) @RequestParam String oldPassword, + @Parameter(description = "新密码", required = true) @RequestParam String newPassword, + @Parameter(description = "新密码", required = true) @RequestParam String newPassword1) { + boolean temp = userService.updatePassword(user.getUserId(), oldPassword, newPassword, newPassword1); + return R.status(temp); + } + + /** + * 修改基本信息 + */ + @PostMapping("/update-info") + @ApiOperationSupport(order = 10) + @Operation(summary = "修改基本信息", description = "传入User") + public R updateInfo(@Valid @RequestBody User user) { + CacheUtil.clear(USER_CACHE); + return R.status(userService.updateUserInfo(user)); + } + + /** + * 用户列表 + */ + @GetMapping("/user-list") + @ApiOperationSupport(order = 11) + @Operation(summary = "用户列表", description = "传入user") + public R> userList(User user, BladeUser bladeUser) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(user); + List list = userService.list((!AuthUtil.isAdministrator()) ? queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()) : queryWrapper); + return R.data(list); + } + + /** + * 导入用户 + */ + @PostMapping("import-user") + @ApiOperationSupport(order = 12) + @Operation(summary = "导入用户", description = "传入excel") + public R importUser(MultipartFile file, Integer isCovered) { + UserImporter userImporter = new UserImporter(userService, isCovered == 1); + ExcelUtil.save(file, userImporter, UserExcel.class); + return R.success("操作成功"); + } + + /** + * 导出用户 + */ + @GetMapping("export-user") + @ApiOperationSupport(order = 13) + @Operation(summary = "导出用户", description = "传入user") + public void exportUser(@Parameter(hidden = true) @RequestParam Map user, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); + if (!AuthUtil.isAdministrator()) { + queryWrapper.lambda().eq(User::getTenantId, bladeUser.getTenantId()); + } + queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = userService.exportUser(queryWrapper); + ExcelUtil.export(response, "用户数据" + DateUtil.time(), "用户数据表", list, UserExcel.class); + } + + /** + * 导出模板 + */ + @GetMapping("export-template") + @ApiOperationSupport(order = 14) + @Operation(summary = "导出模板") + public void exportUser(HttpServletResponse response) { + List list = new ArrayList<>(); + ExcelUtil.export(response, "用户数据模板", "用户数据表", list, UserExcel.class); + } + + + /** + * 第三方注册用户 + */ + @PostMapping("/register-guest") + @ApiOperationSupport(order = 15) + @Operation(summary = "第三方注册用户", description = "传入user") + public R registerGuest(User user, Long oauthId) { + return R.status(userService.registerGuest(user, oauthId)); + } + + /** + * 配置用户平台信息 + */ + @PostMapping("/update-platform") + @ApiOperationSupport(order = 16) + @Operation(summary = "配置用户平台信息", description = "传入user") + public R updatePlatform(Long userId, Integer userType, String userExt) { + return R.status(userService.updatePlatform(userId, userType, userExt)); + } + + /** + * 查看平台详情 + */ + @ApiOperationSupport(order = 17) + @Operation(summary = "查看平台详情", description = "传入id") + @GetMapping("/platform-detail") + public R platformDetail(User user) { + return R.data(userService.platformDetail(user)); + } + + /** + * 用户解锁 + */ + @PostMapping("/unlock") + @ApiOperationSupport(order = 18) + @Operation(summary = "账号解锁", description = "传入id") + public R unlock(String userIds) { + if (StringUtil.isBlank(userIds)) { + return R.fail("请至少选择一个用户"); + } + List userList = userService.list(Wrappers.lambdaQuery().in(User::getId, Func.toLongList(userIds))); + userList.forEach(user -> bladeRedis.del(CacheNames.tenantKey(user.getTenantId(), CacheNames.USER_FAIL_KEY, user.getAccount()))); + return R.success("操作成功"); + } + +} diff --git a/src/main/java/org/springblade/modules/system/excel/RegionExcel.java b/src/main/java/org/springblade/modules/system/excel/RegionExcel.java new file mode 100644 index 0000000..9292f82 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/excel/RegionExcel.java @@ -0,0 +1,101 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * RegionExcel + * + * @author Chill + */ +@Data +@ColumnWidth(16) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class RegionExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ExcelProperty("区划编号") + private String code; + + @ExcelProperty("父区划编号") + private String parentCode; + + @ExcelProperty("祖区划编号") + private String ancestors; + + @ExcelProperty("区划名称") + private String name; + + @ExcelProperty("省级区划编号") + private String provinceCode; + + @ExcelProperty("省级名称") + private String provinceName; + + @ExcelProperty("市级区划编号") + private String cityCode; + + @ExcelProperty("市级名称") + private String cityName; + + @ExcelProperty("区级区划编号") + private String districtCode; + + @ExcelProperty("区级名称") + private String districtName; + + @ExcelProperty("镇级区划编号") + private String townCode; + + @ExcelProperty("镇级名称") + private String townName; + + @ExcelProperty("村级区划编号") + private String villageCode; + + @ExcelProperty("村级名称") + private String villageName; + + @ExcelProperty("层级") + private Integer regionLevel; + + @ExcelProperty("排序") + private Integer sort; + + @ExcelProperty("备注") + private String remark; + +} diff --git a/src/main/java/org/springblade/modules/system/excel/RegionImporter.java b/src/main/java/org/springblade/modules/system/excel/RegionImporter.java new file mode 100644 index 0000000..9b263a1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/excel/RegionImporter.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.excel; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.excel.support.ExcelImporter; +import org.springblade.modules.system.service.IRegionService; + +import java.util.List; + +/** + * 行政区划数据导入类 + * + * @author Chill + */ +@RequiredArgsConstructor +public class RegionImporter implements ExcelImporter { + + private final IRegionService service; + private final Boolean isCovered; + + @Override + public void save(List data) { + service.importRegion(data, isCovered); + } +} diff --git a/src/main/java/org/springblade/modules/system/excel/UserExcel.java b/src/main/java/org/springblade/modules/system/excel/UserExcel.java new file mode 100644 index 0000000..72fdd7c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/excel/UserExcel.java @@ -0,0 +1,108 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.excel; + +import com.alibaba.excel.annotation.ExcelIgnore; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + +/** + * UserExcel + * + * @author Chill + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(18) +public class UserExcel implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @ColumnWidth(15) + @ExcelProperty("租户编号") + private String tenantId; + + @ExcelIgnore + @ExcelProperty("用户平台") + private String userType; + + @ColumnWidth(20) + @ExcelProperty("用户平台名称") + private String userTypeName; + + @ColumnWidth(15) + @ExcelProperty("账户") + private String account; + + @ColumnWidth(10) + @ExcelProperty("昵称") + private String name; + + @ColumnWidth(10) + @ExcelProperty("姓名") + private String realName; + + @ExcelProperty("邮箱") + private String email; + + @ColumnWidth(15) + @ExcelProperty("手机") + private String phone; + + @ExcelIgnore + @ExcelProperty("角色ID") + private String roleId; + + @ExcelIgnore + @ExcelProperty("部门ID") + private String deptId; + + @ExcelIgnore + @ExcelProperty("岗位ID") + private String postId; + + @ExcelProperty("角色名称") + private String roleName; + + @ExcelProperty("部门名称") + private String deptName; + + @ExcelProperty("岗位名称") + private String postName; + + @ColumnWidth(20) + @ExcelProperty("生日") + private Date birthday; + +} diff --git a/src/main/java/org/springblade/modules/system/excel/UserImporter.java b/src/main/java/org/springblade/modules/system/excel/UserImporter.java new file mode 100644 index 0000000..112ec46 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/excel/UserImporter.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.excel; + +import lombok.RequiredArgsConstructor; +import org.springblade.core.excel.support.ExcelImporter; +import org.springblade.modules.system.service.IUserService; + +import java.util.List; + +/** + * 用户数据导入类 + * + * @author Chill + */ +@RequiredArgsConstructor +public class UserImporter implements ExcelImporter { + + private final IUserService service; + private final Boolean isCovered; + + @Override + public void save(List data) { + service.importUser(data, isCovered); + } +} diff --git a/src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.java b/src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.java new file mode 100644 index 0000000..cf4080e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.ApiScope; + +/** + * Mapper 接口 + * + * @author BladeX + */ +public interface ApiScopeMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.xml b/src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.xml new file mode 100644 index 0000000..033cd5b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/ApiScopeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.java b/src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.java new file mode 100644 index 0000000..b49e01a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.AuthClient; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface AuthClientMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.xml b/src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.xml new file mode 100644 index 0000000..b003891 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/AuthClientMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.java b/src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.java new file mode 100644 index 0000000..fc57a76 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.DataScope; + +/** + * Mapper 接口 + * + * @author BladeX + */ +public interface DataScopeMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.xml new file mode 100644 index 0000000..a11a80e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DataScopeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java new file mode 100644 index 0000000..77af2ef --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java @@ -0,0 +1,77 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.pojo.vo.DeptVO; + +import java.util.List; +import java.util.Map; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface DeptMapper extends BaseMapper { + + /** + * 懒加载部门列表 + * + * @param tenantId + * @param parentId + * @param param + * @return + */ + List lazyList(String tenantId, Long parentId, Map param); + + /** + * 获取树形节点 + * + * @param tenantId + * @return + */ + List tree(String tenantId); + + /** + * 懒加载获取树形节点 + * + * @param tenantId + * @param parentId + * @return + */ + List lazyTree(String tenantId, Long parentId); + + /** + * 获取部门名 + * + * @param ids + * @return + */ + List getDeptNames(Long[] ids); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml new file mode 100644 index 0000000..35fac15 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/DictBizMapper.java b/src/main/java/org/springblade/modules/system/mapper/DictBizMapper.java new file mode 100644 index 0000000..4063248 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DictBizMapper.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.pojo.vo.DictBizVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface DictBizMapper extends BaseMapper { + + /** + * 获取字典表对应中文 + * + * @param code 字典编号 + * @param dictKey 字典序号 + * @return + */ + String getValue(String code, String dictKey); + + /** + * 获取字典表 + * + * @param code 字典编号 + * @return + */ + List getList(String code); + + /** + * 获取树形节点 + * + * @return + */ + List tree(); + + /** + * 获取树形节点 + * + * @return + */ + List parentTree(); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/DictBizMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DictBizMapper.xml new file mode 100644 index 0000000..5468b96 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DictBizMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/DictMapper.java b/src/main/java/org/springblade/modules/system/mapper/DictMapper.java new file mode 100644 index 0000000..54a0e56 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DictMapper.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.pojo.vo.DictVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface DictMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param dict + * @return + */ + List selectDictPage(IPage page, DictVO dict); + + /** + * 获取字典表对应中文 + * + * @param code 字典编号 + * @param dictKey 字典序号 + * @return + */ + String getValue(String code, String dictKey); + + /** + * 获取字典表 + * + * @param code 字典编号 + * @return + */ + List getList(String code); + + /** + * 获取树形节点 + * + * @return + */ + List tree(); + + /** + * 获取树形节点 + * + * @return + */ + List parentTree(); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/DictMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DictMapper.xml new file mode 100644 index 0000000..9858a77 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/DictMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java new file mode 100644 index 0000000..9ee45d8 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.log.model.LogApi; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface LogApiMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml new file mode 100644 index 0000000..39b6194 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/LogApiMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.java b/src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.java new file mode 100644 index 0000000..6440e0d --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.log.model.LogError; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface LogErrorMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.xml b/src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.xml new file mode 100644 index 0000000..d14b253 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/LogErrorMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.java b/src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.java new file mode 100644 index 0000000..bbaf063 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.log.model.LogUsual; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface LogUsualMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.xml b/src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.xml new file mode 100644 index 0000000..410cad1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/LogUsualMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/MenuMapper.java b/src/main/java/org/springblade/modules/system/mapper/MenuMapper.java new file mode 100644 index 0000000..f35fcfa --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/MenuMapper.java @@ -0,0 +1,207 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.core.tool.node.TreeNode; +import org.springblade.modules.system.pojo.dto.MenuDTO; +import org.springblade.modules.system.pojo.entity.Menu; +import org.springblade.modules.system.pojo.vo.MenuVO; + +import java.util.List; +import java.util.Map; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface MenuMapper extends BaseMapper

{ + + /** + * 懒加载列表 + * + * @param parentId + * @param param + * @return + */ + List lazyList(Long parentId, Map param); + + /** + * 懒加载菜单列表 + * + * @param parentId + * @param param + * @return + */ + List lazyMenuList(Long parentId, Map param); + + /** + * 树形结构 + * + * @return + */ + List tree(); + + /** + * 授权树形结构 + * + * @return + */ + List grantTree(); + + /** + * 授权树形结构 + * + * @param roleId + * @return + */ + List grantTreeByRole(List roleId); + + /** + * 顶部菜单树形结构 + * + * @return + */ + List grantTopTree(); + + /** + * 顶部菜单树形结构 + * + * @param roleId + * @return + */ + List grantTopTreeByRole(List roleId); + + /** + * 数据权限授权树形结构 + * + * @return + */ + List grantDataScopeTree(); + + /** + * 接口权限授权树形结构 + * + * @return + */ + List grantApiScopeTree(); + + /** + * 数据权限授权树形结构 + * + * @param roleId + * @return + */ + List grantDataScopeTreeByRole(List roleId); + + /** + * 接口权限授权树形结构 + * + * @param roleId + * @return + */ + List grantApiScopeTreeByRole(List roleId); + + /** + * 所有菜单 + * + * @return + */ + List allMenu(); + + /** + * 权限配置菜单 + * + * @param roleId + * @param topMenuId + * @return + */ + List roleMenu(List roleId, Long topMenuId); + + /** + * 权限配置菜单 + * + * @param roleId + * @return + */ + List roleMenuByRoleId(List roleId); + + /** + * 权限配置菜单 + * + * @param topMenuId + * @return + */ + List roleMenuByTopMenuId(Long topMenuId); + + /** + * 所有菜单 + * + * @return + */ + List allMenuExt(); + + /** + * 权限配置菜单 + * + * @param roleId + * @param topMenuId + * @return + */ + List roleMenuExt(List roleId, Long topMenuId); + + /** + * 菜单树形结构 + * + * @param roleId + * @return + */ + List routes(List roleId); + + /** + * 按钮树形结构 + * + * @return + */ + List allButtons(); + + /** + * 按钮树形结构 + * + * @param roleId + * @return + */ + List buttons(List roleId); + + /** + * 获取配置的角色权限 + * + * @param roleIds + * @return + */ + List authRoutes(List roleIds); +} diff --git a/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml b/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml new file mode 100644 index 0000000..7f14b42 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/MenuMapper.xml @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/ParamMapper.java b/src/main/java/org/springblade/modules/system/mapper/ParamMapper.java new file mode 100644 index 0000000..40d2d4b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/ParamMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.Param; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface ParamMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/ParamMapper.xml b/src/main/java/org/springblade/modules/system/mapper/ParamMapper.xml new file mode 100644 index 0000000..483a11f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/ParamMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/PostMapper.java b/src/main/java/org/springblade/modules/system/mapper/PostMapper.java new file mode 100644 index 0000000..1d97eb6 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/PostMapper.java @@ -0,0 +1,59 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.pojo.vo.PostVO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * 岗位表 Mapper 接口 + * + * @author Chill + */ +public interface PostMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param post + * @return + */ + List selectPostPage(IPage page, PostVO post); + + /** + * 获取岗位名 + * + * @param ids + * @return + */ + List getPostNames(Long[] ids); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/PostMapper.xml b/src/main/java/org/springblade/modules/system/mapper/PostMapper.xml new file mode 100644 index 0000000..a5f2694 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/PostMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java new file mode 100644 index 0000000..426e95e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.excel.RegionExcel; +import org.springblade.modules.system.pojo.vo.RegionVO; + +import java.util.List; +import java.util.Map; + +/** + * 行政区划表 Mapper 接口 + * + * @author Chill + */ +public interface RegionMapper extends BaseMapper { + + /** + * 懒加载列表 + * + * @param parentCode + * @param param + * @return + */ + List lazyList(String parentCode, Map param); + + /** + * 懒加载列表 + * + * @param parentCode + * @param param + * @return + */ + List lazyTree(String parentCode, Map param); + + /** + * 导出区划数据 + * + * @param queryWrapper + * @return + */ + List exportRegion(@Param("ew") Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml new file mode 100644 index 0000000..e9733fa --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RegionMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java new file mode 100644 index 0000000..2de6833 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.java @@ -0,0 +1,76 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.vo.RoleVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface RoleMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param role + * @return + */ + List selectRolePage(IPage page, RoleVO role); + + /** + * 获取树形节点 + * + * @param tenantId + * @param excludeRole + * @return + */ + List tree(String tenantId, String excludeRole,String parentId); + + /** + * 获取角色名 + * + * @param ids + * @return + */ + List getRoleNames(Long[] ids); + + /** + * 获取角色名 + * + * @param ids + * @return + */ + List getRoleAliases(Long[] ids); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml new file mode 100644 index 0000000..5f82ae1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RoleMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.java b/src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.java new file mode 100644 index 0000000..6fd203c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.system.pojo.entity.RoleMenu; +import org.springblade.modules.system.pojo.vo.RoleMenuVO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface RoleMenuMapper extends BaseMapper { + + /** + * 自定义分页 + * @param page + * @param roleMenu + * @return + */ + List selectRoleMenuPage(IPage page, RoleMenuVO roleMenu); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.xml new file mode 100644 index 0000000..f53eb0a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RoleMenuMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.java b/src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.java new file mode 100644 index 0000000..bf80e2e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.RoleScope; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface RoleScopeMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.xml b/src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.xml new file mode 100644 index 0000000..db57416 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/RoleScopeMapper.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/TenantMapper.java b/src/main/java/org/springblade/modules/system/mapper/TenantMapper.java new file mode 100644 index 0000000..aa3f4c4 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TenantMapper.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.modules.system.pojo.entity.Tenant; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface TenantMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param tenant + * @return + */ + List selectTenantPage(IPage page, Tenant tenant); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/TenantMapper.xml b/src/main/java/org/springblade/modules/system/mapper/TenantMapper.xml new file mode 100644 index 0000000..c8783eb --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TenantMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.java b/src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.java new file mode 100644 index 0000000..98dfef2 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.TenantPackage; + +/** + * 租户产品表 Mapper 接口 + * + * @author BladeX + */ +public interface TenantPackageMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.xml b/src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.xml new file mode 100644 index 0000000..2849186 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TenantPackageMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.java b/src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.java new file mode 100644 index 0000000..73b4ae3 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.TopMenu; + +/** + * 顶部菜单表 Mapper 接口 + * + * @author BladeX + */ +public interface TopMenuMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.xml b/src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.xml new file mode 100644 index 0000000..18f6969 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TopMenuMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.java b/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.java new file mode 100644 index 0000000..877bf33 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.TopMenuSetting; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface TopMenuSettingMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml b/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml new file mode 100644 index 0000000..f1901dd --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/UserAppMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserAppMapper.java new file mode 100644 index 0000000..6185bd0 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserAppMapper.java @@ -0,0 +1,39 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.UserApp; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface UserAppMapper extends BaseMapper { + + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/UserAppMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserAppMapper.xml new file mode 100644 index 0000000..04b21df --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserAppMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.java new file mode 100644 index 0000000..68c5ea2 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.java @@ -0,0 +1,39 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.UserDept; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface UserDeptMapper extends BaseMapper { + + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.xml new file mode 100644 index 0000000..2a67f9e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserDeptMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java new file mode 100644 index 0000000..888236c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.modules.system.excel.UserExcel; +import org.springblade.modules.system.pojo.entity.User; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface UserMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page + * @param user + * @param deptIdList + * @param tenantId + * @return + */ + List selectUserPage(@Param("user") User user, @Param("deptIdList") List deptIdList, @Param("tenantId") String tenantId); + + /** + * 获取用户 + * + * @param tenantId + * @param account + * @return + */ + User getUser(String tenantId, String account); + + /** + * 获取导出用户数据 + * + * @param queryWrapper + * @return + */ + List exportUser(@Param("ew") Wrapper queryWrapper); + + User findUserById(long userId); + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml new file mode 100644 index 0000000..c4bc4ee --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.java new file mode 100644 index 0000000..3d23ed8 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.UserOauth; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface UserOauthMapper extends BaseMapper { + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.xml new file mode 100644 index 0000000..a7ac442 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserOauthMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.java new file mode 100644 index 0000000..340890b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.java @@ -0,0 +1,39 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.UserOther; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface UserOtherMapper extends BaseMapper { + + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.xml new file mode 100644 index 0000000..a790528 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserOtherMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/mapper/UserWebMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserWebMapper.java new file mode 100644 index 0000000..f767e91 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserWebMapper.java @@ -0,0 +1,39 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.modules.system.pojo.entity.UserWeb; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface UserWebMapper extends BaseMapper { + + +} diff --git a/src/main/java/org/springblade/modules/system/mapper/UserWebMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserWebMapper.xml new file mode 100644 index 0000000..9a6d01b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/mapper/UserWebMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/DeptDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/DeptDTO.java new file mode 100644 index 0000000..a7d3b6f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/DeptDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Dept; + +import java.io.Serial; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DeptDTO extends Dept { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/DictDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/DictDTO.java new file mode 100644 index 0000000..961eb2d --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/DictDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Dict; + +import java.io.Serial; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class DictDTO extends Dict { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/MenuDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/MenuDTO.java new file mode 100644 index 0000000..49f1a86 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/MenuDTO.java @@ -0,0 +1,44 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +public class MenuDTO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + private String alias; + private String path; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/ParamDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/ParamDTO.java new file mode 100644 index 0000000..58c2d92 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/ParamDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Param; + +import java.io.Serial; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class ParamDTO extends Param { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/PostDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/PostDTO.java new file mode 100644 index 0000000..931f0f7 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/PostDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Post; + +import java.io.Serial; + +/** + * 岗位表数据传输对象实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class PostDTO extends Post { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/RoleDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/RoleDTO.java new file mode 100644 index 0000000..690fa26 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/RoleDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Role; + +import java.io.Serial; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RoleDTO extends Role { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/dto/RoleMenuDTO.java b/src/main/java/org/springblade/modules/system/pojo/dto/RoleMenuDTO.java new file mode 100644 index 0000000..2d5a165 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/dto/RoleMenuDTO.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.RoleMenu; + +import java.io.Serial; + +/** + * 数据传输对象实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class RoleMenuDTO extends RoleMenu { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/ApiScope.java b/src/main/java/org/springblade/modules/system/pojo/entity/ApiScope.java new file mode 100644 index 0000000..be7b4fc --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/ApiScope.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_scope_api") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "ApiScope对象") +public class ApiScope extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 菜单主键 + */ + @Schema(description = "菜单主键") + private Long menuId; + /** + * 资源编号 + */ + @Schema(description = "资源编号") + private String resourceCode; + /** + * 接口权限名称 + */ + @Schema(description = "接口权限名称") + private String scopeName; + /** + * 接口权限字段 + */ + @Schema(description = "接口权限字段") + private String scopePath; + /** + * 接口权限类型 + */ + @Schema(description = "接口权限类型") + private Integer scopeType; + /** + * 接口权限备注 + */ + @Schema(description = "接口权限备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/AuthClient.java b/src/main/java/org/springblade/modules/system/pojo/entity/AuthClient.java new file mode 100644 index 0000000..e6ecee5 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/AuthClient.java @@ -0,0 +1,109 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_client") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "AuthClient对象") +public class AuthClient extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 客户端id + */ + @Schema(description = "客户端id") + private String clientId; + /** + * 客户端密钥 + */ + @Schema(description = "客户端密钥") + private String clientSecret; + /** + * 资源集合 + */ + @Schema(description = "资源集合") + private String resourceIds; + /** + * 授权范围 + */ + @Schema(description = "授权范围") + private String scope; + /** + * 授权类型 + */ + @Schema(description = "授权类型") + private String authorizedGrantTypes; + /** + * 回调地址 + */ + @Schema(description = "回调地址") + private String webServerRedirectUri; + /** + * 权限 + */ + @Schema(description = "权限") + private String authorities; + /** + * 令牌过期秒数 + */ + @Schema(description = "令牌过期秒数") + private Integer accessTokenValidity; + /** + * 刷新令牌过期秒数 + */ + @Schema(description = "刷新令牌过期秒数") + private Integer refreshTokenValidity; + /** + * 附加说明 + */ + @JsonIgnore + @Schema(description = "附加说明") + private String additionalInformation; + /** + * 自动授权 + */ + @Schema(description = "自动授权") + private String autoapprove; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/DataScope.java b/src/main/java/org/springblade/modules/system/pojo/entity/DataScope.java new file mode 100644 index 0000000..b5a4bfa --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/DataScope.java @@ -0,0 +1,97 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_scope_data") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "DataScope对象") +public class DataScope extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 菜单主键 + */ + @Schema(description = "菜单主键") + private Long menuId; + /** + * 资源编号 + */ + @Schema(description = "资源编号") + private String resourceCode; + /** + * 数据权限名称 + */ + @Schema(description = "数据权限名称") + private String scopeName; + /** + * 数据权限可见字段 + */ + @Schema(description = "数据权限可见字段") + private String scopeField; + /** + * 数据权限类名 + */ + @Schema(description = "数据权限类名") + private String scopeClass; + /** + * 数据权限字段 + */ + @Schema(description = "数据权限字段") + private String scopeColumn; + /** + * 数据权限类型 + */ + @Schema(description = "数据权限类型") + private Integer scopeType; + /** + * 数据权限值域 + */ + @Schema(description = "数据权限值域") + private String scopeValue; + /** + * 数据权限备注 + */ + @Schema(description = "数据权限备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java b/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java new file mode 100644 index 0000000..64d4347 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Dept.java @@ -0,0 +1,118 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_dept") +@Schema(description = "Dept对象") +public class Dept implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 租户ID + */ + @Schema(description = "租户ID") + private String tenantId; + + /** + * 父主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "父主键") + private Long parentId; + + /** + * 机构全称 + */ + @Schema(description = "机构全称") + private String fullName; + + /** + * 机构名 + */ + @Schema(description = "机构名") + private String deptName; + + /** + * 祖级机构主键 + */ + @Schema(description = "祖级机构主键") + private String ancestors; + + /** + * 机构类型 + */ + @Schema(description = "机构类型") + private Integer deptCategory; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + /** + * 是否已删除 + */ + @TableLogic + @Schema(description = "是否已删除") + private Integer isDeleted; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Dict.java b/src/main/java/org/springblade/modules/system/pojo/entity/Dict.java new file mode 100644 index 0000000..6fa7fd7 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Dict.java @@ -0,0 +1,112 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_dict") +@Schema(description = "Dict对象") +public class Dict implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 父主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "父主键") + private Long parentId; + + /** + * 字典码 + */ + @Schema(description = "字典码") + private String code; + + /** + * 字典值 + */ + @Schema(description = "字典值") + private String dictKey; + + /** + * 字典名称 + */ + @Schema(description = "字典名称") + private String dictValue; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 字典备注 + */ + @Schema(description = "字典备注") + private String remark; + + /** + * 是否已封存 + */ + @Schema(description = "是否已封存") + private Integer isSealed; + + /** + * 是否已删除 + */ + @TableLogic + @Schema(description = "是否已删除") + private Integer isDeleted; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/DictBiz.java b/src/main/java/org/springblade/modules/system/pojo/entity/DictBiz.java new file mode 100644 index 0000000..bd5e52f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/DictBiz.java @@ -0,0 +1,118 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_dict_biz") +@Schema(description = "DictBiz对象") +public class DictBiz implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 租户ID + */ + @Schema(description = "租户ID") + private String tenantId; + + /** + * 父主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "父主键") + private Long parentId; + + /** + * 字典码 + */ + @Schema(description = "字典码") + private String code; + + /** + * 字典值 + */ + @Schema(description = "字典值") + private String dictKey; + + /** + * 字典名称 + */ + @Schema(description = "字典名称") + private String dictValue; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 字典备注 + */ + @Schema(description = "字典备注") + private String remark; + + /** + * 是否已封存 + */ + @Schema(description = "是否已封存") + private Integer isSealed; + + /** + * 是否已删除 + */ + @TableLogic + @Schema(description = "是否已删除") + private Integer isDeleted; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Menu.java b/src/main/java/org/springblade/modules/system/pojo/entity/Menu.java new file mode 100644 index 0000000..358a2a4 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Menu.java @@ -0,0 +1,162 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.tool.utils.Func; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Objects; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_menu") +@Schema(description = "Menu对象") +public class Menu implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 菜单父主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "菜单父主键") + private Long parentId; + + /** + * 菜单编号 + */ + @Schema(description = "菜单编号") + private String code; + + /** + * 菜单名称 + */ + @Schema(description = "菜单名称") + private String name; + + /** + * 菜单别名 + */ + @Schema(description = "菜单别名") + private String alias; + + /** + * 请求地址 + */ + @Schema(description = "请求地址") + private String path; + + /** + * 菜单资源 + */ + @Schema(description = "菜单资源") + private String source; + + /** + * 组件资源 + */ + @Schema(description = "组件资源") + private String component; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 菜单类型 + */ + @Schema(description = "菜单类型") + private Integer category; + + /** + * 操作按钮类型 + */ + @Schema(description = "操作按钮类型") + private Integer action; + + /** + * 是否打开新页面 + */ + @Schema(description = "是否打开新页面") + private Integer isOpen; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + /** + * 是否已删除 + */ + @TableLogic + @Schema(description = "是否已删除") + private Integer isDeleted; + + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + Menu other = (Menu) obj; + return Func.equals(this.getId(), other.getId()); + } + + @Override + public int hashCode() { + return Objects.hash(id, parentId, code); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Param.java b/src/main/java/org/springblade/modules/system/pojo/entity/Param.java new file mode 100644 index 0000000..6078cff --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Param.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_param") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "Param对象") +public class Param extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 参数名 + */ + @Schema(description = "参数名") + private String paramName; + + /** + * 参数键 + */ + @Schema(description = "参数键") + private String paramKey; + + /** + * 参数值 + */ + @Schema(description = "参数值") + private String paramValue; + + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Post.java b/src/main/java/org/springblade/modules/system/pojo/entity/Post.java new file mode 100644 index 0000000..4a427cc --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Post.java @@ -0,0 +1,77 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; + +/** + * 岗位表实体类 + * + * @author Chill + */ +@Data +@TableName("blade_post") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "岗位表") +public class Post extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 类型 + */ + @Schema(description = "类型") + private Integer category; + /** + * 岗位编号 + */ + @Schema(description = "岗位编号") + private String postCode; + /** + * 岗位名称 + */ + @Schema(description = "岗位名称") + private String postName; + /** + * 岗位排序 + */ + @Schema(description = "岗位排序") + private Integer sort; + /** + * 岗位描述 + */ + @Schema(description = "岗位描述") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Region.java b/src/main/java/org/springblade/modules/system/pojo/entity/Region.java new file mode 100644 index 0000000..f816f29 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Region.java @@ -0,0 +1,138 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 行政区划表实体类 + * + * @author Chill + */ +@Data +@TableName("blade_region") +@Schema(description = "行政区划表") +public class Region implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 区划编号 + */ + @TableId(value = "code", type = IdType.INPUT) + @Schema(description = "区划编号") + private String code; + /** + * 父区划编号 + */ + @Schema(description = "父区划编号") + private String parentCode; + /** + * 祖区划编号 + */ + @Schema(description = "祖区划编号") + private String ancestors; + /** + * 区划名称 + */ + @Schema(description = "区划名称") + private String name; + /** + * 省级区划编号 + */ + @Schema(description = "省级区划编号") + private String provinceCode; + /** + * 省级名称 + */ + @Schema(description = "省级名称") + private String provinceName; + /** + * 市级区划编号 + */ + @Schema(description = "市级区划编号") + private String cityCode; + /** + * 市级名称 + */ + @Schema(description = "市级名称") + private String cityName; + /** + * 区级区划编号 + */ + @Schema(description = "区级区划编号") + private String districtCode; + /** + * 区级名称 + */ + @Schema(description = "区级名称") + private String districtName; + /** + * 镇级区划编号 + */ + @Schema(description = "镇级区划编号") + private String townCode; + /** + * 镇级名称 + */ + @Schema(description = "镇级名称") + private String townName; + /** + * 村级区划编号 + */ + @Schema(description = "村级区划编号") + private String villageCode; + /** + * 村级名称 + */ + @Schema(description = "村级名称") + private String villageName; + /** + * 层级 + */ + @Schema(description = "层级") + private Integer regionLevel; + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Role.java b/src/main/java/org/springblade/modules/system/pojo/entity/Role.java new file mode 100644 index 0000000..e2de5a4 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Role.java @@ -0,0 +1,103 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_role") +@Schema(description = "Role对象") +public class Role implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 租户ID + */ + @Schema(description = "租户ID") + private String tenantId; + + /** + * 父主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "父主键") + private Long parentId; + + /** + * 角色名 + */ + @Schema(description = "角色名") + private String roleName; + + /** + * 排序 + */ + @Schema(description = "排序") + private Integer sort; + + /** + * 角色别名 + */ + @Schema(description = "角色别名") + private String roleAlias; + + /** + * 是否已删除 + */ + @TableLogic + @Schema(description = "是否已删除") + private Integer isDeleted; + + @Schema(description = "户用系统id") + private String householdRoleId; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/RoleMenu.java b/src/main/java/org/springblade/modules/system/pojo/entity/RoleMenu.java new file mode 100644 index 0000000..e5384ff --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/RoleMenu.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_role_menu") +@Schema(description = "RoleMenu对象") +public class RoleMenu implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 菜单id + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "菜单id") + private Long menuId; + + /** + * 角色id + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "角色id") + private Long roleId; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/RoleScope.java b/src/main/java/org/springblade/modules/system/pojo/entity/RoleScope.java new file mode 100644 index 0000000..eef7e31 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/RoleScope.java @@ -0,0 +1,81 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_role_scope") +@Schema(description = "RoleScope对象") +public class RoleScope implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 权限类型 + */ + @Schema(description = "权限类型") + private Integer scopeCategory; + + /** + * 权限id + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "权限id") + private Long scopeId; + + /** + * 角色id + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "角色id") + private Long roleId; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/Tenant.java b/src/main/java/org/springblade/modules/system/pojo/entity/Tenant.java new file mode 100644 index 0000000..5041cfd --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/Tenant.java @@ -0,0 +1,122 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.NullSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serial; +import java.util.Date; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_tenant") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "Tenant对象") +public class Tenant extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 租户ID + */ + @Schema(description = "租户ID") + private String tenantId; + /** + * 租户名称 + */ + @Schema(description = "租户名称") + private String tenantName; + /** + * 域名地址 + */ + @Schema(description = "域名地址") + private String domainUrl; + /** + * 系统背景 + */ + @Schema(description = "系统背景") + private String backgroundUrl; + /** + * 联系人 + */ + @Schema(description = "联系人") + private String linkman; + /** + * 联系电话 + */ + @Schema(description = "联系电话") + private String contactNumber; + /** + * 联系地址 + */ + @Schema(description = "联系地址") + private String address; + /** + * 账号额度 + */ + @Schema(description = "账号额度") + private Integer accountNumber; + /** + * 过期时间 + */ + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + @Schema(description = "过期时间") + private Date expireTime; + /** + * 产品包ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @Schema(description = "产品包ID") + private Long packageId; + /** + * 数据源ID + */ + @JsonSerialize(nullsUsing = NullSerializer.class) + @Schema(description = "数据源ID") + private Long datasourceId; + /** + * 授权码 + */ + @Schema(description = "授权码") + private String licenseKey; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/TenantPackage.java b/src/main/java/org/springblade/modules/system/pojo/entity/TenantPackage.java new file mode 100644 index 0000000..a246f55 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/TenantPackage.java @@ -0,0 +1,67 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serial; + +/** + * 租户产品表实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_tenant_package") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "租户产品表") +public class TenantPackage extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 产品包名称 + */ + @Schema(description = "产品包名称") + private String packageName; + /** + * 菜单ID + */ + @Schema(description = "菜单ID") + private String menuId; + /** + * 备注 + */ + @Schema(description = "备注") + private String remark; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/TopMenu.java b/src/main/java/org/springblade/modules/system/pojo/entity/TopMenu.java new file mode 100644 index 0000000..c69e4fc --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/TopMenu.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; + +/** + * 顶部菜单表实体类 + * + * @author BladeX + */ +@Data +@TableName("blade_top_menu") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "顶部菜单表") +public class TopMenu extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 顶部菜单编号 + */ + @Schema(description = "顶部菜单编号") + private String code; + /** + * 顶部菜单名 + */ + @Schema(description = "顶部菜单名") + private String name; + /** + * 顶部菜单资源 + */ + @Schema(description = "顶部菜单资源") + private String source; + /** + * 顶部菜单排序 + */ + @Schema(description = "顶部菜单排序") + private Integer sort; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/TopMenuSetting.java b/src/main/java/org/springblade/modules/system/pojo/entity/TopMenuSetting.java new file mode 100644 index 0000000..6855c56 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/TopMenuSetting.java @@ -0,0 +1,38 @@ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import lombok.Data; + +/** + * TopMenuSetting + * + * @author Chill + */ +@Data +@TableName("blade_top_menu_setting") +public class TopMenuSetting { + + /** + * 主键id + */ + @JsonSerialize(using = ToStringSerializer.class) + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 顶部菜单id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long topMenuId; + + /** + * 菜单id + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long menuId; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/User.java b/src/main/java/org/springblade/modules/system/pojo/entity/User.java new file mode 100644 index 0000000..4820cc7 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/User.java @@ -0,0 +1,107 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tenant.mp.TenantEntity; + +import java.io.Serial; +import java.util.Date; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_user") +@EqualsAndHashCode(callSuper = true) +public class User extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户编号 + */ + private String code; + /** + * 用户平台 + */ + private Integer userType; + /** + * 账号 + */ + private String account; + /** + * 密码 + */ + private String password; + /** + * 昵称 + */ + private String name; + /** + * 真名 + */ + private String realName; + /** + * 头像 + */ + private String avatar; + /** + * 邮箱 + */ + private String email; + /** + * 手机 + */ + private String phone; + /** + * 生日 + */ + private Date birthday; + /** + * 性别 + */ + private Integer sex; + /** + * 角色id + */ + private String roleId; + /** + * 部门id + */ + private String deptId; + /** + * 岗位id + */ + private String postId; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/UserApp.java b/src/main/java/org/springblade/modules/system/pojo/entity/UserApp.java new file mode 100644 index 0000000..36cf5ae --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/UserApp.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_user_app") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "UserApp对象") +public class UserApp extends Model { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 用户ID + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "用户ID") + private Long userId; + + /** + * 用户拓展信息 + */ + @Schema(description = "用户拓展信息") + private String userExt; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/UserDept.java b/src/main/java/org/springblade/modules/system/pojo/entity/UserDept.java new file mode 100644 index 0000000..95b16cd --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/UserDept.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_user_dept") +@Schema(description = "UserDept对象") +public class UserDept implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 用户ID + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "用户ID") + private Long userId; + + /** + * 部门ID + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "部门ID") + private Long deptId; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/UserInfo.java b/src/main/java/org/springblade/modules/system/pojo/entity/UserInfo.java new file mode 100644 index 0000000..ca5c534 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/UserInfo.java @@ -0,0 +1,78 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.tool.support.Kv; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * 用户信息 + * + * @author Chill + */ +@Data +@Schema(description = "用户信息") +public class UserInfo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户基础信息 + */ + @Schema(description = "用户") + private User user; + + /** + * 拓展信息 + */ + @Schema(description = "拓展信息") + private Kv detail; + + /** + * 权限标识集合 + */ + @Schema(description = "权限集合") + private List permissions; + + /** + * 角色集合 + */ + @Schema(description = "角色集合") + private List roles; + + /** + * 第三方授权id + */ + @Schema(description = "第三方授权id") + private String oauthId; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/UserOauth.java b/src/main/java/org/springblade/modules/system/pojo/entity/UserOauth.java new file mode 100644 index 0000000..c422aee --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/UserOauth.java @@ -0,0 +1,119 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_user_oauth") +public class UserOauth implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 第三方系统用户ID + */ + private String uuid; + + /** + * 用户ID + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "用户主键") + private Long userId; + + /** + * 用户名 + */ + private String username; + /** + * 用户昵称 + */ + private String nickname; + /** + * 用户头像 + */ + private String avatar; + /** + * 用户网址 + */ + private String blog; + /** + * 所在公司 + */ + private String company; + /** + * 位置 + */ + private String location; + /** + * 用户邮箱 + */ + private String email; + /** + * 用户备注(各平台中的用户个人介绍) + */ + private String remark; + /** + * 性别 + */ + private String gender; + /** + * 用户来源 + */ + private String source; + + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/UserOther.java b/src/main/java/org/springblade/modules/system/pojo/entity/UserOther.java new file mode 100644 index 0000000..c666749 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/UserOther.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_user_other") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "UserOther对象") +public class UserOther extends Model { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 用户ID + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "用户ID") + private Long userId; + + /** + * 用户拓展信息 + */ + @Schema(description = "用户拓展信息") + private String userExt; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/entity/UserWeb.java b/src/main/java/org/springblade/modules/system/pojo/entity/UserWeb.java new file mode 100644 index 0000000..ebd81ba --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/entity/UserWeb.java @@ -0,0 +1,75 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("blade_user_web") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "UserWeb对象") +public class UserWeb extends Model { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "主键") + @TableId(value = "id", type = IdType.ASSIGN_ID) + private Long id; + + /** + * 用户ID + */ + @JsonSerialize(using = ToStringSerializer.class) + @Schema(description = "用户ID") + private Long userId; + + /** + * 用户拓展信息 + */ + @Schema(description = "用户拓展信息") + private String userExt; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/ApiScopeVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/ApiScopeVO.java new file mode 100644 index 0000000..07de798 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/ApiScopeVO.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.ApiScope; + +import java.io.Serial; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "ApiScopeVO对象") +public class ApiScopeVO extends ApiScope { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 规则类型名 + */ + private String scopeTypeName; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/CheckedTreeVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/CheckedTreeVO.java new file mode 100644 index 0000000..8f5de88 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/CheckedTreeVO.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import lombok.Data; + +import java.util.List; + +/** + * CheckedTreeVO + * + * @author Chill + */ +@Data +public class CheckedTreeVO { + + private List menu; + + private List dataScope; + + private List apiScope; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/DataScopeVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/DataScopeVO.java new file mode 100644 index 0000000..2313fb9 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/DataScopeVO.java @@ -0,0 +1,51 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.DataScope; + +import java.io.Serial; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "DataScopeVO对象") +public class DataScopeVO extends DataScope { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 规则类型名 + */ + private String scopeTypeName; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/DeptVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/DeptVO.java new file mode 100644 index 0000000..84aa027 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/DeptVO.java @@ -0,0 +1,95 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.modules.system.pojo.entity.Dept; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "DeptVO对象") +public class DeptVO extends Dept implements INode { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 父节点ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + /** + * 是否有子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Boolean hasChildren; + + @Override + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } + + /** + * 上级机构 + */ + private String parentName; + + /** + * 机构类型名称 + */ + private String deptCategoryName; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/DictBizVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/DictBizVO.java new file mode 100644 index 0000000..ef772a9 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/DictBizVO.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.modules.system.pojo.entity.DictBiz; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "DictBizVO对象") +public class DictBizVO extends DictBiz implements INode { + @Serial + private static final long serialVersionUID = 1L; + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 父节点ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + @Override + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } + + /** + * 上级字典 + */ + private String parentName; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/DictVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/DictVO.java new file mode 100644 index 0000000..7adf64c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/DictVO.java @@ -0,0 +1,82 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.modules.system.pojo.entity.Dict; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "DictVO对象") +public class DictVO extends Dict implements INode { + @Serial + private static final long serialVersionUID = 1L; + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 父节点ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + @Override + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } + + /** + * 上级字典 + */ + private String parentName; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/GrantTreeVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/GrantTreeVO.java new file mode 100644 index 0000000..96645bb --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/GrantTreeVO.java @@ -0,0 +1,53 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import lombok.Data; +import org.springblade.core.tool.node.TreeNode; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * GrantTreeVO + * + * @author Chill + */ +@Data +public class GrantTreeVO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + private List menu; + + private List dataScope; + + private List apiScope; + + private List hydataScope; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java new file mode 100644 index 0000000..6736231 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/GrantVO.java @@ -0,0 +1,60 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * GrantVO + * + * @author Chill + */ +@Data +public class GrantVO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + + @Schema(description = "roleIds集合") + private List roleIds; + + @Schema(description = "menuIds集合") + private List menuIds; + + @Schema(description = "topMenuIds集合") + private List topMenuIds; + + @Schema(description = "dataScopeIds集合") + private List dataScopeIds; + + @Schema(description = "apiScopeIds集合") + private List apiScopeIds; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/MenuVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/MenuVO.java new file mode 100644 index 0000000..bd676be --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/MenuVO.java @@ -0,0 +1,104 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.modules.system.pojo.entity.Menu; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "MenuVO对象") +public class MenuVO extends Menu implements INode { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 父节点ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + /** + * 是否有子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Boolean hasChildren; + + @Override + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } + + /** + * 上级菜单 + */ + private String parentName; + + /** + * 菜单类型 + */ + private String categoryName; + + /** + * 按钮功能 + */ + private String actionName; + + /** + * 是否新窗口打开 + */ + private String isOpenName; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/ParamVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/ParamVO.java new file mode 100644 index 0000000..a943730 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/ParamVO.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Param; + +import java.io.Serial; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "ParamVO对象") +public class ParamVO extends Param { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/PostVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/PostVO.java new file mode 100644 index 0000000..eb68fee --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/PostVO.java @@ -0,0 +1,52 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.Post; + +import java.io.Serial; + +/** + * 岗位表视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "岗位表") +public class PostVO extends Post { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 岗位分类名 + */ + private String categoryName; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/RegionVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/RegionVO.java new file mode 100644 index 0000000..7c4414f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/RegionVO.java @@ -0,0 +1,100 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Region; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 行政区划表视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "行政区划表") +public class RegionVO extends Region implements INode { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 父节点ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + /** + * 父节点名称 + */ + private String parentName; + + /** + * 是否有子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private Boolean hasChildren; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + @Override + public Long getId() { + return Func.toLong(this.getCode()); + } + + @Override + public Long getParentId() { + return Func.toLong(this.getParentCode()); + } + + @Override + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/RoleMenuVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/RoleMenuVO.java new file mode 100644 index 0000000..137a35e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/RoleMenuVO.java @@ -0,0 +1,47 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.RoleMenu; + +import java.io.Serial; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "RoleMenuVO对象") +public class RoleMenuVO extends RoleMenu { + @Serial + private static final long serialVersionUID = 1L; + +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/RoleVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/RoleVO.java new file mode 100644 index 0000000..4f86e6a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/RoleVO.java @@ -0,0 +1,83 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.tool.node.INode; +import org.springblade.modules.system.pojo.entity.Role; + +import java.io.Serial; +import java.util.ArrayList; +import java.util.List; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "RoleVO对象") +public class RoleVO extends Role implements INode { + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 父节点ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long parentId; + + /** + * 子孙节点 + */ + @JsonInclude(JsonInclude.Include.NON_EMPTY) + private List children; + + @Override + public List getChildren() { + if (this.children == null) { + this.children = new ArrayList<>(); + } + return this.children; + } + + /** + * 上级角色 + */ + private String parentName; +} diff --git a/src/main/java/org/springblade/modules/system/pojo/vo/UserVO.java b/src/main/java/org/springblade/modules/system/pojo/vo/UserVO.java new file mode 100644 index 0000000..edba91b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/pojo/vo/UserVO.java @@ -0,0 +1,97 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.modules.system.pojo.entity.User; + +import java.io.Serial; + +/** + * 视图实体类 + * + * @author Chill + */ +@Data +@EqualsAndHashCode(callSuper = true) +@Schema(description = "UserVO对象") +public class UserVO extends User { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键ID + */ + @JsonSerialize(using = ToStringSerializer.class) + private Long id; + + /** + * 密码 + */ + @JsonIgnore + private String password; + + /** + * 租户名 + */ + private String tenantName; + + /** + * 用户平台名 + */ + private String userTypeName; + + /** + * 角色名 + */ + private String roleName; + + /** + * 部门名 + */ + private String deptName; + + /** + * 岗位名 + */ + private String postName; + + /** + * 性别 + */ + private String sexName; + + /** + * 拓展信息 + */ + private String userExt; +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantContext.java b/src/main/java/org/springblade/modules/system/rule/TenantContext.java new file mode 100644 index 0000000..3a9a582 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantContext.java @@ -0,0 +1,100 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import lombok.Data; +import org.springblade.core.tenant.TenantId; +import org.springblade.modules.system.pojo.entity.*; +import org.springblade.modules.system.service.IDictBizService; +import org.springblade.modules.system.service.IMenuService; +import org.springblade.modules.system.service.ITenantService; + +import java.util.List; + +/** + * 租户上下文 + * + * @author Chill + */ +@Data +public class TenantContext { + + /** + * 菜单业务 + */ + private IMenuService menuService; + + /** + * 字典业务 + */ + private IDictBizService dictBizService; + + /** + * 租户业务 + */ + private ITenantService tenantService; + + /** + * 租户ID生成器 + */ + private TenantId tenantIdGenerator; + + /** + * 租户 + */ + private Tenant tenant; + + /** + * 角色 + */ + private Role role; + + /** + * 角色菜单合集 + */ + private List roleMenuList; + + /** + * 机构 + */ + private Dept dept; + + /** + * 岗位 + */ + private Post post; + + /** + * 业务字典合集 + */ + private List dictBizList; + + /** + * 用户 + */ + private User user; + +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantDeptRule.java b/src/main/java/org/springblade/modules/system/rule/TenantDeptRule.java new file mode 100644 index 0000000..6cdc364 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantDeptRule.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.pojo.entity.Tenant; + +/** + * 租户机构构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantDeptRule", name = "租户机构构建") +public class TenantDeptRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + Tenant tenant = contextBean.getTenant(); + + // 新建租户对应的默认部门 + Dept dept = new Dept(); + dept.setTenantId(tenant.getTenantId()); + dept.setParentId(BladeConstant.TOP_PARENT_ID); + dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID)); + dept.setDeptName(tenant.getTenantName()); + dept.setFullName(tenant.getTenantName()); + dept.setDeptCategory(1); + dept.setSort(2); + dept.setIsDeleted(BladeConstant.DB_NOT_DELETED); + + // 设置上下文 + contextBean.setDept(dept); + + } +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantDictBizRule.java b/src/main/java/org/springblade/modules/system/rule/TenantDictBizRule.java new file mode 100644 index 0000000..be96d64 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantDictBizRule.java @@ -0,0 +1,90 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.pojo.entity.Tenant; +import org.springblade.modules.system.service.IDictBizService; + +import java.util.LinkedList; +import java.util.List; + +/** + * 租户业务字典构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantDictBizRule", name = "租户业务字典构建") +public class TenantDictBizRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + Tenant tenant = contextBean.getTenant(); + IDictBizService dictBizService = contextBean.getDictBizService(); + + // 新建租户对应的默认业务字典 + LinkedList dictBizs = new LinkedList<>(); + List dictBizList = getDictBizs(dictBizService, tenant.getTenantId(), dictBizs); + + // 设置上下文 + contextBean.setDictBizList(dictBizList); + + } + + + private List getDictBizs(IDictBizService dictBizService, String tenantId, LinkedList dictBizs) { + List dictBizList = dictBizService.list(Wrappers.query().lambda().eq(DictBiz::getParentId, BladeConstant.TOP_PARENT_ID).eq(DictBiz::getTenantId, BladeConstant.ADMIN_TENANT_ID).eq(DictBiz::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + dictBizList.forEach(dictBiz -> { + Long oldParentId = dictBiz.getId(); + Long newParentId = IdWorker.getId(); + dictBiz.setId(newParentId); + dictBiz.setTenantId(tenantId); + dictBizs.add(dictBiz); + recursionDictBiz(dictBizService, tenantId, oldParentId, newParentId, dictBizs); + }); + return dictBizs; + } + + private void recursionDictBiz(IDictBizService dictBizService, String tenantId, Long oldParentId, Long newParentId, LinkedList dictBizs) { + List dictBizList = dictBizService.list(Wrappers.query().lambda().eq(DictBiz::getParentId, oldParentId).eq(DictBiz::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + dictBizList.forEach(dictBiz -> { + Long oldSubParentId = dictBiz.getId(); + Long newSubParentId = IdWorker.getId(); + dictBiz.setId(newSubParentId); + dictBiz.setTenantId(tenantId); + dictBiz.setParentId(newParentId); + dictBizs.add(dictBiz); + recursionDictBiz(dictBizService, tenantId, oldSubParentId, newSubParentId, dictBizs); + }); + } + +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantPostRule.java b/src/main/java/org/springblade/modules/system/rule/TenantPostRule.java new file mode 100644 index 0000000..b3a190b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantPostRule.java @@ -0,0 +1,58 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.pojo.entity.Tenant; + +/** + * 租户岗位构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantPostRule", name = "租户岗位构建") +public class TenantPostRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + Tenant tenant = contextBean.getTenant(); + + // 新建租户对应的默认岗位 + Post post = new Post(); + post.setTenantId(tenant.getTenantId()); + post.setCategory(1); + post.setPostCode("ceo"); + post.setPostName("首席执行官"); + post.setSort(1); + + // 设置上下文 + contextBean.setPost(post); + + } +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantRoleMenuRule.java b/src/main/java/org/springblade/modules/system/rule/TenantRoleMenuRule.java new file mode 100644 index 0000000..edcd319 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantRoleMenuRule.java @@ -0,0 +1,88 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.common.cache.ParamCache; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Menu; +import org.springblade.modules.system.pojo.entity.RoleMenu; +import org.springblade.modules.system.service.IMenuService; + +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; + +import static org.springblade.common.constant.TenantConstant.ACCOUNT_MENU_CODE_KEY; +import static org.springblade.common.constant.TenantConstant.MENU_CODES; + +/** + * 租户角色菜单构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantRoleMenuRule", name = "租户角色菜单构建") +public class TenantRoleMenuRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + IMenuService menuService = contextBean.getMenuService(); + // 新建租户对应的角色菜单权限 + LinkedList

userMenus = new LinkedList<>(); + // 获取参数配置的默认菜单集合,逗号隔开 + List menuCodes = Func.toStrList(ParamCache.getValue(ACCOUNT_MENU_CODE_KEY)); + List menus = getMenus(menuService, (!menuCodes.isEmpty() ? menuCodes : MENU_CODES), userMenus); + List roleMenuList = new ArrayList<>(); + menus.forEach(menu -> { + RoleMenu roleMenu = new RoleMenu(); + roleMenu.setMenuId(menu.getId()); + roleMenuList.add(roleMenu); + }); + // 设置上下文 + contextBean.setRoleMenuList(roleMenuList); + } + + private List getMenus(IMenuService menuService, List codes, LinkedList menus) { + codes.forEach(code -> { + Menu menu = menuService.getOne(Wrappers.query().lambda().eq(Menu::getCode, code).eq(Menu::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + if (menu != null) { + menus.add(menu); + recursionMenu(menuService, menu.getId(), menus); + } + }); + return menus; + } + + private void recursionMenu(IMenuService menuService, Long parentId, LinkedList menus) { + List menuList = menuService.list(Wrappers.query().lambda().eq(Menu::getParentId, parentId).eq(Menu::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + menus.addAll(menuList); + menuList.forEach(menu -> recursionMenu(menuService, menu.getId(), menus)); + } +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantRoleRule.java b/src/main/java/org/springblade/modules/system/rule/TenantRoleRule.java new file mode 100644 index 0000000..c669a56 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantRoleRule.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.entity.Tenant; + +/** + * 租户角色构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantRoleRule", name = "租户角色构建") +public class TenantRoleRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + Tenant tenant = contextBean.getTenant(); + // 新建租户对应的默认角色 + Role role = new Role(); + role.setTenantId(tenant.getTenantId()); + role.setParentId(BladeConstant.TOP_PARENT_ID); + role.setRoleName("管理员"); + role.setRoleAlias("admin"); + role.setSort(2); + role.setIsDeleted(BladeConstant.DB_NOT_DELETED); + // 设置上下文 + contextBean.setRole(role); + } +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantRule.java b/src/main/java/org/springblade/modules/system/rule/TenantRule.java new file mode 100644 index 0000000..16ec27c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantRule.java @@ -0,0 +1,80 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.common.cache.ParamCache; +import org.springblade.core.tenant.TenantId; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Tenant; +import org.springblade.modules.system.service.ITenantService; + +import java.util.List; +import java.util.stream.Collectors; + +import static org.springblade.common.constant.TenantConstant.ACCOUNT_NUMBER_KEY; +import static org.springblade.common.constant.TenantConstant.DEFAULT_ACCOUNT_NUMBER; + +/** + * 租户构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantRule", name = "租户构建") +public class TenantRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + Tenant tenant = contextBean.getTenant(); + TenantId tenantIdGenerator = contextBean.getTenantIdGenerator(); + ITenantService tenantService = contextBean.getTenantService(); + + // 获取租户ID + List tenants = tenantService.list(Wrappers.query().lambda().eq(Tenant::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + List codes = tenants.stream().map(Tenant::getTenantId).collect(Collectors.toList()); + String tenantId = getTenantId(tenantIdGenerator, codes); + tenant.setTenantId(tenantId); + // 获取参数配置的账号额度 + int accountNumber = Func.toInt(ParamCache.getValue(ACCOUNT_NUMBER_KEY), DEFAULT_ACCOUNT_NUMBER); + tenant.setAccountNumber(accountNumber); + + // 设置上下文 + contextBean.setTenant(tenant); + + } + + private String getTenantId(TenantId tenantIdGenerator, List codes) { + String code = tenantIdGenerator.generate(); + if (codes.contains(code)) { + return getTenantId(tenantIdGenerator, codes); + } + return code; + } +} diff --git a/src/main/java/org/springblade/modules/system/rule/TenantUserRule.java b/src/main/java/org/springblade/modules/system/rule/TenantUserRule.java new file mode 100644 index 0000000..a6a3dc0 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/rule/TenantUserRule.java @@ -0,0 +1,72 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.rule; + +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import org.springblade.common.cache.ParamCache; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.auth.provider.UserType; +import org.springblade.modules.system.pojo.entity.Tenant; +import org.springblade.modules.system.pojo.entity.User; + +import java.util.Date; + +import static org.springblade.common.constant.TenantConstant.DEFAULT_PASSWORD; +import static org.springblade.common.constant.TenantConstant.PASSWORD_KEY; + +/** + * 租户用户构建 + * + * @author Chill + */ +@LiteflowComponent(id = "tenantUserRule", name = "租户用户构建") +public class TenantUserRule extends NodeComponent { + @Override + public void process() throws Exception { + // 获取上下文 + TenantContext contextBean = this.getFirstContextBean(); + Tenant tenant = contextBean.getTenant(); + + // 新建租户对应的默认管理用户 + User user = new User(); + user.setTenantId(tenant.getTenantId()); + user.setName("admin"); + user.setRealName("admin"); + user.setAccount("admin"); + // 获取参数配置的密码 + String password = Func.toStr(ParamCache.getValue(PASSWORD_KEY), DEFAULT_PASSWORD); + user.setPassword(password); + user.setBirthday(new Date()); + user.setSex(1); + user.setUserType(UserType.WEB.getCategory()); + user.setIsDeleted(BladeConstant.DB_NOT_DELETED); + + // 设置上下文 + contextBean.setUser(user); + } +} diff --git a/src/main/java/org/springblade/modules/system/service/IApiScopeService.java b/src/main/java/org/springblade/modules/system/service/IApiScopeService.java new file mode 100644 index 0000000..b05effc --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IApiScopeService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.ApiScope; + +/** + * 服务类 + * + * @author BladeX + */ +public interface IApiScopeService extends BaseService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IAuthClientService.java b/src/main/java/org/springblade/modules/system/service/IAuthClientService.java new file mode 100644 index 0000000..68e8651 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IAuthClientService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.AuthClient; + +/** + * 服务类 + * + * @author Chill + */ +public interface IAuthClientService extends BaseService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IDataScopeService.java b/src/main/java/org/springblade/modules/system/service/IDataScopeService.java new file mode 100644 index 0000000..668b9f1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IDataScopeService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.DataScope; + +/** + * 服务类 + * + * @author BladeX + */ +public interface IDataScopeService extends BaseService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java new file mode 100644 index 0000000..7ac6b6a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java @@ -0,0 +1,128 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.pojo.vo.DeptVO; + +import java.util.List; +import java.util.Map; + +/** + * 服务类 + * + * @author Chill + */ +public interface IDeptService extends IService { + + /** + * 懒加载部门列表 + * + * @param tenantId + * @param parentId + * @param param + * @return + */ + List lazyList(String tenantId, Long parentId, Map param); + + /** + * 树形结构 + * + * @param tenantId + * @return + */ + List tree(String tenantId); + + /** + * 懒加载树形结构 + * + * @param tenantId + * @param parentId + * @return + */ + List lazyTree(String tenantId, Long parentId); + + /** + * 获取部门ID + * + * @param tenantId + * @param deptNames + * @return + */ + String getDeptIds(String tenantId, String deptNames); + + /** + * 获取部门ID + * + * @param tenantId + * @param deptNames + * @return + */ + String getDeptIdsByFuzzy(String tenantId, String deptNames); + + /** + * 获取部门名 + * + * @param deptIds + * @return + */ + List getDeptNames(String deptIds); + + /** + * 获取子部门ID + * + * @param deptId + * @return + */ + List getDeptChild(Long deptId); + + /** + * 删除部门 + * + * @param ids + * @return + */ + boolean removeDept(String ids); + + /** + * 提交 + * + * @param dept + * @return + */ + boolean submit(Dept dept); + + /** + * 部门信息查询 + * + * @param deptName + * @param parentId + * @return + */ + List search(String deptName, Long parentId); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IDictBizService.java b/src/main/java/org/springblade/modules/system/service/IDictBizService.java new file mode 100644 index 0000000..9142ab8 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IDictBizService.java @@ -0,0 +1,109 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.mp.support.Query; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.pojo.vo.DictBizVO; + +import java.util.List; +import java.util.Map; + +/** + * 服务类 + * + * @author Chill + */ +public interface IDictBizService extends IService { + + /** + * 树形结构 + * + * @return + */ + List tree(); + + /** + * 树形结构 + * + * @return + */ + List parentTree(); + + /** + * 获取字典表对应中文 + * + * @param code 字典编号 + * @param dictKey 字典序号 + * @return + */ + String getValue(String code, String dictKey); + + /** + * 获取字典表 + * + * @param code 字典编号 + * @return + */ + List getList(String code); + + /** + * 新增或修改 + * + * @param dict + * @return + */ + boolean submit(DictBiz dict); + + /** + * 删除字典 + * + * @param ids + * @return + */ + boolean removeDict(String ids); + + /** + * 顶级列表 + * + * @param dict + * @param query + * @return + */ + IPage parentList(Map dict, Query query); + + /** + * 子列表 + * + * @param dict + * @param parentId + * @return + */ + List childList(Map dict, Long parentId); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IDictService.java b/src/main/java/org/springblade/modules/system/service/IDictService.java new file mode 100644 index 0000000..2354318 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IDictService.java @@ -0,0 +1,118 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.mp.support.Query; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.pojo.vo.DictVO; + +import java.util.List; +import java.util.Map; + +/** + * 服务类 + * + * @author Chill + */ +public interface IDictService extends IService { + + /** + * 自定义分页 + * + * @param page + * @param dict + * @return + */ + IPage selectDictPage(IPage page, DictVO dict); + + /** + * 树形结构 + * + * @return + */ + List tree(); + + /** + * 树形结构 + * + * @return + */ + List parentTree(); + + /** + * 获取字典表对应中文 + * + * @param code 字典编号 + * @param dictKey 字典序号 + * @return + */ + String getValue(String code, String dictKey); + + /** + * 获取字典表 + * + * @param code 字典编号 + * @return + */ + List getList(String code); + + /** + * 新增或修改 + * + * @param dict + * @return + */ + boolean submit(Dict dict); + + /** + * 删除字典 + * + * @param ids + * @return + */ + boolean removeDict(String ids); + + /** + * 顶级列表 + * + * @param dict + * @param query + * @return + */ + IPage parentList(Map dict, Query query); + + /** + * 子列表 + * + * @param dict + * @param parentId + * @return + */ + List childList(Map dict, Long parentId); + +} diff --git a/src/main/java/org/springblade/modules/system/service/ILogApiService.java b/src/main/java/org/springblade/modules/system/service/ILogApiService.java new file mode 100644 index 0000000..b18d2e8 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ILogApiService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.log.model.LogApi; + +/** + * 服务类 + * + * @author Chill + */ +public interface ILogApiService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/ILogErrorService.java b/src/main/java/org/springblade/modules/system/service/ILogErrorService.java new file mode 100644 index 0000000..6296440 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ILogErrorService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.log.model.LogError; + +/** + * 服务类 + * + * @author Chill + */ +public interface ILogErrorService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/ILogService.java b/src/main/java/org/springblade/modules/system/service/ILogService.java new file mode 100644 index 0000000..2f52e85 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ILogService.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.model.LogError; +import org.springblade.core.log.model.LogUsual; + +/** + * 服务类 + * + * @author Chill + */ +public interface ILogService { + + /** + * 保存通用日志 + * + * @param log + * @return + */ + Boolean saveUsualLog(LogUsual log); + + /** + * 保存操作日志 + * + * @param log + * @return + */ + Boolean saveApiLog(LogApi log); + + /** + * 保存错误日志 + * + * @param log + * @return + */ + Boolean saveErrorLog(LogError log); + +} diff --git a/src/main/java/org/springblade/modules/system/service/ILogUsualService.java b/src/main/java/org/springblade/modules/system/service/ILogUsualService.java new file mode 100644 index 0000000..962aeb5 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ILogUsualService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.log.model.LogUsual; + +/** + * 服务类 + * + * @author Chill + */ +public interface ILogUsualService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IMenuService.java b/src/main/java/org/springblade/modules/system/service/IMenuService.java new file mode 100644 index 0000000..c8e93bd --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IMenuService.java @@ -0,0 +1,191 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.node.TreeNode; +import org.springblade.core.tool.support.Kv; +import org.springblade.modules.system.pojo.entity.Menu; +import org.springblade.modules.system.pojo.vo.MenuVO; + +import java.util.List; +import java.util.Map; + +/** + * 服务类 + * + * @author Chill + */ +public interface IMenuService extends IService

{ + + /** + * 懒加载列表 + * + * @param parentId + * @param param + * @return + */ + List lazyList(Long parentId, Map param); + + /** + * 懒加载菜单列表 + * + * @param parentId + * @param param + * @return + */ + List lazyMenuList(Long parentId, Map param); + + /** + * 菜单树形结构 + * + * @param roleId + * @param topMenuId + * @return + */ + List routes(String roleId, Long topMenuId); + + /** + * 菜单树形结构 + * + * @param roleId + * @param topMenuId + * @return + */ + List routesExt(String roleId, Long topMenuId); + + /** + * 按钮树形结构 + * + * @param roleId + * @return + */ + List buttons(String roleId); + + /** + * 树形结构 + * + * @return + */ + List tree(); + + /** + * 授权树形结构 + * + * @param user + * @return + */ + List grantTree(BladeUser user); + + /** + * 获取平台所有菜单权限 + * @return + */ + List grantTreeAll(); + + + /** + * 顶部菜单树形结构 + * + * @param user + * @return + */ + List grantTopTree(BladeUser user); + + /** + * 数据权限授权树形结构 + * + * @param user + * @return + */ + List grantDataScopeTree(BladeUser user); + + /** + * 接口权限授权树形结构 + * + * @param user + * @return + */ + List grantApiScopeTree(BladeUser user); + + /** + * 默认选中节点 + * + * @param roleIds + * @return + */ + List roleTreeKeys(String roleIds); + + /** + * 默认选中节点 + * + * @param topMenuIds + * @return + */ + List topTreeKeys(String topMenuIds); + + /** + * 默认选中节点 + * + * @param roleIds + * @return + */ + List dataScopeTreeKeys(String roleIds); + + /** + * 默认选中节点 + * + * @param roleIds + * @return + */ + List apiScopeTreeKeys(String roleIds); + + /** + * 获取配置的角色权限 + * + * @param user + * @return + */ + List authRoutes(BladeUser user); + + /** + * 删除菜单 + * + * @param ids + * @return + */ + boolean removeMenu(String ids); + + /** + * 提交 + * + * @param menu + * @return + */ + boolean submit(Menu menu); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IParamService.java b/src/main/java/org/springblade/modules/system/service/IParamService.java new file mode 100644 index 0000000..cf821b0 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IParamService.java @@ -0,0 +1,46 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.Param; + +/** + * 服务类 + * + * @author Chill + */ +public interface IParamService extends BaseService { + + /** + * 获取参数值 + * + * @param paramKey 参数key + * @return String + */ + String getValue(String paramKey); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IPostService.java b/src/main/java/org/springblade/modules/system/service/IPostService.java new file mode 100644 index 0000000..a43ca4e --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IPostService.java @@ -0,0 +1,77 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.pojo.vo.PostVO; +import org.springblade.core.mp.base.BaseService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.List; + +/** + * 岗位表 服务类 + * + * @author Chill + */ +public interface IPostService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param post + * @return + */ + IPage selectPostPage(IPage page, PostVO post); + + /** + * 获取岗位ID + * + * @param tenantId + * @param postNames + * @return + */ + String getPostIds(String tenantId, String postNames); + + /** + * 获取岗位ID + * + * @param tenantId + * @param postNames + * @return + */ + String getPostIdsByFuzzy(String tenantId, String postNames); + + /** + * 获取岗位名 + * + * @param postIds + * @return + */ + List getPostNames(String postIds); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IRegionService.java b/src/main/java/org/springblade/modules/system/service/IRegionService.java new file mode 100644 index 0000000..438bf50 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IRegionService.java @@ -0,0 +1,95 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.excel.RegionExcel; +import org.springblade.modules.system.pojo.vo.RegionVO; + +import java.util.List; +import java.util.Map; + +/** + * 行政区划表 服务类 + * + * @author Chill + */ +public interface IRegionService extends IService { + + /** + * 提交 + * + * @param region + * @return + */ + boolean submit(Region region); + + /** + * 删除 + * + * @param id + * @return + */ + boolean removeRegion(String id); + + /** + * 懒加载列表 + * + * @param parentCode + * @param param + * @return + */ + List lazyList(String parentCode, Map param); + + /** + * 懒加载列表 + * + * @param parentCode + * @param param + * @return + */ + List lazyTree(String parentCode, Map param); + + /** + * 导入区划数据 + * + * @param data + * @param isCovered + * @return + */ + void importRegion(List data, Boolean isCovered); + + /** + * 导出区划数据 + * + * @param queryWrapper + * @return + */ + List exportRegion(Wrapper queryWrapper); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IRoleMenuService.java b/src/main/java/org/springblade/modules/system/service/IRoleMenuService.java new file mode 100644 index 0000000..ce41ac8 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IRoleMenuService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.RoleMenu; + +/** + * 服务类 + * + * @author Chill + */ +public interface IRoleMenuService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IRoleScopeService.java b/src/main/java/org/springblade/modules/system/service/IRoleScopeService.java new file mode 100644 index 0000000..6e751a6 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IRoleScopeService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.RoleScope; + +/** + * 服务类 + * + * @author Chill + */ +public interface IRoleScopeService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IRoleService.java b/src/main/java/org/springblade/modules/system/service/IRoleService.java new file mode 100644 index 0000000..099b0c2 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IRoleService.java @@ -0,0 +1,122 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.vo.RoleVO; + +import jakarta.validation.constraints.NotEmpty; +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface IRoleService extends IService { + + /** + * 自定义分页 + * + * @param page + * @param role + * @return + */ + IPage selectRolePage(IPage page, RoleVO role); + + /** + * 树形结构 + * + * @param tenantId + * @return + */ + List tree(String tenantId); + + /** + * 权限配置 + * + * @param roleIds 角色id集合 + * @param menuIds 菜单id集合 + * @param dataScopeIds 数据权限id集合 + * @param apiScopeIds 接口权限id集合 + * @return 是否成功 + */ + boolean grant(@NotEmpty List roleIds, List menuIds, List dataScopeIds, List apiScopeIds); + + /** + * 获取角色ID + * + * @param tenantId + * @param roleNames + * @return + */ + String getRoleIds(String tenantId, String roleNames); + + /** + * 获取角色名 + * + * @param roleIds + * @return + */ + List getRoleNames(String roleIds); + + /** + * 获取角色名 + * + * @param roleIds + * @return + */ + List getRoleAliases(String roleIds); + + /** + * 提交 + * + * @param role + * @return + */ + boolean submit(Role role); + + /** + * 角色信息查询 + * + * @param roleName + * @param parentId + * @return + */ + List search(String roleName, Long parentId); + + /** + * 删除角色 + * + * @param ids + * @return + */ + boolean removeRole(String ids); + + +} diff --git a/src/main/java/org/springblade/modules/system/service/ITenantPackageService.java b/src/main/java/org/springblade/modules/system/service/ITenantPackageService.java new file mode 100644 index 0000000..6a9ad98 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ITenantPackageService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.TenantPackage; + +/** + * 租户产品表 服务类 + * + * @author BladeX + */ +public interface ITenantPackageService extends BaseService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/ITenantService.java b/src/main/java/org/springblade/modules/system/service/ITenantService.java new file mode 100644 index 0000000..cd86ad0 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ITenantService.java @@ -0,0 +1,85 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.Tenant; + +import java.util.Date; +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITenantService extends BaseService { + + /** + * 自定义分页 + * + * @param page + * @param tenant + * @return + */ + IPage selectTenantPage(IPage page, Tenant tenant); + + /** + * 根据租户编号获取实体 + * + * @param tenantId + * @return + */ + Tenant getByTenantId(String tenantId); + + /** + * 新增 + * + * @param tenant + * @return + */ + boolean submitTenant(Tenant tenant); + + /** + * 删除 + * + * @param ids + * @return + */ + boolean removeTenant(List ids); + + /** + * 配置租户授权 + * + * @param accountNumber + * @param expireTime + * @param ids + * @return + */ + boolean setting(Integer accountNumber, Date expireTime, String ids); + +} diff --git a/src/main/java/org/springblade/modules/system/service/ITopMenuService.java b/src/main/java/org/springblade/modules/system/service/ITopMenuService.java new file mode 100644 index 0000000..e8ed8d1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ITopMenuService.java @@ -0,0 +1,50 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.TopMenu; + +import jakarta.validation.constraints.NotEmpty; +import java.util.List; + +/** + * 顶部菜单表 服务类 + * + * @author BladeX + */ +public interface ITopMenuService extends BaseService { + + /** + * 顶部菜单配置 + * + * @param topMenuIds 顶部菜单id集合 + * @param menuIds 菜单id集合 + * @return 是否成功 + */ + boolean grant(@NotEmpty List topMenuIds, @NotEmpty List menuIds); + +} diff --git a/src/main/java/org/springblade/modules/system/service/ITopMenuSettingService.java b/src/main/java/org/springblade/modules/system/service/ITopMenuSettingService.java new file mode 100644 index 0000000..053a5f7 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/ITopMenuSettingService.java @@ -0,0 +1,38 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.TopMenuSetting; + +/** + * 服务类 + * + * @author Chill + */ +public interface ITopMenuSettingService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IUserDeptService.java b/src/main/java/org/springblade/modules/system/service/IUserDeptService.java new file mode 100644 index 0000000..23d4970 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IUserDeptService.java @@ -0,0 +1,39 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.UserDept; + +/** + * 服务类 + * + * @author Chill + */ +public interface IUserDeptService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IUserOauthService.java b/src/main/java/org/springblade/modules/system/service/IUserOauthService.java new file mode 100644 index 0000000..6d0d094 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IUserOauthService.java @@ -0,0 +1,39 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + + +import com.baomidou.mybatisplus.extension.service.IService; +import org.springblade.modules.system.pojo.entity.UserOauth; + +/** + * 服务类 + * + * @author Chill + */ +public interface IUserOauthService extends IService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/IUserSearchService.java b/src/main/java/org/springblade/modules/system/service/IUserSearchService.java new file mode 100644 index 0000000..c796747 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IUserSearchService.java @@ -0,0 +1,73 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + + +import org.springblade.core.mp.base.BaseService; +import org.springblade.modules.system.pojo.entity.User; + +import java.util.List; + +/** + * 用户查询服务类 + * + * @author Chill + */ +public interface IUserSearchService extends BaseService { + + /** + * 根据用户ID查询用户列表 + * + * @param userId 用户ID + * @return 用户列表 + */ + List listByUser(List userId); + + /** + * 根据部门ID查询用户列表 + * + * @param deptId 部门ID + * @return 用户列表 + */ + List listByDept(List deptId); + + /** + * 根据岗位ID查询用户列表 + * + * @param postId 岗位ID + * @return 用户列表 + */ + List listByPost(List postId); + + /** + * 根据角色ID查询用户列表 + * + * @param roleId 角色ID + * @return 用户列表 + */ + List listByRole(List roleId); + +} diff --git a/src/main/java/org/springblade/modules/system/service/IUserService.java b/src/main/java/org/springblade/modules/system/service/IUserService.java new file mode 100644 index 0000000..0c76fb1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/IUserService.java @@ -0,0 +1,248 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service; + + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.core.mp.support.Query; +import org.springblade.modules.auth.provider.UserType; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.pojo.entity.UserInfo; +import org.springblade.modules.system.pojo.entity.UserOauth; +import org.springblade.modules.system.excel.UserExcel; +import org.springblade.modules.system.pojo.vo.UserVO; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface IUserService extends BaseService { + + /** + * 新增用户 + * + * @param user + * @return + */ + boolean submit(User user); + + /** + * 修改用户 + * + * @param user + * @return + */ + boolean updateUser(User user); + + /** + * 修改用户基本信息 + * + * @param user + * @return + */ + boolean updateUserInfo(User user); + + /** + * 自定义分页 + * + * @param page + * @param user + * @param deptId + * @param tenantId + * @return + */ + IPage selectUserPage(IPage page, User user, Long deptId, String tenantId); + + List selectUserList(User user, Long deptId, String tenantId); + + /** + * 自定义分页 + * + * @param user + * @param query + * @return + */ + IPage selectUserSearch(UserVO user, Query query); + + /** + * 根据账号获取用户 + * + * @param tenantId + * @param account + * @return + */ + User userByAccount(String tenantId, String account); + + /** + * 根据账号获取用户 + * + * @param tenantId + * @param account + * @return + */ + User userByAccountUserId(String tenantId, String account,long userId); + + /** + * 用户信息 + * + * @param userId + * @return + */ + UserInfo userInfo(Long userId); + + /** + * 用户信息 + * + * @param userId + * @param userType + * @return + */ + UserInfo userInfo(Long userId, UserType userType); + + /** + * 用户信息 + * + * @param tenantId + * @param account + * @return + */ + UserInfo userInfo(String tenantId, String account); + + /** + * 用户信息 + * + * @param tenantId + * @param account + * @param userType + * @return + */ + UserInfo userInfo(String tenantId, String account, UserType userType); + + /** + * 用户信息 + * + * @param userOauth + * @return + */ + UserInfo userInfo(UserOauth userOauth); + + /** + * 给用户设置角色 + * + * @param userIds + * @param roleIds + * @return + */ + boolean grant(String userIds, String roleIds); + + /** + * 初始化密码 + * + * @param userIds + * @return + */ + boolean resetPassword(String userIds); + + /** + * 修改密码 + * + * @param userId + * @param oldPassword + * @param newPassword + * @param newPassword1 + * @return + */ + boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1); + + /** + * 删除用户 + * + * @param userIds + * @return + */ + boolean removeUser(String userIds); + + /** + * 导入用户数据 + * + * @param data + * @param isCovered + * @return + */ + void importUser(List data, Boolean isCovered); + + /** + * 导出用户数据 + * + * @param queryWrapper + * @return + */ + List exportUser(Wrapper queryWrapper); + + /** + * 注册用户 + * + * @param user + * @param oauthId + * @return + */ + boolean registerGuest(User user, Long oauthId); + + /** + * 注册用户 + * + * @param user + * @return + */ + boolean registerUser(User user); + + /** + * 配置用户平台 + * + * @param userId + * @param userType + * @param userExt + * @return + */ + boolean updatePlatform(Long userId, Integer userType, String userExt); + + /** + * 用户详细信息 + * + * @param user + * @return + */ + UserVO platformDetail(User user); + + + User userByUserId(long userId); + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/ApiScopeServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/ApiScopeServiceImpl.java new file mode 100644 index 0000000..cf474a4 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/ApiScopeServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.ApiScope; +import org.springblade.modules.system.mapper.ApiScopeMapper; +import org.springblade.modules.system.service.IApiScopeService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author BladeX + */ +@Service +public class ApiScopeServiceImpl extends BaseServiceImpl implements IApiScopeService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/AuthClientServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/AuthClientServiceImpl.java new file mode 100644 index 0000000..6e532a5 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/AuthClientServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.AuthClient; +import org.springblade.modules.system.mapper.AuthClientMapper; +import org.springblade.modules.system.service.IAuthClientService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class AuthClientServiceImpl extends BaseServiceImpl implements IAuthClientService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/DataScopeServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DataScopeServiceImpl.java new file mode 100644 index 0000000..3fcf01a --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/DataScopeServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.DataScope; +import org.springblade.modules.system.mapper.DataScopeMapper; +import org.springblade.modules.system.service.IDataScopeService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author BladeX + */ +@Service +public class DataScopeServiceImpl extends BaseServiceImpl implements IDataScopeService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java new file mode 100644 index 0000000..bdc6f69 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java @@ -0,0 +1,180 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.common.cache.SysCache; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.mapper.DeptMapper; +import org.springblade.modules.system.service.IDeptService; +import org.springblade.modules.system.pojo.vo.DeptVO; +import org.springblade.modules.system.wrapper.DeptWrapper; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class DeptServiceImpl extends ServiceImpl implements IDeptService { + private static final String TENANT_ID = "tenantId"; + private static final String PARENT_ID = "parentId"; + + @Override + public List lazyList(String tenantId, Long parentId, Map param) { + // 设置租户ID + if (AuthUtil.isAdministrator()) { + tenantId = StringPool.EMPTY; + } + String paramTenantId = Func.toStr(param.get(TENANT_ID)); + if (Func.isNotEmpty(paramTenantId) && AuthUtil.isAdministrator()) { + tenantId = paramTenantId; + } + // 判断点击搜索但是没有查询条件的情况 + if (Func.isEmpty(param.get(PARENT_ID)) && param.size() == 1) { + parentId = 0L; + } + // 判断数据权限控制,非超管角色只可看到本级及以下数据 + if (Func.toLong(parentId) == 0L && !AuthUtil.isAdministrator()) { + Long deptId = Func.firstLong(AuthUtil.getDeptId()); + Dept dept = SysCache.getDept(deptId); + if (dept.getParentId() != 0) { + parentId = dept.getParentId(); + } + } + // 判断点击搜索带有查询条件的情况 + if (Func.isEmpty(param.get(PARENT_ID)) && param.size() > 1 && Func.toLong(parentId) == 0L) { + parentId = null; + } + return baseMapper.lazyList(tenantId, parentId, param); + } + + @Override + public List tree(String tenantId) { + return ForestNodeMerger.merge(baseMapper.tree(tenantId)); + } + + @Override + public List lazyTree(String tenantId, Long parentId) { + if (AuthUtil.isAdministrator()) { + tenantId = StringPool.EMPTY; + } + return ForestNodeMerger.merge(baseMapper.lazyTree(tenantId, parentId)); + } + + @Override + public String getDeptIds(String tenantId, String deptNames) { + List deptList = baseMapper.selectList(Wrappers.query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames))); + if (deptList != null && deptList.size() > 0) { + return deptList.stream().map(dept -> Func.toStr(dept.getId())).distinct().collect(Collectors.joining(",")); + } + return null; + } + + @Override + public String getDeptIdsByFuzzy(String tenantId, String deptNames) { + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda().eq(Dept::getTenantId, tenantId); + queryWrapper.and(wrapper -> { + List names = Func.toStrList(deptNames); + names.forEach(name -> wrapper.like(Dept::getDeptName, name).or()); + }); + List deptList = baseMapper.selectList(queryWrapper); + if (deptList != null && deptList.size() > 0) { + return deptList.stream().map(dept -> Func.toStr(dept.getId())).distinct().collect(Collectors.joining(",")); + } + return null; + } + + @Override + public List getDeptNames(String deptIds) { + return baseMapper.getDeptNames(Func.toLongArray(deptIds)); + } + + @Override + public List getDeptChild(Long deptId) { + return baseMapper.selectList(Wrappers.query().lambda().like(Dept::getAncestors, deptId)); + } + + @Override + public boolean removeDept(String ids) { + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().in(Dept::getParentId, Func.toLongList(ids))); + if (cnt > 0L) { + throw new ServiceException("请先删除子节点!"); + } + return removeByIds(Func.toLongList(ids)); + } + + @Override + public boolean submit(Dept dept) { + if (Func.isEmpty(dept.getParentId())) { + dept.setTenantId(AuthUtil.getTenantId()); + dept.setParentId(BladeConstant.TOP_PARENT_ID); + dept.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID)); + } + if (dept.getParentId() > 0) { + Dept parent = getById(dept.getParentId()); + if (Func.toLong(dept.getParentId()) == Func.toLong(dept.getId())) { + throw new ServiceException("父节点不可选择自身!"); + } + dept.setTenantId(parent.getTenantId()); + String ancestors = parent.getAncestors() + StringPool.COMMA + dept.getParentId(); + dept.setAncestors(ancestors); + } + dept.setIsDeleted(BladeConstant.DB_NOT_DELETED); + return saveOrUpdate(dept); + } + + @Override + public List search(String deptName, Long parentId) { + String tenantId = AuthUtil.getTenantId(); + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); + if (Func.isNotEmpty(tenantId)) { + queryWrapper.eq(Dept::getTenantId, tenantId); + } + if (Func.isNotEmpty(deptName)) { + queryWrapper.like(Dept::getDeptName, deptName); + } + if (Func.isNotEmpty(parentId) && parentId > 0L) { + queryWrapper.eq(Dept::getParentId, parentId); + } + List deptList = baseMapper.selectList(queryWrapper); + return DeptWrapper.build().listNodeVO(deptList); + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java new file mode 100644 index 0000000..c0702a9 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/DictBizServiceImpl.java @@ -0,0 +1,128 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.common.cache.DictBizCache; +import org.springblade.common.constant.CommonConstant; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.mapper.DictBizMapper; +import org.springblade.modules.system.service.IDictBizService; +import org.springblade.modules.system.pojo.vo.DictBizVO; +import org.springblade.modules.system.wrapper.DictBizWrapper; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class DictBizServiceImpl extends ServiceImpl implements IDictBizService { + + @Override + public List tree() { + return ForestNodeMerger.merge(baseMapper.tree()); + } + + @Override + public List parentTree() { + return ForestNodeMerger.merge(baseMapper.parentTree()); + } + + @Override + public String getValue(String code, String dictKey) { + return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY); + } + + @Override + public List getList(String code) { + return baseMapper.getList(code); + } + + @Override + public boolean submit(DictBiz dict) { + LambdaQueryWrapper lqw = Wrappers.query().lambda().eq(DictBiz::getCode, dict.getCode()).eq(DictBiz::getDictKey, dict.getDictKey()); + Long cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(DictBiz::getId, dict.getId())); + if (cnt > 0L) { + throw new ServiceException("当前字典键值已存在!"); + } + // 修改顶级字典后同步更新下属字典的编号 + if (Func.isNotEmpty(dict.getId()) && dict.getParentId().longValue() == BladeConstant.TOP_PARENT_ID) { + DictBiz parent = DictBizCache.getById(dict.getId()); + this.update(Wrappers.update().lambda().set(DictBiz::getCode, dict.getCode()).eq(DictBiz::getCode, parent.getCode()).ne(DictBiz::getParentId, BladeConstant.TOP_PARENT_ID)); + } + if (Func.isEmpty(dict.getParentId())) { + dict.setParentId(BladeConstant.TOP_PARENT_ID); + } + dict.setIsDeleted(BladeConstant.DB_NOT_DELETED); + CacheUtil.clear(DICT_CACHE); + return saveOrUpdate(dict); + } + + @Override + public boolean removeDict(String ids) { + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().in(DictBiz::getParentId, Func.toLongList(ids))); + if (cnt > 0L) { + throw new ServiceException("请先删除子节点!"); + } + return removeByIds(Func.toLongList(ids)); + } + + @Override + public IPage parentList(Map dict, Query query) { + IPage page = this.page(Condition.getPage(query), Condition.getQueryWrapper(dict, DictBiz.class).lambda().eq(DictBiz::getParentId, CommonConstant.TOP_PARENT_ID).orderByAsc(DictBiz::getSort)); + return DictBizWrapper.build().pageVO(page); + } + + @Override + public List childList(Map dict, Long parentId) { + if (parentId < 0) { + return new ArrayList<>(); + } + dict.remove("parentId"); + DictBiz parentDict = DictBizCache.getById(parentId); + List list = this.list(Condition.getQueryWrapper(dict, DictBiz.class).lambda().ne(DictBiz::getId, parentId).eq(DictBiz::getCode, parentDict.getCode()).orderByAsc(DictBiz::getSort)); + return DictBizWrapper.build().listNodeVO(list); + } +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/DictServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DictServiceImpl.java new file mode 100644 index 0000000..5eeed98 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/DictServiceImpl.java @@ -0,0 +1,133 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.common.cache.DictCache; +import org.springblade.common.constant.CommonConstant; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.mapper.DictMapper; +import org.springblade.modules.system.service.IDictService; +import org.springblade.modules.system.pojo.vo.DictVO; +import org.springblade.modules.system.wrapper.DictWrapper; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static org.springblade.core.cache.constant.CacheConstant.DICT_CACHE; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class DictServiceImpl extends ServiceImpl implements IDictService { + + @Override + public IPage selectDictPage(IPage page, DictVO dict) { + return page.setRecords(baseMapper.selectDictPage(page, dict)); + } + + @Override + public List tree() { + return ForestNodeMerger.merge(baseMapper.tree()); + } + + @Override + public List parentTree() { + return ForestNodeMerger.merge(baseMapper.parentTree()); + } + + @Override + public String getValue(String code, String dictKey) { + return Func.toStr(baseMapper.getValue(code, dictKey), StringPool.EMPTY); + } + + @Override + public List getList(String code) { + return baseMapper.getList(code); + } + + @Override + public boolean submit(Dict dict) { + LambdaQueryWrapper lqw = Wrappers.query().lambda().eq(Dict::getCode, dict.getCode()).eq(Dict::getDictKey, dict.getDictKey()); + Long cnt = baseMapper.selectCount((Func.isEmpty(dict.getId())) ? lqw : lqw.notIn(Dict::getId, dict.getId())); + if (cnt > 0L) { + throw new ServiceException("当前字典键值已存在!"); + } + // 修改顶级字典后同步更新下属字典的编号 + if (Func.isNotEmpty(dict.getId()) && dict.getParentId().longValue() == BladeConstant.TOP_PARENT_ID) { + Dict parent = DictCache.getById(dict.getId()); + this.update(Wrappers.update().lambda().set(Dict::getCode, dict.getCode()).eq(Dict::getCode, parent.getCode()).ne(Dict::getParentId, BladeConstant.TOP_PARENT_ID)); + } + if (Func.isEmpty(dict.getParentId())) { + dict.setParentId(BladeConstant.TOP_PARENT_ID); + } + dict.setIsDeleted(BladeConstant.DB_NOT_DELETED); + CacheUtil.clear(DICT_CACHE, Boolean.FALSE); + return saveOrUpdate(dict); + } + + @Override + public boolean removeDict(String ids) { + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().in(Dict::getParentId, Func.toLongList(ids))); + if (cnt > 0L) { + throw new ServiceException("请先删除子节点!"); + } + return removeByIds(Func.toLongList(ids)); + } + + @Override + public IPage parentList(Map dict, Query query) { + IPage page = this.page(Condition.getPage(query), Condition.getQueryWrapper(dict, Dict.class).lambda().eq(Dict::getParentId, CommonConstant.TOP_PARENT_ID).orderByAsc(Dict::getSort)); + return DictWrapper.build().pageVO(page); + } + + @Override + public List childList(Map dict, Long parentId) { + if (parentId < 0) { + return new ArrayList<>(); + } + dict.remove("parentId"); + Dict parentDict = DictCache.getById(parentId); + List list = this.list(Condition.getQueryWrapper(dict, Dict.class).lambda().ne(Dict::getId, parentId).eq(Dict::getCode, parentDict.getCode()).orderByAsc(Dict::getSort)); + return DictWrapper.build().listNodeVO(list); + } +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java new file mode 100644 index 0000000..af07515 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java @@ -0,0 +1,43 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.model.LogApi; +import org.springblade.modules.system.mapper.LogApiMapper; +import org.springblade.modules.system.service.ILogApiService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class LogApiServiceImpl extends ServiceImpl implements ILogApiService { + + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/LogErrorServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/LogErrorServiceImpl.java new file mode 100644 index 0000000..5df8324 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/LogErrorServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.model.LogError; +import org.springblade.modules.system.mapper.LogErrorMapper; +import org.springblade.modules.system.service.ILogErrorService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class LogErrorServiceImpl extends ServiceImpl implements ILogErrorService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/LogServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/LogServiceImpl.java new file mode 100644 index 0000000..9c363fd --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/LogServiceImpl.java @@ -0,0 +1,41 @@ +package org.springblade.modules.system.service.impl; + +import lombok.AllArgsConstructor; +import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.model.LogError; +import org.springblade.core.log.model.LogUsual; +import org.springblade.modules.system.service.ILogApiService; +import org.springblade.modules.system.service.ILogErrorService; +import org.springblade.modules.system.service.ILogService; +import org.springblade.modules.system.service.ILogUsualService; +import org.springframework.stereotype.Service; + +/** + * Created by Blade. + * + * @author zhuangqian + */ +@Service +@AllArgsConstructor +public class LogServiceImpl implements ILogService { + + private final ILogUsualService usualService; + private final ILogApiService apiService; + private final ILogErrorService errorService; + + @Override + public Boolean saveUsualLog(LogUsual log) { + return usualService.save(log); + } + + @Override + public Boolean saveApiLog(LogApi log) { + return apiService.save(log); + } + + @Override + public Boolean saveErrorLog(LogError log) { + return errorService.save(log); + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/LogUsualServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/LogUsualServiceImpl.java new file mode 100644 index 0000000..92e6957 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/LogUsualServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.model.LogUsual; +import org.springblade.modules.system.mapper.LogUsualMapper; +import org.springblade.modules.system.service.ILogUsualService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class LogUsualServiceImpl extends ServiceImpl implements ILogUsualService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java new file mode 100644 index 0000000..4611d69 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/MenuServiceImpl.java @@ -0,0 +1,328 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.SysCache; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.node.TreeNode; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.system.pojo.dto.MenuDTO; +import org.springblade.modules.system.mapper.MenuMapper; +import org.springblade.modules.system.pojo.entity.*; +import org.springblade.modules.system.service.IMenuService; +import org.springblade.modules.system.service.IRoleMenuService; +import org.springblade.modules.system.service.IRoleScopeService; +import org.springblade.modules.system.service.ITopMenuSettingService; +import org.springblade.modules.system.pojo.vo.MenuVO; +import org.springblade.modules.system.wrapper.MenuWrapper; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +import static org.springblade.common.constant.CommonConstant.API_SCOPE_CATEGORY; +import static org.springblade.common.constant.CommonConstant.DATA_SCOPE_CATEGORY; +import static org.springblade.core.cache.constant.CacheConstant.MENU_CACHE; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class MenuServiceImpl extends ServiceImpl implements IMenuService { + + private final IRoleMenuService roleMenuService; + private final IRoleScopeService roleScopeService; + private final ITopMenuSettingService topMenuSettingService; + private final static String PARENT_ID = "parentId"; + private final static Integer MENU_CATEGORY = 1; + + @Override + public List lazyList(Long parentId, Map param) { + if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) { + parentId = null; + } + return baseMapper.lazyList(parentId, param); + } + + @Override + public List lazyMenuList(Long parentId, Map param) { + if (Func.isEmpty(Func.toStr(param.get(PARENT_ID)))) { + parentId = null; + } + return baseMapper.lazyMenuList(parentId, param); + } + + @Override + public List routes(String roleId, Long topMenuId) { + if (StringUtil.isBlank(roleId)) { + return null; + } + List

allMenus = baseMapper.allMenu(); + List roleMenus; + // 超级管理员并且不是顶部菜单请求则返回全部菜单 + if (AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) { + roleMenus = allMenus; + } + // 非超级管理员并且不是顶部菜单请求则返回对应角色权限菜单 + else if (!AuthUtil.isAdministrator() && Func.isEmpty(topMenuId)) { + roleMenus = tenantPackageMenu(baseMapper.roleMenuByRoleId(Func.toLongList(roleId))); + } + // 顶部菜单请求返回对应角色权限菜单 + else { + // 角色配置对应菜单 + List roleIdMenus = baseMapper.roleMenuByRoleId(Func.toLongList(roleId)); + // 反向递归角色菜单所有父级 + List routes = new LinkedList<>(roleIdMenus); + roleIdMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu)); + // 顶部配置对应菜单 + List topIdMenus = baseMapper.roleMenuByTopMenuId(topMenuId); + // 筛选匹配角色对应的权限菜单 + roleMenus = topIdMenus.stream().filter(x -> + routes.stream().anyMatch(route -> route.getId().longValue() == x.getId().longValue()) + ).collect(Collectors.toList()); + } + return buildRoutes(allMenus, roleMenus); + } + + @Override + public List routesExt(String roleId, Long topMenuId) { + if (StringUtil.isBlank(roleId)) { + return null; + } + List allMenus = baseMapper.allMenuExt(); + List roleMenus = baseMapper.roleMenuExt(Func.toLongList(roleId), topMenuId); + return buildRoutes(allMenus, roleMenus); + } + + private List buildRoutes(List allMenus, List roleMenus) { + List routes = new LinkedList<>(roleMenus); + roleMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu)); + routes.sort(Comparator.comparing(Menu::getSort)); + MenuWrapper menuWrapper = new MenuWrapper(); + List collect = routes.stream().filter(x -> Func.equals(x.getCategory(), 1)).collect(Collectors.toList()); + return menuWrapper.listNodeVO(collect); + } + + private void recursion(List allMenus, List routes, Menu roleMenu) { + Optional menu = allMenus.stream().filter(x -> Func.equals(x.getId(), roleMenu.getParentId())).findFirst(); + if (menu.isPresent() && !routes.contains(menu.get())) { + routes.add(menu.get()); + recursion(allMenus, routes, menu.get()); + } + } + + @Override + public List buttons(String roleId) { + List buttons = (AuthUtil.isAdministrator()) ? baseMapper.allButtons() : baseMapper.buttons(Func.toLongList(roleId)); + MenuWrapper menuWrapper = new MenuWrapper(); + return menuWrapper.listNodeVO(buttons); + } + + @Override + public List tree() { + return ForestNodeMerger.merge(baseMapper.tree()); + } + + @Override + public List grantTree(BladeUser user) { + if(!AuthUtil.isAdmin()){ + List treeList = baseMapper.grantTreeByRole(Func.toLongList("2")); + return ForestNodeMerger.merge(tenantPackageTree(treeList, user.getTenantId())); + } + List menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTree() : baseMapper.grantTreeByRole(Func.toLongList(user.getRoleId())); + return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId())); + } + + + @Override + public List grantTreeAll() { + List treeList = baseMapper.grantTreeByRole(Func.toLongList("2")); + return treeList; + } + + + + @Override + public List grantTopTree(BladeUser user) { + List menuTree = user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantTopTree() : baseMapper.grantTopTreeByRole(Func.toLongList(user.getRoleId())); + return ForestNodeMerger.merge(tenantPackageTree(menuTree, user.getTenantId())); + } + + /** + * 租户菜单权限自定义筛选 + */ + private List tenantPackageTree(List menuTree, String tenantId) { + TenantPackage tenantPackage = SysCache.getTenantPackage(tenantId); + if (!AuthUtil.isAdministrator() && Func.isNotEmpty(tenantPackage) && tenantPackage.getId() > 0L) { + List menuIds = Func.toLongList(tenantPackage.getMenuId()); + // 筛选出两者菜单交集集合 + List collect = menuTree.stream().filter(x -> menuIds.contains(x.getId())).collect(Collectors.toList()); + // 创建递归基础集合 + List packageTree = new LinkedList<>(collect); + // 递归筛选出菜单集合所有父级 + collect.forEach(treeNode -> recursionParent(menuTree, packageTree, treeNode)); + // 递归筛选出菜单集合所有子级 + collect.forEach(treeNode -> recursionChild(menuTree, packageTree, treeNode)); + // 合并在一起返回最终集合 + return packageTree; + } + return menuTree; + } + + /** + * 父节点递归 + */ + public void recursionParent(List menuTree, List packageTree, TreeNode treeNode) { + Optional node = menuTree.stream().filter(x -> Func.equals(x.getId(), treeNode.getParentId())).findFirst(); + if (node.isPresent() && !packageTree.contains(node.get())) { + packageTree.add(node.get()); + recursionParent(menuTree, packageTree, node.get()); + } + } + + /** + * 子节点递归 + */ + public void recursionChild(List menuTree, List packageTree, TreeNode treeNode) { + List nodes = menuTree.stream().filter(x -> Func.equals(x.getParentId(), treeNode.getId())).collect(Collectors.toList()); + nodes.forEach(node -> { + if (!packageTree.contains(node)) { + packageTree.add(node); + recursionChild(menuTree, packageTree, node); + } + }); + } + + /** + * 租户菜单权限自定义筛选 + */ + private List tenantPackageMenu(List menu) { + TenantPackage tenantPackage = SysCache.getTenantPackage(AuthUtil.getTenantId()); + if (Func.isNotEmpty(tenantPackage) && tenantPackage.getId() > 0L) { + List menuIds = Func.toLongList(tenantPackage.getMenuId()); + menu = menu.stream().filter(x -> menuIds.contains(x.getId())).collect(Collectors.toList()); + } + return menu; + } + + @Override + public List grantDataScopeTree(BladeUser user) { + return ForestNodeMerger.merge(user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantDataScopeTree() : baseMapper.grantDataScopeTreeByRole(Func.toLongList(user.getRoleId()))); + } + + @Override + public List grantApiScopeTree(BladeUser user) { + return ForestNodeMerger.merge(user.getTenantId().equals(BladeConstant.ADMIN_TENANT_ID) ? baseMapper.grantApiScopeTree() : baseMapper.grantApiScopeTreeByRole(Func.toLongList(user.getRoleId()))); + } + + @Override + public List roleTreeKeys(String roleIds) { + List roleMenus = roleMenuService.list(Wrappers.query().lambda().in(RoleMenu::getRoleId, Func.toLongList(roleIds))); + return roleMenus.stream().map(roleMenu -> Func.toStr(roleMenu.getMenuId())).collect(Collectors.toList()); + } + + @Override + public List topTreeKeys(String topMenuIds) { + List settings = topMenuSettingService.list(Wrappers.query().lambda().in(TopMenuSetting::getTopMenuId, Func.toLongList(topMenuIds))); + return settings.stream().map(setting -> Func.toStr(setting.getMenuId())).collect(Collectors.toList()); + } + + @Override + public List dataScopeTreeKeys(String roleIds) { + List roleScopes = roleScopeService.list(Wrappers.query().lambda().eq(RoleScope::getScopeCategory, DATA_SCOPE_CATEGORY).in(RoleScope::getRoleId, Func.toLongList(roleIds))); + return roleScopes.stream().map(roleScope -> Func.toStr(roleScope.getScopeId())).collect(Collectors.toList()); + } + + @Override + public List apiScopeTreeKeys(String roleIds) { + List roleScopes = roleScopeService.list(Wrappers.query().lambda().eq(RoleScope::getScopeCategory, API_SCOPE_CATEGORY).in(RoleScope::getRoleId, Func.toLongList(roleIds))); + return roleScopes.stream().map(roleScope -> Func.toStr(roleScope.getScopeId())).collect(Collectors.toList()); + } + + @Override + @Cacheable(cacheNames = MENU_CACHE, key = "'auth:routes:' + #user.roleId") + public List authRoutes(BladeUser user) { + List routes = baseMapper.authRoutes(Func.toLongList(user.getRoleId())); + List list = new ArrayList<>(); + routes.forEach(route -> list.add(Kv.create().set(route.getPath(), Kv.create().set("authority", Func.toStrArray(route.getAlias()))))); + return list; + } + + @Override + public boolean removeMenu(String ids) { + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().in(Menu::getParentId, Func.toLongList(ids))); + if (cnt > 0L) { + throw new ServiceException("请先删除子节点!"); + } + return removeByIds(Func.toLongList(ids)); + } + + @Override + public boolean submit(Menu menu) { + LambdaQueryWrapper menuQueryWrapper = Wrappers.lambdaQuery(); + if (menu.getId() == null) { + menuQueryWrapper.eq(Menu::getCode, menu.getCode()).or( + wrapper -> wrapper.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY) + ); + } else { + menuQueryWrapper.ne(Menu::getId, menu.getId()).and( + wrapper -> wrapper.eq(Menu::getCode, menu.getCode()).or( + o -> o.eq(Menu::getName, menu.getName()).eq(Menu::getCategory, MENU_CATEGORY) + ) + ); + } + Long cnt = baseMapper.selectCount(menuQueryWrapper); + if (cnt > 0L) { + throw new ServiceException("菜单名或编号已存在!"); + } + if (menu.getParentId() == null) { + menu.setParentId(BladeConstant.TOP_PARENT_ID); + } + if (menu.getParentId() != null || menu.getId() == null) { + Menu parentMenu = baseMapper.selectById(menu.getParentId()); + if (parentMenu != null && parentMenu.getCategory() != 1) { + throw new ServiceException("父节点只可选择菜单类型!"); + } + } + menu.setIsDeleted(BladeConstant.DB_NOT_DELETED); + return saveOrUpdate(menu); + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/ParamServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/ParamServiceImpl.java new file mode 100644 index 0000000..81dd309 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/ParamServiceImpl.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.Param; +import org.springblade.modules.system.mapper.ParamMapper; +import org.springblade.modules.system.service.IParamService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class ParamServiceImpl extends BaseServiceImpl implements IParamService { + + @Override + public String getValue(String paramKey) { + Param param = this.getOne(Wrappers.query().lambda().eq(Param::getParamKey, paramKey)); + return param.getParamValue(); + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/PostServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/PostServiceImpl.java new file mode 100644 index 0000000..a87f0c1 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/PostServiceImpl.java @@ -0,0 +1,83 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.mapper.PostMapper; +import org.springblade.modules.system.service.IPostService; +import org.springblade.modules.system.pojo.vo.PostVO; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 岗位表 服务实现类 + * + * @author Chill + */ +@Service +public class PostServiceImpl extends BaseServiceImpl implements IPostService { + + @Override + public IPage selectPostPage(IPage page, PostVO post) { + return page.setRecords(baseMapper.selectPostPage(page, post)); + } + + @Override + public String getPostIds(String tenantId, String postNames) { + List postList = baseMapper.selectList(Wrappers.query().lambda().eq(Post::getTenantId, tenantId).in(Post::getPostName, Func.toStrList(postNames))); + if (postList != null && postList.size() > 0) { + return postList.stream().map(post -> Func.toStr(post.getId())).distinct().collect(Collectors.joining(",")); + } + return null; + } + + @Override + public String getPostIdsByFuzzy(String tenantId, String postNames) { + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda().eq(Post::getTenantId, tenantId); + queryWrapper.and(wrapper -> { + List names = Func.toStrList(postNames); + names.forEach(name -> wrapper.like(Post::getPostName, name).or()); + }); + List postList = baseMapper.selectList(queryWrapper); + if (postList != null && postList.size() > 0) { + return postList.stream().map(post -> Func.toStr(post.getId())).distinct().collect(Collectors.joining(",")); + } + return null; + } + + @Override + public List getPostNames(String postIds) { + return baseMapper.getPostNames(Func.toLongArray(postIds)); + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java new file mode 100644 index 0000000..009a89d --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/RegionServiceImpl.java @@ -0,0 +1,139 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.core.tool.utils.StringPool; +import org.springblade.core.tool.utils.StringUtil; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.excel.RegionExcel; +import org.springblade.modules.system.mapper.RegionMapper; +import org.springblade.modules.system.service.IRegionService; +import org.springblade.modules.system.pojo.vo.RegionVO; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static org.springblade.common.cache.RegionCache.*; + +/** + * 行政区划表 服务实现类 + * + * @author Chill + */ +@Service +public class RegionServiceImpl extends ServiceImpl implements IRegionService { + + @Override + public boolean submit(Region region) { + // 设置市级编号格式 + String regionCode = region.getCode(); + String regionParentCode = region.getParentCode(); + if (regionCode.startsWith(MAIN_CODE)) { + region.setCode(StringUtil.removePrefix(regionCode, MAIN_CODE)); + } + if (regionParentCode.startsWith(MAIN_CODE)) { + region.setParentCode(StringUtil.removePrefix(regionParentCode, MAIN_CODE)); + } + // 查询是否已存在 + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().eq(Region::getCode, region.getCode())); + if (cnt > 0L) { + return this.updateById(region); + } + // 设置祖区划编号 + Region parent = getByCode(region.getParentCode()); + if (Func.isNotEmpty(parent) || Func.isNotEmpty(parent.getCode())) { + String ancestors = parent.getAncestors() + StringPool.COMMA + parent.getCode(); + region.setAncestors(ancestors); + } + // 设置省、市、区、镇、村 + Integer level = region.getRegionLevel(); + String code = region.getCode(); + String name = region.getName(); + if (level == PROVINCE_LEVEL) { + region.setProvinceCode(code); + region.setProvinceName(name); + } else if (level == CITY_LEVEL) { + region.setCityCode(code); + region.setCityName(name); + } else if (level == DISTRICT_LEVEL) { + region.setDistrictCode(code); + region.setDistrictName(name); + } else if (level == TOWN_LEVEL) { + region.setTownCode(code); + region.setTownName(name); + } else if (level == VILLAGE_LEVEL) { + region.setVillageCode(code); + region.setVillageName(name); + } + return this.save(region); + } + + @Override + public boolean removeRegion(String id) { + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().eq(Region::getParentCode, id)); + if (cnt > 0L) { + throw new ServiceException("请先删除子节点!"); + } + return removeById(id); + } + + @Override + public List lazyList(String parentCode, Map param) { + return baseMapper.lazyList(parentCode, param); + } + + @Override + public List lazyTree(String parentCode, Map param) { + return baseMapper.lazyTree(parentCode, param); + } + + @Override + public void importRegion(List data, Boolean isCovered) { + List list = new ArrayList<>(); + data.forEach(regionExcel -> { + Region region = BeanUtil.copyProperties(regionExcel, Region.class); + list.add(region); + }); + if (isCovered) { + this.saveOrUpdateBatch(list); + } else { + this.saveBatch(list); + } + } + + @Override + public List exportRegion(Wrapper queryWrapper) { + return baseMapper.exportRegion(queryWrapper); + } +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/RoleMenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RoleMenuServiceImpl.java new file mode 100644 index 0000000..e9141fd --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/RoleMenuServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.system.pojo.entity.RoleMenu; +import org.springblade.modules.system.mapper.RoleMenuMapper; +import org.springblade.modules.system.service.IRoleMenuService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class RoleMenuServiceImpl extends ServiceImpl implements IRoleMenuService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/RoleScopeServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RoleScopeServiceImpl.java new file mode 100644 index 0000000..6f0d153 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/RoleScopeServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.system.pojo.entity.RoleScope; +import org.springblade.modules.system.mapper.RoleScopeMapper; +import org.springblade.modules.system.service.IRoleScopeService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class RoleScopeServiceImpl extends ServiceImpl implements IRoleScopeService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java new file mode 100644 index 0000000..e049d0c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/RoleServiceImpl.java @@ -0,0 +1,244 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.constant.RoleConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.entity.RoleMenu; +import org.springblade.modules.system.pojo.entity.RoleScope; +import org.springblade.modules.system.mapper.RoleMapper; +import org.springblade.modules.system.service.IRoleMenuService; +import org.springblade.modules.system.service.IRoleScopeService; +import org.springblade.modules.system.service.IRoleService; +import org.springblade.modules.system.pojo.vo.RoleVO; +import org.springblade.modules.system.wrapper.RoleWrapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; + +import jakarta.validation.constraints.NotEmpty; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +import static org.springblade.common.constant.CommonConstant.API_SCOPE_CATEGORY; +import static org.springblade.common.constant.CommonConstant.DATA_SCOPE_CATEGORY; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@Validated +@AllArgsConstructor +public class RoleServiceImpl extends ServiceImpl implements IRoleService { + + private final IRoleMenuService roleMenuService; + private final IRoleScopeService roleScopeService; + + @Override + public IPage selectRolePage(IPage page, RoleVO role) { + return page.setRecords(baseMapper.selectRolePage(page, role)); + } + + @Override + public List tree(String tenantId) { + String userRole = AuthUtil.getUserRole(); + String excludeRole = null; + if (!CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMIN) && !CollectionUtil.contains(Func.toStrArray(userRole), RoleConstant.ADMINISTRATOR)) { + excludeRole = RoleConstant.ADMIN; + } + if(AuthUtil.isAdmin()){ + return ForestNodeMerger.merge(baseMapper.tree(tenantId, excludeRole,null)); + }else{ + return ForestNodeMerger.merge(baseMapper.tree(null, null,"2")); + } + + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean grant(@NotEmpty List roleIds, List menuIds, List dataScopeIds, List apiScopeIds) { + return grantRoleMenu(roleIds, menuIds) && grantDataScope(roleIds, dataScopeIds) && grantApiScope(roleIds, apiScopeIds); + } + + private boolean grantRoleMenu(List roleIds, List menuIds) { + // 防止越权配置超管角色 + Long administratorCount = baseMapper.selectCount(Wrappers.query().lambda().eq(Role::getRoleAlias, RoleConstant.ADMINISTRATOR).in(Role::getId, roleIds)); + if (!AuthUtil.isAdministrator() && administratorCount > 0L) { + throw new ServiceException("无权配置超管角色!"); + } + // 防止越权配置管理员角色 + Long adminCount = baseMapper.selectCount(Wrappers.query().lambda().eq(Role::getRoleAlias, RoleConstant.ADMIN).in(Role::getId, roleIds)); + if (!AuthUtil.isAdmin() && adminCount > 0L) { + throw new ServiceException("无权配置管理员角色!"); + } + // 删除角色配置的菜单集合 + roleMenuService.remove(Wrappers.update().lambda().in(RoleMenu::getRoleId, roleIds)); + // 组装配置 + List roleMenus = new ArrayList<>(); + roleIds.forEach(roleId -> menuIds.forEach(menuId -> { + RoleMenu roleMenu = new RoleMenu(); + roleMenu.setRoleId(roleId); + roleMenu.setMenuId(menuId); + roleMenus.add(roleMenu); + })); + // 新增配置 + roleMenuService.saveBatch(roleMenus); + // 递归设置下属角色菜单集合 + recursionRoleMenu(roleIds, menuIds); + return true; + } + + private void recursionRoleMenu(List roleIds, List menuIds) { + roleIds.forEach(roleId -> baseMapper.selectList(Wrappers.query().lambda().eq(Role::getParentId, roleId)).forEach(role -> { + List roleMenuList = roleMenuService.list(Wrappers.query().lambda().eq(RoleMenu::getRoleId, role.getId())); + // 子节点过滤出父节点删除的菜单集合 + List collectRoleMenuIds = roleMenuList.stream().map(RoleMenu::getMenuId).filter(menuId -> !menuIds.contains(menuId)).collect(Collectors.toList()); + if (collectRoleMenuIds.size() > 0) { + // 删除子节点权限外的菜单集合 + roleMenuService.remove(Wrappers.update().lambda().eq(RoleMenu::getRoleId, role.getId()).in(RoleMenu::getMenuId, collectRoleMenuIds)); + // 递归设置下属角色菜单集合 + recursionRoleMenu(Collections.singletonList(role.getId()), menuIds); + } + })); + } + + private boolean grantDataScope(List roleIds, List dataScopeIds) { + // 删除角色配置的数据权限集合 + roleScopeService.remove(Wrappers.update().lambda().eq(RoleScope::getScopeCategory, DATA_SCOPE_CATEGORY).in(RoleScope::getRoleId, roleIds)); + // 组装配置 + List roleDataScopes = new ArrayList<>(); + roleIds.forEach(roleId -> dataScopeIds.forEach(scopeId -> { + RoleScope roleScope = new RoleScope(); + roleScope.setScopeCategory(DATA_SCOPE_CATEGORY); + roleScope.setRoleId(roleId); + roleScope.setScopeId(scopeId); + roleDataScopes.add(roleScope); + })); + // 新增配置 + roleScopeService.saveBatch(roleDataScopes); + return true; + } + + private boolean grantApiScope(List roleIds, List apiScopeIds) { + // 删除角色配置的接口权限集合 + roleScopeService.remove(Wrappers.update().lambda().eq(RoleScope::getScopeCategory, API_SCOPE_CATEGORY).in(RoleScope::getRoleId, roleIds)); + // 组装配置 + List roleApiScopes = new ArrayList<>(); + roleIds.forEach(roleId -> apiScopeIds.forEach(scopeId -> { + RoleScope roleScope = new RoleScope(); + roleScope.setScopeCategory(API_SCOPE_CATEGORY); + roleScope.setScopeId(scopeId); + roleScope.setRoleId(roleId); + roleApiScopes.add(roleScope); + })); + // 新增配置 + roleScopeService.saveBatch(roleApiScopes); + return true; + } + + @Override + public String getRoleIds(String tenantId, String roleNames) { + List roleList = baseMapper.selectList(Wrappers.query().lambda().eq(Role::getTenantId, tenantId).in(Role::getRoleName, Func.toStrList(roleNames))); + if (roleList != null && roleList.size() > 0) { + return roleList.stream().map(role -> Func.toStr(role.getId())).distinct().collect(Collectors.joining(",")); + } + return null; + } + + @Override + public List getRoleNames(String roleIds) { + return baseMapper.getRoleNames(Func.toLongArray(roleIds)); + } + + @Override + public List getRoleAliases(String roleIds) { + return baseMapper.getRoleAliases(Func.toLongArray(roleIds)); + } + + @Override + public boolean submit(Role role) { + if (!AuthUtil.isAdministrator()) { + if (Func.toStr(role.getRoleAlias()).equals(RoleConstant.ADMINISTRATOR)) { + throw new ServiceException("无权限创建超管角色!"); + } + } + if (Func.isEmpty(role.getParentId())) { + role.setTenantId(AuthUtil.getTenantId()); + role.setParentId(BladeConstant.TOP_PARENT_ID); + } + if (role.getParentId() > 0) { + Role parent = getById(role.getParentId()); + if (Func.toLong(role.getParentId()) == Func.toLong(role.getId())) { + throw new ServiceException("父节点不可选择自身!"); + } + role.setTenantId(parent.getTenantId()); + } + role.setIsDeleted(BladeConstant.DB_NOT_DELETED); + return saveOrUpdate(role); + } + + @Override + public List search(String roleName, Long parentId) { + String tenantId = AuthUtil.getTenantId(); + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); + if (Func.isNotEmpty(roleName)) { + queryWrapper.like(Role::getRoleName, roleName); + } + if (Func.isNotEmpty(parentId) && parentId > 0L) { + queryWrapper.eq(Role::getParentId, parentId); + } + if (Func.isNotEmpty(tenantId)) { + queryWrapper.eq(Role::getTenantId, tenantId); + } + List roleList = baseMapper.selectList(queryWrapper); + return RoleWrapper.build().listNodeVO(roleList); + } + + @Override + public boolean removeRole(String ids) { + Long cnt = baseMapper.selectCount(Wrappers.query().lambda().in(Role::getParentId, Func.toLongList(ids))); + if (cnt > 0L) { + throw new ServiceException("请先删除子节点!"); + } + return removeByIds(Func.toLongList(ids)); + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/TenantPackageServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/TenantPackageServiceImpl.java new file mode 100644 index 0000000..de6a2d8 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/TenantPackageServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.TenantPackage; +import org.springblade.modules.system.mapper.TenantPackageMapper; +import org.springblade.modules.system.service.ITenantPackageService; +import org.springframework.stereotype.Service; + +/** + * 租户产品表 服务实现类 + * + * @author BladeX + */ +@Service +public class TenantPackageServiceImpl extends BaseServiceImpl implements ITenantPackageService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/TenantServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/TenantServiceImpl.java new file mode 100644 index 0000000..aa64fe3 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/TenantServiceImpl.java @@ -0,0 +1,161 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import lombok.AllArgsConstructor; +import org.springblade.core.cache.utils.CacheUtil; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.tenant.TenantId; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.DesUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.mapper.TenantMapper; +import org.springblade.modules.system.pojo.entity.*; +import org.springblade.modules.system.rule.TenantContext; +import org.springblade.modules.system.service.*; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +import static org.springblade.common.constant.TenantConstant.DES_KEY; +import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class TenantServiceImpl extends BaseServiceImpl implements ITenantService { + + private final TenantId tenantIdGenerator; + private final IRoleService roleService; + private final IMenuService menuService; + private final IDeptService deptService; + private final IPostService postService; + private final IRoleMenuService roleMenuService; + private final IDictBizService dictBizService; + private final IUserService userService; + private final FlowExecutor flowExecutor; + + @Override + public IPage selectTenantPage(IPage page, Tenant tenant) { + return page.setRecords(baseMapper.selectTenantPage(page, tenant)); + } + + @Override + public Tenant getByTenantId(String tenantId) { + return getOne(Wrappers.query().lambda().eq(Tenant::getTenantId, tenantId)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submitTenant(Tenant tenant) { + if (Func.isEmpty(tenant.getId())) { + TenantContext tenantContext = new TenantContext(); + tenantContext.setTenantIdGenerator(tenantIdGenerator); + tenantContext.setTenant(tenant); + tenantContext.setMenuService(menuService); + tenantContext.setDictBizService(dictBizService); + tenantContext.setTenantService(this); + + LiteflowResponse resp = flowExecutor.execute2Resp("tenantChain", null, tenantContext); + if (resp.isSuccess()) { + Role role = tenantContext.getRole(); + roleService.save(role); + + Long roleId = role.getId(); + List roleMenuList = tenantContext.getRoleMenuList(); + roleMenuList.forEach(roleMenu -> roleMenu.setRoleId(roleId)); + roleMenuService.saveBatch(roleMenuList); + + Dept dept = tenantContext.getDept(); + deptService.save(dept); + + Post post = tenantContext.getPost(); + postService.save(post); + + List dictBizList = tenantContext.getDictBizList(); + dictBizService.saveBatch(dictBizList); + + User user = tenantContext.getUser(); + user.setRoleId(String.valueOf(role.getId())); + user.setDeptId(String.valueOf(dept.getId())); + user.setPostId(String.valueOf(post.getId())); + userService.submit(user); + } else { + throw new ServiceException("租户业务数据构建异常"); + } + } + CacheUtil.clear(SYS_CACHE, tenant.getTenantId()); + return super.saveOrUpdate(tenant); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean removeTenant(List ids) { + List tenantIds = this.list(Wrappers.query().lambda().in(Tenant::getId, ids)) + .stream().map(tenant -> Func.toStr(tenant.getTenantId())).distinct().collect(Collectors.toList()); + CacheUtil.clear(SYS_CACHE, tenantIds); + if (tenantIds.contains(BladeConstant.ADMIN_TENANT_ID)) { + throw new ServiceException("不可删除管理租户!"); + } + boolean tenantTemp = this.deleteLogic(ids); + boolean userTemp = userService.remove(Wrappers.query().lambda().in(User::getTenantId, tenantIds)); + return tenantTemp && userTemp; + } + + @Override + public boolean setting(Integer accountNumber, Date expireTime, String ids) { + List tenantIds = this.list(Wrappers.query().lambda().in(Tenant::getId, ids)) + .stream().map(tenant -> Func.toStr(tenant.getTenantId())).distinct().collect(Collectors.toList()); + CacheUtil.clear(SYS_CACHE, tenantIds); + Func.toLongList(ids).forEach(id -> { + Kv kv = Kv.create().set("accountNumber", accountNumber).set("expireTime", expireTime).set("id", id); + String licenseKey = DesUtil.encryptToHex(JsonUtil.toJson(kv), DES_KEY); + update( + Wrappers.update().lambda() + .set(Tenant::getAccountNumber, accountNumber) + .set(Tenant::getExpireTime, expireTime) + .set(Tenant::getLicenseKey, licenseKey) + .eq(Tenant::getId, id) + ); + }); + return true; + } + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/TopMenuServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/TopMenuServiceImpl.java new file mode 100644 index 0000000..cae8b31 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/TopMenuServiceImpl.java @@ -0,0 +1,71 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.TopMenu; +import org.springblade.modules.system.pojo.entity.TopMenuSetting; +import org.springblade.modules.system.mapper.TopMenuMapper; +import org.springblade.modules.system.service.ITopMenuService; +import org.springblade.modules.system.service.ITopMenuSettingService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import jakarta.validation.constraints.NotEmpty; +import java.util.ArrayList; +import java.util.List; + +/** + * 顶部菜单表 服务实现类 + * + * @author BladeX + */ +@Service +@AllArgsConstructor +public class TopMenuServiceImpl extends BaseServiceImpl implements ITopMenuService { + + private final ITopMenuSettingService topMenuSettingService; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean grant(@NotEmpty List topMenuIds, @NotEmpty List menuIds) { + // 删除顶部菜单配置的菜单集合 + topMenuSettingService.remove(Wrappers.update().lambda().in(TopMenuSetting::getTopMenuId, topMenuIds)); + // 组装配置 + List menuSettings = new ArrayList<>(); + topMenuIds.forEach(topMenuId -> menuIds.forEach(menuId -> { + TopMenuSetting menuSetting = new TopMenuSetting(); + menuSetting.setTopMenuId(topMenuId); + menuSetting.setMenuId(menuId); + menuSettings.add(menuSetting); + })); + // 新增配置 + topMenuSettingService.saveBatch(menuSettings); + return true; + } +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/TopMenuSettingServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/TopMenuSettingServiceImpl.java new file mode 100644 index 0000000..1b2396c --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/TopMenuSettingServiceImpl.java @@ -0,0 +1,42 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.system.pojo.entity.TopMenuSetting; +import org.springblade.modules.system.mapper.TopMenuSettingMapper; +import org.springblade.modules.system.service.ITopMenuSettingService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class TopMenuSettingServiceImpl extends ServiceImpl implements ITopMenuSettingService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserDeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserDeptServiceImpl.java new file mode 100644 index 0000000..ac73b22 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/UserDeptServiceImpl.java @@ -0,0 +1,43 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springblade.modules.system.pojo.entity.UserDept; +import org.springblade.modules.system.mapper.UserDeptMapper; +import org.springblade.modules.system.service.IUserDeptService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +public class UserDeptServiceImpl extends ServiceImpl implements IUserDeptService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserOauthServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserOauthServiceImpl.java new file mode 100644 index 0000000..3413e83 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/UserOauthServiceImpl.java @@ -0,0 +1,45 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.AllArgsConstructor; +import org.springblade.modules.system.pojo.entity.UserOauth; +import org.springblade.modules.system.mapper.UserOauthMapper; +import org.springblade.modules.system.service.IUserOauthService; +import org.springframework.stereotype.Service; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class UserOauthServiceImpl extends ServiceImpl implements IUserOauthService { + +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserSearchServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserSearchServiceImpl.java new file mode 100644 index 0000000..f06fc59 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/UserSearchServiceImpl.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.mapper.UserMapper; +import org.springblade.modules.system.service.IUserSearchService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 用户查询服务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class UserSearchServiceImpl extends BaseServiceImpl implements IUserSearchService { + + @Override + public List listByUser(List userId) { + return this.list(Wrappers.lambdaQuery().in(User::getId, userId)); + } + + @Override + public List listByDept(List deptId) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + deptId.forEach(id -> queryWrapper.like(User::getDeptId, id).or()); + return this.list(queryWrapper); + } + + @Override + public List listByPost(List postId) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + postId.forEach(id -> queryWrapper.like(User::getPostId, id).or()); + return this.list(queryWrapper); + } + + @Override + public List listByRole(List roleId) { + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); + roleId.forEach(id -> queryWrapper.like(User::getRoleId, id).or()); + return this.list(queryWrapper); + } +} diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java new file mode 100644 index 0000000..2921e88 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java @@ -0,0 +1,479 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.service.impl; + + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.AllArgsConstructor; +import org.springblade.common.cache.DictCache; +import org.springblade.common.cache.ParamCache; +import org.springblade.common.cache.SysCache; +import org.springblade.common.cache.UserCache; +import org.springblade.common.constant.CommonConstant; +import org.springblade.common.constant.TenantConstant; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.oauth2.exception.OAuth2Exception; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tenant.BladeTenantProperties; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.jackson.JsonUtil; +import org.springblade.core.tool.support.Kv; +import org.springblade.core.tool.utils.*; +import org.springblade.modules.auth.provider.UserType; +import org.springblade.modules.system.excel.UserExcel; +import org.springblade.modules.system.mapper.UserMapper; +import org.springblade.modules.system.pojo.entity.*; +import org.springblade.modules.system.service.IRoleService; +import org.springblade.modules.system.service.IUserDeptService; +import org.springblade.modules.system.service.IUserOauthService; +import org.springblade.modules.system.service.IUserService; +import org.springblade.modules.system.pojo.vo.UserVO; +import org.springblade.modules.system.wrapper.UserWrapper; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + +import static org.springblade.common.constant.CommonConstant.DEFAULT_PARAM_PASSWORD; + +/** + * 服务实现类 + * + * @author Chill + */ +@Service +@AllArgsConstructor +public class UserServiceImpl extends BaseServiceImpl implements IUserService { + private static final String GUEST_NAME = "guest"; + + private final IUserDeptService userDeptService; + private final IUserOauthService userOauthService; + private final IRoleService roleService; + private final BladeTenantProperties tenantProperties; + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean submit(User user) { + if (StringUtil.isBlank(user.getTenantId())) { + user.setTenantId(BladeConstant.ADMIN_TENANT_ID); + } + String tenantId = user.getTenantId(); + Tenant tenant = SysCache.getTenant(tenantId); + if (Func.isNotEmpty(tenant)) { + Integer accountNumber = tenant.getAccountNumber(); + if (tenantProperties.getLicense()) { + String licenseKey = tenant.getLicenseKey(); + String decrypt = DesUtil.decryptFormHex(licenseKey, TenantConstant.DES_KEY); + accountNumber = JsonUtil.parse(decrypt, Tenant.class).getAccountNumber(); + } + Long tenantCount = baseMapper.selectCount(Wrappers.query().lambda().eq(User::getTenantId, tenantId)); + if (accountNumber != null && accountNumber > 0 && accountNumber <= tenantCount) { + throw new ServiceException("当前租户已到最大账号额度!"); + } + } + if (Func.isNotEmpty(user.getPassword())) { + user.setPassword(DigestUtil.encrypt(user.getPassword())); + } + Long userCount = baseMapper.selectCount(Wrappers.query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, user.getAccount())); + if (userCount > 0L && Func.isEmpty(user.getId())) { + throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount())); + } + return save(user) && submitUserDept(user); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean updateUser(User user) { + String tenantId = user.getTenantId(); + Long userCount = baseMapper.selectCount( + Wrappers.query().lambda() + .eq(User::getTenantId, tenantId) + .eq(User::getAccount, user.getAccount()) + .notIn(User::getId, user.getId()) + ); + if (userCount > 0L) { + throw new ServiceException(StringUtil.format("当前用户 [{}] 已存在!", user.getAccount())); + } + return updateUserInfo(user) && submitUserDept(user); + } + + @Override + public boolean updateUserInfo(User user) { + user.setPassword(null); + return updateById(user); + } + + private boolean submitUserDept(User user) { + List deptIdList = Func.toLongList(user.getDeptId()); + List userDeptList = new ArrayList<>(); + deptIdList.forEach(deptId -> { + UserDept userDept = new UserDept(); + userDept.setUserId(user.getId()); + userDept.setDeptId(deptId); + userDeptList.add(userDept); + }); + userDeptService.remove(Wrappers.update().lambda().eq(UserDept::getUserId, user.getId())); + return userDeptService.saveBatch(userDeptList); + } + + @Override + public IPage selectUserPage(IPage page, User user, Long deptId, String tenantId) { + List deptIdList = SysCache.getDeptChildIds(deptId); + return page.setRecords(baseMapper.selectUserPage(user, deptIdList, tenantId)); + } + + @Override + public List selectUserList(User user, Long deptId, String tenantId) { + List deptIdList = SysCache.getDeptChildIds(deptId); + return baseMapper.selectUserPage(user, deptIdList, tenantId); + } + + + @Override + public IPage selectUserSearch(UserVO user, Query query) { + LambdaQueryWrapper queryWrapper = Wrappers.query().lambda(); + String tenantId = AuthUtil.getTenantId(); + if (StringUtil.isNotBlank(tenantId)) { + queryWrapper.eq(User::getTenantId, tenantId); + } + if (StringUtil.isNotBlank(user.getName())) { + queryWrapper.like(User::getName, user.getName()); + } + if (StringUtil.isNotBlank(user.getDeptName())) { + String deptIds = SysCache.getDeptIdsByFuzzy(AuthUtil.getTenantId(), user.getDeptName()); + if (StringUtil.isNotBlank(deptIds)) { + queryWrapper.and(wrapper -> { + List ids = Func.toStrList(deptIds); + ids.forEach(id -> wrapper.like(User::getDeptId, id).or()); + }); + } + } + if (StringUtil.isNotBlank(user.getPostName())) { + String postIds = SysCache.getPostIdsByFuzzy(AuthUtil.getTenantId(), user.getPostName()); + if (StringUtil.isNotBlank(postIds)) { + queryWrapper.and(wrapper -> { + List ids = Func.toStrList(postIds); + ids.forEach(id -> wrapper.like(User::getPostId, id).or()); + }); + } + } + IPage pages = this.page(Condition.getPage(query), queryWrapper); + return UserWrapper.build().pageVO(pages); + } + + @Override + public User userByAccount(String tenantId, String account) { + return baseMapper.selectOne(Wrappers.query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, account).eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + } + + @Override + public User userByAccountUserId(String tenantId, String account, long userId) { + return baseMapper.selectOne(Wrappers.query().lambda().eq(User::getTenantId, tenantId).eq(User::getAccount, account).ne(User::getId,userId).eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED)); + } + + + + @Override + public UserInfo userInfo(Long userId) { + User user = baseMapper.selectById(userId); + return buildUserInfo(user); + } + + @Override + public UserInfo userInfo(Long userId, UserType userType) { + User user = baseMapper.selectById(userId); + return buildUserInfo(user, userType); + } + + @Override + public UserInfo userInfo(String tenantId, String account) { + User user = baseMapper.getUser(tenantId, account); + return buildUserInfo(user); + } + + @Override + public UserInfo userInfo(String tenantId, String account, UserType userType) { + User user = baseMapper.getUser(tenantId, account); + return buildUserInfo(user, userType); + } + + private UserInfo buildUserInfo(User user) { + return buildUserInfo(user, UserType.WEB); + } + + private UserInfo buildUserInfo(User user, UserType userType) { + if (ObjectUtil.isEmpty(user)) { + return null; + } + UserInfo userInfo = new UserInfo(); + userInfo.setUser(user); + if (Func.isNotEmpty(user)) { + List roleAlias = roleService.getRoleAliases(user.getRoleId()); + userInfo.setRoles(roleAlias); + } + // 根据每个用户平台,建立对应的detail表,通过查询将结果集写入到detail字段 + Kv detail = Kv.create().set("type", userType.getName()); + if (userType == UserType.WEB) { + UserWeb userWeb = new UserWeb(); + UserWeb query = userWeb.selectOne(Wrappers.lambdaQuery().eq(UserWeb::getUserId, user.getId())); + if (ObjectUtil.isNotEmpty(query)) { + detail.set("ext", query.getUserExt()); + } + } else if (userType == UserType.APP) { + UserApp userApp = new UserApp(); + UserApp query = userApp.selectOne(Wrappers.lambdaQuery().eq(UserApp::getUserId, user.getId())); + if (ObjectUtil.isNotEmpty(query)) { + detail.set("ext", query.getUserExt()); + } + } else { + UserOther userOther = new UserOther(); + UserOther query = userOther.selectOne(Wrappers.lambdaQuery().eq(UserOther::getUserId, user.getId())); + if (ObjectUtil.isNotEmpty(query)) { + detail.set("ext", query.getUserExt()); + } + } + userInfo.setDetail(detail); + return userInfo; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public UserInfo userInfo(UserOauth userOauth) { + UserOauth uo = userOauthService.getOne(Wrappers.query().lambda().eq(UserOauth::getUuid, userOauth.getUuid()).eq(UserOauth::getSource, userOauth.getSource())); + UserInfo userInfo; + if (Func.isNotEmpty(uo) && Func.isNotEmpty(uo.getUserId())) { + userInfo = this.userInfo(uo.getUserId()); + userInfo.setOauthId(Func.toStr(uo.getId())); + } else { + userInfo = new UserInfo(); + if (Func.isEmpty(uo)) { + userOauthService.save(userOauth); + userInfo.setOauthId(Func.toStr(userOauth.getId())); + } else { + userInfo.setOauthId(Func.toStr(uo.getId())); + } + User user = new User(); + user.setAccount(userOauth.getUsername()); + user.setTenantId(userOauth.getTenantId()); + userInfo.setUser(user); + userInfo.setRoles(Collections.singletonList(GUEST_NAME)); + } + return userInfo; + } + + @Override + public boolean grant(String userIds, String roleIds) { + User user = new User(); + user.setRoleId(roleIds); + return this.update(user, Wrappers.update().lambda().in(User::getId, Func.toLongList(userIds))); + } + + @Override + public boolean resetPassword(String userIds) { + User user = new User(); + user.setPassword(DigestUtil.encrypt(CommonConstant.DEFAULT_PASSWORD)); + user.setUpdateTime(DateUtil.now()); + return this.update(user, Wrappers.update().lambda().in(User::getId, Func.toLongList(userIds))); + } + + @Override + public boolean updatePassword(Long userId, String oldPassword, String newPassword, String newPassword1) { + User user = getById(userId); + if (!newPassword.equals(newPassword1)) { + throw new ServiceException("请输入正确的确认密码!"); + } + if (!user.getPassword().equals(DigestUtil.hex(oldPassword))) { + throw new ServiceException("原密码不正确!"); + } + return this.update(Wrappers.update().lambda().set(User::getPassword, DigestUtil.hex(newPassword)).eq(User::getId, userId)); + } + + @Override + public boolean removeUser(String userIds) { + if (Func.contains(Func.toLongArray(userIds), AuthUtil.getUserId())) { + throw new ServiceException("不能删除本账号!"); + } + return deleteLogic(Func.toLongList(userIds)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void importUser(List data, Boolean isCovered) { + data.forEach(userExcel -> { + User user = Objects.requireNonNull(BeanUtil.copyProperties(userExcel, User.class)); + // 设置用户平台 + user.setUserType(Func.toInt(DictCache.getKey(DictEnum.USER_TYPE, userExcel.getUserTypeName()), 1)); + // 设置部门ID + user.setDeptId(Func.toStrWithEmpty(SysCache.getDeptIds(userExcel.getTenantId(), userExcel.getDeptName()), StringPool.EMPTY)); + // 设置岗位ID + user.setPostId(Func.toStrWithEmpty(SysCache.getPostIds(userExcel.getTenantId(), userExcel.getPostName()), StringPool.EMPTY)); + // 设置角色ID + user.setRoleId(Func.toStrWithEmpty(SysCache.getRoleIds(userExcel.getTenantId(), userExcel.getRoleName()), StringPool.EMPTY)); + // 设置租户ID + if (!AuthUtil.isAdministrator() || StringUtil.isBlank(user.getTenantId())) { + user.setTenantId(AuthUtil.getTenantId()); + } + // 覆盖数据 + if (isCovered) { + // 查询用户是否存在 + User oldUser = UserCache.getUser(userExcel.getTenantId(), userExcel.getAccount()); + if (oldUser != null && oldUser.getId() != null) { + user.setId(oldUser.getId()); + this.updateUser(user); + return; + } + } + // 获取默认密码配置 + String initPassword = ParamCache.getValue(DEFAULT_PARAM_PASSWORD); + user.setPassword(initPassword); + this.submit(user); + }); + } + + @Override + public List exportUser(Wrapper queryWrapper) { + List userList = baseMapper.exportUser(queryWrapper); + userList.forEach(user -> { + user.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType())); + user.setRoleName(StringUtil.join(SysCache.getRoleNames(user.getRoleId()))); + user.setDeptName(StringUtil.join(SysCache.getDeptNames(user.getDeptId()))); + user.setPostName(StringUtil.join(SysCache.getPostNames(user.getPostId()))); + }); + return userList; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean registerGuest(User user, Long oauthId) { + Tenant tenant = SysCache.getTenant(user.getTenantId()); + if (tenant == null || tenant.getId() == null) { + throw new ServiceException("租户信息错误!"); + } + UserOauth userOauth = userOauthService.getById(oauthId); + if (userOauth == null || userOauth.getId() == null) { + throw new ServiceException("第三方登陆信息错误!"); + } + user.setRealName(user.getName()); + user.setAvatar(userOauth.getAvatar()); + user.setRoleId(StringPool.MINUS_ONE); + user.setDeptId(StringPool.MINUS_ONE); + user.setPostId(StringPool.MINUS_ONE); + boolean userTemp = this.submit(user); + userOauth.setUserId(user.getId()); + userOauth.setTenantId(user.getTenantId()); + boolean oauthTemp = userOauthService.updateById(userOauth); + return (userTemp && oauthTemp); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean registerUser(User user) { + Tenant tenant = SysCache.getTenant(user.getTenantId()); + if (tenant == null || tenant.getId() == null) { + throw new OAuth2Exception("租户信息错误!"); + } + user.setRealName(user.getName()); + user.setRoleId(StringPool.MINUS_ONE); + user.setDeptId(StringPool.MINUS_ONE); + user.setPostId(StringPool.MINUS_ONE); + return this.submit(user); + } + + @Override + public boolean updatePlatform(Long userId, Integer userType, String userExt) { + if (userType.equals(UserType.WEB.getCategory())) { + UserWeb userWeb = new UserWeb(); + UserWeb query = userWeb.selectOne(Wrappers.lambdaQuery().eq(UserWeb::getUserId, userId)); + if (ObjectUtil.isNotEmpty(query)) { + userWeb.setId(query.getId()); + } + userWeb.setUserId(userId); + userWeb.setUserExt(userExt); + return userWeb.insertOrUpdate(); + } else if (userType.equals(UserType.APP.getCategory())) { + UserApp userApp = new UserApp(); + UserApp query = userApp.selectOne(Wrappers.lambdaQuery().eq(UserApp::getUserId, userId)); + if (ObjectUtil.isNotEmpty(query)) { + userApp.setId(query.getId()); + } + userApp.setUserId(userId); + userApp.setUserExt(userExt); + return userApp.insertOrUpdate(); + } else { + UserOther userOther = new UserOther(); + UserOther query = userOther.selectOne(Wrappers.lambdaQuery().eq(UserOther::getUserId, userId)); + if (ObjectUtil.isNotEmpty(query)) { + userOther.setId(query.getId()); + } + userOther.setUserId(userId); + userOther.setUserExt(userExt); + return userOther.insertOrUpdate(); + } + } + + @Override + public UserVO platformDetail(User user) { + User detail = baseMapper.selectOne(Condition.getQueryWrapper(user)); + UserVO userVO = UserWrapper.build().entityVO(detail); + if (userVO.getUserType().equals(UserType.WEB.getCategory())) { + UserWeb userWeb = new UserWeb(); + UserWeb query = userWeb.selectOne(Wrappers.lambdaQuery().eq(UserWeb::getUserId, user.getId())); + if (ObjectUtil.isNotEmpty(query)) { + userVO.setUserExt(query.getUserExt()); + } + } else if (userVO.getUserType().equals(UserType.APP.getCategory())) { + UserApp userApp = new UserApp(); + UserApp query = userApp.selectOne(Wrappers.lambdaQuery().eq(UserApp::getUserId, user.getId())); + if (ObjectUtil.isNotEmpty(query)) { + userVO.setUserExt(query.getUserExt()); + } + } else { + UserOther userOther = new UserOther(); + UserOther query = userOther.selectOne(Wrappers.lambdaQuery().eq(UserOther::getUserId, user.getId())); + if (ObjectUtil.isNotEmpty(query)) { + userVO.setUserExt(query.getUserExt()); + } + } + return userVO; + } + + @Override + public User userByUserId(long userId) { + return baseMapper.findUserById(userId); + } + + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/ApiScopeWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/ApiScopeWrapper.java new file mode 100644 index 0000000..1ffc94f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/ApiScopeWrapper.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.system.pojo.entity.ApiScope; +import org.springblade.modules.system.pojo.vo.ApiScopeVO; + +import java.util.Objects; + + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class ApiScopeWrapper extends BaseEntityWrapper { + + public static ApiScopeWrapper build() { + return new ApiScopeWrapper(); + } + + @Override + public ApiScopeVO entityVO(ApiScope dataScope) { + ApiScopeVO apiScopeVO = Objects.requireNonNull(BeanUtil.copyProperties(dataScope, ApiScopeVO.class)); + String scopeTypeName = DictCache.getValue(DictEnum.API_SCOPE_TYPE, dataScope.getScopeType()); + apiScopeVO.setScopeTypeName(scopeTypeName); + return apiScopeVO; + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/DataScopeWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/DataScopeWrapper.java new file mode 100644 index 0000000..71ee85b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/DataScopeWrapper.java @@ -0,0 +1,57 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.system.pojo.entity.DataScope; +import org.springblade.modules.system.pojo.vo.DataScopeVO; + +import java.util.Objects; + + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class DataScopeWrapper extends BaseEntityWrapper { + + public static DataScopeWrapper build() { + return new DataScopeWrapper(); + } + + @Override + public DataScopeVO entityVO(DataScope dataScope) { + DataScopeVO dataScopeVO = Objects.requireNonNull(BeanUtil.copyProperties(dataScope, DataScopeVO.class)); + String scopeTypeName = DictCache.getValue(DictEnum.DATA_SCOPE_TYPE, dataScope.getScopeType()); + dataScopeVO.setScopeTypeName(scopeTypeName); + return dataScopeVO; + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/DeptWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/DeptWrapper.java new file mode 100644 index 0000000..9e5ba3f --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/DeptWrapper.java @@ -0,0 +1,86 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.cache.SysCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Dept; +import org.springblade.modules.system.pojo.vo.DeptVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class DeptWrapper extends BaseEntityWrapper { + + public static DeptWrapper build() { + return new DeptWrapper(); + } + + @Override + public DeptVO entityVO(Dept dept) { + DeptVO deptVO = Objects.requireNonNull(BeanUtil.copyProperties(dept, DeptVO.class)); + if (Func.equals(dept.getParentId(), BladeConstant.TOP_PARENT_ID)) { + deptVO.setParentName(BladeConstant.TOP_PARENT_NAME); + } else { + Dept parent = SysCache.getDept(dept.getParentId()); + deptVO.setParentName(parent.getDeptName()); + } + String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()); + deptVO.setDeptCategoryName(category); + return deptVO; + } + + public List listNodeVO(List list) { + List collect = list.stream().map(dept -> { + DeptVO deptVO = BeanUtil.copyProperties(dept, DeptVO.class); + String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()); + Objects.requireNonNull(deptVO).setDeptCategoryName(category); + return deptVO; + }).collect(Collectors.toList()); + return ForestNodeMerger.merge(collect); + } + + public List listNodeLazyVO(List list) { + List collect = list.stream().peek(dept -> { + String category = DictCache.getValue(DictEnum.ORG_CATEGORY, dept.getDeptCategory()); + Objects.requireNonNull(dept).setDeptCategoryName(category); + }).collect(Collectors.toList()); + return ForestNodeMerger.merge(collect); + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/DictBizWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/DictBizWrapper.java new file mode 100644 index 0000000..c0e6e0b --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/DictBizWrapper.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictBizCache; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.DictBiz; +import org.springblade.modules.system.pojo.vo.DictBizVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class DictBizWrapper extends BaseEntityWrapper { + + public static DictBizWrapper build() { + return new DictBizWrapper(); + } + + @Override + public DictBizVO entityVO(DictBiz dict) { + DictBizVO dictVO = Objects.requireNonNull(BeanUtil.copyProperties(dict, DictBizVO.class)); + if (Func.equals(dict.getParentId(), BladeConstant.TOP_PARENT_ID)) { + dictVO.setParentName(BladeConstant.TOP_PARENT_NAME); + } else { + DictBiz parent = DictBizCache.getById(dict.getParentId()); + dictVO.setParentName(parent.getDictValue()); + } + return dictVO; + } + + public List listNodeVO(List list) { + List collect = list.stream().map(dict -> BeanUtil.copyProperties(dict, DictBizVO.class)).collect(Collectors.toList()); + return ForestNodeMerger.merge(collect); + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/DictWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/DictWrapper.java new file mode 100644 index 0000000..2308bc3 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/DictWrapper.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Dict; +import org.springblade.modules.system.pojo.vo.DictVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class DictWrapper extends BaseEntityWrapper { + + public static DictWrapper build() { + return new DictWrapper(); + } + + @Override + public DictVO entityVO(Dict dict) { + DictVO dictVO = Objects.requireNonNull(BeanUtil.copyProperties(dict, DictVO.class)); + if (Func.equals(dict.getParentId(), BladeConstant.TOP_PARENT_ID)) { + dictVO.setParentName(BladeConstant.TOP_PARENT_NAME); + } else { + Dict parent = DictCache.getById(dict.getParentId()); + dictVO.setParentName(parent.getDictValue()); + } + return dictVO; + } + + public List listNodeVO(List list) { + List collect = list.stream().map(dict -> BeanUtil.copyProperties(dict, DictVO.class)).collect(Collectors.toList()); + return ForestNodeMerger.merge(collect); + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/MenuWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/MenuWrapper.java new file mode 100644 index 0000000..bd77e36 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/MenuWrapper.java @@ -0,0 +1,81 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.cache.SysCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Menu; +import org.springblade.modules.system.pojo.vo.MenuVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class MenuWrapper extends BaseEntityWrapper { + + public static MenuWrapper build() { + return new MenuWrapper(); + } + + @Override + public MenuVO entityVO(Menu menu) { + MenuVO menuVO = Objects.requireNonNull(BeanUtil.copyProperties(menu, MenuVO.class)); + if (Func.equals(menu.getParentId(), BladeConstant.TOP_PARENT_ID)) { + menuVO.setParentName(BladeConstant.TOP_PARENT_NAME); + } else { + Menu parent = SysCache.getMenu(menu.getParentId()); + menuVO.setParentName(parent.getName()); + } + String category = DictCache.getValue(DictEnum.MENU_CATEGORY, Func.toInt(menuVO.getCategory())); + String action = DictCache.getValue(DictEnum.BUTTON_FUNC, Func.toInt(menuVO.getAction())); + String open = DictCache.getValue(DictEnum.YES_NO, Func.toInt(menuVO.getIsOpen())); + menuVO.setCategoryName(category); + menuVO.setActionName(action); + menuVO.setIsOpenName(open); + return menuVO; + } + + public List listNodeVO(List

list) { + List collect = list.stream().map(menu -> BeanUtil.copyProperties(menu, MenuVO.class)).collect(Collectors.toList()); + return ForestNodeMerger.merge(collect); + } + + public List listNodeLazyVO(List list) { + return ForestNodeMerger.merge(list); + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/PostWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/PostWrapper.java new file mode 100644 index 0000000..ec07615 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/PostWrapper.java @@ -0,0 +1,56 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.system.pojo.entity.Post; +import org.springblade.modules.system.pojo.vo.PostVO; + +import java.util.Objects; + +/** + * 岗位表包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class PostWrapper extends BaseEntityWrapper { + + public static PostWrapper build() { + return new PostWrapper(); + } + + @Override + public PostVO entityVO(Post post) { + PostVO postVO = Objects.requireNonNull(BeanUtil.copyProperties(post, PostVO.class)); + String categoryName = DictCache.getValue(DictEnum.POST_CATEGORY, post.getCategory()); + postVO.setCategoryName(categoryName); + return postVO; + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/RegionWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/RegionWrapper.java new file mode 100644 index 0000000..dcdbc30 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/RegionWrapper.java @@ -0,0 +1,61 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.RegionCache; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.modules.system.pojo.entity.Region; +import org.springblade.modules.system.pojo.vo.RegionVO; + +import java.util.List; +import java.util.Objects; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class RegionWrapper extends BaseEntityWrapper { + + public static RegionWrapper build() { + return new RegionWrapper(); + } + + @Override + public RegionVO entityVO(Region region) { + RegionVO regionVO = Objects.requireNonNull(BeanUtil.copyProperties(region, RegionVO.class)); + Region parentRegion = RegionCache.getByCode(region.getParentCode()); + regionVO.setParentName(parentRegion.getName()); + return regionVO; + } + + public List listNodeLazyVO(List list) { + return ForestNodeMerger.merge(list); + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/RoleWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/RoleWrapper.java new file mode 100644 index 0000000..175fc32 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/RoleWrapper.java @@ -0,0 +1,70 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.SysCache; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.constant.BladeConstant; +import org.springblade.core.tool.node.ForestNodeMerger; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Role; +import org.springblade.modules.system.pojo.vo.RoleVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class RoleWrapper extends BaseEntityWrapper { + + public static RoleWrapper build() { + return new RoleWrapper(); + } + + @Override + public RoleVO entityVO(Role role) { + RoleVO roleVO = Objects.requireNonNull(BeanUtil.copyProperties(role, RoleVO.class)); + if (Func.equals(role.getParentId(), BladeConstant.TOP_PARENT_ID)) { + roleVO.setParentName(BladeConstant.TOP_PARENT_NAME); + } else { + Role parent = SysCache.getRole(role.getParentId()); + roleVO.setParentName(parent.getRoleName()); + } + return roleVO; + } + + + public List listNodeVO(List list) { + List collect = list.stream().map(this::entityVO).collect(Collectors.toList()); + return ForestNodeMerger.merge(collect); + } + +} diff --git a/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java b/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java new file mode 100644 index 0000000..6062a77 --- /dev/null +++ b/src/main/java/org/springblade/modules/system/wrapper/UserWrapper.java @@ -0,0 +1,68 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.modules.system.wrapper; + +import org.springblade.common.cache.DictCache; +import org.springblade.common.cache.SysCache; +import org.springblade.common.enums.DictEnum; +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.modules.system.pojo.entity.Tenant; +import org.springblade.modules.system.pojo.entity.User; +import org.springblade.modules.system.pojo.vo.UserVO; + +import java.util.List; +import java.util.Objects; + +/** + * 包装类,返回视图层所需的字段 + * + * @author Chill + */ +public class UserWrapper extends BaseEntityWrapper { + + public static UserWrapper build() { + return new UserWrapper(); + } + + @Override + public UserVO entityVO(User user) { + UserVO userVO = Objects.requireNonNull(BeanUtil.copyProperties(user, UserVO.class)); + Tenant tenant = SysCache.getTenant(user.getTenantId()); + List roleName = SysCache.getRoleNames(user.getRoleId()); + List deptName = SysCache.getDeptNames(user.getDeptId()); + List postName = SysCache.getPostNames(user.getPostId()); + userVO.setTenantName(tenant.getTenantName()); + userVO.setRoleName(Func.join(roleName)); + userVO.setDeptName(Func.join(deptName)); + userVO.setPostName(Func.join(postName)); + userVO.setSexName(DictCache.getValue(DictEnum.SEX, user.getSex())); + userVO.setUserTypeName(DictCache.getValue(DictEnum.USER_TYPE, user.getUserType())); + return userVO; + } + +} diff --git a/src/main/java/sql/alarmcode.menu.sql b/src/main/java/sql/alarmcode.menu.sql new file mode 100644 index 0000000..ecab5d5 --- /dev/null +++ b/src/main/java/sql/alarmcode.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798552291936157697', 1123598815738675201, 'alarmCode', '故障代码', 'menu', '/nh/alarmCode', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798552291936157698', '1798552291936157697', 'alarmCode_add', '新增', 'add', '/nh/alarmCode/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798552291936157699', '1798552291936157697', 'alarmCode_edit', '修改', 'edit', '/nh/alarmCode/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798552291936157700', '1798552291936157697', 'alarmCode_delete', '删除', 'delete', '/api/nh/alarmCode/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798552291936157701', '1798552291936157697', 'alarmCode_view', '查看', 'view', '/nh/alarmCode/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/alarminfo.menu.sql b/src/main/java/sql/alarminfo.menu.sql new file mode 100644 index 0000000..eb8e4f7 --- /dev/null +++ b/src/main/java/sql/alarminfo.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797486104129064961', 1123598815738675201, 'alarmInfo', '设备告警信息表', 'menu', '/nh/alarmInfo', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797486104129064962', '1797486104129064961', 'alarmInfo_add', '新增', 'add', '/nh/alarmInfo/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797486104129064963', '1797486104129064961', 'alarmInfo_edit', '修改', 'edit', '/nh/alarmInfo/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797486104129064964', '1797486104129064961', 'alarmInfo_delete', '删除', 'delete', '/api/nh/alarmInfo/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797486104129064965', '1797486104129064961', 'alarmInfo_view', '查看', 'view', '/nh/alarmInfo/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/device.menu.sql b/src/main/java/sql/device.menu.sql new file mode 100644 index 0000000..34fda40 --- /dev/null +++ b/src/main/java/sql/device.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889619599362', 1123598815738675201, 'device', '设备管理', 'menu', '/nh/device', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889619599363', '1796525889619599362', 'device_add', '新增', 'add', '/nh/device/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889619599364', '1796525889619599362', 'device_edit', '修改', 'edit', '/nh/device/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889619599365', '1796525889619599362', 'device_delete', '删除', 'delete', '/api/nh/device/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889619599366', '1796525889619599362', 'device_view', '查看', 'view', '/nh/device/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/examineinfo.menu.sql b/src/main/java/sql/examineinfo.menu.sql new file mode 100644 index 0000000..8884b57 --- /dev/null +++ b/src/main/java/sql/examineinfo.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800887601795073', 1123598815738675201, 'examineInfo', '审批明细记录表', 'menu', '/examineInfo/examineInfo', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800887601795074', '1821800887601795073', 'examineInfo_add', '新增', 'add', '/examineInfo/examineInfo/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800887601795075', '1821800887601795073', 'examineInfo_edit', '修改', 'edit', '/examineInfo/examineInfo/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800887601795076', '1821800887601795073', 'examineInfo_delete', '删除', 'delete', '/api/blade-examineInfo/examineInfo/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800887601795077', '1821800887601795073', 'examineInfo_view', '查看', 'view', '/examineInfo/examineInfo/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/inefficientsetting.menu.sql b/src/main/java/sql/inefficientsetting.menu.sql new file mode 100644 index 0000000..28341a4 --- /dev/null +++ b/src/main/java/sql/inefficientsetting.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801490842789187585', 1797150217537175554, 'inefficientSetting', '低效电站设置', 'menu', '/nh/inefficientSetting', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801490842789187586', '1801490842789187585', 'inefficientSetting_add', '新增', 'add', '/nh/inefficientSetting/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801490842789187587', '1801490842789187585', 'inefficientSetting_edit', '修改', 'edit', '/nh/inefficientSetting/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801490842789187588', '1801490842789187585', 'inefficientSetting_delete', '删除', 'delete', '/api/nh/inefficientSetting/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801490842789187589', '1801490842789187585', 'inefficientSetting_view', '查看', 'view', '/nh/inefficientSetting/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/inspectentry.menu.sql b/src/main/java/sql/inspectentry.menu.sql new file mode 100644 index 0000000..6256b67 --- /dev/null +++ b/src/main/java/sql/inspectentry.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1840213853401497602', 1123598815738675201, 'inspectEntry', '检验电站明细', 'menu', '/order/inspectEntry', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1840213853401497603', '1840213853401497602', 'inspectEntry_add', '新增', 'add', '/order/inspectEntry/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1840213853401497604', '1840213853401497602', 'inspectEntry_edit', '修改', 'edit', '/order/inspectEntry/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1840213853401497605', '1840213853401497602', 'inspectEntry_delete', '删除', 'delete', '/api/blade-inspectEntry/inspectEntry/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1840213853401497606', '1840213853401497602', 'inspectEntry_view', '查看', 'view', '/order/inspectEntry/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/inspectorder.menu.sql b/src/main/java/sql/inspectorder.menu.sql new file mode 100644 index 0000000..abb38b0 --- /dev/null +++ b/src/main/java/sql/inspectorder.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1839939728799928322', 1123598815738675201, 'inspectOrder', '检验单信息', 'menu', '/order/inspectOrder', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1839939728799928323', '1839939728799928322', 'inspectOrder_add', '新增', 'add', '/order/inspectOrder/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1839939728799928324', '1839939728799928322', 'inspectOrder_edit', '修改', 'edit', '/order/inspectOrder/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1839939728799928325', '1839939728799928322', 'inspectOrder_delete', '删除', 'delete', '/api/blade-inspectOrder/inspectOrder/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1839939728799928326', '1839939728799928322', 'inspectOrder_view', '查看', 'view', '/order/inspectOrder/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/inverterdata.menu.sql b/src/main/java/sql/inverterdata.menu.sql new file mode 100644 index 0000000..53d3aa7 --- /dev/null +++ b/src/main/java/sql/inverterdata.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889833508866', 1123598815738675201, 'inverterData', '逆变器数据表', 'menu', '/nh/inverterData', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889833508867', '1796525889833508866', 'inverterData_add', '新增', 'add', '/nh/inverterData/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889833508868', '1796525889833508866', 'inverterData_edit', '修改', 'edit', '/nh/inverterData/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889833508869', '1796525889833508866', 'inverterData_delete', '删除', 'delete', '/api/nh/inverterData/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889833508870', '1796525889833508866', 'inverterData_view', '查看', 'view', '/nh/inverterData/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/inverteruap.menu.sql b/src/main/java/sql/inverteruap.menu.sql new file mode 100644 index 0000000..a0c09df --- /dev/null +++ b/src/main/java/sql/inverteruap.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1859565344774037506', 1123598815738675201, 'inverterUap', '逆变器电流电压功率数据', 'menu', '/nh/inverterUap', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1859565344774037507', '1859565344774037506', 'inverterUap_add', '新增', 'add', '/nh/inverterUap/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1859565344774037508', '1859565344774037506', 'inverterUap_edit', '修改', 'edit', '/nh/inverterUap/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1859565344774037509', '1859565344774037506', 'inverterUap_delete', '删除', 'delete', '/api/nh/inverterUap/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1859565344774037510', '1859565344774037506', 'inverterUap_view', '查看', 'view', '/nh/inverterUap/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/material.menu.sql b/src/main/java/sql/material.menu.sql new file mode 100644 index 0000000..7b98cbe --- /dev/null +++ b/src/main/java/sql/material.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630286952849409', 1123598815738675201, 'material', '物料库存', 'menu', '/material/material', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630286952849410', '1827630286952849409', 'material_add', '新增', 'add', '/material/material/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630286952849411', '1827630286952849409', 'material_edit', '修改', 'edit', '/material/material/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630286952849412', '1827630286952849409', 'material_delete', '删除', 'delete', '/api/wl/material/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630286952849413', '1827630286952849409', 'material_view', '查看', 'view', '/material/material/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/materialengineer.menu.sql b/src/main/java/sql/materialengineer.menu.sql new file mode 100644 index 0000000..77e9b59 --- /dev/null +++ b/src/main/java/sql/materialengineer.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630679044775937', 1123598815738675201, 'materialEngineer', '工程师库存', 'menu', '/material/materialEngineer', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630679044775938', '1827630679044775937', 'materialEngineer_add', '新增', 'add', '/material/materialEngineer/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630679044775939', '1827630679044775937', 'materialEngineer_edit', '修改', 'edit', '/material/materialEngineer/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630679044775940', '1827630679044775937', 'materialEngineer_delete', '删除', 'delete', '/api/wl/materialEngineer/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630679044775941', '1827630679044775937', 'materialEngineer_view', '查看', 'view', '/material/materialEngineer/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/materialengineeroutbound.menu.sql b/src/main/java/sql/materialengineeroutbound.menu.sql new file mode 100644 index 0000000..04bbf52 --- /dev/null +++ b/src/main/java/sql/materialengineeroutbound.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237626125930498', 1123598815738675201, 'materialEngineerOutbound', '工程师库存明细', 'menu', '/material/materialEngineerOutbound', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237626125930499', '1831237626125930498', 'materialEngineerOutbound_add', '新增', 'add', '/material/materialEngineerOutbound/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237626125930500', '1831237626125930498', 'materialEngineerOutbound_edit', '修改', 'edit', '/material/materialEngineerOutbound/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237626125930501', '1831237626125930498', 'materialEngineerOutbound_delete', '删除', 'delete', '/api/wl/materialEngineerOutbound/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237626125930502', '1831237626125930498', 'materialEngineerOutbound_view', '查看', 'view', '/material/materialEngineerOutbound/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/materialoperation.menu.sql b/src/main/java/sql/materialoperation.menu.sql new file mode 100644 index 0000000..9d6ebe0 --- /dev/null +++ b/src/main/java/sql/materialoperation.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630581355241474', 1123598815738675201, 'materialOperation', '运维商库存', 'menu', '/material/materialOperation', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630581355241475', '1827630581355241474', 'materialOperation_add', '新增', 'add', '/material/materialOperation/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630581355241476', '1827630581355241474', 'materialOperation_edit', '修改', 'edit', '/material/materialOperation/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630581355241477', '1827630581355241474', 'materialOperation_delete', '删除', 'delete', '/api/wl/materialOperation/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630581355241478', '1827630581355241474', 'materialOperation_view', '查看', 'view', '/material/materialOperation/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/materialoperationoutbound.menu.sql b/src/main/java/sql/materialoperationoutbound.menu.sql new file mode 100644 index 0000000..5e5dfd8 --- /dev/null +++ b/src/main/java/sql/materialoperationoutbound.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237625882660865', 1123598815738675201, 'materialOperationOutbound', '运维商库存明细', 'menu', '/material/materialOperationOutbound', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237625882660866', '1831237625882660865', 'materialOperationOutbound_add', '新增', 'add', '/material/materialOperationOutbound/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237625882660867', '1831237625882660865', 'materialOperationOutbound_edit', '修改', 'edit', '/material/materialOperationOutbound/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237625882660868', '1831237625882660865', 'materialOperationOutbound_delete', '删除', 'delete', '/api/wl/materialOperationOutbound/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1831237625882660869', '1831237625882660865', 'materialOperationOutbound_view', '查看', 'view', '/material/materialOperationOutbound/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/materialoutbound.menu.sql b/src/main/java/sql/materialoutbound.menu.sql new file mode 100644 index 0000000..bafe3bd --- /dev/null +++ b/src/main/java/sql/materialoutbound.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630820623507457', 1123598815738675201, 'materialOutbound', '出库明细', 'menu', '/material/materialOutbound', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630820623507458', '1827630820623507457', 'materialOutbound_add', '新增', 'add', '/material/materialOutbound/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630820623507459', '1827630820623507457', 'materialOutbound_edit', '修改', 'edit', '/material/materialOutbound/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630820623507460', '1827630820623507457', 'materialOutbound_delete', '删除', 'delete', '/api/wl/materialOutbound/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827630820623507461', '1827630820623507457', 'materialOutbound_view', '查看', 'view', '/material/materialOutbound/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/monitorentrydailystat.menu.sql b/src/main/java/sql/monitorentrydailystat.menu.sql new file mode 100644 index 0000000..403a461 --- /dev/null +++ b/src/main/java/sql/monitorentrydailystat.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112625926146', 1123598815738675201, 'monitorEntryDailyStat', '电站日统计数据', 'menu', '/nh/monitorEntryDailyStat', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112625926147', '1797160112625926146', 'monitorEntryDailyStat_add', '新增', 'add', '/nh/monitorEntryDailyStat/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112625926148', '1797160112625926146', 'monitorEntryDailyStat_edit', '修改', 'edit', '/nh/monitorEntryDailyStat/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112625926149', '1797160112625926146', 'monitorEntryDailyStat_delete', '删除', 'delete', '/api/nh/monitorEntryDailyStat/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112625926150', '1797160112625926146', 'monitorEntryDailyStat_view', '查看', 'view', '/nh/monitorEntryDailyStat/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/monitorentrymonthstat.menu.sql b/src/main/java/sql/monitorentrymonthstat.menu.sql new file mode 100644 index 0000000..35b48c4 --- /dev/null +++ b/src/main/java/sql/monitorentrymonthstat.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112818864130', 1123598815738675201, 'monitorEntryMonthStat', '电站月统计数据', 'menu', '/nh/monitorEntryMonthStat', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112818864131', '1797160112818864130', 'monitorEntryMonthStat_add', '新增', 'add', '/nh/monitorEntryMonthStat/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112818864132', '1797160112818864130', 'monitorEntryMonthStat_edit', '修改', 'edit', '/nh/monitorEntryMonthStat/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112818864133', '1797160112818864130', 'monitorEntryMonthStat_delete', '删除', 'delete', '/api/nh/monitorEntryMonthStat/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112818864134', '1797160112818864130', 'monitorEntryMonthStat_view', '查看', 'view', '/nh/monitorEntryMonthStat/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/monitorentrystat.menu.sql b/src/main/java/sql/monitorentrystat.menu.sql new file mode 100644 index 0000000..6e2b441 --- /dev/null +++ b/src/main/java/sql/monitorentrystat.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796803794102738945', 1123598815738675201, 'monitorEntryStat', '外部电站同步', 'menu', '/nh/monitorEntryStat', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796803794102738946', '1796803794102738945', 'monitorEntryStat_add', '新增', 'add', '/nh/monitorEntryStat/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796803794102738947', '1796803794102738945', 'monitorEntryStat_edit', '修改', 'edit', '/nh/monitorEntryStat/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796803794102738948', '1796803794102738945', 'monitorEntryStat_delete', '删除', 'delete', '/api/nh/monitorEntryStat/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796803794102738949', '1796803794102738945', 'monitorEntryStat_view', '查看', 'view', '/nh/monitorEntryStat/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/monitorentryyearstat.menu.sql b/src/main/java/sql/monitorentryyearstat.menu.sql new file mode 100644 index 0000000..59264ec --- /dev/null +++ b/src/main/java/sql/monitorentryyearstat.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160113045356546', 1123598815738675201, 'monitorEntryYearStat', '电站能量按年统计', 'menu', '/nh/monitorEntryYearStat', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160113045356547', '1797160113045356546', 'monitorEntryYearStat_add', '新增', 'add', '/nh/monitorEntryYearStat/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160113045356548', '1797160113045356546', 'monitorEntryYearStat_edit', '修改', 'edit', '/nh/monitorEntryYearStat/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160113045356549', '1797160113045356546', 'monitorEntryYearStat_delete', '删除', 'delete', '/api/nh/monitorEntryYearStat/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160113045356550', '1797160113045356546', 'monitorEntryYearStat_view', '查看', 'view', '/nh/monitorEntryYearStat/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/monitorinverterdailystat.menu.sql b/src/main/java/sql/monitorinverterdailystat.menu.sql new file mode 100644 index 0000000..8888439 --- /dev/null +++ b/src/main/java/sql/monitorinverterdailystat.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798948974859763714', 1123598815738675201, 'monitorInverterDailyStat', '逆变器日数据', 'menu', '/nh/monitorInverterDailyStat', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798948974859763715', '1798948974859763714', 'monitorInverterDailyStat_add', '新增', 'add', '/nh/monitorInverterDailyStat/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798948974859763716', '1798948974859763714', 'monitorInverterDailyStat_edit', '修改', 'edit', '/nh/monitorInverterDailyStat/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798948974859763717', '1798948974859763714', 'monitorInverterDailyStat_delete', '删除', 'delete', '/api/nh/monitorInverterDailyStat/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1798948974859763718', '1798948974859763714', 'monitorInverterDailyStat_view', '查看', 'view', '/nh/monitorInverterDailyStat/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/monitorinverterstat.menu.sql b/src/main/java/sql/monitorinverterstat.menu.sql new file mode 100644 index 0000000..fbe3b8a --- /dev/null +++ b/src/main/java/sql/monitorinverterstat.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112332324866', 1123598815738675201, 'monitorInverterStat', '厂家逆变器表', 'menu', '/nh/monitorInverterStat', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112332324867', '1797160112332324866', 'monitorInverterStat_add', '新增', 'add', '/nh/monitorInverterStat/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112332324868', '1797160112332324866', 'monitorInverterStat_edit', '修改', 'edit', '/nh/monitorInverterStat/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112332324869', '1797160112332324866', 'monitorInverterStat_delete', '删除', 'delete', '/api/nh/monitorInverterStat/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1797160112332324870', '1797160112332324866', 'monitorInverterStat_view', '查看', 'view', '/nh/monitorInverterStat/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/operationsiteapply.menu.sql b/src/main/java/sql/operationsiteapply.menu.sql new file mode 100644 index 0000000..d2b3637 --- /dev/null +++ b/src/main/java/sql/operationsiteapply.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800906589409281', 1123598815738675201, 'operationSiteApply', '运维商准入申请表', 'menu', '/operationSiteApply/operationSiteApply', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800906589409282', '1821800906589409281', 'operationSiteApply_add', '新增', 'add', '/operationSiteApply/operationSiteApply/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800906589409283', '1821800906589409281', 'operationSiteApply_edit', '修改', 'edit', '/operationSiteApply/operationSiteApply/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800906589409284', '1821800906589409281', 'operationSiteApply_delete', '删除', 'delete', '/api/blade-operationSiteApply/operationSiteApply/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1821800906589409285', '1821800906589409281', 'operationSiteApply_view', '查看', 'view', '/operationSiteApply/operationSiteApply/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/platformfittingapply.menu.sql b/src/main/java/sql/platformfittingapply.menu.sql new file mode 100644 index 0000000..5c8c9f5 --- /dev/null +++ b/src/main/java/sql/platformfittingapply.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253028713910273', 1123598815738675201, 'platformFittingApply', '服务商向平台备件申请领用记录表', 'menu', '/fitting/platformFittingApply', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253028713910274', '1827253028713910273', 'platformFittingApply_add', '新增', 'add', '/fitting/platformFittingApply/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253028713910275', '1827253028713910273', 'platformFittingApply_edit', '修改', 'edit', '/fitting/platformFittingApply/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253028713910276', '1827253028713910273', 'platformFittingApply_delete', '删除', 'delete', '/api/blade-platformFittingApply/platformFittingApply/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253028713910277', '1827253028713910273', 'platformFittingApply_view', '查看', 'view', '/fitting/platformFittingApply/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/platformfittingapplymsg.menu.sql b/src/main/java/sql/platformfittingapplymsg.menu.sql new file mode 100644 index 0000000..95a6d8e --- /dev/null +++ b/src/main/java/sql/platformfittingapplymsg.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253029804429313', 1123598815738675201, 'platformFittingApplyMsg', '平台备件申请领用记录的操作详情表', 'menu', '/fitting/platformFittingApplyMsg', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253029804429314', '1827253029804429313', 'platformFittingApplyMsg_add', '新增', 'add', '/fitting/platformFittingApplyMsg/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253029804429315', '1827253029804429313', 'platformFittingApplyMsg_edit', '修改', 'edit', '/fitting/platformFittingApplyMsg/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253029804429316', '1827253029804429313', 'platformFittingApplyMsg_delete', '删除', 'delete', '/api/blade-platformFittingApplyMsg/platformFittingApplyMsg/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1827253029804429317', '1827253029804429313', 'platformFittingApplyMsg_view', '查看', 'view', '/fitting/platformFittingApplyMsg/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/powerstation.menu.sql b/src/main/java/sql/powerstation.menu.sql new file mode 100644 index 0000000..97e13f0 --- /dev/null +++ b/src/main/java/sql/powerstation.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889233723393', 1123598815738675201, 'powerStation', '电站', 'menu', '/nh/powerStation', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889233723394', '1796525889233723393', 'powerStation_add', '新增', 'add', '/nh/powerStation/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889233723395', '1796525889233723393', 'powerStation_edit', '修改', 'edit', '/nh/powerStation/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889233723396', '1796525889233723393', 'powerStation_delete', '删除', 'delete', '/api/nh/powerStation/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1796525889233723397', '1796525889233723393', 'powerStation_view', '查看', 'view', '/nh/powerStation/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/powerstationinefficient.menu.sql b/src/main/java/sql/powerstationinefficient.menu.sql new file mode 100644 index 0000000..f428097 --- /dev/null +++ b/src/main/java/sql/powerstationinefficient.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801445581010366465', 1797150217537175554, 'powerStationInefficient', '低效电站', 'menu', '/nh/powerStationInefficient', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801445581010366466', '1801445581010366465', 'powerStationInefficient_add', '新增', 'add', '/nh/powerStationInefficient/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801445581010366467', '1801445581010366465', 'powerStationInefficient_edit', '修改', 'edit', '/nh/powerStationInefficient/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801445581010366468', '1801445581010366465', 'powerStationInefficient_delete', '删除', 'delete', '/api/nh/powerStationInefficient/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1801445581010366469', '1801445581010366465', 'powerStationInefficient_view', '查看', 'view', '/nh/powerStationInefficient/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/processdef.menu.sql b/src/main/java/sql/processdef.menu.sql new file mode 100644 index 0000000..97ddfd6 --- /dev/null +++ b/src/main/java/sql/processdef.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819202782129778690', 1123598815738675201, 'processDef', '流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。', 'menu', '/processForm/processDef', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819202782129778691', '1819202782129778690', 'processDef_add', '新增', 'add', '/processForm/processDef/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819202782129778692', '1819202782129778690', 'processDef_edit', '修改', 'edit', '/processForm/processDef/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819202782129778693', '1819202782129778690', 'processDef_delete', '删除', 'delete', '/api/blade-processDef/processDef/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819202782129778694', '1819202782129778690', 'processDef_view', '查看', 'view', '/processForm/processDef/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/processdefauditstep.menu.sql b/src/main/java/sql/processdefauditstep.menu.sql new file mode 100644 index 0000000..722a801 --- /dev/null +++ b/src/main/java/sql/processdefauditstep.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205239048204289', 1123598815738675201, 'processDefAuditStep', '流程中的一个审核步骤(或者称为一个任务)。', 'menu', '/processForm/processDefAuditStep', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205239048204290', '1819205239048204289', 'processDefAuditStep_add', '新增', 'add', '/processForm/processDefAuditStep/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205239048204291', '1819205239048204289', 'processDefAuditStep_edit', '修改', 'edit', '/processForm/processDefAuditStep/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205239048204292', '1819205239048204289', 'processDefAuditStep_delete', '删除', 'delete', '/api/blade-processDefAuditStep/processDefAuditStep/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205239048204293', '1819205239048204289', 'processDefAuditStep_view', '查看', 'view', '/processForm/processDefAuditStep/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/processdeflatest.menu.sql b/src/main/java/sql/processdeflatest.menu.sql new file mode 100644 index 0000000..f22ca67 --- /dev/null +++ b/src/main/java/sql/processdeflatest.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205240176472066', 1123598815738675201, 'processDefLatest', '流程定义模板,flowable流程定义根据该模板动态部署一个流程定义。', 'menu', '/processForm/processDefLatest', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205240176472067', '1819205240176472066', 'processDefLatest_add', '新增', 'add', '/processForm/processDefLatest/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205240176472068', '1819205240176472066', 'processDefLatest_edit', '修改', 'edit', '/processForm/processDefLatest/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205240176472069', '1819205240176472066', 'processDefLatest_delete', '删除', 'delete', '/api/blade-processDefLatest/processDefLatest/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205240176472070', '1819205240176472066', 'processDefLatest_view', '查看', 'view', '/processForm/processDefLatest/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/processdefsubmitstep.menu.sql b/src/main/java/sql/processdefsubmitstep.menu.sql new file mode 100644 index 0000000..df14069 --- /dev/null +++ b/src/main/java/sql/processdefsubmitstep.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205241199882241', 1123598815738675201, 'processDefSubmitStep', '流程中的提交步骤(或者称为一个任务)。', 'menu', '/processForm/processDefSubmitStep', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205241199882242', '1819205241199882241', 'processDefSubmitStep_add', '新增', 'add', '/processForm/processDefSubmitStep/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205241199882243', '1819205241199882241', 'processDefSubmitStep_edit', '修改', 'edit', '/processForm/processDefSubmitStep/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205241199882244', '1819205241199882241', 'processDefSubmitStep_delete', '删除', 'delete', '/api/blade-processDefSubmitStep/processDefSubmitStep/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819205241199882245', '1819205241199882241', 'processDefSubmitStep_view', '查看', 'view', '/processForm/processDefSubmitStep/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/java/sql/processform.menu.sql b/src/main/java/sql/processform.menu.sql new file mode 100644 index 0000000..e6aebab --- /dev/null +++ b/src/main/java/sql/processform.menu.sql @@ -0,0 +1,10 @@ +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819196991960215553', 1123598815738675201, 'processForm', '流程表单', 'menu', '/processForm/processForm', NULL, 1, 1, 0, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819196991960215554', '1819196991960215553', 'processForm_add', '新增', 'add', '/processForm/processForm/add', 'plus', 1, 2, 1, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819196991960215555', '1819196991960215553', 'processForm_edit', '修改', 'edit', '/processForm/processForm/edit', 'form', 2, 2, 2, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819196991960215556', '1819196991960215553', 'processForm_delete', '删除', 'delete', '/api/blade-processForm/processForm/remove', 'delete', 3, 2, 3, 1, NULL, 0); +INSERT INTO `blade_menu`(`id`, `parent_id`, `code`, `name`, `alias`, `path`, `source`, `sort`, `category`, `action`, `is_open`, `remark`, `is_deleted`) +VALUES ('1819196991960215557', '1819196991960215553', 'processForm_view', '查看', 'view', '/processForm/processForm/view', 'file-text', 4, 2, 2, 1, NULL, 0); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml new file mode 100644 index 0000000..7b643bc --- /dev/null +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,76 @@ +#服务器配置 +server: + port: 8099 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 +# host: 192.168.2.58 + host: 127.0.0.1 + port: 6379 + password: + database: 0 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + # MySql +# url: jdbc:mysql://1.15.6.51:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + url: jdbc:mysql://127.0.0.1:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + # PostgreSQL + #url: jdbc:postgresql://127.0.0.1:5432/bladex_boot + #username: postgres + #password: 123456 + # Oracle + #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl + #username: BLADEX_BOOT + #password: BLADEX_BOOT + # SqlServer + #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex_boot + #username: bladex_boot + #password: bladex_boot + # DaMeng + #url: jdbc:dm://127.0.0.1:5236/BLADEX_BOOT?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 + #username: BLADEX_BOOT + #password: BLADEX_BOOT + # YashanDB + #url: jdbc:yasdb://127.0.0.1:1688/BLADEX_BOOT + #username: BLADEX_BOOT + #password: BLADEX_BOOT + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##redis服务地址 + address: redis://127.0.0.1:6379 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html + diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml new file mode 100644 index 0000000..c0bea05 --- /dev/null +++ b/src/main/resources/application-prod.yml @@ -0,0 +1,59 @@ +#服务器配置 +server: + port: 9999 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + host: 127.0.0.1 + port: 6379 + password: + database: 10 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: +# url: jdbc:mysql://rm-uf68y03eiu3e480xz.mysql.rds.aliyuncs.com:3306/nenghui-uat-prod?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true +# username: nhsf +# password: nhsf@1234 + url: jdbc:mysql://127.0.0.1:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + address: redis://127.0.0.1:6379 + password: 123456 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml new file mode 100644 index 0000000..f98f5ba --- /dev/null +++ b/src/main/resources/application-test.yml @@ -0,0 +1,56 @@ +#服务器配置 +server: + port: 8099 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + # host: 192.168.2.58 + host: 127.0.0.1 + port: 6379 + password: + database: 3 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + # MySql + url: jdbc:mysql://1.15.6.51:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: 11aa..123 + + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##redis服务地址 + address: redis://127.0.0.1:6379 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html + diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..1657a21 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,279 @@ + + +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + druid: + validation-query: select 1 + validation-query-timeout: 2000 + initial-size: 5 + max-active: 20 + min-idle: 5 + max-wait: 60000 + test-on-borrow: false + test-on-return: false + test-while-idle: true + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + stat-view-servlet: + enabled: true + login-username: blade + login-password: 1qaz@WSX + web-stat-filter: + enabled: true + url-pattern: /* + exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*' + session-stat-enable: true + session-stat-max-count: 10 + +# mybatis +mybatis-plus: + mapper-locations: classpath:org/springblade/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springblade.**.entity + #typeEnumsPackage: org.springblade.dashboard.entity.enums + global-config: + # 关闭MP3.0自带的banner + banner: false + db-config: + #主键类型 0:"数据库ID自增", 1:"不操作", 2:"用户输入ID",3:"数字型snowflake", 4:"全局唯一ID UUID", 5:"字符串型snowflake"; + id-type: assign_id + #字段策略 + insert-strategy: not_null + update-strategy: not_null + where-strategy: not_null + #驼峰下划线转换 + table-underline: true + # 逻辑删除配置 + # 逻辑删除全局值(1表示已删除,这也是Mybatis Plus的默认配置) + logic-delete-value: 1 + # 逻辑未删除全局值(0表示未删除,这也是Mybatis Plus的默认配置) + logic-not-delete-value: 0 + configuration: + map-underscore-to-camel-case: true + cache-enabled: false + jdbc-type-for-null: 'null' + +#springdoc-openapi配置 +springdoc: + default-flat-param-object: true + +#knife4j配置 +knife4j: + #启用 + enable: true + #基础认证 + basic: + enable: false + username: blade + password: blade + #增强配置 + setting: + enable-swagger-models: true + enable-document-manage: true + enable-host: false + enable-host-text: http://localhost + enable-request-cache: true + enable-filter-multipart-apis: false + enable-filter-multipart-api-method-type: POST + enable-footer: false + enable-footer-custom: true + language: zh_cn + footer-custom-content: Copyright © 2024 BladeX All Rights Reserved + +#swagger公共信息 +swagger: + title: BladeX 接口文档系统 + description: BladeX 接口文档系统 + version: 4.0.1.RELEASE + license: Powered By BladeX + license-url: https://license.bladex.cn + contact: + name: 翼宿 + email: bladejava@qq.com + url: https://gitee.com/smallc + +#oss默认配置 +oss: + #开启oss配置 + enabled: true + #开启oss类型 + #minio、s3、qiniu、alioss、huaweiobs、tencentcos + name: minio + #租户模式 + tenant-mode: true + #oss服务地址 + endpoint: http://127.0.0.1:9000 + #oss转换服务地址,用于内网上传后将返回地址改为转换的外网地址 + transform-endpoint: http://localhost:9000 + #访问key + access-key: bladexadmin + #密钥key + secret-key: bladexadmin + #存储桶 + bucket-name: bladex + +#第三方登陆配置 +social: + oauth: + GITHUB: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/github + GITEE: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/gitee + WECHAT_OPEN: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/wechat + QQ: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/qq + DINGTALK: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/dingtalk + +#flowable配置 +flowable: + activity-font-name: \u5B8B\u4F53 + label-font-name: \u5B8B\u4F53 + annotation-font-name: \u5B8B\u4F53 + check-process-definitions: false + database-schema-update: true + async-executor-activate: false + async-history-executor-activate: false + +#job服务配置 +powerjob: + worker: + enabled: false + app-name: blade-job + port: 27777 + server-address: 127.0.0.1:7700 + +#blade配置 +blade: + #token配置 + token: + #是否有状态 + state: false + #是否单用户登录 + single: false + #单用户登录范围 + single-level: all + #token签名 使用 @org.springblade.test.SignKeyGenerator 获取 + sign-key: VjEqSlCd2Z3p5tVOua8eTwHMSv3zbAPX + #token加密 使用 @org.springblade.test.CryptoKeyGenerator 获取 + crypto-key: sja69KSDtTtoDPSCVzrYpesw2LoKFBeI + #接口配置 + api: + #报文加密配置 + crypto: + #启用报文加密配置 + enabled: false + #使用 @org.springblade.test.CryptoKeyGenerator 获取,需和前端保持一致 + aes-key: tvX0ubkg2X0g1IhT47JEDestjHhnTvb2 + #使用 @org.springblade.test.CryptoKeyGenerator 获取,需和前端保持一致 + des-key: 6FHTnmx2ElUHhEzK + #jackson配置 + jackson: + #null自动转空值 + null-to-empty: true + #大数字自动转字符串 + big-num-to-string: true + #支持text文本请求,与报文加密同时开启 + support-text-plain: false + #redis序列化方式 + redis: + serializer-type: protostuff + #日志配置 + log: + request: + #开启控制台请求日志 + enabled: true + #控制台请求日志忽略 + skip-url: + - /blade-desk/notice/list + - /blade-chat/weixin/** + #开启错误日志入库 + error-log: true + #xss配置 + xss: + enabled: true + skip-url: + - /blade-chat/weixin + - /blade-desk/notice/submit + - /blade-flow/model/submit + - /blade-develop/datasource/submit + #安全框架配置 + secure: + #严格模式 + #缺失令牌字段则取消授权 + strict-token: true + #缺失请求头则取消授权 + strict-header: true + #接口放行 + skip-url: + - /blade-test/** + - /nat/open/** + - /webjars/** + #授权认证配置 + auth: + - method: ALL + pattern: /blade-chat/wechat/** + expression: "hasAuth()" + - method: ALL + pattern: /blade-chat/qq/** + expression: "hasStrictToken()" + - method: ALL + pattern: /blade-chat/ding/** + expression: "hasStrictHeader()" + - method: POST + pattern: /blade-desk/dashboard/upload + expression: "hasTimeAuth(9, 17)" + - method: POST + pattern: /blade-desk/dashboard/submit + expression: "hasAnyRole('administrator', 'admin', 'user')" + #基础认证配置 + basic: + - method: ALL + pattern: /blade-desk/dashboard/info + username: "blade" + password: "blade" + #动态签名认证配置 + sign: + - method: ALL + pattern: /blade-desk/dashboard/sign + crypto: "sha1" + #多终端认证配置 + client: + - client-id: sword + path-patterns: + - /blade-sword/** + - client-id: saber + path-patterns: + - /blade-saber/** + #多租户配置 + tenant: + #多租户增强 + enhance: true + #多租户授权保护 + license: false + #动态数据库隔离功能 + dynamic-datasource: false + #动态数据库隔离全局扫描 + dynamic-global: false + #多租户字段名 + column: tenant_id + #排除多租户逻辑 + exclude-tables: + - blade_user + #分库分表配置 + sharding: + enabled: false + + diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt new file mode 100644 index 0000000..8114a62 --- /dev/null +++ b/src/main/resources/banner.txt @@ -0,0 +1,10 @@ +${AnsiColor.BLUE} _ __ +${AnsiColor.BLUE} (_) / _| +${AnsiColor.BLUE} ___ _ | |_ __ _ _ __ __ _ +${AnsiColor.BLUE} / __| | | | _| / _` | | '_ \ / _` | +${AnsiColor.BLUE} \__ \ | | | | | (_| | | | | | | (_| | +${AnsiColor.BLUE} |___/ |_| |_| \__,_| |_| |_| \__, | +${AnsiColor.BLUE} __/ | +${AnsiColor.BLUE} |___/ + +${AnsiColor.BLUE}:: SIFANG ${blade.service.version} :: ${spring.application.name}:${AnsiColor.RED}${blade.env}${AnsiColor.BLUE} :: Running SpringBoot ${spring-boot.version} :: ${AnsiColor.BRIGHT_BLACK} diff --git a/src/main/resources/ehcache.xml b/src/main/resources/ehcache.xml new file mode 100644 index 0000000..1c6ad0c --- /dev/null +++ b/src/main/resources/ehcache.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/liteflow/oss.el.png b/src/main/resources/liteflow/oss.el.png new file mode 100644 index 0000000000000000000000000000000000000000..277968ed7f92ed7e549c752771f29c78455e9859 GIT binary patch literal 234131 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%0AA6F6Od>9}|2 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
*nALIaw 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/liteflow/oss.el.xml b/src/main/resources/liteflow/oss.el.xml new file mode 100644 index 0000000..64d9f30 --- /dev/null +++ b/src/main/resources/liteflow/oss.el.xml @@ -0,0 +1,24 @@ + + + + THEN( + preOssRule, + SWITCH(ossCacheRule).TO( + ossReadRule, + THEN( + ossDataRule, + SWITCH(ossBuildRule).TO( + aliOssRule, + amazonS3Rule, + huaweiObsRule, + minioRule, + qiniuOssRule, + tencentCosRule + ), + ossTemplateRule + ).id("ossNewRule") + ), + finallyOssRule + ); + + diff --git a/src/main/resources/liteflow/sms.el.png b/src/main/resources/liteflow/sms.el.png new file mode 100644 index 0000000000000000000000000000000000000000..a6feedc0320cbd30fa652c372f340740010433bb GIT binary patch literal 142110 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/liteflow/sms.el.xml b/src/main/resources/liteflow/sms.el.xml new file mode 100644 index 0000000..585e7f7 --- /dev/null +++ b/src/main/resources/liteflow/sms.el.xml @@ -0,0 +1,16 @@ + + + + THEN( + preSmsRule, + SWITCH(smsBuildRule).TO( + aliSmsRule, + qiniuSmsRule, + tencentSmsRule, + yunpianSmsRule, + cacheSmsRule + ), + finallySmsRule + ); + + diff --git a/src/main/resources/liteflow/tenant.el.png b/src/main/resources/liteflow/tenant.el.png new file mode 100644 index 0000000000000000000000000000000000000000..a54c31cce367b9c4f1ee75f96a38f01fdfb8959d GIT binary patch literal 107067 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

Nv-PnXm`76!j_|x;zeG|RX>~c&6Mlz=x6px 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

K~8ryR1VjdEA;yK2LoS7(f0=m(%` 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 Tx@-Cy__y7{dJBHjfiwRFq10Z5 literal 0 HcmV?d00001 diff --git a/src/main/resources/liteflow/tenant.el.xml b/src/main/resources/liteflow/tenant.el.xml new file mode 100644 index 0000000..4b4383c --- /dev/null +++ b/src/main/resources/liteflow/tenant.el.xml @@ -0,0 +1,16 @@ + + + + THEN( + tenantRule, + WHEN( + tenantRoleRule, + tenantRoleMenuRule, + tenantDeptRule, + tenantPostRule, + tenantDictBizRule, + tenantUserRule + ) + ); + + diff --git a/src/main/resources/log/logback-dev.xml b/src/main/resources/log/logback-dev.xml new file mode 100644 index 0000000..dacc4d8 --- /dev/null +++ b/src/main/resources/log/logback-dev.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/log/logback-prod.xml b/src/main/resources/log/logback-prod.xml new file mode 100644 index 0000000..ab6b102 --- /dev/null +++ b/src/main/resources/log/logback-prod.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + + + + target/blade/log/info-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + INFO + ACCEPT + DENY + + + + + + + + target/blade/log/error-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + ERROR + ACCEPT + DENY + + + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + INFO + ACCEPT + DENY + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/log/logback-test.xml b/src/main/resources/log/logback-test.xml new file mode 100644 index 0000000..ab6b102 --- /dev/null +++ b/src/main/resources/log/logback-test.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + + + + target/blade/log/info-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + INFO + ACCEPT + DENY + + + + + + + + target/blade/log/error-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + ERROR + ACCEPT + DENY + + + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + INFO + ACCEPT + DENY + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/processes/LeaveProcess.bpmn20.xml b/src/main/resources/processes/LeaveProcess.bpmn20.xml new file mode 100644 index 0000000..4d86c05 --- /dev/null +++ b/src/main/resources/processes/LeaveProcess.bpmn20.xml @@ -0,0 +1,123 @@ + + + + 请假流程 + + + + + + + + + + + + + + + + + + + + + + + + 3}]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/static/favicon.ico b/src/main/resources/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..cb67ccbe9f936d4c8eceb02078f48bd79165b425 GIT binary patch literal 16958 zcmeHNX;4&G7Jgy_&AutS&}@pxqA@B_1_&q!qCrJL#5GQ|kQn!UqBE(Oid9TW;xfiv zqsC}l5G0DwEH1cDX3CmMO<8d&HIN}!@B@erI+wnF&4_+*+?-`_q4`WWbAppSt*2402% zeSc?fy_0hq^vgWfEA9nmy@#t?bME+D8sOvqXN;Hdxn2RT2N1xibJMw8+^}vFH8!@= zrAzgcKJHh9^TT_1RP&eh{dG>jdAxi{g}~1ES!PU|!T3`(5AZnvkn0LC?wMUOn;IHg zEcp32DOK%eTh<+)zRps)f5<;COHUw zkvM>D9dfG-vJ1!WLJTkR+)sHA&;OcL>jZwz_fpgV_({R>*}z^aurvNw-};AT=hBG$YI5h3CK95!UAz!w-Z zj>c466xf-A*zD!x;o&c?1%#)Ne@H@)9032yqQa^4)&2YQrw0#&oH}uW+?`z?As(E1 z^6Tfg4lYU{Kkz&=?xf-!#M5&C4bE9D@?q5CGvpsSj5+u#u!P(571wHy96V^j zE;&d}5YI*1d&UvY!S7OF>hud50(>r{*SSzw${Y0R;?tH~5cz+=Nv&>!Rd7{vr4JiXr#95 z*KIhcs{B29xQI362yAGa1Lw8eA0^G)fxSYF*e`Kh3>zFzexBZRX#ak@98_-K&U*mn z>45g*z&f%QIU`?e1x2YVfz1Nb)uauf0o zh!K)5^8)XLqA}*RomRcGoNnE?K~0T~f&=dP{JnhW=)psRgPX_&YYw*k?mfc3lX>HJ z1Ja~JY4}wX9~;+s;^;BDd+QeM-@BJ0Lc+dB?(%N~2FN!Ml69WzoaBJ-pOiC^0=#|c z*x|!=Ie2f&R>?sX>^Ky5b_PB@Ja^`dO%3~G_a2_JJCH|^c9z%E(gi)H4%#g9%LJ7(elHmq}D)4KJNgAe(89pwXGzOFfc!Djvs?c2}3A_tuFrJtw+f`jag zOdAf`%=O^*&6~v62KxHbXP+Lo%fY%;t0f2TI|>KzqbwyMkuID)E9UDYe2d}CxLze#P7klKj2uhjsvctu*1UdN~P(aRl|=`$U`qT zcaHaam}|?ts~yAjRP?v)Ia%4yksPem0%o<3l7qbQIduQd9ZUUS?A#x4+>aeK zhC&7e(ifkfw#&idHy23`R;ul5VJtX6J;=|=waWp&7fc;Fitv7nc#Y+HV4Vvb2XD@s zkKf%yJy@m%%xWJ^95}ZZ&5~16x>^&9xw+*YWrFkOAcmEoo<(dhAUSn zJ|>RhqN3^QmzTS7!0(wRU|$J4%t4_RFspr(9B^&77YFsgJvb_chQ!1Y^TF!^_YAT> z;CC#%?}iE(aX{v4$v-4_q769NcMZqx9GCo2-*_gCpa7o^M#w zv2WD1m(DD<%q`C`_rqKdF4tb7m~GAH7s&zdd(<58oL{|sg*fL~TF^Jk9N?Y_&rXwew5%lu^ULPg zaKQ7-Ju&kj`UKQN*-P^~6+E|I%ebw5mmDmdJI}&_oNJB?UjMlU${Z*u68}&8fVB;+ z9}5n!E-aeAz_K<<4%C`!0@i?5tz%aE4@~0Sy0^Or4UHX)o-d0Q%$ZBS*|3rRuxl69 zT(}@&VMk>p$NzWg=X=8#xFR6aAZsD}z=;w1@6e1{{Fch^68RY7-5W5!2nO^`?!cQ2 z9*UsXLk>U;FY;{PJ$(%HG0?}rFNFd6e?Q-vA8a=3-n!v?Bati z#ixVMbSbVKkCR3+pZ=oE4FxH|eeBZ)h@q!($~< zTzI1R2;HH$3jI{+&$=s3>Bssh{+l)H4$SZt)-H-L(BY#915YEj3f+~_WH$8JZ0L!} z5S|o<;F$?)m&p)3Gkan(0BA37fITAm5t?cI*bMcFS$9}S&EVU?jY(6JS(6cGU+D8c Dwmo3m literal 0 HcmV?d00001 diff --git a/src/test/java/org/springblade/test/BladeTest.java b/src/test/java/org/springblade/test/BladeTest.java new file mode 100644 index 0000000..97bfc06 --- /dev/null +++ b/src/test/java/org/springblade/test/BladeTest.java @@ -0,0 +1,45 @@ +package org.springblade.test; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springblade.core.test.BladeBootTest; +import org.springblade.core.test.BladeSpringExtension; +import org.springblade.core.tool.utils.StringUtil; +//import org.springblade.flow.engine.entity.FlowModel; +//import org.springblade.flow.engine.service.FlowEngineService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * Blade单元测试 + * + * @author Chill + */ +@ExtendWith(BladeSpringExtension.class) +@BladeBootTest(appName = "blade-runner", enableLoader = true) +public class BladeTest { + +// @Autowired +// private FlowEngineService service; + + //@Test + public void contextLoads() { + System.out.println("=====数据迁移启动====="); + + // 获取 ACT_DE_MODEL 表需要转换的数据 +// List list = service.list(); +// // 循环转换 +// list.forEach(flowModel -> { +// if (StringUtil.isBlank(flowModel.getModelEditorXml())) { +// service.update(Wrappers.lambdaUpdate() +// .set(FlowModel::getModelEditorXml, new String(service.getModelEditorXML(flowModel))) +// .ge(FlowModel::getId, flowModel.getId()) +// ); +// } +// }); + + System.out.println("=====数据迁移完毕====="); + } + +} diff --git a/src/test/java/org/springblade/test/CodeGenerator.java b/src/test/java/org/springblade/test/CodeGenerator.java new file mode 100644 index 0000000..e1212ab --- /dev/null +++ b/src/test/java/org/springblade/test/CodeGenerator.java @@ -0,0 +1,98 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.test; + + +import org.springblade.develop.constant.DevelopConstant; +import org.springblade.develop.support.BladeCodeGenerator; + +/** + * 代码生成器 + * + * @author Chill + */ +public class CodeGenerator { + + /** + * 代码生成的模块名 + */ + public static String CODE_NAME = "自定义模块"; + /** + * 代码所在服务名 + */ + public static String SERVICE_NAME = "blade-desk"; + /** + * 代码生成的包名 + */ + public static String PACKAGE_NAME = "org.springblade.desk"; + /** + * 前端代码生成风格 + */ + public static String CODE_STYLE = DevelopConstant.SABER_NAME; + /** + * 前端代码生成地址 + */ + public static String PACKAGE_WEB_DIR = "/Users/chill/Workspaces/product/Sword"; + /** + * 需要去掉的表前缀 + */ + public static String[] TABLE_PREFIX = {"blade_"}; + /** + * 需要生成的表名(两者只能取其一) + */ + public static String[] INCLUDE_TABLES = {"blade_notice"}; + /** + * 需要排除的表名(两者只能取其一) + */ + public static String[] EXCLUDE_TABLES = {}; + /** + * 是否包含基础业务字段 + */ + public static Boolean HAS_SUPER_ENTITY = Boolean.TRUE; + /** + * 基础业务字段 + */ + public static String[] SUPER_ENTITY_COLUMNS = {"id", "create_time", "create_user", "create_dept", "update_time", "update_user", "status", "is_deleted"}; + + /** + * RUN THIS + */ + public static void main(String[] args) { + BladeCodeGenerator generator = new BladeCodeGenerator(); + generator.setCodeName(CODE_NAME); + generator.setServiceName(SERVICE_NAME); + generator.setCodeStyle(CODE_STYLE); + generator.setPackageName(PACKAGE_NAME); + generator.setPackageWebDir(PACKAGE_WEB_DIR); + generator.setTablePrefix(TABLE_PREFIX); + generator.setIncludeTables(INCLUDE_TABLES); + generator.setExcludeTables(EXCLUDE_TABLES); + generator.setHasSuperEntity(HAS_SUPER_ENTITY); + generator.setSuperEntityColumns(SUPER_ENTITY_COLUMNS); + generator.run(); + } + +} diff --git a/src/test/java/org/springblade/test/CryptoKeyGenerator.java b/src/test/java/org/springblade/test/CryptoKeyGenerator.java new file mode 100644 index 0000000..40f84c3 --- /dev/null +++ b/src/test/java/org/springblade/test/CryptoKeyGenerator.java @@ -0,0 +1,43 @@ +package org.springblade.test; + +import org.springblade.core.tool.utils.AesUtil; +import org.springblade.core.tool.utils.DesUtil; +import org.springblade.core.tool.utils.StringPool; + +/** + * Key生成器 + * + * @author Chill + */ +public class CryptoKeyGenerator { + + public static void main(String[] args) { + System.out.println("======================================================="); + System.out.println("====== blade.token.crypto-key 的值从中挑选一个便可 ======="); + System.out.println("======================================================="); + for (int i = 0; i < 10; i++) { + String cryptoKey = AesUtil.genAesKey(); + System.out.println("BladeX CryptoKey:[" + cryptoKey + "] "); + } + System.out.println("======================================================="); + System.out.println(StringPool.EMPTY); + System.out.println("======================================================="); + System.out.println("===== blade.api.crypto.aes-key 的值从中挑选一个便可 ======"); + System.out.println("======================================================="); + for (int i = 0; i < 10; i++) { + String AesKey = AesUtil.genAesKey(); + System.out.println("BladeX AesKey:[" + AesKey + "] "); + } + System.out.println("======================================================="); + System.out.println(StringPool.EMPTY); + System.out.println("======================================================="); + System.out.println("===== blade.api.crypto.des-key 的值从中挑选一个便可 ======"); + System.out.println("======================================================="); + for (int i = 0; i < 10; i++) { + String DesKey = DesUtil.genDesKey(); + System.out.println("BladeX DesKey:[" + DesKey + "] "); + } + System.out.println("======================================================="); + } + +} diff --git a/src/test/java/org/springblade/test/SignKeyGenerator.java b/src/test/java/org/springblade/test/SignKeyGenerator.java new file mode 100644 index 0000000..a0ff708 --- /dev/null +++ b/src/test/java/org/springblade/test/SignKeyGenerator.java @@ -0,0 +1,24 @@ +package org.springblade.test; + +import org.springblade.core.tool.utils.RandomType; +import org.springblade.core.tool.utils.StringUtil; + +/** + * signKey生成器 + * + * @author Chill + */ +public class SignKeyGenerator { + + public static void main(String[] args) { + System.out.println("======================================================="); + System.out.println("====== blade.token.sign-key 的值从中挑选一个便可 ========="); + System.out.println("======================================================="); + for (int i = 0; i < 10; i++) { + String signKey = StringUtil.random(32, RandomType.ALL); + System.out.println("BladeX SignKey:[" + signKey + "] "); + } + System.out.println("======================================================="); + } + +} diff --git a/src/test/java/org/springblade/test/http/OsChina.java b/src/test/java/org/springblade/test/http/OsChina.java new file mode 100644 index 0000000..9583620 --- /dev/null +++ b/src/test/java/org/springblade/test/http/OsChina.java @@ -0,0 +1,22 @@ +package org.springblade.test.http; + +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.http.CssQuery; + +import java.util.List; + +@Getter +@Setter +public class OsChina { + + @CssQuery(value = "head > title", attr = "text") + private String title; + + @CssQuery(value = "#v_news .page .news", inner = true) + private List vNews; + + @CssQuery(value = ".blog-container .blog-list div", inner = true) + private List vBlogList; + +} diff --git a/src/test/java/org/springblade/test/http/OsChinaTest.java b/src/test/java/org/springblade/test/http/OsChinaTest.java new file mode 100644 index 0000000..34e1209 --- /dev/null +++ b/src/test/java/org/springblade/test/http/OsChinaTest.java @@ -0,0 +1,38 @@ +package org.springblade.test.http; + +import org.springblade.core.http.HttpRequest; + +import java.util.List; + +public class OsChinaTest { + + public static void main(String[] args) { + // 同步,异常返回 null + OsChina oschina = HttpRequest.get("https://www.oschina.net") + .execute() + .onSuccess(responseSpec -> responseSpec.asDomValue(OsChina.class)); + if (oschina == null) { + return; + } + System.out.println(oschina.getTitle()); + + System.out.println("热门新闻"); + + List vNews = oschina.getVNews(); + for (VNews vNew : vNews) { + System.out.println("title:\t" + vNew.getTitle()); + System.out.println("href:\t" + vNew.getHref()); + System.out.println("时间:\t" + vNew.getDate()); + } + + System.out.println("热门博客"); + List vBlogList = oschina.getVBlogList(); + for (VBlog vBlog : vBlogList) { + System.out.println("title:\t" + vBlog.getTitle()); + System.out.println("href:\t" + vBlog.getHref()); + System.out.println("阅读数:\t" + vBlog.getRead()); + System.out.println("评价数:\t" + vBlog.getPing()); + System.out.println("点赞数:\t" + vBlog.getZhan()); + } + } +} diff --git a/src/test/java/org/springblade/test/http/VBlog.java b/src/test/java/org/springblade/test/http/VBlog.java new file mode 100644 index 0000000..0488891 --- /dev/null +++ b/src/test/java/org/springblade/test/http/VBlog.java @@ -0,0 +1,30 @@ +package org.springblade.test.http; + +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.http.CssQuery; + +/** + * 热门博客 + */ +@Getter +@Setter +public class VBlog { + + @CssQuery(value = "a", attr = "title") + private String title; + + @CssQuery(value = "a", attr = "href") + private String href; + + //1341阅/9评/4赞 + @CssQuery(value = "span", attr = "text", regex = "^\\d+") + private Integer read; + + @CssQuery(value = "span", attr = "text", regex = "(\\d*).*/(\\d*).*/(\\d*).*", regexGroup = 2) + private Integer ping; + + @CssQuery(value = "span", attr = "text", regex = "(\\d*).*/(\\d*).*/(\\d*).*", regexGroup = 3) + private Integer zhan; + +} diff --git a/src/test/java/org/springblade/test/http/VNews.java b/src/test/java/org/springblade/test/http/VNews.java new file mode 100644 index 0000000..3b5763c --- /dev/null +++ b/src/test/java/org/springblade/test/http/VNews.java @@ -0,0 +1,24 @@ +package org.springblade.test.http; + +import lombok.Getter; +import lombok.Setter; +import org.springblade.core.http.CssQuery; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Setter +@Getter +public class VNews { + + @CssQuery(value = "a", attr = "title") + private String title; + + @CssQuery(value = "a", attr = "href") + private String href; + + @CssQuery(value = ".news-date", attr = "text") + @DateTimeFormat(pattern = "MM/dd") + private Date date; + +} diff --git a/src/test/java/org/springblade/test/launch/LauncherTestServiceImpl.java b/src/test/java/org/springblade/test/launch/LauncherTestServiceImpl.java new file mode 100644 index 0000000..502f351 --- /dev/null +++ b/src/test/java/org/springblade/test/launch/LauncherTestServiceImpl.java @@ -0,0 +1,49 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.test.launch; + +import org.springblade.core.auto.service.AutoService; +import org.springblade.core.launch.service.LauncherService; +import org.springblade.core.launch.utils.PropsUtil; +import org.springframework.boot.builder.SpringApplicationBuilder; + +import java.util.Properties; + +/** + * 启动参数拓展 + * + * @author smallchil + */ +@AutoService(LauncherService.class) +public class LauncherTestServiceImpl implements LauncherService { + + @Override + public void launcher(SpringApplicationBuilder builder, String appName, String profile, boolean isLocalDev) { + Properties props = System.getProperties(); + PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false"); + } + +} diff --git a/src/test/resources/application-dev.yml b/src/test/resources/application-dev.yml new file mode 100644 index 0000000..2466836 --- /dev/null +++ b/src/test/resources/application-dev.yml @@ -0,0 +1,60 @@ +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + host: 127.0.0.1 + port: 6379 + password: + database: 0 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + # MySql + url: jdbc:mysql://localhost:3306/bladex_boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + # PostgreSQL + #url: jdbc:postgresql://127.0.0.1:5432/bladex_boot + #username: postgres + #password: 123456 + # Oracle + #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl + #username: BLADEX_BOOT + #password: BLADEX_BOOT + # SqlServer + #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex_boot + #username: bladex_boot + #password: bladex_boot + # DaMeng + #url: jdbc:dm://127.0.0.1:5236/BLADEX_BOOT?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 + #username: BLADEX_BOOT + #password: BLADEX_BOOT + # YashanDB + #url: jdbc:yasdb://127.0.0.1:1688/BLADEX_BOOT + #username: BLADEX_BOOT + #password: BLADEX_BOOT + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##redis服务地址 + address: redis://127.0.0.1:6379 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html + diff --git a/src/test/resources/application-prod.yml b/src/test/resources/application-prod.yml new file mode 100644 index 0000000..71cfcf1 --- /dev/null +++ b/src/test/resources/application-prod.yml @@ -0,0 +1,42 @@ +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + host: 127.0.0.1 + port: 6379 + password: + database: 0 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + url: jdbc:mysql://localhost:3306/bladex_boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + address: redis://127.0.0.1:6379 + password: 123456 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html diff --git a/src/test/resources/application-test.yml b/src/test/resources/application-test.yml new file mode 100644 index 0000000..71cfcf1 --- /dev/null +++ b/src/test/resources/application-test.yml @@ -0,0 +1,42 @@ +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + host: 127.0.0.1 + port: 6379 + password: + database: 0 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + url: jdbc:mysql://localhost:3306/bladex_boot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + address: redis://127.0.0.1:6379 + password: 123456 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html diff --git a/src/test/resources/application.yml b/src/test/resources/application.yml new file mode 100644 index 0000000..f74ebd3 --- /dev/null +++ b/src/test/resources/application.yml @@ -0,0 +1,288 @@ +#服务器配置 +server: + port: 80 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + #driver-class-name: org.postgresql.Driver + #driver-class-name: oracle.jdbc.OracleDriver + #driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver + #driver-class-name: dm.jdbc.driver.DmDriver + #driver-class-name: com.yashandb.jdbc.Driver + druid: + # MySql、PostgreSQL、SqlServer、DaMeng校验 + validation-query: select 1 + # Oracle、YashanDB校验 + #oracle: true + #validation-query: select 1 from dual + validation-query-timeout: 2000 + initial-size: 5 + max-active: 20 + min-idle: 5 + max-wait: 60000 + test-on-borrow: false + test-on-return: false + test-while-idle: true + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + stat-view-servlet: + enabled: true + login-username: blade + login-password: 1qaz@WSX + web-stat-filter: + enabled: true + url-pattern: /* + exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*' + session-stat-enable: true + session-stat-max-count: 10 + +# mybatis +mybatis-plus: + mapper-locations: classpath:org/springblade/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springblade.**.entity + #typeEnumsPackage: org.springblade.dashboard.entity.enums + global-config: + # 关闭MP3.0自带的banner + banner: false + db-config: + #主键类型 0:"数据库ID自增", 1:"不操作", 2:"用户输入ID",3:"数字型snowflake", 4:"全局唯一ID UUID", 5:"字符串型snowflake"; + id-type: assign_id + #字段策略 + insert-strategy: not_null + update-strategy: not_null + where-strategy: not_null + #驼峰下划线转换 + table-underline: true + # 逻辑删除配置 + # 逻辑删除全局值(1表示已删除,这也是Mybatis Plus的默认配置) + logic-delete-value: 1 + # 逻辑未删除全局值(0表示未删除,这也是Mybatis Plus的默认配置) + logic-not-delete-value: 0 + configuration: + map-underscore-to-camel-case: true + cache-enabled: false + jdbc-type-for-null: 'null' + +#knife4j配置 +knife4j: + #启用 + enable: true + #基础认证 + basic: + enable: false + username: blade + password: blade + #增强配置 + setting: + enable-swagger-models: true + enable-document-manage: true + enable-host: false + enable-host-text: http://localhost + enable-request-cache: true + enable-filter-multipart-apis: false + enable-filter-multipart-api-method-type: POST + enable-footer: false + enable-footer-custom: true + language: zh_cn + footer-custom-content: Copyright © 2024 BladeX All Rights Reserved + +#swagger公共信息 +swagger: + title: BladeX 接口文档系统 + description: BladeX 接口文档系统 + version: 4.0.1.RELEASE + license: Powered By BladeX + license-url: https://license.bladex.cn + contact: + name: 翼宿 + email: bladejava@qq.com + url: https://gitee.com/smallc + +#oss默认配置 +oss: + #开启oss配置 + enabled: true + #开启oss类型 + #minio、s3、qiniu、alioss、huaweiobs、tencentcos + name: minio + #租户模式 + tenant-mode: true + #oss服务地址 + endpoint: http://127.0.0.1:9000 + #oss转换服务地址,用于内网上传后将返回地址改为转换的外网地址 + transform-endpoint: http://localhost:9000 + #访问key + access-key: bladexadmin + #密钥key + secret-key: bladexadmin + #存储桶 + bucket-name: bladex + +#第三方登陆配置 +social: + oauth: + GITHUB: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/github + GITEE: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/gitee + WECHAT_OPEN: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/wechat + QQ: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/qq + DINGTALK: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/dingtalk + +#flowable配置 +flowable: + activity-font-name: \u5B8B\u4F53 + label-font-name: \u5B8B\u4F53 + annotation-font-name: \u5B8B\u4F53 + check-process-definitions: false + database-schema-update: true + async-executor-activate: false + async-history-executor-activate: false + +##报表配置 +#report: +# enabled: false +# database: +# provider: +# prefix: blade- + +#job服务配置 +powerjob: + worker: + enabled: false + app-name: blade-job + port: 27777 + server-address: 127.0.0.1:7700 + +#blade配置 +blade: + #token配置 + token: + #是否有状态 + state: false + #是否单用户登录 + single: false + #单用户登录范围 + single-level: all + #token签名 使用 @org.springblade.test.SignKeyGenerator 获取 + sign-key: 请配置32位签名 + #token加密 使用 @org.springblade.test.CryptoKeyGenerator 获取 + crypto-key: 请配置cryptoKey + #接口配置 + api: + #报文加密配置 + crypto: + #启用报文加密配置 + enabled: false + #使用 @org.springblade.test.CryptoKeyGenerator 获取,需和前端保持一致 + aes-key: 请配置aesKey + #使用 @org.springblade.test.CryptoKeyGenerator 获取,需和前端保持一致 + des-key: 请配置desKey + #jackson配置 + jackson: + #null自动转空值 + null-to-empty: true + #大数字自动转字符串 + big-num-to-string: true + #支持text文本请求,与报文加密同时开启 + support-text-plain: false + #redis序列化方式 + redis: + serializer-type: protostuff + #日志配置 + log: + request: + #开启控制台请求日志 + enabled: true + #控制台请求日志忽略 + skip-url: + - /blade-desk/notice/list + - /blade-chat/weixin/** + #开启错误日志入库 + error-log: true + #xss配置 + xss: + enabled: true + skip-url: + - /blade-chat/weixin + - /blade-desk/notice/submit + - /blade-flow/model/submit + - /blade-develop/datasource/submit + #安全框架配置 + secure: + #接口放行 + skip-url: + - /blade-test/** + #授权认证配置 + auth: + - method: ALL + pattern: /blade-chat/weixin/** + expression: "hasAuth()" + - method: POST + pattern: /blade-desk/dashboard/upload + expression: "hasTimeAuth(9, 17)" + - method: POST + pattern: /blade-desk/dashboard/submit + expression: "hasAnyRole('administrator', 'admin', 'user')" + #基础认证配置 + basic: + - method: ALL + pattern: /blade-desk/dashboard/info + username: "blade" + password: "blade" + #动态签名认证配置 + sign: + - method: ALL + pattern: /blade-desk/dashboard/sign + crypto: "sha1" + #多终端认证配置 + client: + - client-id: sword + path-patterns: + - /blade-sword/** + - client-id: saber + path-patterns: + - /blade-saber/** + #多租户配置 + tenant: + #多租户增强 + enhance: true + #多租户授权保护 + license: false + #动态数据库隔离功能 + dynamic-datasource: false + #动态数据库隔离全局扫描 + dynamic-global: false + #多租户字段名 + column: tenant_id + #排除多租户逻辑 + exclude-tables: + - blade_user + #分库分表配置 + sharding: + enabled: false diff --git a/target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService b/target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService new file mode 100644 index 0000000..87512c9 --- /dev/null +++ b/target/classes/META-INF/services/org.springblade.core.launch.service.LauncherService @@ -0,0 +1 @@ +org.springblade.common.launch.LauncherServiceImpl diff --git a/target/classes/META-INF/spring-devtools.properties b/target/classes/META-INF/spring-devtools.properties new file mode 100644 index 0000000..95e6f88 --- /dev/null +++ b/target/classes/META-INF/spring-devtools.properties @@ -0,0 +1 @@ +restart.include.nenghui-uat=/nenghui-uat[\\w-]+\.jar \ No newline at end of file diff --git a/target/classes/META-INF/spring.factories b/target/classes/META-INF/spring.factories new file mode 100644 index 0000000..7d3f41b --- /dev/null +++ b/target/classes/META-INF/spring.factories @@ -0,0 +1,275 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ + org.springblade.modules.resource.rule.oss.PreOssRule,\ + org.springblade.modules.apply.operationSiteApply.controller.OperationSiteApplyController,\ + org.springblade.modules.resource.rule.oss.OssTemplateRule,\ + org.springblade.modules.system.service.impl.AuthClientServiceImpl,\ + org.springblade.modules.nh.factory.goodwe.config.GoodweApiRestTemplate,\ + org.springblade.modules.resource.rule.sms.SmsBuildRule,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterDetailEachRunner,\ + org.springblade.modules.nh.api.OpenPowerStationController,\ + org.springblade.flow.engine.service.impl.ApplicationDetailService,\ + org.springblade.modules.nh.controller.HomePageController,\ + org.springblade.modules.material.service.impl.MaterialOutboundServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiStationFisGenDateEachRunner,\ + org.springblade.job.controller.JobInfoController,\ + org.springblade.modules.system.service.impl.TopMenuSettingServiceImpl,\ + org.springblade.modules.resource.rule.sms.AliSmsRule,\ + org.springblade.modules.nh.factory.saj.scheduler.SajDeviceHistoryEachRunner,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiAlarmEachRunner,\ + org.springblade.modules.system.controller.LogErrorController,\ + org.springblade.modules.material.service.impl.MaterialEngineerServiceImpl,\ + org.springblade.common.config.BladePreviewConfiguration,\ + org.springblade.modules.operation.service.impl.OperationSiteEmployeeServiceImpl,\ + org.springblade.modules.develop.service.impl.DatasourceServiceImpl,\ + org.springblade.modules.nh.service.impl.DeviceMsgService,\ + org.springblade.modules.resource.config.BladeOssConfiguration,\ + org.springblade.modules.order.service.impl.OperationOrderOperationInfoServiceImpl,\ + org.springblade.modules.system.controller.SearchController,\ + org.springblade.modules.system.service.impl.MenuServiceImpl,\ + org.springblade.modules.order.controller.OperationOrderFeedbackController,\ + org.springblade.modules.system.rule.TenantDeptRule,\ + org.springblade.modules.order.service.impl.OperationOrderSiteDispatchServiceImpl,\ + org.springblade.flow.demo.leave.controller.LeaveController,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiAlarmHistoryPageAction,\ + org.springblade.modules.flowable.tasks.RejectStartListener,\ + org.springblade.modules.system.controller.TenantController,\ + org.springblade.modules.fitting.service.impl.PlatformFittingApplyServiceImpl,\ + org.springblade.modules.order.service.impl.OperationOrderCallbackServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.config.AisweiApiRestTemplate,\ + org.springblade.modules.resource.rule.oss.OssCacheRule,\ + org.springblade.modules.nh.service.impl.NHCommonServiceImpl,\ + org.springblade.modules.order.controller.OperationOrderDispatchController,\ + org.springblade.modules.nh.factory.saj.scheduler.SajStationDetailEachRunner,\ + org.springblade.modules.system.service.impl.LogServiceImpl,\ + org.springblade.modules.material.controller.MaterialEngineerOutboundController,\ + org.springblade.modules.nh.service.impl.InverterDataServiceImpl,\ + org.springblade.modules.develop.controller.ModelController,\ + org.springblade.modules.auth.endpoint.SysOAuth2EndPoint,\ + org.springblade.modules.nh.job.UpdateDataScheduler,\ + org.springblade.modules.order.controller.OperationOrderSettleController,\ + org.springblade.job.controller.JobServerController,\ + org.springblade.modules.nh.service.impl.MonitorEntryMonthStatServiceImpl,\ + org.springblade.flow.engine.config.FlowableConfiguration,\ + org.springblade.modules.nh.controller.AlarmCodeController,\ + org.springblade.modules.system.service.impl.ApiScopeServiceImpl,\ + org.springblade.modules.order.controller.OperationOrderSiteDispatchController,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterLatestDetailEachRunner,\ + org.springblade.modules.material.controller.MaterialOutboundController,\ + org.springblade.modules.system.service.impl.RoleMenuServiceImpl,\ + org.springblade.modules.resource.rule.sms.TencentSmsRule,\ + org.springblade.modules.system.service.impl.DictServiceImpl,\ + org.springblade.modules.system.service.impl.TenantServiceImpl,\ + org.springblade.modules.nh.controller.MonitorInverterDailyStatController,\ + org.springblade.modules.system.controller.ApiScopeController,\ + org.springblade.modules.system.service.impl.ParamServiceImpl,\ + org.springblade.modules.nh.service.impl.AlarmCodeServiceImpl,\ + org.springblade.modules.flowable.processForm.service.impl.ProcessDefAuditStepServiceImpl,\ + org.springblade.modules.operation.controller.AnnouncementReadinfoController,\ + org.springblade.modules.resource.service.impl.AttachServiceImpl,\ + org.springblade.modules.fitting.controller.OperationOrderMaterialController,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongInverterDayEachRunner,\ + org.springblade.modules.auth.granter.CaptchaTokenGranter,\ + org.springblade.modules.system.controller.TenantPackageController,\ + org.springblade.modules.operation.controller.OperationSiteEmployeeController,\ + org.springblade.modules.resource.endpoint.SmsEndpoint,\ + org.springblade.modules.resource.rule.sms.QiniuSmsRule,\ + org.springblade.modules.system.controller.RegionController,\ + org.springblade.modules.nh.controller.MonitorEntryDailyStatController,\ + org.springblade.modules.operation.controller.PlatformEmployeeController,\ + org.springblade.modules.system.controller.LogUsualController,\ + org.springblade.modules.fitting.controller.PlatformFittingApplyController,\ + org.springblade.modules.material.service.impl.MaterialEngineerOutboundServiceImpl,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationYearEachRunner,\ + org.springblade.modules.operation.service.impl.OperationTechnicalDataServiceImpl,\ + org.springblade.modules.system.service.impl.UserOauthServiceImpl,\ + org.springblade.flow.engine.controller.FlowFollowController,\ + org.springblade.modules.nh.factory.saj.scheduler.SajDeviceListPageAction,\ + org.springblade.modules.develop.controller.DatasourceController,\ + org.springblade.common.config.SwaggerConfiguration,\ + org.springblade.flow.demo.leave.service.impl.LeaveServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiUserStationListPageAction,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweScheduler,\ + org.springblade.modules.system.service.impl.UserSearchServiceImpl,\ + org.springblade.modules.desk.service.impl.NoticeServiceImpl,\ + org.springblade.modules.nh.controller.MonitorEntryStatController,\ + org.springblade.modules.system.service.impl.LogUsualServiceImpl,\ + org.springblade.modules.system.service.impl.RoleServiceImpl,\ + org.springblade.modules.flowable.processForm.service.impl.ProcessDefServiceImpl,\ + org.springblade.modules.nh.factory.ginlong.GinlongApiRestTemplate,\ + org.springblade.modules.flowable.tasks.OneTaskCompleteListener,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiScheduler,\ + org.springblade.modules.operation.service.impl.PlatformAnnouncementServiceImpl,\ + org.springblade.modules.nh.controller.DeviceController,\ + org.springblade.modules.operation.service.impl.OperationSiteServiceImpl,\ + org.springblade.modules.system.rule.TenantRule,\ + org.springblade.flow.engine.controller.FlowModelController,\ + org.springblade.modules.resource.rule.oss.OssBuildRule,\ + org.springblade.modules.nh.service.impl.InefficientSettingServiceImpl,\ + org.springblade.modules.system.controller.PostController,\ + org.springblade.modules.system.controller.DataScopeController,\ + org.springblade.modules.resource.rule.oss.QiniuOssRule,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterPacByDayEachRunner,\ + org.springblade.modules.auth.config.BladeAuthConfiguration,\ + org.springblade.modules.system.rule.TenantDictBizRule,\ + org.springblade.modules.partner.controller.PartnerController,\ + org.springblade.common.config.BladeConfiguration,\ + org.springblade.modules.system.service.impl.DictBizServiceImpl,\ + org.springblade.modules.operation.controller.OperationSiteController,\ + org.springblade.modules.material.controller.MaterialOperationController,\ + org.springblade.modules.resource.endpoint.OssEndpoint,\ + org.springblade.modules.nh.controller.AlarmInfoController,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationAlarmEachRunner,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationMonthEachRunner,\ + org.springblade.modules.nh.service.impl.MonitorEntryYearStatServiceImpl,\ + org.springblade.modules.order.service.impl.OperationOrderLetterService,\ + org.springblade.modules.resource.rule.oss.MinioRule,\ + org.springblade.modules.nh.factory.saj.scheduler.SajStationDataEachRunner,\ + org.springblade.modules.system.service.impl.RoleScopeServiceImpl,\ + org.springblade.modules.desk.controller.DashBoardController,\ + org.springblade.modules.system.controller.TopMenuController,\ + org.springblade.modules.resource.config.BladeSmsConfiguration,\ + org.springblade.modules.resource.rule.sms.PreSmsRule,\ + org.springblade.modules.nh.factory.ginlong.GinlongApi,\ + org.springblade.modules.system.service.impl.RegionServiceImpl,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongInverterDetailListPageAction,\ + org.springblade.modules.resource.rule.oss.OssReadRule,\ + org.springblade.modules.operation.service.impl.OperationServiceMeasuresServiceImpl,\ + org.springblade.modules.operation.controller.OperationTechnicalDataController,\ + org.springblade.modules.develop.service.impl.ModelPrototypeServiceImpl,\ + org.springblade.modules.operation.controller.OperationSiteRoleController,\ + org.springblade.modules.operation.service.impl.OperationSiteRoleServiceImpl,\ + org.springblade.modules.material.controller.MaterialEngineerController,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongUserStationListPageAction,\ + org.springblade.modules.system.controller.MenuController,\ + org.springblade.modules.system.rule.TenantUserRule,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterDetailPageAction,\ + org.springblade.modules.nh.api.NatOpenSyncController,\ + org.springblade.flow.business.service.impl.FlowServiceImpl,\ + org.springblade.modules.resource.rule.oss.AliOssRule,\ + org.springblade.modules.resource.rule.oss.FinallyOssRule,\ + org.springblade.flow.business.controller.WorkController,\ + org.springblade.modules.system.service.impl.TenantPackageServiceImpl,\ + org.springblade.modules.operation.controller.OperationRoleController,\ + org.springblade.modules.nh.controller.InverterUapController,\ + org.springblade.job.processor.ProcessorDemo,\ + org.springblade.modules.system.service.impl.UserServiceImpl,\ + org.springblade.modules.nh.factory.saj.SajApi,\ + org.springblade.modules.nh.service.impl.AlarmInfoServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisStationDMYEachRunner,\ + org.springblade.modules.flowable.processForm.controller.ProcessDefController,\ + org.springblade.modules.resource.rule.oss.HuaweiObsRule,\ + org.springblade.modules.nh.service.impl.MonitorEntryDailyStatServiceImpl,\ + org.springblade.Application,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationFisGenDateEachRunner,\ + org.springblade.modules.resource.service.impl.OssServiceImpl,\ + org.springblade.modules.system.service.impl.DeptServiceImpl,\ + org.springblade.modules.nh.factory.saj.SajApiRestTemplate,\ + org.springblade.modules.resource.controller.OssController,\ + org.springblade.modules.nh.controller.MonitorEntryYearStatController,\ + org.springblade.modules.resource.rule.oss.OssDataRule,\ + org.springblade.modules.material.controller.MaterialOperationOutboundController,\ + org.springblade.modules.system.controller.ParamController,\ + org.springblade.modules.order.service.impl.OperationOrderDispatchServiceImpl,\ + org.springblade.modules.nh.service.impl.MonitorInverterStatServiceImpl,\ + org.springblade.modules.resource.controller.AttachController,\ + org.springblade.modules.operation.service.impl.OperationServiceTypeServiceImpl,\ + org.springblade.modules.order.controller.OperationOrderLetterController,\ + org.springblade.flow.business.service.impl.FlowBusinessServiceImpl,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongScheduler,\ + org.springblade.modules.system.controller.DictBizController,\ + org.springblade.modules.nh.controller.InefficientSettingController,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterDayEachRunner,\ + org.springblade.modules.flowable.examineInfo.service.impl.ExamineInfoServiceImpl,\ + org.springblade.modules.flowable.tasks.MyListener,\ + org.springblade.modules.system.rule.TenantRoleMenuRule,\ + org.springblade.modules.partner.service.impl.PartnerServiceImpl,\ + org.springblade.modules.nh.service.impl.MonitorEntryStatServiceImpl,\ + org.springblade.modules.system.service.impl.UserDeptServiceImpl,\ + org.springblade.modules.nh.job.InefficientScheduler,\ + org.springblade.modules.resource.controller.SmsController,\ + org.springblade.modules.order.controller.OperationOrderController,\ + org.springblade.modules.nh.service.impl.PowerStationServiceImpl,\ + org.springblade.common.config.BladeHandlerConfiguration,\ + org.springblade.modules.develop.service.impl.CodeServiceImpl,\ + org.springblade.modules.nh.controller.InverterDataController,\ + org.springblade.modules.flowable.processForm.service.impl.ProcessDefLatestServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.AisweiApi,\ + org.springblade.modules.resource.rule.sms.FinallySmsRule,\ + org.springblade.modules.material.service.impl.MaterialServiceImpl,\ + org.springblade.modules.operation.controller.PlatformAnnouncementController,\ + org.springblade.modules.fitting.service.impl.OperationOrderMaterialServiceImpl,\ + org.springblade.modules.auth.endpoint.MiniAppOauth2EndPoint,\ + org.springblade.modules.operation.controller.OperationServiceMeasuresController,\ + org.springblade.modules.material.controller.MaterialController,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationYearEachRunner,\ + org.springblade.modules.system.service.impl.DataScopeServiceImpl,\ + org.springblade.modules.nh.service.impl.MonitorInverterDailyStatServiceImpl,\ + org.springblade.modules.order.service.impl.OperationOrderServiceImpl,\ + org.springblade.modules.material.service.impl.MaterialOperationOutboundServiceImpl,\ + org.springblade.modules.nh.factory.saj.scheduler.SajStationFisGenDateEachRunner,\ + org.springblade.common.config.BladeLogConfiguration,\ + org.springblade.modules.system.controller.RoleController,\ + org.springblade.modules.nh.factory.saj.scheduler.SajDeviceRealtimeEachRunner,\ + org.springblade.modules.nh.controller.PowerStationInefficientController,\ + org.springblade.modules.nh.factory.saj.scheduler.SajStationListPageAction,\ + org.springblade.modules.develop.controller.ModelPrototypeController,\ + org.springblade.modules.resource.rule.sms.CacheSmsRule,\ + org.springblade.modules.nh.factory.saj.scheduler.SajScheduler,\ + org.springblade.modules.operation.service.impl.PlatformEmployeeServiceImpl,\ + org.springblade.modules.nh.service.impl.InverterUapServiceImpl,\ + org.springblade.modules.flowable.processForm.service.impl.ProcessDefSubmitStepServiceImpl,\ + org.springblade.modules.system.rule.TenantPostRule,\ + org.springblade.modules.system.service.impl.TopMenuServiceImpl,\ + org.springblade.modules.order.service.impl.OperationOrderFeedbackServiceImpl,\ + org.springblade.modules.order.service.impl.OperationOrderSettleServiceImpl,\ + org.springblade.modules.system.controller.DeptController,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterEachRunner,\ + org.springblade.flow.engine.service.impl.FlowEngineServiceImpl,\ + org.springblade.modules.nh.service.impl.DeviceServiceImpl,\ + org.springblade.job.service.impl.JobServerServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiHistoryAlarmEachRunner,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterDetailListPageAction,\ + org.springblade.modules.nh.controller.MonitorEntryMonthStatController,\ + org.springblade.modules.flowable.examineInfo.controller.ExamineInfoController,\ + org.springblade.modules.flowable.processForm.service.impl.ProcessFormServiceImpl,\ + org.springblade.modules.develop.service.impl.ModelServiceImpl,\ + org.springblade.modules.system.controller.LogApiController,\ + org.springblade.modules.material.service.impl.MaterialOperationServiceImpl,\ + org.springblade.flow.engine.controller.FlowManagerController,\ + org.springblade.modules.resource.rule.sms.YunpianSmsRule,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweUserStationListPageAction,\ + org.springblade.modules.nh.factory.ginlong.scheduler.GinlongAlarmListPageAction,\ + org.springblade.modules.system.rule.TenantRoleRule,\ + org.springblade.modules.system.service.impl.LogErrorServiceImpl,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationFisGenDateEachRunner,\ + org.springblade.modules.nh.controller.PowerStationController,\ + org.springblade.modules.fitting.service.impl.PlatformFittingApplyMsgServiceImpl,\ + org.springblade.job.service.impl.JobInfoServiceImpl,\ + org.springblade.modules.system.controller.UserController,\ + org.springblade.modules.auth.granter.RegisterTokenGranter,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiAlarmRecoverEachRunner,\ + org.springblade.modules.system.controller.DictController,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationMonthEachRunner,\ + org.springblade.modules.resource.rule.oss.AmazonS3Rule,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterEachRunner,\ + org.springblade.modules.nh.controller.MonitorInverterStatController,\ + org.springblade.modules.resource.service.impl.SmsServiceImpl,\ + org.springblade.flow.engine.controller.FlowProcessController,\ + org.springblade.modules.nh.service.impl.PowerStationInefficientServiceImpl,\ + org.springblade.modules.desk.controller.NoticeController,\ + org.springblade.common.config.BladeReportConfiguration,\ + org.springblade.modules.operation.service.impl.AnnouncementReadinfoServiceImpl,\ + org.springblade.modules.apply.operationSiteApply.service.impl.OperationSiteApplyServiceImpl,\ + org.springblade.modules.nh.factory.aiswei.scheduler.AisweiUserStationEachRunner,\ + org.springblade.modules.nh.factory.goodwe.scheduler.GoodweAlarmPageAction,\ + org.springblade.modules.auth.granter.SocialTokenGranter,\ + org.springblade.modules.operation.controller.OperationServiceTypeController,\ + org.springblade.modules.nh.factory.saj.scheduler.SajStationStatusEachRunner,\ + org.springblade.modules.resource.rule.oss.TencentCosRule,\ + org.springblade.modules.system.service.impl.PostServiceImpl,\ + org.springblade.modules.nh.factory.goodwe.GoodweApi,\ + org.springblade.modules.order.controller.OperationOrderCallbackController,\ + org.springblade.modules.system.service.impl.LogApiServiceImpl,\ + org.springblade.modules.nh.api.NatOpenController,\ + org.springblade.modules.system.controller.AuthClientController,\ + org.springblade.modules.develop.controller.CodeController diff --git a/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..625e186 --- /dev/null +++ b/target/classes/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,274 @@ +org.springblade.modules.nh.controller.InverterUapController +org.springblade.modules.system.service.impl.LogServiceImpl +org.springblade.modules.system.service.impl.UserSearchServiceImpl +org.springblade.modules.operation.controller.PlatformAnnouncementController +org.springblade.modules.fitting.service.impl.PlatformFittingApplyServiceImpl +org.springblade.modules.nh.controller.MonitorEntryStatController +org.springblade.flow.engine.controller.FlowManagerController +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongInverterDayEachRunner +org.springblade.modules.system.service.impl.LogUsualServiceImpl +org.springblade.modules.system.service.impl.TenantServiceImpl +org.springblade.modules.nh.api.OpenPowerStationController +org.springblade.flow.engine.controller.FlowProcessController +org.springblade.modules.nh.service.impl.DeviceMsgService +org.springblade.modules.system.rule.TenantUserRule +org.springblade.modules.system.service.impl.TopMenuServiceImpl +org.springblade.modules.material.service.impl.MaterialEngineerOutboundServiceImpl +org.springblade.modules.system.service.impl.MenuServiceImpl +org.springblade.modules.resource.rule.sms.SmsBuildRule +org.springblade.modules.flowable.examineInfo.controller.ExamineInfoController +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationYearEachRunner +org.springblade.modules.system.controller.RoleController +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationYearEachRunner +org.springblade.flow.business.controller.WorkController +org.springblade.modules.operation.service.impl.OperationServiceMeasuresServiceImpl +org.springblade.modules.system.service.impl.UserOauthServiceImpl +org.springblade.modules.nh.service.impl.InefficientSettingServiceImpl +org.springblade.modules.system.rule.TenantDictBizRule +org.springblade.modules.flowable.processForm.service.impl.ProcessDefSubmitStepServiceImpl +org.springblade.modules.system.service.impl.TopMenuSettingServiceImpl +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongAlarmListPageAction +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterDetailListPageAction +org.springblade.modules.nh.factory.saj.scheduler.SajDeviceListPageAction +org.springblade.modules.order.service.impl.OperationOrderCallbackServiceImpl +org.springblade.modules.order.controller.OperationOrderFeedbackController +org.springblade.modules.fitting.controller.PlatformFittingApplyController +org.springblade.modules.system.service.impl.RoleServiceImpl +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterEachRunner +org.springblade.job.controller.JobServerController +org.springblade.modules.nh.factory.aiswei.scheduler.AisStationDMYEachRunner +org.springblade.modules.material.controller.MaterialEngineerController +org.springblade.modules.system.service.impl.LogApiServiceImpl +org.springblade.common.config.SwaggerConfiguration +org.springblade.modules.system.controller.TopMenuController +org.springblade.modules.system.service.impl.RegionServiceImpl +org.springblade.flow.engine.config.FlowableConfiguration +org.springblade.modules.nh.factory.aiswei.AisweiApi +org.springblade.modules.fitting.service.impl.OperationOrderMaterialServiceImpl +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationFisGenDateEachRunner +org.springblade.modules.nh.factory.goodwe.config.GoodweApiRestTemplate +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiScheduler +org.springblade.modules.resource.rule.oss.AmazonS3Rule +org.springblade.modules.desk.service.impl.NoticeServiceImpl +org.springblade.modules.resource.rule.sms.FinallySmsRule +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterDetailPageAction +org.springblade.modules.nh.controller.PowerStationInefficientController +org.springblade.modules.system.service.impl.DataScopeServiceImpl +org.springblade.modules.nh.factory.saj.scheduler.SajScheduler +org.springblade.modules.resource.service.impl.SmsServiceImpl +org.springblade.modules.operation.service.impl.OperationSiteRoleServiceImpl +org.springblade.modules.order.service.impl.OperationOrderSiteDispatchServiceImpl +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterDayEachRunner +org.springblade.modules.desk.controller.NoticeController +org.springblade.modules.nh.controller.PowerStationController +org.springblade.modules.nh.factory.ginlong.GinlongApi +org.springblade.flow.engine.controller.FlowFollowController +org.springblade.modules.nh.controller.MonitorEntryYearStatController +org.springblade.modules.order.controller.OperationOrderDispatchController +org.springblade.modules.nh.controller.MonitorEntryDailyStatController +org.springblade.modules.system.service.impl.UserServiceImpl +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongStationMonthEachRunner +org.springblade.modules.apply.operationSiteApply.service.impl.OperationSiteApplyServiceImpl +org.springblade.flow.business.service.impl.FlowServiceImpl +org.springblade.modules.resource.service.impl.OssServiceImpl +org.springblade.modules.nh.factory.saj.scheduler.SajStationFisGenDateEachRunner +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiUserStationListPageAction +org.springblade.modules.system.controller.AuthClientController +org.springblade.modules.auth.endpoint.MiniAppOauth2EndPoint +org.springblade.modules.nh.service.impl.PowerStationServiceImpl +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiAlarmRecoverEachRunner +org.springblade.modules.nh.service.impl.AlarmCodeServiceImpl +org.springblade.modules.order.controller.OperationOrderSiteDispatchController +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterDetailEachRunner +org.springblade.modules.nh.service.impl.InverterDataServiceImpl +org.springblade.modules.nh.service.impl.InverterUapServiceImpl +org.springblade.modules.material.service.impl.MaterialServiceImpl +org.springblade.modules.resource.config.BladeSmsConfiguration +org.springblade.flow.business.service.impl.FlowBusinessServiceImpl +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongInverterDetailListPageAction +org.springblade.job.processor.ProcessorDemo +org.springblade.modules.develop.controller.ModelController +org.springblade.modules.flowable.tasks.RejectStartListener +org.springblade.common.config.BladeHandlerConfiguration +org.springblade.modules.operation.controller.PlatformEmployeeController +org.springblade.modules.nh.api.NatOpenController +org.springblade.modules.system.controller.TenantPackageController +org.springblade.modules.nh.service.impl.AlarmInfoServiceImpl +org.springblade.modules.nh.service.impl.MonitorEntryDailyStatServiceImpl +org.springblade.modules.system.controller.LogErrorController +org.springblade.modules.order.service.impl.OperationOrderLetterService +org.springblade.modules.nh.controller.HomePageController +org.springblade.modules.resource.controller.AttachController +org.springblade.job.service.impl.JobInfoServiceImpl +org.springblade.modules.nh.factory.saj.SajApiRestTemplate +org.springblade.modules.nh.service.impl.NHCommonServiceImpl +org.springblade.modules.material.service.impl.MaterialEngineerServiceImpl +org.springblade.modules.operation.service.impl.OperationServiceTypeServiceImpl +org.springblade.job.controller.JobInfoController +org.springblade.modules.resource.rule.sms.TencentSmsRule +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweAlarmPageAction +org.springblade.flow.engine.service.impl.FlowEngineServiceImpl +org.springblade.modules.auth.granter.RegisterTokenGranter +org.springblade.modules.resource.rule.sms.AliSmsRule +org.springblade.modules.resource.rule.oss.OssDataRule +org.springblade.modules.operation.controller.OperationSiteRoleController +org.springblade.common.config.BladeConfiguration +org.springblade.common.config.BladeReportConfiguration +org.springblade.modules.material.service.impl.MaterialOperationServiceImpl +org.springblade.modules.system.service.impl.ApiScopeServiceImpl +org.springblade.modules.nh.controller.InverterDataController +org.springblade.modules.partner.service.impl.PartnerServiceImpl +org.springblade.job.service.impl.JobServerServiceImpl +org.springblade.modules.nh.controller.InefficientSettingController +org.springblade.modules.flowable.examineInfo.service.impl.ExamineInfoServiceImpl +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterEachRunner +org.springblade.modules.material.controller.MaterialOperationOutboundController +org.springblade.modules.system.controller.PostController +org.springblade.modules.system.service.impl.ParamServiceImpl +org.springblade.modules.flowable.processForm.controller.ProcessDefController +org.springblade.modules.system.service.impl.LogErrorServiceImpl +org.springblade.modules.system.controller.DeptController +org.springblade.modules.nh.service.impl.MonitorEntryStatServiceImpl +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiStationFisGenDateEachRunner +org.springblade.modules.operation.service.impl.PlatformAnnouncementServiceImpl +org.springblade.modules.system.service.impl.DeptServiceImpl +org.springblade.modules.resource.rule.sms.YunpianSmsRule +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongUserStationListPageAction +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiHistoryAlarmEachRunner +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweUserStationListPageAction +org.springblade.modules.order.controller.OperationOrderLetterController +org.springblade.modules.material.service.impl.MaterialOperationOutboundServiceImpl +org.springblade.modules.resource.rule.sms.PreSmsRule +org.springblade.modules.operation.service.impl.AnnouncementReadinfoServiceImpl +org.springblade.modules.develop.controller.DatasourceController +org.springblade.modules.resource.endpoint.SmsEndpoint +org.springblade.modules.material.service.impl.MaterialOutboundServiceImpl +org.springblade.Application +org.springblade.modules.nh.job.InefficientScheduler +org.springblade.modules.system.controller.LogUsualController +org.springblade.modules.operation.controller.OperationSiteEmployeeController +org.springblade.modules.nh.factory.saj.SajApi +org.springblade.modules.order.controller.OperationOrderSettleController +org.springblade.modules.develop.service.impl.DatasourceServiceImpl +org.springblade.modules.resource.rule.sms.QiniuSmsRule +org.springblade.modules.nh.controller.MonitorInverterStatController +org.springblade.modules.system.service.impl.PostServiceImpl +org.springblade.modules.operation.service.impl.PlatformEmployeeServiceImpl +org.springblade.modules.nh.factory.saj.scheduler.SajStationDetailEachRunner +org.springblade.modules.system.rule.TenantRule +org.springblade.modules.system.controller.TenantController +org.springblade.modules.nh.factory.saj.scheduler.SajDeviceHistoryEachRunner +org.springblade.modules.resource.controller.SmsController +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiAlarmHistoryPageAction +org.springblade.modules.system.controller.SearchController +org.springblade.modules.resource.rule.oss.MinioRule +org.springblade.flow.demo.leave.service.impl.LeaveServiceImpl +org.springblade.modules.resource.rule.oss.FinallyOssRule +org.springblade.modules.system.controller.ParamController +org.springblade.modules.nh.controller.DeviceController +org.springblade.modules.flowable.processForm.service.impl.ProcessFormServiceImpl +org.springblade.modules.system.controller.DictController +org.springblade.modules.system.controller.DataScopeController +org.springblade.modules.order.service.impl.OperationOrderDispatchServiceImpl +org.springblade.modules.nh.service.impl.MonitorInverterStatServiceImpl +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiUserStationEachRunner +org.springblade.modules.material.controller.MaterialOutboundController +org.springblade.modules.nh.api.NatOpenSyncController +org.springblade.modules.system.service.impl.DictServiceImpl +org.springblade.modules.operation.service.impl.OperationSiteEmployeeServiceImpl +org.springblade.modules.resource.endpoint.OssEndpoint +org.springblade.modules.develop.service.impl.ModelPrototypeServiceImpl +org.springblade.modules.system.controller.RegionController +org.springblade.modules.system.rule.TenantDeptRule +org.springblade.modules.order.service.impl.OperationOrderFeedbackServiceImpl +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweInverterPacByDayEachRunner +org.springblade.modules.operation.controller.OperationServiceMeasuresController +org.springblade.flow.demo.leave.controller.LeaveController +org.springblade.modules.resource.rule.oss.OssReadRule +org.springblade.modules.develop.service.impl.CodeServiceImpl +org.springblade.modules.nh.factory.ginlong.GinlongApiRestTemplate +org.springblade.modules.operation.controller.OperationSiteController +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationFisGenDateEachRunner +org.springblade.modules.fitting.controller.OperationOrderMaterialController +org.springblade.modules.system.rule.TenantRoleMenuRule +org.springblade.modules.partner.controller.PartnerController +org.springblade.modules.resource.controller.OssController +org.springblade.modules.system.controller.LogApiController +org.springblade.modules.nh.controller.AlarmInfoController +org.springblade.modules.nh.factory.ginlong.scheduler.GinlongScheduler +org.springblade.modules.nh.factory.saj.scheduler.SajStationDataEachRunner +org.springblade.modules.nh.service.impl.DeviceServiceImpl +org.springblade.modules.system.service.impl.DictBizServiceImpl +org.springblade.modules.flowable.tasks.MyListener +org.springblade.modules.system.service.impl.RoleScopeServiceImpl +org.springblade.modules.develop.controller.CodeController +org.springblade.modules.operation.controller.OperationTechnicalDataController +org.springblade.modules.resource.service.impl.AttachServiceImpl +org.springblade.modules.system.rule.TenantPostRule +org.springblade.modules.resource.rule.oss.OssCacheRule +org.springblade.flow.engine.controller.FlowModelController +org.springblade.modules.system.service.impl.TenantPackageServiceImpl +org.springblade.modules.auth.granter.CaptchaTokenGranter +org.springblade.modules.resource.config.BladeOssConfiguration +org.springblade.modules.nh.factory.saj.scheduler.SajStationStatusEachRunner +org.springblade.modules.desk.controller.DashBoardController +org.springblade.modules.nh.service.impl.MonitorInverterDailyStatServiceImpl +org.springblade.modules.nh.controller.MonitorInverterDailyStatController +org.springblade.modules.resource.rule.oss.OssBuildRule +org.springblade.modules.operation.service.impl.OperationTechnicalDataServiceImpl +org.springblade.modules.resource.rule.oss.TencentCosRule +org.springblade.modules.nh.controller.MonitorEntryMonthStatController +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiInverterLatestDetailEachRunner +org.springblade.modules.order.service.impl.OperationOrderOperationInfoServiceImpl +org.springblade.modules.develop.service.impl.ModelServiceImpl +org.springblade.modules.order.service.impl.OperationOrderServiceImpl +org.springblade.modules.flowable.processForm.service.impl.ProcessDefServiceImpl +org.springblade.modules.material.controller.MaterialController +org.springblade.modules.system.controller.DictBizController +org.springblade.modules.resource.rule.oss.AliOssRule +org.springblade.modules.nh.service.impl.MonitorEntryYearStatServiceImpl +org.springblade.modules.nh.factory.aiswei.scheduler.AisweiAlarmEachRunner +org.springblade.modules.develop.controller.ModelPrototypeController +org.springblade.modules.material.controller.MaterialEngineerOutboundController +org.springblade.modules.system.rule.TenantRoleRule +org.springblade.modules.material.controller.MaterialOperationController +org.springblade.modules.order.service.impl.OperationOrderSettleServiceImpl +org.springblade.modules.system.controller.ApiScopeController +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationMonthEachRunner +org.springblade.modules.auth.granter.SocialTokenGranter +org.springblade.modules.nh.service.impl.PowerStationInefficientServiceImpl +org.springblade.modules.resource.rule.oss.HuaweiObsRule +org.springblade.common.config.BladeLogConfiguration +org.springblade.modules.flowable.processForm.service.impl.ProcessDefAuditStepServiceImpl +org.springblade.modules.flowable.processForm.service.impl.ProcessDefLatestServiceImpl +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweStationAlarmEachRunner +org.springblade.modules.nh.factory.goodwe.GoodweApi +org.springblade.modules.nh.factory.aiswei.config.AisweiApiRestTemplate +org.springblade.modules.system.service.impl.RoleMenuServiceImpl +org.springblade.modules.flowable.tasks.OneTaskCompleteListener +org.springblade.modules.nh.controller.AlarmCodeController +org.springblade.modules.auth.config.BladeAuthConfiguration +org.springblade.modules.nh.factory.saj.scheduler.SajStationListPageAction +org.springblade.modules.fitting.service.impl.PlatformFittingApplyMsgServiceImpl +org.springblade.modules.operation.service.impl.OperationSiteServiceImpl +org.springblade.modules.resource.rule.sms.CacheSmsRule +org.springblade.modules.nh.factory.goodwe.scheduler.GoodweScheduler +org.springblade.modules.nh.job.UpdateDataScheduler +org.springblade.modules.order.controller.OperationOrderController +org.springblade.common.config.BladePreviewConfiguration +org.springblade.modules.apply.operationSiteApply.controller.OperationSiteApplyController +org.springblade.modules.operation.controller.AnnouncementReadinfoController +org.springblade.modules.system.controller.MenuController +org.springblade.modules.resource.rule.oss.QiniuOssRule +org.springblade.modules.system.controller.UserController +org.springblade.modules.nh.factory.saj.scheduler.SajDeviceRealtimeEachRunner +org.springblade.modules.resource.rule.oss.OssTemplateRule +org.springblade.modules.operation.controller.OperationServiceTypeController +org.springblade.modules.operation.controller.OperationRoleController +org.springblade.modules.resource.rule.oss.PreOssRule +org.springblade.modules.system.service.impl.UserDeptServiceImpl +org.springblade.modules.system.service.impl.AuthClientServiceImpl +org.springblade.flow.engine.service.impl.ApplicationDetailService +org.springblade.modules.order.controller.OperationOrderCallbackController +org.springblade.modules.nh.service.impl.MonitorEntryMonthStatServiceImpl +org.springblade.modules.auth.endpoint.SysOAuth2EndPoint \ No newline at end of file diff --git a/target/classes/application-dev.yml b/target/classes/application-dev.yml new file mode 100644 index 0000000..7b643bc --- /dev/null +++ b/target/classes/application-dev.yml @@ -0,0 +1,76 @@ +#服务器配置 +server: + port: 8099 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 +# host: 192.168.2.58 + host: 127.0.0.1 + port: 6379 + password: + database: 0 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + # MySql +# url: jdbc:mysql://1.15.6.51:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + url: jdbc:mysql://127.0.0.1:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + # PostgreSQL + #url: jdbc:postgresql://127.0.0.1:5432/bladex_boot + #username: postgres + #password: 123456 + # Oracle + #url: jdbc:oracle:thin:@127.0.0.1:1521:orcl + #username: BLADEX_BOOT + #password: BLADEX_BOOT + # SqlServer + #url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=bladex_boot + #username: bladex_boot + #password: bladex_boot + # DaMeng + #url: jdbc:dm://127.0.0.1:5236/BLADEX_BOOT?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 + #username: BLADEX_BOOT + #password: BLADEX_BOOT + # YashanDB + #url: jdbc:yasdb://127.0.0.1:1688/BLADEX_BOOT + #username: BLADEX_BOOT + #password: BLADEX_BOOT + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##redis服务地址 + address: redis://127.0.0.1:6379 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html + diff --git a/target/classes/application-prod.yml b/target/classes/application-prod.yml new file mode 100644 index 0000000..c0bea05 --- /dev/null +++ b/target/classes/application-prod.yml @@ -0,0 +1,59 @@ +#服务器配置 +server: + port: 9999 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + host: 127.0.0.1 + port: 6379 + password: + database: 10 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: +# url: jdbc:mysql://rm-uf68y03eiu3e480xz.mysql.rds.aliyuncs.com:3306/nenghui-uat-prod?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true +# username: nhsf +# password: nhsf@1234 + url: jdbc:mysql://127.0.0.1:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: root + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##将docker脚本部署的redis服务映射为宿主机ip + ##生产环境推荐使用阿里云高可用redis服务并设置密码 + address: redis://127.0.0.1:6379 + password: 123456 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html diff --git a/target/classes/application-test.yml b/target/classes/application-test.yml new file mode 100644 index 0000000..f98f5ba --- /dev/null +++ b/target/classes/application-test.yml @@ -0,0 +1,56 @@ +#服务器配置 +server: + port: 8099 + undertow: + threads: + # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程 + io: 16 + # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载 + worker: 400 + # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理 + buffer-size: 1024 + # 是否分配的直接内存 + direct-buffers: true + +#数据源配置 +spring: + data: + redis: + ##redis 单机环境配置 + # host: 192.168.2.58 + host: 127.0.0.1 + port: 6379 + password: + database: 3 + ssl: + enabled: false + ##redis 集群环境配置 + #cluster: + # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 + # commandTimeout: 5000 + datasource: + # MySql + url: jdbc:mysql://1.15.6.51:3306/nenghui-uat?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true + username: root + password: 11aa..123 + + +#第三方登陆 +social: + enabled: true + domain: http://127.0.0.1:1888 + +#blade配置 +blade: + #分布式锁配置 + lock: + ##是否启用分布式锁 + enabled: false + ##redis服务地址 + address: redis://127.0.0.1:6379 + #本地文件上传 + file: + remote-mode: true + upload-domain: http://localhost:8999 + remote-path: /usr/share/nginx/html + diff --git a/target/classes/application.yml b/target/classes/application.yml new file mode 100644 index 0000000..1657a21 --- /dev/null +++ b/target/classes/application.yml @@ -0,0 +1,279 @@ + + +spring: + datasource: + driver-class-name: com.mysql.cj.jdbc.Driver + druid: + validation-query: select 1 + validation-query-timeout: 2000 + initial-size: 5 + max-active: 20 + min-idle: 5 + max-wait: 60000 + test-on-borrow: false + test-on-return: false + test-while-idle: true + time-between-eviction-runs-millis: 60000 + min-evictable-idle-time-millis: 300000 + stat-view-servlet: + enabled: true + login-username: blade + login-password: 1qaz@WSX + web-stat-filter: + enabled: true + url-pattern: /* + exclusions: '*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*' + session-stat-enable: true + session-stat-max-count: 10 + +# mybatis +mybatis-plus: + mapper-locations: classpath:org/springblade/**/mapper/*Mapper.xml + #实体扫描,多个package用逗号或者分号分隔 + typeAliasesPackage: org.springblade.**.entity + #typeEnumsPackage: org.springblade.dashboard.entity.enums + global-config: + # 关闭MP3.0自带的banner + banner: false + db-config: + #主键类型 0:"数据库ID自增", 1:"不操作", 2:"用户输入ID",3:"数字型snowflake", 4:"全局唯一ID UUID", 5:"字符串型snowflake"; + id-type: assign_id + #字段策略 + insert-strategy: not_null + update-strategy: not_null + where-strategy: not_null + #驼峰下划线转换 + table-underline: true + # 逻辑删除配置 + # 逻辑删除全局值(1表示已删除,这也是Mybatis Plus的默认配置) + logic-delete-value: 1 + # 逻辑未删除全局值(0表示未删除,这也是Mybatis Plus的默认配置) + logic-not-delete-value: 0 + configuration: + map-underscore-to-camel-case: true + cache-enabled: false + jdbc-type-for-null: 'null' + +#springdoc-openapi配置 +springdoc: + default-flat-param-object: true + +#knife4j配置 +knife4j: + #启用 + enable: true + #基础认证 + basic: + enable: false + username: blade + password: blade + #增强配置 + setting: + enable-swagger-models: true + enable-document-manage: true + enable-host: false + enable-host-text: http://localhost + enable-request-cache: true + enable-filter-multipart-apis: false + enable-filter-multipart-api-method-type: POST + enable-footer: false + enable-footer-custom: true + language: zh_cn + footer-custom-content: Copyright © 2024 BladeX All Rights Reserved + +#swagger公共信息 +swagger: + title: BladeX 接口文档系统 + description: BladeX 接口文档系统 + version: 4.0.1.RELEASE + license: Powered By BladeX + license-url: https://license.bladex.cn + contact: + name: 翼宿 + email: bladejava@qq.com + url: https://gitee.com/smallc + +#oss默认配置 +oss: + #开启oss配置 + enabled: true + #开启oss类型 + #minio、s3、qiniu、alioss、huaweiobs、tencentcos + name: minio + #租户模式 + tenant-mode: true + #oss服务地址 + endpoint: http://127.0.0.1:9000 + #oss转换服务地址,用于内网上传后将返回地址改为转换的外网地址 + transform-endpoint: http://localhost:9000 + #访问key + access-key: bladexadmin + #密钥key + secret-key: bladexadmin + #存储桶 + bucket-name: bladex + +#第三方登陆配置 +social: + oauth: + GITHUB: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/github + GITEE: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/gitee + WECHAT_OPEN: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/wechat + QQ: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/qq + DINGTALK: + client-id: 233************ + client-secret: 233************************************ + redirect-uri: ${social.domain}/oauth/redirect/dingtalk + +#flowable配置 +flowable: + activity-font-name: \u5B8B\u4F53 + label-font-name: \u5B8B\u4F53 + annotation-font-name: \u5B8B\u4F53 + check-process-definitions: false + database-schema-update: true + async-executor-activate: false + async-history-executor-activate: false + +#job服务配置 +powerjob: + worker: + enabled: false + app-name: blade-job + port: 27777 + server-address: 127.0.0.1:7700 + +#blade配置 +blade: + #token配置 + token: + #是否有状态 + state: false + #是否单用户登录 + single: false + #单用户登录范围 + single-level: all + #token签名 使用 @org.springblade.test.SignKeyGenerator 获取 + sign-key: VjEqSlCd2Z3p5tVOua8eTwHMSv3zbAPX + #token加密 使用 @org.springblade.test.CryptoKeyGenerator 获取 + crypto-key: sja69KSDtTtoDPSCVzrYpesw2LoKFBeI + #接口配置 + api: + #报文加密配置 + crypto: + #启用报文加密配置 + enabled: false + #使用 @org.springblade.test.CryptoKeyGenerator 获取,需和前端保持一致 + aes-key: tvX0ubkg2X0g1IhT47JEDestjHhnTvb2 + #使用 @org.springblade.test.CryptoKeyGenerator 获取,需和前端保持一致 + des-key: 6FHTnmx2ElUHhEzK + #jackson配置 + jackson: + #null自动转空值 + null-to-empty: true + #大数字自动转字符串 + big-num-to-string: true + #支持text文本请求,与报文加密同时开启 + support-text-plain: false + #redis序列化方式 + redis: + serializer-type: protostuff + #日志配置 + log: + request: + #开启控制台请求日志 + enabled: true + #控制台请求日志忽略 + skip-url: + - /blade-desk/notice/list + - /blade-chat/weixin/** + #开启错误日志入库 + error-log: true + #xss配置 + xss: + enabled: true + skip-url: + - /blade-chat/weixin + - /blade-desk/notice/submit + - /blade-flow/model/submit + - /blade-develop/datasource/submit + #安全框架配置 + secure: + #严格模式 + #缺失令牌字段则取消授权 + strict-token: true + #缺失请求头则取消授权 + strict-header: true + #接口放行 + skip-url: + - /blade-test/** + - /nat/open/** + - /webjars/** + #授权认证配置 + auth: + - method: ALL + pattern: /blade-chat/wechat/** + expression: "hasAuth()" + - method: ALL + pattern: /blade-chat/qq/** + expression: "hasStrictToken()" + - method: ALL + pattern: /blade-chat/ding/** + expression: "hasStrictHeader()" + - method: POST + pattern: /blade-desk/dashboard/upload + expression: "hasTimeAuth(9, 17)" + - method: POST + pattern: /blade-desk/dashboard/submit + expression: "hasAnyRole('administrator', 'admin', 'user')" + #基础认证配置 + basic: + - method: ALL + pattern: /blade-desk/dashboard/info + username: "blade" + password: "blade" + #动态签名认证配置 + sign: + - method: ALL + pattern: /blade-desk/dashboard/sign + crypto: "sha1" + #多终端认证配置 + client: + - client-id: sword + path-patterns: + - /blade-sword/** + - client-id: saber + path-patterns: + - /blade-saber/** + #多租户配置 + tenant: + #多租户增强 + enhance: true + #多租户授权保护 + license: false + #动态数据库隔离功能 + dynamic-datasource: false + #动态数据库隔离全局扫描 + dynamic-global: false + #多租户字段名 + column: tenant_id + #排除多租户逻辑 + exclude-tables: + - blade_user + #分库分表配置 + sharding: + enabled: false + + diff --git a/target/classes/banner.txt b/target/classes/banner.txt new file mode 100644 index 0000000..8114a62 --- /dev/null +++ b/target/classes/banner.txt @@ -0,0 +1,10 @@ +${AnsiColor.BLUE} _ __ +${AnsiColor.BLUE} (_) / _| +${AnsiColor.BLUE} ___ _ | |_ __ _ _ __ __ _ +${AnsiColor.BLUE} / __| | | | _| / _` | | '_ \ / _` | +${AnsiColor.BLUE} \__ \ | | | | | (_| | | | | | | (_| | +${AnsiColor.BLUE} |___/ |_| |_| \__,_| |_| |_| \__, | +${AnsiColor.BLUE} __/ | +${AnsiColor.BLUE} |___/ + +${AnsiColor.BLUE}:: SIFANG ${blade.service.version} :: ${spring.application.name}:${AnsiColor.RED}${blade.env}${AnsiColor.BLUE} :: Running SpringBoot ${spring-boot.version} :: ${AnsiColor.BRIGHT_BLACK} diff --git a/target/classes/ehcache.xml b/target/classes/ehcache.xml new file mode 100644 index 0000000..1c6ad0c --- /dev/null +++ b/target/classes/ehcache.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/liteflow/oss.el.png b/target/classes/liteflow/oss.el.png new file mode 100644 index 0000000000000000000000000000000000000000..277968ed7f92ed7e549c752771f29c78455e9859 GIT binary patch literal 234131 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%0AA6F6Od>9}|2 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
*nALIaw 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 literal 0 HcmV?d00001 diff --git a/target/classes/liteflow/oss.el.xml b/target/classes/liteflow/oss.el.xml new file mode 100644 index 0000000..64d9f30 --- /dev/null +++ b/target/classes/liteflow/oss.el.xml @@ -0,0 +1,24 @@ + + + + THEN( + preOssRule, + SWITCH(ossCacheRule).TO( + ossReadRule, + THEN( + ossDataRule, + SWITCH(ossBuildRule).TO( + aliOssRule, + amazonS3Rule, + huaweiObsRule, + minioRule, + qiniuOssRule, + tencentCosRule + ), + ossTemplateRule + ).id("ossNewRule") + ), + finallyOssRule + ); + + diff --git a/target/classes/liteflow/sms.el.png b/target/classes/liteflow/sms.el.png new file mode 100644 index 0000000000000000000000000000000000000000..a6feedc0320cbd30fa652c372f340740010433bb GIT binary patch literal 142110 zcmeFZ2UJtr7A}k^qM`yyl`0l`6X{iHDgq)%??{mr=`8_~qe2j{AiW6+3eu#vfI>j2 zA_zi&V2~Oqp@tIjR`lRiyk5^6e|_&=$6yfR&d%Cv%{9MoesiuFc1cV9z`i5<$jHbJ zoIj^>nT%|Y5*gX9lY4f9cVx~Pc94?V6wA8IbiuPlW$+rtmPM@GBp0zYhzAE9f~7E3toa+m=VCUSsG zE)03-1i8{F<;CKQ-dvbFryqqpy;0A|nG{~YpV)-qgdVXf>h3P)Wmo&Sr;w3cNiBQl z1TF{{kC!CkE)xax)1&R@6Bw!)Ed(xF*%DKquA(0#aK#VSlQADpc_Vx^JM$c2hC7Sm zoDof}ltavFQhcShs5XXCp~bn-zE!}((0s@H65jBg_R_(#_0el@EpNA-GWfzK(~@3H zGikn;OS@5^NX29Q!h`y!{_L^5OR4o#;Yp(x0~;_#4BU5ixAys7SmHV#dO9$#uGhxZ zg5%oEb4=~$7W)gmc5|;co>UZ#VaE3{c_<)t-hY%b6`qw&y#BmKq+Yo)R^)`CV}~a0 z(G)WN@%s|yH=mMBSOjvd4z(!y#+>1tqc}ZGS*^6^6pH-#`u>^byU$hRy8i0p3gi+F zX;gA$iEX4S5NvhmiRqCbyEr%)KQbqAbxrGRv;DZ|we@>88|)RrNRLYVWwHb+vP*ta zSzRb9vJ)IPGQCSxqNOvGwP7MR_V6gtJ|ovmqq=)Tx?uNm9dr3k$T0OyC8p5bEjw7| zl=x_Z1@2Mxgpgm_RT|8eMy?lZe4U1MN0XA6)PeSpmSLF*a-Ubn-cjy;r6IC=C}i)R zo7ZWW)6Zt#V|YRxf3}B)&HYyOVg{@@M1M(KkCL!I`LA|m zgU7BDJG!YOlptvxBKuChf*0&|CKJ9fDYEn6jrw8R>s(0($Lm(-7|L1mf~o5@=lt+8 zP{x@Mi`OGOHy)hf%_!CxM>{U{&2%l)ho?4W9?GLGi?Wf z1bF7-w$643MNg@O2rc#eGY~a{H0t!kcZ{87orDR|Malil8Iht$DXX|Ro{L;3sdR7f z)_-YAsxy5(fZT6AWK(Ep`{HQN4(y$X#*tYd9&WBe~!86CREPJ zN);Q-UpM`ltueWNX?V9A2kw-wV72%VB}WM3@WPxeUKwA6XWyU+yveElj$4ZM<{s9w z5?1_H9FHGe4;MKX$Ju=NK$uX2i1i^i`NE`+O4TaRi%|Y!$1;wM@D!=s7B14tG#z`^ zN*^B>uYH{2!QQtI=`s$IgdFX?FMKccfnxJzTfwXG zFIoFaUOsxM`BMI6K3EHdTW5^4-ad}jiPUw~Q5)UkzS}*;U7$kT{gFHOsQ+l==<|8~ z`7`s+=MzV%-&#E4(68fV;_>CbPB%~QNH4^*|B{ZLSvL10%|WF>^%@m6y#~G`e5dFi z(uLDS@p$t^^78WZ@u~9U>SgQ6WOQfUy)1FbjxUP`az!B%s=c}(7vXo;Z@@2cOuQ8v zzjDSF0k7I;@buDCozc8z`zs0AWsWZ$3muE54vQBjg!LaP5h$r~jO|t%=Wq8(=}57V zB7WSsGgVL-<{!Gow`9D;GBt7};Rxc$*$A^EjHlJaABhi&KRm4=-r*SOpi^R6f;WC@ zJYH=6F4|$g@xI(7@B0#&xp~uBf}MFiGu)OcC_zQ_E4vBl{1IOO5>v2`*;WU`@B3M{J6E zGLd5?xz7cAz4NDGve|=NRT19P-WJnrUsRV5EFU}Qf6(n<6`TJge9>~vZjE03ZpNJv z>?d!zwqsbmIgs)__>Fk%GSqMwce*r zCK$!9it=+|@fTJf-Fzeowx^^m^(g-HM)AHHculsvfvgYAmFU=e~iDiw+vmSjnNSkz_;5jK7@ zQL{<{#{Zelod2Z&AOG6R_?p#zYJJ6MqDaLFD~)me_1u6mtFpbNgZ$q73Wi)34|Goz zz&e*RFB@O8nyg~u_cj$Q63pp8Kfv49XTWYa^il)TTWV&(=S%OyFVDx~lQTP1yk5`V zo{~~C6Tp&vIvbv?Kzu{Q1(ra(bR*7a8VQz46fLhJLSbx*ok7{C{L)$nV(-qIJ7JW{ z2hCr2Jj;=N66oM0Zz}wpLz*?992?quKW6vB?J2d<#`KKgXP+m+Q%3?3J_5sr>uzhf z+ZKyKeXyJU=>>Zon_Z7Mjft<6sFZo8E-Lm7O%3>CqLI&cW|e3gr0B>LEeYV9H~Zdt zNRKz7{&L9}KiolGobM3id35S^a=3<&xB0$u&(W71qf~5nBRvdE^O6u#o=cy_*Gk5) z%e{%N9|xt}x@N}0wAR}*O%9eBSF%T%w zgji2nucyAuUL6>>dL7eQ*%a4wOZ#(5wEUGI2qQmdorCH+e&cnCm1Y-s6O6xj!0q;JGS}=DvOS_HCIO*)V(u-dIjr zT1QrTwS-~sGA)@)pO`!$+JS2}T!2+6^;B)@S#!$Gqhf?j3-^uj{h3?^6vQOruCoV@ z>?tE7umH~MY-@PlPE(VN54_$(wrj@`G79i&2l!Fg!SemJ+72GFonPN4CnLLajcnK7 z*Jy#?q<{Co59u@Cev_w>Z(XrRDQ)N0>s=>FmzKUoo&mr1UO#8#K}N=Kg7mZF{N>|w zWMoQY=T*+=`R@2KxHs;&t)J8!#M{oNLjMd6g&Y~}=S%nMS>C1Xjm42iH14FMIjo}- zhFfFFf7aluICK-Iq=XFTfzyb?Z*p1F(e9#UwVaSlL_8Ho$qtI4s?4rfX!qu) z*q2u2UXjN#Z?Jh#!N1Dnjd%*G zCx7En?O>lIKB06}CvV|V?Yz&N^R(;HUSC&}T5zGaJ$l%wKSsTx-C(mB{i>*>>Xzw9 zg$tn>y}96XW<{jrHrWpHU3+Lam2Uj@g-Go#I;GZpUuok%U8$6Ir>-IUN)FsaWzjc( z{)#C5+wN|?PFFdI<2937+Aeom^yT!mCex7%(3~jSd!!KS|AZT}J; zM2%jyMQn?-LG66mnrL^9DsKAeWkRKCd&SzL+7D5W%?05Q;YU-wqweh=@;7n=_b)l> zKm(rZ)e6OW{iWe5=q95@aWIol1WhiEGDb_iJ z_E$5?b31{^fDO`E;BrUckFfq9N&`npD-c5UxzhEG#i}fR;-5^u#VRTp7LtF>gnd+o zw6K&NJu?jM5#yy`!0R0rWpxwnx=#OjQNVfy`<)aiy#DERu|sFN+CkaOY{Nop)lP#& zSp|hW^pRcGb`hg3vD&iXkOOaW5?jSnkUquvEEs--muaE9S$_Xl)0y|V9&FlsfHVe< znnA(OM><@vBukn3!UEMq&GYoGHiM_~E%h$D=OkD5)e5VMAamj_Eg7ccUoEn)fADM` zZU9UKgt#hOX!+`9<33uh6W0EbhUxgn&&fk4@-+!+7h6=J8e#tI9(Vb1(?oJfhi;_L zrB|EF9iLd$V=_o{u-*b+Li08Gwm(uQt@XSQL9D1&{xc*i1@MRRrISUm&;2>z=w0#b!`LY%c7sn>VUyls>N>PYIti_fenzyeBgsZB4o8{ z?BTp4Td~^j&3tPII9ycPp<>f5!?pFsZ}-O3p-W^su`j&${>SY@TB$~`gHEgE9{ckK z652sQcoEhb8aE_~FK96T*9Dyl=!S#l7C zb2O8O78VxLS!fElV0}iLA6=V#|CC}{jm0Gza0s3McQ{0^ph)FH_mMyPHOrK}7X?hq zMFfqDpWUyIe9ou;!cb?Co)8%og)Q419A{*+IzQUgjxpIeKXuY0!XC#qjlGSBL)Z*n znD*w7a1r1vn<;0nmokaRs6%|HDjGddB%mmhUEgidRVvr)g&;Abl-z#;W2m4_Edj%V zw8FE0oePUgITphc=#WjuwdSO|MN?9mSOHC0udO?9#0$r!S5QmvkZQU=Izd9m&6n1M zvS!f~55T!d1i*~g`UOJ0ic0O`Gb4=WSvYU zk>B6=-HYH#fI!_Ra?Jj?QfZ<9fg*IUp?^f6XBq$~&0hAO*n*_rj`zRA{O@f3-thiw zoBwDF#Tk}3UP(wwa(+@jVejaeJ(2TVA)}~tiA7Y95hr*eJE&DWuc2(saQXj2MD!1U z=pO`U2QYHpU7C`bnintX1?kBf-^JW{NoMWrEPymPtbtlHt8lk9uJpWirm9noG}2PV5+qvBO`0MXE^P83=z=P z;v#&{jq1v`rXxmB_4Uf52#iS+J%8^~Hi)gihIEW?yaw-)!tqYjR)CbhG2M=M)mtnW z<(~XCYP5IyCos00T6>s^LBQb!&C$zTnd6}+;2a5jH$pf2ySHe{xM&lgDVxIAL)6Tm zl=NR9MAmkxT#+>h<^EldKJaiQOcXk*?N{u@#L=O8)lzk%=nMl!-l{XEk?Lwj9aU0#H>5s;-Evu6QP+hUMe+VQrzy?l48iulgn6`V{VFlAnQ} zhc5mT5$bOr+u9^|r0UacmQ0}L?N(e@Fg7f(JadGDL%1|4Dd}R4e(sb_{wql!N{Z6d zOUBGGpkI+ z$!pmXW`FxJpuU30X?L6B`r+S_<}E7UN71;sF|Mc$(DbxBX9b@w2v0A%d7xa%=tT#w zKGb}G?-8r^03&y?YdnHubFn9(C_=1UA!@n&5J{-4ypLVi`5Gz#cQ14gTX~eEBxjUu zNx}a~jr<0-b_!#iQyq=m?=i@5O44jjR8J#c-=fNb-05t}+v)PYG;n85_4F zuC$cxC;ed~rMK3-g1#UfAaN2XeI3C%uP&^b?7+w*knogE`DzF{rk3Sm?@A=N(XzZ@ zkB9OqiX+a%a&i1B|LyhKat0q|xI`w}@XF2Mx0h@^fl?6pKF&3dm-Jh2{5EzIX#iK= zmXbOc@!Lzbo?t>7gm*z&rGM5zZyPG@XrQ5Ndi>{zm9UrR#zeQ zI}8F5*~h{>zGbfdjY7A;Ns!Q8edl6(VEdw5hU^lmSR}s3bp%*dF7==!9D-zNIYp|; zIo94Zy{8yY6|1J4c=N-SVsZ=)yG6yAshX3MlW1uDEh;nn8kK2!nhcO4gm!Tn{(=lS`YaXE0XPfJadmKrD+A1M-nDp zwsa}1po?N$``wcTa3Ew$&EJ4tiG0P!vGu@^M}8)yAGV~&7-@r1n>?J{x!S{`@>g|l z?Fly1GGl^Gl{J4V%gk-(RYdwkXs~s--?azahsE$NBQE!tQzfePlK>(kSsf(i1`QHk z_2M^W`+@L?^qI?1nPuo-^w8RK+7Dr4lLPU>_4a8-1&oPZ9@y+Wd!ufHJ`~$@3r#Su z#6QpofB0;jSd>t0?xprrld!hh++mPxQ`c?%kN zkC{H|7&qChq)>a**~_qPf!;ltU^RTL%7=kj7tx{gmW?X%0n9YLEOI%GPwiTyvI zLRvC;4)N;iv)fTJE}uLod7m|c9Wiop3snAQJA42Hb(o*t{$YJd{}Vh$k(n@iIcgg^ z)Lq&Ku%Nj>isz45U$q@(N=Dkwtd^LC{nk!hv$YNhal?EAIX|B zF8~9cdQ95(C)?cBxQ1%oj(c@)NGP{TBYWoOClhHV*Uf;sw{J&jLuvqE*kD`TpD*7w zyQJ^7lp@g_dsEgwbAkePzzKSGwq*W!BCeAbqP<*-@6X>aPg)4d7|m@95o~psiKTR> zyWF-fQ#uKrEPmKaW1AJ}9TmBvdaQr@#H%R*%CToxC+~lbDuGFrf*E#L-*bI)+ZX<_ z%$B>ri0>-VB$IF33ct**Llt0qrBP(#+S>;E%V7T39%k_JzPlwW-O1A1CZr$+Jb#H) z_4Y*>i>>S4kTF%?zJ}ePPQmd*_GxKpBNNKx1L}&pxnT3MX!US(n2hN2|M(b+v z_Nd-(5UTp}vS;1A^;qx+q$a<RRN#M0mY2ZSLlMzdP5=O85Ct)-uko)Ax%Ff(tC3T`rtPe|v{IM7Y zrm9&)K#t%T;cXO>XfJpnoKZM$RPTQti2v423tIR#zGnE+U4E=Z`5TCtaJk$NyV8Vu zAmz$NfubvWbNg)H>Gj#arz`JpO}|4|hqT+KX3Ffxk5lLXgP?P3v9@dHD_+}BQAnVi zix#7^KArBqL@dtfE2ijP7FfyXR<$PW}Jj7ip>mqbH7`t1^3-pkLp zMS0>s-N~9RMdi)rxmM#EJ=>+npYZ(U+iJt!wGt?C{73&4+zDz{M2&Ht65GCrEch{F zIk?CBaP!4<&rVfFO%7}$3nWRXX7N2{NnK(7z9%M(JM&nil=T{+BE>X_urw(M@zc;b z{g}*Jhny?rpkD3xJ*|)*H#O-J5sO{z3hQ4m5=rn?tyynmsv;B@rmYl&57}jJG z7_FBvkl%2=bFV0~!oo_3;ZxZ;d6&sV@4Za^amLIcEhIZRd+)xpg0_<>yP; z@r<>2B!+>pi9NtsW@D~C;FPHwl3u>o2R}bY>j^;UgxG$v?{8nF$9KKAYN*6v_JM}bq~pq1 zB1B6#Xtm`bGiRm4i=Ut|SYa24PpFS4{$f;n^p0Ksd|y42O1N4i*?;OeuU&}m$9ndd z7*GhBS3TdnSkVC!0>a;u6~s!->e^n!QB5pfyYz<*VY4P4G(`vQb+rPh=i{5+{w|U1MV$; zKIRAGe!Am4;8AZlcB=olUBLEMyD$t-?7E%FWeb+(7D&?YW2NsgS*Lz&UA9 zazL+Ff(3uS)N7Gi`q4VPxc;E*6WPH@t*!$WP#m(WqlH_Y%}WoSAKx-lHJjq^qUa%; z|D#eD+C*r+V`&R&KZc$ z&)ZbVQjf$OFC0&%{P|9C+~nxZpu$gFE%&tn4iDE(tPg*zDZFF zx0JF{%{^Vc(B6flshX+8R?ARRYTQsFlCuc2YK-XecLk*qZY_q)1_?(*MC2}si;I`^ zVCM-FM^j>>#Cm-YkrE(9VB}m2>Q_%IC@2itB5f%#VPzWf^>LLgM zs!@qHhs8{{_4GJnTL?1ik%0!FcqqxnzE%vyV-Xu=%QA|cFEq7S{@?_wE_3dCNpe&S z1R)EAoS=Dixi34a>3yG8pZ>VbYG8%Ss+0$z6^4OobbW04?#kXN08c#~ULp45G$`4S zlVFyF8ShE{-7r<=hjgk@BgtZSjI@x4s7S(Rkk;20|B(}k7yEWLI# zj4Q76#b`(o_;#gBSvRryTvX?PdCGjgr=0C@ndSSOE|9_)xjhe*e+20|D7_S6v8(Hf zftk1kHQJ5(xzdK$?35yo?R|!a;a6w9pBz`i6}Y^#Y3xV;_?7%d$gX>MD4bepsz8nx3yv-`Zlqos596tciNx{yu5o1=GIZxSKKvjKZ*6$I{7| za>`Y~vVqHZzk>|Se14V@c_hxS*UU$glHJ$RA79Ur z0s@4r^qP6)`d}7FT5wUj4F4eT6}L!fjeuo*1_$9869>ub1|Wi_OL`e9UINg6G9S{P z!lGY1|C&lzz}SCyCx@XWCS|0G|SegzTf^bks;~viq&UlwCzEM|jf7Zd>s1L2pwz;;pZs~W> z1zWaIX=X2{fu1j9l}uI)YFKcGRhWH*hz!08*Os%fn}GlVH}^TUb%)0;gxgN>yD+FG zvc5Xae`N({cbh*L8xY*8@{qOXave_myA&SVhMp6QJ=LhWslbD9+GvsL#u+wB^v~S& zQ-lo?H&?W&13uQn^GVa=AB)F+>Wcx#3y8r;XUM@XlrU~J0fV%Ex+HBE@WF8u66{`~4w$o+K58XF%x1yWaA?PUxYJ4Skr zfi-9`#@a{(XDKW_cgn>=-3Hv6o|4K&Vbe|)SkuAY1$%{s_{pQxes7FXjr-||%MfB| zPvrqWS}{0@|FFEoRu6Hz9$mmi1<4`tauaDGnc?-fXP)SDufXYBvg|vbui<6#4KxEu z`PqtE;%%RbhQih*`KJS}_tbG_Bl4jmmCG)P9(fCG$+e;fO;dXx9bnl+;3bIbIuAjq z4AQ4Q|6tKfYB3LG{PY`3;WwBWlw` ztIm2qJu1GXO%k0n1Qwk!XM{oM4x9JKR?VK(wXW1n&o!_|%$>oZe0gC~Ev!>2k9nAp zav(0;;)&EaK59m)wEW72hEK1k1F!cg6mr>(NG-lo?iyEEsj$9#a9w~#UiHoX#ou)(oDTRkt%7b+&dIa+dyyJbcpYUy8CUnp*b~7qyAe%YF8#dJKAUW1>;K@JpGJ#)QvC9sc^bd1a2Z zcZ*Yyz=gy~7f1kV5o@kZ5(O49jJ3XNxfA@G9o%-zzKal|@`0Vr^=2 zY$So6nCjIg-ur}yReGUStn26<)(7UR%?1p;Meg;A#MO?;!>M=`oO@B5ghrHa!?DW) zt{LbPaD^dYDB8r-c3cxjZ4a>zX;E;et+#e_Y4T*f^gfAn8m^eofYv$MGRv@=q46zU zDa*x}7(Qirs)ni0=H=IQjH`Wdt@Zhzy}HnpEg|5z7T8W|#L+|O*r_Ahwj3Cg*^4Xv zdaEBL#!bf)WrJ*5Pp__@CHXHnWTBQrTsj450L|Gzn3RHZNa7&pptFkBJ9<_LDV$iS zlDa0y!$-{8aEf#=gz}G@<-B4An=f&7H$yN3y5x3%i?F*?_^iYDeNu@vqX0UHRC@ub z!A)>j^unIOziciAkbr^xNH(YwUvKoxVfHO>NSqSh&}^r)Ix`1EzjlnzFv{)NUXXvJ60;C z9eX92&?>hqv6Q&J4jJ#@80}ye8_`*E!sQwl`vkbS9}H$Ct>s8{;s)#}>BJgRvSU_V zlTZ!n2U&V!WMWv+Q5ZRiVzhV=T=&jxiJzh%AZGXMZLmmH@2qd7woqro@LQ~2!1dxq z7tV~|fsFb!SE_;SFC z9?36ySb02%v&k?L6MR@(PE>v_nEE2fBrSB2V9Gk?4v)%2NmAh2b;Zc0Pn-Bkkj8LH$9K9K4mC zEP!HVxQS(h0F6$;`y4XsSTk>4I1Ppn7&!_kk!CGWcXTVztqLtR;iWR+9Cofgu~h?4 zdHh3-6cJ0gkR^c|JWckkrw)~MOx(q_E?55;!PG%Po=p_ZHRikBkRBfn?V}9b7~x=C zc`@XaU*pe?c57mjtWmI|3?&bh1p?aS64+0RYvmDYt;IA&igFm*s5o;p_B_;=O=J8b z#i+OF&a==x>@6+k%P&3e$PPS)@+W(~Ki}0Mn<_V@6UAp9NMhOMY+^DEo9gU-S7p{F zGO~JC{M|{OwneB)fDJnL3ORkW*~R*HcsZe|^~B7b4e*_?u_-S^Bv)|2zzDk;N>%4P zouYHaXw0?Qnw1%U#cBiqUGH3BgXl7DUi$|;;D#HhS^^3jH551-U(u$UG9SH|ZBWBU zN&vvcMPNBc?AqYyt#&NF6ed>7@L(rq3FNIAELGeLAouyMH@9=B)s8m?A05#o(+WA34 z^D$*~Wgej@@h{~gk&~6!JbsDrzMbhzTnbD?z#EEt@*X~Xh{U?1eBDMOB=btzOocIq zHt~Mz;rKZPIGc=pQ7B4!z#p6IAufpx5LK>M1l!uXhJ%7fhm2O#cZ3D~aVfCDK94*! zj`%FpOxKp=Gvqf(!uNi_?q$*DSic4-yXZKlKAR|cxErIL2OG-N#W(6l`RF(5 z1~|idVy;PXvruX%4rXcAQqpT~(#k-KQl+ii%bj%3y5|+2(;huW z_D?m0Dvl@nV#3VYVuC)&EimlXVWKTVgr3+(j@h~39(ERP6DghPO9Zqqpu#`5seQWF z--b;%oy^+WnoE9o2lYh%DLb}_q)AMC2hnFv%yBa;)b$L_gqmb;RR1YXdhF0 z+_6X)ES3i^g$X_Oetl>K0R(CT#QdWo3ECo+hC_svgtlWt0dpZ7rsZm9R0ocX?$!1^ zyS83ST*t&P<2KiXMx_XVSr#Cw`crO{^MPX^3n2#Quu&qBdt<_yXyutY^*F4ZS{8<}}z!52R=l zI3_Y5I?6veS5KX~y8Nydff}5NQCNIT{WP}v^9j}9W|B{!vj9?$lbh@Vo(p||qpvGO z@!SYymbWgA;&JbTF0@rG*KDp~!_&h7bQJSAgc|Yr3+gZ(rr^&9@rN#5LW466u7ngv zmyfElnzZf{HQ9k|m6-L+lBLgSc9UIz{UrN|SO9^pwfBv*>(3rs$4?}Zn5dP)qX-@m*V7;hcX8AWh&q{AYdystOX9svyGjm>2S+^ zb#^1UyjevZDO^cDEH`dxcy@DU7LGE10bwCH69I8Ah`VAnR?4scf=3^=QiaxZOT2r) zC_QcX7{}_lHK4sbKx~W(Ga~om ztWn2Q|6;3H$3+lc*sw3e6~8^1_#_d6sBlVjM*>+FP992%4tU`X7zS21s&D|Ihmi)Y zQ*+PM<@rc#XR6ZdLZ8~IVdUfZvNOEsl^?Tx!K-`)%aAt zuR_mHX)Xm&77|CT<9_!?X$mO+b(g53%Mfwc7;?9O&^WVUE9wA4ICY_HEIv(s9|OjF zcOlee>Eb@O@VmfaN+1P=()Vy}Ix23?2ifgtXa!urnbvLnR=Eq3B=V-$VDqZ-eD5-I zVtSZuajJ#xjfyox*eo)xgs{G27=3m()SYZ9&exfX@osOBEpZ1v0lV?91hhdBCL3jr z%AKurFTHE8xZXDjk}elScd8DI9oxs5zQ;BX1#3WnFv-V_{~>VXl5Fm8j&=>ITdB0- zuMY=PE?%7qpQwY*iDszK^(6sl<%P3im;wX~T?9sRMf_cCe#-QX zWz^kV^?er^zhz3_wXKWf1UjW8==@t=*RHu%dxawGJ4p~cFW#1{e$3+?DoMoFZt^25 z-R*9GQZI(00~>R96ff3-?GjF~i3v5d8zMjE`iO?&Fz{R}aB8GYBEW(t_ySqG>`?35 zBx&2s0%zq5UGks3NhK6&*Hht)SRI=L(pCUTQPGt?rd***XC7@aT50814FvtJ{J^Cg zPXMUxe&<#IyM;?3otfOQ@G?NHkkV}>x~+{g8gwV3HKa)V6wK}k>%0?i0nA5?Q{D+{ zpAB3SBa%b(qyiv_nW=;?_VPZw9Yw5V@{%uqN+T^?s@qSqAmVUv`;0IN1p{&5u~b?r zs8B#sj<}hGw2w~ZFySOi&AcQ2lCFi8!Ey*j4P}!reY}3CAEEt6e_`) zxdTD${1o`aEMI;*t&bo9D=Vp?)7?3HNbH2l{nw@~vq1pFrprqjNUpL%LU1VDNUB-t z)`~~ULQ=Z#v3-<1C9JT;&PgDWI*>$-Xi}<*l&bBh)Mz!PEn^SEn~^k@4*8XfjOM;p z@Iv?50CZK0t(~&Y#5_nJAmUuOtZTvicMM$3?fn{Z8F33$PNXjarXdMp6)mS44qZ-)e7EbTyOXbKIoe~oi0Nw5P(u}&cM`7wXy>?Q`EBqN!f<8 zS^@*)(<5D0KrsBkeY#M@qD85CRef}P%egin< zkuEW{=rTuNz~>Y4D#jAxtLVyxLmw5johty_vfW?fR(oS0aPsuRHZdWF?5l6o8Or>5 z%sn^67JAs&AYSsYaanYHyA1Y4-cpUeDM)vD48^1maPL#$axGNRxzL(GbBhIN2Kl-J zd{=>KsbH25>om})(s&5c)|RUxQA5k6fOzoS;IR+kvA+}NMC7?1mi~YzCG>Tey5d@= zhl_c&PgKCbG1VO^`8MkS22ESv(T*47StogUU)@Qr%ts?OX!v~s`$2hHda|2O&o+;x zgd_*in+2eXWhrq+WV9TO$UAr+#6t4;7jXpvQfSbXndq9Z{Lv-~vvX=4tkN~0hVUs%+Q}+YGasEk;jfV?CjkNYZ;UEo*z$U zSjGV=vfsm#m1P@Bia>Uegv!OQPzZJ=#D7XRwcl$1%NNMw6G~lSZ*ow6@m+d3m#Y)a zEr!BqB(2y=7KUeo zffSg!IqQ5bSRG5uQUnzts%{Oov1a;TIBv0sj+|?4=&WcEV75<%c^7t6?z&k*ZW#&o#3C_%5-E*USw4PKzvj_ktPvQ}thM-}wb{V&0 z<)G}BcON?L0G7SDxl&sjXT=%GZRh1nO7xP5VHTiLoJePCH>U{voSf?j&DU5v&%4K7 zbs*DPITo}gYOllssvR98Y@vW%A7#VNiuz|TAr4_SLx!+2Hy04j*J{-`^^F2Y7MStrgj;RbAn%{l` z!;GXQvC063^d!HrcwX0J_g2v+PkMFF(vhD^1IKde63}yFSZ1m1jQvL4y*;eH!@)=a z8VjJTz6XKwfG4SX;=!@1xz|)(9Gi1@ib)`bqq4xCh1ZTnnH+1a{?Nc|pQJ-4(?Ged zvpDzej>2gGmR87VX=}R>k9O%SJbY(3<_`XyoSjQ(zAxLlwwBiN21#ciNw}xxq`xZl zJtmN3A=`B&7L8E>8V(}9 zDZGy}Tk0PElAN6vPb{dwSp=k3M1K03Hot+UVxtQSDee^gqXefZJU*=kPEwWxT}3x0AF}c#eD}r#}85LofT5iSLF!X?8n~ctZogo*FZjue;*yDeimfY zg$0dXJ{d=RRdjRyiYrX(JyayHm~icJZ>dLaIM>~B+XgT=v0giQbU5=KjQ-)#Lt-pn zYKfbwkJT#jpmG48TC&(FY04MhYjlBXCY$9uJN8e1PptxGK1Zsz-ei(KyM3JOdw~K+ z@})9SzA%N4Q6?-62DL5DNNU0iy2D#16gOp1TbZg^Rods(Yo-e|N;n+KeCFpR^$MoQ z2)x<;lkV}OpZs1E!~`QPK8KC{kD=H$VEN`k)yzSCz?(ZC_kMRZzqpuh*#7U+AxKQVR=LWxf5$wk!Qs_R~+;}j+(UA{nAOIrUbDB$ople-; zr)#s6bw4RX!H;M&Eo$&7P6kfE7V#3xK|OF^Ggs1;Z2-)Ee9E+1jVD4S~zOzI^L6pmp3( z6Y1zE+UgDZWRS(zJU5Q54IR~-lMnJ3(hS+qRMu<2nEuXqMXgdt8{3iJIFf7=YMq`2o~0oKk~+_=G(#3<#V;c1|{E4>gP%Z z$tqqCMei6Qv%$ppm;TEuM5kJFFR`W`1$0qGN0_29$~lCuQ_~t+;SJtTa9xv9c@R8IM1)#B6aekN81I4)1W)O8PK1iW~Yb&Yb`+vS5_nZ zN=q@N`$rdTK=*|t1Y4ss%Af=RQt>9z({Xrxad;)_EogDEB3#xv8F{Y6>2GVxsj+@> zt!)J@&fq2g5F8)PD8fK+ddZcxN%yX*eQ_U${A;b2 zi8-P9_(rB@{%^n9ocPm%D^3o7-us;I?t$X@+i70g$-Tl2Uq5i$*wWF_ z@mW;ItMB9c|MUF*u#(-}B03gb#y{qDzOGug@Z2Uf!GMrF5lj}`zl&5(XM#HN!)0k^ zV6pq@A@!o z)=;kLsulACi%+P2KvFfGIwHeeYrW*dKie0RRWNJ?5hOE`k@du*gP8iYK+nDs5I#`* zH}u9xTT}C?d-Enw1K>VgkOSmEOuPnEU5rVHi~U2;=PMsCWM0if7*UifT$q#NE;vK3 zX%;IvG5qB_d%BbZ48_<_Tx*+kbRR9i!o0O)XRdd6f|3uqHesWe$5m-n4r}C7yDpj3 zDA6f~LYDHxOhA8352Vl7YJldy?oj8jx16HU0om2}t7ZQDPOv^W80BF5G5Pe*5B{(H zw6ztO1WDLWuWkQt_kXZH)kRIslC_Owxxa6e)<#-HR@nIVC;NE-;A%A$umMANy}$O$ z|7`8Mzl|zbf^;OxV=-CwkAtNR4!e@0{}hyxt7&ns@y^!v=%u<@gPIa+V`$TD;E%cXD4UTr^P zVa^^`%GY?f%boT?}ZM zzliVczSfh07H{ejqomfUk^s<26;UJ}12t;Nz~|xeDDe3aUlC-i9lgirp`!K}sbUYm zwwfJ@_59vB70bZnb+vMP!vEI=3Ra^y$slAJ#~^6jeJ)G%#5uhg~Bemoh zjf5;(2;qv}fZh)+u_bb2m0Dv{l0ML5p_-d=@uYK580?y9)2&lmEr*-YwRJF99Hr1~4D`#-I zl8EHqkF1Klpi781IEI@#&eY+y;Q|)E8O`TWT9kV#s@V%vT#RBX*;@h=H>A1SPpFel zx;AGx?)nT7kHk8jxZ}a98yRSpY6c3^s9DwmBf)W9_T1GcQ00z~fj>Ci-|V5_RNiZ8#w)X_M=UIp4At+z>CX-Id9>`uL!dB&VJG< zRI8|aBflJS`DGz`fb46XtRk`X(O)k3ZgRKHz}FY3zrlTHNx!`o3(ij$YH_jr`wQxz zv~dXu3Bq@#q`udl@PURVI-<|UzJJ^AUVwAppkFd1?|T*aHY5Gl z$12%`y8O&Wfzjr;!D1DN@pqVffvk`kHQ62tg#_7LRW5A?5!c^+!&%(rje8ZgUa&8%4|`#&KWMaTxGnl%U8eyUHrVR>VCyLk8y}^ ztOjcfIIY$U5CuMaWY+iwvESiq@%GF{#C6Hlg{xmH9YM>5sdBCHZ(YejA3WD!9raA7 zhyQ-vey}D7Jxl9PuWw!JOjnKYJfeG3Wz<}ta~6*;4|JjlpoB;pbW2KupfpH#NOyZ z`5(1VIpe7SuF76fc!N5$NgX~DV1``SlyLh;aN?+uu<+p_@W}tPHax(0^F~3(V|(m{ zrBT0mt59@JL;(e>ODksIKQi2RHyme+cjkuj#BeKT!3}0WZXatkX7>agEo_K^_iL|i zS6my~8Al}TYG#f+0wjhiu(v)n-E+s^!CdgIn4S3s={qA8)8PPFEZSBDqyG0oP(XAz5Mb_S=WGJ$jW18I5jb?^k5Tj(5YYjTSNG# z7lHvfUQ&dQ^{>8GdW=RZDq&P@|INBhht|Fd!a|LsPBz8W+p zo0)#eqkobp3J;(uY=Vkx9xz7^tK_UjFu< zYcY~qnQ6$NC4S@H#;nX20AS+~5iK=}YwPMt+1pnd&{I>3$KEs?HCobyII76Y%X{Uw zIh3j$C?)RJH#9VT^xT*B#*yUMiJr$6Ja--$>*s%@@+kLRy?PtFnNE(JyhpD1w5@WB zWwS|ddL*z36MIOe@{Q|ll(B;q&mz-3VY%%%S&HB8Pp}Im5-Az>w)eMVh$jLsuU^hk zE!OO2I=+kK?%vjoi-dZQG_hfOzI1^|-<$fM8~JfrQXG^U=gD!Br4oKWig;_)>tjeD zM!1Iua^PmTDLGaY5_f8=k5aZyTO~%&ppgCa2Upo8VWE?o$68H0hlVxg$5SJIdgz}A zCPz+65{!S5Pm$kr6(*i<8@P`+Qj&Z`+Oc>R;C) zS9eABLdCp0`o9^akLcjBUy(I$V*hoXlPmpt!wnVRtEsW^9nfj>bjz6BX5H|7Pa9{b zz%x^7!=Cn-3=%H7$}~EZ?`5|7f*?bDg77}oZp(;;O}0kB__q}iH$zH@o8s%*RtCND zq3Kl&`aki8zDrI!*np6|Hg5ViL?>Rb0^Bt}$N#cP#owtPj(RkE`mSQGC9;;$^IB81UWt zl+;umDyo5+iv8z3_G_6-Y3b?1qbZr=MoU@QTa@CCOT%AB5O=Me!0E-bRyvt8-M`mt zv}AFJ_=l(QF?Zu)Lw-#|{=Vv0pTdxpOWrHjUFfgcsH+zCRmOScA3N(vxMW;AkF1Wn zO2wI)nkpqF<-PhNh&YMMrz*V|)~NJlB8pz>(shTFB8m zpGc3Pyj@w-C}I-vuN;PC8pnChd5O>Y#q;MyHdjmg1#XXH;%GTc8lgbvCZR61&l#`K zUsfl_B13}2rVR|-^9~FwPZg0($j^~|m8(&n;8N<84YPc!aS+mXac%kl#YhWvCRObq zY`7u+CikB6C&VhCf&}dyHFED@X-ya{p?|8jT5wbfwRr)6l$j^wub(fh(yOxVeab{e zHR+IEGJKFL?8t!Tz&JXP4<=sjX=MYJmP0^HY-#0p#ADnehtzS-+EL#qw>$D*g!}9c z5o#SXk#4@~9hQZVP(rrrp~trtrWPtQXaI|ge%xfw>>?Cf5OjFh95I=leJdNEfB5Bl zs*T9^J!nz6ro)r+rAkVOO_OduRJwi0l5?N%azlQ|3jU83JwX_?5@_YpE$ryMg6SZ< zdR(>Um{Rkh-zMKtf!Gn)_{%E1 zCj(YNzs@c9kI(-5OE+@Vcjq1<^F9{)-`tX0Cl={>a<++&kN@(j|9Gfh_W}MA#0Ex| z28lTPr%V3Zn4kT$KDZU^n=hZz|7~1;nVHkS5>bJ1!aX0T^p^$yXyQgw&gr`S;|<{l zq^zv0b!A>{zedqq3Rvd!6oX5rCp&p~W2|q|jD!y}asGJ6tpFE1_?<8H;=g<9f1dd} zeSy<~O%$(PQ7o4wwSL?^=fe*VqS++3mq!UpxHD1Do{O{^`T1uf%R$w@_N?GJH*>su zw#%_s2v|fJH7Y4VcbRY?yQHTXwVO+g(EjokLq1QPD~kEW+q$n`QBpPOem&BU*+nHe zFYbz(@T4&H%)tJ*O~C$Zs=zg98q%^(9$imn^h`{o?dGdis6UoAx<-v+dudRCu1V1);v zWu8phujMjw?P=D9okbUYI{?$`vU#?}a7u$8H%k@s#p^CJQL6wfaGkCBz9Q>|$Cgz# zOG7F#l}|q*ahZQ}Eir=1f?iNzrH(+6QRJ{=3V{ApHsgVZ9L58rl@FM#r%;`YkB{J~ z0LN5Wc%sZ#ttn6C+bT5WE^7E}3; zVf-u!T(G$h-muT#d&a{{5JaG$Sq|a)TzWz@L${WCLw$WSSXY!}WI{l+NEF3s7Vk$Q zpm_xNiast#byH0tI!(b;^59y=Xjod#d#QlThrbROcO#UHhk$n6oW%oNv33O7HR?v7 zsL>6kJER5Z0M!>y%m{v`eQjyi)qI5zI;1dvLe6G2vl^;6Zfo-MXwGry-?1y@p?=}2I@PN(=zS<6W&n!|+7+uOV7MZ?vQL%^kBx?f|zm1hvb zo;fj4_+lOCF=Z=lR~TQue5p(64f+`8KH{xzsP=fWShO*9V#z(Is+_HX~5uK{wOArx$Qo9m z-?-0g!Jn2=&|0p{kdxKfqg-wU~2@;!uLksC-Y4y<#1yX^F~5No&=mjBF1lQ zZQcBEZdBrAPgK(jB6--pkn8wk@gZh18}Ebp_t&xaUVhF|PL&FCgyw_w0NI(fPM6IM zQkDe$oNZH6Ql_@B!v8RKuM~mZ47?a``p0p^fI-R4XIcr0RY43vNkuiSCgzPpwO*6J z^XK(JDu9OdsW;{CkVTO6GYa_q9U2gfB#E?=@YviLA0y_r0`6F3y4}yu@8KYB*@d&V z^ndaJA1#-R) z%!LlMur5YWI+%dI2dtK&^YTtzbG?T?nnudDs0$+E6ERLCS7sQ>x9P!PROi%j7R7lp ztzpb;xGCY!&NhzaBZBgPt*4rmTaHs!RYzL)U=D(C!TP2h_gl3=c8Bx)qDLZkJMJrM zDOXrbPlYLK1|fPrtONdC6X>atYPT^X|6UlSYmQR4Et;x>cf&77wNwg^Nz-u)1No)D zxc^N_Xr6}7(c#|uW{+G8;Bhko4-!(W*U=2joDSq6A%}6K-wkGRuUz@Q(#yNf{8amP z;q?sx6Pp`}eV6h}7q&O@k7wKWW1m5fL><50%6F`Nx`g(r#%iJZ`}SJ4&zT`AYUi(u z*i}6czRNVqt#v(hH1a9ZL;SyN!z;C?!(}EG-#(rUGe3bn5 z5J)2KQqaR-msQ!ggs)w`c=eV(4ymx)cR(CZ4g~^}G}$;hR=svMmwmS(z|*A6uRW>+ z$SXN6M~KNEVIobE;DhJSlj`d3gw%+CygPbf_F@8zp4A%`y?Gu&J@ttu~G=y%=b!i+brrI1qTP`XuNNX&?TX>U{J)ma$bfs5=2;0GtYa{WaL5X ze%4B1q1ubY{En|a&H$ByfbY??@;)%b`w_*kl3V-u8L*=rAX#Vz5|Z1%*W<+P3#Zr9 zJWBGgdzHZNBzjDRb>&_EEE>G%W59$9#A1D~(P+tVapcIcd&p(8)az$XRyzBt)G=53 zhZ)+kIoO>(G+x@;RtGtrI^1Y_*ZRmQ1HYZHGVtZ$K8b;ymMt|q>&kY;-w`!0X@Pzh zd6xj(+663G8FCM5G4LbpnO-#=cP938fbaUlxCW7f;4Vcp*!d4HOo~N~)Dq5c4ekKn zf~EprtI~u8tSn{-aY59NQ@p>EC_=69D`u&t1s;%dQa1lD4}|6hzUX^Y1IX3gIV!BI zGH+$W9)ald-2gua(pet>-05ct5U#CyUswAxToV*U&(W&Y+*|=RA-vw7&{sC7D^(gl zQ?1-obcZLHX9vhx8^8MEBSOZY5t;oz!UrsJkiU4`CmpzQ)-Qk?_&{Fpa#Fmj7D!-} z=b`xtVOP2`9wpObPN+7bD+0ReRCy4_6(YBZ!bdo9QH-qo35*NSyzq>S3}YAWT%mRy zdo|zV)U6vv6~`vI6nuQ6y!;^J2kWqS{)%F)lBe~YR)n<%Q|>`-OYDvg$O=jc@$vPB z*y;C<_5}JXiS^YsA=w(vd+R!q($cIZbqx*p1LKE7jYbX^7@!;-aXfm9W5CH)a5g``-59EDR|4@ugc3g+#L_i8Jg~72Ay?B(Nl|!4H72 zhaM<@1&jC%1m~kndLMP9){W;v&uitfpgsAh%pfb!4%eq$Z*=1FAFW? zR^sJTrF2;R-NNq8x@1D($5xk-kB9rMvkex?H0L)_xfwh(p>s?nPj>L9D_w|=ww|=) z8W3!jvFo^7C-7_fS`Sy2gsVhwMJ$*c9~|bZ?d+8s5icI-jYe#&J%;busV=AnZsmVD zt{gKf&27o$w&btRV(MH!TrMUy)0ipcvlsXU9)46qKzH zKVp7Se;@p!7#Dvo(>D=}Z}OE)v}F9^%aB=3gTACFh8XJ(*HL(h`(Kmz`TfaJ_|JcHy7DNJWtmDaw9oUwVQwU9z};@a_0lvmq$~D)hAG`xPGa;b$i&5XPb8@4e0;)M47Taa@e1%Sz-`A_x zQ;@lPef!qU{`*nHlnHAj>a>LGhI+Qg@koQnL&V7vz0?VGe{pHW+7Kf^6R8~;FVgXa z(Ogtsuvi>mw%hEIxL~>f1jn`&;JP|s!z58W+>MZqV2p}UNPDoRWt_L*bqnJrTVv^n zKMEpYM6@>u6LPpTX$n+k(X_g#Kqt^%MeSBEEa) zG$}tFUk3T7yx3@gE64Fb+ta8W^!pNJp@g7FrtvXyszDkUaA6UgQbbyT|7{rX$B3-#3Tyt zft39gzvB}e9Gn!@QbYM-U70yxD0{P%=#>??M;m|=*esmWu=l?G&T`xWGYUgzmz>SY zm9E zD(=!~g#7lijU&iLX5MqteF3EY;1$EI1!x3F@AUZ6K;N%*(C$EQw11A=8ORrX0?M9I zDFQ_VUlQ{g6F@{*IVJpV1eF4I;@5ScU}Ie<8&5-ZP`Yk;-&>ZIy>`TP5^FIhU^s@in|B2ClrAG+?pkIO@r;(WaoPk-KcsEiQP`x zCv0TodR>oL(_~`mX|TASeK@mFun}dAI*;IhzuY-D5_h*?1fzy%dReD5T=-sh3s~W8 zObgbb=ay{SlalYkA_k7cTxt-RTaFl_H%e6WQ?LPa2SF!UvEy}mZgMvlB#+}4)^z@e zh(2j;7c8A9Yh?i7h#epLvKx9F!!AY}V@Z8&?;^2Exg^8g*|NPf-15=wLh8%O`ryz| z?FpOJZ$eSr)>$x))<|X%AABZL92}%QeU`e-xt?i|*w9kk zkZy4%%kduVP9{-g>R+)=c?Ud6GZ4IMPc;T5Ns@y;uuQF6ySux_N(RR4YholkW@Egp z*Tu^&nO|^2#qFddyL{?kTy4SXS(VM1qdh(J&n62%h2?ipPM9N~^a5a?Bb$xL4`5q< zP61L6j@tT_{@fVJ=ZzJ#`wMUkLJn=U9ECe0AYf2wv8qFf8+r<2CHZnw4ZG!v*`nnZ zJ29vekP{=7>F{j>1&`;RuvQ4ARSGHtXcBWwfyfBA-sMQgeHLo@_Q}0CJdWRKNFB-q z$G`K06w&F$gusq0TWI_`Tv*GOUBk2D`+@CzFKra7UO)wx{ic2tn?bO(azFU3Bp0*1 z>=uM>G-sMCzc=HNNN;^D42BVXnAk+mjpOceP|0Mp{?V5SLSr&i5(JFnr;_|+UVU=m zL>AMLdvoKpE|9gt{vKpcL3rUZwC)nT$Kalo$JOJh>oV$HUBqmI!ht+8BLkJz*#y%< z>5NS(R`cjGuAOkD9i?BxiWoyIN#OrP<=N)Y{~TIIbXYHPKN~uuna^aKTF>JW!#=vF z!~0?t>m*x%#46`>5v)g#Yo;K`0!#L`eHtHM(l4OVmk z4$b)_V4tbcgjPDZ`n;3^kEcQINfllFEO*u=L9@I}W?@~>F_(u zP!Jys30Q|>Z(Y_7vLrI4z-mWYocw-^uk5sR`oaD@4r$()AN#5GJ~3?P+>DX%nKVNI zC@5uYoWo|+e`naK-yayQ?n*jtZdYnS5QsiH0*yX&8K4GiRw*b%a3Kl&#{4H*+XsP) zPx&;jp>Il?Gt|PD%u*FI<@+_(yQP_QG+_)=C-=Z=Lq=~IbpN(U- z4_uCSTx5_M2aEMmLH;+Gr7%9WGE~~Kjm=lY-i~oP5{Pi(qb?XIuq%034+C3y`DQs)LBfzpbIV= zVzWM6b~yiyANjKwsa~+s2V>4*@6(vU+yv}L^%z1UvY*)I=^Nms3es)4cs3}otO=!e z^67s>j=T%-*^Y#W*?0$8t6mhD2VQ}JoLcv77y8?B_yK06Qf?Yoy*uGskyQ-oZQ-h} zq85ks;;UNSyaN9`LKl61ZFe#-=3w0Uz{Kcfne=gkUKPbh44H2Q;+6&CHuq&^@#v$3 zmAPI{ctpLO1Pb!zaF{ueN_xreJ$l%c$+W#P&J@RE8@@bRg}=FK1UY{1Nz5XN!Hv>D z5y<;o`~||1!o1Lw)vPGrIm7pxz`#Q{KoCmhkROTDo+zO=QJrxGcBCbaaSP z5!OosY-25ODh-tHU~px%9Jt~Ok+ansazt6+z7Mt2*~5sPsf?V1>;*tMyn!PSiqeMB zDFp+k=X?V~oZ`nsE!;#i&o>(LEya@g37y{?9ahg7XHju+)xx&Qif1-(-P12;l_ z=kIYt&Xf8E#(ZY&@oOPX`t+0(FIlwr$#<%cj}EBGgd}V`k-d~P?ZklQyH-cWY!yUb zF$N@?h1|JyAU{b3VRw?kE&W2soj~uVqqP8Mv?GKG8%B=95xPd2rIf83&Z*x?3Wc4o zzi*#j-9iE?MeG7yAq&A<&?@YSm(=0%@d0~oXqbr%fxR&)ll&Ek`d^knW$SeFPf z=xL_jllsK^Nkl(?sO3%E1!u-Hu!x)a^~R&CTAa@{yn3wxc|I~~ zje-PTXUY{BtInhzdHpV?-BMWZ6|NQlk+dZV?#wY|0GVr(aW)KgQ5KhoNXS3-4)?tK zk-_t35Fq;>1F*KunuuTmbiNFPmEeJ3T@Mn&{`BLykaO<~iFjWX?B32+ue55adlDjP z5ik&>mC8-k@QzHRHKAUmT>2QG0WZYg+z@cC<^}!vf7HkPC~-0vjRg8q&@UqeF+TMV zzcvR?arqU<3xIm`r})3^6)NtdkJ0<&wX`Up!fPas59@sI{v%ke)rWe#0qJq%*XY$m z1#MoS!PZ4ak$K&zwY0!=Y)LIRb?cdsgm32@zSWQqh}EFIV2=4MGm|-B5pMnZn7Ypb zT-=t?L(c`hU>`P}r@^^&^%jjH91%399VcV}k z`sXh!d89XzuAoyjCnW=e4CriMs6HJ3?j0$2pSu$OK8&JEr@!$W(1GZdoQGS3I_g0x zK-P6bQJt!fGmz}n(xo~*(BPjnYGM6M6;O~5G3Ex*g)^w7VYWR6DV&LEMD2Ze;UmXykU+ ziTs}dgGf#LNy@d8G86>=QA$>!UWY!^Dz~^S>Ub$@MbZ2>dgKHcK=mU8k+Sy+4(9s5#=L56#2u#|#QzfD@sj zpb)WAy>MIvpp>qZ3veWL3Ejs0);Jzz4$~1DKKsqP-st0w8~%=<*-4Q>4|Q>L0MdI3 z5!ii9)rrZ;w$x(*6Fsngb$#A|oe+bKYc+(Ctsg9^NmYBWuG-K(%^fWU628lQ9@{D* z7*=s$hOd8+1!kq~Meo6Ffjw_^+fi%kmx+njJ+BfWpbi$vYuxjq&dK*-8N}RMUiD@m zyX*!PAn=R0Z(xw5;Q?UW9AkRs9_|CQEgJQGVLpi9Ac2U^IBgl%06G&2@K=-vAntzT zTRJ|YMrM1qCj5*NE7`1h%Rls**l^*Dx@DHkQUr9UFH-f*t}4!_S}R1g;8UPZ;!STe z(y(t#mWT=wm$Q2dy!p^;%>!#YcM^s9x*X3~@&f)^BrEVQ+&3JUych1^9e^4%-RsZ_n z(|h!dn?Z?>lErn0Jk{wh8o0??7CP=(fXvybER*1J%wb~8`zF-rb6tRC&{gOD8Ba#4 zD~Qc1>z(^0Odr|n!CGCE*m2InAvdh1z_P2COV8My6*x8!ck4t(jY|SjuMcd>g|KKkEU^z(+2$icLXJ|L52|rDrvO%qOJwq5 zclG;vc`ck_^@59f)^Ju6<4qtb#5c< zq}FGzCibHks$zmQPCpjzO%$PNX_H-RN>W?7a&OJPdq`pwL3;c_5zB!`?c!+t(0 zfIoexRrL#lDJ=4mwL+meDm{MNz++r0#JPoFi_AD?ROBj{>JxBTq*Pe#kAt}3K?o>< zzpOOqiKq6xLdenTSNRCyXlJ+HbUPJPwg=0^1Uz~Ss1TV{WJ;dtXytT_-_u-mfE2SL zc`lP6=o)R6Ah30Le+`S+Y4Z^R5RkmuwFN*$9o7jirCRGu3i;|EsT#VBeOH}#tPTLL zbc2?!{Z=Ue4@laL{QUWg7wB-^?2I@lnGl<$oNrlnt+;s-;0nS8zeHaO-5o0TtoT(k zGip$2$=wKp0;VY9A48?9+AKzZmP4Qx+`2@mSM@m7QQ*Ggl7Ienwe-O8$Vh$fqMMlS zrQ@>RBl2iwq4ZA~TD8ud<+8P%WsqKeiz%;6EeRY{MXS2=Mp?d+A=FW{%y~1?JA&3j z6%W$mJLNOwsd!?VicN{mPk=71agwGtI89>-xI`qrXMk`OhKdcqK2`+@m?Dv?)s$y- zup|>BN@6xpu9%FI|#4!R4qzCEaWsGPsN$MF?>RsNO0K)u#b*z<2HEa5yDX z8UGE8kxLMN1y{GrYu{5E@X0?}uQuN`s=Km;tA_);SPj zCk}8Q`rw&_*kFit9`Ct)yzl7V9+NA~2^gmft=A$iM(^qlkD7oVFK1ozU!3#;>y}6M z3GcD^wzC*wppWsf>>cM#{-J>`xU^fZTWcuxhSl9XHZeb_Tps5({K(|IhQ0?vUVzi> z`I^L}XeGIThM_a)%K*ZiHq@*0!d^c*ScxI2fo;Pwu9`vi(hfoA%y8K_ZtsBYLNllpCd>(j2rJr*x08Ho|koR7*k`H*P)>7K}Tna~+ z{w-zJHy+#4A==>gi^u_*%Vf?S8jAtVRFI&Si@yV+PVb7|IquDlT76!2t|XV^BLvOv zxTCLm&>^d4Il5=@cW6E{FRBq`~G*mbQ z9z4LsCC-==cVa=?jKnqIEo`)#_FDY>le2J^J}e-vJ zo-_S*fnVtp)*b?qb@rPhJ2O(hK5*tQY$inEz%%md+0gRe&;NhvslQ3OWn|FEZO8o5 z2Weghl<@4J^znZmh%-ZoD*6u8w6Sp?RQ>`>&VGQ@Tnwe(gKaYQ&dFo^yMh zA}oJ=>9?1HQ|Mr2?J=i${>S|Qol{a$67QfH_i0(^l@eeP=8MNW{|nOa*IBTH5R2yF z-MO>y{%^PN@w!`UYb!nHhhO{(tTn`!9KGg9|2Hcw2(i+p8X}4RYo)~_v_0$EwR3DI zr~9S^;Na?;cKfFfb=I7nc?>~hAZ5Z9`jkR{=J4;MtBlOT%9=m&4Z%(L`DlW5h=E-r zOLIRt^84riJSGYOa~4GM!v4SJ?3Fwz9bIz>Jgw*CtFFoj;;G@(9OvmZ{|{Hdro;*f z3L=YO(y~dB9tvQejaD!*Yyfnr`d+#^XfWy#&~98`!*ITHq3^!qg-m3ZD7ALe(v~&C zLnoSt{&k%1q*fy;5ZaqtwV%d4kxo9;)86kOn0?z`t^8Bw=d}gDl8uADu$`Lr&3BIh z<}P`j&vy7{l4G&)|1Qa)W?*2Tr~S0t)`uU{@2NFp3Ru;nGST}r{dtwDa?k6a5RKMc zAOaEJwsS{BGVQ8BPE*~_*uVt-nRTIzaGRMQ4mljEuEJn^>#0Cy18H=YkY-SSjaRA0lLxtt(H+}}%WMxBq8%(7ud*j3xNvoR(d zz7De#PIe#GrR7@@Q<$PzgToXG)?V%XE~3c4;@Sq2z=Dc^h;!hFlLr*QyGsjZvbHx zK2KgnAs8vW_>WdDWDuKM>=g@EUl5Pqn22ag4?&_C5(*QI{Yk|4rRjiBub)!~|TZ=qF&jDL~Jp;mrmV2A;{>Ia<*selD+u0=}C zEv{OsKXdf90Oe#uB6c5EIFh3(R`|0Q$!E}6kOZ#g31;K9=^SQYPG#F|Oaq?rMPW}) z+X;Ng&=Xx<-F~J=Y}gdD_ix*X)f+9%ze@*EP8~FlXuiQ7NbZona`N-b65D0ew(*@U zVR>l-Lq^V3xry;d%ISuBUB9;g(wnEG&>qicWd8&teZ#Y_%4se*y)+utn@t6H&eWv| zqgmoDkx|nnWz(-v=SQk%U@%S~WBnrI^qV5`%-g3B+K(%{B_cu;T=738E&uTqPGG#u z6%xw+9HxK$I4KQq2gq-Nq|O8{e?0K%%a1Z(NJe_oP0rrn>H8-s`OlM~`T)x-^ehGE zfAwi|1>pKPw+smX<7{Vd|1~*qOb>5lBLA;GJpvR;pZ_lyZqf%RfRHmCv%=AgUp(6w zKUMQ=2%Y21h>>dmZ${T$b^rL+j29m*Xqel zPD9c!7cqm|iH4=s)s5X2HqQO`v@HUu+vlrF^QT%pAmcs=h+FT16|z`v^Kx15mjLQy zdE~QUd1E+hOYBnqQk;44gg*_0=yX<15Lh z)AOb4F2_W)Est}8dwUfN`S176-L+Yg4Bv6w0ic=0TV8I#oBjE-R5$m35g>mHg?^Y2 zB(T^$1hEE?Pacgl6a_GAn2KlHBObkIXh~~RqXH29#NSb=L1V5M*?# zIoN6OkV|jgBw(HH{Qf04-dQE-?T%^YllRpnCOuN~{do+Nw`GF9NCY%? zPt#9NH7Tq&y2Gaeh(}WtGlMJUbc6CUY#@`0pY&y#mVy*_e|JKtXM-@T8= zs7VJhs$f6AD+VJO?|JtIo>t@<-KLFyM+&m&5JRQx=1GxDlDUM2%?Bio`r_ULC3e17 zTy~rW!(#7XZY|KW=hrd{E5a`RetC}&S9WWydnT;ENw>_Gz<8@y5gDCEkJz;D;^P_7 zYc0E<@oqTRXNP)K+6FYCn%*?N}Xs$vV$_MR$dO1!GwrP zwN-^#ofid*VJq@rNVQ!2O%BoM(Gf}`qP+ih|5(PrUcF|JaynUCf;Z4_@od*T*pRVh ze%Y*7n+Jl^T!{kV)6VinN+4@BIL)NZ-Mwv7!5eqs4D451+q zk2j#ke}F@5`tH3uad>?B&O5;7leDt3g5(-mh}Kk=PVXh~Q&|HBM4)&eyEm?p6NO|f zubq_5$|(KLSf4bVQck29-^edk!5?ei^<&@VI+%L<{`a!~Zt4e8c4+KrxXfMSc&K_)wtD-AbcV}0x29!Gdcr6_U#aS6RBa?S_U8e}x0V}3 z{r6@s$)n`km;`p(L$m%@-^PlT`IV z78Z-%8{>^Q=u>q~AuMoT6${uZ5H#RiXbmM$R;W-rQ2J26V`vN~SqLvyTLP+q1ee?$ z>dHVBW}9_5DIz-SulNFDX=+Hg6le?ZqYZ!-XaqnarX25EVtTtn*_24a6o_Zmvf*Vu z5Ijjq$wJd1i#f#EDv7i($Q$w*s){m0ch?V%8peK??z<$s(~DO*)+f7~Tu#KD%yl8-t~p9!BmYGNiPx{=9cJEu3(+Wm*m;I{yX zuy;?oT+0Qgm9S+E9%&%8{4D4vbLtd+IiP>y0Ufs+ap_!)%kwUMwhVFI0L*4p@GVp8 zywwfu7EiPWDbvw}yh}~yo85~;6t9baWFa#GJC5c_2VZ)*Ok)vxCX9amMXf-!S^E4^ zLeqwow`R2=$IkbFC`p41pHcm8vIM)q$o=>m`x#bq146;UIH{m((ot16yH=pTf6zjH zHqg&r4IU~ry{lkiJXEB_VKS%-ei`UhC#7)jCSO|OM8ETO(=~?1!o-80=%mpKkSHDS z|EA)Ple_0kF^niqEIh%Sq52`T8VSfpg!Ed;-h(!H*7Hp0rTQ@?3ryFl7mln zYKYtRKBxtrMDrVgX3;C91Fyw=r$xp?aThooDIyr*cX5r=uP!}U7ipQ1p&}zAgI%iP zcL}3YkvCm=856oCXzNyy>9-hF0JxF zEu!_2+IwqUC4}vo{`uR(P0$ciAkxblZeUtdI)89^ZF(zA!yzIf{!(A3{}Jd7akR@Y z6j^UWMAhqi;-N^ftPskBrV;{Hoprq)9cVls1UtDq#W;$kJAEgvyLQ}3*XMGT#6|jL z>AVl6*7UT>c{%FJ$(4>r(|5QWwqsj&sB~g^t;OH+a|>45%+oM4zi|;Fw4$N=?-eNx z{KID!W8+iw!rU6@N=+gjB{#H;prB9hdWR&5oa@ijkiLlN_+%O8922_X-~6pEKglYa zy(#G#+qc~VDiT~npXxh9s|x>>z8-BvDBF>|8NI#}XA(VSPRAn29z zOlbe-6R!Bk;ki%dVk{=EsZ<#HtABX)$m-ref39ldq{v0dVUAoX=E4uKcbl@|k&!nt z7p2W#eS(}mCZs)Ydv&z-W#NHv~Gz$Y9XYU<@xaigHYtaSGunD+1Y^ALf= zp`g7KI0+}P-Xb+Q>@*=lqzDk@y19EIcoSJlx#XB*z$}d($YyHhW&vg2ThR^#$=$9v zCe^W`NIv_q%%0V}71zA9^OH)))L4Ee)vH?qi!o`*F_Ph^-Wa+Re_Eu|oI+S0K+^B7 zpc4XF{m*+-uliVtF&;@vg~y~u3%DU6AX=)(Z1QI@UKN}hd0!KHM@1Nv9Bh^_1`2dz znFx~mG1%KmZdn^bgRv=(O@)~miTvq10@2l$-D-#(_m1P&vfVAhEa4U*(pfg(d5<61?r_X#T&LZ zwKC0Nv=k(cysE$&GBzD-x4>Rr(~+|%y0W#E{K$QuZ1@t#A3EM&3EM|LL~2)@u5%h1 z>mx}7I{gTZ4H8^vd2E)#LENpyB4jYvQhy?9sOnB`<0d}AuG zKDbK2`K-vX#wyCu<-(ez~wv^wyKq|uj!Xobh>4?X*<`TD)Wr(aInC=nD zrx)*+z$V6FGDa66FHhOd`BkiAxT=W)laJKj%$V})HJsNYSsQ%@>*Ammn`)GP6++9` z+$fRU&>U-rJ_YM~0iuvWi>XFtJFt2UY>kX&IRo(ib0ma83lOh&moE{zpWFrRor2qT z`43_bqgoFQ^A-in9|G+}ihXI;x~o}=N0t2;BfFtu#D{@_*YuZ@B>*8#9TCZcwGc#@ zSF4%!;6OdV$wfUp?+I0UM|_wFNN9*gO+#>~f{8`GW4_lZq9F%E)v5tOPl>R(77 z2Rcjv@m?IE*`x39`a}HjVk_~?bp=FNdtl{!=XiED}C!y{O3?wwEp8I5AT-}j8 z18;@RX|;xS@E^wwaU3fHaZkgV-`BFyE9*W+qFPGz@)N zkAnzUYlA}|k4W+EsNd0(O$hr0NqLv2!7WvoL9@dd&hTHm1It_#jDtj^!71SKfx}Hk zt*rU>i`&hg^YL2>R|2I0kSzJ?mDNWP3$+MY`9fhkZ|}7k=}OQ}ts-;HUml{)m8r3C zk$~sB!eEtIZH{V{EW$_}Y_CL&@vYnyho*I?o;>2o$~(>NzEgf{lWX}xD{M^v&w6?F zSTNn@#$3$Av%ct3i{%kJ#O72}8z&dJ$alxYDFWe`LK`IRdHMT?Er8{D3FOyV%Gq=j z0>l)EkSV6zG~^mdT&RY_cBAVN=KU`hw|J{ax?Y|bz%$kXK<@M)nSDjoy$SkN{qQ57 z#Q}kqmBpx?H|pLV>);1FUqG>xoS1l?I=jTD{m~ts(&X=-@@mbaU@mZ!P!(uXX(wYY zPnNaEIY#JAO?FLcw^yTBtad(&;&_n;1Y5lkY%GF9dugrz?JNIkxABao0C@Tb(JXD0 zf{WuWg7Q7xDXM*0>w@DBDLZlHEnCpOyG>Zn2H1x=xj^JF(w!6)xa!1C@@OfG_tTQi{V48G@bLc#knH%_34}*vK@w{sT$@2N8CVL;jmMB}|(f-0Y z-t=QfuJF$}bc|95QLdefsB3pk6?@D$@JLCpeF2-pB70659Lt#oGIRQAJL(j36gtrr_J0 z8|~qg|D+*btEnNm>Tf7mVeb|U_~DoodZ9sdVe~B##gO1hAS*jW(Q29N(Q|B~!jvk{ zi_3>R@Bh!8h$;!LF3fVr7_>P2u{~Z1J)N9kfMBChHz$3So`w~!Pyt~xr-=v=!KS&( z+&m%teUTZid*ltxyz4qzG@86Z(PJZ`%@OqUrAB?BFR$HhIl6F3r*FR0qMox25pE%t zj`ZI8v`_byg|pbkZ`;$u^;|-Rryy4K2Q)%XlW?vLe3aA$KpvPur^tO!OX=g|b6Khe zMQP%36*o!s5%&|{c1vO+B8|?pi_^}4djrZqK4uG#8B*qC{N0Q4AEF_l;>vzoplWID zy^;;h2?3Ctcl^pwS%ny}(-fJ(@IIp4@A0C;;LY&Fs*|F+an8uY4SPG78$>=?m3?nD zgt_P_W<|SaCf8zOik6kV{tJ91;^NlATeI7P7GT4EbU)MCa>dR?dtCNg{{c(+7)eE+ z7RV-PAZu$cSyta4$tQ^hJMplwBMh<_*1*&O*_Y}!zP=AdzAIZV*pYSaRjjHxEd^R- z*J>JZc277MEj;d?2@i)tCJU*NP(@RKwZ^-yFF#EBxe`qZP?bfS$%O2im7D=7;hOfZMhK@s9@Cm|PwNy1bhX>2zQ zy`&0$!6!15UakLu-J`Sz1_bOjuUq44JN?eB4f-)n0Thwt)weI*%l-Ytor%6+mIQav z!M@ad%fFWsd%(O$cIY6A2?hb@)k-Z%bLBL8Zj3r&X2~cDns+X|eJ{sH$TIxpEvc(( zT&((>hciDr`*}OLAaHVzv%D8z)hs$gSH@}Xqw97UPkk@ub(rYMxB^2g z2txy@kk))(CXxA<5q>k6IM>=yd+NxJ$Xg$j3a;rQ(&fbh0ngnj^9yBzuL@c~~?Nqoo_3eK$F0Xa4p zt*1M&v*U{jEGE0#JOly;Szrc*tZ-5JW&qGx_rR{}{b;UyKPR_P$x12CS7$fmaa?&$ zjvS`z^q~><)C(|c|hNX77iwAq47svu2 z3zZpH_sr5~gB~Z)rCBYLak@&E!BPPPn{#o+g(2dpR^`&-vD3u_qf0!My`CTY(4Qn2 zEjYMWw{MsxaF!^`I*%=bjxRlMD#+NYqndEI5A9t=|A}b9(3Jtl?@{R*MhS1RS1UgX z9Pb=g%L*Q27if^Ov$y#%-W}vz|58rK*#z_uGBKl-Hrs7xhpr`tUFuefNIu0#%*@R4 zrBXT-*|STKOy=gs29UlNg=LFM%Y9t>m}f%I6h?uyjl>K(cO{XW z<9T$*8aUxpTkYGejCK_lOteZH_qu!dL%;m`BdM3VBp0biOUTclJVihaK8= zC%cS<1mCeQi|n8fOMwXCnDktzSRseaesu4GgXwgnBEtD=9GabWMyN36p@5q2IuS1j zV6{|GiO`ku0}{sl33iEqgnMMZ5qBasW|irTZeeuAcO9VzSby`=xal_n- z$cy8V3TqC#B`u7BOA@YuO#^-~i_OeF#EjCb$U>won&sKLBG;?ccRAZ_EA}8J+&ek| zVq}}TdeN9L;kB*4urcJ>Xegk5ifM-J|#YoU_(>pY{8TwOHs} zv#-7Pw>}ZFXd>Jwp|FiBR3Uz~=wo$2ryLEbVO|ueKJh6s8tw)fooq_rRo}P*A=QeB z-7;%{YNT$O_qeg?G^}7;uB!;P1_~N6{=Vx;6CPPdm2N}B#^=T|v0UFxOhO_nc_rRB zu4gEG`8SLLbb?B9aU47Z_dT-qae`(M3}V>M6jWh7__5&T5t#(Lc|Yh`zSV~|`jR7{ zrbe(x>k4fl9QUl><A&Q$2>(Z@ zQW6D{A>^e)Kz-=Zi*q}JH44Ni9@sK;Im92@PW-1_VvMlX)A@QJkO{O?iU|4!*C;c4Wu z$bUrH0u~`V^NDN(;+YRIeYA|p1?|=Urm_zm?;3sbCNjnHbOyKO6i9P`7^0?T!nZeb z%6-Wk>_DuBw->kYNp|uo>qIJ^*pNvLbK`!45oilZH}l&3H#FTM4M?Fx32o~B9TlEJ zz8cp*k@ppq*ZFEdcPZxqE^xlaq6pAKliK`os{>k%8M0UM#5uvS{)_^ApvC;~DKn?b z_D^_cCMC1pwg3CVn*^uz;rrK@vu{-cLW?FcZg;emHk5?I%Oe5o zEDoaT+uz`@>Q9Qucrr%tUycb-xI4ELA3*9_`zHhTuSYWB)Mw1?dJ+ep ze@#`c)ARCbO;^8SNA}4@_+~w0p!|-FMMDECWYacj=am=-$CIsJ#dOF%O3;a`1ZwdI zVo#c8YV@1tYI>tk%0WBjxcSaF5zAtjNd4c6_CLk$zxRWrFL*^Oh3)^DU$(>|!8d#9 z8b_R3;gdvg`sv}5T)hQm+{V2IBg!4OY_M(1K?jDs6hh1laz;Q!m)hGHQSD3OV7KT} zOSp(6Qh_zy@LW`GIxa5Kkn$}`)mFKDfu!Vk{rjo^`=El~ffNY9PdvHJBL6MHI#679 z=a*HyQ#qX0*yC0jujn8B?a!Vqczyqq&(-}#1Nj_wdGT|n9YW@K(1Dn#jt4AV#j4lZ zt4EyAdm|DHEn6p429ij+o9>Kl_g&LLzhbJE^yhy?4K6Z)))*CVwiIPP4AzWqEy($nAWJ%%W@y-?Fix0q+pr)Alo`|v99}$Bgd6*?BEgcB&6-}YP zUQpMPk4Y z`X!y0kMI`u1E?S_6>Y&TCK)K-mt_9k|jKXg_%|_)d*c$Rk z@8V(|wq4q+w5ge&=hW>wTCBn(boq(SYQg8U_ml85D;Q2dH+sIVG#^jp$mgm@B?&qe|31qw z0q1ynr&ErkT$VKh=P#>m=3&v-huu_;9lyhrn&-vxtd6u+rzg zURhE=erCBrI?DY_3=qh^47?Z9ZMr!XnSu@K2o=9!75YJ^lKN*|{_jKlyFl=zqo+a~ zn`ffZ>L2-cg}6{)EJ$&bx4ib@ph%MhP#g3Muts^H2R}MoIWLj#Aj6_vk!QMVXAY5- z&H*K!BhZ%AEV0oq(y4me@W`~xyV^U%yUwy`XSPaf-0vd)cxPN2N8+n|9@|dc|8s>x zC2{b$kYsTJD!c!@us`oDXOX(hdg42eLmwY0Kg{R?(7FJ>#3VB%ET*t3etu33M4A}T zl2sD^8Kt3-Ltf`Nc}yU!mRBwQPICd;)L)iOC2 zJoD1uh<#U@8E4N=y=hts7#sb6zC9=b*i0S4J^26gmy%L)i_55yhCPu&N8-u5^IgY) zWyI1=<@PmWsxXDmdiqc21jrh=Nxf;RV#S8+)bERHo}Eu?4qdVT`edw%hC{j+&VSUf zFkb?O)6wbGieM~DE=7y|tDN?K-p7AgEao2&62y;^ptF$iKkqr1=Agf{x$oyDuhowq zcu4n_0Q1ka*MMI_duZbq5ZCy`dA0xDWHQ%v5UNNL03->NPd;ns>7JEne(?4n<#PWt zU{a%(Tx!Sw(u5?CSqP1)?pnk?5w!FAFHiBm-<+uclDz+9bVw#C{EGN<6eMXRO_vJ> zd0ek$Nsn3u^~+&S7bo8r;Hae0A|DaX9k~}mU_xb;?Q_b4qNqnO7SRG&hz#h-9J?V6 zFKMhA<4A(SVv}&09-oRz+6-YtkCdvZt$WaCo>Wx)zgI{RzCzTEgWglgjWDa?;?aK| z>w+L4KfCy#K^!ZElxi?pHC>>e%I{h?M(}Is@kxXDx7SmKIK|Forp4gYYS1kD|@07Lgvzh$4|1hYLs!Q1X zIe)#k{Ci`XLM#Q5`0siSh%JBd{=JTvJ0Pi{&CurSftQyiX&TsHLjGB_00o56c9Eb^ zFq1i2y`u7sYrehgeaX=zFt&A8myW#pX6X);L-F z*Wa5dCk}oHrBB<6YeOY@pr&K?fH@5p7rFohdaKG8a*g{Uofb}C$`bQZj(+ec zK_hAP&wnXdf;U;U{Va{or4EZs$biVN?y2w1iSBT}4BqCClIY_t-?|KUX$qF#CuWR? zGzYML&i?ONg@KBipz~d{;=yk!3V4N0JB?@a@d;}i!uxhWs=;;uZpL1@>M*7%(A(f~ zv=Sq-7YD>Ap4fh zCvif^@~j|A>%BLZ?ca;@an_c!`SG4Z9p9VTo_JSB?Km-;e>YGtHA1;PxLzF>1JIQL zXI@5gGT$9~4)g?9!CQ2)UUeUR_Tb;dfO-ti9S9t*W_j)5jrTnS~pA!jrRq=AsT#g*oK>=Qs)+k6++AKs}4xZ zuYSsnnWo#PYB->EM>iL3`GS;J`+dRp8IHvDf!OHUN?`WvK{u7(3Vmdh*K?5LIAl>m zA~YIb-(N>u>M!N*nT=h?q3;E|#g9#wTio(KyBC>P|NQ$oK z;zYmRRKJcF-wI8!4}WpE15~{Pma*qOWg7dv z*CCN0yYO{TwVrAyI^LWzde0|1#qud}ZoVyUEb(*RXu z4IyCh?gdT-^KmRmXwk*JJk9KPd$-DX4{cVTx1E2PbV9j%`nGZ5=hByb4g&k}I>MD@ za2u?E1C#=^Z~6h{Zz~41wy}IV^aJ{D$;0ylAVj$PArh`Ae3a+X$5Pm1m14vQ6akY& z8h&KBM{+6QB8`lvrv0$X^TdMXX53r06P~f&|9%kF9C2In)?6;7r1Qb*OZ}vDjxUXE zIvh2xnNlM51+Kgn`WFOdJVNQp+z-ul+hZt1p3_O7e3`3pu;|9>!bBl6>2>y@Wb1EY z!bRL=1uuiLpf!W1(GO=_;QPXffSmZ|rO_LZ3O`QelbgS@4+P@f2EIpYWI)$G2_$`R z%wGNAGKkSxGX+ye4%GhUi$EjCbs2#O+Kc~{9q=tvzV7fmq~c;-uBEnHsE)>r;C7!> zys%%goLccP_FTY>4qzgXHkVvds#@v1<9yTi#SuJ3vA}(!^z#LWx-QhdZ)fS#XP8}z zb$5Pmj4lNBPA8zuaS->Ff(5_3L67&3<*r8OOkR;;JgZIPx_x*$AP2cfR4zYDr_?bw zUVeO0pTD?O)qHdMY~nE%F0~Y)Yim974J4F$1dE%?rsn2!Cf|CZq{6ZnpZIwtkl_fS zX!`aoo0~~fB75Qn4Po+9z(oSttNGTU*Z!2wl!oj2<)jBCbzGL;kmyUjn8=Jr*2!Ou z>U9n()Tf+W8o}O9lkjVj6gO>i9^meV*l0GeqpSiwzBnPLHOO9-VteRVj#QB7#1vWZ zJysgl>+;d^w^?x6fzzoM6`m)rUuZ;%9D!APp;EZIK@U&T##QiQfd-{Zy73pC;yz{M zXUUU?k2A`#jGKKMBctWX97tV9m6&QhQx2DM==2=aGKIC*2GiG<26=mfz42asjPR-k zI{|jMyC(hcOn*m4lP}ED&SGZ!%SJuiNkDm7xWSS5Jui^ESr{V}Y<=YxbM*3$Ph2fqaB5`T1J9 z-K<`Fs>AfFLb;QJxOY-XiJ<(fuRp%?y;t4qr#9>|0PjN_@6A2qglkM%&DJ;!?b0iU z$OfMV41(+{*r_b&8}TbcCHj5K0(K2^lUK840ZHu7y2!d8_NA6ndG5~B@JhUAXZ~nk zH3!-{xIs6G`d?SA{sdrg`Ihl_5e=f!+T4`1Uy4h2PKTvfv>8Qs<0^<<}o3%-;nsu2c!l0K+RZxVYlO-yefxAy=;wYBZ-s%Zw;dd zs28QYv2h|s_8Sshj{3?iRA}*8LZ#0eM8`Rjp*jj9^t!#}7?Gh(7U!lVKgM|{XRZzN zx9)W`$Mo?q=`+=EE)=70TOGgJUw(uAn9H$7z*K|^pQ&d`T-qJ;EqBMd3EMdff&lss zh}qPx^VuC=k`VDISg84*=8|d5#TJawISC){?I7;}!M;uZ&pO3h$BzfHAODF1%r+20 zxgzqSvB&%*HnJ_w(#$CVj1-!aeO8Olc~N^i&M*l^>3NWtHQ-uSg_Cf{kj!W7nz`T1 zDmqsny3fj#rZQldi4T`5tAKjjjo-~O)m;w^4JqIw2*mmwXpAxwCVq|Hw-@UinDb!f z-lq`XQTZa%C0W8t0FO?reDpv$lt)S@vp%3ZNf{?T1!y1+2X7m7e3r zAnXUko(%s!r(b?ua5migGFKwjIi{KS#c({BXZP>aQuX6X+-_VZp`EBDG&OoEMm{f8 z>_t}gY_{{;g{_gJ3i(iBc--GDo%~st?FlqK=9YB#tru`E0y^)2+{wmt_kM)0LyJG6 zt!NFfhnPdUT8iX!jWilO%Z(Lxq=|5kX`11T5&&=BZM-3%mUJJRl*clh4DdPbZrQ9t z@21>`roKwX2rh-&^xnMrXk^wVFJXap`0WM-l7wvd0x=tch!h#^cYBm=n;QsAy{ou) z1fpQgA(w$*Y}sZ0r2(i2R`g;CwLW+YDXe(BIN;K+-Ez{u-qf5r*>$UM7$XvDbV3KP z$k)oB6Nc_g{E%Uv4Y#wk>N#>HG!d=EH#6)euT*!hez~RZ-I+YoeF%%7(um_tzO(`w ziEZdot$R$8E0(((RNE26zH=@UwPlvK7x$b}%c>|`Of%hQ-h3D8lvt>uf=e9E#QBro z0lxX8MYfyiUlhT^7_JytzZa(C5y*H6?gTIgbB)ZncwIy3I%y{F z-y_Y`N?->rW$UVYtBwi z$ls$*^o~_`XbvPzb!BFG#&o9jOV~*HnuSj?S3pLd@=*J8O)u3~O-A>mR{9jBG>k+M zMQrAQRKDMV4L~&0i#e0eCy&l%3dmi~ig~r75({F|5h~bJwAwa;yf@P^>K?gr`TIxK z!sf_CeQ=TQNQQkTC&{mYY*Ic&!$4q<1ITZ>?zU@QQVe6Da}vX4jM5*=e@-zX{!U|d z=r4FN7I*p7%6pTMK#a*_1VfOl?&&)W-Q^`hx?dMwdg&(6M zRy@Lpk?~>3<1xp6W!L&YmhXj?Nima8=5>$ez$JDn3jDgv7emQx?R_XBMTmOYZhz4s z`F!ij2+lhN`DpE6KvCAo3Xo6Qgjo?F1!N$k;naf6IRDjHK}mC`2(AxPq#e;DGb%^j z25kyQyhM};T(8!PUh$I(eYRy@r{i&g3Woz30W$%~FbM%op8ph(uuO=yjE~|;j8}m7 zzZlehj{;^CF}}r*GCUrqadQ1i*G#Mj!qQFiHA+J}Gb&GnKRn@iJ3|-y^zLp?WATn- zMGl^Sx(0~~-mQBHualknYF+u>-1To>-_2Qb#_DO=pHW|zG2V~|B5#YKFo>sP#9;t2 zy5A)iMvvB=cQ<%ow`D{1r_Dw|kEI3zB#8x)#2fAA3Qtit@<}s-sER~u*SbJ z=)oB)e)+Qc0<8l&9i*`OrKGMe{t>mUKdBdH9Czv&H)lYPhPvEDYW(zz8z*|p1g}P} z-&l?wBlB&dw~WGj=`6mEcg^eqGSsgiTvD}b@2x95%>3u>Z6bWpWqWym5RuzdBMGET1J&L_tX$EPV}Hz2&;$6TDxW6Ht+5=W zdC!W}R*~je2fm&MkR$v|=kU^i@!Ml+8t1YP-Ca~)b>I#_g1*hc?xWb)+|Yl z=4*LvPL~IfJGf(amklM!kDiTur*k(tI7_LKwfsFGFLpz2n@;oTBE*-h6ZxhR!-q2+ z#jw!Ck{feGDuhQJzid;j2}<+R3u=kMj{(73VG=Yg?g>+3FlNv@zuLE+*VFkNhThnP zXD3lp%lH_5x%+5XV&72vYAo+6qZ}h+NbJn85c&hAVJ`VT2qkhZf9F;0?VgACAH zAbd5sVM1#c8)l1IkTG zFI0v%r!|iJp&lT+enB_RD`7TQ4U!%AA=JFYKQCaU`%BAHYKJk zpPk4cd0(+L4l1R7FT^bhjSmmJniTylG+yef^sS`kyZlRZB%w!GGHzqH|7rM=#voj3 ziT5C)lP|`&TVj#T{Otd(LI`6T;eN-)Wh!GA=(_?^+@a)ckUs8Xo&F%R=S13 zG`ESC9%vitrG0ap02;Fm&t>BiV~^E$F%ZNL2y+-zS)CBnCCG`6W`RWWqR{;3AEm4p z1V{`k7=4}RxWhdgOkBoKg?$wodudsE|qc`b6l8`1dU*sxe<8_N>ni7*S*?Eq-IcyxrpM9TN`%XT(eiFXwq~4Pr z!M}pRzmjylsHQMOBMC|){%xK_hu}e}21}HgXr6tr0&Wh=m6R0(piKkzBAZ@~-YxIT zPu_elN)-I3H~C@KR8HSAM(V?6ARHzoJCr&;9&@Hd!)!K(fk8|Z5{Q9y4!E==H++Ze zLDCE4YbV`Q(rr`^rLz@CV<*TV_+~y#mZ&|5N&Cd%h=xJ*c&^#k=J%8l*l=N*)Tq+_ zGTeClr|JSp2+XVy;)J3=TGUv^>*_C0i`d!~npnx2=9w$k2AuK|*%xfyjZJ@pDKf3{ zR^8L#{HLen9V%%%5yO{Ki-K{%6_C?Qf;}aL%KDHW6`FOFNX3VZ;WyqFM@}6r?QhzS zGRhFRjxKQ_mEFz*#SMefP8mY*squ@ytXV7k+wcNQ5F`1d>!~v|?jF~BOoHP^_fYfb zSX;V66i9=iG**iUlki#&CF(~6E@N?`zQrE zYn45?x2_*&0uTaFwmTjj%X+^Qp<3~C=VjUY&ig;x;DQ1SEmqD1 zUY>B4K}>)37iiPJnyag#lav&NV8|lz*SDcKBDTq@F)5mD{(Rp_RXCrGV@)m|N2ea8 zdZJgVhwFgjfW*(HBlXpVAqfZasCbAUE zZ^m3nn~N=#BTft+$3v%o`jAF?h?^m$sf=ChS8}&VpVsd;MNYbHeKcYx^q|adQ{ik} zX%K{d3~WlYhO$HZFg!ol3*4TCsos+&L`4lmUtI){4vOUa?mH35x?HiAzAp@=^$rxs z&OrW}2xOF}Th2Ys%^t1n`1-6sWA%9KH|+JVd-3%zr!a=;I-Xp#X$8W&P%+{aM7{rZ z#IOPkY2u=)=;ldi^<|dKpsh<9Ax>+2QByXwviLpMdI~(v(!kRu^AO zu)RUu$~#gg|FFG;?B97v2t`0fRMAM6Pp8&Nn|o?c^dc%!rhpmOwIy;mZZMNv8YseKn=tUqnwN|D;xj;LjKx!o7uTg1{E!>L5n&|+NOsoWVs!cCsd^H%#smC} z7~0sYg+6oR5C^o12Q<8si#fRY5+Sql3lZAV^gL)Di-Ga(@8VH3QO)?vzBO!@)RSvq z<15t3bt`Ez%084R9H)zisr+)8*GNOgO&X$@R;sPAvOFk@hoinOJeTE3#a~A$h);3c zTplMeMnA~=jFDXW@5oAun$)^m5yPAMXKggTL2beIu$~zvDQ-E3_DCJiM8t}N^q3<( zg(ap0x5P-@6|D5y5Xi3|yr%@~iZ7l|rACb-Y505((Tpnbs%X9g=uf!{4&``+} ze7>SSMm<7q^9T*Og(Tl=MQkS$hq4|fKR)NeGKQ>1`3jSm(q}-yLtv^F? zc=c5H4dakl;#2eN);gmv({V`q6y$!;Ak6Ju?~OHxKKSXd&VN=S1x#*O_R=V z=YYA;{#iG1K5HV(wfLFxstj%~t@^6e$r49`_&YhS`PX_$qq>7>yxpA^^o(>qA}im@ ze#kozCrCF3w%e*fp4uk7!(e^O(-kOCPC=j?$X6Es&NfJp zJOUA{&*14|NR6Z$5(^?Sb`PP=wG1>>%*(aP9}&di>9%#fRv~*xzq9c1 z&zpb-F)<~fxon;X&IEWYHh1mNs0d?JJA6=NF+?U|WW~`)1Nq{K&G$cc{qIwWYN&Hg zlN9Z-6lYl3{%KiJ!iR98Nb_$Wp_tQ@0g}`wrJujF+4@sW8MmG%)$9a+3fBc5i#z$8n_|*F9(*M^K&1Fb6>U0hB>#i zk;FpFPVcUd)ZjiN)9+ot&;f&rXw!yTGL#xvK#)?rVCU4@# zM5-{}s0p5Xt(wT-@B@Da z>mX1=`C`2QjzkNTxeT&nWcutmc0Uv3nxd39`ze3%FZv`|KK;t)(e*}EuYbMlJ*_GH z&CSPnNqO(q4KZX4h&yHyqjKQoW(sd(38~n$H+WXNlz?fp5qT}^ zn-lx76yvm6j~^QQU?1|@1p$xt7m`%e)iHTt`Q z1oMT>^b@xd9AJ1%6^+ zaHW$XKhep20YFzQ7!|>pWDfzzx{F~n1K1%pmYO*jlUFTxm_YMXn|AZU4$n{~N6ewxdzZ+{x zv{#9G5gtR6@r5U#JTN+(Ys7(L$C!5F0pH8Tu0{rxHPZtYzGiCwD8I<6e{MiJYNTMWo{I=TY{u)h>LT__(|!>&eWLL+waSuX*!&_ zOiIffj4sy|OGTwoy6A`Yks(mZ>>;W}Cm7nwaWr2$YAh$3dW2E9rgEuCJAR(IxAyAq z0qntr(7&ikp)z>w!iNGQMbhhr8=`Rp2RCooFm9d@JQ0+doK%txck={&tr~^B#xrB$ zcDD0tFs`v2`6y@GwwZlwmKmiR0yp{w_Bw122*&S3F_`oUYc$p~)XA<21#jJf_`BhK zd;L=|x4itaJmg^3g>qj>ml;Pl^@ba~XL6dd7N>=~s25eYF~p}!k&mp!tWWRyz;Kp9 z*VCAaL->wd=(CRMdOV{-+WK#q2le=lsi#V&tCBo}=6;SjM^% zfDHYv*!80na)cC$J^vg2)LWpR^eYRj@s?fG9V=b2*538Ft>HpY+}a#aQMdbn4`toS z!>rq&KqD_1Glu_ zmwQX-;Dx-Q0YuI7e>5DvM->VbN*KD5CYYA{d#p*28Pp4+fEoD^;aZ`yZhE04Ts1;7Wy zk=PBXC>0|iF3=Am)bGGhON7PB0FLH}^G5N#Sk+BC9AP6Bv#;o7@HUQRu!8)yD8jy9!(f7Uus@5UTU|wLotx7#JL%i+(zVx^BZ*Zge5y# z1}$SL#SA}DUph5lNii-{qJ)5Z~1s3mh4ZFLEDMQEvs{nC%pRO`}iv*0o=BHOi0 zO4IcqWH*qF5xnLSy4&HUKr}xn!-MrESiv?&t%m42-apzltcfys6x;LVp+W6GXe-iS ze|*~RDAMHyl#2L;FS?~{OXhzlPa@sJ`cOkZ0bo zOubtaLY5-N@2!{ry#4axPpKD23?UqhlrDY@_F{N60+}gXp`4D)bnYYfbZtyGGNZ<= z`&PNrY-S*K0o10!LK@Zr<4-$*Vx2aEEHh#3e zaYQ{*>^y_RIm#MZ6NEOpGL&8bwe!`AevU*L93lGqozJpDC7WasSOpEy1onxAY$G8%S@&F3%X@+s2orricrPXzIR5S7%sOh@u(+*-9da??Pbb#e$&~QkMUa&Ue%1G zW_gN9P?4VXB?+n5xok4S8|gVWps?6PUN9|CF-I#9(Q4sd_s z%?rvYTeE0Ku?uUhC9)8|;0LBb=Xxd0CXT%fL+1C}80ML%Yu^9U^UEVfgxDXqlh~S} zSS9#DC1YDsV?T5P1G3ED6kTpTz}k>aV9q&__qEsMW?|wyv-6y?zoZ|Y64zc!BBAFo z91a9?4CiYW?KAjAXC-+n2 z`zq9pyTt^O>EOsRiv}d50Sz|iG%WmOzBHmAdP9o^1gEcots{lgqj@=`yeNPYtHs?L zD{nFz&3EX8EujY9pQrppe1~b%RvwX@;?jpnzQleM@xnN+Fw1L%q1)iIP}M;}5T=C>COaR7zM{bk>>^~v=v7*geR z3j3F%uwsawno|7!zVaBAD2`)tG2mLpBZ>f3-}mkYSAXlK6qkbApes6?9zZe2@eH=I zodb_|e;FC@i~RB$W;peyp7)re#9f0)8^23`b>qZg7IooX=K%cWA}eP{D!DH}_LlDg zhyUDc+Y+`h>uWvgUR1bkW3_WXnj}WS)l4z8kGXDtrkmW;o%PZDcKNwv;OtilCoLaQ zZ1a(x{i4^uJ`W+&ST^eghOuYm&c_|6S#%s3e)Zn2_v}* z{YGwc@6;s%jLm>G^pFf{76bRCB-0QRCw5foRnB(KlO4ps?l zt&pZvc8Qzo#KIgRwUOQ~8-Z67pvTZdQoa?xcXiwtM*(|#0JY)FBZjzokFrNGK=DR@ zKS-$lAlQmeXEaW-*~P1844msT(ccA$c6R>;^tPPebYk1{RXk_QsK(?!C}8i_?|;;~ za@EXtoR6~$JgM4;17OOaiVNiJJbC_a@ko6~ zgD~Q|H(NVIM?;nstl8!TH6u!3;=fa*Os;nVjC;$2#nzI8y}A1R64@x;V+;~4%lA^K zPE@=|QHQXdY7ln_AD~1bXuLFbDd7J(v&jQ8!hg6B1!~zG-jFJpp3Jo@U5FxHui@nG zaRcSRu_7*VXiQv4WO)2}*i5SJL_r9=1Nk7+kW)?ni1bAID^I8-a2gYG+Ms#2GSJir z*9zh3xoQqVD1UuI44Zzo-viM0O3mV80N!24qv`7h3R;=O;TrpmoN(~DZ=)B0 zUZ`qm)vUh$(+oifcsjt1BsZ!1w={&WDHlowjU;3N80&XPyc~a7%f?kmYyJSV4iF1N{SQKCUP(`X@O7oqlL4z;YdUfbLu#FlXU-jP`*C zWY+^09xQi4#N$e%scr zj59$dsGn*m}E#;!aJ??8rD;&6@X(03`NRy=<<|h1D?n`}m*t zst$o;i)q|@$2+b=T0pi)2k*fE*aM@V_Uvmo{5S+70PvwPv*E_0oj>Sh(dKDl4jKf4 zdqKtU&}nTj1&}uS2K1d8Uav4+Cb|kV)0P2*D;%n8B&ak0J>s9XY^!t& z1d6)tV_=PefK-#eW&yDI1OfP+rwLXn;_;vc8mmRHbg}_>guaT72`4d40kH{-h6z3~ zg|ByazyPJL!2I3U)vk11+Rf8>ul=vWS{$~xMeX8OJBihf`s#OJsjlUw9wz`SKFi=cmTXoKJa7zXbBmLXMffdzgfA~^T}-?B|n?p zZU5RI`81`v*uXuDs;>W@ON>)hkaICvUxrH>OssygA$2GfLwp# zITU2|`ohy_Y}3hrc+_FYy+f>vmLm4NPjBti*tPbrvVUh87m7!D zJe0V*u7pFhhC10^L4Ek$f4&Hu2wG?#y%^(K(?Z{ZfeN{%;^r*Kh1%%b)qCSHIc3bX zj*K;Ng|hJ%K?;Mc?qWM$laKr;m{V}2n{FHCI=zpXM#+~qa$|=SipxHO?JG$ODdT5{ zO;EvZQ_n09+b*Uqx%^BNvb-m(4MKfmo#`oj^86@1FO!|Q4=vbT9vx;U>M*#Aog0nC za}ur3P8_CqfzRD^i@9}DB`fmvG&vgC|CZtyzeKq?yI|}#az#+Yw&%o|#S^s2oOqbB z4Y0Y*WozrRoR?yw8e{Txr4u)sFFCF4*2o`blp5BK`uuu9OL3B>cy{8+m6_b{(ws%Z zH2I3uOkq%MU!!D8z`gmpnh)D$#M!LdeJmb#X*lTY%bmi{fY`SZna2HU3e!~p#_s`# z{h$v3@Ah6e90v4z2h|44>bfKmkYoX2!XmF?=ATo4aUVXRn-F+$!VixV)De)KXU?1# z&WF-xO6Jwc+Gw=?w9@bJiayPQJ1KY=B>uD@_@;nst#3TD-tsVEH7osw{RxX^@$37W z4xTSIXMgj(@F_`uS@bD(^%Xe!BXHt->bKXvpD`n(^r8+E3*e|jP78?)W`@XJ9dr5N z&btBc`84O_jrw!V|X zF-I*An~9RlDMfF#HW&}88DDP-4H&(A`QV0fp#4rv^X6Dz?6q*#FLhKyt>1M8BjDUw>Lvf_CQrrAQ5DSO>eVWdj@LhVTMJZ? z1$1&1SsIdS{{)N+EOL3%BgZkmDBm%TZ zo!>lh^Ln(#y1ImRoZ&Ro>vA9D^bDY~Oa@qfW$aQ$O`>mJu z*oP^(3pXBD{n`x8ccgc<;#8X?I&OXjViT~N&Dz3`RxqRC6Ov^4(u*;L`T~zvUME5l zEb-Q@SFM+q`&a##BBgre9~;1|;}yjjfKLu4dBik1iEW9D?%(F#&ECb_On4YKU#-K5 zHi;@6wX&7Nhw(!4pvgJgEz#ZM5PF&eR@71y>8onwj@HvUXR$fFV=WCcKfiY@H%-P5j4+|6o zMiN9?G)dR`MVf;dyXIa{>9E`v6&MB_5zkg@QzZ7w5vQ4IkE7==LWphWnm&g)pHh ziaPa1S2Cs3sG;wdK~&*MDg*>c1SMIir|%y*WrN0`!hkujmw#t#B;41UbuzwaMrYNf zP-!)H$+_C8yO311-IUY>unTj--S;@o#~Ao=WECz!zUF#wYoe4&%nWUQ4nPcM!bQNC z9se^0*_zGxp;z?T6tEJ*TrHG>OgYqOO8^<66rb7MWOl~bSYzi8!!eQqdnUmMr z`9|rntd4ImyD|}x(I7`q#UDi*=oo0q z<8K4QTa=hG={XyZHI>tob&n<+9txD+<7gOIyoM74Q-HL?%B5H?ukC1FgrW0@To%Xj ze(e{kbwlE~NUX=%@t6lZ=NeGNwO2X}|!Mxd-ks z8aVzfcp4cG0ja0Ns2=W{ji&^SL%ltW_3HuHKx*a#9I@jcsjD_~b=u>lCRDseqW3_6 zTnon@8Le<|0U1j_s0!$T8E;Q@5uvv&z%#&I?Rr7ilR3r6RsX=XZ9)H_SU-{EsNS&F zafvChEY)+n_`4-+rFYLLmGdx%N$gXscpd13CCNX105k;#Mal|x{wKxi1* zYV_x(@xoDY)Io!^%@IH9r8|9i@}Sx~A8)d@OPhx={5at`*P$B+J#?{_Z**A30ot!h zBopvRj2#skQVc=gdQZTgmN@~qrg1(gr`+^C5GIpmP)>pvyDn&G;*jw_hI>H@?bR%w zD$3mLGr`JQg9U;Bv&||Wj1k{)CFhVw(t|v?_;~A=%GP)>YiZNv>uSrWpt$>i=^hr{ zG4BBR%n(rQgd$!fz63;s5@Q0UC(afCn@pGaoe-lx(g7jzvypLqx3Azxd}1=&)c{`n z7NyC|RrU@Cr~s0Xd4ic!cS9zLLBs@1oE7Jo_+Hbm#*GGhfW<6y@>7d0f$Eb4*+`Vu z*Q&Oa@n?1}#`W_6S6wr1ZstMnxLZAA>(tBiI2C$k@ipvcf7%^QmwVegYJjy4DI>DL z`Ou*|o)&JaBh_T8>fA;8LXo63+2L+TWIxFwRt)Y|yqi@e5kZ4MvkoBsaqt2GTu%gE zlbU~026cZtQ`N52=q6~RQNi0y-X%ZY0WvNF|Hp5$3?xV-GJvo36Le^D`es$T`jpS$ z@pOH8887%EAVG*ih@aZ;ew|{8V%pmTXoj}!AIiM^Oe;6vvX;aFtkJVS$qJZiOON=1 zgGZqRw=#5Koh?vJXN0?SzVwYSZdgrzmIq+B8dUAk5@b)AC$5RAG^pM#Gb+n7_Qs=Z z^UW>A(-aoAnYHbL;Q%wA4;Wfqu!26pz$*;X9&?VS2*?*n@xk&QNZIHOy zsgy}S0C!yW{obOQb*$ykE@hdCbjnG&wj5fKb`&LZPm!{{N%vEyJqp+I3;NW6~v^k_t#p8U#c@QcxNc zk?!sW>Fy8^q)VhzKw7#(x}+vud+6&lDqEa;M+ zyVG)S^cQS>Fw9Be@vK35B0^OyrXKog(_yEdAA$9e^6~ev?288#C}R@9Y20va z5R4!ns3^0D7uNyUP4)d2PJxf{>u1XK#ex;|*m5r-^37jnFHDMU?qBRubGcBneo40r zJ300_l_HC($d28zrr*1za+6~eY}BVNQoV$bK^^i2^lP+4-?of~f4&R@DEelgV)W`O_NBzo_&o)JeVn*|aVnIVIBFPjT? zj>tgpp-dxpV*sETm`#*#v-KhKLEMXhd^OTrJV|LD-PV*1p2)i?U| zyy85q?h1R+vE(k}RGVm+2J{db3|o`L7xj6MT9-a-tGW)u$mqZcQ9s7q)j`%QW=wbW z{uVfOYJ7F4)mc3~G<4g)$)Adx9KOEyHoh(Ixw2%m6D#i<3^=NLvTSj{A9Ej+{$&t* zNT#wd{Fz{{>qM29JP;#TuM$@X2D`6aL%9B>N9(rRLHkl-m5B;fwg);v6Qu#|*TjOC zpDI~@xS{lu>NvH4yt!i|cu6&|$>v(nW?4Lm1A~kG9RXhQmj_0VJ5q5f4ZPpr34kDS zzWt8O=UvFg+4M?Jg54l4^vYHlnZMwp>*pz0VQWGKY4%mCzhq#<$P>frO^|EhHm>uz zBwKtf{N3$6=soN$Vqq^gh7$GBvTMx=0R~sPj3>3vkiR7*kWyrPQ)14-jmqu%c&xttV3n5t*C9c*QyF#|OWuUun zUUn7g_63&L8r_P?YcbT%0Y9GPyW-b3vX3|^mCe~K-_}9UUR;S$Z{PE49hi6z7u)dw z1~Fe*`^{)Xwf<$!yX&4ngWK5Kg+=SDsfC6Og^5T0OTEQrq2xsWJZtm)e#Au44sr!kca=cwQDEy!k>Dm@TA!h@ zr_v*iyk>>MC#;`H)oB_=>Z+_{T@D81(b{v(RTTS=N~(wO<-WQqwwzCyMcE%@U4w)q z{IcxKg>wi~h&TqCv8rOo#!t|#e=9#i{o`tBszy*`_F8ec@Da8trSr`}bUhlylFQp4 z{>533l6$Qs``436jIKT{6!M%&^_is0EM?1zY&PDD9C&e8@;Hp$*{b&#-#;6SalhLw zn6fGz$=mNuCfN3VbMIaB(vb9_nB>6v?@>{%*{*L1jTB83-m66RG~(|NYz$3uk7S0Y zp?=t(m{FMeEMg5Ve?G@dV`5PSs2s~48tjcuXF?5&An7U{bob{842I{2(!Rg_jR7KW zK7cX`(L$BG;xj|8r;E7@sMdAa9q->0?8|lWNNZ8j>4tCMQ!~bkIkDSLt1Mo2ibZox z(L`UAO9_R_($G|-1U0Q_!;aBkD6OvN>ZnO<2UmRPXwVMiV^nw*UG+1BuCK#@0aK%& znHT|*{L15+gW5H%q0$xim2CWRyL&r~CG3zK37#fdvw8kQ%eD}AS>=or3vRdH@&j8>Ke+Y7e~WuY)Sfjq!Ux>m0&o2KeZd~uKJxd z+Lr)v{AB_~8og_D$X(5M{}ymM&CgCMzh^)qpl;m?^7Xz=o_mICE^LXZne-{m0><;L zs(anvCd!dEtHE*isyJc)k=+U)7j6EosiqA$eyV-@(rRk)E=)4W1@Lb3l(R(d`c;N$ z7uhaplOZzPNSaNA$6g_7$}D7yw8kQfoGB!R_yE9ICQ;5ZMpLfP|*s~1+oMbq*? zLjHl2He?V?$4H8S&>?LTwv;a!?1PUwbh|-(?dFUhM-Q_opvK9$Fwe!WSah0;dE|MpaC`?mbGpl_+Py z3B5VVVb7lTo6I{(_>8p3!A3@~Y7&pzW6izF;u0gJ)uz&7;oAbew1sWrwgxM8YP_J7 zAr-32YZr-;ONkQa9?$L=t&T^kosb_d(!#E_f<+(l`_Dzd^L!@E=LSx@liG{^t=}V$ zcKn1x;(&-_ObS7Z?h3>8B@bzU5>c3p zsQvT!AAL=3yO&B-E@HX&!LJVP_s#!6Cd4k+2yS;GT_Qml_jdAGuhT=fiHJ>8K(#rG zB{N~mn;CjNB83~6m~RG90Je3R0Sxf25Zaq;{0m-6Sw^9&<~clb3SXNj=lloau)>E@ zzbSES0vXYr2)|cYpx$Fn!Y7{GB4sf!+}5XNPFGp>oiA%foT-0B8Q_6+&4Dz={T@{+ z_+m`lV_B*Y6Y6mBlWl9N0vc%1-avZHYCHPN-e4Jz5bYd7bJ5I%kI$a0+}GlMKM&d{ zOa4tUCC4|n8bUpv|0XbLIaz42zA(M2$TP2SX3W0AOX*IsW)4~(QnffizE`vy{F!&q zkBD|I)fKxuc4%)Ssd$>5A`Rlyw|MZ2(A||{u3T^L8CyG^{4wpgcuQ(CRJ@eXymWC& zA(MiY7ak&x+WDMOGDWk@pKjaxhM);7Y}cnMT^NMxIEaQ?SehmD70Cvjf^uGmtu&cE zvFNXJTqwl_32Qt`0p<6kw+#h7?5m58UeP(Kq<(fDT3C=HjZ)+NEy~z4tNCe57+{^` zr+|c!GEq#TSflxiEDE#Z+pkkMvd3){$omY7ACs3g6OsQ_K|l8HJTFRvrvEHIJ*(6{dc=_0RzW?e$lVc%|*)$Qvc$!4pJ)x7Uh zV(aP_k1o?gL+=6WPex$dn>H#irehe*v;g7;g?e z1vAUN|0-pQ!3L8kTT$CTftd>nYnYS`aspi`G=}&^B<~ivyxaMQ2R(UKQWaNebyrIb#`_uQm(_57W{SKE5_(&be79GI=MLK zfE!C?HFkU1T=cWRRAAl@>$G z`41BPy(`(PkKKgvdxplQq<;cTI>^VkV72Y$^XK{})>ju<5l)dB?8d5tsn0U{P3J|& zi1}2oOTXT3*;c z>~N0A5|9Bs;}xhlA)BUpWVvU_gWltVg$_|u#FKxCKv;ko(B>BLG{lxU78R>oJ3+!9 zMG!$c5QFHU5kJvyH5l{-S(5eno8b>eR~}vEXk+dHAw~p`E~i@W5+a(EwR)ZaUVKF3 z4S*t=EOhV0Z`#rirEA8hhXY7IY-q_G*8ZCrBkA#E#y>pJ(^6{4Ki!0W(^>E z=}tnwkVVaa{s~#DlfaIFtM~lwYWm+fPLQ|>66hRLQeaX3o?tfhwi~t{sCG~?aob<5 zhU0E_A|`Y)0%Oig(uX5G4%3m7SbI9A|vlx3vTw3{ERrHI3|#NWg+Q9^XKau7rZ)tVt7gK&ke3gX+ksALE>K0%K;5N z?u&+fFD6(M)^96U-$iWRxn9Xuo9v!hK4@5(&3z55vwh2{{*$`2nGYx6vp=R)h(Q{k zWh^R{3ypbtz|Xh2(&(GNQ;+cSn`3FG$3qz`wpvdo-~QoqU33^z>>%C1?UdFJCCPk1 zjQ2Ohiwgeo!tJ1>5H^(DlWzqeXNzQtcE4CrUF2hAzdGgx2cr@Xz&LvrssjMa+M9;V zpERyY7Kir*;8yHUQ)`d^B;%UEk}IpsPKalwFq07iJ6XmuIGL0Xqqsrg(_hSlzzA^XL(5?E5YpTj$JZz zI~8t}Du)m~p;znrLBZjz3vOE+EyXJ2_%?Sntzdl-=mXu#(`8Dbnd11es6J?VsTAupfhC;z7x8k&@kA!o4Q=O;lVkjj@yuUTLbV*Dd&lvee|Hr_azA)04MfL?)?h#fHyFW?^u z!UuRdyL@jPc7}9d1o12>VLVkkHvN2dwR|9RpbHZ61c3Yy@H~D&G3!skQS#P~j%A$p zj#9I=tGD#e2?Q@34jvup#~KhLV||dN2nMD>&Y4cnKas9<^Bi{SKBL|*hml3HV2v01o~3E2 zZ#^3=LaoPhAdCrZ~X&YCpkuJnvE2^m?L`aG&BbY$iV*%fn;P?KWsDX z)h>Z1pz`%V5IgTx6%j}3A%s4GTp{=dM0^oT=;v%4aAjS)duYQYRa4$>S1*JduY*7} zNWQ6Eu8P{N%+5wTUtA~NM0XK-;=(Hca21qPdFWPqNdUo{W-1eMO^)NYQ&Dy{jD8Wh zJSf30*M@4xe1fz?Bp+LU7R1|^9$KOA;(JK2;lFNAopU31LXSpA3K1`);l-e0NHK?S z(=+F`j-?L>+NoxW{ADUe^B~n^@p%Rb__5gMYjt}IO3cD$1tmDHdHCvjBZEC3bPk(j zXznunn@YbVSfQ<9z-vfvqsVBz@A_ea5a^6LA8{=4%kLC9ZC%T;+xW+4*Xl}Kcm$c} z3V(EGmH)pck?T`NtU zHn7-n7M}?)H*69+I9;e2mw;l*Z>HvGakM~*Y1|)hXPm^mE`1}41qM_esEs6gE)r#6 zfJH(=1n~dSzN+|Kq+Z(JZE_AJUd=KZs|{v}WpciX&uNp={<6YzW41RBVZlP%1K7jS zS~b+o0`KK$LvF`z*{X@^JNMOn_)NxC;_Zd%G+t?ZS2fElf#$cs-|RntFELO6Qo$$iXZC zRpV5RwV0CMCE??tnf`TfE%NMQY;7a`>FZAYiqOvtm^y*iJviQETE#o_{?XK*R-jXW zw&h)Au_;K2O3K6ZGIK*xZ{XIY{Z`o=0;z6rNjfH;%%(Nd@h5SAmF$@FaDK?2!ivA)|Nz-uc9dpJ?YS!2x_j zkm0A6%Z;?tZ^FMT;m}XMLk>vyxesp*n^B7JCGYDqgQdkTeN7+)hZ}HDZy(fBr9(wM zuh4S7Kz1gKBL4ITYCe_;8dPd|fi`hDjDVy-%cF{ny2fb5wf4B} zT8iD!F8Hl&6K;iXpkIK!D2q=8gziooh&6rwMu1FaiTQ$5g*KV#*8zF>EkL3wY^e}x zKq=%MPH_A%C~TL5&5!SHuN!3#XMKoN0AGmiU5q0oe<=%@ty<)qole}>cQ^-WfS4b~ zNcbKsUqj7Ddh^3p(-rLtJ!8T6^xu7AaogV|2ZE?K{!9ND|!{N2@);2r^o4Mhz_c1V}?^@H}vSQ>4*(N!0sx zeeRWgoR?T|2UWGjaaGn0lG^y3arab~Lt(YZS?d;`4An-X#dhp{$`i9NtVcksNUK^i zjD(BxR0%3^b+*Gan93IuOI1JgSG|tr6s=2msf`EToVba-BGWJfgNy>9>w#a}G`4+Z z3npxl7m9D>Mj@@*QQVp|4ccYqIF^jY(cLwZ<|W!R;^HXchmRmIDsfN9WOF^yWac)@^0dYZNj<-Hd`>IbZR|t{6N|q zf6$j5|7~7xiiXe-I#A%kPRpT5;_+%U+n_^6fMSp3(?zyT2L_?0F@wZPz^JbSgi_r% ze;XY1zX^#fQW@~;2r<<~S$Z_fbRMfUD>D6Vw;Kw=qGF$J6WgyDt0}aQjeq45E0^Sh zSh-3Nqeb!D<-K?XU56xUEPlPbQ5es!VI>+g-&{8qyuRakZy8b zBH}`qC#A^0K1oKkoCCleaTEhlIC+u9SD&IGx6;y3%@xdS-c zVf)6j$)-a>WOzU4@N${6ku}H~<)r~4jQoCxS8mUg!h;kJsTkySTTu@# zThsLBV6%5i{uvKY%ex2o^X0CmwxxZDPXn4-lHt*N#CCW(cCelO@#l2)Pg4M2Lr4=t%g8;{^p;zk2m1#{&Z+ z?uXn8i=P?6C61LA7PFd7IL4n@Q610GKY&T104VG8U3CD_Y1^ps#p(PYvw zO!q2F;%V;z5=m9)S||dR3?YGq7+Ggl9k|;-Jm2HYXLDrD?k;6nYyu?r)tduxr}|!u z!>z{+CHEiwVbJFAaltzQE_IcoS1uNhAVm*-D<=Ysk$cXvw{=6VRsuk~nVz*@{snb@ z+T->cnxLF$njn5XC%=yAuWMDyA|Z$`j8>`A2tUPrJ^Td=SZ$mA#q|}oEay!{xRb_0 z%ax3JG&LjFwu+xqJY8Za750>*Uso<9-ap)ykH6467ym%u@MO5PcR;)P-GeHK>nv7X zs2ae~noZoOZ_f;dqv{pE&z1Qvm1!M1$gl?@H-F|Wjcs-4K8f5P2yyDY^;o7YN-mNy zYuf22!4kZR8(e%EzqHGe&OoVf)>F?zLv8-xB7Aqp2F@FcP~G}{!8M|2>cCPuuYrmmKvYKV{0CkJ0@b_~!3=hoVgoh?}w!k{E1v1l`1dBGC&L6iI?ui?T+3njug zXe)RXA7w5PViVUlusr0=r%v;-y;!asR}|~~{f!T78s7!9!`7vO zclM9<%Sz%o?6Y5{JymdW={q%~UrKmTbOQQ93iiVb_kj3q=BPj210TO+vDgy}04$9R zpY$!HyXcwIZ6x{p5LWTRoFnEa2c-Db(VX*4kSX0~AV+U)xH;95vX?VLE1$gtTv%2Q zKfeS^D>TTmEYzXfxZ8dMj`ab|)wv7ke-0El7Me02TSW=BNzES_v{V`QD5VIzOT~J` ztpgxcFT>n3gFaHb*Ek%^YQL$o;6&B9m>YD?!tA=71BVL` ztF3G83$SD`q02*J6!(c5GCjn{Q>1zOG5N;_Y4k;|t1vJL!Z;zA?2X4>5o4JXvHlox zXXSss-}twNdQX$RnovgMU(3qwX8GwJ;;~gijC_D__g#Cai`R@l3cja7AounF?Xa9$`k@`5mYq>-rSUv~3C5Xg;Zx&7gxyD> z@m%Ib6cGvrDe@W3D2lPGh{Ie)4n za-q?A>2ntIJc=>3ZKXfOlQq03ZiW)}<{)9KohzUvvRA1BmlLxDp?KYeo=+vnII(Tb zixmu1u%#ZdvqcJFrRUApEf%v)KiKT4&E}U)Hfh(@qu|sBPN0VWDI)mMJ}fmm?Z4rF zf3Zn79wJIL3U96i<&h>pJ1Id1v2Ha4(?yx)6P>gN5*NfJXv7hfD%np`(B)~DQ0yt* z2|SuF>kIMmgFE9I_dAF5)pnn!>6NO1Rky~_DKlYnTBuT`m0FHo-jCY4jbC~4afK*w zR~EUl*s^Hyi~^cp?DivG<8IJ3wJM8Vb_MpDwEVCRbX9M5JI&=ozJ))b4uLdX`{M|) ze7pkaDWTN}*OLvwW*LA2o=vC!xZyPRH}03BZQV#-?;ETj>t^Nb%LMx@Yd>a*7VRuU z9eYY59{^|QW;te#>MixpK=BwCp@4Q!?4a*sDkc(Iu#bVQuMuNmNJlXuQV0;`Hqkbg zW>X?!w6N*IpLfY^YJWp?o)}H_(4Qa_tL!CMi!j16rNZl=5kBJG|vYP*o(jG z3aUS$vfXB}maM|{c}en06YyzlEveIt6cH8bVG8d&_q(UE?KD1J|41fYSeQNWRg9~9 z??Ir|TmF!{T^4y=^m0W6p?_K(Ee&T)*(Lgk;b(ZmlIQZd_JI{Ozsh9DQ6Dr1v@1ST zUN=Wkiv6Njz1wzmE2N2_$Y3|k`1O_sCFL*Yd5r_Xg`|x&2K!EL>vxS*Hyx?ilGJ{vsG^^O*HDkrux%K{AwuZB0VMH2qCuEWWF?L=MN;+Lm2vwEriS** z`!XMre1`{GpaZSt`r2cJ09gUhxlR9p9mg2Y=OwtE7nk0@^H5{SD3^qet8)>v;g{#a zt>YnuJjjdwAbP>bw|BGyQK&Ey*+@3lX&MLmoiC^Wg0e7bS%@%@0wYl_jklrx_b?jc zTULhIJQh_~&|L^~V1o%^@J|o1M&ldY`AKjitw(pKxPuo!85%Sw1ht1OQL&|GU+}N` zCHDT}yCP=STCNIv2T#a8-11L?g$PyX920gv>>x>q1H#q9T#&hD#Y6r(9zZ?3e0~KJ z&?O%)-*iR15Ds_+hQ>Bx)2-h3Az}nq0>5LbZ69FC-|Y$av@r3%(oILn3~YJx_bTw4 z80AO2^OSgb04l3xPD7L_86 z6C1OoZ?z78ruDwQju6R`BjWroEj1^k={y6G?o>88AA@vHK$6$p`mv|{?!H?n$Q4tM z=+LT%w5vg?Q?gRDy%>=S^DxyXz}3e9i_v2Yn}2>eWX^?WT+w^d%y5_`lxB}={V-i$ zOZGROawzhh``t+_qr!Vv=RMxfZCiE_-Ge@==Tj3pdy zj!UorepC+SfscX`mMGgIz8tTn1jGW4c-_P;JkwM7h;AxiV; zN_?>IsfwYa6QSN0>ibE?^IpK3oFzCJCOITNgVdf22ro*sGaxAxsal~lj2LJPpV}AF zRMA=)K_Sdwx*uNj^pRJ|$E5ZSmdBFHRIx+(DQF5&fk;QwNI(e3P@Jc9Z=K4E-JK8q zEHnibn-eq0;}fF$;UoRj&W*Lli6wiVT)wzEIn4tbfDJe}J38MEpFI3KA?WD!xhUQZQEvBDr8#(?e@%43klmK^ z!XGUjkF`DDZQj&GQgO(W%_7)P?({aguGa+dO?z&*I&CE)s_ZThU-u@_tM z>T*wE^Z@TFB})w#awV8CXAQ-E2_%T}8tSMxs>-5JC?lyvW|7jj4kU!X)9!j?mOpEg zz^>V3Q*^WU!y(9phos(I&dr%@9Vz>Z*P!Aoh{Bru8@8?G^${Vk^MYMv( z@B3ko`y-YP=)@vTZ4&mrjH^*HA%GoOQTWOElvH~Hd263dxC zJ=muB$-}yG?xsh=b$wsV5`CTY1lARk3(b|jtU(@lA#%R6&f~GvVo%?EeO=7TV>$@v zU#&6N6#V_$YF`w^rH9@B;EUj#2p&qE?Bcrar^rQxx}6t#m2FYRr^1k$mAqF1NnVbm zQzgL|8gW8b6b^)1bbKoOsT}n5IqhyLHpHM~dQ5j$Q?04!vy9)lFLz>8|&&Et_}-_apA zhJXKbnLaqeIjv&6Pb7jp4%c~}me-D8&YsCwVvCQce^q~6KJy_8k^Cmx>rfU&?sGrveWwOc5N1K&NCj-N zFYgLk1D}QHSx=8FhX9sTS`(}Q9eZc^ibB)<)wtm!M>5La;Q?Ur(SXs5l~{Rcr?1&4 z1*w0EK>2>-x6MneA@l1$-RaV!2+(UAN|{ZIGesm3ur>coi^F%Hl!xt3>lYvAI$vyM2+Y1Kz^ROW zX4V$uMLQ|%=g}PAH6*3n_Mz$kZFKWZPsu5)R>59ZFD^BLQg{-2ewxK4Ww3=V)BNO% z^X-S|Fch(AXEos3WS$GpF-s7zI9S45xhI@D(Mu)FRd;&1&gE^U#IP~JUFXr!%iQ=)OW?MI=p$bwQwz} zeKvuS0`)9le^aGyRHDbks!hUQ(-Vw}3X5x~J?OR7b@|6$wM`KIRwTcfW!oB^690u5 zH9`Wc+8BV7HxTOXhJL0x2%zt`zY<$=^n}&r;W(Zic;C;#K745w*%~2tqn*FQ8izY+ zV!&n?F+nw%?sr3}E%x0scc&Vbb-#Gtd?fDAaB9?Amv_m2IUF7Th6_7=WbyJi_RoWM z&~j*z+LzR&xHsOzguP3PvlPK7KR=Xza>MJn!`{{QQW`!zulHh3d1C123bfA32W?U^ z`#*T{3P^gtPW&h?&Q6bY>c{+@e_ zd}Fmq@a}uo);v3;Rc>F3GfPG=*{{Bk_|!D2=<-`L^Ea&M{KUreKLX7zw3f9t1w6#cEMT?n<)Xk#cWFZzr)$J?!^3=nk^-OfLG^4lsceE+ET zK+RLE+jVNmj4CQB+Q>(lHCY&fVK<-jM(RyYk-L0$oNP=IK+mURKssj5Wj!UyaD80gZRtl%?eJUnHE*Hlw_T%pf^j^6uNeU_iXbRYd9ipp<(~MPuW* zamkt7gQ`R|mD^KhE@#rMg|FA8m95V%RO-m~wdK_&;~on&1#)$M+^TYu+yP3I6JLJs zYAwFs04fJ!s8p_Nc;+lg`P{$AkB#~#_cwSNl=k1)=?}Z-ZHg>B2!3RSA3cHx9=lIkDkWW&PdbtHy!3B`|p77Tx8Alk`^GHZ44RS=jpd)IC^q zR)S2oWaUeh!j_w|jj@>1FUZZYTaIP9Jrz zPj@#jzqw{EEiGO(@_t!@rCt`7x40>|W)jqJ*!M|s!EHZ@p0!WPEFU>RxSD(G&*k`b zi~^}fZ!uQLeD0&Wy>CYvWbDDIc!bDi*VR%)tYq^^jqK*0=o0Laj0C}Etv6(?=?s?` zDh14piD=;HJmw;w4F~&})|4#XrY?k%-g4(NW5c)zILq*23?;>!*cJ`q)6MZ%wrBv_2#X7l0}%w+sXLap74?b_m)YxP(b5yQ#!t^ zH;wl9DoPiyrDM+Vm^6NlWJmI0zM_R8fs;{#?RD&B7FTTZHEwU!I@@}@BX^6J|MM!t z+cyO91-_<>s(D~x%Akq-ESGn88d)tu`Cx`C*uv1ijq4UQY#v;T!BWf)S*VQjJCkSq5o2#AbN}JWT0+X5;ZrOXUW(pj8XFb1p zEpGpy*N+=2CgG^*DFPoo8X@2#f8>0$gPj7qdTY0Lfi7Pm`sHn{1?TO-0S7RrPT1>q z9#+sE2>&Mqxq%el%0u!{$7!srL6V*?l4%)*g4 zHcyTHl9*>H+ChgQeLExFihbk&mmH~R$q+{8fb{ZDfIW3)5|LnIqHT;_IgyQV*x8Y+ETfP2GdNmU_3H&j^&EF{?H@PHa1u!Fzs; z0_B!$>vz4b`|}aWi10}1Bs6dxmwX1;e(c%5ssQlr*@DqK5;(jy4U9Lo9Vn z^GRx}^rlCt7#!qq_f@10ghu0&!auZL4qETgVZaI(5_fc=Zn?v0=DysfhDbW>uPP;7 zT}`^AfQZyPK#(DrsktX={XbF4L1PRH-q+3&>kYQ=j_z zQr(}#!H^mwS4&Ai!IIC6%gZvTM6Mp=81nd9#9MSHkQf|t2S%_av{iF5H`6lHC_FcA z8N`j_U8AIHFnjOMkqU02>aXp=YF-_mBi%MHHO#;-F^K-1ANy|LB6QMpRI&c{n~B-j z*L#ryPu83%wh)UX-&aFZoRTQ&DRngNOAUmNcunH zB~?l4=NQosj_!SIc7Q$OxiQ^`zW>&eKq6hj@iBRCl3 zh;3F~_aE$D-uEh4H*@a_e%#-F?e2EA4z2Vu{pB+Z=!c6{DK>i7#Q0fEHhOc+Oz(k( zIw}&Hj}2S~T?Wy}2W`sh@rZ3xvFjO*iEr*2-`6AVUyj7Rp4IqR$f(~kzVU6yEk^+n zCmly$_g3M%9TU=qF7OF!)|sj4fkX%l9y!^F6=( z5uUULn>kVau4SfO`#z&STch~7WBnI*{`yvD&r#}r#W#KdWJ<_@dfM;@0<61rRFy%3+jZZE z7dwT{M;r+q0*5CNA+PaIDGG||M)B)!rHnHeJ_<@opl{Mz6+|MydD5z7f*or6JSbC` zD?|8OoT{d>0P;S3oBQ@lnPp9Q%Cp~Fm8(@BeyXNCaZTM@s9S2VA>>jde-`h1`zJ{l zxX0s9+K@Zp%G7PN5kB1DLu~wizxb9QAc>n0tvmx+{6ifnohQC8{IO3t%j4xo^DRCog&mKFe=@G)ny|^s;%I3k&%l6JE?XsZhqSsQ2N)?>B%5lkwoHlp^BXqVwJ5 z7m{#|)r2G!IrNoKjrnS?n+nU{U;ocF{;w~PKj88K?wD0~|6ZPEx!UIp?r0=hLbXLl z`_g6>OWP7#&}QqO^!lmY;RqhtNO_basu$u|VD)ecH$8$Yvck0YL znv(E5dj1oi@u3xLw=tlda`f|y-S0Jdva4k{dsMH=T$u%Q=~6^Go0AR2>I@F;vxJuy zHmMdf-*kVk{?1d{7tT{Y$Q)h$W2IX5GQ}revEcu6(f_^&pSKS?NhP^Jj8u8?Ci_dBbkR#FC=k55*eyD9cGo`qfx0s-xg~i2vD}SNUCHfCjeT|NY$meGB64;1*btsTJt| zeK+Eym|G)=pJlO=SQA+Lcy~Ks8|8Jq{7ZillkULj((IfCYc5Y3um7Cb)njif^eJuT zmqx4G=~s*SCYgev3$2a8dr7N;{GXPSuh=c$)JCsJp(+5WxJSBT7_$HG^833a>EwOj zLgYRw?)d$^EmvZe)MS?1KL?g>?#WMFzm{m#Y7S+HaZ$g#cm<-G)t?dTncNfx;>WR@ zP12qc_3@%jC)`|=)-nM|ZQ;!{wtJp*0`f1Di?yfkeTfqKURw)Fl#)x-aP55S9I zc5S(InN4PVXqS7Vjo(6h5Pz=6f$)=eC3$)l_VdymO)IGT1J8!-Y8Ua$OqWZy|1r-h3H9ywAsF|n9A z*gs}ov#eoOSc2u7b;Ya*=^XJp8i+i?S!L|1{qmb<<59zRW%bR9W-TjKx*A0~@>CSh zIqU?A+q z^nHnt#HG(CrRyPJ8T3yXOkiOE$9c1FxdDUz`dqU46lx&&|!9SJl`F{qJ4) zU;kUK5dRb@^N56mBz|H<*qirQHZGBZl2WlA9x_7k>G9*oOq;JP^qWb=B|!y1Fk&2h zXA4&3+}{;>K732%>>OwJuD|!Yyqd}S&NI8SJ;4+~^Ka<_t}lW_1jJ|SEI9yc>e+Qf z>wYg+6A~=4ipO-QFKKe*@oMS*yZ&$c_|~4SEuS?NwZf)DrR(x<@@$r(j^CJm z+37zLtZ3~YpHjNgx%a#D^gqM4xSqA7*t_LtVtV5>UA0%cj0cZIC)qYzZ*08EASxy@WuJ)Qp@eR{DIY#UK$)hwV;an0|n3uI3w{)BJKil$*Vv~a` z@apI?k?5>5z~+A5da|aHftmTIEH$Vn^x0!?QE__1G>X@OHLl&&0NM6zy?;E1TKD|+ z0V-z|niM>?&_dn4&p^g~{X-cXNhwAvgO4v=mq9xjP2%jd9lsxCqhCz%=Q^hRv}V&j zx8+e5qPs72_x#?#dnwx!aSr7B#Zm3^-k)kZ64`e?@h~%Z*YQwF<~#Nia~n+?n9Vd56?+y!|Ci_hu>h?* zKMp0=zrh3IgdjsekiT@>oNqBRHyBM?JXsQV(9&p-NiE`}6ZA&P2*jP2_ypkrx(iw> zO_+IKzVru%ldKmL6`OPftGzp&JuOIU1}p-(^D^Bv-xklj=civ?hm#rqhhzEQh={=; z4kzt`*WPfWFBz$3Xl=NQU(~1;TJkI`{Tm@C_!x6N}Wtsr1zwUQ7?M>i3T@`F`R-lZ$AH(ITlvkF`F!|0O!ZA>84E znoB=+&HwKaQHJ-OLr^{lmy&^~FDXG@t)PDv5EFwtTuv4qG9*J+8*wqS@ro8gc{!U1 z`MlS#(e?hSZt@+Y+=<2TRvo6NPoF*{SKA|H5m@dv*}N5QKL5@T{-^XnfK41Op!zO8 z^6$kBS^uU-@=8jHm8;A@!!*p-=IiYXUWdeeQTi#R83ngrLdyeCs!S>>Du!3-jr{M2 zAU)wV8yC+6)EiY$1pYH|a=8d8(P`FH(v~txC-ry%M9LY~`x2jupaj@H)2-hDhh~-a zy+n%ey?u(Pec~fwFCBagl0>EmiZ{)oSkc0z-#9Fqnf}*12nYg=!<=6@CCGm_NkFCe z`U|4<7`)E4v$(5Qt`2$%)Swi*bWvk+8YsXfn zvyrA{x~uF(FpIKe{M)ymKR5)I)&M7Iv-?G&ReMw*lG-Iro7c|o*|z;`)gH`oj_6=c z(0_6!@P**~f0zQVE9ZdBdQR%E{0l~UH4zrPHN@STR`izwgg5?5Zn6eoYEUMe2lOb} z4WH}v5Om%s(Ri<%PHk;%9jAVbD5D*zjFVi&`bq6Bm1%`B)sJzA5~2TIOT4-w@zqr! zh}$1)<~XnZw?;h5KuSaJwG8!aRc()2PW#08AG@}IRLg43>zVp%7*}wIE`mIi)Tf z3i~0Kp@SfgH)}NgA(|=Wy^C%rXprms=(+wy6rypoPcoh>J;NRM(pZs_c^FIh8uM)h zosY-;{PT00qOtOEH(~s(k%X*d(A81;8qnGCzO5BNVp}%LZ6@p&Z^77^M3L_!XU?7- z4`r+V;^>u=6JY~|km`B&5}%VD#Qg|t(zUrwl``o{)3kZES7$DP^;zK)o)AG|`uie7 z%nvCpSSQQ>l#ag3tKODYSMpTdQfaJ$pSR#Ic zqqlI!-Xwcm7N(eE<$SNqDXf#GU97#oRWr*r`l=fM<>^9e@8W@n-F-++Hd@ps7I1pc z$x%H^w<+W@YCMqkgmXRM=`wt7T_V4?0a&n$q7L1OL((>^1u)Zub7*TTTSIJPE@6B>z zM{><01*EvYWf|HSN_S; z0biv;(GAujw>6g>T=8x_j(VTjTk|4k-J(D1aa*P;*ZBwr1F$pakxa#{7iT3>dt%+S zngu*ACi8!YVpOf9L_GK&AIGGU7RFsYd8)E+`9AV;T!cMb`4(Oqu;2&(0t#$w4xcVU z`!sLO4=<+)lBGjwDqq$v#hsF5ntd50V#XhIfWDgG~3Bw?xAiGyAMz7k+?pRBHMB1~P@xJ7?V~&_%dxlVtZ;a2^keRh&$-uIYYf6JMLh zSt2m*ElLb#(UPQdzYg$XM^ZNO`X#B??zG8`kynLT?aT*NBtsdAbF|$*$z54AODh$P z0%U!TS)Fl|PA1O>(Pg!kcbe56Y8o-O2k7~V9A8~bl@b3B!;XSF3=URgGmp&d$irTi zFIJHO?*>L~MtOWxZn7#LV(;``hpIsx=k}uO2)TvXcH#G`Ka85LW^I$&nptN?EmyGv zAYBi}n1(%R7R>?%(Pwm$&yr-uhJAg+CtuDB>xru4{4(8tvp}e@&9^D}&)qr<(3e>Q zA|o$;_B|OSd6uba6GDkSADN`khxr4fG?;kg9HSImmSD>WC8|8ASacLBAL|r@xtsk= z*jjr_+AgQhT_Y>Us`u6{HQ|?Nsj~{9T*nVr_%HwRkQ!D%KI{_O;VVll_!e3Liyeut zE{3u&FZxF?FsY=!UK!L1C|p4VKtIkfa_pX56I$A*M4>4u42y5BteyK|u=aPI)Qemb zpA!o-uV%!Rniyx2lsfk@ZwxwSDy7Nqza9_!ll?i0y70@8M3hzU$BAD%g)fBqf|N5r zXK$CD&CSqY%e;cfW~fQG)wbdtyO9A9Z#Itk844NZ#7|zlcoBOCGl>ywlgcR)U;XtG z^w*R0KavFE;sM`qXKRPN_Qo?ZqNbH;uB?tdJ-X)aH*=j4aL(IZ!b3U0+NF#Y*5zHV z!a_#U(r@^M^UV8Mb~Y#iRCPS0))#tNy|*_)c%b0n(_@^25BQC2Cp1f)mCN$_kd-en zZe{W=x4mv|dMs}i|S)NQmQE?om(q!HL9?E7p zqTj8z_WCphg_U#dgV;qkn?*iH35DqvbVl#TNAdli8gWwxn5ZTznhyM5%c9A6Uo1U* zc@;3m3sYr-iL~zJ`V77-w@I$$PLEQ?Vu!_$9hX6-_EhD-f`aRz*iSTz-L=a4b2XA0 zBWYtAwm=t4jMrY?776FFpr)Z9p#~-wDYc#3^1m3zzu-=}4C+J4l-#T;g&$} zRWSBijK5Evzi?U4LNTBFhO!QD8kLuOxU!;5bb3?;@^_<9?Oj<^(o#;&45|W(=wHS7 zXx-XrQ!_I^l)mw;rtCQ8*s!i}g7sSrg^N@bgUZ-jyDU0|)UzE{!5<0ugIPnFxk`1B z$+!8QoY%nENq9Tk)6&v@WnIHk+L_3+ktNIQQ(>7W?P`1+!DVIG(`LVeJ+Ua%!}Vd_ zj4MO261OLGJvU#-gP$jtuQ*+EU1wd#Vpyc47FK%?{#kMaZNn6AGxmP`1LHK62sdF!@ZU_Ya(hDT-=M? z1?igo-$ANRV$9FFMJ!b+CFe2qaIKuM^T$r&at}N+sW_FZQmCQcj7|2I{8+yH@o-86R%CWn@t)liWRwaOCX+YuH<_~Wlp}; z%8q;2is;bYju?tJAsO81_x_y2L@Ot8~K7K4}FOs77o(E zxvy^0u6_=L2KSIe% zqd1a&UYmAU9p4LO=kKY=VV)g- z8P2IcBSul1M|NYpyh3<+1~K@W&t(H?Clf7!I=?@>DX7%i%$uoQOsA1&8HyxJfxuzo z(>BQ@VvgX-_CY1S3^)d-Ya2b)EnB7h-DpT}O`_ZJokDyvvZ#+HvsQw8d&GzPVX2w? zk~D{P-ptB--__34#X+NR4l#$=@3WdOncJ&cDam#xx&%OmPfCz{-iCAKu6v{Pd!z^t z3eJhkS~OZRh3+AL@`q4m$+)^a+y*_;ZRG}ITp1tOPDXn>a2cL*iR&kHiN>mRgGms> zc{a*5`$2L$6CTCY77|Dq-S8!tD$KntG?45@)B9#U(GADOwaTRXuG{|1iCnK!tDIi= zi*8r6RWkc2fkAwYjHliLLP7?H_O%m1VQLqX+i@c{R>i*3rn-YO{OD5>W{i6*t3p$- zeSl@5DErw-vNj!4^O=WkSEuHq=GPH!9>2mQvUzsD;*UY`j zc^zj8gm!MNZ}5QH;(j?@`(pudAMbSzxUUxb?fYQs$GaV$HOr6cjRaumyt3ClFoOzX zSK%WUkRNGl_8!f)%Bq;&uE@97WjV5)^-Wm5|WFrr&g2p&r|=N&8HPRiC-D*8|77>)nn+ zp3h0HDurJ&WjLX-Bv_Du#QQ~Sqy}{bPnO43nWS0IfyWD8x9F|~Gm9(@uIBSG1o-^k0tK z(-xr9btAdz!{zZDL?_`gr)=CCG1*G#NoF$|aODPu#(dj3b$2Z$v#LVaH&NBUI1xB? z6?vg4H{25IQJ)K09UHH@SM+xuNH0QQ>c;bTAZU0X&wv|OA&w@+%!DY1qwH5_M8LPAD8hHWDDvR*%H7?ua#6+jd zUlotU{SZ1G-H(UEfCy z#h+hGzaxGxkosi@Hy@uCi^gp3y>=3IyGjrWS|leBT&M*ao_&&(S9~Ew{d2Q@!u|ic z0k0*vJ~eO8liZ_qTBe1POJHFXzIj|%E>l}gghb*uY#%jxqlV~^+n;?UHf|J)R|nBv za zxduGVkat(?vBZRgu(dE=n6AOI!CrWOIQ}9b%Vp%$BQbJ!@gh5OR_K+4-Lox^|8I#D zc`2x*q%@}F6aEjf97CoRd9AOqAHESk8ns#?(cnuHCd@~YT;9hd(BJ!3ud;|Usb9A# zk<~ckq`R7Ox}^@ApTQiR3XMmr)Ir8BdFPD;TZ=D=S*1cV1EfM(YJ&`F z)2XgDRO_kWix{O&KK}BB`q;GFFpOWd0j5ZOcbqMC*E-9hlIsj90nJ&);Lx3gd8*^v zYk?4;Jqja9J*0;ZweZMD;jkcCymi)W^U0RY=F;iz zEQ{jZaZpe|i{twPe8`%*GkWOsn@s)UG9ff#FOf5-KtcV-VHVgK3L^To+4c}!Z_Jwh z{vtImq9^-|FJ1qQ7s|h)uJVkJd`q7Bb>SiBV+T>~4t%sIhj${liKUd|to6XW?XyCz zgZo!*=GmkGZlzd?84zQfm@?U>2C+l2p4HTmV2%F43^3Z0oc`OAZs^uEaiHxe-i zDlwgp7Z0RvNm9mf+6_G2@?LZWHB<=W@avD(;7CmIQ7Wz-{ZXJK=vy@9GFYlmF*83r zzabD1V%7o4l1}}O$i}g*@2{4_&PFz6$S_GTXsSWVZaFQ%QOm@=RyE^wex)nrESGuE z)Rb`{Gk5pu<`vf|ZwPT-@J`kqO54$O{*lNB1idu|;$QzE@6AcHNK&5w++!^)! z^6i`Ciy38uq2q4jWiE?>V+j{^vi11?%R(GOvq6>ws!|&s-T@l5PAn+*a%*yQfT{BP znjGSoDoeBT&w-+<70_|ga+n`r62@2yC24;jPU+JJHGc)V%m_I;nP`@nh8-l;V2qo1 znzf#UD_BenFSLQIck)sgb^h`LivOh$KmQMI;oZJXWG;HXU6U)s3v#&P?-KQ`g*kA%u)d;!o-5B$Hpx zk9`*-e+}IUjPe;;{}V01ums?5(MR-j50{8C3ytG$+_QFJVTEah<%XS6{pzgDv6_(7 z_==M-MBr5=g_{~=6fU1Q@mS`*x7H5CKR;w-c!ZX2Q+KDq>W7sMWnyweD&)>a2qpoD-}kuIf%JQCG9>t&tSE^NCI{Z{B>V!NDaUUNS<+w&P$f_;k@L}88@fB+uiOC zf{Y*`!S4NqIc}zquDrOZ2`7;B46Zq94LV`B;O8F;gYsPZqHg6{<@D026$ z0`1|`QsSd>rmDV5j&bh8wo74rmF#xWWqqDYSR0fyJerc+MgNhV>0kqzFj~Cp@{xx= zytTsx5u~IC|7p`Q%y;;`C{S4-0e)+Ylu`naT&AfS-%ZU@2j!X&W|&EH?uBRgZS5j_#_XQd3&Kb0~$naslnV#s)>^T1-7S*)is;^{#$_xPL=#9RA=J|*Mg zJI;#V4>;^uwB9F#SW7fhU0Joia%P_Nq(Pa0*!KEdo4dYM>2|~wwQqOmVi0+*cPXNJ zGK>ey^HQU3%$rG}tv6pXLedAgbL;w(3mxmZjY6rySIS(j|GdUJ`MEAJpd`v17G!}W zVcE&-U-oiKKt?i?3&Gin5LEXt$L#3U!SpD$hi7bJO7GfEh05&ICclmd55M!_q?=|B zl4mI;Xe#5kytoxs|8D;2`ir?yjCrY@iP8JPv(!I%kR8??tBf0Z{D${?-N%&Nx;>5; zAM_w(=ClNRxx)~czzgJM8Wo%Nn#Q|XoIMcWv5&O-5m4$JEQ${5oOB#{Fy00qER6eb z(9`ShPE_c=SG31Q>5sf?ONJb)D+sF}kCek2gYdd8{|~3KKDdaEjgI<|_rLAikzI$) z_PUGx#W?gUB)^0%DHfwOS4qpmHy}gn#o2w=vCRwJ zP_>bhSz0>d7`VClV8=j^Jc>t_=hrjI@gTP;2a1{mFFzer%%6bG{7tEq%&3{GlTunQfQHZ_%&+cR? zVqC~*9@r=UU7DdUz&?fUbqZ)KrWaoS$TxeZ;2lr^gByc&`6GQrrEG`g7l$hJhiV-D ziRFY$la@VE6Z$VDI;Ml3(~0>{HJ;}UWb|lMtZ4S1pZM1c)RF*c{Y+&U{}b;03w8W| z{c1|OcvE46zn-xCEGn|d;oN0SYGi%W+6#aG(5b1Z*fu_hSHKU+s6$D?nY51+{VJA# zP&5(lQR}!%D)Vg))%)2gt!AsKqv_J-~ago1fuCs zGD?m;X{Mp|qVyXYRis9BKT}{g9dyETNzp<7w>@P!cNgm<5f}eqw);@R1SxmX)3E+m zIpZsiHugZnLKlKkfhJ0fKc&f3v&&7XA#J}Hk^cDCR@a{)KG#??K zdvp^&e+!60>5nv`|NNse`)KLFjrGw%nx*$n6*Ynu64nXd<}kv4f|@rV=l zWDi5SJiKYh=H?ms`nUU~Do<6IXi5r|A3Mh9fH{**-BrmH(P%O5^Jy~Eg5void5+cn zvfje_?swZhpY~JjPpQ}-bIDK>YObDRrGKNfEN-yuDwkzn6_zB{>dZ{2%ng*AwK6g? zxORbb9{C}u8SB31=Sd4>>iz{7Fh)|w+rHQQr1G;4&S?Tojj>~OcSC0<|4Hd%;~SVO z8{4k~By>g=&c`IwBZp5fG=fxaq{vS8w(EfROVt+vf zlu)}Si1U%XlSPQbM(#)XsRiO}lURNT>DjZikmvjsypG$KG>+V&TkF=|KxiMgZnOE3 z6ZtKj!}VduD(>c+(S`OKhp?!064T}2#giu=pG_d^L}e%?8%e)OxVpLunx2CyW~~!& z5p2MIrS3#0ewK;axK#|C+uZ_zIE%ewb;X1ACp5Cs-{;Tr=lj9y;{dNe^FTSkMsF48 z?g!MtV{1;Odgje4PUR%Da4$6OaSOde^Cs+ zgVgW%xfn!XsaA7Yg_%yjz}h3}D;}p>;E%z(?wQY?W}%v;Jxc&j;U|q0q2&_YEB>m{ z%wtJ5QTw~?i=+-&2$!zR<7?tO7?Rg)%Peg=!f)KxN#4*&cl_;+TjnJQ08F|gXg3cK z1TkWFp6$Ml*iyN0;1WRdr*-~YF_9Jp|2`lLR9Wd`|NG@b3-Rk!d}HLhnWYcUSN!ub zzMvOH5%;OPRQi9L99>GVM&~)sr2ZbnBCS>Ti3Fn!jGytfCSyQ!gORsXM6~IVzr2Zp zMtbajJc*#l2{<2rD@iVf1zPVtPjS9Y{JU-NibTI>;~wGoZ-j7U#;{nujAGnWu2~Hr zn`^v=mO)RPo$j zE3m0fS<|=`sC5xb3A(bt@W^KI6m0uHw6e+@xCy87dn&)(7V;UeIK5WoHR1xaDCSQO zLjiM3f&{@k9fW({Y$2Se?Jjl6SIW>-=W&>0fb)cb&~oGn##!iO*F9?kZJC3h(~}60 z`UWtllX%5-_j{$y*0Mq2#()cyzTI1f2Hw@sGGZJ$tcTc)*GNDss00|QXju6CaT>kD z8~d5IKwu$jp`VUEkl0zepD_v@=EK!9V0vG?$3P3T`ZgH-_Cg`sP{yRcC^uhSAKKT#(WZ4UdfH zqE*Rv9}cq)Y2+}#Os3aRjpec38iO2{i5yBA<^-J>{i=@anO(8plw*+p8~Hv{C_PUB}YyG`Zr8hKZq=a{xj(#eGDzt+kz4%~%@ z35FvowO^hPjKh|#7MVK`#K1Ukg5B6-L>`-;DfD3sZIThTRxXm_7`=eWuPumhnj=9EPpF>3b`7iU4ic zB6?T)2Gj^oe~gofxORqug7xb&qR@r@;s{EtdO6?t>((P*nANR%a;nh;N>*E>6p9@z zT3fwYQrFJka7YVgxP21@lpbdK6dR~p5ja4*1)r5Ba+>|kN&(4C?a~D4H*AI~^^U7k z%}JBKz~6-rVOu%DMhq<9Bl%rZJv|^MS<0j@JmTd3F|$-mO$ZN!+9Ji7#lEjo6OL#twl5(qdgYR?4*Pg-ITus_i6dcm8=p)D5Gwn04$p ziNOs=Mp&Labvin_@D0E@?zOxm9|9B^HS*G&cG})41_cEnD|Wf-qrVS8U&!%Me}UJy zq}Ti~cp`b76moXk+LW4ySve9D6AkJXw=RMx)_Fr&1iqTr>gsCwIl+a0ZyLC=s%yAR z|0BlP)QN>=Bg-&IBaECfhu$wC;bQXu5y$!1`@^4-e9;a6`Qr*q zpIzapyVY^hurb=gr=rR81g>F+WZLW53(q4A>6Cb+GNJ0J0~hSj2W;|lAt zCh>6@w?tC}y?QlY-OUdd)O0`C8I*!EW_54zd`}a++FI?3=5xXFtWpW!`qzFS8wQ+X zAnZx4{D*J;XPLN9h>Wk&EgH~Vxm%91@)FNGt^&t)qV8%Yv@39|JwtLOZhEdeJHNz8 zt}D+XVy`XJe`kHZ_I%JMjc?m!Nl(u*J;hrL)Ch-$PSuOeViX|*r7nYKc4KQjcINX7 z4Lf^tHq%y244aKaI>XRltIq#G*wYBibc^P1;Su`;!%seM) zDX<<*%a()`U|r5}Oguk4(qU$3Q(4lbj87p zje}=fh909~PV*i-=HG5Cme8cCX6Dgvt$l?4T+7hRm)g^IWY_`P@$0xh~D zh8_Ww>L^*X*m@{!)|L{;VbUUU%b%PX2FCcerE93l#_%&kj)e&Ko*xiBL^`gw;WWpB z;#F8}jtUaJZ_lsJ_QwfhA}eO*dUB=gt_OsLomZ^9{r1*YFa`S`cJt9|WVL)ddD>rG zh%WO7qek-P;&o1}Py0Bt*rG6H>hXbW6i+n_{z-t=0^As{_z-;P#+3bF+?T( zjs#3btJk@AFCMs{E;JE95|6FEQk&Ov#_GZ=Nh;mA9=fXP$I)`M?929cHfo;`&`S>q zyNzA&xq7RLC)am<|w~=^qN=J4Y#wdqYlDpKMl(U|wBYvlv84Wgptyh%X zeN(qtz)E7a3EX7!-6$}{5uRkYNlm)^a|wLX`ZD|Pr8-=l{=n};0s#4Uq1gWqox`HM zdqT6wPU0N%9sPYfKhzue@!)KeLXRC_2;<8K4!*F2Y0@^UQ@7tKBtGS^8t6+l&rv-^ z=5zDlVHC%MB=D;4msDn(V}*{dOopDUJ}TG!3FRm+qTS=@5nyI!W?*_d4#l7mSrF2n zgVMoVnR$_&o-_L%cBa76?hU>kut{($eYfcmuGkus7AJoXhzo&ctL5gbPBT^e%JI_b;7a-z*BCLQnFmjW)A;$F86~WR9&|5Oh-+ zvn#>Y=L7B%c|LER`2QblfN8W=3xOz<*I)7Ak$ZNIxh@7n1kN%(L-ze4VF*;LdG|c> z^=K&tn%((l?WwBB!#t}C{X4!~4}3gZQ9I(szP%u99(pHuF}cjD;OBYRe2P7mGb!`c zEO2I1_DVdmvdfAAmUOpt2uY;0lyx7deDt5*e~|E_NDX&y9qJ7|E>u@R-;dw?$T76# z%O5QJd72S0s7NuK!-SdyD^BRNLG9}`?(@`*kFz{a!^rljzQSx{xeNaySATvBwGibk zn!VAHk%tOIrLDp=8yqHuh5gOLnITZI#zSW)DJkj0K0lkue94wy)@6XEUe? zD}*98U7wmJB2!7muyViCH2PHmR8*w9O{Ff5CLL*SF2b4LwD`+p?x?q&2d=R6u7o&O zYB^MgZt(iQa&~W7v8`d((OF)O)QOqQdA_%mx}wj=8s2Z?6t!SMHfOU|IyV#1X_FN( znC-f^Tk5)%CCfJHojW%d#JXjmb*luQzv)Kk zH{bKCDD-E324%-;YEkT04y8zV zYlCG$in6lTp**vcqPZ-`O13g`x2$r~O5Y0Bd#T3}kTl!fa?jm`rBTuE0nhR%A*_Ib5>eAqibhu z-5PEA8z-Y{o%lP)=WOhY++^FLE8SP?YTYy7)xFwn&Cu-0+U>pu#oAmC$B2{rE18r| z&P?pHMcv~w&Qo8n$*l7@u`F`SB=@d#H?B3W6!IbXXY3lqv^s3VtLwIt$9pH%a|C&N z8Z56b)^AJ>xp_F;1Iq-dq6;*fa`bsd`CyfhKRcx;`O;{nQj|J>D1a@|#gkZ@!b21X zo4$1bK2}d!uNO;oh$1^#C8FTjMpWfB>`>;sZezwWRTPsg1;}}+pKzjD8@fj_| zWMj;Ri^bZ@9wb^X{-ifLLVK&_;w>v8dMZz-r8jOox&FP!z3yF5S>33`*4*n_%OWFk z9)EHx+lWs0LH=uIc(&vOU4O#4KFBt1Nu z@35NodKBgLjfT&r?WfyyPbgr{)m$~U`C(mBJbued;#lIaCQ~I1Q(@1?gdasAP zMksmuYW)h|4gWO%Xs4dW`SH0YqbbcmSmv|Xs3->CaUzT%vbspYemvI5^z8Clc0ZQ2d6DG=z8nGuEb zJDe+30{;kfZ;}8A^wDEaqbA|@_sTL&-WdFCnK}Y`dz>iLZLQCV*^yBm zo6T62x$nd7BKy=60q>MkUw6)2;C;}fnRZzCzi_d1?kzyJA^KydXd`dVo5Zkd;CZe&+YN)qta zvL~WO%dvkv=#HYyKPwIQ6#;0}(#(41&)P*nEUX6@d`R@$lV@RuO7UJblN{Ad^@H+* z$tXwZ{1tR!>@nz_nPodE3n$O*qP;0{I=xTR+_)r!9?lhL z8S^IkRsD+d+Kd5dK$dAcBQazTm}|$3K2hv1VG?u&v}Tc@d|xPD3}36hghHLn+qXFo zKqag{^5scqlD#gVaZFXIeIk0{d4-3-^Gx*pkRQhEH-|_f(8-W6Yq~{I$X9U?ATBnFKWQ??}JA zz)fB0PZ0{ikkr=lxQss;&|Cp!9F8;w?2>P=EIE7s53V^AE)4lvx zdl^avA1MCL**q$SJslo+m?m%}mA}F_s>^pV`KI(*lVlRXM$#<_v3A_Lm*wJ7m4S(& zGg|@;_}Np}Yp&>idUS!P7{-Ss0BuUV(&x}?!3HGi^G=e;rMDD&;^ACY(Wm9DVKkXk zT^uCv+Cz$laKH}%`({s#>TEz|_ zaL7V`>{aipY@@~+X#IH#sK~3?{99wMfYIc*KE{REdf^JRC9%3m>@y5=W6DQ#7LN17 z!oGLE=lSDO@b{g3cas&L_z|zrzeL3givTj2pGbmd{zWeS$OsJOAZ<9iCHM(N@9x1QTD;gUif-JtT5?ZU!kIDN7^NUy=gi2 zf!b}6(7oQl{fXSmE(6dfvRbpLlk&v;rJJqLV%iaD)A^*ny~P`jora$K4Pop3j)QL| zotr(NQhOPi97;ludbR=o1o|EqZwvwBrKjs(?w%rww{H_f#U(Vh&^Zm-Bk8$;a@*bsQv)Q>@DQ4mXkW@OrCq+!u9mX}bH2MXM;R z{DoE7)~%dSOtPYjW-W27(D*W6wO>WzHy0&%5n0=JlgDX4;t)mxRBaJaB5s(7M5n=Ch6(cZ_KOmD02`gPG(}?4l8w=|wa5?d_FD zfzZ}uxo4%C9ZqxhttGtP6j=?bNz%jwtFfi-NY393QN4fX?`u$i zTmwtyZ-18)d_v{X^dxPC;LHHvG_oU=OgP7P$)(Lve;w~+*`rn1*SiN~9d_eq|C z9iS_jTlcUZ;ENZ1XZ7cw1utR!c5obZ6>Tn58hqbSEm3z?N` zD_sZRxl9B~$G?Ni4JB?6@-<5V4!f(A%6Rb@$;mjPZ;demF(!pMIUFlJ(W*L-Zlr7F zjb=@fg~9wtE{K@n?xj`7XBx7MQ>*iM>pt~?xJuTB1iytNDa;q!XEc7{rz`#k{ zxQa{NiI8-v0{S(}MT0|d1X5%nNJEE_JH}z|hxaVYZO5T`K#@bo>K%l=@j~p-?Kim0 zZATIkVWstkNhYLb{%5#pbKB=-y&Y`snfN zX~O4??>@qFi<9uJXu_FrXc2r0HZfvD2Xa6zHc4WQTkNHQGPriv;oaF581qWxeQpB+GdzzGr8Q5QOu2W3D z{}8ReejBE|izyh)sLa^e9tD244~9h9ERRVvZ{^ba#2oBSBKgd4Dl&(KJ`-n;rlE&G z?1}>uUB9c&o_CxQI*nwP8L%X|$hHmR=WL)9cOIW79)ZExxs#WZDp8}BR$Jwa!ZTP& zu9-im<-qN0io2F2#Z&SLvS0N@v!XjC36ahoAAH~YJ^8+9k`8f44Ww%54`NDpJYU6^ z99-YOu`m=sed{!u(CO22=wC4I5q|u(N%XkOrQ)G+(|M_<@gKkX+|m;ky*U3_qibmnEIAL%LbQ`@x;e$#U+$`M9ub&HBpxg^w1;Sp4h=k|XG29yJGfIT# z-+G2n3HyX)J!Bw#q;1iYa~0Pq&P`Fp&+ZuEJNpd8{Wa8(2>E~j(8DZDpOL5<^-OTT&@uc_Er&N+w)LD( zhHh@L^+1Q~US{OtMjbkv%)Eb?gYm>tqbnDXPuKMA~WwL>w0%qEZ6Do}F+6 z0{zZ9%DlfM#K?Udtp^-+!ZHRBDq4PIlWn_}Dk8JCWiU`A@ruq}r6UQO;XJ=fk}?!=z=B)3F}Z{YE* z%C~;Mto9+chsWI~>mCEjNThAURrF?KEIeG@@5n(bp;*GS^784_5-<7k@egmnhtSJTxc3_qgh9O6GJ6_I2>=(IYrr|>y^L!JvXUFlb$9~&}c|XQPC~;+c!;c6qbE_Eu z^PAy+_Cx$ItEmRZMPHx&CaJx&y_VV1jR9MADyUYtePbr&?HuetY3;=`N|^$3pRuS< znED^K1^Zc6BB%t36cJjP8-IyYKt8Jb)U$9O!Z2>zq*|7yY$Lf=;kmJR%z5VznZqZQ z2zg_v*ko_abF|_UVLxornV)4nP&`hl;9D+#*V9L*>BCvaK5O69MdTzeMf8itQzt20 zhYgcp~`pU zY?>33eA9!By#u(&E@+@Uhe}EKXgOkVm(C)jCl5MlSTYb83}0U=KTa^q$o`0pe=fIE zJMa59Qu>L^>WCNDda4Xuo+!O_oSX0>*jc6f|_{DX(I3yIHDyHd^BucI6Vt*gnbIjqpCj-&N}N z{VUO4T5h;(*p-S^g}ldh6~}7c-v^Pq0|ry3GQlmwVhf;T-+M?jIvyi@lc$*H4PkcK zxAt?a+U6v9Hz!CWskORYSL(F{?5CP4&;$EmNfL@j(ib=!#aDC?x4%4v6d=AxhlJ z?XNNUoGMi}e-|opz@4}Kd7f$gQU3%&)kkRDot1crsXSE2-2_>yU{N^!TG>JARQTEl zm!Wbm<%wi>`K2$wHuRYr+;5VqAbc+;tTT12;FPCYp7|RMIdvR`T5^}UVe$$8^H)C^ zJa4jzc`*!6(fec&l84YWCF+ zC15#{P<$Z7?6+Wdm{SY27=nGuhPb{J{XBzS1ysuPCkYW#K7ICVzR$MNUI@1)D>jaR z1C*b9z$~IIbp3W_+t$8qQXM|_e!*-;v3b9JXRg5R@TrXS@O^OYv)$a2k)v#+n!vOq z=~A(s#iflKT>y}jq}*v-=!4PiJe%Hs4cLnMg7k;Hb|o{c==A!GHDz(vwB6Q}L-%xd zH@_zh)9(hHf0MV^lbfpX1E~%3m@?LevN~EAN5!IG8Z^nrzCgXowq_zT|Kaz7+$zyy zY=UF=GC#=uWufI4(Fh}v!AWm~RhbE7Bh7R72Je5yO|8cXkMr%Dt`Wi{8_N-7`-gU6>nf553Ad6}R;OA>vKb1RK_hxiPmCh^H26UFrrwAFz_63|bTW;b@ zX^3^Ip}YU}tZG+|NvkG`H-#yUlNPSlRgZmFWGDH4Gspu!*>Eqtu~6_C_i@~F0-o)_dCVsOiKMe~@V@(`Vi&AMnoPY`f|W;oNG(4=SN~>Qi)P@E^R2LL*pW7r>%wE7>rML%sh^Q7M=^M-bk$7l zB=b{%XiHu2GjuN~1y|_GJoC}mgu=ABEP^TBVm8^SiX8wiliK`4!<7^scAr_=lnwyq z%m<2*Tc6re>{LYg3NCuqkV#QkO_+<}fp9nHSmH1vR0>A5X;@!uG2~M z;FfJ;yvIuKoBc$O&zlZI`;mi_XZNHIe5?okW_K879M+oH3RCtNJjlnk>lT?#Mbvm$o0qHG(u^O|pwwi{+YpOuch-fSQ*?|^2Y&~*RwwwXKbi`Y4o z>T#&NvG>A*zCA2canPU10US~BFn4hG-L{n53yBucu-pr^qve;r?JOb| zQMvHA#{$~uvbLRSne*)`&cPY>Twsm9m2!OXUDw(pCRB?hGw#hx2MFoHxlr2#6L2&$ z%F^E9q02;i>~AgfDU|!I%T>^l*of@VX;3r;^#r^Wa!cJ;@f2xzEonPQfSqyTt;inV zlz&`PPyORX9ji1tvyrw8xvbn0x~ z)b*y`WdSe9+J&tR?3Y9lI^BTn<_kt&u4JE4#O-Y=u-4`ypF>1cNz@REp6oJH zdeSUzVDmOF5jnT#F&N+4Fy@*{GqyElM zJTX%`ww+9kM7wVS`b{)9UKC{NT)MTja#ORxI#=poVzNJ$aoVPYoE~dMH4Y#rzDBhs>Q2T90Hn%k2lB3%q5YzNHYOu^{>{@VIBncdF^ z&>~x!k@*yMF5FhLGPUg4&i0Gt$;Sneqo$$z^^1e4O^DUZ1~2o_f(2E36GwXn^E}R! zQ-1{of5SVZD-wqie7{%|jQ>|}|3rXnn4)3&S8VpbKJDcPg`9p^;fDY7!he*s3sUle zyZn@$X!w`6{PUeZJm~+u?LU_M|E~65g7bf68>uS)Rv!=&NorHy|Dlmy@@NZ18(#7= zi3(s8ZpD_A@P_*s|8|UfSsP46$>Ke{!)A|%U+uMfw&2x}@9w}HJlAD8Mb>VCT4=kt5s|L=W&cRru{Hs+eSuIs$c^H{#e_xPStRZYSz4%2n9F>C{P z?$F`7Yc*0CE=A}Z%v$QEL*!M-XD}v>wF{OCnC*l#ufP;X(!p((AT7eUHpQAM^^G)Dk~vWC6If=a5n_XjAQcz^~k(n&|P(_P~h?2 zJbeD}UxlnF((L>8pz%J%41CiALA=hJCasN+R%-P`UB&GZ z77mKj4-?G{#x;qUz@F!~91}1VQm@}jM-SlV%N@YAIc#=K1J8E3S-3?6ejGZf-xoVL zlKeeL#pbkVDcLjWdLiV^zF6}af+<_c8;++Dqb~4Rvm8N2PZBRT*W;!R=qVv z=1rV`h{>rneDsH8ttCO?fyi#uK9XVY1;!C2j#`L_O;smFNbHpi*T(R0-hK#rCFUqE zWoURI51t^=v7lbwSNVBN8e(pBIhvd~xu6MsqUoWL^Q7~nvl9>0Gipp#(NW}r05V5& zV*z_F*7<^vQ*O-^{GdWODKqfHl4nzR*IJHfbBvtFd|Zeaa6j4J>l9IkDhi5Y=Ww=D zXntiRI4 z{Lvl(Qi&+Yc8qPCUT#!=edVG+|GGsP`1~&}b?HR~69HiFL33pV{Jp~!;Zo=og#KP| z(}A?P&kzG;m-6_&*~Dd+??Vrl0<5s_dPYkx^~*?q`&&;rkaUXhs>3|XNjks0ku!*l z-3q2_KeawAH~+{*anC?0^#w`p6yx7J9OOA<J2>){GTcQ^W+Ks&rWe(P-@J*di5%O zs)c3NqNfj4`44&e-kVn!fenBbyu3!f#0!~YbB>9ZJFq6=;Mx~6JR|JFFs-W^*?(xr z=H{0O!mBPo25_aRsk|!0_8Vc#`}S%asjjYGuej#EUS>PnS1-RyL?qMja$ZMqJuWmA zySg855VhSV%fJYrsBruY1K4omYwcQ<>hFt9nGN7;jIgXCm3b#)>oejDgCP6s7}6^* zpOsrQ{jPb~v4GtPsSXdJ8pj#`Ie1 z*)X+5+~x+6pyR4KH}>*NaMFv{Gw(?JARP@!X$Br=ilz5iR~dRN@|U*Z&$agTU8ZD( z!@%56hyJ5m`%*%9K}+jaI#i^aj*|T;=8uHJh5a7pIijYverG`1 z)YY#pZYr{7DjZ)6j&LY*%Jx{1eBX>4vnx5p%XHG=*4wwo$$LToCwWVr3-FrO)9u!ADV2uD+65%bj=ZzPn$0z2ovh#h96UsaJ$dU1caqmpu(UuCF@XZgN88xU}!r?jGmObr1g-<`3%Ejlg2hp^1rm6p{ z{iK%K%|>HzP{r)Wf7b0;{*;l=Jre?3{EAay;&06hO;@n4gZ76Q{?^eIDDcB^qyCLchw876{%62{e!lgtx&;a)$NH!Y_)Ukb~D-xC_4>mAA$BR9rB$s>tagFY>mt3uf6QfUGL$5)< zz;5daWa2aOkr^w(@6fnd=13`d{>RTG-Jwu2YrJyv=k{W5YoEhoUS_?_@|I?S#dbK@ z@Whe&f*qE)K=V%gz{rmy2Mmof-Y?oSdY>#0_+DUq8Z_jdvO(F5OjEsXYj716+wrsS zAG(gfRet=eb>8a7?_s(O3rUNwVbxE*`qEa-6K7m1lXv2zS1Mk5f8^0>WuC`YZ??kr z(JF?yOVpC)c0FO*JlBck;9UMKZo-cRsC>U|6Z*r6)7FD#QNz#i;b4}6g>09r%g_5- zWh0VH;$q3jZb3^!_+Py|1)4}(H@UF=RB!*)r+sW`L(+_j-h$+3w!S5tJ8 zpiQ~8z;OKKLTOSYsm^=h(4;<*N#`Bm#zASqgmqJ0*>%r#>U{tY>{;F4#o6qt(l{en zr)M?t@sF9zf}8L0TL2m+=L_!ZD-4og$uQ;gIKlhHO~p&)^yBAU5-`qK%-5j7d@N%j zYXCF%$fc&Hro#Shld086bra^w8z_~W`dg)v-l1z_9{?SHh|wbw(W_4n5_M6kZ?G@> zbT(Hhfm>&af0ELjke$t(52_oQE?WnQq4I$TY$Qgx28Dt{h3j0yUZ;5wi|Z?MjCNwG&*$?VJoeav??`fraW@MH|%`)RA6Q_1r> zF%N;P)tsaie`s2RUvXnmVw}shYuC<6tn`VC+iI9~>T>G+1qRC5Fad~8en{Wbf1SSH z4GGzPY_0wfb8nsBq(dQTNJe6CNMf$^ln_0h?&!J~8+>&3s6(wS8#b}fT+8>vZ9_s| zz89)5p6rt%P<$y0etpiUPX}TsdH~vaegHSdVle}z7~wO{Y%Qb|;gP!twvw%|(p->q z^{Ovd9Idye2Vg6NMixTLkxP4Td?<~>#LrPRuqu)LojV^kvjyyhXs=}*!21bZmf4^0 zFU{;#f5_~s4$h4g$HnQ$&t#zULrd99RVjS-Gu4;Lyuz~|bi=BR1|6`LU@6Cxm3>L@ zLlzj0s+zeKbjq&XnDlTzaZ}^p z%dJ)`Bg$&qU+w$F>i>mzG)G#w6NFKJ&!KNem}`F=-S&e;`SP7iK?+)uO~(b78=}>X zGDv)39F|q_(`OzV#GIcp?D{EWQc#5GNUOfH?&;sTs9-K6*;kc6zwxIN{30~im9yv}-h!;Yhmi=6u&$Q3x?yTtLH&N9P~E8f~CRzvIs zBu0}Q4LMTh74>gg0CUgslIx%Zo;8wPBivl#>R?mPO~OxFb$E-BfOa(uJha3?uVA1aG1Mfy`@Z-c$7^Qv47*^Nmb++zT0nk>a!ujzUu{`Om7v4_ss`+KZnop88U|3??TQchgwd77iqYA8jw2YBsb- z7(aDDyJ0WsxqZYI`UTN@C5*wzMmqknMtC+BC?pwn)CZDYgHj3zfOOg-G+kIWdhNQ* zNL!wLJMe@$)$tcUFq90Yq^3bz(ezwjbUScMQgag-Y3()5o@Jt^1WTrIHpU;<D7HN&+% z?vwq`T-+z%GK$P-8D#g^w(bt&i33Ke#hLoun}7v}?{M4*eTq5IBCOk{%e6xzYB;|g zhy)0#(VTluTc+E4#Zey)f$Ej9Jo`Phc0Y%PjSW?WW97tRFP-K!3@x$ULC_%ChEVod zyx$d^UdmkO4h~0r$yw}Uy=4OcFBQ_L5N&&U9n_ZpUr~2{Q08kJ8`D z0#a&`w;#{~+d`za=J6HA0JX?|8u+*CuR(y=smcCe4~Pb_^ar1utqH%o%Mhof%GoQI z{JQZi7DIj#yJxz?S)(C8G&EEk6osCht=<@GE)pcaaIxJg{>J)=JNSt6)%?)$yVrv- zkZ4?at;Yf)jU~qL#V()qBu7@AH;nh)lS4v7^-tKb7?hl!s?}mm)mQ|S9%15(EZ-~= zAKqdKUDYn{zHzM15~E@X?+J2Oi#q|w6Y#W_2l@`wR3-@N^<$#wg{cFf6W18qm^D|e z4u#bsZ}+@pBtM)z>VP00_W_mrY?CR;x%Qp7T?^1~up#wzlx+Jx&x0VPl?Gb_T$xLD zsFfqy$^a{W!w9bk9=cWT$m_agUSEp{(6OUW2XMML)q!mAJ_YF*=YLewG7Exd-i4g%q6rsNyp33KfdN^VZP-&ADXXzsV7-m-vj z=F!rCP)I*}`zM-8+dpQDH@-6k#*^G2SLD^lH{&)Mlt}Z;i?9yhKh-{7tWRRcAliib zjoQY@u0DmM>_*skCIB*VOzw?A^KAGQ&SuUhWtv7RJ(Iska!i13QRk;r zDP?x;`C{U66h1LXyA}@GwJZ?QF@OC#pozIM=1dHfMCiinxjHU?HLT3QwOWrsf}z)KUd~ky@?Cq z^;}kDdBN+mUIiN#qP&6T7Khsj0|Pewk5>?i(#sg^DTJa_((#3(qn+a4k|W;&1fNBY zj=vM*pHuxioiHa_#C>;iv^-3e;2{b5OjFmja~rOm8syoKJL0G zVL^wk7YC1&H}`JG?G_JUJf=`9%pTnUG*@*KvD_J)JoOpA*GLO$*}FlW^Qy6=cSy*5hsvi4szq)$pw5ks6aCSj=>v!sZ5;NlvEN?CVQ1fqB_LAVQKB zbDWvf;@px!R}FdcIDa_Pz@XYOrzEc3B*)DI&2`Q5FaY*)Bb!O#={ZU6vPkMVR#(w~ zV(iv%ZS2?LbdE>WNn>_AHg(q@?p07&WN$8dKE-}FO@~;d(X6$wKWSS$rees{)VXn{ z?-Yqg^}Va%6$!NKy|ao6jEu~|F|l0bv+u9vKBc_IB9ebPNUGAfW!u5)j!N45$@3HT zjQ;ej>o?EGTn6KunjZ#z%B~YY%9kJhq@?>W17r!6!FDg4MM$~Es3x7{Yc?ePs-)qK z(sB$9TH3(@I1pS)w!@O9^A`w1EyWDFMsz+pVY%fyCqD^ZUk?>-E~VJK)DJ;KVoUpw zYds8IIRk?IHW3NuVx_83rQ<>Wk{VSo?M9iCuHy9zs~$-$Fl4lXc_kgvO26x3&n;D7 zy^~_D9feNQQ!SAWj>wOrOdH(`VnV%H_4sj*}KG35`#~w~q)rQEoY>cV?ONtHLk>eRfd~ ze-DZO{4Lmn3TU+{Vs^MjYN_iSQrWn*wfFZ{*%uG&kiY`}*q)GTN)q@S)_iBDMn?W? z@HYr2ItL`o^b8YNp)DgLTpk=L#MUz@>3hxpSh?swTmm7+$i$6{MLOZmB^F&@>wqQY z^ZTh->pwPA+*h?ep}kAVmZVW*)dLF@)K5$R&A zC zt{eUdnVaK|agx?cJ88~VQuOeWsZ8UHTqiVeq{E4)`{c=O7H1CCR>#;fR)6fyk)J)? zw4a)P|L12L#H}0oX5MClmgq@n;eDvdF6|J%TrW^ z*wvm8DNI9f*9x5m_DK7Z57SDe#<4E^scXB8yq`eZ?om<+$X?js%ga2H9kj1enF^PF zI?%wx#y0*Q$vQyC?f#%XMBp8R((T`Ey+Z>Kwe4?75ItfGy(Y~G>g>?0r)Jz~ z0*~E#;;IHT9q^mu8K>~#gr5cYpt;keL8c=I6@@#!i|#DOTH#j-f!Z5F+*WBSzy;L6h_~4 z#w@Tp!qtps`SA+eY>)=WIVCVJ&3`CY(i$jK?7Y537FV`$9%^tG_%L6M)aksK~aPm^7 zJut7Rko=WGCQ@lRpMhI%B_OTCuqs_eM($AY>^lnIBi?GZ!k6d#qxe?F10;g!Qu@9(x9A zd=h2QT9JKVQx$y%LQlQj_FxDa}4CG zM~-1>NUn~9=jFaH>mDrJ#vHziV=1X3cmoxq{QTnq6~&l*sL7hK$yZBY+ zo&8M&+ST>N$?ZEc`-ap^cDk927rz`M5zw8D77xZ+KG)=GpuOa$YW7X>qGVn(8pyjv zneIeIMMq0dMWIQJ=jsXQ$VLl-kPS2DdO7-a>ba603j@99brTISZU!IQ51G{IJRyIx zv@pdE0wCf$V7+$f<_3W#3Ye@+?EEBSL>zvF!7CP@I(c%3eaVP8BHfavGjt>EnXZA8 zUlXJJM6aaO+Lg5WG0HDD3+Uncpbzf_J%_)^6&jvWgabd_!EAm{7TEVk0$nygb%~H+zK~5-23k91_V(@d z?Ph)qMymp;uZ6WuW}0SS4ZYuhwX{=B0$k?+OFeV?;{=drcuuI7o+JK&37GZMF!|Wm z(Q!(P+T52+G86@NmH~VGainF-e1bc);b>+;>0a#s}%@78iklOMiM% z1PbiAssI8T!_W_t)st0sqP`jmDAI zz1}ANhIlr#_~XEuokNW1RF~6?7b+zh>PXxY)SJ?iaw}6u8(5-dJciyDX@>@UUU=#` zxNk1jYfzNaVsJn8Ii$A!dd6o{^3ZJEOEq*<^s1(Gi)2O;iBN8AmpB&JleQ8ac>zV3 z8yGxRP}Zzrr#GX6Esx&OGS)YjY`SS*(|*%=0$Sh$zdX?fe{vCJq)?h|n064i;bd$f0`aS9?96>!8!moSJVg;C0c* z<0e|?LRA>j8d7Xd0gOX$F>{_rQ>a?uNnw!QjB{RkcCGY~@+R+l9Fps**C;>w{$QmL zno+ImI+^8AxB{BC-@M3#aIHsOqO%d?q9x=@&4C}< zkO^IRugd4gkLcBnVaP;-G2bo2^5COgo>H^4LOQQAG(u~q;)aK?0C9Eg02t7Xe3CNx z@d@xTfzzOU7%z47$G;+I=6OYKseZ-#jPPibjBKGBwdk>jep>)^3AR6anpvaCjhNhI z?L-`mEw=J0BeeJBKm)Jbr;{0F(+2I3RjWT;RjqK#2*8Dpa&nMuzs%_*rWbVKs3lGq zeyX_+m(v0}3yk^;X(?R0`tb&b)Z4p4`lqC$dXl?{*tO(Gv@_7+Z!!*VqI2P-4!90&t{2eLqn$FAISLzXX`H&hKbh6s!ORFI{Kp~QAOE{J0yCSUwT=wQi^ zo4Q;LSe9Ku$N6ifMi%a%yQMpq#@H9(eC!4#6CxPZzC&t-5-4koAYM%=oR1R?>c>U` z^XlSl&!BUrOxdyOY`EP=|4hvXo@E;+ZyD{|7`UZ_CKLpZaL@%QUw{A(EV*hoCTjOj z94!!eDaarG9JGk-pcPEqW7?Joct$#aiwPgJDucEKN&b;rm%IquwHUh=wMo}On{#)g zjwl)pD`f;i2gjjEz%XltP}`_8`D_BSEub%4Lf6D(bXr~M5r^Xw%6#HzNuvFGxdPj^ zw}>o*2MD-yN~vuMRM>I$N1COAEW&Sya^)^rPKQtsrk#zUQD>%)5n=@Uw4%pTSdOSv zOi!ODI}MO=kxppnyV!s&DNZ?{kJ2t&GJN}_B?9QOm|W!f>;?d-3$#_~18%sUk{N-M zhi*PoOYK6?rO^)n$%fxUr1(qbK8A0I_Ul42^J(Y{E#~$|6x*||QmsO^7VrSTwljD$ zv}DE`CUD;ZAToT*r=2u1^Pg{G_Ay`)koI2COBRbPa#ck7)Xa+;>h@oO-+z z?_vImGhm?`{ra;(w#tV9WtS5M1z9A=0s3nLEp#g+@)vRoyn~oLuNHqKyt8;{1ciWCUbKA^<%(4&)_9*R_bf8@{QO)v=~>Go1r};sKBfaIqzrm4HeVIW zb;&AKsXRI_sBQ^VeA|3_v3&4?1?KGdqn+RfmpQfb$_ki)%vgHFlx)c!QoP8sk%2OH zm=X3#w#h6@;mpq7-OuB4{*CFFV12H?p8 zg0S^ricab?w(7~4m=)?Cll|t0T%x21S zb92>DgND>w&lyvvTk+8^g~@|85F}OG;k?jtbMQZ@iZI=}-@o{AC`wzBdAdsobJVAWcVdnfM_4z`=PcA|Xj=1>lh{>~_v zDz2A%+zsZiKtpcsS?29~)~jhkHyo4X*`v|Md1A7jj1)lR$#Zr2Fr9ba9a1ENP44-Bs$bzwT@eBER5<4;fVTs_r$W{o&{qsO{O;kMW9KW5Se;x&?Z@H# zYR{Eo5<4}w6{&F?;zP-?oI1I7>W+uPrVVw~`(wLlV7+hf;}TY$;tN)Ix&l#%7y;KP z4t3`+rvv(1Zs(Y6FOWLlb7%;U#oQo$XwmalQfC#~I2#k@dnF`xo76=WAFk@@7_)02 z+tecLh-h^S*ZBDhAKt}AI6%oHZMw$$P}93V_h?2eYon`AGz~g!O!eu)_i*=XtwQ10 z>i*0rx;?Xsv*^~Vk*-}*k3}Y9=Dk;}b)|Ithz>%_sgMZ1zgWaJsDYQSO8MGmaS8CgXEzqofxg109-7(g6OpEtz2oa%+Mqw?@0)IlV0JgUsmU%DckG)-W9~X+UR4pr=vn z1@oryO4r33%3mdBw^B2T1@@R$Sn)L+fIQ%68@08-!aLOY1S)KK_HL_wI%WpNtkL2j zf{F_WTkPoCiG{w@n?$5~we##vNcZgU&^jKL&XZ-<#BLFA5rQ5&@MtJS4ub@9xr5g? zo3q>H-r__xYPoS;?@og_M)Tvx#CWe$lg$-WJE3hkbP?p=z8R1=X*tJ zRTb&(U(MD?njJabVhTMb;X2`7+M5Cag?kPCv6i64l?(sZOFpK!9;pb@9lF2g^uf^U zTXb}LmNE@B84(^|KxC!x&(q9)O}}EHzoX_sDu%G&a?UHT^W6UDA$_OuUJL41vb2VK_gU~aU`RFF@i68Ig9lAh5P9fQ60UI%(1u@PDUg2J)Wv?fOfO^%T6<|)I##jU250HZmbUm=f;Xb)kgN|uDf+CTWvgESIkrbhuX~a_NF1_g zcAwo&sv`&SqE^#K&VY?ksW9vJDH5T5C<$pm=eVJL(et_tQFRk+weLelYi(BU6G+Jv z*$RQ3N=eCJxSTkek5twys(rg_ARP9PI2zb&+CC1Y#uAGKn5Y-MKMKLQaLfUvc&n4^7)ZD5U(nlWYk%%b_C0<+tDmFUi}z2MxMpUN4!%gh zDkKfsBm#%5uwjuw4dm>Jmo3N0?pGWWzmD`sUE=NR>}+Mt10xcKC1O*4MdWuzBZDH_ z;`lB%XBd%G6rk11|2fj?HRpwo!3^Mcj~YPFJS|YL5neF9nC=-0-%aQxq!Zf=%lr## z`wpBdDD`aOI(fqKCMt;0yMFiD`&a#~t(sCoUq{NcFc4$XXrTHXMFQ!DeGF^%APOx! ziWLW}tOB;kx))Aq59wf1H?puK3ZG|exMOK8xzd91lae{#Np94=H5NjeQlKz)M*=lg z0PEO#BDV}Z_82P1#UCW6TTgd7Zi0;{obpg&O80p^69S$vi@u704TK_5&H4%NxHmq$ z#c{75N{9`DNmeheBNg&}uP)*A@~^@*RUdT%h#05BV%$S@BKL-gp_Q8EyY(F)McYCfrk%KTAqo(u;vLCyG{e`$UB z$m5E&=T`6?A2Py_raFZ%T?xWBrzTPwiqmW_gGg2-dSkWM+xF+E(s`o5tid$tb~-;$ zuMi@6c)EwmdD)KW2_mqw2Jk&YvW8q1*698;)tc-zJeDspO%^&iGo>0OO1(S;e8dyK%l$4dpf=zr^BX3 zI`vGZ0c#$iBhQ$=zH06$S(jXsu-jcSgSZNKavvM!I9gB}kIlCdcsjyj#K)2k1ie6%<+JUMN0YBjEldGcK0(cnu;ulon$_ zD5wR|DN#{RrR?U7#7 zZAiMuazRr&SixGSIw^K!<32}7UW#9_B@eCi(*08^u8$0!s$`~`)@i2Gwd4scLz$Mg z6rn#JWa$Xgmo^-G++)UUk*&!k$hY0F4PSjak)-+Ax+Se0E z*p)Opk(=+cT@iIj+@VQW!nXAV1I>nm>`q=>;34KcL-2Satb!U+5r}Jei8w;DU^8hr z-9*W#&l#yg8xn^Kl;zK;FbBpQ`Gf43A%3oapuUyex$#SLEz&2kmt;s}H!}8!Tu4tf z8_B;}q3^Ltb@2h^l?XI@rc2iL6++tzt{3c=@q}QGi=iW_xi(qY#)lry+_UO*AWdPNk*qSr36cnM5pT0mUU17a(AUVgsD}kKEO-U_sG+M4RzsucbrruPM z!Nvg8#2$)uZqF*OySo_5k_w^pFbrjO*y67ECi$ZT_HbG_BoBiZ#X_!RJ91p?_PL@H z!g}B-NA=OHzmTlsd+`w@g~h3*_=qZ+Z;A!-)*M`elN)v`c1?_GX|ugEhPSm|)$)AC z0gWaTx)Q#S3p}bxQtfd~Lmv=-fYv=@xwgf@g~KN0@=(Eai$fE~6|v;(<(<+9g@ao& zMx2rfELCL9bvH!cE;SyElFL++-p-HmAhDO=Cb!pH^qfGu_d+oSI3U7zd>7sy=9NnI zmJ{6YkZQ-|6Jy5WsbG)so|pDt_3aGu)T98J>g)rDkX1c@0jb~8N%UOa^4_gjbn{&g13>jWw@^l{nMrwMGfQv7*XJw%7+bpZ7!8s5*H)nghwFpr{ z>H<&Rqp#CNv|XpDzbp5Bt<2c4KeK-6#jJCZtMA+JUAbTZn1?H=5q3XfQI3mQTg0!h z-B?R}6}18%-%}a|zSS0>(PY1YYx`|`50a=G06q3j>OSiS`yiEX4U!qP0^C2_GRm#e z!WRLH@={2eTmM}hyclmNBou=X-i$r4D{|`byJUxAT=C@tjFLu3eCCq4f~6TF@)(ih+@kUX7Cv7T&x&? z)xA{AA&<QArP^sejSTr?G@KO0H0sjYX|Q&*Rf zK{n27>i(V`$0Dqx_3~R!(Xm{*byBMP29+^kdSocOHF?Z1&zkvh^PoObE3J`^jXezR z<_u_%N^|MVyOp@xEaTcv8A1(#(1{tAT}p97uySt&Ag-wEQzB?55wavZkS|Kh)^o2< z3+RL`uF^#1r~G_(Lf!xUSwTNP6Iv=wFNh%-pLkJR@(<9|YW8i+2JE3QU=E=Pux`uk zU~F=P^6yS6mfHmlOdJ9OqU&uzzg5Togk*n=U)s5b1YsFJsx9JeXYM>Xx*AfRfZ6I3 zv9D;V>0^)5zO?w`(wc-=-h9X&d)h`xkXReqMMcNHQ?@Va-9*m9O#+bMs=xbfdb}41 z;#{59P;%$xTu9LN7lU7vPmel{$wO$;(IUvRYEu;5Tgp82h)H7p1fZrBm z`SR#4YMS}^?puJ&76+yD?gS92^4MzQ>;GI+^Agt|JW1sjCIBYVD}Em^uNkAPt}?{$ zaXH%#Dz%LkkxA#gEXp+>UnA5oPG~g{Kt<175}_@!Jll<)zu53;1NzYQ2l-9ekX;p1 z1VZB62BJzIYHwa>N17J%VtW-S*H%}?DzHHA0(JJ=6-?rlgZ~Vp)aNoj1lfs+P zQBxP-tFIz@G0$21_-p)vNKm)fZE@iuZ0;Eu;7h%VeslMhN<1(k5t1d2)iT1|9gBzy z#whyP0`+nlbXsLcvd-AR?ISnIB$V-WldyOlntc7=_j zN-E7(Vx7Lp>d{hZ$wHOLZdi&^K05!&JXVk^Gb5_^TB*Oh^b;Y%`Tj#)?8aY0Le7a+rwnMY> z7TBf}$r_|7*q64@4lJ0V1uNGQ6xPQR>2K$9zjgXM*Zb>lKCRRt=8F0&Rxxg|MZ#vm z%u>-@ueVB*$Q}W*-CedhuT%1zk$h%RiJ3lEzIrf*o{r5u?u(Efn}HHzo!E81YThuT zUNO^BC^%p6oe}eSE)YC zs9AzrEBs5f+>HoCZL}#6giYIOrTRF+NZjl)DMEB0fbZ(F@_`&MwuFNfC~2zK1{)#q zF-yNDke+?F0KdW^H-9FnW~%07bo_mg9S($k>Vn-m+yk7vUyo#8(D!+Eg380qj|#L)p!(s67+2FcF;) zCdxJpl?E3?mrU2tF4XfRE8gbh6)4BogJfvu5m4a8X|~6zdahtQrOe8|u{8E{{Slvy zpjzfa;!llvn{Q``(3yNU@qT0gvdL$;{u_ks1nCPx2LF!R7&hR06}e$z?FYiQAJ6T@8p5ZpS9`)<1bMO-W4&mr`>)?FC_gbi$&2P zhVpt*yUbT>0T6k}Z+2?1F&Tl1C9qI4wV$Q4;J4~3ElO1z+P^USVH&`dcF^?vD9XWS z_y-6%zc8s94j_FZCfm~4XrE~Y^lZi;e59h|AglOBp*TIeYrbb2tH4QbCo0*!Ik`j- zY%mhBGZ{6l=0DpR3rY*0{?3vDx_x|tg3kKue5YNXcvIT92F6$S-fX8z(=N zfQP$6;oFERXgkX;q3kQVX(cnmqZmEoBbuN51{*auyLP!H@^ACKDk@;LxSuUeeyYN1 zhOpQc1k8no1xHryj!J&AHif@`a{ZoFp*gkEHPl*G_kERnavP4xP^TL>PK0pA1JZj2 z!&ey9=luiohEE77pQd7^41T(S)%pteSHnKN#n;m#TyW=DTRsa~S*<9uHhfDh-{?Xt z&S(J_CZIEGzBlC+{cQIN4ysK>`k=ab-xxjDJFqD{TQ<$EG9Wkf<4Y=ws+grNe@?ib z8_yX0L1`)F`X|G*NXYh?M>Imn#CzM8(N}+YIQJML%s~|XNb$pM{_;rV+%GUl$qIW@ zYN^ukUtHE-N;fTD=d%C&bJ;&lssEcsTTM5^=o~XM^DT~~MTrf&|05C`h+risH;|n9 zk}8vk1=;7P>dF*}h&X!^o~qb&sC@mwD+F{eqAuD?Y?<){C>7D{>OfEBHGqUy$GI zIRpsb1hHHZ6f13Q!yvVLo0msBMb$OVsWQnz*`f<0IWs zOL`J}E$WVe&38$waQEn!m6ql3WEKHf+m4;SgM1G$ef_iX`@7=en&f9zwe1D>GFYI{ zimkgkjt=eEaJf;KT>c)f_p%Qyj%Rs`+Fl?Dswm$CHb8O137#a(ICu=6uPr9Lyh_k> zHx$J^qKlXKF~+cbKfa% ze_>S@uQZ!q^Y-iNUv)+V8gyrPa0M10MuY@}XhXunEVIN@evB`C4r~H)N3ciq>18cE z3NcZ19fv)|VmE7SFggN6&=Q2C1`E85>`xx1`QJofXL+!6>5znI-J+mZ&Pb}7K_AX3A7qk7vH~o3+KVSL3W-K{OOo5v%BBGs< z(kQj%rbFJ@CZXrLsfO9u>r z4E(FAc(;4OSjR=Ef-#XYkc7qxV$SZ@O(o9HmwH^hcrm`Lq@;bo;T3<4v>w5uZH9r= zgb$R_Z6;ag6^{#I$J<4MQTSlfxe@uYcFyeD32RiZ9=c#)$W(uqs(uS{Ky>rSTKzt^ z#lzbtr!v#-#-|O1!Y4F_TmsT2N)3$X?CLU2eX?FBGyiUJD0E+2!(nf4?@~}upxxy% zmvl8TF|okl(J1JE6;o36-Vxiv#YL7Ja-bL=+m%zBvtTmqrG%N1cpnss!WyJ!%vWd5 zPt%?0l<3hz6E()Zoj(+BMYghT=}1 zq5YY@JnrzQ_)%hFz(UmaQ{`tP1W9(-r&BJ* z7!T@pljwIwUHS)&=R)!MCp;JQS^J~}RrQgC|V#_=5YeV_%C@`i9 zAz(B4^oi^Lm0?{xz5&jCG+q~4cz$z7f$MiutmCyY{mo(A3T6-B+~*o;*Zua~T2!mJ z* zi|(+p;t6mtfw%L()&1rP>{fq5@ob;<A=RPv-Qb|LtCtsP`c+t1SSP4CR-_W5vkf}WGhK6V+vq?V zkypwCFB1CIZWp*<2aIcqP1C{R_7+H_=Cx#gbsp)xnXbFOnBxEX8|@QAdS;UexS`)K z#S1e$Q=(4Fv;>?%~>4sF7exDkq&-2uc1(W=og+YgB z8mngdYUK0?sn~ThH`1b2Q=4GqLh)#yG@}1}wF7yeb2JzgrI!l6u|(aJTx~5?U2Fme zEacj|zL2h4JiId@6VogBv44hqgUbb9?lpuZ_;W5S>NPx#eCRtnMnmw-u?N7%j+i7 z;X>-)jE~{@TCvk`d88ppdQx*8J~pE1H8`47n$u6>=GQ9BS8W0xPnO(Dp3Cf=k#7*g zYQl4vd+a%WWxRdWM?JG#DL2UAezTe#E5V-C7D{zNf8B2mtp_I(_xfed?`_lGO}i
2Xh{Zz;TfXw+};ma2AzFDz_5NL}Zjr}fVVnu(7h_N$b0)H{X|USC15Kj6Zg(vG zHy8q}OVgv>j?T_GC1qui%EyK8fJAdZ9eM1X2+aM@A197wR>Ay|n+N1ClO-)U? zikH@38UM`DtL4vimO&xJU9f4FtgP(h%=UE?VjqkK9Ec1V1w({(!PaR4ecyPk=pbZQ z`H$XD)KyE?=}T3ofD0tfoyjjdfNqa)kK%=^az@L!r_ZAw?)^9heyA$q;fU~fi5P3y zR&Za0qmk2h@OP9u^uSvtHSl7!vd4(RQl%zo&f{l`;9Bv*e~&s?*`xg8%xlLpJ(^WrJi#N5`hK7bi zo*I(Gp;oM{-f6R6PHw@e8BfuJH#{3@Nh%vA`XlKOr{EAe@83-ye*wwm_suw>P-1pW zvC46t`&HdS-UaBdV0zT0hB~65!AO!l{LJ&Uq#mIi?Kd=1yf96hUnW;kRGM=gK`ZT& zXXkT7Yn^q2vJqE=mb-748H^WCjIw+QNo_>*O%p*Z*TD5T8E`OrcAhJ_HgB(fFcT8q zAUW+sQV;mG869-5#NdUO4k5$Da`?uvMDt-+(_PpxvbJ3FQ~TeJ;(rC)`NtOh>*4$# zVvGKFA&&n{%HK`OKl2{`lY<;Ls|pNqtnZ#m{T3PTS+GG;iO*$eBS~1X(9bsdwNM3c zoo7w?Z+b0TON4(P-Z^e2X9&pLeHYL`@eGZ{hsy8WlG@~jMt8~X-(UKstFv=tQsQHX z1>|V|IZNJ>`K0w@Bkgan7AEdb&sVMmTM_BBmrL=4S5d_vvFqh~=?Z0=rXH^;hf=YB$u`qwHX?Nr|q%E$;NXhLrJi@o!1(9@D)5UgqPw-AgjCWxjTq zb&kSgLh(>YaxfH-Bd1-ThzN~OLtIg`#@Tkko`ToOefsc9wy!U~rFu+N`t-svbg%2H z!?@9{Si?JS1mV5-y2f+zbKuv!0I0hmZ9LA-ODu;Ba*TLxGqF>zW{gM+8DkI4BMLoiXjig}-hG_d6=t6nZ>7uu$Bu=k7KB5I_|G!-%H{GL3!T7cSDTWwf^pUkl6%+y87 zBJJT#xFNl-)%fP|mXf<)>m~o?H%8{B1b4e@k4*jRg#wdAq4>!{UtKi9hUmRr7MVFd+bmKXRdxV+^5dILl=n{8A{Bc)!z+IAIYjh%h3E2b=5S0n0;>J*+~r zml6PJfX6H#FxstI2^gpLey(-pX$hd3a;owW16*tXTiBN`Ry^&Lep?BoTh`E2g7lTJl`@-j2?Jk v3I(Hf&y#X<%5!!rCIol?&!{0hAyd4(_MD^d!i+5i{5!02OgZC#neYDxRK3r< literal 0 HcmV?d00001 diff --git a/target/classes/liteflow/sms.el.xml b/target/classes/liteflow/sms.el.xml new file mode 100644 index 0000000..585e7f7 --- /dev/null +++ b/target/classes/liteflow/sms.el.xml @@ -0,0 +1,16 @@ + + + + THEN( + preSmsRule, + SWITCH(smsBuildRule).TO( + aliSmsRule, + qiniuSmsRule, + tencentSmsRule, + yunpianSmsRule, + cacheSmsRule + ), + finallySmsRule + ); + + diff --git a/target/classes/liteflow/tenant.el.png b/target/classes/liteflow/tenant.el.png new file mode 100644 index 0000000000000000000000000000000000000000..a54c31cce367b9c4f1ee75f96a38f01fdfb8959d GIT binary patch literal 107067 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

Nv-PnXm`76!j_|x;zeG|RX>~c&6Mlz=x6px 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

K~8ryR1VjdEA;yK2LoS7(f0=m(%` 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 Tx@-Cy__y7{dJBHjfiwRFq10Z5 literal 0 HcmV?d00001 diff --git a/target/classes/liteflow/tenant.el.xml b/target/classes/liteflow/tenant.el.xml new file mode 100644 index 0000000..4b4383c --- /dev/null +++ b/target/classes/liteflow/tenant.el.xml @@ -0,0 +1,16 @@ + + + + THEN( + tenantRule, + WHEN( + tenantRoleRule, + tenantRoleMenuRule, + tenantDeptRule, + tenantPostRule, + tenantDictBizRule, + tenantUserRule + ) + ); + + diff --git a/target/classes/log/logback-dev.xml b/target/classes/log/logback-dev.xml new file mode 100644 index 0000000..dacc4d8 --- /dev/null +++ b/target/classes/log/logback-dev.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/log/logback-prod.xml b/target/classes/log/logback-prod.xml new file mode 100644 index 0000000..ab6b102 --- /dev/null +++ b/target/classes/log/logback-prod.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + + + + target/blade/log/info-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + INFO + ACCEPT + DENY + + + + + + + + target/blade/log/error-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + ERROR + ACCEPT + DENY + + + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + INFO + ACCEPT + DENY + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/log/logback-test.xml b/target/classes/log/logback-test.xml new file mode 100644 index 0000000..ab6b102 --- /dev/null +++ b/target/classes/log/logback-test.xml @@ -0,0 +1,151 @@ + + + + + + + + + + + + + + + + ${CONSOLE_LOG_PATTERN} + utf8 + + + + + + + + target/blade/log/info-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + INFO + ACCEPT + DENY + + + + + + + + target/blade/log/error-%d{yyyy-MM-dd}.log + + + %n%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%X{traceId}] [%logger{50}] %n%-5level: %msg%n + + + + ERROR + ACCEPT + DENY + + + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + INFO + ACCEPT + DENY + + + + + + ${DESTINATION} + + + + + UTC + + + + { + "traceId": "%X{traceId}", + "requestId": "%X{requestId}", + "accountId": "%X{accountId}", + "tenantId": "%X{tenantId}", + "logLevel": "%level", + "serviceName": "${springAppName:-SpringApp}", + "pid": "${PID:-}", + "thread": "%thread", + "class": "%logger{40}", + "line":"%L", + "message": "%message" + } + + + + + + + + + ERROR + ACCEPT + DENY + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/Application.class b/target/classes/org/springblade/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..1eb629af6cf82edafea5ebe25d22ac3d3483ddc5 GIT binary patch literal 972 zcmZuwO>Yx15PfdarrCxzq);fOK;e=`G`=FGRH6}xL-W^0zpF zIPe4bQHb#-YF1TN+8NE)n|WjV@4w%F0KCMr04u1}P;FopYYfdx@lEhV=rR8gUdqTZ ztQ{+@+zCUaeK@LNouO;&m}gU~^f*jJEO}(o)M!#Vb3!}bFYNx@Tt~oAFEWqBRMpU6 z*t-ewYC26+B%Crjz$Uh8Xf|*gEr#beQzK&~jhO3b!cTqwQY}qsbIst|g9VeJ^P~1k zo_->-toNnlndcl17TqqaNadBWUp+A=zk6Q#LXC4P!lc}k+&Lw~<*e~^*?XyJ4gQh|erJeS&c}El%c1$qaOTu)Z@1&cU z_@nS-oV1h}3{7q$`9}G{nx$S{zcPm1vs^os%8|;HC#tn^#lcYRacS1YezIsH<2<1y zb8(%`Uu(~GcpW1upO=@*ETePhv2cQ08LP~1oHkuXyOJTFI5(Zcp82%5WDjS>1b(s< zJT%5}kvlVk%<1k7i>rG|ffD&14zNLw!G9}Y{yC7`CX171q*psX!G09sJ0yJ==-@8N z#w-ClxJOnU_pwVLzW4r9O4AZGr4p;kaZEDRWL$YXNcQ|NqHrUZfu|9<8zO%{p07i?*Lw7s{s#{8kSaY2~~#HDgVU7lxO2`V04m= z8LC2Mf*Xbhk9z;_zIr@Q)!;L9lpcrqnROVZd?Z7mvX;_#f&1dd?B78I$SX9Fb z!^8Pw)2Yfr!No*|u^kWiROU5Y{wM3Z;i(i9aXIexkK#AolfCT^4DI=F49!?&x#5{P z=4l~)TxD2y5hGrhNfec9!Ox7C@QC#92iu1yJKf!$HTAK|uvTh{TLe!RhX(npa z=bAcYq|O=YMrL$lm+S3?a$PW~UmEX@7#agrXd!nJ8#MUyRL||7p`W#kCjB@MHxZx( zhAR%W319mQUnfN!Yq;T*Kt!`g%4+AySFkVc%(}(o06fDj8dpmNooW%Xd$*nA9a`5t zqCo^LaToVyw)-?!hzmOHI{8}frwjaFI{%GQijA3n;40brfve=fR%%vAfZx>^?i2E` F`3s!K&QAaU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/cache/DictBizCache.class b/target/classes/org/springblade/common/cache/DictBizCache.class new file mode 100644 index 0000000000000000000000000000000000000000..86c147deb2bfc16c9f93e75e20e5f255ee585dd9 GIT binary patch literal 4603 zcmcInX?Gh%7QH1qX}R5T6q$V=Mgd16QT7BY3B*f?K}pQmal$sxmO6IFQn!&>CJsBy zz|6o5Ffc=4_F*>GGs`&;@`1x=4!?;rx4KGFYcrgj!v}Y(s;lmM_r3dGmB0Gt(iZ>@ z;u8ZgfgOHjAzNLpxZc8i$u2tCf?wgoE-cEQUNx}2AUiIH<9cMGAL|UPw_qSHkT`3v z*x8cpEo4v3pLGg>!1@EO=LUxa`bM_Q888L5bXqBweNWq&a0|hhdp@)hhb3SZ)y$|{ zG%zHP?%Yl%1K%%YYk^y;W@iFPV44$gBm~4(6G;pkxWdAfxT?iTwUkbhUBRZew~geR z6x7$;md+^?*Wg+M*IBq8H}rC;>J)19OgVM97A&5mdjf+CPB80u4CPc&;EIth@NwKk zzenS^h4jNrjLIM+nW|eY{17RD{(@a1*p8^bdEZ;8dn>KVoY94f6K1Vcvgb=q&ctoF z-N1;2ElBrrU8P)k9%e$h-bdF3+^9_*qs|aTW|S0iYNn@S(KzTG2JR5p*`DvRU#yj! zYPPys4V-dz*+1)NNzn~fvsyeRwjpa^yM-MxJtOT11wRy=Hlfeug{`vf-BrMx2Hk|3akQRD=!F5648 zs3^iyZm?J{ud2ZQwN0+2(IgI9IE1@MD>QiGOq;-Un4^)`cuB-?SW0b7;K8@!cXPwY6R1gv^=OKz35(vSP3jl96FE;cmho`?pH3k-$5 zAY79t<^UN?Teu%TViikcGfrj2El?Nx^X(FA6KPeg%uZ>A>Ycek%;KbhISZ$7T43+x z!6@BI7X?z^LRPK{%}z+$4_SB^kEs1)tFj@b^?ujS(n;4Yx#z>a5fzEnjfqF`m;u|u zJPN&9NwhJCC(FsO3(7(pb8JswbJXGSl3lH~)Q`4B7bm91XCIxK5J*OPixvoLt6np@ zRLyYt+~NGmNr8cIke`~FW#=6Ci%i+Zyz4o~Yvp;TGAjv6Sf5RG&L(M&^<;mr=&}kk z9SPPwM0HA?)v#5vnp-MHcja%%Y?m%ZpqR^yBqDS}F!EV)R;Me@8TTANA9I35zc_7I z*tY_wLT~RM>E&)m%hO#sY*lTQ9Bp6nzzM^a{_e<3nJkj~oK=D02#2~Ef$7Whv$ZL- zx;Zf8E_impgID0esIpo&HEQ}m2cNde?UtBBOiiL>m*+!OQpW){QeqrGiyee>O(?Qo;@t2%zJ|x8*_8Gen_!XvZkg95q zzK+IJZ&C)1+Fp^zaw_lpOSR>wu5{=l5@^{tySnT|mw)$<%H-O6qkT&wkMrs@;|5MH zfnT-Xz;wG|uwIu3)*BX{hnK*c?9IHXT}BZT={F{Ri?kLOR405~>8SmwIF)}{NF^_z%wYZ1>=J4rql;vCSy)OM3`u-C_o#k_VIJp%| z{4FzAFjUMD%8XZV~imjQ8*x5u@ zUgsmI0|-##VhOQ=C&)yi4#YSOPAKF(8hM!{`#85PxwoCpvEdI>ClB+6dG+gL?y0vVVM7KNs6&<&YaWEw9_1K+EFwMJ!wi+bfKBk$Yo74 zvnEZ+ak3Xjj~x97$4rA`h8(5+Vg7H~gCp;V3{0zjj5H0+p$9SUJ7yspSfYzld(fjp$e7DeVE zppp0SEy-_C5fRi29f23?*FIChX18eL>01Y@g6&R)cizr^hSa6&c{5h?h+ z>{0tj=ta)Q@Du!$@9mW0OPu>9Uc;~P7T3S4$G^v)^shfRe!Yi(;9uNja^3s*5Fg{( F{{#JFvv>di literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/cache/DictCache.class b/target/classes/org/springblade/common/cache/DictCache.class new file mode 100644 index 0000000000000000000000000000000000000000..80553a302051605d18255c8f25955390d64f3880 GIT binary patch literal 6200 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 K{1gAiMgIeZ2!eC~ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/cache/ParamCache.class b/target/classes/org/springblade/common/cache/ParamCache.class new file mode 100644 index 0000000000000000000000000000000000000000..99f87c1f25b9a502fdb5373ad315e117bf5853cd GIT binary patch literal 2447 zcmbVNTUXmg5dPL&WQ1HCCrz8AO&dyraoPwPnzWcE1w$Gdlh7F4d(*YN0TEg2Bgvf7 zU)9S)lRWg~xhKCVr?b+61vb$3!Pd@d=9`&sF8ce`^S=OmipK^r3^Ov=w8M7b`kM`p zH-+uUfd06%rH+0WaX+#vN~~zf#2|(Y3|laeWyo*y9d3Kv-?SezwuKWh49~m18{J|U zC{ES0Fd0T;?721%c*}srFxl(2)snt;yr%SGr&+wlFcRC%xy`u(MV_~C3I&EihkG6+ zP^@+%s7imcJe6E@BG*$XIGrF6aT1=#8=feeID^*>oVD-<-ef5ChO*Cq!U&V}H|R(i zZ3;@zP5Z1xio9|vir$-q8Le|FZViH9IQx;0N$}szXKp3)ArMk+S;mXm;#ysmLIhG*#?SaG&9FI@*fI z!*H*g(@jAMt}Q%VSbemz#8BvMJciufuxb`Y6aD%^bz_+(ry`p~%~;j-#r;mJA%b<4 zmco)WRCP|NlB_QWqb)aNnCdC0Bm0hQnPDlNhMvh2D%sP+1e0;82KiKeF%(^`ifBtV zy(>{Lx957tpZHu(}zkivy zJl-}v8ydMni@N4UqMXMD!noGC$=4R{;&vY2((IGoe{LGW`Cj4tU||VY z^LTXFpPqNxS1Z0Rf_TORHARDluctcwh&Dh?dGUBv`UECb!6k}ikUm-iIFB2+Nn7}1 zk}}AV{7Fi_Kr*dSdN)iu^kJp{Ig)I8GI|b`{=~pJSC)dijP#7uXN~Px*1D@ja3!M9vZZqg2&83hE_zVm5evy7dj06Qr+qe(t1qJ%H z27UK1=+Xhu3T3+wTA|OlsVbyFXX&XTHGju==^3tMa2%M41Zcg3nhTRpG5rFQe_&h{g2nWi^NFAMzuv+uZ5s_5DL(`V5n+mSg$18PdhY zRu(G5RA_s}8+ZydhT^!>ZdW?7+g;JIq!aqgVunF;L&1tE+hV0avFA0sf&xRvjyD)e;{gp>2yA!}1^4Nd zvg!y*(mKKGcpM2y#7_B?z~aCYe3liQJE2Zp+3wrI(}`1GboHJ*lscto`2#&7a0=6S zQ^Q-hz>te5YzX(rG6lnO?fHbCGv`GobtAGBE0(7*kBbT}X}F99h8r(sg+U<(*9S(M zh>uycq)t98Zd*Tv^*MnC74P6(1w{>uDE(K-d?{@`s#qgz>ZoL)L%|(}E6K7|Z0>o- zy^^GyI(BQ#*xswuH>wPUL>1%yB1(_vp~daK$U?5fotP0{mdKhP$*$8cse z`NJ;^*;UhySCHC}eb*Fst$>Ss)Xm{)xf*DaXkAL*^IhJHBJgG>v8|$x9R*)#*hPck z(#VPB9LYyQuZ5wJ2LFMZzH|pv4vKq({!S7UD@6|Oai>jlyHJzzQNI_jgRu8v9uv*> zjAC=p6UpQM|6}Cx#k$FXi!E1ZyEZIel=HaHaJHB{5-&3%>w!vp=1UD#tmp9+?F2ga zGL4`ajw9S~A_dj3d+D~Fo!5+hf7ayfxQbac{Qm`4CpDgC^9^MDT2f--fD&Zwu z8{!WMUr*qV2;WHHn}nAW_+!GKB=8E(p`5UvBTSo^d}YW7{W$5qN=TlARHyc!w<3Wcdcu2g!0S>Q3wJjLA4^fg8Q_+v|V z5|#?6P+-6YT@#D|@@i1M*yu7ngNSm!;(X~3yq&@+_HwbkyQCB(w@Jwv!vu?=G0LJa z{}@-EV*WRr5AtMTbSgOm5j%~WNaHhlPvLXa=ow_aMY1MZc!;k_qLSnre24Eb_b>N! BP!<3H literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/cache/SysCache.class b/target/classes/org/springblade/common/cache/SysCache.class new file mode 100644 index 0000000000000000000000000000000000000000..f4b58b95e15d9e801a731bce9d888efc3536b4fe GIT binary patch literal 12727 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/cache/UserCache.class b/target/classes/org/springblade/common/cache/UserCache.class new file mode 100644 index 0000000000000000000000000000000000000000..32c7b200e4f434d6c6cc84ade52e805b7a329c63 GIT binary patch literal 3424 zcmcImYg-dX6n-aMHYAH;yp`74YEeT_SBln_AQmDBG>SEVZEeM2Gs41VH*Pj)?8V-% zf1p33mk&ih^zn0_{-!=XvpbO0Bt<^-Lo$12&i%aS%>4Dw<39mhz)u=t41=z>Y*fmg z?AyX^89SLV}@Z zm9KNd=FYM)yR<4ypP_Taax8z8p)K9N5Qomt<@3tgd_{PR3GBjd4Lv&cAjObr>b38> zwo&yhyJ8f48PPm_Gw7Zux$EMZC+=AH87`&sb=$cW?iIw{s&Gt^ZMEMYIS3VJ6WE9S z8V=|Q$h#KmV+jl3T3W zqGD8P6R?l z2AdcS0+)r9P%^8YM-~W#w#}DpL4lrzq2Y{4y3n79-Fa&{ySZJeQ8LX&HRnf*8 zM|M<+!kw0mMN6V2G@NBHc9_IC-eBksa>h;5tvWs>j^RxmZ(*3>V2Q8EZZx@n!}3=) z8>~Vc&lOkHO%;3!F^tH%Tws{kiISGN=pr;;)bTdP7?LuSg7DTYQ!t#{4pYP|IgRQ0 zx>z=e94={?&@qY23`5(bw3!Z-)A8C^m{f)v&l&1A#u}PHIyS;j z%QYw&7PqYj0iL7vP_Rkh3a)CH)o~5)wt{$c+yw(Xgt+YIalsviW6|((Hm_8&O>9wG z<_iwX`I> zIT@l<=~BBda0;7fwb|~kScKYi10YPd*{I4g>`}97yf&w9hUR$P`P`zRwRzddT6Idu z%8#B%E`pIrTUUg?;uf!QkC%imJPIN13x_UBDWIvAB|e*%mWsSj`P?^1HYV9A zm1>Z4yguT$P8tQzkbx1?R<~oK;8s0TOjsNe_mqRZryE{=z zz=5lwtm7_d&L6E?wVZW#O&IyWQ8KQMITMbvpI|7 z3woHbQ;cH!N~Y**9j2Vb`n2N^1m$!Q1nTc->@`4xMSlLoZGGUm(h$mC@Rf`2!ul2BJ6Uzcbi8iTCJR z4;k=2J|LJush29ZQ|aWFDg**ubeL7^<5Hot=s}n+lX- zQ|T?G^s-WVg{(@ydr9fJ%)n!ur`H!P*;cv>5!ZXc1J_9$OF@QjOZ73@25q1xA?vR! zU8KTDOUd6bni+V6@isi`cT{(BOLtP~E|Rd!fFQNhc}nehT4mL`rP@cBiea0CbgP7H zsY4tqTOddW%Ba$*+y?Sbkoz5@5)1SYp#QLfLrCH*MPt!U469h9^$^iE{VJ&9J{}PN T=ZgN4=x+j9hHvpbenjuTHA%Bm literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/config/BladeConfiguration.class b/target/classes/org/springblade/common/config/BladeConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..cba0bc17d628a87d1e234409cbd1167ab2fd2cec GIT binary patch literal 4137 zcmb_f>vtSw9e&cq)!IOjTui4FNhu4V$r@T9X+pNPBo*=9nK!%B%+4$` zv$?3qMNkk0?^4vyeBm76gXuYV^bhd(H+g*C*-3U5)>u<>PIl(^UVhi-cbR|u>$ATD zcmjXUqX(HRdJP;xpTN)!xgkwgdR23=azj~>K;Pqz=S0&2nbEPUS>yyB_JgV!HUh`1 zR$OT-)A9plhRSO45vZyYM!~jOj_Kuu%p;48{yA*GK)*mfRMDI#E3UEydPi3^@4*fQ z%8{0k!`%V{W-Mq@Hlvz3KCby3F>n;e1dgaJ%Wc|fNk%pPM=J0_foDdq&$mr!aVn0@ zA3*V94)+QSCklkyVWjG2q&(?GrsJ*oISdPoB-?AQziBoC-%?>nPlSFmu+-#+qc(Fm zE^xBjG24;VK-QB}U;W&vy7XjK1*TO~*7{_#;ri0f;cEhSnYM48u0?e>hY|YC3^!$! zCnuXuvU)$AY=)7H9E(27;Q@i1={J-YQx6Ip+q<)?Y8Y>g#oU9YW5?tKL(i8yCUH6o z)4&-#Brx6fvjn|`ovZmJ4#5Nx=L|fG^8&MXqZlyrk%8MN7G9fQA!&B*ZU@=)dD=^*;U#b8_zVDjN$ZQgT@W4Inm%V~AOSdb%d{(lfu_ASDnl49vutars?z0TrD80vC4s~hTW zxZ^^TMg2ep>zb-8Y*@RjG;(@NzRipuoOe8RxmmBM;EL|Q0)=_slI~R*IGRotd!w4e zIGjyo?XF|@SGdUH)EWlb#r_I$Ew?^_e)Z@W6nWT zv(Q2n3&&pm>e=W3vi9z`0Tr8&-;+RqUHm^W7C7$8dc~Hf_PFoKKXr!vocVrtYG7y; z0+z;dB&~HuDS>dl91mbmIU3~melfL9>#D;N)>Una{yZFZZEuYh^f*Vot!)jGq}670 zqviUn??)VhWg}T1?8DFV_yyk0;ynYu#IFSIYgatS+h9R5=VOz3L#|0H@`G)*AO^Bc z{WD#Zl1nWCm!xOADm*ps`|Hg{G3A~gA5D`!Dvbdj&dboD$ zugI?4!d>$dy*tQH^!^P4E1AMjc?X4SyVN}$)R#J_FLzL1>7Y(@P$xU6`#Pvjd8az| zzTQENwy002ddu8t4Dx*nIh;d3C+6cgk1;$(s)#v`pJjeIN=(x=PvT`~IK7Q(2J5(q5Z3xWMf(7b*84qHSA1+IH2+wi+T~6sXmFT7|{XTv`ZGOm` zhXe_&+ROM+qS_oXu`&G+zzUjaCY6YyNp zkb9BWHM&N|3#&W$&P@y#D)fN;0gOUTzuZK&_e1n%KH{NF495XJfmKSpj+1=0VL3uS z{+N4j@V^h4cw7;%)ql8ye5=km0ZK8~h%B;7Xn=@8bjf H3B&&erH9Ui literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/config/BladeHandlerConfiguration.class b/target/classes/org/springblade/common/config/BladeHandlerConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..4bd4d7871244ff896b23081c105b82bee19319b6 GIT binary patch literal 941 zcmb7C+invv5Is)Pgr-ZIaw(KcOW%@kv3Q^ewN#>&5JD*+T1A34XV*;}cJ0XPK=~_> zK$Sq^1NbP!*a=O5BH&?nJhR8=%$}LA-#&c-a35C`U*jLll z#)UZ$@69RRiStD2+Y*?DI=Wr$RWNrFf3AbrdNFqR(J2njcU+ z!tA?%I#2I%_;wph9x=k<0xnXvJpOu#BJ;~O=G&rJpjx$ggwxIIA5nZySpgHaW?)+y hp~h^458W|bCiD!Wq(*=%;p){OHb*im^sK(bweM{8{G|W@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/config/BladeLogConfiguration.class b/target/classes/org/springblade/common/config/BladeLogConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..8413ba35fdf9ee11759c9f33ed34f94a85f38728 GIT binary patch literal 1697 zcmb7^>rN9v6vzM57AmDct)PH-zqN(3BFL925eOzERf%X5FJHFXp$xV&&Fn71qxcq@ zNJupC0emRqnQc|NrKNtD&d%vMznOFW`Rm&c0FSX0M}%Qk>8j;6w2;+u&8~3EQT4i# z7T@R6vsN3TsH#QbdR%fngct_m7)&CLa}0}JOdTb6MAcd|II><3j=r`%p(I11rmEXq z?+b@BEEU6yx~lj!?pp34-C4KXrlz$?pq5p^JR_0BFp@+w3S4i>9mQaE&>W??RkMBR z>;@>VEkkJ<1fbC*#*ktd3%uXbs=>7ZTk4nsE`0dI*AJyXBd1Wr0`Z4 zK4m&ceR$bn)7zJx>Zd<8TZ-c%Lq42>whGwLTImxtkiZ1eaZH_M_uBRCTASS@(h1Dq zN*q^Bgsw59_UwI|(j%+Zi}D_KJcei{TVfcs+v<)oo5`NyVAnz|FvQkXg$it}C?tRG z*UMbLvdcA+q>IY2Yb9F?b8ZP^-majOKkRl%uac(Are6Be6Lnq^t{~{Dl*$XrotXI( z%pGml`A4NcP?t%MA9$AiSJhhMwloiyq(jf-Ch!}k3;(nq!@^l%2xp6UY2Rexe?j5& z5h(SHd%LQ#Wg90vuF1E=w(_;Zp9&M$=~Eki-sG5Jx!)+XO$&1?)$YNeiB0o*H%h|` zxIr^uhW04ZW*E^|+6;tXr+%hAMy+_A^dh)Prxgs)85sW#_9pigQCdT^Mvig*Gsz>k zMZbfA&N6P(ce1IEJGe`yd$dMLlA)D-2j&u+A&1#c{zQm>Da)~DIslVs}dOqiWb+kd4` z1qFYAKT15a2^ygRaUag?xqRQb{`mRzJAh}n-9iP`25N28u_VwrQWGUpWrlJ;I-=MM zEIrjm`{x4H?VWxDO@VvX4P`!d+6<#qB_v~;W!A`nPCYq!;Ao=h_+_cJ&dNx*RUpXE0nX%?aIv04{ z`_Ft&1XjlLEeOc%okeWt^~?;LZwupfMtz-YF71Ue)|cIIW%uW}22N#kY~3fGq49L$ zrTQHzcS#xMYQ3|Ci;3sSEpIKHQ#Y(m;Nicr|21Sz(-}K^avE~JCO@)CUgZmcz^ii! zBWtp-l@{E@dU-b8*_69v!uk?{<&m23 zQT3-$HSY?-9fT7NUxka|BW2lUP4X-Ft=~O^_)@x8SOzz+ii<4U(*V{wtO;Dg8j}R@ zgOUtrenaEK87_QgTLpjc8*}*P41bwp0{fLRcD_zhuFk*R&IQR$k}`= G$JQ^;PVmD3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/config/BladeReportConfiguration.class b/target/classes/org/springblade/common/config/BladeReportConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..fcf1b04465e62465061fb21324f79ed7dc37fd42 GIT binary patch literal 648 zcmbVK$w~w<5Pfkr9k+4c@Zd$%!}M(sTtEd;7#CFLpr>?qW+vL54C(Z!pXEvL;0O3o zVx?O|K`&nFCH0D`S1);ce|ZJ4gQY44P^h3df)dIMwOiijUc^<$JM(WvU>VBWQc1hZ zP*_`URWQiV(5B-hJtI}ek9a7&K*zCG1gb4N-oDFSh@Lj~Aj_nNTd5U8@j!=yVZ14o zI89?;m@Do_l$mVmfJZHEq`QA6i?%BhhRx>x#%(cFFLi1HaVXu4<-c^*-OdaP7pbx` z7A=`b60xV0wwZ3y(DCprwEO3~54DuyYJ n2(T>v(j{3#RRKby{e)o4s(qG~Dp52g3C!y4lnPkt|yyt!1=Xo!OzyA6C z4*(aDXhH*gLHI)mpphYLS}E1eTAGncnh7;wT0+g3Nuk^7m}Ta&A{osJV<@XJ1mihP zPYR3Sbhu}7x95%xd#45zC=8+e%@6Xo-^+h@XY2OoO=!a2AVMKLhGvG|M|H^%NXZx( zM#GcW_zG8bZlu(hBiRi6hY*8kWoUiSQxI)c!Nql+6rNH#&l!m{tqt4ZhNBK;vm?c| zf_)5!h*HE;*F6=H`bJEibJBeZ_A_)oXh7QMbYVxNiPWb(gbo~JXwLG)b)FLTtQkvi zgJCSZ^uKVHAe|v};V{YRW|-l`BjlIzdX(~7xVu@{{MyT_f~Ob`*JEa{*^bC4IL2_a zo{c4JGiN1)f@jJ1{XcINHhAhPVc}v z!yRF1Tvu>LD*ENe`J3NvJ3q^CuwGn7TETgS7Gm=Ey|41WzPo+s!VX}|y1B~ZI!XM} z4wQK|tFJZT5{7~p4q*f@S2aj9eoZ7ChQ$)W2h#QW|OQ!0u z;0F0>r0RAFgi598ZWXt7++|C#7HC%JYwnwX;gJr?oVahAVs815YLaqCEwLhUN-><- zZG2TqQ=qL`%e=8Bqn;8@+DzI$x*otVUejURG>L7_F}?KV=#rpSQj@Kwl520p^{6pz zN#f2LK?GK~o|8$my<|s(A#;{w*qi1n)D3gq?|#RUX3bRoiS)$slxExXql|}98%!9~ zsUteKZ9(}67H<=D;}xn(`KM6SV>nFL+Bogz=~`p-?D`F?Ex3+7fqQ6K@U=Y=Tky9% z8C%DJbsYMM3>q*&-}}iNQ0cpu)~9IJ_MwyZuhQF)=LoN1l6F({X{0xo>B$hS4S1vs z*ewB{t^?RlfM*Ht908su!2X8uw;N&iQEE_TO@Mx6&&6cpL$ek;b8<6BK)&b-M z7$cAcmr?RcnfbY;vI?x^#22+PXk4{=U;w3v(x|p literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/constant/CommonConstant.class b/target/classes/org/springblade/common/constant/CommonConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..55cf1978d96b0cd46ec9bb524b59e65bbc549d64 GIT binary patch literal 990 zcmZWo+iuf95IvhVv6H6hC2gTVxnEMCNw3`6B5e}~8M(2QxJB?{Ij#w*Qaf^-@;yB9 zj4Gk34}1VWg7^uv%Z@Mpw%mYWuAs(!4fx2~Y!-94LNYbov>FQ6lu9I%kIBUI=d-vb^79pLa;s6+ z4aF*RQ+cD;-;1l>$YMdnr@5hC3QM>}_J{WL=Ar9^L~+B=R60b}YgUc#DpVa)Z-nAg zZIZ?FrtFJ;%ec>wj=tcM-EA{u8t?RaB|1RHBZg$}vmYD?p6@920smO=c2hKEBGy=; zDr1Qu_4~{BUuR#*R7I)sJ9 z9U6A;pAWrmT2)oiDl+JZ(VidB?d2_}BNAUTj1(64i7)#HF4@!Co?Gi5kyq1hc8JL| z{C?oL)wTfni*r&GZB0=QZqlfaVIH?}2Ml)!C2)`MgBX5DxDdmOglRe{cOFk-{8Pd- z9T8uQ@g?F{VtAGCdJJz6rYVW)Xc}mxd*V4>(E5@PCr{#8NS|Wl1nH4eOq^h5G+M4E gqviTHN?>?J?`ir0LFEz^=CFrZe4xlCaS3ew1>h~%mjD0& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/constant/DictConstant.class b/target/classes/org/springblade/common/constant/DictConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..30e9c7e0c3f75cdb828f558d2b4680a913d66d4a GIT binary patch literal 458 zcmZ9I-%i3X6o*eyVS*^&e|-hx9)NhEV>2eWCT>%?YDz83$Y{;hsl1vOK7bEpJeV09 zZ`yo4r{AxqpI`4E0B`}PEocxp(?#l*&qb!vY0jUdEA(Qa6>h3DTp4$i3FFn!f^`DD zIe+19&Q0Am!z=`}v=FyQ)U@-nGM`ooR66pR4?s;BG2Q~?;mGX^1C#3O>=l|Sw zV2eOgX_ER_z??fUEar(r7W4!m=cWX!~c{cOqu2S)k-Tm?F+jjs3=ut=r$q2_Vf(XO-5&y_D zCbteV71wE5hYU)ScbXe^LokGvQkx1ChVY4FH#}=JhAW6MM8tF7yR=p{l4PQ{8Qf*mX zTghg%Tu#e9%ja`>1y?3=@@7xw=^{83)DE-objYxXYjhq7HUzjUj$s^By<5v}fvtac6hCc<#IqtEEcS z7h@&kWnlHVhXGHYgVQ_0a$A-#*BcFoVKKPzel@AT6&N0z<(NU+c4LP-ye(Ye(BaF%JRVdNt=L_sE}r+D z$>HPFyemStZ45W)7Dh0QIot%pEg}g?;`sni5Z?~)B=Ma9PZQq_@D%aFC6+LXdsw8k z@6#Vny(>>6UpAyd`V8!pfSw#R36HgbuF#;DDy6FqgZrzU#@AuLg^B24`YyoP~&l<^KbNRblj8#tD!Tp&#?fyhrR v$dFh(IwMJVK-vhS37`xQ|6_)!o=WfZaE5)#@Rl+hPzL_*85lH5A|dk|uJPCj literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/constant/MonitorConstants.class b/target/classes/org/springblade/common/constant/MonitorConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..e5a83dc256e77a041e26043a668ce00dc80458dd GIT binary patch literal 1046 zcmb7@-A)=&5Xb+E0*fB`*s87luvN5GTU|x_Db;RaQIcgb>`LPmS&-N@xZ5E1MfxNS z7fpK62k1jJojFi6-ZdoWf9Cw=%ncX<5K2;>;t z6}ZPB<{XwytEl2Wk!>aq1s+LKG%eFL`RK906F!JZGoW$jPZ%^+AAjfemKK0h7<6 zui$H&0$Vq(4bX|{FxwW`VU`|Tb5D-UM#(s~T!ya%Uf;MV;U}YJGkYuW?lyDFM>1$$ zQ0K27Bkvi-dbwaK7%zmUZF+*`2W|W6qS@}cUb90dniaOZPTlMJY!45|d!K!3X3qNG z0oYZb=3AZNWKB5XRkzhH`J8Cx_ONX5fM9_h6``3;BEdsPy9AGhRGI{-)OV@WY^l^y zsnj~D)E%kR38_?esZ?UAR86T=IjK}7(gN!0G>eaTJqOrzxc9H;oMDpkbcslqGA0tabWtK2I=7s-m9U~tEwb`xb~IjNPpa%|){yca7Z z7CZnCg*X%1bW|3I&6)Y;KbM(v=I5{PKLEUiT0su^G741`QDUf{`(J!D^5cDcw7X`rA+WeyJx=^{?w@!WpL@Y*J~Y~EH-XJ7{mi*rRYot|MT zSSEo&u7tL2>perkZ4zEGRObn&Yv#mO_?;J zC81fS<9e=f)bTzVeFa+#g=TUZP&2GB4)}CD2vXM{M0C=ylA#}U{WKJOaahRCLYmPF z>pwjF^@RpOfxFA^_F+#tRs@e1)B ziSH8M!~J=_2gDC0enk9O;x*!RiJuTZy~Z0-eo=o@Vo`rf;%8KuJ~T>Xx9LUdjDh0r eH?Xg>C+?6HGN53WY<0FTVh_)WsMBO~*#8X{yH&T0rbsuOcH6OOu{~+n zGF=fiExEstX!C`wY_(XaWplZ5wN$B zFXjvbfwCaDcNgDD-C<2nO(h3EKgLvY-nAlI?Tn<3Bl1V!8?uPHi`<1QsO z&4#R-Upej*kWQy9Y(Ius%qe&n$0H>B2lAz9rL(SUeDN3}hF3H_$uO7vG|)%6ekd9; z^H;}iMiAB&@o^ka@RT98TPRg)xpKas5p^&5EK)(LU$A>oJw}H3hpeW3EbrxO?+ZGE zI#9GHQifrquljy)ryR=+Q?h#AOTVdqJ?Z%R+3B6nw2=nKTg_3`5EJeY)}9Nk)sNEqc9FjJidHF|9i)TV?>p&rfeE zm_&Lw9M9-MDVRnY3t(6z6v7hWl>xj;_{9KzN%-{u&JbQ7z#D|=O%d00Fd4-Aw#%C( zk7E-#TJy9c5GD)kgigUupd?~HFrp8sqnaL8$25Id9oO`TI-%)`I;H7co!0b3M7>E? mQE!pu>K(FC^`3T$2Pc^SMq~^HvcV4mR7$}%?QD@B!uB7@%>K9l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/enums/DictBizEnum.class b/target/classes/org/springblade/common/enums/DictBizEnum.class new file mode 100644 index 0000000000000000000000000000000000000000..486c50943339b82c107c4039d634a0c5a1a6904a GIT binary patch literal 1354 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/enums/SysType.class b/target/classes/org/springblade/common/enums/SysType.class new file mode 100644 index 0000000000000000000000000000000000000000..0610af051f8bbc366d193a69ad4b90ec2948a494 GIT binary patch literal 935 zcma)4O-~b16g{u)(CIKOID9BlMUanvC?tAyVzI*OD_sy4|$0q=CxUC_Ca1;?8 z3VHGc>?#G=r2^gJXyD>A%VUq`gL4@@t1<`1p&2UH7gI? z4Kh)~LluJpVouf#>$r$Z)M)RttXflGD0Qwu*TG`?iHggtSWuDVHm~9;E55yacY3g= z;+jCL^ZK}Ra@6_oOvMD@*BASpw;xZRzfm#Cg2x(7PwSXLidM?Dw_?>PWiXXK*DEmd zkAmPdy)F>x8tBVc9ebr!FWQYYt5_qCk#|d0ZQW{AB@PZFUZqMq)A|1y@FJ(SY%HqUObHeT?o($=!I9Z;&Cdp1z5;I>%lY4%9p`7y@vQ{P?vmSW?|+E z(mc%&EpeCsYnda6O!ffLeWDPuTob$t#1MhTwHG&thP$_M6SG9D^H~K<=87PYtvFe( zlKwNVOA;^h3DJBgmpw#$kN7@gjuut&Z)BK;rJV};vBg0+7{m^(NJBc6QeR+5 yYBHeyz+@B&5sz!hQ0O~52+aTXWD?05C3A==*`zzI9{+Ik9H|nJ3g2c3w|)WE5Vqj} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/event/ApiLogListener.class b/target/classes/org/springblade/common/event/ApiLogListener.class new file mode 100644 index 0000000000000000000000000000000000000000..bfe771f865e6bfd4eced1d0288f024be3a94871e GIT binary patch literal 2308 zcma)7Syv-P7`+viKxiZbk&$tmaki|qEaR388sea6SR61u=u4+lB#oW!obFDPpW%z= z_%l3;&iLS&XMdE(Tb%%bkcADOK+_q;*fkZM@J~ldrZW~Tr->V)= zGss6VB`_O`+ks{4J4P#tn1DVsis?FjU@%Y^qSV_>K@%8b7Bh(A6%BKUbI<4k50Zmn zugzp$;Qr9CO}8d(ot3e^X(aG!6pI>e;x&QHpi#5wI+yS$TYexN=?Tn*sO@`hOL~DN zeSx*|paTV|(RR#+-lC?jZz`xSjPfdlTN+-+8v-$3dL8L)J4Y^o8|kd8sUMshq{(27sfvQ@o`(B)K)85I6abdGl~=+*i~boZ*@o{km8+KF zrTj>PhP=T1;4v@fh&l(@BcG}WjF&if9GbG_$lZ3cD!oIaYEwf0reRkM&rC5y;nf%~--|N2Fkemlb(T#I$z387fCPQSdwFw`DKJ7iPCOv9jAAx)x$RC3q zTZW{5MwYah=oogJ?fzx(=Dd8$MpMfmPxMvO|Fn%_B6UZn3MK&x2Q1co?6xd*MHjl` zeOAq~8cecmg7XTD~ zF&n`P+}O>ff5!rUOV98om%F*=co@MqzlL5m_`k@v8~7Mg_=NF`xQ$KvE>QxcyMB36 zGlD|bNmAUTlw@bynZz0Uk z-3s=pu1fiit12at{u8-$<`j3+*;6c~bEjBPDMz4Eo}@Lf)|X=9JjFx^nL1CXCy*BE xOTji4CNw)ng*cDm6vkP}S6HPx75q-<7MPw-Jj2>=_)tX@eG!%7Q_3PZ_z!tfkX8Ty literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/event/ErrorLogListener.class b/target/classes/org/springblade/common/event/ErrorLogListener.class new file mode 100644 index 0000000000000000000000000000000000000000..b592eea7595b4c600607faa1382dcf2c78cf9907 GIT binary patch literal 2581 zcma)8SyLQU7(JJ*2WW)AKqPJ`!4;h=YHS0{o6l3{|ewD%sNz{ zQbU!FYSakyx?bAw*FD=wFJ;VSX;`i&jf|T%ErWSC=UGx9 z-qoF2GdD~lV>)SLc4xdv|W)I7vndA|&<+3lUQkrA;qJryX9j9@IaIsPp0JbX3p%POJFqe_O z;cxQ9vWBuoNn?tc6||D|=t8%KgpMBc3Je~^?CB;1bl=>N#f}je`9F|_;>l?Jj=63| znhsm3U!Y~b!zON7ay_tJM4jlsm&G}q2D?@AQ9MjTE#&Axc3W-a-pQvYa5@^!c*gX7!go+JDKJn5{zJ%((F;_KlNQ*|Dcg}Vx$Khk z7F1>-&X$>3G(B6b3!625feIV*a1oQ$au^wuAtx$UhuM+`O8TN4*;BDC)5bGfWp43%irIVwkqq^u<+Pf#eDiz$MV{Uvyp)+oKQ5w zS+nBVaOCwAj=U&2R)P>?lH*%k{m!w9W3uNV#A9gFz0LJIXsEzr9GmG&{D>Al?b~>P zLucO(&Q{>sw`iRH9!B$E?+%74@qh+Fll|zUskb>lg&5x>d|zT%mvNG$(Sr#}jKLsr zT%h|YN(}LjCWcPDgLnCl6X#8y!ZZUiP>&hRa*u&w4)1YPvn!aVuLaI^j(N?ilv?DD zh6+bRUp=mIQ7tG7yw9hN_CDbFA)k+^b)7FOv@?Q_sjEP^&QXC7PyB=niJmQVCVIEf zp6J^`%LDFLgjv;48yE~DPvqtIVvC1htM763H$V+FQ-D{70X0-opoyQFxY@+eKOrT&=8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/event/UsualLogListener.class b/target/classes/org/springblade/common/event/UsualLogListener.class new file mode 100644 index 0000000000000000000000000000000000000000..6341ab26d93961a467eed662f668bb463aacc3f2 GIT binary patch literal 2330 zcma)8TUQ%Z7~KZ~31N_wrc~;st-XG5sbzWGcbm6ft=@8 z&7k4iZnf;liZU(FSEl1tO?9H&(0md!rBn2(kMvAnqN>6JujyM#AU&Tc9?KJHI?}D0 zd*x$gg@rg00#ng)GqfFZM>gU}3YZuAu{<{jC0#`>HrulV41rO`F^M?dFfff2=kzXc zcfQ~4z({5U?p^4%?p2gyGP5Yd38Zl)j#&d&@uon&U#(vE+;f-|?I2XH@&%?N?Dl=H zq5RNRfx!J@zX=VjY`Rv>Y)~>VH#Fccl?pnDYX;uJ+XBfz`6tTXc8@%QH`G{5(md!Y z6q0xs*We8L5ROR`eg3u`U+haUF@exAP|2%70) z*)dbNKz3O6Lsj~7%#<`-w+-CEUBbnaq5-h=!CdJx#Q>X*3e4b?6|0-t8YRtbX4cj! zOky6HII;#7kP}!wkJ;-@2pEApQJszvSo=SaMdF3t^Sj}Bj*>2`xCk?j_YEvzSs-=3 z*968_ZPyOh*ckJfQW7h85XT1wKEy`?SEB@+qm^S_->UMrSYFRRZS`<#N#IUzFKs$9 z2pGzF&FEl$V!%K_V5WatU};FE19+s6DG9_j*@0}GqV1~PX1%QZLs@pXLJyX7O47IW zyuBC;Yc|_zP$vxOOvXDF`DYXK9g1O0N5%1=&2!T&y6Mmvw-P*UQQZXEXbmFJZdbHQ zEHL|OVyBHxat~hhu-e0K2cf3sLeEN@XxA7=YDa}Nud*+FSy!R*3DDf*rW@LIRk8z{ z=&if17s}8ktFlTx5FBZhA3gsEGq7rk-9ay=>`I&K!KrJ}#lk?H2)Z8WJ-?!SN)Prx zh7Z+GVVgZ8n(t62b;eGl(`4Cy?LR}W@44Yb)6W_`+4Np_!+1%b)x@erfTC7QwywV| zTOZXcoo4Ukv#6Vttea-<0x?|EO~bDlO;gcGc8^BhGaN@jh_TA?A!omEjB(5@{0Z?K z@txev$F~v;2p&=1DzZsbYCT7x4asPLGtUZ#C`EGe!;_NYJ HBRKdEy#t!C literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/filter/LoggingInterceptor.class b/target/classes/org/springblade/common/filter/LoggingInterceptor.class new file mode 100644 index 0000000000000000000000000000000000000000..dedfbc49c1e6e610f247624762c9bd0b9ff393d5 GIT binary patch literal 2165 zcmb7FYf~Fl7=BJJY*-e-REt2VMQtU$ZHriI7H>punwAPQO3~I$auODoUAntb{44$k zXVlI}u``{1_D4BBXE&5olCdyD_FUfgectPH{{H8$rvN@eO+!lHnjbXHa5r$gX4SRp z(yaMAJHBT&95<4IS@xSvUM+jv)Z}jD2RbsyYUnedAtx}rZU1PSuI)9=mFl*vMFM@Z zj^{)l3#6wCl>z7&&|nxC#47^DBe+Ij@5rD0;0JRnigwMK>qsv$OYvukC#&*dONP<> zo~*SZ$M*y@8Ly?l{i$+KLmj%-=3Jq-U>C%2*Y`qcX&4q5jU#h>bJ^Q%MQc$Y?VVN0 z6a@pw50HtnlhU6>pu&OOclyqpsaqpfl&=(2F7tlU^15R=ud6S z4ni53Ymx2M?Vw&t_Mt%b?)t)mn*w8r!A{|}kfmb?XI1Uqq~lXvfqN?#DjFsQP9M5E z*J?CmAnQq5bezN6%Je$|r;bb~msX*o?k^a47gO}qbv#Lr#}9*NiCr^{lgz+WuB{v{ z3J6`tWn9s4)qsg>)QG`5#Y?{HvhnmJtLfBrcQODrWBwf}~1g~Zd&L)RvBHp$rym6(bv_pRJ?jQU(I&Ux?DR!;sK9FJ%RJFv2KS#2@@;-0`@iQ~jBjViX=l4;To9m$mZI!Ab@%nrES+NsK5-LASk zp+hy>t=NI1_U*$=wB@j_(;Z{{ay(@*QO+T43H#f{{gXQY zHDC*YDWs@!*@p*2v8=z~sTv z*ZdZrsRc*1)5!6+>#DMeN!5h>FCm4T8Va`M80N9Svqi2`SVEd>zHj_p=84I#;5U15 zAL-v?kuUh$7atDeORkMX0A<|bPT)3HXhbRhN-&LI>&m6e2k1|un0bPsjnT{jUKRKQ zBm0;rW}o2P#%OjQZ~ck$`NCsdI>7Z5p5cRH-)QDHs;8hJ^E9Ts)%hq);0$h(Qx*JD z0?~#i81CS!*d+_ASfjQ&TgP2GrQKA6#klpon;v=;uTC3?;zr+iI)Hp5mAW?5|${CYct!x!0gOAGmDbDntP%z zNy>_qhg2$6c}yi%X;5={PUUAL_?Ul?gGyUU9@){Vts=SdPcuJ|x zq2vrl4B6ID)-)M*J}k$TX*W`(+g0pA2j$>VT^J4&Y6jSKh2`*Lo61_cXAlwuLCVm% zCn!q|`xNX~aR84otj`Bnln6tNTML8S)2YT=LO11XwoTOFAPy-wtl|isAcRVp6=2^t z!wripr|euUPDsneBrN7$SNU}}V_UB1l4R~;XwH*xBx`v_TJ&GiMMh>H!%@m%>Ha4V zzPkJ1`ZvFSd3EXLm8BcEmu`HqbnDZlkFWjq!{>k8zZ^#=o|Nb3SPAWNz>=fm46E~q z^*Rn;klcx*7m*nHi6oZo8M=^MI;G;Yq<4g;i26@4C>h7rh3m$UpbB2Jow*o>7^*yb zPFMZmvr1$3@Am)(`uZwdk=OK96>s5f!dSO0kIo3yW@BNh)Y6@# z{7kTPYQ+-`c(+XRoS+UcU|GWHGr8*us{aQJJMv%@Wmk-uf{%Ox=5Tx1R^o5~Ft*UQ zK?NAj(yv*5AJF@0x;iT`LcN{ZEu!>Hl0>67qj%NrJ7C}XTSnZ*^_VahK8(75N3VepTj`lr^ zcszoyQF{-aS(DRcFG6I?1R^LxIWqFjo&w8){#|Wfe9H+lQoS-~U`3Z~!@hm4W zh8OT6#Y{2cC2&8zF-$@yyHSER1%XPkIDjck6Ufr;42_~>y&DFN6wH$LHbnj+S1|=m z3g#4~6&zHcC|Di*1MzCuv@uF9GH`svY9r(woBInU^P{ekBPO{QEoGBp?CZa`fgzZ!P15u4M_W%F@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/handler/BladeScopeModelHandler.class b/target/classes/org/springblade/common/handler/BladeScopeModelHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..b968106b78a42dc8083baf4562a3d53428894db4 GIT binary patch literal 5273 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 F{~x`$?q>i1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/launch/LauncherServiceImpl.class b/target/classes/org/springblade/common/launch/LauncherServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c33e4c1c2186d470b094974a994de49f7c557c40 GIT binary patch literal 1292 zcmbtUOH&g;5dOv_Yz#pl3IaayfeFYi81-O;D#WtNs)$rYbKo}F9mwKlXKQwX#npf0 zNy>viz#nDVv%3&vt@7YydZr&=cYo6}KYxAy0bm2qE4YM$g<=&Yj4@0d@+0m9JUnpT z_YQ@t8OC1vp|3X?3iU>}f-){!s8lhI>L2c%<5-IU!^DBmyGlkvXj@=FpwdMFxEWOPMZ%yw=dLoreLU^!f$z=VpyuDbtTPqv?-&Nm3m%P!7Q#@ zn5$wQ3k)myyh;#ZCYfVejFTSYkF;eNkI%?BX4uFwUSuL)M_$wDmT{9|G2_eQn#Xde zTw#01As_gzEkfQ4gjdFGhSEL{VqxJf!+O5pgs80KQ<^$L9r>U_p=7R*rGmY!gkY|}073Sz7)E_BAm-pw*axWjv&{ znmS+!kLbiuM}t62@D~)w6IeKb^`bOis!gn(VDbbrw7pTgMVk>~4Mp;_DYZjSeT|-5 zGeO@>5i)ebqO2=P#sxgaDrGV{n|6g{=TK~sP-d`>CnTGsoi0)k$lW9`J()6}(s~Kc FegljxV%Pux literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/utils/AsyncTaskRunner.class b/target/classes/org/springblade/common/utils/AsyncTaskRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..b25b6dd6a82d2efc6697046e8640e68874a79487 GIT binary patch literal 282 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/utils/ListUtils.class b/target/classes/org/springblade/common/utils/ListUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..470711ff43e8ac939c1cb3809e877f43b82451de GIT binary patch literal 1793 zcma)7O>^5+6g|(9tvGfP);DpRL?IJtb(bx*IWh9v? z%&_2RkPSP!$pSXevS8WHbj_b(hEmRx>_jwO;IZDvefQpT?zzwM^M8K-1Hc-#ClQ09 zK}{o$gh1xd_}b8IqutV>vd+0Q-oiyzWPUX?Y)>Fx3Q0sAWy(vk#>)cJ zr}z!a^CxiyS2bKqV;utw1IgAyEh;g6V2*kaCZIN+#1o(<#)vc%+ z5{i7wsAyP7V-ZUXbli?^42*VH;`Dk>-;3aRH+2~#u~=1dV7R^&cH&ADFi3nBN`o#i zF9E!PYxO%V+c+4b=#r@y&8}`Z2kh-k!|Izm!(PjD_l%ZJOSa*(4f}!NT5>-!s(#lZ zrBdVnrLPL4Ebp#tk0dLgNBN&#v1;V zL(g1?+G`Oc#$?kOx^45GCA&Q>Qv?@oSqhEISmrNGepFCEBsjjyoz7Wsj#qwz_=SrY zZg7;xKoTn))1d?2!_B~U3-8m5!D5MXg0}A~3qK*Q9#@{Cu<#Vw$`fb;3&Hp!;>s}% zQv%zxaN1dXf;R+yz^$dxVv&~f0;?(wa*h|(XGj&}&yaca^3S4LjQ@(+qnFQ><1q9H znK1MSn)(Q;a!e9RKzxOCCFMA#pz*bK5gEQN&fz+8RNy?;aRHlr9qnQk9n8VvsVuV2 zLN=+=2l$W*?b72TuHv#dtfIa1k2TKf4UV1FqL#s)s&InyxpT{2BliF;hd@F}ffBlGmylB5(09^RD2fJPzoIH8f?zmTMH3Z58&kED=*DL!LB KfzP>%q46)*xrd$25y))IH_~d$ zZqs^J+qUbzz{mrq>-diZw1TmbL;}e;QaVPV3lvSo)>j_L2jG=sik*?=46UVHMIm`=8948)dCTxVc zWSfhn!Vr9LT>95yY^j(Rbu3^}Alj0>mcUfu)ft{^0{P*Xp#;VTajR~F)Y4_AYd`IG zYBr^-wQ0$g-MVaVNY7FG&=~bw4lihy|F;Gus#dZ6mfLtPJ=w8++ao?ntyG0nX>upT z3U9{B(B;Lj_}RaH$MTq&EhQ7 zk@*Sn4_ri`qK^c|Ob}5YID`=eidd%QG&pk_oI4XdhwCBFx12SmGR)$8#G-q}pBOhk zBUj{jhnTik{DDM8U2B=+5Yu~f)`Ht*$r^0rIA$=7SpZik%iGqw^W9sP#Lrl#^&4{<>yAC_iuh+XE=#h0N%*~T~`O^NTLeQ(D z4+)0E5qEQvVsF(L(&c@A#0{5wwy`S}q{vp+(T^((18v)NS8xKtkm+zx;CR&)W&$Y; zYDnuCLWW@|imA#m_MCCz=pn4sw~u$L;- zgpTXDK|0sBRZ&qm_x0kwQTAU#BJQsa92kj1%}k02^hLX5covUa=wG17Ns4Ur`3I7N%NwnP)TAM zGa6z2Ebo>Lso)6#m_e-)isO5ux1lL&>0Tsi|9cc^HZiSsI=cO>!)iQWFG_ zr0Iwx4K&?!(Km!Sk_PQINybTLiqj`x#hDXm#n}@ii>Da)6j{&H+5<-GFiNzJL=iH$ zhXp#3r~0Fy`$gLK$I$(O604;25e;VQTvLi7pJ&& zhFlzUPM)F2pt8rHvZo`2qg2fpCNWO0dLlxip9gFqS&Hmgo{aC)whIsNkYtrMts=0bMKxz_uM;Ye*XIQ9l#T8yAdjWx%b;uNYC4+YO%p|26Ub}4FO}01SR8;gQ?d@6B#PWXS({-J zsORBHU~5>bfD*17m^4vFMWA$1;C1J~brhR<>;;~BDv+(!_r@`Wn+9%~nAY&g3-~!7 z;z+oF+qh$3*2J8~Eu^@=Qz3ijoSQ&c`;XCGHlBZ)LVZslw;Aqp#uK&|xI0O|<3_uK zsZZLWBmF%YdD|FfrWKZeh(PR5WtD0>pcB;^fZOJ#wQqGaYKNc@z0p~h@w5*F8w$q3T&XvHJehH zNy#@Ev)JM)|5%j%DrT{k(lXPGxgo8G%rlT_8>r>kUxRK2OIW7Op~=*>G}6R6ZDB}> F+usk5Bu)ST literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/utils/MultiAsyncTaskRunner.class b/target/classes/org/springblade/common/utils/MultiAsyncTaskRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..6e0a7b265499958ac29e71b605e780d4e507d66f GIT binary patch literal 2525 zcmbtWYf}?f7=8{Utb|1Y@q(?kC}I-OsHiOjr3%`{hIj$7sI6T#YqGG}jk_lzww=z@ zU*RwCv(qY4X4-!4ALxJSOfS#bK(f}$j5agLxxMGTJn!?qC%^yw^Dh8S`uXT?N@Ia4VUAYYo|mpEFVg9NlSno|=mjSAJ?o zmA|`n^kI*{mcT4q#hPOY^d;+>nt>^BvKQ;vzOQ31_7Q8p<_d@#34Dlt4f}N*z<@xq z>GvJqs94LMzZ8O9Rfdn!;W{vxD=Ms$BVx#im>~b)y4=IHVz|j57H>FQ-C7 zTHru46Q<{yHQ%>fNsBdCPI=32-jHUw1H(A1;fRh5jtXpTUdh`5SriNG2aKK^$|aD( zag~Y@ZYOi8Id%7>j#K!ENZHcz4e606JCmshRJo1)YzIa$rXj0i9H%#(4$<5cVen-m zC|LJtmj)T;C?<4#g0nQ}hTFZHx+7F4?IvHSfZ4Kd8AT1}--&X^6PUuMD$dUYy#GnL z2EihTyfzov)La7Ra8cR*TwvD*6N{O=S1MWl1;b=MNyPS&CF@%P z2cu3+Iz|v=Q}wEh+{~(Wb5qAHe925YUWw^`SxCcef#GIlyrL7m)Pzz|^KYzYQfAUC zlDgaSwrdq?l?BV6Rb49d#Wb8b!?)FXV>2epHp_419a;=~t?G@rqEg+&e8W8^Nvb|5 z&>bN`*c!8>?X)G!Uh%S_+5&S#7q&+`jjBTOf(6FT5_VYueREnb(XNQvP@EPWRol!~ zdC?YG>O;iRW3Y6~g`uasmo?#rFGtw}Zrj2R{r-mBiXhOk?^p@-3x6jxm z*N`=ziP+3$*ahC8K8%0dbT%He#Ee(-P3wXk_T^W-R!5X+K3N4Tkkgh*J#p1@>LCj` zYX#^hMOz^76d`&rnt8dVT7{>$YRfzQPQ)uhxoL|MZ z!r^sv&8LTkSJBgp9nY}q3B_8lz~7xz02+v4JKE8UZtTE*8Zo(>uB$^47FSe^J1Ehl znkk1`DBXiHY&x>Y-S!p=fJdOvUMz8&eu?YQ=o#=Z9eaxRhMwbtN9aud1Z@om1)i)U zH9xe5A%RsKo966An~vxv+}dGvput^T+Tr zTxzI$jD3a3qI)dfSoOt!eL|P6<0hlH8jg}~N!;TXj8)-rkr9Ci#2KTG0itn`7#-p) zi3zr`D>#l>jPUkJ>KP?AW7KwvD2(DR=aS?19DhKzf#C$TIMk++^RR*DLsZ}rr~%xD zhbqy$%X2-%SDpEs1>D(0DBq0`Qrc{6XOU*8{}0IqRXLJH|TGG%0uW2nyfE4MtZCf1`f6K=?m>q;fV9z(j> z8s$-7X#09%1q&_J#PRr8Sgt>x`^t(!=>=BbUkrKh@*F88bRH#!%dPo0!BV+@42I0D zKNbuXTPo3y=8n)q?s$aMY~SVHh-+#5UoaC+Wk5abtxeWMb!ZkHDTaE}j^{PPEn5a* zr!`_IQcRf+RJOXAz|dG%v0SW_Tx{fa6F*+2*@h|E=~46Qg9xYo_=#&i7opJ9r#O%k z#luL`n5|7!{}eJ>O9MaBuDFx&e%7YEGNa)fdHP{$K;La{`em{^2#g#55(Yh=rKgNP;dH^MGbODNQ029 QaeyN_DI61c62DG=0A(Ygp#T5? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/utils/TaskControl$1.class b/target/classes/org/springblade/common/utils/TaskControl$1.class new file mode 100644 index 0000000000000000000000000000000000000000..2bc4ee0f214fc1889f4a2de0822dbc956d6f2cb2 GIT binary patch literal 1060 zcma)5TTc@~6#iygy6v(+ZAI~hs1$FHT|q?(~H7#oql z{U@S9!MZ7N(#14R5&9&^xW^1r1N4Tbx5jtsmH8?%Jxi2sYel)M#Eg6Yu&!@gBE8PY3Jo6J*Pw>D)ZE{uo+PDg zRH@xZL^irA+8Y3Kno(c*;z?j=LX+{2rPqFojKfg(8O8brI{QQB0%et{UA+$m3YVn4_`Jg5d&KK5s^!{sxP_ zaa=@-tiWxOjmD|g-h)*?z}_dx!X;WW6banHWm?_j?BEJYBweL%jA4wD&ePFK%-522 zj^sC_Nzp!gfQeU)uLmer-+_I^X$voFhi{Qxs~s+U*(a|I4e1Pd&d>mwJ(UzLAWi4H zWW9$X>I8pz1jOtRM45c1Vf~~)%Qi1DwNd#_!D-aUXkh`@X;0Jdu!yBZGl`qDJH*DY Grso$I&;95C literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/common/utils/TaskControl.class b/target/classes/org/springblade/common/utils/TaskControl.class new file mode 100644 index 0000000000000000000000000000000000000000..78be49b1c123222872eb4c8faa458b5e688f7efc GIT binary patch literal 3183 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/business/controller/WorkController.class b/target/classes/org/springblade/flow/business/controller/WorkController.class new file mode 100644 index 0000000000000000000000000000000000000000..c7bf6af397e22e59bcb1749e5363206ff0080ba3 GIT binary patch literal 6288 zcmc&&`+F2;6@DjK*dz?O5DLXhZ?-m9##(xz0hDkP8!ja@D4=$Bcd`uZ?kqF2p;4>F ziejkHT3ULOixkC6TktVLiVyzoZ$6KI0t@Az@bNu!+evnlkjIKYB>T8Hc zT+XnyU6y@dU396SO=fN=WI1urut&_aL2m;!-5K62&GDyc8>brfHK75GNi?Zg098Tf zR4-}EHnem!8GCPr~nWDn5@dC}ws7pn6?9qCwV8|ocmR=Rhp($A4>dt{^ zJ0A45Lxj^)IYSHLd}n0}llL)vHHpVntiTfrI;N*xa?PBhiS6?oaV6%icf~zbu(+c$ z7EwWbFThiHI*FAkoA+XuwwTFCRU7`<)MN zT)P(Iza7sdu|vfmb}DGCR31Oqx%?`#V7hA*)OU0aDQF}b+Z`|+SAkVa{Hbx_QH&LJ zzc|N2pi8AB)aFeJd5=PS%v-1c-4&UoguHxi z2Zn+rllhMpLk(V-lc!ZxG(4$-auC$BjjR&E`PR3F8ntdQ+{Q5oMNGqCk>n6tD(#Sw(o$w2 zqv_FHZIj_{(Thbn;JNi9dagvdn!E(-&3PHN+9Q)S-F>B$_M)jW&5CwJg!-~Gs#6{Peazid|sEx zzNdWR^-ssI_(ijP^wg*4F5W&j&Z?dF zj1lY|Fn*mInN#(Sfl7J3cI`?qdnqRf&w=Edf}SeBUTW4pK@{x$EYhI1b4h@I{a+;c zOmcfVQbMcA+jTGbBsA(I{I4Hj+fWt$lLG$6-_PAV{BabY;bnu%Zp{y&Mj1wa>wUlF zvC~z48yvQAfsG6!n}pb0`7^Vz+9t#PF0hedWHV1}#!lb5_C}SBAK!j=GT&vBvN^-P zCl+Hfm#*!W6RTZ;Y~n^_;|r%6Z?%|ke$QcYjcs#^oIA;qgd~E3g<;Fp8{$Y3NBN^y z+3ESq^U@!L8+7MRET__|Mc5kzd#qiHF3ZQy zl;1n6;4NQA;XYl<9@|a75_uJ4ws+Y7=FLnx#HK;3WT%adru1d)lfNe{7m*Y^9YZ#A zob6!Mu6&N5^m8%wYJTN}ZSh3t^+b>}nJ+Q3oQSTTl@}Q~o)ZP0?ZomBQ zt&}Km#DlzdG!L$=^q4zMlpM_CRrvL!RTp zW>_e4%0UM<90x8+oO)k9pN;U3cMkDd!Hb+Tx*Ole4;=iE*Dv8m0d1RZ6P&Y{w3m6b zC-B93Z0)VVc^g_Nsc`P{Z6eN#Dc{TVOFseU7Wx;a^$}D5&SBmWrj2zp@tOK8e^P_x zD!1CvGrQqm{tiCi2tKDR^=Weq4MaXI_WOZyNRdVux zGRSK9ZnFAi$m)2=>cmW}UYn6s=QON}WOeXvvU)va^{bH88#A#wiM7lODJRb|&ZSPY zGp~BOui`5cc#@@P)m5yKQc@QyB`;wi#gMdG;+sTi)s8p4QX&b%-r-IDgr(pu#=Bn% zPK6NP4k5l%fymFgQIfpN;d;Cm0PN>l0Rf48yJh>YL0L<<9#pP z16=Rd#P#bC*Xa<~nF_8}g^LHtdlu*DK;bu%-vrnODV{VgZJu~N6Zj^j+fqZiQ~YxM zwg>S6-ynk67Dz`YI8PDl!m1-8p05e`gAnkA5b$p+fS1OqjR+ZF{~d>exJdW1>3jL> z7t<@)*3~_Zp01v8C|$kdSazAu{ayE!T`^4<%UR_YQaP<;hZf6sTha>-h~;QyZEfYv iRzCi{=k^a?T!;pLkd&@e${I?BJ3xx%3~0S|Jet literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/business/service/FlowBusinessService.class b/target/classes/org/springblade/flow/business/service/FlowBusinessService.class new file mode 100644 index 0000000000000000000000000000000000000000..90e3e2fd885ea1013eb349b11d13780dd1f072b6 GIT binary patch literal 866 zcmcJN%}&EG49A_ZZfuNgd>nX$?Ly9Iz+s?CNJC8OPTbr!l#H~gl6GjXz$0nh6aNxZDMXSBhxrg7zzHO^g9mKX9k`UxTeTmUl%46GpWe9*fDOGZqix|7#z^}0(dli9<-nVZL&HI lICLAWF0BR}k-N9weZ1e@-|rs4kXT%9kHHCT3{K0;XMgXW`Y-?h literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/business/service/IFlowService.class b/target/classes/org/springblade/flow/business/service/IFlowService.class new file mode 100644 index 0000000000000000000000000000000000000000..79017f4185b9e56feb981eef1927d172e6bf9073 GIT binary patch literal 1158 zcmb_cO-~y!5Ph@cqk*IlpcG1b>ZM$;#0e?12ZT@~phZg612<=5Qp3g@d7YsAg8ru- z_yPQ=igB_biwGhh4x`n~KF@peVc-1!cMaexJ{1uVc4FHWN!M!AZbq`D#Ca57iDoa+ zMkR?zlUzL)H!)mYJqa)091skE}AoU#dFr8^RH zpw6|?PRGWJSr}J$qy~giUs^4jkz#zQq1#5fo>hduFOa$tB_YGin)1y*HxCK+XsS#~FPWt10t%&^}gV+76F~U|xlB)_$_C zve)%H9VKCRCjPC=yhdBhdsH4T#1GyhLM5A+cjWVw%xRvxMiJ^yqh>6QFyDxKHdKc? zVma09P2BdEsz4yj@s$ShIYJ%<1SqmsnZq0Yl-TCk7T5xm8B)nY-cE%qVkym1&7sPW rWwsTzNv2iK^bTuG?#W8Q5cVGaaahMjdOFXF`R|DP17kPY3-Iw44rElp literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.class b/target/classes/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..2d6b4bf7fe839fa3092e826a8d5f3b57182a6dc8 GIT binary patch literal 14435 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/business/service/impl/FlowServiceImpl.class b/target/classes/org/springblade/flow/business/service/impl/FlowServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ede09a2d72395e8e2b92bb2b54817167b8d07cff GIT binary patch literal 4088 zcmb_fZCle;7`{&%h?HO}Rwk%J1t%0R8&k(xLGp8L7)`#k6H&%eL_4d4QPYC{NN5rTvk zv@#?Ovmje#Q_~CCqLNqTm7=jBXDgPbtCl5Os=2P^R9P#Pi}EzR%D4k*dS-}fc~!SH zd(#_bI5orL@fb?BsLHBdpg3~6ep)JmeP|OAk~X zFQ~TjM8Fv01A{XUlyyZeDtbZA*u08VJN6?gA|~MgIvM)*0EnT>QtitXdzF`yQ*1TA zND0z;hC>6pGYl?q65|pMp^IU^S)q?gYK?>bKn~{XW)aH6=oZl<;Rud0oD4!){|Uok z%T`SLmTBZjnzT+&dQP3(wbQtWr)51_JfUksI=)M7+t6XfBoO1bLFX zh&v^MV>mA11Wq!vj%&JRPcVcB2AA5=k5eMvl5m=ZS;pq~CGS)T&};)Q1(7c#Ys4jEZKjDLLvyM{xTz1XzAFJn@~l!Pm|%Fy3vnnv!X zD|(JW)U2zevc1``=x$~os5zUcir@oW6Oop19XDPY)vA=shH1+;*2#J~Q>6t>U51)P zb09mPIJC}6n8QtmeK~_Voyx!OZ_3xsf+BCH@S%ixWZYi0q?j7-gbZU%Kd&cu$Bka$ z5iDX!#BB*5VcApJ->`ScRLYt>&miO#TVXioPgo`KB@8%UJH_9Xa1ZwxBwB0L0xasJ z{(xSy_4;p(fe1dqaS@*~#2O0`k!2WdR3Lb}N&B`M1|=Y|Z$)`f0-KwkC?}P}R%5G5 z5ouFKo>Yp?(0(;nDP>i2!PTvE#>gqfDh=MCV6SS#$oMWggUbopJt^nGvfIk9s4KiZ zYKG2RdFSrZ$V=57nYtE3+q!2f!Vqn!n?}5_)g6LiB(Rk<>9L#)UIxQ(aCyxr?5byK zv#fe-ovVj9zPmu*i09M^f)Sfl?NuXxOEHxaEkTp2ZOdo{U9l@BY4zlP*kX^lcXx`H znkT+XNJl2A+B|p@X1MkWc>O)0o;_-W)YN#pY$;gmSe>e`{ls&D5=P=*fwTM{=N0I#9J>@hb(X&}(^^+&2y;GD+OYTzU;X>}hS zT%xTtV^qwXI<4_uAD^y2DWBoJkPaeV_9e~IXivDT>xQlHWlyz_`PSMB_xpxnuE`r} zR?cdAURG*z<$2YzrwrXTjbc$XQ*^)zQPZU^i7-0(k(AE)o&0d`TAESoVTNiU%|E@Zlfavx<5EHJhF{91SEw&aBTSndXp{PE#1O4`WSx0KzGYC`Z^4i z{&rCYU>yAH(Su9qqb*;?Bvxp2!i|msR_O^Cg@y-&fZwgrUC6mBqC~NJ=%A*v`75as+PSZyASlG}j6n2dOTqkfd1Z$QGn`=_o z#_K6;Be1Z~u<0rGC-KAiPPY7oGt1%O%(5_&*}~gT5hLBsJGvzW-0l{(aOo-bZDBeo zIB&RmGhqln)7OHdT#uv90(oQ+y>zBHjb#kehChb;PLXHbOf~hA_}nWpi7!0$lK7JD z!WR0eCjna*wV8UE_%t_&72290wD_&%qKS&vE{j zhD4)IqJ%rYmMHElW?pWbBx!YE#QA>;RDri34k1RbVl)_|*WWu~f54A)&yOE|~kjIdz+=5{=;zDJn(snC+% zKde9&YL1Zg$4s&JYMwykrd}Oe4e6SSjf2T*7(w eOv1D5V#4$6#e|pGD+#Z%O9`)Y7sBSG*VY$SCTPz9 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/core/entity/BladeFlow.class b/target/classes/org/springblade/flow/core/entity/BladeFlow.class new file mode 100644 index 0000000000000000000000000000000000000000..1c93e7a8b78e4e685649a65748736817366e328c GIT binary patch literal 20592 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/core/utils/FlowUtil.class b/target/classes/org/springblade/flow/core/utils/FlowUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..6fe20a0775447daaeb1508edfbac011ae01f41c3 GIT binary patch literal 1548 zcma)6TT|0O6#h27q%AF%aA&-s$W@7;C{RQxf-n|jCV+!JFlib}AT*sM#c>#Zi2nlh z0npL$+27dch8>vzVDnpdw%@-{0+ck%q1WoBqE$d1W|_iEp=CwO|@8% zU*@)S&1HyA7)8UKWC->4t;P{UTtp&?8YCHdExRB)CEF+#a;BQsP%M&8#T%i!+L{zC4x5&M?$vJudDiFQ}z-4Qf#*qCSZRNDQf}U1BfjB&NI9 zKUJYH-FMz3qNyqt#pMzcXhExpwj|oo!O(S9yrEb~Nsxu`LShBLEMa^EpDUqt>| z#1)4Ae_{CwmIyqCYYdde8w`=X{qep11a9J%h^{1Vqx-+1{H#VdEPF?##EeyH^U2b0 z&L^faSAmy^UWSI#Y|p9ACf!E@J-jdm7>3Wrc6!O0Rdign=*mmBrRk0{9js%xOVMR@ zbytr;W@z-PW4+{it($y<-}g`w!?;hETPjlwqm?oE<(K|@2!RtrTrmno)h*jP!-#+8 zq_8F`AcBz3TPD*C;b|*R$Lq32QC}?Y6-o6yXlUnCT(Y-{?g!E=~8=>&tk($Gl{ zK%fr9(7`(ijSpxgU<6^BQ!AqXL$b&;(rZDa{}Akh=kkdDd>iP)DE;|ia=;kIX^bO{ z2?FAW3p8?)_Ky(zkC77a9gW$6BQ(E9RJwXFa6p?Oa6pN8K>#T_-b4VcnDoF~d;sc{ zleC{AvL`fScuK1n*iYV18Zkwy2qP!XpTTs%KTE1Oza(9ce1)(U>Q~mn1IiIPIkDgo z`;p97kVzf|IgqGl9vO#^3uFcvIPc7#{EU)*{Zu VM75shAQBj&=!VHUOM3#I{{~=GfV=lNx0Ef97JT9xp;TbS7eax=lwc%9hy@bj2QzJ_?c#P9x4URU_)q%D z#zcRBKgxJ#cZ*Yk(M@)D?wz^ko_p?{pTEBS0I-TR4Sfs?j@vNWN3Ll%Di*H^qw2WA zu()qmo3ysu9=APX!*V_rBO`?v;u;bgz^oK*qu^WXH#xSnol8(!`@;7MDajXcq?8*8==tSLdTb!y`$|anZFp2vbrgTgr$1v0@DT8**EnjTc8M3)el~kno z5b`=6V3uJpYR((S5)5NK?THl9Fwc-X&$~`j7S3PT?_D`6LBC@~r$$)ACDRtK{Z>V| zySyUNGbN|Wt$psA(vF-luW7ca?WO-sPzXr}`Dm&brc{X{&T7q(i$wLiQ>gUsYr%bQ)-az>NGEV zMl&%-H&i}xP}`8CuR)eUe8ujv0mi#|N0Zz6C`V}aIscmR*^n5+Rj!7O=X@En23 zXFM|y|Bl!}e`c_J5bGda?jZY_Hkblt1ffqUfec*@cmUa+(0n&gWwE5N$l@6mDf~IT zaYlwDG>WANb&>wEnsh!h*um8fZgg-@5>fHi6}&W-RlMZ@uW(l2M1TfRO*7}~*`mFb H0DAQ|2uw!$ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/demo/leave/controller/LeaveController.class b/target/classes/org/springblade/flow/demo/leave/controller/LeaveController.class new file mode 100644 index 0000000000000000000000000000000000000000..5867aca27b89a467439fe65ec362564fe32c3cdf GIT binary patch literal 2609 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/demo/leave/mapper/LeaveMapper.class b/target/classes/org/springblade/flow/demo/leave/mapper/LeaveMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..339681ca73564f96bc686755a7b0d50aab185c8f GIT binary patch literal 342 zcmb7=&uYRz5Ql$jwW;>vlXRfhXb(N~6luXHm?YD%vYQRN8;d@ghdw|bs<;M`;zfFx ze++!gH$T6JZvaa?W*8|vJKs>~yl$J)a4qy{+!xhi9U0-RkmaruPsM3i4Sj~O!hFM9 zCc|w*@8w3SnBiW5Drc!=XLap*vb&O_4xQ;kTKEg=mBSgOFkS1W<=A^s*caE(y!a<@ zQQY#8HtM*e5AP}oVbIE7a)sI2^}dofZPF$4Ke|t+qmrA#U5ZKi9WX*R + + + + + diff --git a/target/classes/org/springblade/flow/demo/leave/service/ILeaveService.class b/target/classes/org/springblade/flow/demo/leave/service/ILeaveService.class new file mode 100644 index 0000000000000000000000000000000000000000..a4049dd02fb6d31b7e7e361f0d23362d60913291 GIT binary patch literal 453 zcma)(&q~BF5XL8~wXUvz@F~`da}tEA2M>Z!aiKSF({!v^(q>7r6<^JR58y+|&epxy zMevXrKFIgw$Ct0~k52%&fs+(Q3ND?mF)X}k>(Wxi_+s4~R@^wWOdVrj-xAtW literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.class b/target/classes/org/springblade/flow/demo/leave/service/impl/LeaveServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..a31e496513c5c4297e7954838a4f1751d7612cee GIT binary patch literal 13667 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 Q$8bC^$MWYLOV8;4FOfqt^8f$< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/engine/config/FlowableConfiguration.class b/target/classes/org/springblade/flow/engine/config/FlowableConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..cdc3f38e91e6829922f256e140bc3ab4c724b83c GIT binary patch literal 1758 zcmbVNSyK~15dJ17i7Ui#30|O}IfUgBfglzlycm%(R;bdaO&G#p*rhfTj#vMYRT`^& zuzdDMS@!I14qz!t9%2e%d+14SqrQkJ&iM#@Ao_NT5 z$+Bb%rfr^!qYJSp;u>y1W61u8FGFvI%hj?JM?#)%Sf<=G4md+!DxKdqjtsqOm=(Ps zRb>>X8$D4ZG~7axVa_j3!6AW?EAv`y-67yy!M!!VfUi>*V5B z9$}1PwE25i+UI4-5Lp(ckSh$qRJs@^2|d>E1Sy7?tC6}*)GwyamhH+)zlzvgx)?=< zVcxGRj&gju(QFO38A5B;4u$W@lV&&T2PJNQP_iV2=B=_(EgH5^Yi~0o_XG)b$;tIP z%FmJX+>SPr@Givs^~xv0-*UNU?Q9t~Nmz25(wp+<^0JGRE>dqhh3GbpsHGMaM8!0u z)1ogOTJ=nPlfIhvWnaH5d%Z&J#S2#5F7pkcdNl0&x=bnwG7P=1n^GL`qNoY#U|YGw zkju8)z+FY$v1NZ&PnP5-Qa4&6*Uxl`!Y2-G>*VwmH%yoIT995wFudtdL>tgyqKQhL z-b<&in-`u$y5HU@MF}4n)jG#0-IWmnPtz}{o?HqQq&Zz4I?2+C(-@#}Je&Cj)*Jw}FA?e5irD+h55rfT#3LB1GRQXqcv#VFqKE#RTmPxL}xsPAh^Xn`sI-L-R1{ ziUvm4e3r~q^c5Oa^myh69%QoL!P+4rWC_Z=4I6L4#+_PPuwf(;t5npS2dm%}Y%G)g zjqV1<&!eUsRLzMH^H7^9CKN@_$UA^}Ja@(gEYdhgJ4@t}`-o-wFJoBw1Xf1mA8nrR AjsO4v literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/engine/constant/BondApplyConstant.class b/target/classes/org/springblade/flow/engine/constant/BondApplyConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..47815359ca95e0654f7150a5e3d1c6da3a6495ed GIT binary patch literal 808 zcmbVK?@!ZE6g_VntR2NcoztPBC@P>*{1IaUnhY|+hlVa&8Nn~4>*_42?b3A`|18rF zCVub_@Q*T{SBBQ`&AjB@ckVm)o_p_mKYxAy0pJa`Dkz{>MoGgAW(5|`oKKDsIN{K+ z`e&Y-2+Z#Ip`W}JD6Xyd6et2>OGO29WoR1aaYf)&6c3H@DE7l)KX3+~@ji$?8(ui{ zL(g!daGW?{V(doYpg9@^U-qUR$~D_<^Q3Dx?W6ALyH>{%(9ORkbQ76!TfqWFpGi?& z!&RwR%?DbCEd|#|c`hl}HQcyFv5zeUOQgJzlv^5ZOUhzCi+#{(G0z>6UP{u6hI^9q zPmTN5QAa?rPui_h$_mV1G}Ci}iFa{DIe|*X%F+s`88{Cw?L`Apt0u>DIQiK3V%zBl z^yp^fIzi8geTk>eQu4tc3%oY}Z^+xMX~zwwZ&>L@li2n4eJNMJ^dg&b_E=%}1%3~e zi|?DAIQ7hOw3+4nGRqOsHgKO-V3p?rs>Ba+xJLXiha1F?a(J0BLjFJQYs_HK3fh^C zZxCOzl>-RuTf(#t7Sy_#ZCucfH#jTATaG(S5Zg=DnT zSss@8eBOIT^^11BFewzLbw&*=WX+cd2Z^$Zm{CP`UAO&>(w};lxae|D~ z4B9=xse#{Nl*cp0s4BbiSa>Z?J3v-s6Qzf!lz|g;Wk2v+KBpUuR`Yb2GTJQT&5qOl z!s#ZXwI~VW@v=fLn%zc4cBxa#_b~b%;=@#9aHH(xw!OCeB(T6kM*K9^arRwdgY7ck z^_C|dGpZGOd8U4;2d8Ja*m?GRpRYk*^n@31dWlLr&NLS@rSaj{vE@bX4d!CiGEr|`~g1tH?W%i6UJ}u-EMDNO6h|>Z12qUoHO6|ojGUb zkAHrBOhmo(Q8UG;AwlsJHBu9!jB-nc=eW`?6)bKFW71MHhOkT07DiFozN;)txW*us z2QgGL1NB8lt=jrRV4N53v@8lnXR^-<>4j!Nyk(A=B)ve*2}-7D6Qvk+u8dMtt}x1u z;Z+<*xxN7$ru3z<86`@>ALAu#em%Wv_mzHEE5e=4bY_dHY!tXEOH);h@@#?o(sQhe z2iAHc;d7Jw+!)q@Gn;4&ZB0;1idtzKqf;xvMO9mqBBK^hSfc2MLWYPxOK%KG_6DEk zhQ;lYk@t1lGOJfMNG?g+X-9%~rl^f}G1|M5Tp)!P&2Pj1HzJ z)<=<~{d6Ef2UB#24kIy3s)j@muSeR_?_<=E?i>eaOL{&d`*{yoM4Gh;tSc7w9Z)6| z*_uT`j#SD8;a=kf3oF~Qs>rQz?n*tcEyn#R2?=^v1&$ujb;>%!sPSW6B*??6I8U!8 zbOL924u?&Ra7opg28_1X49|;6tuN~LvcOJ_4$2J3k8P|P80}mx!>qF?MPWmcdR8%w zDkf}S`m zFCQ-4zg_*}4x`i0y=hLMC3(2zai}zp>Kz@ndheU+{RfQBt**0Z`L1~*XLM&z=2gWl zib1KnYWv_*9y-T#AJe_*>35s3x$Q@emNBC2^Ld~=8*zBHra5q1dRT4HHBe@$m|BD6 zcLxGY22VCd$0JB0XTw7;!(%5>mSe8yulQ3yuxpBYIc14-2RBiLxcyLV%I)Z6baR^HZf|zxP#J|bz=4j#W5mk>-w44k$FlS?S4d?<8&_G9-pTd ze+(SD@HdG-L<4wyou?xhoebURD0O3o0CbEDgw~_u^jcuuMz3Sk0G}p00gpJH!v9mS z3Rg~Jhf_nxIJ?|6qfV&stzF~Tk-hxTLM{m=B2SgWO z+8#6=8iWPbhVZEkFJicxhOwDu{2?O7@ofzlAAO|#`u5Dz9?dmIOI$~QbTr`F6*|

N1rC}*6D$dG>s0Lwt?KZT0IUD6p*EspQwt2< f!6ZiG0pJ5zyN>z0_`O#LK0(L<^?39FG^Bq4w+h_O literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/engine/controller/FlowManagerController.class b/target/classes/org/springblade/flow/engine/controller/FlowManagerController.class new file mode 100644 index 0000000000000000000000000000000000000000..213eab380817f0173aa0d7d360d731628ceb2859 GIT binary patch literal 5517 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 Mq`%SM>7S(j7l4n!C;$Ke literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/engine/entity/FlowProcess.class b/target/classes/org/springblade/flow/engine/entity/FlowProcess.class new file mode 100644 index 0000000000000000000000000000000000000000..725b66f063a0f311048c503301cae4721874ca08 GIT binary patch literal 7949 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/engine/mapper/FlowMapper.xml b/target/classes/org/springblade/flow/engine/mapper/FlowMapper.xml new file mode 100644 index 0000000..a7af970 --- /dev/null +++ b/target/classes/org/springblade/flow/engine/mapper/FlowMapper.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/flow/engine/service/FlowEngineService.class b/target/classes/org/springblade/flow/engine/service/FlowEngineService.class new file mode 100644 index 0000000000000000000000000000000000000000..2d787416abb21c4d62c6007e744df1f4ce1d16db GIT binary patch literal 3504 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 cb`NXa?X`5)ea@^0G(+B99^TzdNE-i~s-t literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.class b/target/classes/org/springblade/flow/engine/service/impl/FlowEngineServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7e7c4d5413e4cbb9473a007085e47fa76fa48520 GIT binary patch literal 38406 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/mapper/JobInfoMapper.class b/target/classes/org/springblade/job/mapper/JobInfoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d7acb1771a12130bb5b77b5d6d1198b43bd4599c GIT binary patch literal 662 zcmcgqOHRWu5FLj?Ncpv#qHOR10xVb{6{TvWO6(`e5F90OWIL653(muW18^wRNkRok zh_YhwWRI$)v4~sTudWVw#fDO(qfqFC}1Xso?C71`Etc zKsJeX)FFo{I+W8kA&h=vUh7=TmEKZ+n1>fp$GLH;kdd-3WEC@VPdZ(o!IB&qD_~G} z9DG*aN)`|-RaT*E3^RNFA7)p7RCL1u35ogMn9y^J=ajnYv7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/mapper/JobInfoMapper.xml b/target/classes/org/springblade/job/mapper/JobInfoMapper.xml new file mode 100644 index 0000000..0c29c51 --- /dev/null +++ b/target/classes/org/springblade/job/mapper/JobInfoMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/job/mapper/JobServerMapper.class b/target/classes/org/springblade/job/mapper/JobServerMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0c0e8b2a8ec074a7ea1912ab35195b9efa55b110 GIT binary patch literal 678 zcmcgq%}&EG40g((bo>p$LjVWz00j;lkcK*KQYG&0YL!%N6D8@Sy$4Ujfd}BB5MC=b z4v2B$U?omu`}^_x$Lkva+`?%Hfq*M*3+aqiO_5cYlPq;6Ycz(eeAHP=c0qR1RRQxmGv@1ubin`#~+ry`rV_WzLkJ8M-^AEN6fGw z0qP>z(uq9g=uwVW1#$8ddZSA%7kUH#X&PT99q!hvN+!zrn3+t-KkIyk7Hjfkoq&Pq zP(-XjPh3Ehs-i*PT1NNsU+8ZB%0&nCjNf z=|NR2%lX>G-rVbz)Vve|b~tu<*#s|62>TE~#90);kdFh7LyiEBIQrW$oOCavPnplz Axc~qF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/mapper/JobServerMapper.xml b/target/classes/org/springblade/job/mapper/JobServerMapper.xml new file mode 100644 index 0000000..fd8715f --- /dev/null +++ b/target/classes/org/springblade/job/mapper/JobServerMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/job/pojo/dto/JobDTO.class b/target/classes/org/springblade/job/pojo/dto/JobDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..c6b9b61b398c6d0851b2bf61078866496a56d06f GIT binary patch literal 3130 zcma)8ZF3V<6n<{9o86|{x9}Q8EfOSY+6GV&lC~=4t(Zck1r+dQo32gTup4)`AU}fd zjz2)Y@Ihx3XZYag7o71oiTK>zO|lKa$xO2M-gBRG?m5pn=kEUf@6+D_%;T#x5=d%L z45&y6jBlCu%u>^|H%nL7x2&2kkeX}Q4Szu(nJ?TJf{q~#X#>MB1dcfFX31;04SRFF zX>M4hEoZ&da<-h(hVPUvJL~7xt_oE-*y> zRm;6+xdO#OEQH{|M#jJ%>=hVoIrlA>))$)%9wl(J>RYusou!!eOSM2=TG<7wr0K?f z0|#(WK(Cqh`EPg3rog^@wU?+$;g$ryX5e)k5=d`aeiRFx&JP~AOvsxC-jXM#EP0$K z?H)GpHjW4wq1`qeGlN-<2$6=48h8iC1SV)`cd!D-Xl*c75-1p$LXoW0O|QP_Y*;~o zEM-_$GX`c+5;$={Dp#5-NVZ!61&l+O=-=(|Fp8mBRGkkr!^T zAD1n^?rf}>u6ft;Etkg{p}BSi%noEQVn~{tpnh-S^ZCKJqq<-lXJQMUeY3W`Y__80s4Lf&me14A zCH9YNc{@!uyWTxNEvN01#&W&pbl(Z9LSQeuq1)x1T1l@uJ8sRo(2(^pOb2<#%}N}z zb=Glw&v(sMm^N=Lg==Z7Vok$!*%ah2*EQL&?>XC6DYP8+$py3KJMII4@8dU21PqN{ zGVP6~<>ji5v%S-*yzF93vP*I8LCfj`za7Iz$&AMxnOHQN&DDl)RdjqNa6Ak8r+j1A1rsr9nhTH6)mzd}mpoT95-u!Q^ z@(smVLcT+Sk?#SH!(gc*#piLZN*o18b?P^Wp99zlKIJxePoCt{2myE(?{OvM_0H#R zmT&~ z5D^6}36X3Hd_X;wWlu^4PUB2JlOuzgl!@t>3>Rfo`k9;<)TGRD$K;;CKHsFFNpYIv z5CeEvoca-}^0@dX^dF!m9~b|CzC1nk1p9&|C)q30e3X@$zc8Fto?+qIN=)h*GLJBlRkNuWC|A}9%9Zu3CP8`x(z1FRq&%iW$ynWlMRzB3w8Q^H z%<*fDA0GG)3oOJ0a%kW~%94By*YFW%3NGRTKITltG9_m@OQFf0SmaED%hEl^nU3>3 zvj{`e|G}sR{W2oDcA?K4QOMO-J%GViov?bUMazJv&vkD*U=nL xl-E{9(k3b5Klc>VK<^C^zt}RJz^?=eyvne_8WH%E|C{)nt2Ae~a0g!^`yap^pVj~X literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/pojo/entity/JobInfo.class b/target/classes/org/springblade/job/pojo/entity/JobInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..af0221a972bc27a55cd0cf78c1df39f09111ad96 GIT binary patch literal 21013 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/pojo/entity/JobServer.class b/target/classes/org/springblade/job/pojo/entity/JobServer.class new file mode 100644 index 0000000000000000000000000000000000000000..9819b5a66dff0f7d41bdb91e27260a151ce1a284 GIT binary patch literal 4233 zcmb_fZEqY`6@IS0yE9&oy&F4DvLPvMle&IO2GSSGZc>^ThuYX~uoEY=KsviS*kkYR zY-eU20tFfg6{)CIKlDSPMQWsqJQRN*$;{k) z&U4P*d(Lytz4^<(@BR_M30zB~2fYds8j?r}JYqYmx?6Xw+G??4luf;4JEmT(>qWyg z^;3M!)I7_(Dv&yE)hzERf!^_nl|HEGQ;^os4^3dA+snFL)a&-Tt((5JK4%w~O=r_| z1O})J#*0SP6d0OcH#QBuV$@dkWlt`oAiWQ2$Vk^(6Mn&|NX0GLgqu6xCH%2Ksg!#=6%qiV^l8qP+V()}8~fCB>ARnwd6T+;6GiS3J$HVWy{c)OKT)cL7=~Ex+TY|OKbA=A0K|W_3HIc-g%Ahtv6n~ zf8#b|&>{TA&8>HCZ~f}!CV1=aoA=+m8G%C&q42k_+<*5P(;s-)dhchSynj<55d}jk11dYv|F6}PIk8gTjIe89Bnbv#6^;UWzQ&W zEEx4LdC7B2vkNnfz$`1pG2KSRV;k$<(?Cn$FTG#Rn`_L3v(`e=QWE`Sdf9F`CG)H$ z88q1Jc1L9y3h47CyUK=dSFN($(5qLAEEKn1X|z{`?ypvMTT&;vDXWdV@Xw6P{H4n* zPrtoq+AHCo*Gc8*+I+Z&B~;d8rShvE6Fbu$M3e4B@;r?rVf7pIL%W!dt~ zf{GsqTxvYa2_VFHH(rLN`mB_5ECq$*;>tXPFHxSnXZB#2|TfJjGcLzQ%{gJm)7l@8|avpVKbRP{Bib zyJCh49@5(tXQ|*Zy3sl zGqJ|JQp6bV={BB=HD1KCjEoFeo?o95lT&|y5+Ck80U`{yOhrJJb214$J(1-~z8UXw zV5cqvnuRVizRRU}m)V`V3-DNr8b{EOpD`bDOLU>CH5-$GA?*MH+o|^nMl8IYW ze}ei;Bztd7eFSx3ntqS?)5)n1@a15{pI)5iE1x*>XY}V1_ps{*v?IC19Xu8x4(5}D z9L%S3Nr_3_!_W;3K7tPA)44tgN{67nT)GW3 zmhUHMEU)GIB}fZF97UkSEpD>6t@@|@O89B8`6ib?#tJSn#3T3{F0q~T;3(e5wE#h94UASCcev&innnVmpSUgbv%t1I7;Iqwq1jx ze%xcDDsrTu#I>Emu%iA8g9_BXPq9bA~w%~}x zDU&PX(B1`uI0Q8vwNTkiFL7le@_5PTA#dvxu}z5kbfMDG>)FC__T{gfAWw3O2eO4V zQbNs6-GFlB4hk8=IAB-7%wCD EAIGMK{{R30 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/pojo/vo/JobInfoVO.class b/target/classes/org/springblade/job/pojo/vo/JobInfoVO.class new file mode 100644 index 0000000000000000000000000000000000000000..078078ff42fd0489ac7523e9cc8c3303a44786a3 GIT binary patch literal 979 zcma)4%Wl&^6g`vJagwHO2yJGu_u+_Q}_T@ zUBHG)ED&t@CWJT>n<@)Hcrn*==iYP9Ju}~be*OaB0a|6`koVwJ;G!U~uH%899K}I2 z=!Nn?`6J!)kMv0UDl&n2<8SNUR`gN}6gGk=Fb@Ut^+vadqQFdc*4?c)Jd_32{t9-i ze*<-Q%P65z!7SzkihUV9em$0}yH}!#<$l4O9CMphO*i~^7=;-;@BLT53FuSRv#K_2WWjIzYt+1aEaMI@a zP7tZ5JqFfsm1`v}z%^Xw zPGE)LY4cr1TbHkS9~g4@b8G&rmAA_(%lnow&)8};-@|oITHjE52RDDx`ij!do#rRZ zOt#I|Dds1C&WUB3qNq>Qt)ws+1p#prx2S57W3N(i4r}b2f#Vf_V9rCSgxgHGf^}6m z_H|~G?z78U=2|V5YGFg54w;H4d&P*po`|DSQB{ zE?`3?76`U{6GEJctq_Ta@M5m#&b{ZHduG1<`1BdTeKgC+A@9Mdz(qlzuH!>L8O1?# z*bQZ0`9t0HM|!Az6`8=i_V;wRt>R-93lz44C@>EM^0j)Wh@!y!^t5wOt9vL5Z2lGS zSpNd+9F$Q)rGj}Z2o!rVdh}{6LxGiAYbcMUAIj*^Kj;os&urCSSkcuA&e-CDvXzNV zovmOQE9@W0WU!$@r+N;%BlO5^kxbd&H4M<339|W)LK_uJxazZc(ApZDUOqSgzG)MohD;5Zbc+ zHoJhU&A_@p-!`)Ma$k-z71e!Z2D<-L#_~uRPD*QHm5f6}FnUmK>v7yuj{`eLb>^b( zS`u8N|2aE7E@Bnu7|(N;!v($zlA^$MjTxU&FuILXh!2yJOI+jY1m?=afB{F3*cA%{P==BKT^VOCk*H;j44X0!1Qu5;4-iqc!S`IF`sl=g2oK4NaN zZ8T4@IQeruwWA6#kActmAA6xCBUmcEhbU3E8I5Q0j!6X{#tJ)&L-;}Yi7(v z6;Hv7P>^V8MIWFKRrSnz9qeGKvE;d&opa82zH|BK-#`Bbu!@w3f<$6zJWCOpJKO*4(x*_d9xBw%bAxE>>&nV{OEe5e(kdOE^qey%Xptd@!(k zS9GMOO`wctq?fr{@WP%_A~D{Nvh^TPK}UO$_I`b_XptXraTJw4h`sNGV+`U$+#5zk zNxMFYW0-bu+{Fo;B%J+!l!QW*Y)L}3`mwoRhD3d4>$TO0iz~e~doDQalP+3ov;;pMYexFn(%OhM_9r<}9%I7kp-pHHPNu0$w2j^|b z7q}MoTP948iLBNv;S0j#wuoctrNAB32uoub+gBSItcODPVpGCA;iyW_Hfy>U+7c?G zip#b>7YWC!KMxU^rOKA&msoP}m5VF5N;t6}`C1Sfsh$%ixcmmScVRe~MjU8euYJs> zgJr_iBNj$NEr5a>xgXZ6r_DWjJW)r32{?d*m$0L1z=rkJlgVe=f#*!feaU zw55d+ifJmXgmE^S${Vt$La`R5)Mj9%vLj;Ab~a(=VJ|UJM>HcHG2yq9M4G@vGGRlP zhWOs%ks<6H^EG=B(md}9zacwanebGpV~$%k2g29Hiao}Rp3Mlx zr+K`_Oy%=;n9HT7i+iWO>@QRw7b@&{;T0R{JDz2e;9*w8G*03a_xNcnF!E)1DHyNs zFayJ`aRWCQRFPrb;#&@PSieXt2G7vOUZ8Vn6u?Af_7C`PFk^$Ipt JmV)nr{{RSh#1a4i literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/service/IJobInfoService.class b/target/classes/org/springblade/job/service/IJobInfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..a5fab38798654cdd109772b5b2a77951f8cfd1e7 GIT binary patch literal 1228 zcmcJP%}(4f5P-*F*{~E!X`%lur%I_R;bW1Ou2c?{w%Q7$m3nuQY49qsBimVNAApzY zp%1_d@HSN^Kd`HmRB-6QiR_vAW;{Q>{QdJ60DOW2A3O#hv`M(ljZ{gPiWvD!huor> z%Lw`Ss}9HNho07ZA9@TP&BR>rRH%fXhBJ(u4}Atf8xv`RJj;0~Eb~7 z&}Sk+1{c93(iti1Ovbw4*&-B9+B_{RuSw`cES%uu(qK4gyDOv4^-S}*<_-D#>G1vi zsC2n+=+1R~CXC3?p|K2lc@?2g9?DcO7))iNgewfieRaRMkM9`w=>J^s?(P|E+ak=Q z`>f*WLPZQlL3iw^oOFxpyi?YfEpnoDib4$uXfV@ryaB!oYPG`2lux8}9d>InrYd}F zYag#TnP`;^M;-P%(K+>M)qZHGH5eQPZ2iqim2s@-)iq}~wD&Gs(Z7k^M@s0Kq679i$ gqfM}#~L;0EkYH$C*kRCH2MU!&o)tV02KkVdFAN4P>JF*#h2KRlm7X3xYXbS+9wrF zg%%lF)P_N`Sa9^HMm-P)o-gBE*isYs_wBe}{h9mVzuMe}0)vhzgG}1nJo4vx$l#{; za|f7PY3HjOp!u%^GgK-?k@sn$W`QKXIcqg-cKnl)e(7O@#DGe+eO2lZ?_^3>cD5nz z%Zer`nL&fBMUSLGYIk859PsGRbD&M1J+gf=2Rh_FfI|wd+$~nQs`s&WM3Hs;F`O*& Fx}WF;954U? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/service/impl/JobInfoServiceImpl.class b/target/classes/org/springblade/job/service/impl/JobInfoServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d91e319261b00a7e7134aac9abbc77db6654151a GIT binary patch literal 22734 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 TG;ssBmq-(LSl5^~Ps!hJzkdYy literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/job/service/impl/JobServerServiceImpl.class b/target/classes/org/springblade/job/service/impl/JobServerServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..102ca16f15ed6305afa549aeb376af38631a13ac GIT binary patch literal 4229 zcmcInX?NVz8Gf#p$et*~F~nfnvXnr)B_bt|kZ}W!lQa(FrJmSnVoIx-xwd6%BvrcO z;BL^;vUjBm@GIaPPB3r|htK^F{VP3vt|ZT@B=!g9oYB3y%lkg>{^~#f`|@i5Kg7p5 zbfMcokBMF!5SZ}8H7g22$6G78c12ocKa^HAuu66$tqXhVA5oc zV0a&*MHv-S$&SDSEtV}RoiC`d(|FOu6fQ6y&=&;?&DKg!C2rYbzrBLHD9{(!QFMzg zuF+jK@gt4yNFCim)9#Fkt9tivvYTX@rO+K@;wzY##hk!{ReMuT`(D{r*B!OaS)^=F zF@B!PfZlAHy37msv4KSsMO@3sI}J5&*yYX0_pGaYEHUC~ALZ+pHeS0<-K3{FuVq{} z@Dmd^a8uxTrb*Y83X+U+g|mcFU*Jb7VRbe`tWHiDf*N>P;7mJ99a8s9>Bmmxu!2`~ zh54Dlxz6C(6P5hvat;fyO_ad+?hWiPVk|CY38eGpsvRjAzFKvyUCk%9*bbz1jgLjS zDnsd&WlQv@+BZPb$CWIvGh^J6p+-oeRoX9KbzS*SAgkX3$}Zd>(9uSj)z zV_yg+_ssG<+?{C(Ee3SW7k7-(Ixu^?F#_^S=^BHwM zB{6NgZqZSa?bru`Uo%$fBZZ>b+as zdzCBwU3>wL0Nea`;g{U_6-GGIV!Xn!i{tS4Z4B?=(T~tS#_5yS^>cIwCmLw(ixE7J z9L`|?lQF8HO=Fd6-t41PnB-4FvYgkBM|XDd->`zaOB%QI6ucxLcl~K?%?O&pmMHfxaT%jTi^|nBne^&7szNDXK^ux zcsgNJhd7l&9O6gKZ}A!hIL;>eb^MNi&!Qi{#~Y-ytITBO4_wj8OeHyxs`8I`lZ#z= r3vYAOrhkXyyZmckS;2dp^>Ow-|9{6n_%_JXD;)LjpZGUE!tnnAQ{MYw literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.class b/target/classes/org/springblade/modules/apply/operationSiteApply/controller/OperationSiteApplyController.class new file mode 100644 index 0000000000000000000000000000000000000000..0c985155a77363a3b1c0110b2ef0a248a5f4d32d GIT binary patch literal 9684 zcmd5?d3+Sr9sj;$lTE@17y=UNg+)!mF=sFTkT=*yH;yBdf#_#zi(!b$<8jD!6+yKjrn^-Op5|0RXdeTnwF!I+o&O>6ByI2JC~$%t8cYM$#qNMl7`lGTCb+Y zv_!Ys*11lPIL(c%5i_oKYG&MsnkhBj*GX{fWGrQ?E^T7t5wz8-B{9`cvUwCnV@w!h z6&#CNf%bg%N60)a{j(v~2^iyMZ{Y+7i_7Z5p&I;v~ftR~HMrm80#!|5wvCX3t` zHJE_o!kDO_9+L!C411IHo~{aPkkw*EXUd301v(lUhi`Hv>C@sS;CKZm;6#BcPuz|+ zfkzvLzu8a_qk@JFl1sPOEC5nRTeI{ACo7nYQv_=D4O-kt=q-sZGkZ`kD!O4;%v`T^ z#&p%UOwC&8q5v&oH4al0oQl%~DrluGR7)Mzk~6t>NBW`WFd77A7ZWtQZ_+X&x@|8u zt+<+UjF_#;$5ryF3QYoKXPh|-(=a`Z846UKA+V$*%^}J{f6-+mqCO!7&hh(;v?M{< z(&9>f)mFoHh|1e=Rv0rCoQ-n?mKI~Ns6RfMeyLPjcYJKhEd|DRs~Pd@KlKp@KzHk#qA=8XhlFLaJ}R40w`RiHg+2g$kBP zC5$C#c`q-*#bLB6Sc+u=C*^PNI)BGBV+@;yx~7mTnT3p-1NlswV_ zlPMYDTw{(pg}l|mm2D#t?NSBrz#4&STkG{Q7=blGD2K*biGbGJxTXdd;c^A<#1#z1 zv}`A33ruNP6Lj2pHbbpng(+dsYA(n(kfAY0AMa*p9i}7|Q4p0UshS3~QnP#H8M+Ex z3cBTJ4M%0JMuB8jVklUL9vXhy|7Ej1f%E+)T-2= zBE_^gu6G!=!Mti-B4N^husWd*&-1y`E=!B+>rJai?bNk|t#)Y<$7HRcWf!RPQjWRa zu=Hp%cZt&9OOv_g4fA?F=DZ>@XSZ%VBp0CtW|To}Oe?d6WvO_lZmpEbBNLQXGor;h zG|P~`(}N*rtwE{R1PGV3GoHGkRHx*qHdvlA$PRzUA?5ANMtkW7+eS#fSo%&}W#&W2 z?U`rJTm>c!2DUGm0r!f$xwDHhC26}UzCYE@Sy0R+vSXL(&RR3N zT$6_C=oU3u-EMRz7z{0H{KYrT4vR}VqU_ogcBT)#+{s+8cdDICG5v?~Lfv7wO3Dg{ z1yHXROA(B)nmL|x+;Y8}zB|>aZZI^nkHwhUlQ6pUnd^LXY({w_7m>VHhNNg(QQazM zNDy?Pt%j-E>$UD~wrP6LQcaB=oveSbbB>q`!*(hj*DQv+%ELP!Ie7gI0;8h39kGn0 z*BhDm+JSA11%=K_DCy>=_l{Jh#Zx^WtUjOOYu;p%-GW{>my1)ta!bFO{hR>BlFp<= zHcHIhE|0+J0otwy3~UoKwooU}T>;+^xSlQ}C;$11A4D8r`a9jV8>+U)H+$QSObAx=a^tkD2 zwP0pl+98!0Y<<=GGRkxoD#L+CTXGO42S={kPgM`xxb4W@53$4OaUfTha`0JwQX8QJ z5>581ZzL3nh_Osm+XOsb>EYNkHRVfENk1NUwfhy;qXf~eSf zgeifS8Lwj6E;I8X=I}CO9^=boWF^Qv!?glQs;E;A?CHYcRR#i0L+5}(yY4^RYxW}e zNN)$Iraf&G6HWAKClQHgj8ijbm9tbCc!(B}rizU0?}MO}m-0 zBKl%O)_;?8schzoF;^qckaq*cs^3C6HcNcBujO4(()J1$&V`q{5iFOYPjwBVfDQ}X zin4c8BI9&yZq5BJ<%h&L`y_@2RxSP(XxxQ%5fL}PI5W9f)~kG^78a5UUO-@S?R>p5)-C@KhQLi%UWzQ75sO){nNSd(mEw zWrO9a;d&s3F^IczGXa@65z>?U2(Ay&_D_83aqkG-Ux;ockB#}UbWbs3j{lQRK=6RqwmGqP$7nI_Ay+aWw@Tk@f8wIGrW})gABirVfe)i!(WvQe+{J> z{yM&qHjI2&V+CQ|?BjBDmdnw23E#|d`I3*zoOymL!{xU#Tz*G#`CS)B{@+0vzDG5D z-zF^%{{TN+Lqqo8|YgFB|&^*Ar{@fChN&vPVefH~FvGK18wGOGQxMCwUbwRPpLY6X6iQ7CC~*E{fA zzL5U;a(;*SUDxysZfTlI$I>)yH%@Arz8mLCJpAYSVi$v;Kawa*4C>sdAWvSM8y7t9 zLrE$ymaoQga4a|bolExjt}GIaKk)Y-Nx<^}f5M-+DNXS&QjEXiZ+t65%HR2UUG9P! McK3uR7Zs@gAHGUcF#rGn literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.class b/target/classes/org/springblade/modules/apply/operationSiteApply/excel/OperationSiteApplyExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..7a225223f0ecf1e63c79dc9fe4c8d6f8557527ca GIT binary patch literal 6817 zcmcgxZFCf86~1q>AG5oYWZ8Vcw3L>1sX&0$ilv>93Js(L6NrR{meyk@n`yFSvy<*l z_-OqATB+84L$LvnRu;hoz$?V*@ z_qoqIbLZas-d+Ci?<>D1qIS9(ry8n_Qb?yTMHnS_S-Y)F-YN`bwhrvFvo52^+FT*$ zKE$YY>9YP9X%vf6T&D!-jJ7z%p-gG4m@5no+%Q$0p(QxIhRo3-Rz|*U*-j2#rBjAJ$w(iv-R??onwBo}d8qL4 zmwBH~pXTHdn=^~`KBLq9oFWPe9$HTOfKCr`T>`oe6*sPL(`l`z?^U7W`iFG-tjE!T z=yBb8ogVgd>k$a9+o01%u8V_ry^JAOKcdqnu8u+7Bf`kFn|1mebu+5tH{pw9%6qs< zEIE9OPFp?hZC*HQ=<_;lqdtUl*eVToID>ci|jmOMd?v9)b zP@&{n1-HcLnm_O=j5h}M|F5Y$`HgD_y!j|S&ZtS$OU}vk*~Ofd&pm4m7YdFmsuN}$QJqEf0wf=rgu4&E z`qUd&Cx3Nh`uxes*Df(?nEqg5>gxH)BZnp@UYR;|7FjiY;PBMBs~=vuf>%Fv`~W^D zFCRn=Oul?&^3@N(Fn#9a)YU_i$Inil*pJTg;pJnKFTEwbrVd}2K68Sva`@cznM)rX zz4*7I=eh6OFMf3H9rPKQQVrd?g1u#YbigidmvK#XJ6S8=Zz0wQlTwD<;T+=B+x_3| zj64dZ84X}Y$54s8tRHW?$99LE!CtF~N_X+jQTOnaEj0njt9H~ruDlwTC|=o8;`NLw z20~RaqKpe!yGR~R&Y2OCWAPjy@ zOh99NLC>V^N@8Em~u;cuEZs`gxqr(Ag-x$G4DQFiKa3kz8T7Gh%1t!-5mLN+;$Hr-;;f-M^nG zpd{U76$UXHrMn$xWPGgc#e0p375Sj5qcB}Kl3CJXSvUFQ6`B1l@pm?sU&G<%TNkkg@Rq|$Xlh7 zU5XMq`jQ)B8x*oAz0YV-btp1l#+MdjV5lKRk6}{1jds!#ke|fsuAwjB!1RjiFXDPW zuAYKyb&NVnkmbYG@XmEbENQBByp1ZQ8jKeRC(Tb9|lik6Tb#tYZ z4Mo8lj8yDG#yQ3J_NY zsP}<7%m#ou%%su4K}iK_Fp@q{r#TOxPBUf9< zK2VR@3{a2RVl;D5ivl$pEgmRz8l9=uw^ho0c3QqGuaB__+D`}2x|-Q@bP#(lMgW$l z=b@{m9drm%gz_v+FG7k^ku9RHL(=G5be+BdDMm->AM_HW zI9;Sa(KjI_=$G_IdKr>Vf2Irc3Zy#vE2i#OA=P91pP<(uHLwUgCm|PZ3zKcbC^0SBdWxbeFH-MQT))~3af1<37L6C4G_5hi z!i1U=PMQ(+Or{wTrbyX@N|avhW>lC^gvu-Gnbw(_Fll8IN>h4um@#2ORVuHTXX-TL z!W1u?P^;3b%S;Fp%2atJJX4RU3zJ?p>B6)yxBy;|(NYCa%Npo)dIPZxvpPBksfOZA zqwgW)wR8{tosL5a(L+ex6Oh96IK5AALW-cLzDeJQ6h+!TPd|X9(YrKEZ$XOD@2H1< z2q{i~q5J4ZkP`Gy6yMvBbe^0wJE`e96rm_-j3FWMTikUlTDh*_ie?IX01p$IsZy|r z4^~0W)+%sxCb)tRFen%82A7IguuVDQ{}1E?0`LD5&l}?Zy%20x?(v)0E2~#SD3Zj@ zNh&g7ml7Qw4G@75bgh(wn|k`h)#+Yc1nD+z5~gtzFEIRKf#h#AHHJ0D}|pDFGmd* TKf`ej{h!2bU8Ku&g^d3IyHzx8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.class b/target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..5efc933f50c85e9b91b6d49dbf843fa392ea8d37 GIT binary patch literal 1518 zcmd5+&2AGh5FT$DLfTN;@>ig}AR(0tzV)(z6jYFqwj?5`oSofa>&Uy_+TPGS26vu> z0}sGs@B+L6V%Ax;s97m$P8?=e_Ixwr`TTi){`vj`0A9j=2Lc8|ZBlLvBlC2uM1nli zNvY6sQ50&%b%91Wsq>L^*!No*dC>5|g6G&fIuSe&O~uxC+G^kS`{NRh$UgJ?-gbRrQ>@OM=}7+t&B zLQgbLoNj3M=;I)K7Wqa?Cl!yRbs@EWjP6t?Lt#XQ4vl57R`}Dl44yIQj%1n(R~kD1 zumA1*FIHq|+Cl}seM+^j)y zZ@hy@y(+sED&cvIs;Ne`@9!^G0%-@ry85|zWW$)kj$W^l=T->P- z=|Pbu2x(tkCJAK1;M+f8^Fa|Vd(l^i#0tIpN4=b72J0hTni$_oMP2VNPNDgjdS1-{ z8gC3*WNjL*EgFFxxJm0St-1lM({F>UM;5>>*rfkvKpzIT$+j$PP{=my)FEvKcP`*} gJ-k;HsKNILd>{ok#0o^+HzyJUM literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml b/target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml new file mode 100644 index 0000000..6f10f37 --- /dev/null +++ b/target/classes/org/springblade/modules/apply/operationSiteApply/mapper/OperationSiteApplyMapper.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.class b/target/classes/org/springblade/modules/apply/operationSiteApply/pojo/dto/OperationSiteApplyDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..419d21eb232324df141c050876eb7275549005cb GIT binary patch literal 2085 zcmb_dT~ixX7=BK&%PwIllol#TOKqto2@tidS_0LU4;xLO%7-(0;~_ai7M4A6_oOrY z4sRTPfW6^DXOzy=8Aoq)#^0pY_v|iVfs7Z9ndE%D=lyz~_nbF>{Qcr*01H^nA%m<1 z!-0t&hD{mll)_fv`a9bmZ-~;qY_vTQmUye>9h78C1YEh&Uw4&w7>QbPSC)jYTy;=d zJ9oSs9WeCFyS}R)Fl49lTfMN+Ya!>L4-UiHe~Z~rvP;0FjWvqa4n;e^zyf2pV#536~kJ?DIXbDE&HDpSr3^t59)Y zg$$EZXYJCC)|F;5iaO%p3SMEb>)c=dvduk);k51A_O7U_a{e=2kue9aYULiGHNzaP zV$8xd0(62WHqhGF9lVAc+Hnk(AsI++kemwQ_x2&r(Jl_duDAw&N$h%N55 zg-KxbhcOtjhk>f=i`Dl2wg@)(wnsjPsjd`dms= z6;(37MbK(OHD%)o5BR=N1dupTGA5nj@~N68r6BN9LpjSM#WSU9ih!X{Lz+CkLQW*@ zZ2Q+0ukY1(E5UC*`J_@?Ca)E$Rv^N*rx>h`dTw2|gSuF8HGyO2-v?dSS)B@Dc_gI@ zRlr*@sBoYM4|8~gMGH&%8d8wSldN6;soWE#7*%{TS9o2?;DF)lG+Bva?DR4B8}ynd zt5WW@TjdlB2|X#vDZ`C}mgu7Xc}oBI0;fcYi$(5vx?z-Ue84c#m4&I8?**1;a4Nnp zf<=#qp$IL|WxaI{csD#2stniuU6ra7gQq8B)7yc5ZJ5L@FuWe^Zj*%i60I$gQCFlf zPrDM$jApa&9PIl@wLqgj25zHBqZ2D&8Z)$Gy3Npd+V}@p-_c|ya2*tKc$I~;8b#pf7}R}^Y>nua-J=6Cds8o%M< zGdMG&#u3IN4daj;W>d^eMablB z*?;1K1-thzj99ozU%SJ~9b(1MZ8^bopPXuYLYitkj9?dqnd!K$Qcucz- Ltt$8kHH`iPWWdT7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.class b/target/classes/org/springblade/modules/apply/operationSiteApply/pojo/entity/OperationSiteApplyEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..c248df070d423135d0f50b97b47a185c3f60ff19 GIT binary patch literal 22173 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 VYBKDre6Ha-cUe;J;|6Xa{|^;ZE(!nu literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.class b/target/classes/org/springblade/modules/apply/operationSiteApply/pojo/vo/OperationSiteApplyVO.class new file mode 100644 index 0000000000000000000000000000000000000000..ae84f4d9000edca4eb7d334944a959e4e8a503b8 GIT binary patch literal 5012 zcmb_f`*Ryt75=U*X;<<(cAeO%;?RWP8oy%E2cePeg5%iKtsRFrQD0E9me$tBl2+BO zoSIij`k-xwPG&lV7Q)c{K*JBAgn_0|rcC)I%mDvHhuSIs1EqX-clDM_l4+dXz4x5& zJnp&YoO|{6|GxVd024SDK?_#hCpcC%$d&p0<8msi7-@z6+|?&K@*t2 zHJfWz6MKmTfuLSYnT|l$+$nuck7e}SN^H@QOB$1ww`u5*X4Q;ktxgu5v?Si9p$ppu zI*h0EteG=rbIaD8X;Vw5r={qanV6)wI=VIVNO-#&q?wF$TC${~+ciY7OF*&HQ&uro zQQ*2UXVHlWVY@Ya4tLOr6~meI+}$xS*yymt?$z*liESfx&i7f;zo4NHcXFMiPuIKM zRnk^*T*`b=!+@0Oq|70?!6n}%b4bH5Mg$^cE|%OcE2=D@i>WiJA%-sr?9A$`#*~#y z>dwQaL!q4Q=sCw0NDnkFXDdp@$@*wlNw~q=B1U&>xCi$#o=H77{bW(k2y|E5UsyV2 zB%QIr$7H@A(C`%r4jB?@M{p1a6vP>oO2T*o5S zr}dQ;qYzuWCuZray9ywdHBzP?TTG^ntUktkNEvprVCH2#3hdr|?YA4}-`u?L;>KGS zH{bZ<<}aT4_v`2P-Ze_fUV(u!d-IpSx_;qY4SVCcs~`UPCmS!kzWLKP1j38vN=|o* z1+Fwvw;$tkTNUdvi$Ld!VpSCsbDIMTwJJRm3uE`w`L4~k&s_iYxy@I8{NZ~SK6>lQ z#(S>{JaO~Z@&zkt*!GN7$d;`g^=OBUWw*2z9V72s)jX>oy>#~a**^(reyA>A+@piwSE4@PM z>Z#qD^?Yf29<7IeMnQBJK>upGr+|J7=58ji(rkog%YC^Nj!IjW5Y@4~K(h^5GI8rW z8uKe?IccN7?3W4LS3alOU2UM(b1Eu^LpN|!r;+kv-8tj?JWCw!LW-N9=U2|6`?-g=Wt)ez0SS{ z7q<1)8Hy}g#X{1UF=YdYHr{L!3!^f&%;rOu<=9R^&wFWYcZBeR2%g3d6`YZ$bT(Fzd=*oACL?cpV=A6yUuqVF0XMu8Vq|YAymDL@UP-D6uO#@1Hz5X@inF<# zQJBi;wr$u7ek5>bL&TZ|LcxmycYHdOdErHkwD&a-8$uf4n*bJbpU zN|miu`|Kr2qn9#)1-?bJmp~z=^h2chM!IOk+mt6r{C0C=J8smNEQVTRJ(#Z;>nR&M zNurJ=u1Ka)P5gJ>Xt2D(^4Ae{gOx0&^h(3=PbE)V||>dz2ty*&Ir)cFzWy~~{r4Znjgdn1}UGQw9p zu>Wspiw3UYwoB0VM*~-JUkTA04-(QF4@H9#6S{`3OK6Vr@^?Td#A+82*R!x9wnLE&hm3e+EOBd9;FMcX7u^FbVyK!M9#WOZhZy4CZnxA=1Y ze}EJWhPWI5#4=k_3r6vKtdQ2qko^W}jsncj^DsFIvf5t4DUL!|!z%v_DEJ=V89pk0 z&SsqDD2$72+BuFQc%QA@;;0SR(2G1r8lI$Yhp=5y|ATD`)bPjXQE-s|Rq-)y_lDvB zKP+W`idhqozbXAhJjeyfMi7*nE8|ezNxe9D6;^7)vLP?ivvNHxyLrf;k|Z&;#dWGs zsp#d-v2phHu?d-fM|O9PrI`|H=kO&c`>*1wCndc%9*~S^z~`tkQ9Rb3c+h1rM_eH_ z8Z5E)#X~MDRAw=AJgNS;;-mnGFW+TWgCP_6KA&gs9A^=Z Lp2rKUfaw1K1a*`r literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.class b/target/classes/org/springblade/modules/apply/operationSiteApply/service/IOperationSiteApplyService.class new file mode 100644 index 0000000000000000000000000000000000000000..f502135c14d464f44632d1392dd5f3e5a7faf803 GIT binary patch literal 1804 zcmc&#!EVz)5S?|Kgp`)jLZLvR9McPX;Dij7kP1?ypcJ_RskeGyDN!Y)5S+#|p8KIIL{XjNjXtoj3dQ_xB$F@CKfDz+vDi9deUunS`TA1ju6* zWDy!J(lnZJm7*3_s>G8P-xel=dLn(~{b9xDm97q~Gq^hz6Tu^qgnT#}qi;LVX7JKi zF&_yP%Rps3o{b3Hq)}!#PAw*enD`aJ9FD<(!H5v5gr_1z2H$#vT3BCc$_cFqgcZD> z|KJW*&N)?M#RIE&bqgnFL-%Mkek#rfv==Hk6dVnFkkxg((zS7TCxnb1JaGX$+EYAB}drMm}~Tm zAQicz+_3e*yw%CwK~Wke(PuzuRV z$WNC>JA*Y^ExKFUH2ynq3moXuSJ#0JdfcY9Ny~vPa^Hb%3eMdvQUl}{#t!VxO&E@bEgCTok=uAN>d(Lf34xTf2V^YYp29P-I&k<0^AcB4 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.class b/target/classes/org/springblade/modules/apply/operationSiteApply/service/impl/OperationSiteApplyServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..6f6d84a2d220b9805431e3cd32f8f02b0f833fd7 GIT binary patch literal 12390 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/config/BladeAuthConfiguration.class b/target/classes/org/springblade/modules/auth/config/BladeAuthConfiguration.class new file mode 100644 index 0000000000000000000000000000000000000000..7a55a84dbfb18bdfcf4342ce4c72e22c421ce081 GIT binary patch literal 2782 zcmb_e?M@p<6g^|U9jB0lCZ*{|(l!YM!X%`S1Oq81s?vxyC?QCszsBpqELrbZyR(q= zS^5y|FQg*%0s2r?@9f&%@viMssYqtN?woVx&b@c`ufPBJ6Tmv26;Z&@7=}w2!6?Jj zkvJCI6Mmh)tR6{6GmNgezNkrMIg|;|D>G5O5uG4bVmgh=eKa*Ox-s@zch-q9i0zP5jwt#~` zG$bAM9Y3m79UgoB1@(4iqv;7PW9NO!P(DBX8xoTtpTTE_{BwrKHhFjGgdajJ8@zp# z9}G@Qeyrk4hSh;89OWOl^)%|X;&Bwjk;gE+rD~F4a@+OgPf?>PgI!VeXy)>^a)h@h z0@sXNlf(MZ4H?#Q@zxbJ11ZZ4(Lh5d+$7b-_+sLG zW4PBFsZV-R{YY{#jbMg{y&(oBEdl)~$#=CKVM0{PfNo>vRpe{8A@|(SrK{TXeWl~u zr8Qe;8r5_`TE5p@bWC|g3ZD)++3ZeohDWn=y@h7HmZ=VeRnk_nGgSLrZ{HL@7p+}T zi1Q+$*-l>U4bqR3;fgZXzm!yqR-!S~ZSAQa`&EbDq%DWFQ~70{$T-blw(AVTf(7-j zybPBT^;VH!@NMn?p}1Jg$u2urx({LT(Gf00wAyjqat^0mD+ZM|O1IZ43LN>pYl_kJ zO8e35DqoA{Ri^jHqDY<8BgnfplhP@ATHb#!p`T<`I7E*>y6amCSXGKrCen(Ksia2q z9Mcu5HmIz~1A3wfcH~%i5vk6XN!x`93Qxko28wgHjGOp^zCq02C`qEP5c+?EMx0tk z?a19zu-~auAk)MMwB;-6ml6Yfjc;hga0|CF6mNcxVd??JGmP!eFPviHHyYUpH)Dhw ziB$`M>~ROPF=`QWxJx_cY2QSFra=?H0{x7_d(<*4lFC9%xJ0c{JAQ`J{wY4n(%rTM zkGJT$vF_tROZ+;u#v>DFnB1Q~#icCRd<=FqG3scaz!Dyk2%~s}(IBh#TP)`prVYc@ zEW`ai3@dn)GOXkn9^*-#Va70A&oV6cVOT{uWmwHH6tG4!1^RF`zPm=f4KjZE7T;l$ LI+dTn9Blmq8^<6? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/constant/BladeAuthConstant.class b/target/classes/org/springblade/modules/auth/constant/BladeAuthConstant.class new file mode 100644 index 0000000000000000000000000000000000000000..d9da133430b6a52ff66b7ec9edd40ca480fdab16 GIT binary patch literal 521 zcmZuu%TB^T6g>k-3xXgo#Yf^2HgxF%HNgf934w&ymJDU6C8ag(l>ahrj0-=&k22oz z5lC~k2$yzn onJ{gfd@AAur=+Wdu1Kq=>#txh(4Ohfa7Hru?J1KyCltfQ7h(T>9RL6T literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.class b/target/classes/org/springblade/modules/auth/endpoint/MiniAppOauth2EndPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..e9ee201314f0b35ac79f7a9f77f4dcde41610241 GIT binary patch literal 8976 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.class b/target/classes/org/springblade/modules/auth/endpoint/SysOAuth2EndPoint.class new file mode 100644 index 0000000000000000000000000000000000000000..d92d7b7a91a407408adcbb6799ff7107f1dcc33d GIT binary patch literal 9043 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 qF=~>M>?RvEh1p(i3hDf+gd2FhxwpLe~_ z_;3HZ@mBz+@RvB+(5|3EMFgD!!?shzv+C|&Y8Nk-StFu z3yi?MOuVSQE>$l1;d>)O0+kb7wGNlpIXt^bj{LB1ug5!qDxCNhg5t(+K5p+Yge6| z5yuB{r-H*Oj^OA{#&?Z{K$O}>EmLPOyF<%W*R-^AdO4lIUASAphgI~UU!cpw75*xq za_@{YW-RGdi+&9E)d8PbTrqNPx_PDEyFf_6AhX-(wDfsM#c}DgLQ5GtPmd4cBPu>B z*Cg_+tGish2PYNWtKvS~FL1174uUX9@L@^J^I2ez3;;`cGaak-ZUpiFZ_2EHs%U6W zEwAVOL7_Q*zO_1IEX4-|?%XcNwlFMDDx+K0qMlogV;E^Uibe$5`}!B;`)L&)!^at! ziXRz)11)g-vJa}rNZBZ5y@(|+jtK=1sW^j4fy3JYv;Zm)vFw6b5}4>~aH|<^y3zA3 zky)csW)~SO=(Ctoa8BlTdY2G{8$8D+3UVs)Fm9p5uV{ayjE4&S z((ZDX9sBZxV;7}TfsVe({sjdE&do+xgzgRXU>29{6WerO#}d|5T$bGulid=`*(I#2cuKA&xEc=Y zI4I>R@l6%q!nfJ{YjPaSED0QB&(zgnI8}t`Zgyp7 z1OGoh*A%)iUAwWarcIt_yD|w9M-CW&&g`8sOU87yxM(dGLl?9QEsK{-R6YD#Fi)X30VtSpNeu$HDTLXU)@F` z+gsjFtXmP_dR;s5aT23*hP!O%&+Cp}H29&xkaf80WjW8Q#450~dnNv_`h#5&FoPX= zcW|!lV39M--K4oabxjqJEC#LO&D%{^J(?|~Q+i|<3hkWXhpReAXACJ6ufFu?#QtCT=dz$Z^y!Q?a9viv_F_7%I3S}S} zxr(kgx!#8F^4dcwkUJ|FLl-&oeoWwdTsiIU#rN?8zEKN)h#yhEeEKnd;vwn9OZX}A z$Tf*XYU-6AvPAJRpASU12^0qfK@sprP|45eg782N@h+9N_w0XzHy=}{xAd@wL-l_S za0vVyulW9nf6{Un_uLq);lMdw-akF?Ho9uKV`%6)KGcqz7)W(+{a7l(tCs3ac1VE@ zoJc9}VEDo{q*BpjG#RPk6mOk1j3$+2^g71ckcx>^JQ=Iu;kPhTL-rNylW(8AiHoWD zYlw9#|JcCe$#~Dw29|Gv*AlO(L^6?#*WlJrO(u@j@TC9#nHoMv(@HXN9bcewHK`76 z;LFnE4lfI{j2ke+xIKb6viu63$5FEReiHSQc$ELIxybxHM(+M;EZ`C@;Bge7!$ppq zt$-J>%siRQ#tMFeRa_x|m05h&kI-foZ{QdBB_kTaRs0ICGLmt;fnW2foi<DpCYvXB3|cHCs90)-{NY5lBlK~DYi+oW8@$WacYyx@W5>9V literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/handler/BladeAuthorizationHandler.class b/target/classes/org/springblade/modules/auth/handler/BladeAuthorizationHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..9b7226cdd3c0c8947eb95596936863b7531bdd84 GIT binary patch literal 6578 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 OtD}y=5DAeZ<^Ko1?}b+Y literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/handler/BladePasswordHandler.class b/target/classes/org/springblade/modules/auth/handler/BladePasswordHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..68ea2b7913a2328759b9b838dd8cdb91bb62ae72 GIT binary patch literal 775 zcma)4%TC)s6g`udA($pS%6n0SL`gu5)ExvW6$D}t9ugG`b`yIPyK+2e?7&ZT(XJw~ z-~;+mRqwUKLnMoOG56tn&bjx_{Q3L%1mF;BRTNNkP;ya5MPSd^u1xN17`rV|~%@b+rAiIuSK6+cutxZj=o<9wtj^5Yl9=_WRBKw_;0R%BqLwK3HdD zNdmQe4gPCc{amMkp@daEooY*6RIg3ndipfvc9+MEx69O6M~ybjUlD?Dp3WJHBw0bW z+#EpsCZ~W|I{7!SfjK(eya4m~NRi+hrYZ)X5LuC|)7;(}!1+n;Tlj7U|CE;u;Z%$T zEM}ArmdGn$nQ)T@N`n%tK(An^uuqoTt~9p?nEFNDTYAmNknRCya{`vJAzzeKpkw7v7!$b;chBaT-dC-)OSFgHO zO>o4$Yq@O#Uqc#|piL3wsxQ|L3%k1Rt*cvQs}45vMCI$Q!FTaGO{Tt3pW9ACE+Po-NNYpDyhDeD14vDkxv@_m;FVYBH=#oxBd8RQsN zVoSMJ=-CaD)(e#7DIO`g)mimnl%YSQ3;pa_hhhL@xSheci9GHwEXD%%)Py0cncKD> zdWvC`$RAiOi@TOr=etU`SviY)n8;w##C=RLOvhHZa5{!$APBHh?8f_VXS;eJ?4FWc zz@!^{5MzKtzZSY8;MxLb4tS}(aozyNmS3Z`9jZ8F+B}ro?Bylmc=G2|>P(39k zDk-I(0_wI)Q)3-Stu5QeVpzRS`ae4|n4Kphl7o(6MLwB{2fL^_-Q%twN?W{gv{qwX z!Y=B5MS*?^dN4sFofm2PKBUzKef55Nu5<$SBl>@uM*XA#BNRD`M>HF2M_~q!X+`lU zVwRBRXr3Zd(}zqKrD@o2Fen5l%$4RBPLNqQ^2RX+)>HXZZlv@Rw-}Cb_fy{ZPC*Ii ziaAOFd9i#MVk)Y<(FQuJTtEr)RE)r}fW?Sc0US$6QtmjGY0n^pn^?gU;;$JF RCMgLN4hqyvS7}V(>0db8%+~+_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/provider/UserType.class b/target/classes/org/springblade/modules/auth/provider/UserType.class new file mode 100644 index 0000000000000000000000000000000000000000..1e2ae5c29997aa1f4607b38c44f4e9762a366b18 GIT binary patch literal 2996 zcmbVOTXz#x6#h*oe7gkv0m}6 zzr+_Gv`DGAbn)ba%ipB#b7tC3N?=*rl{qt(MZ3~8^+uLA-T7?Yv6qaB?qqK?bm#hVUGD%xL`4)ahVYyDQHEoM?ODhP z6LA$C(!|Krl-PHwP{lqvdHr(!nmBnz#SSDHl+^S{;YPm5aC~mNo)XaTtb(M9UD!>= z%cgDV47>W%gDJ9YOLWpIw#Bn{c{0iexN=wso@D`2{Xy(G%Ab3D*BP89J_kMWjGOxwKX(ppxU&` zu3=l*DMzmuW$x;^P8`9@3XZB6K$f9r6JLurf>||8S9ciB`c9r?@yUpVuj49C;3Pvw z)vzj;3`fB3UeB;JIawDFxk))VjaL+$QSmCyGH9F7)qgXS zPQ@V36KNJ-Buyrkd?6Gq7<{c4I0oB2TUd4a;zc1pLP>jHjnX z3B9J`GRCPKYr1Q>EYnJWk zV_by3yN&s=8UvnzyRN5Qc4tIfp{O&(q{>EvP?m+9>e1(6@S%*|=;7{aV?J2|1d^LAy5JH#rL zCG}Crrf!e8^9FtIB)-Qs@)qt-Qw|a-ojN<^CB4hr*iOZuQloM#8a0c%O^0xIntZWT z;VHYCI>wN16UBCeNY7FoHEAY$!>Oz2^76t2ulvEo2g{~kO9XYAVKk5!p)$B#heJ7v zw`ez=vVO@Bx#(KI5e7sTQ5lWewo4t(>mHGf9Wg8=a0l-zSXS`?K4dr`8%|cAVJ+DU zdbS{mAq`&TWmon@C(*yT`zuJ6ujDzn%&iLDQ>lV&FEs0IMsOhH7DaK51;zjSOV8!g zb%TT7w>-v8vuMz0Oyc7$&9y#PW{Is&MK|14u>doP&&B1i-6V;sP{%DxcjUFCHxzuu zaPTqK+YzYX8-{&P7o`#9u|0g8p!U#p5gYCmzXbqV=|Yz)UF7s8DMq4PY3R{*kGRfh z-$DO$36lPMv^zkn_)DyyYZW^mLHm(*3^(Z+lkX0Z{2p+Gr2Hvbg+@YSnKg7j0u%C~ z7WopLsGgLMp-d-HhQYhSePzSgtZ%Gu4SUznmwAXoz%R&z=s|tDg77L%wYcb}V1Xer ze*rsbn)gy@`)R-FvTut^5@%v!(^JHorB&dMW`4%Gt_nkU8X2mnwNW1Wfvg1M z&b3hviAjyH^gKnY0Iy|^?0taI%+dQem)RY;kD;HoSUM~%^^rVD`!K{ekx%bTWHbW7 z>dpw}lYl{=K}zp1eQrr}`D8*AvX5LRs3BqQ$SN*n{(zGC9#QSeDheWuFmBS*OZNro zyxWuZxfIS9<$H_ddJ!rpnD~cGhiFwc)(LV+H^~NB5fTP^V!wgSgejTDnaB#1;!Jdf zCYj*AwantMQTLVSB=^9XUrATH7S^sr9-w#+VY#1)exia^6lg&=AwF5b2nxYeC6n~)VRXG( z@uaJ4$2ZFMWh>ZUwwubdwWDlZYk2mnCv02yw5kVBRUoxjjy?;dAL+UdRt4;Z(h1&M zBWvn|Z{FDlZpDd!pVMwf5u6NEF~7^nWU?5>h`^ZVOLy%sBG_^THWo?;vMp^-)~j|o z;1rAb82;dVF>z@ULl%XEA~ERBBs#+NBmm z#R|NM_w5hs>TOQ1CBMhjU&!JjE(wfxXg7_l2g(R+{ukc-o`ov{D<@YUl~D8DmZzFF zi>a%nHC9<)6{XgFS5cNFT~{w#wTd!3vf`0tvgA9`+m%N1`Pi5W_H|R>anJSr6>Cu- z%j)cCQeY_t_*(@FOuSIRzVB{J7CZHnQpz~tjIe|!d#^;mGLeb|9>lnMZ+(FFXxt(K zf#oyfJJb8iG*G=!bXhq@1p>oW7Q@bAgBm?j_FKkL8=AX5J?N(H^Hky%E|awQHw3}| zC3Lz6XMS^C80my%Wg)1U+_!o&W#< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/auth/service/BladeUserDetailService.class b/target/classes/org/springblade/modules/auth/service/BladeUserDetailService.class new file mode 100644 index 0000000000000000000000000000000000000000..8c99a29a921742d162c74e78e8032333817fe60e GIT binary patch literal 4320 zcmb7HX?GOY5xq|usnMtbF|4xKj0d6(8Vj&NW3Z6`TV#+365uG_S~D%tsMS60?vX9; z#%qF|IPsQ*>~=yDFDJ=~6~TubfAR+(|0W;b*WEK}&4&3P_1miI)~$L~Z@&Ka=Kld4 z#pg*hp;baR z-4aMT)1yVp(x)tH>F$mx8JoInjU_{n^`-qXV0;RmCT`yqc!!FexRXvf?n%odjeF|T7=$NcR>55Y z9hFgQ!*1+R@B?1j+c%n>j-pl4&CyJYo2{X^n@=Op+qk%CkdtJ@ytn-Q zI8ZktRYhWSyAS;e_Nv$iO(0zfC`eY{aV$*+(bG;b^d!S~vW`6?u(1{yr<1rF0}2kP zIEX_6YnE9ErIdNyDjH+c0_(d^$5UHw2a&i}#bF!~XmWVyMBGS}{XKQPt(_N{c4Tm$ zf}<*q;eLSwm5!FussUL7t0dzi_Ov7LR2)=*`*so4cOk-1a4tKVVf&`Ppvjm?!(`_; zh7=5|IDwM_{q_6^Xb59A;mjKLd4`WElXL8O!wqVSz_sqWm>WT;61sIoW1*=88W*B- zL28CoQ2NRu#Ke)M^dS`^@>0r@IAPej?T_STFn=f`nH9Ji4@8t5u|ii`sWe}Tcb#;p z##<6-#7v5K*QC%ak*~s86+gl`fi}})q4XF@f#&X>$s{IlUcm(w7xD0lA`#XO-mm*i z+w_kG$1k*F5Az?SdD_%m`Jin;*PUeI zt=*|_Kd;$Rhn+n8$l9!F8>7X!DR%j=L8r1#PPZ=Tt|{lyV#2>OXMQ5CB-J(G-zB&gQA;TEz2hpX+CV$-0R zWO^>JeOmh5R9;WV9Y`M#5JiF2L266d zmZe7W>HT~$jypv+XPh$Si?OSAI_;DFoBQ68f~B^Bs4Am7Vcko_!O)nUPRv;33`4^W~S$I?imdkf~1O*vbk) znV9k8-+wbS*;qFIfQd8@>y|Zc@>$%0-&Dk*^zfb}Ti23&4*pKX+ql|+t6cb_T=LRSjBMxPqNp!oLytPYvK1u|02W^l$%%$EMnb%uyGMxi`f1p zc8&J_7wNtw^e$ol-X+{~1B1;NOmrstm+-*9DBJ{(|2GASwn9F`Q`nBJG(UheeC{0# zji88m&S(x#;b{VqqXj%e4O=PoEZ3STqwsC;91?h*`)y4;3LXNFzfi{g3AbChmMP;t zRgIf_4-O_I`p!gOi2QT{gDsscE0Nz3sOly1J|gcYmc8tW`-%EMfc{u$s*FB^7bEnU zGWs16`d$3t^AdLxln(u9Df#hY*^ifTCF1`Pew(4EiyCrO{;X|1jR$_XX1b z<}5VR8boDdOl`8PHW{Q)S#38uI+8M-DI(RL<5z}sTkj40Sl}yc3D0{asYcUicN(hl54T)YE<>roC&W z_Rc^%?`oudDAK-~X@04mzP^~g)p(0>E~9M^^syM+j=pUT^^vHb(?An`fp_@rWm5f; hYriI$zmG_#0XU8y5~xGH zh8Ra24Gb;wM%mCU!=BYgr{_h^V`w;L+NRgbP@is}N}v%<8WJ4M;0*huGpoBr$Fygs zEh8`Vg3OmJ;p*;X*AoT3DCeavY|r#A>t|iz4B0c1L7Nqx+L3;`J^MdR^dztz8#J_V z+=o_%y({%|(h<5eO5WUFz39lYnHP>e+Nbv8;$lg-6jO5r!GI{zZWEzcj(fsW;RJ3r zacovTqT}Pz5(#X@HVsLR`>~y2_p0taDJ{L^nU<>$mh2ou!gNQZcdAhIE;DRSSGfym z?rA@tKnf3Nc#z{E5mXK1}6msuHPau<$p97PY6 zUfHlpVswU~tvc)|2~~MnDuWD;bM!{&gDMVUdYq##Dvn8E8+Jf^2K^iZ>U1;lwJc9z zkmCt;URD2yQJ_M~V2I;MbylOZp)7?g$8cnKTo_h#c9df*vb!u#VVq+^ollV6zFbb0 zY)_d!%Q2;nC&=`YIE808&PCS84A;FR9f~G{XE~mWtXIp^isTnLUQ$XbsbkWu1Uk); zQ!1)3mZiFC5i=aKn4>Zy1(k0qv!%qSYoTXN*P|=874sYyU@^qzrD-#CRI(Br>X(*9 zEy$F1&#D(R1DiuesFk0H!;2hF1h}tkc!r~5^f*cp;AQD0j+a5Va=jvox`cF0&s2yv zR$~bOhyCwWj@R&d$VOO=4Cz%GSy0SDCvZ!}qI5j{OqpWN;3~&8yb%%?8E8+}G{RN& z+ov?V#n8F(=0x2=^}R~xnUoiVeU{iJcKc;sFl@-0wiqcDriC+UOj{&r&B~l%O&N}< z_7!2wn=>i??ixgEIibtdOiiUMoJw!MQ5#XDzs7Xvsc~A}6ISo%R2?hns8)&^NjL-4 z1tzSGC3=VB=s=D3f5AzY)``Z+{u&F_{_g^svZ63BWNNhU;Xi^OPOsM5rd0_~-3V#` z%1cycYtu^y@7{9B>$(Zg$XysVij_iX85VS3@?(ZW{mc^%6-{D7mYkdzG?nZ1OC{K? z<|}sMP5QZ^{^~$28x8b)n|3hc{ zGW(I<4J7-g<4?rdLWd7+c#n^DBlOsKG}g60ZIt n_=b}CE$OtNzTr07G^8}_qW>hmBWY6|83mc6Y~g!)*5UfUFhJhR literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/desk/controller/DashBoardController.class b/target/classes/org/springblade/modules/desk/controller/DashBoardController.class new file mode 100644 index 0000000000000000000000000000000000000000..7999bec2b1117d811a2e4c679ef9f2fff8a95531 GIT binary patch literal 8640 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 HAf5R)QF)nI literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/desk/mapper/NoticeMapper.class b/target/classes/org/springblade/modules/desk/mapper/NoticeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..fe7121016ddcf66ce170e7743216875f0d40846c GIT binary patch literal 876 zcmcgrOHRWu6nrjiL(8w_a|EQa!R!MpSRhqOX{Abtt&=6Hi2zq2_nW z$^a+j!htq}!9pwrk3|~sslUL$I?!dn1C?-Js6>V;=gGQc|ZNl zhjvy9chj;p44(h@1x=h=ub}X4xz^z-HSQ+Yz9*)M?9Ybv=PK6$-pZI-HCzw#d679v zE`u!^9r_n7O1A^s(1ISVIt= + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/desk/pojo/entity/Notice.class b/target/classes/org/springblade/modules/desk/pojo/entity/Notice.class new file mode 100644 index 0000000000000000000000000000000000000000..4ede11603947ce7e150d441b19f03240a088703c GIT binary patch literal 3715 zcmb7GZEqaa6@IS0yED5UJB|}OUP!^fLT#_Z009E)xDcF#7;KZq#uP#e^)LL;= z3i~4i*Wg+%MeOW$V8b2oBs7J;&cOA!L12LRGwJAt5|eg(3V)-4n^Y_Xh|G-} zn82jKfrhmqDd(O%Vh8IS`2nf&12OXw-LmQe z!|5d-T0JML!Suvqs={tDaH|66q(b@y9L6mgZYL*gsv`r1zSF=F+(p;xmd})GyRzi7!3ds;@}Tw_WGqx#I%j0fGJ`_Z6$&l3DJN`V#`hGcDFxL$27qy;_&Y9LEi; zfTrA}sd?Kq{b#H-R*t!O*mN!5wAui(A#1i}E>+iM!z^tf0I_^~!((H(Hxixt#|*E)$-9H&~Y*c~p6q z+Gl(ql&1uR5D@o@zDOI-218ZHq2C(;I%Gz)L=s(pyu$W;DX^*=3sy5`B76GG+`9^{EKt2^wt`x6tlseYYOVz|@VaaWIRe91@eD_5i?`Bo|Y?Sj=w_&bYZo{s* zEwgccmDTAt>#cMtnqe%9B#ZoJH&uzV(83n|1nW8MpL@2Rzqs|oXm&`?%k03q_!?>SMr3NN(icjT51v`fa_!jCe@u31#!tJs+?LwD|HzaVeIli z=yGYBhcB|z0q=;uxyi6Aw z9r=UPN7=vbm?6gp7Y`0juai!FuzUg9p-Z^?NhKexWR#+qi8Z<+IZ};PvZ0FnhDLfZ zo2W{aT&T)ztH?U74t6K%R1{83R4;GVCt)#Iom8xH)Wh!k6spXrm!I(qsBx6RG2BLi z6j6_}X+OnLE+pVR=-;v1W;EzRaL@Vm`W+41^ByG_Mm7N?m`tZAhUHSQHgcyl25X(* wHol93Cd^_jWOO~eyY@3vn|Yt}nRtAO)zKhAr_|vuU@3xyCh!c-<5wtt5B(ep;{X5v literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/desk/pojo/vo/NoticeVO.class b/target/classes/org/springblade/modules/desk/pojo/vo/NoticeVO.class new file mode 100644 index 0000000000000000000000000000000000000000..7a0afde311a6f7d2c35af8596ff4119677c9ce38 GIT binary patch literal 2540 zcmb7GU2hvj6g`vd+KyuE(s)Z(l-l^dt+Lb3EeY! zT`ozZB<+GRx)plNH*IPA6Ztre+Y;!(c7g7K>5p$h=^Yr{ilahyB+#cq zIvFw>LiLc9T?wSITVQ8dE|}wv&7`hbevvcJ=YF2RiGi(%TP=UH?cM|)!9J#+llHkc z7G+6bM)`RiuR&knw#O0z$K1IjsKDo-ztgV-NMzd))^O%R~G4=3|o#gvT6|D_&g)$KLceiN~wga+rx-jwMV zo&06#QfR*Ea=T6j*HoaiR3~)Kv&>Y zHza3#nOm5Wm5>Sj^3{o{b4+1^3UEztvE&ORn@~IY>j3c?XVJ}>=PgBUGHB7cOGlJe zxZT>@D{CLUyY|JcU%&fUwOi_}U@__R^Mp<@7gLE3pPH9wN_~`g%IPi zRGP7TGaJJd9-_v?Kx380#PI$abz@?Xs-3WH(;Y8K&ojL!W(5vyIen``ML|jJ`)5}c zFkpcF9Am43Pn)_WAuz87Ha2Fj*5WD zQ08kyTj$*uc!YVYGX+#V%{ZOSiWD<>rZr^pzd{BihmhS>$P*h!Ji!bUcU?nwk>b;P z4?BV8vo^BawZSs4Y(}fIKI9nX=w^mKhpw$;enjjh^!Am^4~R_-6L(Mbb11WlM}rx+ zn;zzCR2%sTooVepwk;zulGg6xv6@Hks7{yO(MVcXK9T$ASw=Fgrz15dZH2qGHy`csjdmN3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/desk/service/INoticeService.class b/target/classes/org/springblade/modules/desk/service/INoticeService.class new file mode 100644 index 0000000000000000000000000000000000000000..33706db9720492d88268fd96f242f1c198c4cead GIT binary patch literal 799 zcmcJNO-{ow5QWE~G_?E`afz~F7Ayl@us}j8v{EJZlVlWJk~p%RN<9P@V!;8p3^zbb zn{HZ!L>4T@V_Wu{&*S&;_4W<`H*gk0py0~b3|(b)nZ-G!jD<<-oE@g@UeK{!=!Eh9 z(Rj(TW*I_9!C+1c!ko$sC-IyUA3|5ba91udRx~S&$uZu_u+b0!$GKcBpg-%V4#WE(ZU6t1k8zJ_Tk|(@hU5LiJ)wbX(GdH*}*i?9$L>KMU1@VFXvq`69 zsbJ66Dd<#d(r&qKh=SfsXC?XC3jSw1{OgwZqyK$xdmII3yz7FWjK4YHFZHyzY{h6t4!go5ChM#Zy@^S?uCRDH|u`e!HV$={0Ab_5%dI9t$9ZDQY1aK_T%ue8R Hy)*a*Ijski literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/desk/service/impl/NoticeServiceImpl.class b/target/classes/org/springblade/modules/desk/service/impl/NoticeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..003712f6d7295f693c3c27dcd79cdc54770d3eda GIT binary patch literal 2151 zcmcIl*-jKe6g@RF(lU&Sh$xEtHUmh3yS5OQ#DrvAB08_8X1W{-y1P2v)fhg)f6>Ia zJs2O2KjR-5Z!bg!$Y4MC(ABlwdrzIa{rvs)8-RJ(Rg_S+P^n=L1{kJw*yT|WD!KMXQ3kuOi6|q2D`FzI z)5A?Qq3p2;0vR&QH9OiP61Ars9dmEJEsTl+H;!_K(|akwnTT!S7{hE|1YRbTy)hFT z!Z;>sIDwN4!;y4l$7ILPL{~EC`ffO+5sol|FD3$Zv#y66f-!ii|yk(>P<{ zYz^mdo}z0P5_*g?RLNz}B}JeUG2F{N_E&kM*jp@IWVqV*K^rbz%s9*4$xwNy9b)f5 zQ~B~q?6qb1LbP4l8ENW{a9bi&$vWSxm}NzP=lhelVQc5`u^Ha}Z(kL02H~j$X$Z{} zW1VV*pXML~?@!3KXkr-arFT8pp!iiG5O)h2UZB?wKbB@$JI_QYJZWS|4jo)lU0)a~ zUktyBIj1;+f{=^lLUA|@Kei$2*BW-QutVkgms%rzqs)3K= z9r;KlDLmGb>q%RiNm>uX`16>|d9tMKir38ix)NYeMby*rO(TdZb(SOh6C$RVFah=BG7??tX##(j(le7lSPhcA5 zR5(C|X28VsXILMxZ))-b4t>Y?)btk|FXIbNmGF+v%Sd!4O&*wqg}GGk=}b1)OImOl yGpVf!f;CIG=jeWBJvqBVXIE)wutbXlIdF}>60Vb?Y<2@T)16zmP5R2Fach48J*d)XV08D`scqt{|0auu8ahd5;_!gqKo0S z?bcP#aSf|pHMJU7b=&1?!%@A!actLD7d4L;E#L6>HeJnexXaKrZ&-$Zk0F`ORV1Vs zCQhO>>{?)QPpxrpNBybksFrNs(0K$SLlQi?8OG0acI<6i-L)g`CX4zi->78u*6ksf%2*p3oCRuWmbgYpzW>_y+eFX0t2X+ODRWnpIcJ)orf(b1_T7 z)I4u47qdibWW0lSB@8GS#ASv{A&7_;fe>`B%U=eD%S*OZ3QP)q{ghazK&SCOK9De^ z;6r@GFw&k~qhVVrw}OVJJ}`8@NKaIeQh8&!P-M8Vav_g788SXmFpMh<-F5C4G@sXP zcaLEp8>h8wk)6A={!?6&Frwf(ZcsLFiK1)z77uw9#1lh`uq&Dw&|@ikL2fa@TjArB z)_u{eVFoz`qZni8^NunoX$=ZC5SKgh$W>ApCrWyhYd2Kfl5ktWgeYUrQ5jb?hnkzH z%b3Engc$|1xWjO*J#E@7v1VHeES*6%JZkk~!|_8sWBEi4lzW!K=Tx=l)FhfIV;*-U z+*9xc?lbfs^<A0p`)q+L~g#it>OqBR}`$GM4~wX#kvz$KZ+G&*^1t75>RUj9*cT( zxx8WTatZ4U>Pg{`&6jXQ@Nh;&V?qpE^HM63*hIo&R9sZU<^J41kFsDvXiq%;S470{CL!0(Y zo^J!_vcj26=fK(i?GjV;RMS}~t6sqUxJ>C9O|NJ)WMZ8VwJ`02Rqk)uwKdJ99qn_M zRO)U9d>n8wsWMTQg_D=I>|CxQWIwiziDla3nyYU;;^Z=Tyaanrs|?e}-R9c~#Vk?( z-XrjybzjqWD0o!P^tw^EG(T{u-mP8G;&(w%k;Tt#a-MrE&$qdp*V-3wh?h*HE3eyu ztMerz>}MKsN9XxXp*yb7#!JwT2I%jC+7n%L{f6FDx-(%NeFgSAJtXjyuHrM0$1}Pr z%?0=t-_ctd-{S|e2~IyjchFDFTiQ5(<-rgm+l>OzdDwY51_mOT{CoD z{R8ji_wn%ou9ouS`^e@6PLoF_^q8VwifIgCh9b^}oJN~S5hudLbNoor`jLT#DtQl4 z!a8b5f)iRNqXmN83)IOZ==@3$NxDyF@~dO{*SML$0VaRJ$XGt}**@kDZ3_n|zQ&^@ zHifC2z^2ftBg}J| zo0mS=@dOc_%>S#T5-JT)nWA#4U^*$0>IkKiDJ$O59yKCnD3*w1qGmc2F}uxZA{h!N z;&v(#jhd;@tVG0|mHWvwJdA-hGu3T{O{U{pim^&NQ$x+d$fauv(lDwFP*BluQcU%Q zOu~s2gi40enPf7NvLQq~V%b(A&NQmSv`^2Nsh(viBbhW)OsChitTMWdP}GQbgci21 zGQ)OLeM>kI3$+`Gm=#H6Lb0B9!?x1NXeJHaz#9rW4AY@62(yr%Wz%pPNuvT(rD!x& zGfgQJuh3jW>Bv+8Nf*Xpq`7q;T^d&_C@@H;0PV+gbTL_yiB*Y^8MiIFNBb^FW9WbY z9jK_5#xfmJNUzOdClb++k+edKn93rCZ7>}-q*aShYsY>{(ZTd-rU3MBH9BB`Wp#tX zq|n3K{zcsuGi^h}3pER4z1ld5p+lL@apld}Rx~uT~XX!pu2outPpI-X7dD5cC;qT8I=(;R`Awf<0;B`_8i?0{Bcppz6$r6wml zg@CESoo^*V04U3dTIU(42EgC5Rg~>}8hSi8q)(ZbPpl{R<5=iT8(gW1(D9Y*IcRquTC*0(la@YaT#cdcEI z|N1YxS+d1Y)J}-xKsp1>((u;+2+jFx&-tJM82Mw;$^dmJ>LiP4(vb7p6A3#Mwo}p2 zOex^d*fkIgJI#t)_9;xIb@fZ7@OLSSQjBS|AZI#}Nrk;S%rtFKIv3hLSKDS6Qa1_n zgrX#Ufk}bRjJoxm>4cBYcfOBMvrH?pDT5%?EL&3vJ7M=E^D6k*h zdcBX=bGU|$n5UX?GiBI`RFJx9rDWH6ioQr+0%#$#wfF)9)dLb+xJ1#{1Q`^NLCx5)Pj>P%0hOSh!UJOwVn&!xGx|*&D&;~`{plg{6<|ILJ{)CXO$7|N&_tB;eSg|h>$pTLVgtB ztcQNSb|Qzf*V86NH`8V$eabW<=sK7V_Y0Xz`aJSTYa&LyMbWKv8`Ch)s1iXwb!48@ zk?ZMpMR!OgMUgWiVhMZ_4tFWKo9=Pkk~1D)$E!zq+;!^FeTueu4sOe|Yv(sdg7g4A z7@&s~eTyF6tHp$0I^?M2SS)Cz7bI*XO1z8dAiv_XI*nADiPkzEMjb^rQA1fpkI3@U zz%Mpq$*5tQi;>p>>Kmf1^|BGrughO(wzD-6Y?pF4j2;ETp~n&VA6N7QJqZtDMI#Cm z9J@zZd~O^hV~D=3=xKUJhl0e{9tz>SAU#LV2k1MBUZ5A5M&?^}hbqu*L^I~XmEwze z{&KH_R($ueqF2QGQlC9v$oTgZeP4W9<&5XuDmnc_MXyS>i3Rg$EP3}MftepOO)ZS~ z*q&e}Pw!%OfPRAQTrqk-*5p|P>2>;`yGBwM8=si;i;ouW5oas@1)hhC?CMZ08{G*U|d8gWhCO>ZmOEmOsa`SI839YybY z^IL&os}m`Nc{lx0(Vx8e`SBY1i=w~Ee8EaV!#2Aos>B}&8Oe8%(@qt|HSj5MhX-wS^6dJJj zAjO{&dBiW8#xvBX6(1tZM2qHlIGTx=`nyysK2-5xqT(og^y7?JWxV1egkz!ql`WerbMJjt^yzRc~C;ch-!@nj(gf=zC?hL2S|#anZ6 z$~2wH$16U;Thkk@;gb|k^*GCDtED+lQ+%?=IX7IxpHVzrW=mekuxFl`if74m$&37W z4bM?Lm$Ac;`7@2QDHT8<&W}*daog-b>m1}}o)_THDsJKV=pFMA=gvUovf}nq0Xp4k zHV1hjw+0v+gclgc2tJCLI9)Ie6xK1af6Q}o$E6(dV#P~%Daau6X-2v&gQJ}}`V>RR zh9Gi6L{t)XXDU8R*hyl5oqMVx&ikC=bA&>IYOZN@#61#2al4R+)j*=Z zRYIqTVv_;oWs4UrnFB;0LKa!EQ?VuFo&x@?@8&MWQR(JOQyJKyB7$=aX*re@-~0Fx zS1<@$oU-ori&ONRB5#}s8UNFn6$d=t4CX*E(ncH2xrn94S|2B!`wsB!5hVWr|bpFx72 zf>VRqMHxh8%v@@vEm&|yJf6Ve2zH&2d5TZ>m7)p?PgiKQ*&b@Q;*pS%n;SY6y*ExT zb9qK+dlrYi*SmfwIh`nnpW~6}a6>r~v`>u;FMmj{y zbU0-tozvIg&c`(Fw))J_u8)`Zbl6uskViS$mSYXw^m#3c z&qrJZ6mnVz_e?5s{#J092HY8#Ea+9;ggI`YRMUKr;Fdh!h`WK1;A!6{2|i|ozFFXo zk0{+oG-pxtnfA%+D5fkAIl!4g$TJm z6@^f?0J$Sz#oJr%)Y4S~xXq|5b^o?aJ0HIWEpcW_%I`@S^VOF$qbKF$|ednas7=)J8AivisJ$O*QHU5Z+^>)HqUZ`rhK z?X^3f+_q~&AJf4D<(IwW0MW-H3A>CGZVLdgRzzcD2n~xB*(a%7b!H|aJ)o;_PMT54 zEjeng_9eQT`U2$6B$2#K8+`Nbjo9o}I^d}Z)z02WcW>CX`^HQ9*RMsGrC>BGWkz%% zO#*-iY+>EQj^cP(Vu3@IPbf_(=@L#Pdqkje5$Lvc{cE#W)e{I~jyw>)!;CxKL%D=L zbR6Tb(-`bK-DR3LNII|$a!l?W=Ir@s6)ehOToXNUFzKE8VW}X} z);+UkI&q(*&$|=M7x+R|MBcX`)rQDfph@b_h&CIWcXT_tB?$2A*xKd~`D6(Q-=+`S z=UP!9c8w%e{+xc2OqQNx=$tm=IOFoQX`uy)`0O^Udt{Mvahir}O!OOT@36ZFV4W9i zA4xUT=X=>|?eK}7!zG=W>Wav08y)G;Vncf2qldOf+6-eS;I{{kCSy9!aXp>=ieOP}K?m(-s!?fjh(%E37M^*5fLEg#z0p5k{Hhv3tjrskk74J@TneGWE zEP@-jxkeZV|A6D`{d-V%qQmqwBObxuPK<9!B)T#KuASY2;6vj9gi^5lx76-*|8d9= zhtDpHSw=M4X4z)bFy0OHW*}#>2kN~O(zSiXH_D!K#-_c^ zxLIaw9%6=Pzb&5qZqfGRTOn|D2~2u57Q1Z)?7I~s5S{Aad&jObp{#gyr1pIu9a%!X z)R6aig*Mb`ZAiy3BXfov>G<34WzV~}I|hJv@9?C%)06HlN4mSQY9;X)$a4?=iLk@5 z0n$J26)E{X3cC?H$CYxl8=;f>Xv&a+Ug#5abWYIGyp8V%LpL0^f%#xTAMgZy&=d3_ z5%gPHG8|Eh8B1j3Vczc9k~zzdxH6s#86}G*xt2W9O(D+Gw8q9PP2WMYiL!K>j^I9O zDNvwVhw0_`qltC61h@j(b)_%MCgqfw#J$`HuZ*N|+WxsL>m5?99iCc`dTKo;N<2PD zttb3yJ()ATr`EW<>03)^eq+N9T1?bOXOvL&=X&Y$5;9Kyjnrn?2mx=PvGj^hiE%k4 z#yK9roN9iGzYW7m<|(a~j698zy?W~zPpxM?wVo^PE$Zaw!C3Gl3U8I;Ikw>uiZo2v zPTbJAomMqW+)nX^+OqAGdJtb7+;ehZo>pXvLzPoxtVUV^ld&3WC6~s^pDt)4jFrDQ zKzxWQqsuV03X`hvxe6bus!F6lATA+L>2eSR;K92erS9dA(7E$r@A!l)_4LvC5=m!q8rw574OOuui<(w$&&Z!g`ykrv`@ zd-aZ9dTb-ja+%}HQ@!-8x5U(P;aOXrV_MNzTkdgvsj;@g};v-F-kr)TLO^89C({v*%-Vc&=+mu9&_ zo|Rcv@*LI6)ma`RuVeM=!FZ+ZSso`thiCan`F(Ge>*aT2mP7J9Cd(L1;^e~%uf_h~zqQWiIEj{qlo`B2)y^|+v(OpozN^f=F;C%73G)Th%^ zyqunfEYG5{J{;=AZ&9kh!e+4%td7x^W`;5s^xU*=b&LEyW+K*pO>yod2E z{9XPY(xaBI;_ri^lupE~AAq6^62HekqAT*>Ki6^^OFDf1PJsKtWd%~)u=xiUG2}H`p@z2 z4gC8>u2lV!e}!47)*4El<6p~{H2;Qw3-W4w`W*(|=HCP7{=)C^Klq;*4`S?J{2%@= G)&3u%hLK4C literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/controller/DatasourceController.class b/target/classes/org/springblade/modules/develop/controller/DatasourceController.class new file mode 100644 index 0000000000000000000000000000000000000000..d4d922d56a34bc4d3a8cf1fe84d60d15e8992310 GIT binary patch literal 5712 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/controller/ModelPrototypeController.class b/target/classes/org/springblade/modules/develop/controller/ModelPrototypeController.class new file mode 100644 index 0000000000000000000000000000000000000000..021e49f0afb78f77fe5d51bd658a8fde79855386 GIT binary patch literal 9089 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/mapper/CodeMapper.xml b/target/classes/org/springblade/modules/develop/mapper/CodeMapper.xml new file mode 100644 index 0000000..ea66830 --- /dev/null +++ b/target/classes/org/springblade/modules/develop/mapper/CodeMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.class b/target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a4efe84fc9accb11209c36d3f84a7b8483692481 GIT binary patch literal 355 zcmb7=zfQwI42OSL3ZZ3T;WhBc5MZb(rXYqsfsepZ)p$P2`o^}`4X$S Gu0H_=Vsb+O literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.xml b/target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.xml new file mode 100644 index 0000000..7a443dd --- /dev/null +++ b/target/classes/org/springblade/modules/develop/mapper/DatasourceMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/develop/mapper/ModelMapper.class b/target/classes/org/springblade/modules/develop/mapper/ModelMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..728541bf780b4487cecf72cb3659592e4e561b87 GIT binary patch literal 340 zcmb7=J5Iwu5Qb+Hz)5Iw5=Khvgo1*~5k*cg_KvKzc0H?oMC57|9DqY17Q2bkAc}cN zBYpb6`TG9&1b_oPRXh9XSU+ek@p<%D4OkY+AFwIupQ`3 zXld;6tsS^a6+9@wP8_x*&S=T#E-fV!z0I*4LSfIW7m7Ti6s%9CA1UR)3f`MrXx;o1 zxNrXQ@iGYVm`u9NQuTAKU~`fjI({{_UegH!X BYvup| literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/mapper/ModelMapper.xml b/target/classes/org/springblade/modules/develop/mapper/ModelMapper.xml new file mode 100644 index 0000000..3265bfb --- /dev/null +++ b/target/classes/org/springblade/modules/develop/mapper/ModelMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.class b/target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3e87bd4f06b27aeccb6e07895563b312e308ec40 GIT binary patch literal 367 zcmb7=OHRW;3_v~Q6WVUratVBZKo?zfl?tSuz{yzAL^JVdK9#cUwODWf4uv`dRuvLr zVOz4LXFq>@zP$s$Gps9ED5xd$7=18f-&)d)PIR^$QS*_lcy#1F2i%Kh`x+!knmq64 zW(C&@?gu&&S{i$NX$S671-A;Y6NfE{Gg>mbsikD1w>g$UC`-PfTZ%s@1Uz|t($)WpPIkKybOXoCX=QMyLwYASREvXj(5hEgC2gI|29cY^=` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml b/target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml new file mode 100644 index 0000000..4c6ac56 --- /dev/null +++ b/target/classes/org/springblade/modules/develop/mapper/ModelPrototypeMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/develop/pojo/dto/ModelDTO.class b/target/classes/org/springblade/modules/develop/pojo/dto/ModelDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..99e905ca25a3e6640236955223e2ce9358e061dc GIT binary patch literal 2318 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 N#UQN^tHi}*{Sx$cnk4`L literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/pojo/entity/Datasource.class b/target/classes/org/springblade/modules/develop/pojo/entity/Datasource.class new file mode 100644 index 0000000000000000000000000000000000000000..75c742ad93bfc2e51c504515bed4e45c02448929 GIT binary patch literal 5642 zcmcgw>vP;z6+hSBU1`^{y>{ZHO4E|In}@xLMcOnea#Hf9F1BOh#Gwyp=WIrnP+@UJVsCZa8LCPgjODp5?KI3*aZw(LpGsoKTL>cm^QSMQJK^RE8v>;0Dnz~LYab|~8Fzh_uv%{)9UYz8jI~2N;ixRe3HteYsSQ&*@(ki@v z(sXys`P8$fH#FVAD~?~IP%rf{l7Jua99!Ig^3cNGa5SS1(8^}MXlP@(0+w)q7m4ZQ>|&K`GwPgu`NHgp zcV@4gyngYQGpC+|dow3bTt9mO%l^TSFU~xB4tz$+`@cCg`}~=iH!jS)`6NWwUphB? z{4$Un|L(EtZ#{+LoH>4M=E{q>zkmAN2Tz~4{;PMm^zCP6e|8QPEMm|(RIHdIweo~% z?=#>DuW2iXNEnC*#y&IV7K(7~zM=oFw{SO|a4jwguWC?=z2jJjVbd*G`BB409lBT! zR3$V;RW{^;pEg{n1Bg&D!b>nvg5s?~;fYaDZYVN<8jB2p1W%L}GR3vTJCF-jW3Th` zkWt)n3#N@k;ql4T`)7y84>6J+Ky=NN5Q;(C6NDNiCMM(!JlTVxZ(@!@?9t-ALHk4` ze3{>Cf{6vKbPiBwEb5tR+Q6?E6O=yMYphCq}gDl;vXVRN21e=R?drHRA40f zA*0)G4n<~)DAFC+U|Z1KleCOR=`+M=FGejih6~3kjQ3;QhUYl00}g!_0-S~B3m$?1 z$DjFvhatfEXTIPO2yhUZFL)FJ9ERo#J_i8~MDqoohXBW+`GUu&2TU9@aX$!8G&~ue z@xIH%E`n$w19vVaoQ5WF=S~AaIm+XSu+u8s4}z{M|D2=?V1$)7Mk?cg6`|bTtUM5@ zj3ZZsa#yqR)<|U>$|95(H!JUoRL1cwLV0Pk@`I7eIO9bqFKbrb6RC`YV1)8*&C2^C zm2pmtP+rlj{7|H_NsnVe`8w-(@}fxeW#1zyI!l%agr6lmgG9MZLNAUz*Gt9%6{AeH zFVv(cG~c8c9EvvCwNR6yM17NDFcocb@j^|C;`U97K`Gkg(uJB7ZNWDw2IXjz%NA-< zG!);Y7*wK7-nLMaq80fj#lVU-xniLvMHBN)ia~WQsYlVQd2d?PcZu%8wHj9zS3j=x zxHjP0giF7IuWV}0`fzt!HP_wnEg@30^q2Y~Y`+h|6*!k>lNq&vut>?2>NgiGc zyW6~BU-mNX5)`H}vKBWzw(fV-rpB&O*I825sj*A+K!8}S#{pTbC)7B{B(72SS!!3~ zY9a*6>JmU%T~;Lyl6{b*${|p{o&>00PpL@`O8KCqnhJr|>umt7*A=ymgA^YGDg@e~ zw*$06?@-%0sKW=fs~sWGCcP7&O?q1GQvJqkgj(Dr0d;k7YB9wpf0sL0L9K@ z#actVOxEi@S4FIY{=r7+Fxgn$9yUM@cAggMXLphdUMp>2%c%w`h7I}#O@oTl0s03W z0hPe`FZ2aa5`CHeL`Ol%^g6vqUj&t;)ATNV2~>)%(n%m}w5DtHEPVx(LNhc)Uj@}p ze!7;n8}KVf%O&}r)FF|a{E(JN zG>CtheMq+mGWkCs$*+dPXsI#&p)B$hKN&Dk=(apjd62`qu?Vtg(!o~FH+2V7XMsh> zYtr~W2J0XeX(ddw!O-8*1DkO^`1BU!{9Pl<(*p&hx17$NC28Fy+H;WeSL-n@P-DJC z=1DI^Sv~HFknf(7ti}UTzn<_!i8&FfKxnPkB~OF`@U^5sv_Y3Wkvu0tSqQC7deRf2 zB7Ci6Aky`eCrZtUP$$q@9-WX?;kuuYt@KxVnvNkbGX0sJ0o8&e`6C@i{917!`UQOx zRE)OKDI^n5$VZVD&w)xHEerH5P!hd>A0JMDlIbUOH$4w3Nx!G1^leZnoWw?PC)WLcX!x8Drm8)^G!BXv9f0R&T6^^;z;eaHJYSd7eg0eSMG fLoWp%2`|%kf#93fE4bdI?_-n#^%nhr-X`_mL5P21 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/pojo/entity/Model.class b/target/classes/org/springblade/modules/develop/pojo/entity/Model.class new file mode 100644 index 0000000000000000000000000000000000000000..aad87d873aa0d60908f8c2e29b48ed20784915c2 GIT binary patch literal 4866 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 W8P)JzUa#N>)Y6pB<2C#Ung0T}bqfFh literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/pojo/entity/ModelPrototype.class b/target/classes/org/springblade/modules/develop/pojo/entity/ModelPrototype.class new file mode 100644 index 0000000000000000000000000000000000000000..a6ec68cdcaf2cb7a5cd2aa23b110afdaaac1a953 GIT binary patch literal 9692 zcmd5?d3;pW6+U;E$xJ41lF35gu>`b1fq>&)c>ycCp$Q^EXi+LJGmm6oGB3=VfLL2= z6?c>>2rfmjDp(Q31u3}J7MJdJv76l_1Zu0@m)}oozx(ceGjAqO82qEZ^2?h!_k7=X z-g53e_ueC`f*V0#wH6WHZwlvwAYgbZ19OPZ+VdnK5GBJ+Thm zGGf#4F*BV_X4fz(o19E1v*$7zGfwx--^lraPPYX(|<}q9~)# z@Zw<=1XAYZR)@F&7{Wh9wU=o z!$WgmxI!Ze04Gv|LZdiP=_tgL;hGZ^I*~qxXOy&BlU9~dt?LR~(pjU^$k>-SMxm1= zah93s=Gw6ejpMFB(wc9s=AI^nCh!wQ;%0Y`nZ^Y>mvD+gF^+^1$#`};9vi2hrqJm; zKo|jxmA%P~k>Kt#6*`N%gGuYcUL&)H`#!GFIb2`9l6!d6Fua;V%`_PSI*qKI9G;7s zvEy9#U}uAK&sFFXbRHfjxN~v|sVgAMlyLeqg{Hgd&M9XqG>iKyWf++lE;(PJ77kSb zLNCeXhGU;psI?e#Le5p_0*+O?bRt7sd7(n{sU3F?v_&RqaKTkOY2xgQ6k3>P^GtE? zrxf}$_lE2kNEUZqtk5O=v{5*57x{c~@G}Zs%0d3LX2_IrzphXRj}#G+WY##6P{`m2 z&qa$!9Cvpr)WriSaNF7BcU^-KykIK{qQd6SZ>6#&EppH z8k$ka;^ZZMGOR-q&0YnTvl_GJpKq014vOSh1m1d15SXbV?e28m^4l6q>P zk+G6y`l6N@jMyCX4kwEX^;EABK(_fm#z>vti&ENcEKFL-j+8Mqoi?+27E+7Rgw~`P zvsUY!C^@lJXT(h1is^YmtlLN=^;mnn%jnjd(K8c<70)DlxEkH-(Dto;TW&hIcmI(M zI~h%CMFom2)2*zLxvV=CTdv1fSY|qw(6f3+GM#V*j?DqkZr?`oasz<_y%y>+qvm79 zz`e(;Y$CS66sgDs$smf-f5XH5>#yy*epBE2b-8B$?)|t*ez{L- zMZN&$3N7MhW$(nuGz%9XvMQj*o7pZS11Zl|V{TCsvEBK0g$+9k1x27v(*ecZH29m-*^E zC-1Xq&MHbS=>)IPSzSOB=cp+p3TJHr(dj*Pg;d8~W0O(Y@^dv7Y=T?l6?g0`w$QN! z%jK|R`}<#6X|RW=qqlk&#=?S~s(HyUm? zdoyukR+87T+QL=-DST376tgFT4&CfdCd}Sg_nHn&TUJl1*F8tY><7iW1)oM%@wpEZ zvAsLF)E-rr;vSsML)D>;j~!aKv+tIBF(aUQW86+ySjjg7+qPM5nwWN_n z(d8)+^2h8!zu3ihmKiRW3^83#rP`BOqd7!>X7qaDBOWU&&J;Fbw9^+Ho1fLOWnbV; zcVBR~9lC>yzQ7rxYYK~ZO<|#Ha-*Q5aEH@TBun;N(X#t3H*-B`3LA&w*^*8hndvFr zvJ5Loe`7ReK(4$}5Tt)FYB)L-<4xp?PQa4dhqY9chS3%DIb!sAw0v|W4s2-Az6$L+ zw7v-YYKyL+wJ@%Y({=D+J1Q9!_?C?80butz5V!#VcAx`+8v$SoIuN)C0Jfk5ftvwf z3px;32LKz;fxs;Qu;CmC+zJ5O&Vj&s0N8yF1il0So6mv3Z2+(V9SGbG09(+3zy<)= zhYkcb+HAa-0CWd35W_dacVPU}#CF>$+JsLI6E)FheDY+0KzGtz_{MsZCgZbE{3Hb* z1L&i?c#@|WTU!rtq*#2erx+Vu4{>#|c)F(;yI~J;U9tFlPcin(9^xUz;x!_YjXS z7O(IW<8^?Ccw(`*$5V`V1|H&5i^aX3V!T%H5T8*jzT8ucmk%D|vx~)7dW!F+docF+ zkks()!*|*Erl%Et#k3(qipKrkA%~P2QcO59q-cD_JLIrZLyDYahrOTW z_)3*RSTebe4F{vitZcQn07p}QzBXh+iv6l$A* zxZQSheACmkQdqdexfAfA`6s?i6{`OLRc|9@qUzs6S%)!C3xG0DD^mlUQ+9xAwoyb4 zsAVqF0xbyA0xhHlIVmJbK{ezeEz-(CTBL>5a!v|MQn?y-k(O!|AT8AtwStorNrL4f z#kB}XajjB~a8jitMbt_cX^K__(iAPKR&i2PlB(3Gi!@cM25G8RqgHcLjU-j8H7?Q& ztrnyiTAf&DQGG!JJetNrTmT7io?*1f)6IP<03=4V9!J>QEP{ zO;bT?(}t-kCk>M%RUPIcE!KvEv{)OV4(Fs1k~CZ$;UX>3MuN0NYfwjWQiCLoR2y8R zW!fl^mT9BaQJgedl18bc9g=?sI`kmdx_Kg>;aRKbZq6L-Yo}f4wAiKl&ZXU0i2LXi z-xzuvzCm=RZxlTN%TE{jeDox&04-wg(NnO>@WT8}+5;;{SFkteX;>k;o9(5&u*zvG zdz`)oD@-r2+i4%H3Oc~n(SBG8^|3TP11myrvo3lTRwWCw7J3d=6^pXz^gOI6i?K#} z0ai6Ti#5=Tuxi)>`hdO;tClUMf745_>ew3kIei1xV0I<_h`tG{o^8Q(9)LB3J%D?B z8P-tt60N6KV5#g?x{+RmHH;m`i-p%<4QKD*2b^!g8sUrJH?D8P8tJP=k@ya*2H)v; za^HnD%6AS8r|-cUP2a~eevD2FhTfyfAce}`r}`lE;xEMBr=h|u|9>+{R>55;tbYEx ziJYA$p&RfeUVs-N-h14;F1z<&H*6D}-h=+I8~4wgh`a4ljh{>4!lJS4P0;aE7rQ6g zJQ@4I)x54wnmZ!e+=bE=iZ*Sd;KV)j*`?e+PxEs?^-Cng3z~oyXaO5SEwe=-HQ+#t zv@#ni%R#7cLbX&2+7ODHR0SOw*Upis@w zDr^YlPpT>$Xtt)6z5v3RoM^ag2oA?z=#sQD7cI{$_DXWFkeugx08$bfAjzw| zF)76V;t)3ozWdL%@oD6Vs*mSH`Ewn&OrEah zI8T>9<3~~Aq$qfA*|X%q+&kw!l*mIC^*gVY57QAaLh$|`$DimgXoX?@mHtluB=x_# ChCaan literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/service/ICodeService.class b/target/classes/org/springblade/modules/develop/service/ICodeService.class new file mode 100644 index 0000000000000000000000000000000000000000..8caf8c1548e074ae7aae2ae5965dcf9e43d5b200 GIT binary patch literal 460 zcmbV}OG*Sm42DzV%(Ua%Tj<7GsH;{tf*`ag^v+#%S7@uLsxs zL>GDdgoKYjuW!#U0B{bw1&jooQ0QbFg7IBrl}71EXNys4oTH^dMhtV)qP)H&jrE5p zU@Ty-S92w;@}0bGdTdhxQvt^(*x-{6_mq-Aqp6`JQOgiP3Kk0f%~WGCv#c-gZJ$3 zj2ESVjhb?3@yb|6+5hh6(GrWz6R^fH;r9qOxPWz5GgcE`<}!lKRo;T_Ro!_90zHo@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/service/IDatasourceService.class b/target/classes/org/springblade/modules/develop/service/IDatasourceService.class new file mode 100644 index 0000000000000000000000000000000000000000..e1878ceaa8f5183dc24bc66e96567bae1e4a8905 GIT binary patch literal 346 zcma)&J!->15JtcCPh=^LyIdiar;qFuAp`;f7dpX88pMi?R_v|>zFG<&z=ty4$bo>= zq?m7D7#{QHa{WF7IN&kDLg2;Nnp|g9TNheZOkbwzH9M+!U~M{bYzI{`eZEUCo#}1K z`F#{&C9rMeAW6%%reo1?=_5P{JWr{mu>svtAsy3Oh+l?4oU6K(zPBteWK&w2{gW8^&8V=$;AN7@j4#zSF|U(>P1V9>UCxR5T8 z)-mW0f)X!xQt_hX5ATU%g6>hrQ(?pc9U9A^OHwx!QKdDLNh(}!kilIY<}#=Ys$0$U zTyspFbSwVdtv@P7bg~comDKY!M`=CKY2pv-+8KDI%yG=%;otEsH8Oar_&0Xp|FHen z9=0ZL&vb4gypf9D|Lpg`Tok*dbTHVVuSrR4P=Y+zhX%Ch)}%Dh@1SVFA+1P literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/service/IModelService.class b/target/classes/org/springblade/modules/develop/service/IModelService.class new file mode 100644 index 0000000000000000000000000000000000000000..1ef2a06daae1c2f6ae12856a31c1ebed691a830c GIT binary patch literal 454 zcma)(y-vh149A_qT{%8a@C-=Df+waP3=Bvo^>j$x*wV%-sd7z8(n`D<0}sGMAxz7_ zm4(4hY}voq|9pJDy#v54%wvcI+*ntlZ=9~n+(<>ZwW>AbQBg<6Ht5N9x*%Mwts;{R zQ4IS6=9TOu8d;aP$tx;C3{wG%F|e?XsSW1R6W+7?VF;KqkOB#~Sfo9x4ccI;eMqjJ zn7^j*Y}KQ5a?54T3)s_&{VdaEEkoW<098mpOsjbW8u7|z+N)OW}>3=6({;3>` z)Y!@*)j@|>>~-Q-1srC!bp<_W!-Jmh2zdRyFRR5Xu}%0x1S=ZD0Yot4Xu{om9I-`k N%r@Lk;Iz-2eF3a#g{c4l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/service/impl/CodeServiceImpl.class b/target/classes/org/springblade/modules/develop/service/impl/CodeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f67592f8c4f5c68cf12a597069eff01f6bf5e7dc GIT binary patch literal 1301 zcmbtUTTc@~6#k|K7V64PK=FRJ1!0WQry_}BNSYKdqJ8jfc6TU)yE~hm*((3Z7hll$ z;1BR8_+yM`3M8eF6ywXe%*;98xz4XYKYjvufu#ycD0>+4F^mz0dZ-f~2%V@%7d+Vy zgjFVs3&Z7SD^sI%%8krBDwJF$S8V`*jN zaLz!fwJMmyWe-<;%;PGcA_-*vP6RPQO*eHY;+Dvj(~k~^?5;8ltIhL*b;qFx(2Yc$ zX2KLfqAbJn>Ofchji7`n?6BLCr~huvFu5V^u8!V_TqM-WoDv$_R_#>SBB#WEH~(YY zR|W=@h%A$NcceDDVtt^=sS2zPwmBZF-fmOjE8DurL%FV8i)Z>8v+TBpVg7AFW1q;D zGKyONGEKFmji+5?=xx`ItKTP`f8>U$D7D?s=!yI!Fh3C t7qEm;EO$M*An5gxCnw#<1M>KgPKOyOKpBsSmQW>d#}}|j+=cTP_zNWwem4LB literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.class b/target/classes/org/springblade/modules/develop/service/impl/DatasourceServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..c7788ae1cc3923860776a531cb53a5ca19b2abcf GIT binary patch literal 799 zcma)4%Sr=55Uk0=XpBbV1N7!Cia2+p0Uro~=)p+tlcbFkcXyWA*@&OzN$}tY_z(Vy z*t;qO7fo2GneLsgo~f?4kC#^f$Ji_*hkOZz3W}H$*f(}4qtNPL*z?qYWZzhlekgk? zB6-TtAv@N6YWbljFn6Q_?V1Al`fj&`d4bd41il%>9z}9MWAaQWqpy0YnLwT^ry>*E z{v>S)Wr4$4d0H6`fx?*?kU+Jq1GJ5Q~jvfZe#g^N>XDI)Z^C)xrw|2e?L$VX9U8ae~)WXn=jHJM6_c&4AXil&E8COpJG{K6Q1ZS^1M7Fitsb0v5hLas6AXe0nhUUPg{A z8TS~H{I*;JJ1DVTS!4FD;EyfKxX6)AW1zVA4DrN?94d^-Z=jAP#!9*`Vi{GA@>pTa QVHLG>UBf!B$@vZ76HK%C@&Et; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.class b/target/classes/org/springblade/modules/develop/service/impl/ModelPrototypeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9062f2f1cdfdf538c8b867f4c8d6340abf38e556 GIT binary patch literal 4627 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 Ru>im7@NJ=ZSS+Sd{{weSnpgk; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.class b/target/classes/org/springblade/modules/fitting/excel/OperationOrderMaterialExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..99700eb86e4f13fa8df91ab7c0c28ee152be3961 GIT binary patch literal 8205 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.class b/target/classes/org/springblade/modules/fitting/excel/PlatformFittingApplyExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..9c649a38e62851a86355c75d506d857e775ee01d GIT binary patch literal 25259 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 CujAqX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml b/target/classes/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml new file mode 100644 index 0000000..feed11e --- /dev/null +++ b/target/classes/org/springblade/modules/fitting/mapper/OperationOrderMaterialMapper.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.class b/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..1aa7b8fb1cbccc73130b4ee1194173088bb62d84 GIT binary patch literal 2631 zcmc&$TTj$L6h2eAxPTV~MecGw+kJGGr6`{uL8Kjecy zfH(h;@yxVrm))9OBZ&`_-FD9T&UfxT{q_9^06d4M-Cz+|kztueK`8uk$z=|wo^)cD zNAyrAg)gbcf`Er~$7SkJhThBM^-2)9)opXt4IKooAF*RbU4{z9(h;{+H*^u8w)AL; zNl!R3re3wgl!yX1j_@KxQwj7ci+BP>U?So!YUf$oVP#I>^W0VoP_CH66r-D3VQH(C ze}O!b^jPLPcu-uL-!h)XO1N}OL~03r-R7zyogEf3k1HNV1Udpkt`i+{s{{&rqU7enj7eCii*a?fV$> zu$l@G`1$v!7wB?h`ddTu6PvsFanv^^jMKX@#?<2nA`&H+*D7hn_oc!f!3YtUHHl*Z zvn!km(>j!80@P?>PCAd78)Kna{1btZGFSC2x{lo-+|}x)Ltu9tPfZMvW3C!dWZY%(Fx$n%_YxvBr(1 z3+r36tyXK(%wwAE;x?JIw>NtBWE|RHTA9N

rBF(jQJGmBu-5?k(xpScVQ+Io~;Sr qYZAVX!gDa6xw(+CuaCt73O#^_8RDZF;$kx*VkOilJVrSSp8N(Puq)XB literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml b/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml new file mode 100644 index 0000000..7fad28e --- /dev/null +++ b/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMapper.xml @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and site_id=#{apply.siteId} + + + and fitting_code like concat('%',#{apply.fittingCode},'%') + + + and fitting_version like concat('%',#{apply.fittingVersion},'%') + + + and fitting_name like concat('%',#{apply.fittingName},'%') + + + and fitting_brand like concat('%',#{apply.fittingBrand},'%') + + + + and site_name like concat('%',#{apply.siteName},'%') + + + and power_station_code like concat('%',#{apply.powerStationCode},'%') + + + and order_number like concat('%',#{apply.orderNumber},'%') + + + and customer_name like concat('%',#{apply.customerName},'%') + + + and applicant_type=#{apply.applicantType} + + + and applicant_id=#{apply.applicantId} + + + + and applicant_name like concat('%',#{apply.applicantName},'%') + + + + and create_time >= concat(#{apply.createTimeSta}, ' 00:00:00') + + + and create_time <= concat(#{apply.createTimeEnd}, ' 23:59:59') + + + and confirm_time >= concat(#{apply.confirmTimeSta}, ' 00:00:00') + + + and confirm_time <= concat(#{apply.confirmTimeEnd}, ' 23:59:59') + + + and confirm_time_two >= concat(#{apply.confirmTimeTwoSta}, ' 00:00:00') + + + and confirm_time_two <= concat(#{apply.confirmTimeTwoEnd}, ' 23:59:59') + + + and status in + + #{item} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.class b/target/classes/org/springblade/modules/fitting/mapper/PlatformFittingApplyMsgMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0166507d9aa8089652bc4f055a7fea5692429797 GIT binary patch literal 1327 zcmc&!&2H2%5FUpv%a-#0Q#f#-5)!@O2MAOuf=Woc>WWI`JV~ahS59nfXX&1K0iK5g zXT%HeHi(IX3W7!{5)ub1u|Lmef8+V)%eRl80N@$iA44MGg>j|y)~UM8G!`T)Q#6{q zJW?U>qO8zba&oRQ92r;bb<4Zf>ebAbvxtsiO~Ca9E>UXanEh-)c^Jb*0Wvq0%+OS- zFpaEM83yI8Zaf2yPwUv9qo63Z5pKed1z9uLwr^<(v70)Ofn_`X*D+=VifHfQMw`tE#mw?HEDr*dlV-=tOzlx{- zATv9hiU)LJjq7_fF0&!2xv2{kl&QUZ<6=>qmGO + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/fitting/pojo/dto/ApplyDto.class b/target/classes/org/springblade/modules/fitting/pojo/dto/ApplyDto.class new file mode 100644 index 0000000000000000000000000000000000000000..7f92c3aa60510de989a1d7d452aee2892ecd9013 GIT binary patch literal 3829 zcmb7HZEqaa6@Kn|XJ>YI96Jt9vS~`8T^f6BGlleZ9j6#40k>KFGgb?iqD)kTW16m{TA9#E2%$?bZJ!*sGxpVG0 z&pC5m?_K}<KV&?v*zfnQo(X*c z!|wH#{2h;`$6LeCwR~@LUYb8(VocgLIzczWN#;Ql6EU;Bl``)zF&Q&^ms92u6GtPa z<8>lth3dyld=AHHvu%54FYnkrfyt@N$KzP%ryrN#J5786cL`KCop3Srbz*8dqY!y3 zbN59PUy_zfjx-xc{d-J&Inh6(VvzhP6VoYQg(3MfCT3H^ykY}+(d?KnYu;P$09^St}?Dk-nu<-8S!QZ4BhwNqW9cB(hxUD6Q(fEbG5ARhz zn5%pi=a?CpuqNLHzDtdnzeCSY_u&|!(k+V+H_JoR(|Dd@oSr%8HL6ymg$mDnOO&+>klW}V+larCj@8+94e7h#&p-?7|Mke{2C@zn9hwo9Q z`MsIOpP&`5&-??%OVCEH&%6U;WwvnxwP;J?^Q*I5n#H+)p;{}xi-Xr-&ee)HaCd^J zH#I`)%~DO1n9{qLxQ5Z1Rx4#dCz?7zCz?i0mmoud^qP?YHJW9D8qG?rEI}0oD%UC* z&|I@h&|K53RVBz&AW{jac%7k*>>KZ2#385s_8wYTVT(=TpIGI{7f{Dv@d$Y%XyDH{ zPpXKA@B+R^O5^h!E^sZOhb^p;(lLO8i=+&^$a+0Ws*K-p0@g`YK!@-csVd&$Pu=g6 zGVufYwulMc_z(wl7$4!VjspJ-@ez*3WcmM-bSoN?77JUHKcnNqMhC2%J55$prXhP! z#iv|6cF8Fx&%0GRCK8LQQLFH`Ygp8sNLkJcKLVQ9K!+k+ACZQ#O1XH|~rC_BDY>3>;Rbc&A@DQIPP%6egm7!L? zjEYRt2HJ7OISCpm;Fv77EG(ZBd>VY_ZsM!J-rFF1eI82-(23g5!Bc!2w7AJ<8$Ndx KQhm-&h}x&mcHYkb literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.class b/target/classes/org/springblade/modules/fitting/pojo/dto/BhMaterialDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..8122ff48c3197084b305f31e20fc788ed97a5ce8 GIT binary patch literal 5599 zcmcIo>vJ1d6+dfB+Lg4jWI1-S#H4BJq<+P!TTuBENDv7}X{ zbxL@Z(n9Eq1o|NGq0<>=>VXN<6lgM}9j1Js%Xs>@Qj}s6WlkBVja=ENuI7%doH7fJ zM6rWb)pDjK>K-0hj*~)hnGz}`NtNhMyS|!h)aq7sb){?+&0NJUu9wY5?jg%@pv=|m zQ+BTC*tx@{MZ+=cmQlX@k^jE7a4ZFgjA!6te{r8&9>fh-w~66?uL#`!E#cwVKC(Z?m)UNP3pS-V;=ock;X zplZW0s!l_qSNtItGxP=Y|EKYm%Ga5v@~@~EfJE8}q?lDPm#v1iQZ{F*RogKf3p0^u ze8IAFjYo`CBwX(F9XZ=*EZfH^O%P$sb*N@%t9m zTjk>B`Dd?hTxvG|_Qnsdzx-IUdHuCFHeY(W*@V1#?n<-y&c+khUVanJ&8yFC{^Y{7 z7cTw%>^WwA{%7yJdc|u-_%fvztg4CauwvFv8kiK@>~_H@FB>QYXbWY;DOs51)WUyP zPcY+DBbeBMjV3}ovW(nYG@X)NJZ{vH%qU3cHSKd{DIU~_dH66aok8T&xJevzW2uYH z3{YS*5BQU@nGG0M5=d{uN+j9AswgUjL{Zx*nRWEe0yY#VO}(xus7tvpuO?wU9Me*y zU4T~=Sw+Zjh+owk0PzrIgD|cP0(s=xfLs{_@_@Dhg)-2!h;v`CZ=nrx^7yxLa%F1C zF$!yoMolDN^!SPS#Ulv%JW6TZY^;|Zq;oKk@u61Cl0*LBq?#=rgI1eQwbkY`>S^M| zxLW`|JjJnjzT%Wzve)YcbIx)%PT&ZgU`Hla>#%J*4X19@cwRTsF?u>d&(O0neVdg= z?98Fo>1tI^+iPZy^YdysXA~T}enz4T{?rsePI|9VE#gogTCnZ4^;+In&&0;^X#$RH z#v$+re0c8+^r-~JtWhp6S&o@k=sOaf4a|PHwE~Bv@!ejFt$@GHR>0q8ETe0bFN)!PA7+xnSHd?sdWEFdAav2E@MdQA{xsgKUjXQSdH`REU10DI zI{%#HOECJK6QRzy%!D|n+MUy(&baM_IA_|Ow}m?6IuzpE*Y2!^I^(_+;ylpqd{d}1 z?o%PoTD$X5s5363Apsq_A63;K+*1tV{ehNI6iurZgHCsZaq4Vmmb;w z8%k=Cx2bo7)csoIGL3nN2|WtPgdWqP3=?~svKy4rqFT%cn$%^0CUr%V8AuTzSyOzV z19}{w1A0P>Gf+Z+;#$H7n$nX1P3fwZWFS?5Ao)OfJq1u+@6l2W)FVJCt;YwN*3$q@ z>lrQ0Kp6o_YZ)JCM(+h^M$c-!43rh1UM=f^A{Vh!yF04?TRg(vzLw@_l}gyk{n8{^ zI1##NNZLcEpzFpD-a%S}6rp?Q29+U2aZLV$Dv)Am|B0%QWUABe$%cd*1-(u+NOAfe zy-E*5O3-CG4@3zi<4t;s8jw`_Gk6_HDf%lCY8_G!4y8Fd4Jj?f@O$XpWDVxEDNr7vP$E3{Kq{z*MDDeuyNOkMa>q<3it7vui}kwlWNB1t3c9}YZ8=`I9| z70)QkP8MVTA<0izUOT-LmYua0MlN}bmYeqYQO^K!ndjwvC;mKIz^A^e2O@E{>(U%dG zDE)!H0;vn>^E>(~g4a#A&@bpwND-Q*m*{JdqB!Orr^g`0++_MXB$>`3MIVQx(2wbM zdID0Meofoy8;}w#d8D6G<^~iInG{Jv!jL50KnJaM7gO|8)B|{!NKhqUF(0gjY}X2~ z90a%UAqL^1bhxy~4dd`$r~m)} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.class b/target/classes/org/springblade/modules/fitting/pojo/dto/OperationOrderMaterialDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..01a1b7b095c71f4589b7e6fd6c071696959e8e5e GIT binary patch literal 6740 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.class b/target/classes/org/springblade/modules/fitting/pojo/dto/PlatformFittingApplyDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..dd73a958a812f56563d788a4fe2e620967dabf94 GIT binary patch literal 1092 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 L6%=7CMdr@|a~Q(R literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.class b/target/classes/org/springblade/modules/fitting/pojo/entity/PlatformFittingApplyEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..1b39e61cc2d41bf928effd162d473723039ffe46 GIT binary patch literal 38901 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 sXZG)iW6?%cWeoHH|b^2fg$ zKLZ%YVipM`(=c*Kp+g{lU9L*gk?yj2W$C(AQ34%fwri^k0?EOlawjtAOe34aF60DE z&tEo!hHtyeOOC8sX5Fhc9V;+DvX!FIY|qf(}bZ53~&ZIUK-2=B&w}R`jY?NO`7*LLJWG2#yNuugevy=(!cC-m?{* z+(1cJk;OoaZi_~oHiWyNv_u7x4J_Z5PTBGU+jFnYToe$O1-c$bDodwnrI=Cw2!YN8 zd)bw$=@ZQS6FkOBPpkfwhUH6cK`hRsR26PU;Q|5m&o^CV*R8T0*h`Kz;kurZirC0W zGgy(nlIE&(>}qH>E1I(}ZL&7!JT+Bss5Qn(*R3Fs%Y=FG&u>3_c<1JW8=pS-{MKJz zeRKcb7Y{%A>HfWq2e&o^4sXx5xYpR7(};xcF4?X%*Q_sD{-Pu)>1XEdR6+eZYdrWfoo4j zcm`mHh(Yj5_O#zCft06emM^eRD?HG4X?w%zc6--?l9iQN*@&s6uFlWQPBG66ubOWK zO@|dF-@Y!Ryy%WF>C(Y~lb)yascb~b1>GHZJBv%0 zN#nApYhho*!_c+2vMyqw3duGL{U1hAxP`*fOO#$A^dQNlu#V1^d+Sj}YJUBY{!2dK&1&DYm)DfvzueBy{1Y*Y?GC zkiN~y*2Vc97DqTwGsr7=mAG|~5?5(<9m69(Agv)J+aUBs9x((BPxBTyL+=Qlww$2l zHCj@FgM2K?>ooG&VE~=%HhW#`izCC|A!V$O{EEyCq>}3+zaTSva`-N~!XZEQ%$;O& z-WdHIyZVjau;(Unqy5HR^oAbBI>WRhJrjlBL|VjIyg>-PRO1{4Oke;nt_JWDt)wXk!Yz+C@BKa zP-2PBF&2+E4zktKe8~_7`=j~7m@ys-a427>k$xsWauey%yLj%y@k2Y)9*&mAxso`< ze{?P|aEb}u410Yfvl`e2 l<8v!_A|0KE>?V+6=yefO>@$oo&A$@nbR>RV!Mj*M|9>PRMFs!> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.class b/target/classes/org/springblade/modules/fitting/pojo/vo/AddFittingApplyVo.class new file mode 100644 index 0000000000000000000000000000000000000000..cd89f9e5ad326493df9c4182eea7448f563162fc GIT binary patch literal 6795 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 baTE9^y@js=NpIt?QyQx}%qD0OwG{mq$_{Vk literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.class b/target/classes/org/springblade/modules/fitting/pojo/vo/ChooseMaterialListVo.class new file mode 100644 index 0000000000000000000000000000000000000000..b5e4f942e2e6a81a6747416cede502d13665e624 GIT binary patch literal 2965 zcmbtWOK%%h6#lL~_Dme7aZO)tOK2d4JUh_xw39#^8k!QPp=ncS3*yEe;%V%e;F+X! z$p(oDj(DRZdZ~D~;XQBVd%IbMnI# zSrypbA8{L8sxWX-f%m16!+wG8Mayr77DTeEe;{HM#-gY?n8xGEf6`LUJ>}(zG!C_T zQ4uQLlW9DqbR9flE(|h;!)ZK?XBcEfdX?Znayyk}Mh4Ot#E`(=nq0CbT&E=c3${;? zx7YQk9E7G&4mPVXIC8Gu37W8XD?K(A2#`X2J z+r&Qj<;H^>U*G@i6T2*+1r&5o+m1D}Qd_X<=Olws_28CdbzZV$xDSPzU$Gh8`1JoN zJ;vMZwI+Q_p@hs1%(EwomS1tpv$D>tvVeJd)L7-38K%1+!vcb(9j)cC=mZk3U$N=} zJJlWfT8h7+YY}b*1}9~=0s~=Z!(-3~q&t8#w_S6-EG-q~a!6rf_Uu&gB;%Z7A=fQ$ zrOGz%YB_pyADp1~HQgD$8?YmgnsZm`C2P`F>B_Zh@*}FH$>9mt^*z5Xmjg1r?j+ty z;VkBKoKrP_UZ8KY`)y~{U9!yJn4k?NWyyEz*91O~Hb4jroSu?SnZu`V+I5#!mJ8c^ zAR^gfc<$P=)dqekf^QCvh$wV1A*)rD`GSE9tjl&J^hZ-YCWa3+_ljDz52zgz1I*o& z<5=~Hs`Na|({WMY@HSrBU026tfu4VdGTi|;=;d&Vao)uF1j7)idp%dY?GGDuzMvb*83(B5U{zq$;P9=gmnT=J(dxVTURbnpV# zhX%hvLc2Be8;mcJh~FCe6-IG*@D3hpY`NGwGt5U`8~GibIqe>Ht|2{=)9&Cv6Va1T z5Ym%R<`N2%yoc->x^jtJG6L$&>jd@YjhwDPMhMb#MiZpnVnFe2MRz#}bc6rv80Ci$ zzZ38g##x9l^uflfl*KuhN_dSc4R2r)$GJ+NNXZGVlBlwcCb-g3#{s;~m4TBya|mhO z_zOF97!R>WM~r`lc!+($vLm`gNa!dD)zr63Kq$q6D^`SJQe7n4073Tzh1BdG)kotD zK{P#%H&Vn84T@Ns;s{+N>F9i>Fsh9;5^*q7s4xviW@rui$Q|^(ujD;>O(}9(s4-M> z0#$E5(NHlj4I?9$Xs8ahr+Pd%Fr+%paX(2S`8$YNoZ>2m6yC%XqmJ`C=_pQfrSTSf zDOFS}GOr@}hysmd3PA!P#3RBt_c0~djYJdB#AsVZAuJhzZ6aHx1T)O(jiE5g6V<57 uD%uo9{O`SsexP+iLz{?0jf=FZF&2k?)! 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 JkGO)Y{{gIzh_L_w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.class b/target/classes/org/springblade/modules/fitting/pojo/vo/MaterialStockVo.class new file mode 100644 index 0000000000000000000000000000000000000000..5566e836e5b74118c50caba1368d3ce5e3033aad GIT binary patch literal 3265 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.class b/target/classes/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyMsgVO.class new file mode 100644 index 0000000000000000000000000000000000000000..a26033d87f1ff6032d74f6902369063fc4b68cf7 GIT binary patch literal 1101 zcmbtSU2hUW6g>mGEKu4amimF#s#W<=_t{WQ8f+5`NE4I?-v*e%;xQ}?%cWeoO932_n)7?0C70&Ur(Cg+W!U>C`eS(>b+3~}2DuzovBr=daBu(3oVyIga%;kmx$SbA zq0^s;fvQ(t>EZJ^T+qcSp(_KOx|qWTiqt>m!MGuZA{?Q~kPn3KaJMJ?z>(g|=2Hgt zjA6AQy+CnK^|(71CK;n+C<&*#&=@L%x0OK^pj91spCG}^~WLyet)q0#zp z6Y8X0$*$7Z$gokaEDaxJse(zZ<2P3rOsU4gr?I+<4_>$VEY_EA3pJL*L+^4ViZ^lZ)C{WZL(upRf{ctF=?ChkwRGGc8e6LUr2_OiV$5xP{xKsz_t+ zkm3aHP~Qp+EBym&7BU&!rG&|-E)PS$e7~(T8k!Io+l#Pj0(=kOrp?aG2#v( i(t9B8$e((QXpy;v-O}GMtr*iJhI?eZHntLKsQv=mvEDQQ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.class b/target/classes/org/springblade/modules/fitting/pojo/vo/PlatformFittingApplyVO.class new file mode 100644 index 0000000000000000000000000000000000000000..22c4639355447fb9876454c56ac043577ddc5786 GIT binary patch literal 4888 zcmcIoU2_{}6@J#1v@3b#uh>pD38~w-#_~s1no`=_aU7p@vxM!sxtfXkj3d_ml@S4E$=UkiP< zS`x^Bia~+&7VYX4%c+Es1T>^#I0}WT{VEO!XrM*4a?R!tgz%t>Loq0|8KR$3aRm2B z=wCOzGwq`vn#gsIUuf=CabKq<3^=CZegO`MfNf79q@PwX5rc->NflE99ctGG&m!bA zDjtX@Fv1`!=Rp;p!9x=ESBy=Qw=WvrMa$cu<$6Zdb0u7#=zOUEpXWbh@L?67#Um1w zqEVfFzHXEy47ZN!{MuEs=oNC$h-L7oipK;wWeTR7K>?4-IL&1 zFkC)&$@EKoUZ`00{jTX)MtRkAT+6OLJ^!Qx=_yuXBSEW1xo#$zNbx60&@R-ua4P1i z$nlaQ~NCCkV!7dOm`QIOD6GTowM z)r6W;y!-MSyYJt+^V-e7z4rFZ%wDKfytT9Yt2gib z;=QOQ7HlYo;x!R>gPjNx*0*3)&2#n2n(3?B|eg6Q!Z{U8nv*5l1mrn7iXEyd9H8Abn9i0-9MV3R)-&^ zZ>$)3);5pN8EoY=h8%VJ%*?V~cZ%kmB`W<;+}m^Y`~#xbu+*NgZO`=_qZX8*+n2&O zGWaIGCF9$o_r4%utl5^V>XyA}hVMSsBir$uQS@wQTf*zD4KE}HLC+f165s7(3%0#k zuN6MAJGTi}wrge#{n?fXjn3NQ3PYSR%H?ItGYbm7BjKg^G)%M=^a*KtwCP|jeMj5O zL_D3GU}hpTI(=qNf;wNVn$DTB;ku?P<9ibB@5pal+GM;W;m9XbS#v>-aW7x4U2OR> z4&n)%frKY{)rDCe+#B)w^Stii`7Dol7f%u3CZ-ek0s-z}I)McO+`)7Liv+lT=>*OZ z;MS!RIFA83xiRGT633P2S>ic4`7Wg2`UC$WzXc5BaDm?<3JF-o3eU_8?%{X4_-)9) zA=rhc_`z5)cRw-WY*c(KR?OW|jJQ84ek4}R%~OncUsU{9teAVN81YC{d^}dneOHWF zi;5qQ6+ewtrge$Q)p-_$mYSS;2Xg#ejRcHvuEabBC3um#BsUW1=SaR3A2PewkU{Z= zA^ZH0Uycvizt@mK*@qzq{gBVZhupWSn*Eh#vu+ZfzIR!eHB7Sd5&Ch4fIXtE$FAxYMh7Sgz$CTU#HXlX&p zgru~VX(8qG9+Gmps`Utx8j@(Wkf!x4Nz;0-mKCJlkd)PW8>GYyu8i)Mwl(Rm!qNo<2w1|MJ!7OfuK#wlE-rDB&amrYt({GHvrOsf|aj&~6wvhq*# z%23iD(MEwEMfwN_0yF(znH;R&9G+wKCB%=bpicP9Nuota6o^PuYj+RQ6ttVht3kXZ zE_0AlBjRPhp81=KE_Sdk@q$Y;&@cN7$N9cFae}pW_}t7UwxJaZGLFAM*u zo)CbR2oXgTTL2x^lRm^c^F@l5Y(V3B%7;>SAy!|Y%IUHXvG78b+<>Na#fOx;5X+IO z!|}y&DR_vmIJ)r`s<8Qp3a7J1tBVu%Q#{X1bYmPZ!l9MGX->3DD~U^-K#x`m*YFVP zv}F7U`&lZYI5@%5eNaE@Ut^CrYUnBrl|nT~6IO@0mAJS)uq*LhsWcX^ee L^&-BHA3*yzA676; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.class b/target/classes/org/springblade/modules/fitting/pojo/vo/SiteToExamineVo.class new file mode 100644 index 0000000000000000000000000000000000000000..21ab2f67b39fcb22ebd0d9706c8ab2360ca441f3 GIT binary patch literal 4594 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.class b/target/classes/org/springblade/modules/fitting/service/IPlatformFittingApplyMsgService.class new file mode 100644 index 0000000000000000000000000000000000000000..ce7392f55eb65cc87b338a60ad384fefc8e7bb08 GIT binary patch literal 1361 zcmcgs%Sr<=6uqgBTHjAxxe#0^f?2p66$Bp$6$=Gjr!&_vB{PXhrnLXz5BM7{`~ZKz zzY%YzMFkzkg1897lqq!lR(emH z+@bBr5cx$z34g0?ay9^tjZwWz7dHoZ6~-AXwnay9CFt5!tBs+r!X$(JP$#@4bRr|2 z@ub%hUOJ;P$Fb`%byBCFQHFF3HXSNrD2Un+F*11Et`~BL+L9UcA`)JZdb$wQ%gh?x z*1V&6LDcK3U}v<5l#@&JcRFeaD@YAm$6(y#>etQB8D&sw$~YB1v&h))XdVy#z~j;X zC+crxGuXhc(YB~+7@U-4Gt_A$J(Z;6H&z&fmYzH>>V>(cpv!R&p8wl_S$;B|D? zUmC{LOW!N1$I~1Qj=o7OXUA@cs*tx25-o#=f%h*h9TYb}aXXjm$vf|tZW&BBb!J06 zlZvLmR>^4E>pvgOAqHc#CTRFoXjWBW3Mx>ezgh*R=`%xXwhzJ_!Sk>%geRznKcFSr M92{DPmHhDPJF5HGuK)l5 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/service/IPlatformFittingApplyService.class b/target/classes/org/springblade/modules/fitting/service/IPlatformFittingApplyService.class new file mode 100644 index 0000000000000000000000000000000000000000..d83d430293ad7d2aee48e82c65c2ebc9df6e72b8 GIT binary patch literal 3189 zcmcgu+j87Q5bartJBmk4r!z&Zx6oj@vf)|GXID&A(L@ve-d5u?$T z_ZQ%aAK*iH-~)K$hbYcS+LhRqv7B<{VM?X$p6=5r0Q8w zsNA5}^|&J}UplcTB5U8(8bT`)YT(+!da~oBS-;dAwqxej_5BF4N(qwOVs7a~3o z#SX)0y-|(cxV#&VQ{4MPHci|`J}Jia6gcgoEu(XhtHoZP{95(6o#M_cYHc7<%>A@k zw)%|jRriNHTK&vV9q7#u02VMChnv+Mw!vqfSEt3bJ@$`|YIJ^CWM>uc?jJI(nwblz5pnFGjRnC zWv>=0W2({`Zc0bA)iXRMjCQLZ{AORuNQ{bXTp3!WVT+AzF71CZFhuy}l>Hyyn3C7m z(b8)5M_9M^+DSi}H`mgdoddMd1 zz^VIQ;&*|VV;0YHaeCycAoVZvp_Vxk)+ zm)<;SZRH3xLXBa@kp8!6>K#4e96hR4L{nw-U^Lf}v9fV=9!S3Oe*@=j(+)6QGI|Z` z4CdJ-OrUjoooY0Tzu6ki;WLl5fK{V&P@ktaGW8ie0Atl6R7-Rbe$39r8Cu5Y64sko zZ;=^o-=@o%8auBfqN~%QYxGWTbv?0qm)^@oD~afR`XCqGNJKa3RxUzxMEsB%Io4GG zNz?cUs*mZDN$XGPc5ZErtv`eH=X57m-5sm$L3MxH(HGOAFQ-Kh=&JPTxRUqi_EOjiBkc literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.class b/target/classes/org/springblade/modules/fitting/service/impl/OperationOrderMaterialServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..e93d72e7b0038eba321cddc3383b35aa6374d5ad GIT binary patch literal 16795 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 H#y7x!G%vuS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.class b/target/classes/org/springblade/modules/fitting/service/impl/PlatformFittingApplyServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d0731472a83c82177913922e5dbbb1852011bf4b GIT binary patch literal 25692 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.class b/target/classes/org/springblade/modules/fitting/wrapper/OperationOrderMaterialWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..dbbd5ad74f376c5f3b21b622d071f3215b4cb32a GIT binary patch literal 1714 zcmb_dTTc@~6#k~PEUgtvRlqxqh?L$ z9bWTDlP{|}_o|#miSDs7Y4#+Q_-S9}fku<)Q?*EX4Tk51{@DzQIbp}Fdmk8H^bLE^ z?o#Aar?c25uMWo3yD_;9VfIvGi)-E#w9!=d^tRmfxrsEj=X)1N-#2Et%jI8(yEGV5 zuLM`9gqdv>>AH9#?YzzOe8m>+qT>cFRf1kzAPJfs4AXgyZZ1hiGBtk$_K`jkxK5}2 z87N?y&TQL&AZF;6#!cKJjdh-mAxFN#d3}WR2hy<<{zbac8k3c^-XS?eGGEMRJ|lY! zI`edHELgubul+Xw?$Il`)Z(6Qd&J!2i`$qb)EwE}q4*M*Bl{F1HFA%MY?4%#>;Xv& hm7XsiW9kzw{o&}&Egj?k#>&}n=E*yOA{JWm?k}-O`(pqA literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.class b/target/classes/org/springblade/modules/fitting/wrapper/PlatformFittingApplyMsgWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d105ec94b69a59e7afc16d6e0e407b34bf1ef8be GIT binary patch literal 1728 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml b/target/classes/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml new file mode 100644 index 0000000..e6710bf --- /dev/null +++ b/target/classes/org/springblade/modules/flowable/examineInfo/mapper/ExamineInfoMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.class b/target/classes/org/springblade/modules/flowable/examineInfo/pojo/dto/ExamineInfoDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..283b3260f2eef8bf84c66496ac49e05a421a28f5 GIT binary patch literal 1086 zcmb_aO>YuW6g>}S7@)L8TIxsrs9G%_>Z}dbO`!=5*d|mK?jG<8gTp+WdHD5H`~j|5 z=*A{4jBfo+#(3Y%q+&ECCbD>U-sRqN&OPsb{r>S2fCs2%kwDUdk%Ng8!-4dNb};oF zZ`gDBK-d#Gn7JabPh9ze_grC%mwe)QqUoJTdn(7$7M^m{E4%SC-v~1dsa?l&)I)}3 zsoYH?&5&QHsvjSg$`-N=^?xTFD7nZ;SXpF{%V8NS4Cy}i8qa3jWhjDcd)O?qsu1glIcN7x%b8GUfl{SE?H1BJQNs85K zKscC2C|ShZ-tB03+Yl6951J literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.class b/target/classes/org/springblade/modules/flowable/examineInfo/pojo/entity/ExamineInfoEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..460c3592e0bd84a5138dcba45341d7eeaa979c69 GIT binary patch literal 4740 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.class b/target/classes/org/springblade/modules/flowable/examineInfo/service/IExamineInfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..e6c6bb583e1ce2915c49565b7e181fabec0893ff GIT binary patch literal 1224 zcmc&!OHRWu5FM9KX!(@CI09_&0*Ot49f(RrAQiE9l4)?|*pclNDsc@iz%f{G01kzi zw1`H6E{ZC#uq?l4zxjA(-alU70N@mM1E?{$G&bcfw^FB(5()CmB!xo9yUIL>NFm2Z zkx7j$-8I~y?aLT>>wFA$Mpyvz4Ay(1FSrsq<=0UUV;{gGgQM7FJQ608i79wCh=i9e zSA`>OkJ?G2$I4%F40aqUQm9zE5h*fw*>6wOi;blS(2GQP!CU2nusv0Tx#=0+H@sr@ z?m9e}&Lkz`3jMuFZiE%&4qC@xJ|DWjT*)VcdPk;O_`)J%htmaiGK;{@{vkaxa-2c4 zD|J%&C3_1JD+OVnnC~o literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.class b/target/classes/org/springblade/modules/flowable/examineInfo/service/impl/ExamineInfoServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..cc0af5dea0190b66c1fb622b053cb563fd3aea37 GIT binary patch literal 3450 zcmc&$TXWk)6#mwBZ0sm?NO8fmg|Vv~AS`HT&mJ-2=jKlzi?#D5KNd+%silO9j zlXv{snhkxIGyGUN3nBM)L-%#HAvb8vM98|%o}=zNYRqkGU8^?t^nG3J`NCA2!t=Fp zyn<2=mlV8;*BEBc;A{vHL&4+zCMP-#kKtbBxbbST14`0fS8y3u7>YZ>He%Qr<|6Z^ zZttpFzKk0!bQm8QIbaTNFg!|59k+eqAH?Zf3PuXJinRP(S8xMwG31GZWyiG|23_?D z7^^M0`W*!~2dfu}MPbU(ih`;fy+AhBDQb0}ujv+-Q!@%?acgL5TUZn}7vnT9(he>3 zpelGz+M0;)Y#(%a!zfVF-BIv9K48dr`aT&L0=eGaquA7{-{dgIu#$+ULEblF_Y~zL zIeX|B8_CdXfWeH5fnn3$zpr}AP}BW5K@CQhM)eI zJWG;D1TxbNG@+I(V;IKykrpy6Cgbm9jbOMmd_@#U(KY#r;LV>0ngt?fa+Ui}9AiUw zDLH)ZQl#X!#ICLTJ(n|9OLoEM1nWEwmrNkf2{=QJo<8$H3f9!9f|9E5ker3`!SKTg zk~X^Oxa^)A)S}d^SZXtT`=0>Co}xe_MD9yffn zKq@ySvY>K>q4@&gaoUrkF?Qwj#5=nVOL!Tl)if_sfSh`yg@o1yQh&l*LjqCQa(Zru zFAMp=T#kiH^c=~Tpe8FHhVo{Q-f@e!geU0zxo_K!Pc^M$lc-c;m$oCd=BeX;r+TC~ z-0?{T2gR+1>-4Oq!0;gz%^7N`R;F*AdMdSy+Og?pV876x6h5M_oCa$6n7&H50C%BL zk5QF4k94q^ld&|7m1d@YMeZ+5%*;MVF^%WAn8MFAk&YR=6BxS|ZitN0Rx08b0tY30 zihJb#{-H}b_kiXe(nvl<9ncbBk$x#G(FB!V5t3DEC6ZzcNI4x~h##mP!%#fLP{cAm z3osP1LjO_&kIQ6n<t}fLZnm7A>El{CJKM+G<}yfNz(O*M6b2a{Dc$70r){@c zb3{Y(y3&%jJnn~{r*y!VgfCazzzz=HXyJKMGYl@+t{p5g3>2oT7KRvJbfdIXBXp$C zw;i=FYL4Xcy=d94Ty?h<-|qnNm1A3koq=VN8)jJQ3(-@%itnj7Vs$-(5sX?G%OZzy zhC(-DyV5`@hlhdf_SR4uff2E(gDpB0^oIvl$s4CVgvJ$1O0 z@<;7=GuZcPR|s<9!oXvsioYIJ(jZn`1}H4WrP56eH_mxZ2?voCe&3|Kuy zE>ib0n<~_G`P?>JHqrZV&6%5xTXcsK^vnWD(2`(~r zV3K6E<3JF%>6FGD+$D<%o{S)ezQKBXi1bIYu~>YOPIPO@%Xn{*9w41B<}+WAJp#!* z$+cM%*WopP0l-6g7U$dClbwi&n__VfQ-qo$zx$M50@LK5Vq`|{DUnT($&fuJZJ^RK f#Uot$j4Q_+y|twy{6APZlg>1kv)1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/controller/ProcessDefController.class b/target/classes/org/springblade/modules/flowable/processForm/controller/ProcessDefController.class new file mode 100644 index 0000000000000000000000000000000000000000..331d3eff44a3d7f186c1684cf01459e1b258ef73 GIT binary patch literal 5539 zcmd5=>vI%U7C(3L7%~}?h=>BZ#up^vaaBOk@YwJ)ng=E^F0i}WGu@eVn3>yl_ap># zH<-l*C5RY?}=y!ovWb$RRpOrOjT6Ps6&`BZW*SYj78##s_}$SQ*q7W1935;MB*AZ zOcB*AYrilPJSvj5DdKU>V?QJLhWOS&hV@MfRcw9-wc&{z#X>Bgg4?_$IuG+%K z)ZV`C))3WEeUKW$bSEum^uT-{qQca;Ekv9vhR%B!RjP`uFxu)z)EybpqIL;H^R%(s z3c5Q;E5mdT-OH%CSD?vXVrYC5#2l_>nuSW@^ zwI%lV-0&A{h_=#`L3%1o+vsUVn@T2sLOf?Fd>EQWJ;crzD@RbV2g55=IBN+c9>6zMuUbtN-?iczhqSy59r z+_v5@^XCQ+dZFqm_lNXVl2HAFC`&w^N?;4_*`}3;dpfyZtwyKz67qE~6=n zzXD~PKK^?x3*z{fV@N^I<^A#&J}(`L*A;dPbrgEl?zkg+uX`s^RbhSR zhpU+j(~KU*fU|fJH}H9rku-zPqvf;bzDd9HLFU@Yo0D(PUYbl#ypQjW5(ilEdAgKs zYrNjkj=orFgD?!jyyVEWCVhVD=7mXq^U6tiNuRzr_tC!_U0i6d?v3oU>!q0;k2ku4 zjg8LZV~wu5_xMDks}Gt6@VO&*cM0%KS(1Ptqm7x*FV9YWk^b(z^qGm78#mJLewg`i zDt-P+=94pS;N7h=pN`LcbRHwHpDKx`qs)q4_%p3l4q>5Qkusy&eqGK@tMYv_Keug? zlMSP7zNp_iw|j8L@yu3J_nYcPTb=j3lzcrZ|J2^K#dGovf%v>Lvx&EbJ z_@}Wq7`^OY`BiOa&RtHw^DlZ3|1oSu{-A#3zYMrrhWlrz6;Ipo)Fc0cz_p>}zr@y0 zQ!qfC8?MtGUtukPKPiYpxDs{ZJHLx|;;zw^r(N_%JVBG%Xg6%u!s0Wu2hw}7in?#Z zWgmV4+D`{?eH4n%La_Y^F^is~=W*ZB4$EB->9*(~ykHl{wvzi7b>miy_Y z!;t(F-XS1#m?|CgCPXT+wnCx@?7QH>stW4b=y_1#^WYHGLr;3p;_Bo)SV2eV&#((S z^cVUowyuXSFVicqu3$BcckW6AE7H4~08|LVSr4NnJXEtDYFQ5lTn`z=z@p3lF6<`x zt@Zf7KR|ivs~u3P1A3(^mIGZ&gQVlVNA@6WWJw;vvP<&OEQEL#Lc)cRgm?|HmADA} zBKCU z!l)pHT^^4)AZ0Ki=G=J??y-&jfHC$q@k$TB%zRNP|{ z;6MBTx6vuUl0n_+0SvW#Lt9$bUnBN4R^6uLMs$}CTqp-Fgwm4lJ#ba%Pyu?=QT=C* X;L~_M10lCg-lDf5gJyG9;+gmb`kt0j literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.class b/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefAuditStepExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..21714473c11a8ec0e23dae3146e8c27aaf70982f GIT binary patch literal 12573 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 HCjEZ^%W;&M literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.class b/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..b494a258609523121b9e203a0453fd827fc10ea4 GIT binary patch literal 4279 zcmbtXYjfOY6@K3JYNcJviQ_t#4QXj%OMJ~jfkM_vX>7-}TiXqGVnf5F@~+}lyp~)^ zo7Cmf1ej1Los=0Et{>n7q{F0>FwoF(3KTw+8U8?jKy5dC;tx>D^XlSVI~wBwk5@YH zInOzI&-Io5{_mAP0XUA!Ii%2{BCSI~Mxgz?alt6o412!#NV3Vo~t<*jk%gxTymYV>3JiLyI3@z zEt|FCsgN^lo;xYm0%_Y=GzB`w8_%BhrO5&Lv|T!O%SUC-(ZpCqvi9ickgV2<>6Kk; z$+sL^@;i0xm3*!2nuc!azyfv=qSegCpLUZ;bS@;!pG@L)$poAPKBXlrp7v$ z-%sjz7@rc@zi2F&LylcG{8`H<$o720_B{c++3U!WyIuR=I0-RQaa5o)$g|}Xr%l%~ zYSweIP*{3iu$(bnkNG?^HY^|>7if!j8zfJmSMpB?n~GRUw`fLyRW>s_VP>bUc1SB-1+4zYcKuKs%%KsuU@_LXG*ebFZ^un_R8wY ziontJ8&_9f|4pd+k8l2Q{pa6Vef<(SYd^R_f=~a~rQ=izdw`Wsx~cM6?_|XF9|i27QM_yqgiTXKU{8qH#A^#+@lfH`LrjAa0^$L)0cbGV zrhTKlFkvi3xlm3`jZK`SUt^pVuIbfl9JETbWwj9RPcLlRN4C&-WVX<-uK7+FcY)lr zQ+Lbeh$TC!bIYhbA{$TEc3$Aq+t+q;hm4v=Wy-lYYFhJEpQ#_%xhi|tH*LS6EuY@O z+8A^k-}7B#DJ&9icLshAbzD$!Q4XzV1qzMhz_Kqm3uZBNGMr;0M%j1VWq}_zPp}9W z8XYz43eTd#xZ^C;mj<>SVw)6CFE5!1@Uu-8;sc_I6`2?^YPD&OmjMmW35;$@L60?Y(f zLZ1J;ZdU$1)SDEh&`>^>sLbO(LAh3{t;&;$%6!>K zP~Nvy`E;W4B%WksWWY+ir+Clw^u7i)Io$g~L=#MzTW#6Xg`J0a=rIWXcK)sw~!B(B<`K;9?@w8ub2r z`W7CD5rvXMNTHO;D-x4=3mwkwmRBW6i$H2#YXbF@vIO;%a`~(T zLPS;wRIy7wWZ-p*z)Z5!QgBh0CUi=laZ21%l z_#Hk+UJH8gDn3stjmPjZo+70X@m-uHl|c;)_yQ>vE=+upl!otP1YaVR#g8~5zf39z zZU|44YQ-D;@-Rs0nB(3~phMOEgnm{=U8 zKeF!>nNb;r=0O#PA#A&N%E@^*%Z-WH;%rbV{I(#Aoh(*qLZhJ<+Xs%Nj|T;DsC}Ty za?sj)uR-moPzGfHm@UO*WYI-%eSlT@J_Ib6m$`r5+JwJPRGrSS;US|z10-4DSc z#di{(bLUB^L9*UK?tL=SDl{ROAby3sPZN!GN;39Bi2*Sty_prkGEJ}saw|6itDC_M ze1afS(e6@dXeG<2$S^Hz4E|vTLonk9WwK>r`8&*C4}bkD_ylk>v9QA9^I(*KG`mEW v-(v9Ma4#eFD6R6v!G literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.class b/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefLatestExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..033a820ab0a6ec78b07ef607eae43a1399423e8f GIT binary patch literal 3838 zcmb_fZF3t}6@IR))vjbYcHG#h(zG<762GN_0)a|NN#nd­D>XfEH*V2u(v9zmd zR|#hLQ0Po(2Zl~N%<$57re7dTCrltiL&qsh`=y=f-yk;WC;kAXJa=ELwJSXSKqlHf z_uS{4d(U~!J$L=_e^&ku;4m&{kU)=)WEL7y0t1)K%Vwc&+KYuV3zuZY6G$DhY|DF0 zpl4)sJ`DqD9hoe8krkM7T8jm@*|O}#g}Palg@#jY*QHyySa+_N3w2p&ww#J|-4jl$ zQIJ2V$a>*ypgATlPMe-|z2izNU{qR?yhhNCzLFGFom19?V_+l1ciab0KZdvIc%HqpP-%rn- zWCU9r$zoK^r8zenZajhUEGBS(8?TveZPKYqpN#S#DJ*316?|1-cf(wgla5_6z4Mkw zknMV=?YRQa#zPEu{P`HRqv;a5j;{&q^69di!klbbX5IRsVxG0+`onqIaxKSxs(eg9 zoD%4Z_U3b_F$VQd2;^qlwr4fuyyaSS@VIR|p6St)K^&Z}IE?~*FPIBvSV-nNpm3#S zd9vVo%dEIbr`~SZ=dG$&D+y?qRi*TBgTy zbnV6~ciw$_?VTV0^AA7!qLurj!WB^`CubQ%KrPM@~y%g&N41fd3f=!9AEoEH1}uj3sk z1O`s0OuNeKB0udoOYLT9%OM824>9KHAlo*K`--fz8HKU5$B z#>U@)-aTW(0V2$p%4SdoW!h4ChP`+s7 zbOka(ke)MQp#8-(LHmoDTv~xLAt;^8M4;q#?z$&d?7>NC2GOkZeiJh|O{$0RCeHBm zB#_51aF)6rjNv6bNhyhwSi&qNjcAEEN-5NdK1YdN3rFx2B?GUr)yz{$<5##3=P70I zH1}~3{krjQ?9gF+ieViI{x`&@xHk~f|3gGb$_zCG$Q~p$HeTt0JYHxRvrh>hMB=w+y@8B8kR3i-+ zC?%NIi+Gj+_3-b78GM&gl5P4Ce2Tfl%9u+Hgf+3GNLeh literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.class b/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessDefSubmitStepExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..798098d2ae5e35053bd370629acd6032f9ebbeba GIT binary patch literal 6654 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.class b/target/classes/org/springblade/modules/flowable/processForm/excel/ProcessFormExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..f082d768151ce76dd5954950a686d14b6819640a GIT binary patch literal 2765 zcmb_eOLG)e7(I8UdtOW)!~_@v3KBF=+6N+J5|9iD2__+CASn2tGr4A(%yh@@9x(m_ zH&nT?%F>k^7H`UeFAy8CY|B3*5bf<-NFsq`9H}(+AT5w{ z+-1XCbuD{&v1BeuqwFkIO42hvC^@&y#ga5uU8f*DZ^CiQhWw}?OU7KCGOh>$nr)V) zK*x05c-~h!v&vj+8g0r}qTou?mt$)w68EOjfu|JFw8uZJnAFnM+aMn}pY6M*n7h*0 zhy4QaW$DjWO?CG6H86+96cm{>o>qEeQYrP6^uaU^Dd|0w&TY96!Lw-`#u2(uG`(WZ zSz-i4XsUy_9!;YM#{~A5%@vt*?1JfEwR|$!o^RT|Cvd9K+0g#u9yM_?ju!+vt3X+f zk(aJzmaLBz)J&dNJuXPsvmE=%)Oi7MQJ|$}cfl-Gq)z|TpAg8*S8U%Z%LU7`sNkG! zJHF{tln$PpE;wa_x);qwGt8X1#bDfaEnga*zs3~joKmH1U$vI}Vpc%ErL070p;KUR zcP-WYvmREZ>#tEZ{nuCDY~J~7^V2(juHO?#ZhrFR=8qeHY;3Sb0)*S9EnCi3%8Syy z90c7l?G((?f=M74LrB#8qQxM_r~ilgq+fBbRyf;=EX-Tq0->Lge$iQ)GhNn~&jheu zC{(K#Cc@cX;9-FhFUK!Rm%%ERdxB0#RcYa&rFu~-eu38DvQB8p`(|Nf##{}9*XQP^ zX2xl9igoNtuTo+c>!G$}PhBwKJ3$Bnsk~Eh3v$9zb=0-9MUSg`Qz^}`a(7Q@V_{56 zb7|hWJt?i_qE8sJPcF)m^`-6CrIqy#;ymU!zURB7;2daftOyJI+dFHT!s9Hc+++US3<3P1vtD z@Ye=Y11VIIGfSmByDFQ&+YDl74tiB-jEcd-wfv2WK6cEMZA&*-GCfaval9jN?6K&Z z1r^780?+Ku%IXOaz!8qY2n3!-l;g1%ecbmmArTDl$2S4bLp<;2={Wbs6kfzjYI7aJ z!^|IBCD5KrSff`5muuhil;aEmjJh2DpSVv1n&%|m>+Fja;Hl!fP z-(=v!77j&zkep%YUC84sa~fekpU3N@MOkiVaE?C>7g&yC-07G>H*(y?$OXQPlkvnq zXpJNB5c}eY@IN6Q;y|!Xa{dJPjuH$_eLjR>oTf>YGF_pdJZ&tNz|$aOwMtVpcb0ay zG@h-(%dY{FR1y4673w`Z+@2lLMyntmY|j=6VWNFt9r2<2c;<$pcMogoBBO;j2?Z># z4mJnuM4&YUEXs8p6SS!l+6&x8kYeLa(zPg#vYw~7)2iTHg!YI8jo=7DK=}H9M5g*V zq6l5kYYa6WZ99o)W{_2DG?%% zb(kr%ysz}J=qco>(E(b!uT9Kjk)~*Pr`+1Z{!SK3*L9e-3QHXp7+f2Oq2Nj+5pVYf z7`QrIWWWO*^PbSL40XoiQBOE&Q=K5jKc+6nAFOx8D?%fe}?m@`l(N@{^#cX$7 zE*fVT<|tw5{^1<%a~7nS%5&76!AgX#onWp_Z-jmKiiVQGli#0cniCB(MK^_Y6MbXw zX^MNPYyK?#Ijw2`jO=1pXC}aXsfgr8g<_VP`YabM(qaY|Xw~R9P$Rvr!zJ*bL0=6I z7U^-B))Flbu8{dEER%a~u2Eekrt7ehzvp19v~F0qNzS+6_85zt?@XN6$aEL(k>41H UOtf|X)E0%7dDmfsVm;XW2}2h$g#Z8m literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml new file mode 100644 index 0000000..a20e77b --- /dev/null +++ b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefAuditStepMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.class b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefLatestMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..09aaeaf8abfe2223dce9b414bba95dfd65d1d08a GIT binary patch literal 1012 zcmd6mOHRWu5QfL4P+DH)v4RW01|J~6q5>pP5S1#iV=-x_!Icw7wo}w2Z~+d(f&;MT zJcvmG2$cl_v0!0Eo{4At|NiFb<>3(k4q>YW4FTuICer0rWl5wlCYhSJ(B$Mun_G-D z$=sSDId^JoDpSmJva(-?j%gI4C+9D!a0{9Ox?`N6)R-mmG8)s+w_rhl9GX-{Xi^oM zLZ;IQy>huO949RItjqS$QC&*Fwj<4_XFK&VApv*0;Wq`zV~ifD(3?hd_n%k#C^1wk|*l~H1q0~-8bhxY!c8Os3b#QSQhd8Uql@I znLS7B$JR(?@w?>Sw8Z8t7I3{=TUU`W@Fj2T=3l*wfQ8Xpqx(;NY664rV40=wH-=E= zm7jiL=A;S-r7@j>DeRC=mFCCanFYJ%e!s+v=S9FAuX&!+2G3Lr7NG%c-nARh;m;DU b + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.class b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..ae8428345d80d884acc0e6e70311dd543589ea8a GIT binary patch literal 1654 zcmc&!&2G~`5S}$nLqaHjEiIJaN{Dh{A0SYPs#L0!s!=1gh}*`VxEtACcXypOXI_Bk z;lLU30=x}kyf$?NK~X3Yhn2m%Gv9nOJM(@0{^>ISyoQZBcno%w4!KFSOu~L70_3p@ zvIq?yMCwfRBjl-8J{q&Dbj)Lsrl@(hINHI%zB{PH0)v}FF%moyNyrcSL-cJO78!6~ z#k?<6ECZGCc-$9Onl#D`U1*9{0B#F|1r&p2gAsXGF}fl|1|K#%Goa9lKv==|a))+j zuEbI`RD7f+GCMkGzv#G>GAkqAk;b+u$$hjZD(DI=Vzj6YgN4-bYnFAQqA+OmWS9t> zX(ImR{}X@p4~nssXOHKp(i2ZZ{WB{&UnPOGQYD5TYxmmI>e@QZP>)Lk2H)mK{hJ&y zvC@tw9{sI5Xm9;SaZYqR_c5Bp&G!V$VB;{O7%?76BWb!W8tF}vC`+?Jbz<<$y_ZOZ ze}Y`Pk>R2;;LeM{Y9kS4)M6fK5G2|8uZAw3ZF5knvqurA=wP2DyyigZmZyI{DDC^Ii2S a-}UNujeH)!!wTjR*?T3S$MD4Mp8fz1%Mq0T literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml new file mode 100644 index 0000000..eeb4bc3 --- /dev/null +++ b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + update crm_process_def set is_deleted=#{type} where id=#{id} + + + + + diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.class b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e80968408db49aa2b668d3acd20c51bf10c02863 GIT binary patch literal 1385 zcmd5+OKub~5G^+uh6&*xz6+3$kYIxk&=3g}A|Xx4h>^m&y1UZx$lW%!dy+W>7vLx? zH~?qh2HXKr?T*5)rC|^Y7FK_rtIF@WUVZxd;UfS%h1)|&1iUh?l-@d3mzl~4gHuqNR04Cg2{)}`FbW|W5^ zoE0E*Q^^cXr3%x?YLQ`3-s;9P;J9v=`Z;>)QVF>0Npo~xwF#Ca;N8RVlB5){z<}~) z8<37yB5Tde$hqldyT6w{8b_KK%xkJa+xZcYYu)U0XZt6k>Woj?qxY#Lu`ft2#$SqDb2>7yk z*1zFRbx>i^+a@m}ly3cY*cI#0aZb9wLW^(#0ry`wT&<#g{9&33%Ui`VWRqm-+5jGq1=uTJKME6|g=vjmv3A zX+G|~zFE2kh=s a=n7nI-`ix@cx`&P&H-K64Y(P@Z+!#j1=sQb literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml new file mode 100644 index 0000000..e77c5c4 --- /dev/null +++ b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessDefSubmitStepMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.class b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..50cde12ee5d3062ad395b147f6ea285dbafd5adb GIT binary patch literal 979 zcmd5*OHRWu5FLj?X$!QJ&l$=FA0WU2(Mm|ETB#CioWu>T>^QO=Q1@Jb>#*PeJrrV+ zEQkQ90(HT{O8mwizj^a!_5S(>0GDvw1dqT_n}piTh%^Z$i#b&~&Ly{WF7*=&C8wFu z5w~`vjiQQW88>wL35`pn2@L|h1$$&vvNWNSaKR(jgdGAj(u#&mD-r9Qs%6NWu$jy) z1`Iw|WxQsVSE&e`ST6B)?U5-^Rey)jFHanO E0H4f97XSbN literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml new file mode 100644 index 0000000..d5b66f7 --- /dev/null +++ b/target/classes/org/springblade/modules/flowable/processForm/mapper/ProcessFormMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefAuditStepDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..23ef50969cc88abbcbab02ecca84bdc59bf2634b GIT binary patch literal 1126 zcmb_aU2hUW6g>mGEKu4amRdz^)vA1``)sHtrnE^7w2f3Ad>dd2i^~q~&T90h_yc_6 zL0@d*gV9%ilQG_5Hw}rz#Ke7=yL0E{D01;aykQ6JPd35bR5TY)|A!+QL(gdTSp?`Gz=s680U{R${U@ zJ7GxeIG&>(GbGEEP8w;3jRok&$x*ptAyhcy(be#nF2uI!81Cc^`lN>DA`u}iW%0*l{p`xEFqZGE&X8-gDKTe_%vZ#@!rc8pTw=^TS5(G z|CsxHEEL&6{`n#ZT}5PMRJJWczbEz`J#1<5?LW|ZxIy=o&~D)h)^UmA2JI5KOb?Xw zk)pLk8Ji-bXjad_KFuIkY1PL-1=ncJMF3pKChZuuh&(F3Pf_EN1?wY)1QwSj&r9h= z5K8O5qnM;vt5rY1G^Vxh$h?P{oYuY})4EsvjHTJOT06t)?9Z5Lr8$Y}th=p$%Y}fr0Ufl|fh- z%wZ^xVdMqo{9w%v+kxw?tu~#yv|E0?)0Cloq3K_CR-4jp2YyY4;esEu?6!Z=x9gE_ zpVq_^^1_L;r>M9tFHl$IyDPht*0pk~tlYaNk6joQ7z#V9EjOx0vMq3K2g;=vxzUxB zv(?)Q=i{Z=+*lraaIb(F(ojeQD=~zf$ZgscH;l?d^l4un`*A?PsyW{LZ#zy?VDGqQ zOkrJ~ctJ7Wm&g4$NZ{9GM2H0D$0v5+elIpE(+}kFpzUM^aV=CMwVleWq)-N~(_E23==$Ed z#S;SJ878V5;fmAjNRvpYKOs;!(_vY*Xu^FROov$t+;ym{@`zu(z-^=|?P zH1XC)*FS&bcN>5Bw}?-Wmm=Z^#3@7V)Hd2k8+WL~yPU_Y?eP(fKp8hPdrw20ZG0G`7pmf{pK*aV zqU{S$a)EajzDu!&a-1$=7G+WrBYWt#hU8fid4bga3sqQy6nbrH@=q|0Yf~S?dIRRb zwWG7kSY0OLTHlyo(vIHF%xkD%iNWl}D_CZ!W>AESQ=|>> z!db&YuW6g>}S7@)L8EVWucs#eQ~I%`99Q`!UtX+mY;?g6hbILyPDhem&jKfo0W z-Ppv1(XGG981I{zG{iP0CbD>U-sRkL?mh4R`1R#0fJdlikwDUdk%Ng8LtFYoJDB>8 zH|)85Anb`8%v=%J$F6+Cd#@Of#f* z9nVpZ8Iq-PH;pty@lR;|s9h>s$TBqkU4EeC8EqoWB7v4efSsEc&WeexXgs=Ws!TQ$iyHow}IA8j4gu;=yQ74n#OagCQRX-{Edo_<ef|FBu9=*(V-OY;=#4h8j5m z!_($}GowZ`DA`f^SsB(!EFqZG{hV=!!IWwwd>XH#c>iUKPvbuGEultoaL9c= z5sJJZ^L!D^Tt#H$Qnn*!eqS6odeV(^9{qt9!%cdrg!Tznu#QUtS54%IEeu+l%VVj+{kT}qgYaCsPdm*bWmQkAyM)V*l2#d#vJ^$2h(W|D*! miy60xkv4&}BY$c!qebQxb~pdVX~mo-DeRy`g$(7ehstk5py0Fs literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessDefSubmitStepDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..33c04ff75b8b3242015655d1fdce162682267d5d GIT binary patch literal 1131 zcmb_a!EVz)5Ph52agwHOC{3ZX&;o@zG2k<5;nK8HQ9>)F^uTSCY!e5^8|*a*K7|k9 z)B{|o!~wyTZ$gM!+o~c_kdW|U$2*>R@6Gdk|M~d~fJbo3$RTgRsK7*lp(DeA8%;tl z7<7H!7w%a0V_!t>i7#LCt}on4D0?D`_GCDACvqfR5hzc+aSzjcQ=D|-?$}cuB__Mc zCx*hd7kKJ1L*A|*7g1zbzNox;bYRyllo{IpE~BsHg&GL7j1npp%wmqA*yF+O%b5EN zHM=$9uej^;VBj8fN1~^;>d&G%_=1{Vu^lxTZwChtwq*bp$KWjj^e!+Z9d7gR@*`i zW&e#^?u3-sRC|;#o4$HKq zBmf0ES199BWE9QD8Q909WR*_+8Q8>iIxA@bZeWdW4C@4*Hs7bH>+%cM2MRe{+?qdc zrJbNE&HI*Oo}%M4-orFboo^_;gPA{dzM|B=*Z72) z0pb>Jld2kxy+Mj|xI=w2Fs$Ma%vmUvaF-G$qq-^#z0;Ybht#DlGqn~?Ha$;Dwv-l} rlbJ-J$uh(ZLZodV?$n>H4ACNU7q(aahG}J(CNXTnrbdQ(qM`8%-h1fx literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/dto/ProcessFormDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..d2723aac99c774bf36515a7332c902916929be11 GIT binary patch literal 1086 zcmb_aO>fgc5Ph52agwHONSpFeJ_;0?55Q-X!lh}XRtc??k^{Gmvm_3VH`p5x{1kow zrySryB@PI#{3e8$wXG5aLP8>k9q(l3y*F>?>-UeJ06aiFj}+1ti~>w#7!GAHw8LrO z`oq4*2g07n!ORn({nV2$dEXQEG?0!6!S$n3hls~$3> zE7e{WS%%_5RrBPiQniq0X#P9tK*>c$!pb9uLIKNIVaPh%-+w;i9z(g(9`hI6_P9T^ zkNRWbs7CdPp1N4TIbEC)x-!(MwF1^rrv4ERM|*N0BIyUDI~0M-y`Bg{SNe|+nhfla zVR=vbq2j*kac?F}a#a5qgAq5cwq0L5noas5IML=Yl-klE98PF-Pm+cjxgkTV{XcwY zkbEV(NniR%>+oqJvDgu6BnQVl;1i+92J$Ts z;mlJ6Mh4}(auztEEJa240+#;`@;ar0e@x-MO^-cd;5&#mdRR@wln(!8%JrYY9z zwYM;hdHoA=Z(ye9_0Pz4?$kbDDZ19`r&x`?jJal7pr}OZwqlrsf&g&?H%V2Q#@;5y zDcqvIB^Xxr8&)jja=1+ilTlp}hTh;r(tYaEmYG_MCR>~*CfkS$&d5xn&}0eXHX+gy g5O?fPBSEyt+|usm-!QEN(q&#{d!s$u6#o%}fI=J>6q>4?^6y zfNVgN%%Cn93?@V)#Nb=rBbscYyV>`~-Rzq6l}yht`v{xe>@ynoJ5_bN?{r_aQUBWC z^5agQTivQqL;ftLymDxzXRRksB<1_O~`bY0+vHMfPj zl7fn_2uH)oD+Lv_w5}{6AC-8i)Sxml1l<^muL~r4k1_ji(~PgKyU1}SRfQlhLf8E%T@WJ(Aul}y2HuNWT^KVi3sw9y9L!O z$+V<1$ra4wx+@H-+# z#xYVHk3~Wq-Ao>D&;%~>g_EJ4WmsJ*T-aStp>Gmxe*U>AM?X2hgk;AW}qSi*wqFMx*!X(E5Fd7 zix~2Cb!F=Qj6s)hp=$iHSW-6rGJ`JX(#m8!7)>k+^#6^e4+O56LpbolT zP-&MGToLXGA?}nyUospCEJ8K&N>R%agO<`Vey(8jn%nz=5kd7Wj;d6I&TC!8Axc$0`HAXV8}!sDZ4z{gOTtTdEF9Z-q?rr zs3)Y~=c}X9STdLlV<-j9S^|3Fj^H{>bb*Z*1!BQOAebQpdP3ddV4$;WeW)im4-wxT zN_54;z3h#+89H%#^uecik(<4wE7lWO6O8qQyJLNUp3Q4eL!vj*=adVq;0AScL#SwD zFw%#%6(;fCb2IXB@95_DlbdmMXJ^N?%U0iXQ^z7fb5c(}lzQ=j)IGb0PM=QgI+z;R zJ#y%obAvmF&fJ@NeA~If{c}f79ZEfQaQL2+=LYX#hyJI}9@?6Ea^LV%N6!u3H}v95 zBM%-P-Lfy$e>}DG%cJ`rL?J}G@Jjq_%QiuC;V?3|_w1QH`TJa{Dm;7W{M=#e$jn6%SMZG!b`i$3#_4T8bo218 z?W0?^qIx`4xVt6w*nZTS9%~GAYH$m8wSKJrfsx11Qj_E3_~FsJ50CCU+;TxvYT)sv zrnwk1P%DOyZXG#%@9^P+!v|jCW|yRPKAbvzN5Lvcl{(dr#;2a?=Z^f!{i&}V zMtF`M_@<0MUERp8W5Zjv3c6%TCih$$$3lEZEWRPI7I|hc>3A7sHo-XtXQ06(UITA$ zFqsU+@g~-8#=qH1m(K3)Zo2L|tEb0G;N?~?<=P-}miVTgNZ__$*M>wa>eRd*_h~&t zJqki`bl(ejH`S6*xg;D7E$i!96N=0CmowT}S1__Nh)D+Tvo0)5t`DQm6^@7bv=V8a zFA^%58Iv{XxvzC4@)fn}FAsA6;c?LtFI;$G1PE(PGNX#dq%asruvFrL35KiF=?cOF zcj+WWfp%)5z;r@__^`REK}bGW){%T5m6$4#@82AXKVBmjS0ZoETRg*x@@W{&L*qJ$RVp@^|bcp4R3?ebQEMBMa8kR$5ct3 zq-5>tuwPPAIpr0Sp5ExC`_ECLTcs1|OsmobiePW;(u7PwrL1JkHcvm986%=%GYk1RKmE9sC7;j`kwI3hoMjRtQ)4vjWxYx1+MeZ}04} z^YlAHtwd7PK$Q9&@na~K9Vg}fu`yEVxL0HDEKzzT{>&KaO4Vpp`Ey33)bHqfIHtR~ z#GmQWGF`4V&AwzzP3Cx{&RAc(3uhdhx=!ZV42Lechbwb<#t{_AD{+(q!ViL#WPDe= zXEiqvva7p8Ygfx2T+J=R%I{KN>gkhbpFM~rV?ivIOyFsIRYxW&i$!~>m?dU=#T;yx zL_m-~GY^KN8)F+n0rgmF2emlZm5jwP6+h&hfHhHxUKfmZuMd_I38#`v%=9No+>Wy{= z=h&SuIDhPjMnmz1kzgVbN_fS^f|_#z!EJoK;u6I8hf^_ks9?ZZoew8Ig1&~+Ko6f< z!hQsM^$EE9I_z&G=pcO)H;*QOJ{F>H(c`$oDWfKq;ZqY20l;ZvE^rtC4jXfUZv((t zV=nLn0Gv4H0^b3EQ^#E32!N?>z>@%Q_?YYQ6abt*<^oRxzyV|~@C*PPK;{C^0>JTO zF7O-x96sg(&jY{#WG?Um0GvVQ0!IPh05TUi1^{P}xxjG%IETyyP5{8kV=izK08Sq@ zFo_E26ztOp8l)F(Ll5>D3ZMk1;`sX#0*3DdK8xCplXw<}hhD~ChKc6Vck!1i1cAOs ze}GTHCyMwx*7*hUJ_FF{e1)qsP8nUC%d?%Yc6G*aq>FP^w)0|FXB=0$IM-%7f6mnz z$C)n94cX4iU7d02>Edi=JKyB$jH6K(=ZV?Qt6ZINeCpynCEIzmt2546U7V+7J9oP} z;~dt-xjEZ8?COk@S{LV*Z0D$}GmdgyoZGXV6RyrU>2-0QlkL38)forDF3xkaoxkMj zjMHKl=ZmwQx4AmwMA^mp(ro7)uFg1bc5$|{o$qsX#+kH>^Zab*J+999YQx3(s%+=I zuFg31c5z;m?fkH-GmgexoUhGxe%#gh`}70MbUXoC`1IhjxUKytdEKYa2F1|RCr_JmHKGO$x`x9-6f~wE2)wuEjd+6 z{+YYvw0tF1x}_!kQu5E;C7bh=REe6FoGB&$!dV?$-i-zwDOfy>9dx+LQ4MFU2=ZDk}C1mlAo25e@lPoHmhHiucS)Zwd4XR`MP^6 z7v(Fdl6@_?SW5nc{vPRl&f0TrzLIL2pd~vX$-74045l{(ZN^Hg z2$Yppv022N;#a8V5S5!nX0d~`%JPD=%JP|BCiyhUYx*3dTdWe0Zm~+u5+;>uQi)mW zAl+(}fpn{7m}N{dGzpf2)Mb@})MZterAd`$m4g(v zszC}{HD)!FYBZ_ZtZ|ScRxL;otIn)tQk^E%nsp9R%&G?|W;K}gOlr`idb7bnid&5! z#jSB>Ba_ByQlmM}LF%(ikov6grpcu7nq->e9i&ax1duja6U_-sny5(=%!v-toz^6f z?zASGlbAGFlO~yy9i+RgDInctHJMYG)TBvM%q9nEt2Gs*t=2SiDwC#Z(o}PrgS6e6 z4$^kZZ%${DUz4Vreg|oX)eO=OYlhj(q#2sjY|e0yc3Cq)+GVwvGnv$)Ni)qB2Whv} z3es+?&1_{-ntEU^pCJA z@T0Vu^iQxVMX_fp{WGj8(d_Zi&tX-IcJVHqgHsY83m$Zu)mv6sikHNC`cGKn#hapo{tMOwF(ek! zf5V#SDG+}8A6Sz-C1NuD3f5##3%yV8!kXfl1J--6nmkMCb^0}|sh&=H4fvZh%@e1i zIHGuyrh7Kg(?Y=Vd-l^Xo1)FE>(ER_Z~HP$%Fqs@g9v+X376Olk`gQ z23Cqf{@t2hA}>e$^2Vo#R|F1w=gE&cHd6Z@``CyNklsQ^3S03lxt!rQM<~K_R{Bdw zjDya+s(Duw&X)_y#HxAgv7Gp-+7FR;_Az?!RxV#@6*6EJYQ)EjjDl8KMH0gLBAt9@ zkqzBq6-%f%4Pn($Ubk9a31Pv}US1pOvV0Qqr6DXs%4@AvA|b3m+N;Ed!d9t-O4AV5 zCFK>d$|Qs(Nqd#qP|PwUWTYX(hT>Mags?_wuW}pevnnK1k%q8xsk$~6MUpu z_=Xz#|9$kXqSXuX&Mt4{o!mWn1=^_~*CP)vo@;PGSP zod&CsCoAux)b>6#QlXc80`nTaEfDYH5i|E5E~uv>n_zPa#};W?v4fUjW|wNRcPu%> zcLB7EFUKY0<&J4b{BT=6Ao$Mz@_7sScirx=b}#(^JX8CJF|vN^8%*(oDS{(^*$t_pz$Z)c*1Pbpz@@ZUZuH_(T%A8AwO- zc^^@!>wo>8eo__Pn8r`mm`u-n3PQR`$k9JZ|ENyWz4Ym5p<&RQp8gtRI~HU9rgar3 zxw!cA7F@UD>cX`aR~T0WR}5DiS0AoTxbDPt7p|?iw&U7?YZtB?aP7u5aEcxx%Km!8 z`Tg!HogfurABHqsG|Q8rI#@H%sz(!IrvANvXc4Vo_|Wz?To;H7aaRiKBJmkp_ulv3^4ou%d54JB(EAArQH?}lnIaTrRKH8xttok}IIP?>xJ%F4 zjH0WJqG4ahsAlQ1fjGq|E>S|JB*~02W@%Wl#!5zUcrdT!bfsYC#`C(R4CT!|+F)K+ z#!6;Zx2%n3si2IRyG%td+J-%$Y!&2QIen2)LRj5y6m)n`fX8hk zuWUeH4)O|_uH;?0$Ss&b0wY)|(=uw~!_ta9cZ_R!MlDNyoeB4MExVP2m&?>aS22=@ zbvsiTT+7mBJ`Hbpd`VZxbTzjg)wyYl+qg!iFVj~TMYs*jthq|rbv6fHE7MmwPy)~! zttwL&=f%O}YnjP${Yx9Tz1bTJJiZ^ViF?!QSuIO zK^xWAo5ieV-(uJR6)jsU+7_de{uOXt;`8wTkK?V~>;RhExqrpo@kq1-%jqPJVJiK4 z$V{fIQ%kC(~jP(Sx^QwvtZ=RaiuUZ2%FYee%xQsGbisocl_b$LkG?sdj-uBLfk0nxjtvD zJO6_@rMLN1`2@H1+`J>Rtp}ZOFOO;^TT?J{BjCyQK6CDcGmI{+UI#w2sFBVojMztMx_A>_$ zo_`m!cY74gYGi!+fhVWWo|!s>-aBU|4^EwaQ5e3k_wAXd9-KOT4>;3@CqbYH&OEdK z{N%om-g;#E;N;ZV=co5QKJ(JqKi_j7qZRX7EN88I&0!-8kF1zEGC6(d==2+}O+WC= zg~y+3UGdRdPfQ=0oPOvydbk>mb4Twzcldbg%2okjw5qqVl?;_oBlno4QH57`&GrSQ zQ&xFp;6+HYx%bC3+ty1(l*(w2$mLo$Z&nKh)k2VqP#w}NfbJ~hm0enP)G~{H zn>V0cwkHd>%{+GM!eg%^Vnqq5>otn{mhr-%UUFv2cPcZhT1K4%?bbG|iZPmEjFiQ+Tf(kE)DA=Gx!A6+|?JLtrEHJ#{ zELvVkMqWYY+iDj2E2CGfc<;4k8=_!0xxh-ju11MrF|&HFcXvBX*0e|T62{6snf7hO zb&kN#kpu)86LV!C;|{av%snC4qLFk2JfQgICkv6+tapUIg9D=mfvDouIxz1Xfk6sP zg&_dmnW7A+FzS33gum+jHU!HL67H%3307^tjY#g(#@x`0Y~7aW>tVz)*!4@gHJ-=W zE#dc9O`2DiNLu(qN_&%+(^Zp-dVSgwinT0Y-z;7A#xlZ@`H%v~Ixmm0Y>Y9ABwtcfbD5WmaJ)g79p zJ3Lo+7+SdW%+(#4rEAR9HK2uykvq90zV769L4eEAT)`*=xFETLI<)ebjH^{Z6E`AP zcq!FT5wvO17~SC!F0=$Fu0+ti2ol^o@wU)X@MZW$+TI}cDu@u-cylq~?lO)y9~A(! zoA%(#_>BhdYUS5SdIdtia(AFIZaD$UwX>Bofy%fJ1t{0gR=z1v8MmeY<)+!nI|7w) zuL@9JI9vJFKxJIM0+ds;m3Iaz;|?02ym+><9;l4#U4U}yY~`^)WnA_Gl+&}7OM%LF z(gdP`2Z@Sr2;XR1`$>|5Lu{cyxFN>FPn3YWpcla@iRv+uZwH&Kov%q=EEu^a>l~Bc z2{u_jUz5Cslub4|CchhOvT431d1)z|Y;jC}FWBV5`I;0J$DQ~h$K>6?CR6h@DQcB# z@)F17J#=r-iZ7n8Nm1oolS>?v_t9R|v^hc4I$x8bHo7J+he^Iu@Tyy`j*Pw^?1}Vz z``|^jyk1v2!^W>b!V{t2;oE|mIojTKlp^61?eA0U35wL5Xn&7leaqWU(U+Vii1sbZ z@lwMbzoBF*`~fu_Be^3LK1GU$SgA$;S*b=-5sry|K#j+!HWf)leV|pU1kfrqmXbIq z=7OYD%m?aJ;{bK4iBz0}5-up7O87vl)g(ZxRXLU9AlU_h@`2W>wE(SE7o=)AXn_l= zO)c<&y45;>y4Ctr9S7CBpt@AO57eVJ0Mw&4rW!b?(FHZ68hxOQ+5}KWZB8|DP_qka zN;P|+@Cht&&73{#L$M5AfnlR`KkdW1wXgx&k9{pfX|{R>|OUK&R?m9xgZsGB{7~fLbOVaI3nbWqZCU;JW;0_bwts!2w5bwR;!XDLISy3 zk|$cL#vD%gPR@@Wys0l}uD2tG1LMx*t9T8H@)k->|#lc~GmvD(2 z#x?XedXk=k!y@!o`YEUo0`D*MH2hkFW8sJNGf-jtUi>CK11f?O^wab#s3;O-FZ~>p zgm4|9Ux13yi_}NYfr`_wX(c@mDnWn5dGRQyBoDSw4K;oOMp&X4V+b%}>=SfVX@@wY zg(4on!-T6@E-dPURgkl}E?BAtSMUJ>S0y$_rJ@xqa~1L5EnvBNaQJ19DBtpJ}RM?elRkh;TbrJ{j`+8owR1@kGS43Qs4V)p*w8 z>BiHJrw32w3~eR+Fc4H6_#O%?ZeWM$xPyAZ*|3`tXD>pItKToZo6iY)35XcDFXMR~ X)s}Ff3(*@0^|RNfP;=j*_bBymLnRoj literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefLatestEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..4b9faf1eeea0503dd7f6eb9716f1958331cab190 GIT binary patch literal 4960 zcmb_g-E-Vl6+c?HNQ6PKm|S6<1sZ0%|* zX_LA@n>LU(v@|W#nH1;)9fpQs0;Wu3f>RiHDKk9s#0*aiwwpZh52Tde)s?)mt?8J7 z#Jf5==XcJ%=ks3sFaKWn0}&md*Xt=kbs{BYN>N&%rfKb*rdV2eQaL_8Z4^C$()-P_ z={+n^U3*)hA2uciHP3LpexEH+!qf$79;|I+#ADWb*}@GnHL_KuqGLem z&@5walBwBe&KR?!npHIzbBjzZj421pW0``^1Y2d=#sq1{whYetj7-~Uhd}k*>M65i zAP#&7RnN4P!&s}g9?Cmq`Yi2Y>ucryr>mMJP)mDct2|=89cLK$KAAp8Z33kx4X*&7 zwzPLdpn+E``k$BS3(RWTU?yFr+aXgY)6GJ+FYuM|yJhML`Hu$fGQJ|y7a6}1_*!5K zI+Hyh(}PTwf$XI3G~<3rribXu0_9d#;C?rUyNr6CpnWo_)CJO&lTvoXp92K*N5VN;nX%86JwDMBKm$onYJ=w zIHqQq&$8kaD1Wkwx+@u@rfY(6uw1r1%`>rgfw~6)ch75+lZK<5dr+}8SJ7$!rDW)) zri>J)jFN`XWOc(WI%b7wBT$PsZ{2zGSFD(O28(t{8Q1KRsoPbhG&_zJ+=^9=no~}( z4Ha}4N}Xd>EKt&$t>DqUA@zcO3TU>CgCiq_qr+pTPZtg&=}RyFcbY*Vw*3XtM{c!o0 zxBhwIMYzMYm^;$#Yd^Ss`8SMwXt37)6OL9g&fCt6GJ#gtyhy1024dyKhJfZ_lVU~l zJi|epHqYW;&(KhhuJ0NcP)jA%Md*3RCNvkIXG)ebtrcfnyBxK74DT!UWbWqj)%iPD z-$&$lg*FbFWn;Kn8aEt2x@@l4Ma>%3Py&c{z)X5mCf0l`;>`bLma$a2y!Tg4iJ${I zMlofE3~$QTPiQQ7@DGaS1DHE>al!2#h2UIEk?n|uq=ag2R%E327VAIQfu z1~`X=uZ@v?a4(ypJK?O{h=+O^(kelMQzuRqhWg=pfz5rxty(zM>U_U4Z8aA%ZMEIz z+E#B$Yzudg4K(;tl4tXD;`kV`t4`54VzRliy_Tlv@wS^yA%T<)wY0zcVH5@mskP{o z#)2)4>BhvEPtF}E>I7whRe^j(oIv620fKy9^C z)-0d1XAFfq!>9NWt?1d#tUzx?=XU_)MhCRAj?=zv(6(o)mEKPs;j0w=VYMFqWP}wS zrV&u<&`Yg?L4OgUB1-gG-)Z&66(rW_k{B$VFkw=d1#gUvKfgYhWp14|pK7_+{JKp+0 zA9ksqj^O2}3+aGC1v-W|+=c>R7S90qCtrrYJfLqae!4L$v6|ENxLx8(cAh?I> z=s4&TEk3j#oo)7S76 z*mVittCim;@z)SWm3w2AabJp2&aG8`Bvu)hsu<;_waWdm%D8#OC~sb?d@NQOSF;%9 z*0svVW0i4(i&4(6RX!7|`~;mrSXs1HJQH}PJG*X>7@wieUo30H`%mNle`fElg+-#Z^WD2yit?9g#wc;zR9t8ldT&y$(t`Q zxy?8E6lrL;b?M1()Ff})z~pwAWaETQiIv6`*smSD1QJO+8v(f6)%h-^lGnTbMADBa zRd>DXk0cFsch1v2{ws)khr98mCVT!&*?jUt+H{TNo_uni?hg^|Y6_5cHJwi}O!`A= zzDBuxDxZ#kx>OOME>+5l3?v00F)u|xyVVRpyVd%9hJoq>P$pj=0qs$<0PRube3pUa z00b%m+N_>qKtvke2gGak=CiywBlufBL1Gl9Rxo5 zLZ-o{rJG$j%^}N&1#w q=HK?G<`#thIatQs>-q4Kb%9<0LIU?id|pOF6Y?$4EA)M2G5;UxE+!-Z literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessDefSubmitStepEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..b61339ee7a6f7d3c0c1aa402b82b957f91cc3d33 GIT binary patch literal 7785 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/entity/ProcessFormEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..319947b70168ef74d72bafc0d09bd155bfc2911c GIT binary patch literal 4043 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 O@I1eAqbI$aazaIVo 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 PFYzu<>&y5mz7FT#=UjN~ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefSubmitStepVO.class new file mode 100644 index 0000000000000000000000000000000000000000..76036491c62d5af74a8232aec83e25a6354911b4 GIT binary patch literal 1125 zcmb_aO>fgc5Ph52agwHO2u&#zXn_Lx0DML%T>2pu5>hFU1Gi1GO&lC=u-8TKQ}_X# za)1k!I3T$4n-F5wwyH=(NJ#jwV zjun?;skV-dXDu2e1L8J_-o7pHPz2ir@Gt?g-K59k1-f=@oLlY#ItbH6aI5;DnqF$`^3YEjrK{> zP$MT`Xf^+%9Sxd7$&S)D%&=Ce&e;%W3Bjc9=nsDwOsPh~rvW>P_g}U6H0iY15^5v| z$K2-=p~wxg&lf@HDk3AF@*NraeR1gMSvMEo{R6Fs8+2VMZ5FOz9hWF>&@P3`^gc-+ z8Co|fV^d@l&Dt5*rwDSDR(%XqaE;bN48V14(T-u8$m8Ps6g4hgvOZEsVR32typ$dU zp|tKhifM}VdhG*DV^;r;+ ziCffFna19sj#IczbxSa;>`$y%$mMW{5+);D5r%%yNlOo@N?T^?UbNW!Jh9k%3^*4v pNkWSyj61|gkAbvfe;Ns+Mdp@vH~+?IC7dQH+$H0+vDK)D+Hb`+=PCdI literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessDefVO.class new file mode 100644 index 0000000000000000000000000000000000000000..4e35a4d535b7df0a58c23bb7becc934d36b016db GIT binary patch literal 7173 zcmcgxYjhRW72YSg?>jf|L`D&@hDs8`MXiraK!gy?g#?g5RBV?_?wur;+o}iLUB?Utuu?mNo%Z_EesFl^o)_ro0;*PVI_xh=01HeXC%jpX4o&-)%BJ-?zg$UPTp0OLe;#VKtazNoKdS#9cP4w zU@(>8tOkV|IV-|hTO{rxg%)vUJY!htVs^~VngtHNSfNWCaJp#dwy}PKGcQ$WiNhQ< zCIhQHAh&^;HOx_#E5L!8LY*8K2GAYt z8ij7;yeN2lVN)57yh)*ToEw*17u}`M2F|Yne?w_CxXMO_Zgy3=UlozX>kebneO3u)cHHERP@ux!0xTZ}&Tu8ee*$MgSBj=Re9Lv7)3ys;rih!C}m zVph)$7)1;Du`{)S5!(cRxs!F0Aqc1Ne~gj3eY{{JxCgRU7RkM?P%v$srxv`jqBmgFwX?sTTB%pAY> z+|dKmlaHS}@;Xwgh!n{djZB{t6CMA-oSL_LRQUwAci*xzwY?iYjhuh+==9@H@VUzV zW)2=a{~r2_PCxwY^yyP)Pn}}aF*9}W?8#TefG*ts&dhUsrYEPSA3cg5u0rG7;d{>=I=b}gr2@d{y53T`A1b1B?K6v`NnUn!+q2eA zwd0A&YlCj1uke^|+eWc~3Oa#*?R|ainat9j9xb2OEX0n8fFa!i=?N-fY3xGM*naiq1^=u41MU-a3LD!6TUgdnAiKyF8Qm zFZV9YENF@PIj367{Aw9MhV>cth?&`@b9Z5O=r{}&UWc&yphW#dSV~$*s?hS(N+EVD zq-eQy5itd@XCG+tmM6DB@UbL-^H$Az2`m-OxhOFdX3pK6X?-ejB4V>3En<@ICb{M$M%| zUbe8;95s@{yx3+p>S^07PB41P8^IDNjP~e-433x0y{0)jKGwN#oAYqyC_2U8Ba|t6 zhlk~!u{ zZ9$qb$e_=`PSki!8ETLPEy@#a%)|=k%FT*$3`WCU@I5XOZHy0CKMR()PtpGq1^lf|*PILp_bCutu@aqs(P)T`>uQKin zKFW#t%3Z$7xLEio*UVS$@m0qC!$-M(zVaqtWn5Bxl$+)&Z}U~gHO5C-ov*ypR~dI5 zALYgKm3R3n<0|N*eA#^E-M-4WP5CHaF<*JqR~dIJALT3OE1SN`_t19`N<6|ee0i#e zTHB6O*grm-1VY9qk6lp&z6-q|&O=m#k$lhJWTIS?qFhLm)sD&U`u<8DT$7@{Nt25lllS?XRLeCfN}@D*iDUA9f0K*LH7Saz zG`Ykv`2hXEFNiKH*Q6-J(&Xii$p`5n6x{`Jc}2Mh< z<@O<}zU-sL88&|35uT`Q!1p55@X5B;!xRi0Yx{sA&rq=PSljy)>08lyf?Ay>h?QGb z;H3rHKc=`E_=swckkYOOPSDjZ;#w^T$hBHX4RTEABdR+>2{ovOJfIFO3{Zy_QNtV* zk)W^|@qkuqQGix!F*V9TF$s#QF%M|176)jprl@faQX~kJ2ee*G0JL7KQWG3hB|!p7@Fg6h=< z4`{2_2+&roNp0kyCJAa(n_N)f7~-JPvv-P(_q9??=_jCK zbb|gwhd{;Y41GdRfKuqsbew()DnWmxDPSL^Dx3!<=_ydvEQI&dcxu=(8l`7I)v`7m zv7QB0$2QSMdJa@Q+eSCh&p@+{#icga?VkTs6kh>S_?U%(5wiVD74mUVMl}{lv-g|v|fuiqR6ZWsVTI&wWuRPR!Xg? zE9%i=jwm)OLaqv}&05?MAx))L+!bxr6i1}YiWEn**gpXt5Z;mrP|2$4MfwGN8Dt6i zC8!FDu?W2cmsipi^eMdzDuAD#KcT~*f^<8*O-De5P+*^@qoBe_i2LbRpd$1Njo{%4 z@F9LV{xzr={e`ZkW1!;n44U0cD@26O(|b$s$}h}anfMos|=QGmIZ}b#Pe&jhvnN4gZ#F&k{1Cy9e7sb zS&L^qo^Cunc({Bso~@^7fN1`y+Iw$X>1Gd#H!oqY6F*5r(90WmPSPo~>cBru@6dZU Nsq{Ymj{ZREzX40J-X{P6 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.class b/target/classes/org/springblade/modules/flowable/processForm/pojo/vo/ProcessFormVO.class new file mode 100644 index 0000000000000000000000000000000000000000..4e0a1218bcd538f274bf36c70d6d56be2ad35e27 GIT binary patch literal 1080 zcmbtSO>fgc5Ph52agwG@2u=AY&;kYW0r-qkIM5HNRYEESa^SXcmc+sF276NkKZPH_ zDF?Vvi35TwzX>5`ZL0)#2?6ksC5a43VJ9Zmz+ zAND;y5cWh4W}XP`XP$h?`<}3;fpkO|?#p0ePvuzJ!dI?(Wgq>l??n}c%(m;h>H$N# zTI*$zWhgG7dYx*`LZ0E_ziS@LMZI1pj~ogGEMtWs>u`VX#f*Clm1=9ukGbt}e`t65 zW8tV~?Wtb5RKOVx&IpYRb?IyYtEf=_h=-#cIS|p@2Mnc91TOb_A_!gSKRMWCV22FL zJJJso_f?O3GhvdQ`o|cIxVhMJeeq~E>5Jg8c8;Okk`D23Vxv4M8fxT*47;uWccDqc zE7?{0_83;HwT12DDj}HEgZyR-gDKTW1hiLIap!rPPm=*lZJ|bTaKr;X5sFM8*8&mF zJVj(=PrfT>fg|?aXvJSH_^y`0Rl1y%wgwlmhI16pQ0 zeFV8gr~VtL;xe6u7=SC-pp0RY$m8Za6g4hgw%$=l;m@t<(^k5ELTTOC6w?$Njrv=d z#=P+bxi>J=^Tuc7+PCW;uoR{B#tDkimoe8$3lgEB6G{z>wn|45>As8ZjtfY*jhA0{Rf+Z)kXjS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.class b/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefAuditStepService.class new file mode 100644 index 0000000000000000000000000000000000000000..2aed94659b377b925b6c52392c38742477c8fcce GIT binary patch literal 1417 zcmc&!!A{#i5S>kdG(drt_Rs@Tk8tT8I2s}$(MXkoh!m+kukFEXwDv5!>yUg5KfovS z&=2UJ^e3uLoCuI`Xk8)ou(G^wJa69f%>4NE?K=P*!@D-L1PsV!(p#sCEH)}dnNwOC z^zy>cwTcZ&>nK6*d*pKI(T#P2^7CMRd5RY&Wvat4pdHS!HmnHP8L6?7MirSnk4Kn< zHmnIaOemMJqFkp`%6uBDpuIJvmpBPncumDU!y=u4J&%Sn)G!WIh5~N)`%CjC;vXYbNyQIfZurqixSDM8JETSaNk8CE)Z=CMQ&I!*i>8`PC_F(Qy}4?Oq0LWMBIb z3D~?U(M=Zt0)95n`Y)=n2s%vbdi7IH*+^041ctIN|q0P z!@{aL{R{m9)`wKO1bf=>^7!z?Ci^)1tGu=Zyx_CSOS8qRtqm`s1s#6tv|ybd8+VDo^_z^qMc{L2qEU3V!<=H=OKe literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.class b/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefLatestService.class new file mode 100644 index 0000000000000000000000000000000000000000..a08c4d32d1218e3b49d306fb3f971d4d75c41632 GIT binary patch literal 1013 zcmc&z%}N6?5T2~n+WJ?of_J@`gU7W!X+hZ1Lc#m&?sQGbZk8ll^;LWU-@$_q;6sUH zTNEmLs1!U5Nhai*`6l1@{_*+-09`n4LLgvZY$jc4RguLSQGK9ic_;iL4XQDCZnH%kh3sQb230vI2c&Nr>)x6t6Z$vG-ro z+9U-5&(W$F!}`Cg7vf)SevI+H-W-*`EdFtYe0UJob7RNSw gSFp*NunPgS_|yuZ&C4FgK1Tot9E;r{9L+PGPe)5#`Tzg` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefService.class b/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefService.class new file mode 100644 index 0000000000000000000000000000000000000000..17f593b9d66fa543494cf99762bfce41a7173040 GIT binary patch literal 1962 zcmcgtOKuZE5Un;z9Gj4YBoO}pj}a2RU}=biWQ-yiIl>SGE7~*VNn111lkOg4--8Qq z4Hg`L3ve4m&3N!QvMpp2vFJsA>eZ{?>mR?qeFuQ&aK8uz2CtO%xQVn3y|yo0a%G3$Rn*BG^Va}zzyo2bdc{K3=eDAX$_Bxu*6`qD|&+aBJ_B(-9^V1VTHj{ zM+LksR3Kdy^I*^xR+`9<4adI4&`1^Lz!@Babq{UkC2`H*L#2_!w`{_=`lvA%{YZ5c zcdg<%{o31Rm59Gad!*b0p+$fewP8?@E`uF|K82A#KM)==_*!YqjLA`&l89Eg!U{?h z8B`Zw*&8Q$*rZ73^2lH*N~xBkQKcA^TG9)JjWsg%c)l2(ok9$I|349@Lz@}|`;pRP zjliJxw*)#Wbfu;4HvGL7QG}YRn6_|irOzAESZcks;~4cId%)o5{HTk>h@q8sFg6D- z(}U{X1jRYgvG1Tij+^WWmIm609_Ew8pi^0_r(U>j26L#UC_p-ZRwA?ww)tV%|GN?mWGrx z=;0K}n<9cAY1-`|B4J7cdPgdqC5XX;DG*tRsZM7?%3!5KjP^H0iuW!Ge}J-XVVs|#>32ir}-E=?X?hAZ@H2zZsOuEF)piu@4; XxRF}kgj+e-?bQ9y<__FVclUk+y7_-8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.class b/target/classes/org/springblade/modules/flowable/processForm/service/IProcessDefSubmitStepService.class new file mode 100644 index 0000000000000000000000000000000000000000..e149ee482f739a35f148fa4929f4a3869e388367 GIT binary patch literal 1429 zcmc&!!A{&T5FIbjWr3DL;nG8;-r!OndJJ#^B&0dw+kHsm*jHktqx{s?6m@GQ>1= z;hBK3nkWY#eJdk0+wy9V`pyl9ajbPVx5;N zR1SqWYbW*KQKcR|rE`xhMZjwuTXKzaCE)lWqf;s~9e85B{OFXm=y(+Bsjq@IvafxJ z1Z;e&&`stC1l+c-`aim{3_462C-$UZOMb<6iqY36k!4ZUuJ&%kpj`;%d$8D zT6R|7*MD(9z* b2+tXQ0h@Dpg|GcDXp1*zhqmEWeR$_5_kZ$F literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/IProcessFormService.class b/target/classes/org/springblade/modules/flowable/processForm/service/IProcessFormService.class new file mode 100644 index 0000000000000000000000000000000000000000..37202f33a7a125b852a9d72d8bdee4eadebba10e GIT binary patch literal 1122 zcmc&!!A=4(5S=25fC{1}ega(V!Q(0?C7NI$A@OW?cUVih+fCa=`4E4=&+y;}_)*4T zF<}$sfFbeFw0&*oy_vk}$LHHS09?Xx1xgHVw28P)jZ7k6i4b|L!%U&&W2K*juaKuk z2WV|io0wZPQyCz?9WKGq0;@ooL31Lef-8|keBe(oa242La31KG`$ESu)ESRwzHri} zDzhA)9VS-lWEuH89D@^!iXs%4h9W`+ukHTIc!4&Q0Xh*1CrBkd@cL_InCgk;hr$SwgT^u_r@8!kp`Hw?BN-*aWd<2LTQ9MTO(fR+hw^MlID^Jm zCSlL$_zK5;X&r-ByVK7tm^rEV9P=1F`~d%=023$OtmupD9PzqD@v>ko7~fm%nAN7= zxUSkrXC}a&RMa@9zjW={yjs+v47O-&)5lPvHm<-fl%PtxY6)sI)oJX_4`H8<51>Jp P7yBk*i`5~t@*78A%1nLr literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.class b/target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefAuditStepServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fc50f73b2d0e9b6d49d7d74b3c041d95c292cd36 GIT binary patch literal 3585 zcmb_fTW=dh6#m9`YT`JKNl8k9LTL*)7c%t1rFBS~P$ETgN>rnOctLCL#GSI6MHK^c*Zkl=A7?b=A5(t{P*Wy06xWL0U2cT z$Q3b#3k=n!YV(Gr+R|1bZ+9A&mVxJl0T)MFxPeqI4}^axn}W->=kR*G*rERn7uKaK z^#((>va~;qmoS}2p@g4jmEj14lix8jj$eubLtVww2!= zma!KT9*Tp_(3ZNcg*PO&(69orYk8jV8E)3jRH3PS5*wZ4Tm385JW33^so-^)Bmj$H z%wQJfB3{Nk!<9fdqNx+k?pZCt@N;DpVxcYD(iYz_7pk>XNImsb@k7NE#P5GmU8+5` z4lN#P>F}Bibae)=U?GpiA}--ohSd?a974uW2!wtt$jo-Y@St*%`BFMXjS*if;&r^i za9JFA%1<&P!^2SqY$}(+hC(;sU-^;ylN6uDn?<~Zs|<4o(zT5_wmKAZJ2u0Ot}c${ zws>8eAU@3^k82Ejsl3yBN;?Ve>4rE%?lWamoXpjvD;|aIhVZ{M?}cH$rka+sZ~4-! zyPG-vM3VKtNf#zPAkmvX8;p78RfbS0wkF7dbsTh73 zqkg4?G_K~1-8nntMmLoyQH^TMUZfO_;ofu^saI^zsrvLh3Uw9wO|dOaslR@HOeKo zj%NBWpz%7bIL(aaspUVwexpAb+@R5r4e=csi}3-xi}z^7s0FSd8(kK}EK7R}E6cwl z|2Jk=R*x~4#W5~s@GB9r1I%tm%&x{4y3FV*marTNSilNaN&NeLk%qQLG)_Cy8Crmj z03XmVgPTO4KC+9%r5%H$+yioq%NgvhJ_ljGih#Q);obm{avw+;w{V+ymgw9ad`P1K zvKZYmw2%6_9nxf=RQw--5B2%Z?g|kIRjJVQsI9Fne44QW%0uqZT^?{TK+yOqDstTVe9mnXKb*6`!pM0Jpld(U5|cQ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.class b/target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessDefLatestServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7579134e596258d2bc25d8f91d16216505fd4dc1 GIT binary patch literal 5159 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.class b/target/classes/org/springblade/modules/flowable/processForm/service/impl/ProcessFormServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..123360e5eb7b1ccf018e8f843b9e2b22a7705a6a GIT binary patch literal 2684 zcmc&$TTc@~6#k|yR!Xsmf+DDRFBci{Mof`-0U}A!222xQjMH|2!QGwB?iA$RU*a#& z#Kho(@!20`JiFUUxk;8Z@nLu7%*;9Gn{%7<>-YB`03Ks1g9MUkq_XJ135G&d+q@#Q zt!lc??X8M1%6F~0&*cXr9bajO`_kJ`Rmqj@T6{So7HH0JVp=)M%rGSLBjrwv;))ruu*lH0mgx1`TkEWIfzmgKIdtJ3%9wP)|vQQFzqr7lwuzFZWp zD?NtE;-S#1+9P%0IsWV~OCgO@40EwyHH5SPiqvb+g@B<@jD^hA>zZ$9-lDersxVSq7aM}tjk0)A`KHi?v*=5sKZ|oX&oF+3 z&2}MT$oSGMNit{6XLyp|D|{s01p}j9$YKyf47nBM)aE^H&&rhmC_`_4ANVvbF}#Rn zmS(IjwAiH)Lky|sx<-!46_q1j*6oV)UI&3lx{JChtg`S_KsOdsW=+wxm*V-Q2_Q_C z{UCz8DKLEcFR>BF`2;fMhH*R*&&v#5?oR$P%*M0d!Ew#dzuQGyZqrRB7QE?ppqU}# z^ejrVrfVhP30oTJQKWP(t5rvsx+fW%i09xo!D`3l;w5#PfKyVo1Wi;BdiItZhPQi` zj-y>VMwzYFx;YoF6aufl+gF6zt%4059Q0R@}hNP(dGVAy4W@ zh%ZtZ?2Xdi7_D?BhyWb{#_3BCHZmQCXci!OLsWvsTm#591{jKCI~anN5SXIZ`B8|Y nKRVvP(M{AuXp5%yXyp!xjnqvN?r3%w_d)>o@qos_P!EAW`3qN> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/utils/FormUtils.class b/target/classes/org/springblade/modules/flowable/processForm/utils/FormUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..17bcf2a8ba2b48d07f6d080f574d1bf459b84cd7 GIT binary patch literal 1147 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.class b/target/classes/org/springblade/modules/flowable/processForm/wrapper/ProcessDefWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d571e09a24811956f0353a47dc76150c9dd64358 GIT binary patch literal 1689 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 R!JC+;U4mBkv4BMk{|B5^Qpf-R literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/controller/MaterialController.class b/target/classes/org/springblade/modules/material/controller/MaterialController.class new file mode 100644 index 0000000000000000000000000000000000000000..b257ad827e2c08bc982c4095b49df86cb61fa836 GIT binary patch literal 18322 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

SUuvNti2~#) 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 AbpQYW literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/controller/MaterialEngineerController.class b/target/classes/org/springblade/modules/material/controller/MaterialEngineerController.class new file mode 100644 index 0000000000000000000000000000000000000000..a319dd04529ac80fc979633cfcecaca1a2d8230f GIT binary patch literal 13172 zcmd5?37izwng74Js;4PnXhsygKtTo&N>My!fXL0@2*|(?(Wo`k#Y{2XT}^lOz?j2C zQ88W^k7&%HCPotzHM?;b(8TN}o5N_bm%GVkFEvbl8H$+!kNi`%a4qy#4STJGgJD>Jw~W2Vzq zM&R<6j$P(}X(Y^4ud%6nm(}C8&FkoKl18`bB<;A9Gm?YdrfX-@iCmTnAZ=>FBbYUI zOJYWtWZMKx!ek9iI;J2du%eW`GNo1%SfGJyZ%R>pYg@+8nlB=yDHBjbGfh#Iv9zXv!cU8M>&ddf7M zqT^JYCJ^xi>DnZ)ucbQa>atU@RmD|Q2Anc+yEc)xnV6;F3>{};w!rD7w3Mg0j*~FV zv~6q=sEeDfDX^rX!&X_%-Oj>X4J|t6VZOlpiu1EpPmb=LbL~XdSdnx4w(&|pqxWs2 zlQPsQ7)9~vuUsinLrzsOdbSMEg#y?3980>?M7k~HkgF1AHhY`_7l9!l&Wqw)EY@(I zj`OiZV9r<~<{1@eq;#vTwA)UnYo>gKVCi%v5>k{4agm0Lb+n>Qps92M!_(TGGZR^X z6DrweheX+BI+o)-0u!>fYxzJX&_1dMIRqzyj*~J1bg+}@gs~|Y?ktdL=L0f%E>`GR ziB+CN(g;$bSdl~>j*@2$)@oR%V?Ejh)|Kihz^9{RftuNAr{a>am4m_d+rkP_yN@0; zh5f>@S0u3qIu!O&bZEFt$3`%m+l~XRX}pA)?2a?A)=*VPNvT6EEkgeoGwbC#wxCm> zo;fBlNCvA?mT}&1yZMyWxi**Tk>;nY+t8(9yN>rtuO2m|(B|9s<>g3QU#$&z&T47D8ZMSRY3h0!$n}xh{u} zkU&yHN{1sI;k@cR2gxT-!-EDHq0;;j?ADP1VM_x1X0w;|#rE>dsPH{hO(}1$ir7iZ zHD$gs+9hFC6XkRaU=Q5>g(u`sCPI=r8tAbFIf!qrE~ zWi<#X*;CevAJp+7TrV&qYb98HmR7x&QUtu(Ph@D}+vd%J-`PRj|leim!Wh z+=u&_!ZTLV8Blyttm*!8HFuRf8hN-qZ$}I~U1)ev;GEIf;!%PMO1XxrNO)3FcTqfq zPipv-j!)w=0#gcD*`9K(URjE117;#;ZQ3a?t))F&wfHj>%a7=I6rbf3Yp*;Bm6}>s z*~b!Aik*UTqIe9S*YLQGCnPepj4rKbgw?d_HdR^HxpvZu5%9mL<4Jr;9US{DYN5w; zx7%)CpbzT#tkKP+j&8o?B6v#Rq>+Pv#^&GfDcfBxP}?%EO9tH6b-aLYaGB+w@H<_nr{4>jP1XFS1m{95 za$5pSi3>&Whji(T#dwWpC*WK7BMsly@f}&2Of1ahTJo39xea1{phnQDhr}B9Of5xK9bzGC~@d^%W z_zQtWrCz3>sM~Q|qsPr8^6~DsQ=<40eyriIbo@ld(5ynl+o=Jk-!kYJY{1ypS#huE zq+Mhg$GYY+%k6XG8_gtf_d@)Qj=#m<@wnSZ6R&dOOzJdfdjzi%I^~M&YNi?2ibwEM z7FZm~SJ<*B_z^~Q9FYWy$zRISMm~K*$D5MDlesXcQO$(JoXk$M$5Q?l!9NLHICkzG zwcw57U*u`)XGI4s&xCUSf79{ra{rl?_b=!of-Q3Xf9d#dIe*Sr^E>U{6q8iOir{6r z=zn$mLM~GJqK18`n&q=!>Uc*!n?`~K?T0A*S{?%{0dfROG*KgPM!~l2Oc%XoVnwDm zm!u<0ut>|QKO*V`PHRsQjxqnlT9Ri5pfw4OEaR^V+p4Vi}whz`3{X*-W!onF6JQe+yjGPOL43+Ct!+cC0x%wE<_#=v=o zV`hs;hBu!6{E-`PV!6k->&e(EE*bW(J^%2?O^=m3LtR2ulUI~x zi;zmXRZm^zfePoTafE>E9gWpOA9oLck~Ww;rFJ>&Czf#-#7GIbqSGi_>7g7h(;~I5 zn&AR-%P3ZsnL(W+q>Z|utf@#uR$Jto#h#xWYoneV%VQqHZBdmfm|+<{&C(5uL1!=> z0MC+Qtt|C!!xd_1#IHJ6*G< zpKj#i_s>egXq8KNkW zSHrjbDsI!zXUF3fUxZx{Qq|Z{y@kzfE6e^6vlA)YGTv-dS=!LH#|wwc%4h|^6`=E2 zJr057@6^ZwKmY%sx&I5_mM|-QyS6ypjO}=voou*BFl66H5@BiFaOD1HMjrjNz^TOn zvXwww6dN;$w%$owmD1iDl`dIT)0M-SZ){fl7+C4V2W1d>jVW2Mcvq6EdXB&L!c#}? zJ;aM_t~+V-9ICOQFR$bTzF(j0v3+F!{rQ<*FRA3MUQof8Ik?KBMP+fV9cTWEg_4TD zSZ?kSmz(p9Ku~%3%?Cfn+R`gw)WW(HOHQWM*M^^a^WLZ4eCXzp1N(V)%rNFo{Vc`8fQdA&2ikKN&z$8$=f!UFlyNNw)*KKPb${8U&)dpanzK?F9J42>gSd99nW zbBb*Jv`L)4wL~Asm6(oGYbP0AM`>Yzcfrv_TD*}~9eMisky{RX-7lsX)#1o1s?fin zZ=@x<%X3G@%H|R>>;yI)z4pfFDKBr+M3N1MLNmwfBwhb*D)gAj>KH$9@IGM)b$w1P zX(29LIC9t1uiyK`>$iU4$o*{TzA_Flm#)u`UPk|rr7V_$1XifL0~%w${T&CPWc9aV zG7_iGF0>geuhTS}%^crI%4bGtNCizjHOH@P14|NP5p`t&2+MO!iUT!g9uM<*rBNrK;{>DEPC!cOv&L3a zo^vOc_!Rp#B_l`fd~D<{_UoHgvQLy6#I(WNWMip zb8&^~_iq?(CWARVaB~GqdV8!lQ*nOlHM_%c`g29!X!seW+>+ixnRMH(3_Y#TaP>J{ zWhN5x^O1iNRGU4W%&x=GvaK}63 zj(6&K6~CrR4@AY?;$xb)hi@Omy?hl^=*$I9u08>w2l0i(TCXW4@W5|LhanaEDnClC zM#TL*nwI*MdilXVh~Az`@iRU7!Ht#G1VL<0nY@);K@$(L89DY;rV!6>FpF<S0NS*Lpy|tHTVXm zUN(#q&K|Cv43MOz5zHt&$ zIa)8o6t;+(d08V)Pz=stjXI5toOmTfR-7cJ^Lj?RI9Z&+DW_(|Y2x&(n90Fe;tZ}Q zry{|18_4r4Pgy?zK= zhj7LA$I%wMCO_TabW=`01gi#IQ2!l7gp{^;X}?@5m2>tm($nh>fmLQ}J(VNr?)9}( zr?j&eQlq`7I6E2F#ga zHf`C3Q^g!{7OyC4Ub6?N*}2rL9BUEtXoou7F6N5`)QXOM;%u>yBm4NF<|1KGW9M+D zXC1lnT(0zHEzZw6kF(C_tY*}{gEkH4YPj^5n5`l47Qd&Ic5AFrc5BJoZb=2(T@cvr z!oYSHDcgyQNg-B4bGFiqZ98b&r5qtG42WgE_hra^9mkpj1ur;+57c7gLSL`7A+Ngu zlX0Wc*L-hHUN_B@aJkY=v#*=UluhcPR_Q_KGjHTQ9H}VTB^4xF5lFVOSTa((f$^if zl3#*RL`pD8NuPE-xD|mm5dr@}m{G zeB{`<+!S!RIpFg0@p8FEboxHK#<%zsW$|I$aR~QRWc0}pqf_!mpCY!3Z8VM#j9Y1_ za-(+zjBXDYeXnHn3T5RJq?KFww<9aA6jue2CGeZmT7^Yd zQ(f2a&&wq}dDRtiNjy-U6{v2fXJZ*4&9&utL~3|J_*sT;F}*Ca;W-?<;vf!f3?b9k zi2QX6V}Bsk_RU&sUl9B5A-q_FZ)1iZ{XbC3jQ#2KdT&O6V_tqZ4H|i1n!$IO8@|U6 zl3&Cke4pRDzJxXSL0+S+4CG$Xr}VxduiFj6_A|f+ALSxgDRyzJmedw2jn;)UD(8C| zm9x&x&+4ZiOWbE2@DA2!_?9LT0Vvv3Mgi_qO1;b?p;YYz>Xo1$XU ziQUw*Ooms{1w4R1h(Djd;8}?IXFrRj^A|n~Q@WT}R(K$JsZu~0xGPtdAlj@79O+Wc z^0P%B$|u%xLK7b~aj>Z=Dl#HVR%FGnpE9$y5v%48;V(OCmMs{wwZCUI&!U;B`Q08n54;DxgR;s&ePuB=wvSS4vV_Vo@Kmx|*VFLmZKs*%0!w7`2lhBcN5QBDimYrFI zQnyXwR}v?7YCDPDw2qzBu^SSb#6}2k$fFOp>AQ{FI&IUYjj-MHkv47GICj$i-kI5# zcD2H8^F^Pexifq3x%Zs&pXcn?e|+{lfOX=QCe)!`Lqtad8U=Pb*#X1NWbO1oU(!ri zM#@R#l9p?vOwY>NX42?)(q7g{CatWoBY3tsJz%FTE4wS_^*On8VpD#Kz*XVG@<}~b z_L$vo32g7Kxu@&THM*+p7!d1-A&MpqF&$H&3oI(9-0x(`QpRv|nT(V544yP$d$yAn zm^NT}H|4DC@cyis$yix|n-+E-F^`!>(o7E+yZVk;{a(kS?tUj_^qEe|PB=LuHQZ-< zwwp=jTndJ?DIK4nYaErtjAD`@ z>|{cqd*PzmP?{uFB54-p=(qw`3PgPddv^&uxUlvXla~nvUsDW<+A*i97;4boTfsi=Qv5j%-F^rfk?viOo5dZ0bXM@ce@q~G%VDy2yFsw73aHFe~#vm z^X#N+Y{+?s_i-ek5vBVGYMN#RWvO!pD>q8-Bd2ymu~8P92-EMPO^WoI)RSkw>6p4%z91JlMwJaQl750#UnH2XtY-V*4oJ*mo3U zb{o1hyj{n3sp$>1IjBKVpn)jpO2n`OJ2mXmu^TrDbW|f8hAgAp_QC)sJ%R38-XI_@fjv&lznFLBwYHle$HkZ(0Y&n2i zG~BA=9eAfeXEo*udZ5A;gIiXcAEnXi2KL8?D8}~1?ifxJ!N^Obeu+)B&>q@VI4M((6dM} zg~>^X5`jblV++f!8o{?Ui2as7YCd?j+ zM)}J+?#BZHS6atqk{_C7c>zKnS<5_&z*v?lD}Z;~u16pCQG86p$8|g;eb~b4T>HsT zCyORO8H#vz%8H{NzoO$4_*H?~DRa=GH2O_%zwI3k<-*M4+G1se(WOXR!J{Z1A=_i8 zAAjk|d&WlJKX&$kvCltr;h}q9I(OHFkDk2n;iq1H>`4ueP7odPc5fZ;x1PU%Co?8y7&|QQu#?zn zrYxB#kLoysv#f{?n=bL0V0fj`cSZ3W6C%07?X;*eD-p$c|4BYYisCC28|Q4dtjylw z4Cy_Cuj%+rNw0Lb?F^>!)8E$dJMz4jb5-aT&7?H->>;z?QVNaYcLi>o*eO=^u`zsI z=KjB5lJ@&RF6aNLjz5$0=T9`h#~w(V9*d(WzENh_)qSp{ z{ues_Qc_oPre*^6UldqS5yxzE^qH<@Y~;T%Qa^*g*6}xz$}FC-px>fHeM{!Dm0W8S z$tad-_y>Wj3jpe3CuqP-ZpaSgQcM%1jb~)|isCzTMO|q+Y&+5FN7~keMW`yEsp2Pw zZ{vatB230x_T<hHL3(-v#+1xwg8_2Y7Hph16 zQhio-uSwQewRJoFX0q3$D0m+{jChA_^18c-*Z+$S9M5rC$Y8k_7uZpIw~G)8&B(Wj z-KNwM&6Er^<*_Aj`lqafwUcCT;`YjV%5X&yr2+(ptUjZU&Z-!FTPh*Cb;Xs$;)jDJeSHgq5vlt|=ID zyKTpChs*&cN5-+`hGV)VB=YOIP;+ysl$m8x+W7L*pSf`Ro%F`E$NsFX?3Kp)o#!4M zyYuntV2NZ@J$3hFl~^RzFd(s6RU}9s-_?q-icYQ2#Ue`)*==DFGmd0v*@arS7{z(1 z$g0uzj3m}*vc&CW4O2asmys(eWd+t%Jw_qSG1yW(3pG@zNnY4N{X^)5nD^r%qEpx+c zkg&5iJbAjzYZU(TU47qCzR@==G!7{rMx>&%s)|4wxJqACk-+1x^>5W%p7C`>kdsM~ z-%&%!Mb)BWrR3euWTDR-s`y<>2>-xM$z$AHbbQItBq;kuSk;t97IPhv^ask|GfB}@ zc35u`WUYo@BQ6QOXL z|K`5je%Pz3kv@9nfNShEWg;6%Gofc?Sh2Un3ccd<3->-gcHgJzgEz9J;(C0a>z4=a zv_^4bOso>CHL*q)9fEJpib~2r_P$2B!VGFWzB@6KUde;IDk$6EW1E>y@OumMx*caQ zSJH}byS1&>dIrbg5_~o>~L;p{bEfQ>?h>MhURP+eUsf;((<78c=ccs%-Ry9a0 zR}=IV^T%;r2_~AjnRU>_QyCF_OkpnjcTY-9ATGZ=!%g;)H}AU6!Uk++n0=hzsnz1 zCtuCsx)E$x6KQXWj9}{sx}U)H@jdxT^U2;`Iq3{;uEUy0OXPV(h2%{wco!E)0W2Ox zfBP8>)T=20>k-BJQnCbmgon8w&3J%c)_9QLP52mA;^XLKJH87KV<%hd`|$_{@JS_} zZO}NcNz{pYuIt1M5fKd>k%_#>Quv;b>f$q@i745Rz!ps+Ms^4IEvYF&M?_5J=Q?Nk zPcGq;X?!vr^{-)(hNZ7zo`!?3@|C2NcT=5|x6n9LG8fI`WiF-%G8gec=3+)5bKEa3 zrKE`tagtX_<~(Ii*~SM)ky_Kx(lCO|SsWt<-#voc_Q#bBeQhkD7*|UjD0MUjQ{M-) zG%CH^w*Luii0_dz`~@qdX4C>-HH|He&qF_lg9lFI_BCY$sHfZZ2Q=?yH8P41$|q8F zEe&Vz5vsOv$tWH?OJyMbYb}lOPmba-X&t^2*F%c!1iAVgrqX(@z*A_$(^$pE_;!2| zx3cv)h-Z<(DGcK@KEw|6BRI0)IQkmel>XyN|5NLg{%28vvpLbnKx+jI%ndPcb%=p$6b8gRNxvR-Vm|Hf z+FS6dSimRpN8nDeko-vBaT~9a@7A`{c%rTS6hzzNQ}}G#l2dr9ttD~_tJ_){PGPT< zzwbYMpzly}T<@>V%dC|g`k%Kd&n9KoDqmPoW^yFGn>3wP`PBx_l}Ml2z(F&oH*;b$ zr!@1!=H{4KB-$Vpgulz>Bp^Q3Hi9p9*R5+G!RZrRx{ZJJCvLpwYrGn(x4rx#uXB$N z&wYW{b?xzU%D2p|U-ty&w8y`s?q)=IcS(Ev%j&M7Vcne1ax!Ums*7Y&xjnaQs62uhjVa9Dg(Zw`%;-SrFwX z`Gl0Pnb&|4C7Y*&B^-y8=5qW({O{E2nH+yJ{`YF!bQbR`P`Zzwgp_XQI5-oAI1VWd zavV}R$Z<%ir-ag*JQH2W$#eMjf%re3#@LrBwR+`ieHe5rm`JZj?ZFf6yh`A=py_oi z*04fMof@0-BXs${Kcoweh{c>xCzdF%(~iVaE;2|$1sZXkxSpRbbH#GvT&xf)IeQsb o-M|>NPOKLj#3s=h+-)wo+ZNn)(;)VUy<8XLXrI_G4xr_K0p2zSQ~&?~ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/controller/MaterialOperationController.class b/target/classes/org/springblade/modules/material/controller/MaterialOperationController.class new file mode 100644 index 0000000000000000000000000000000000000000..1707147c99613a35ae40aed8f90f9393fb1f38ce GIT binary patch literal 12284 zcmd5?31Af0dH$XbW?2T17J)5%fel8SV;f@*0Wmj<#bE>@2FLbDJ4l0ecb45*ft;&N z3?a=$>Z5TJr?wl%ag*4jHL?KLPI|dXlip41wn>}B!jK+mn;wZ1r~TfWncdk-D@>Bc z7Ur)k}TSn4}=Mq-d zNSdydvCV|h>!jR_lSo(@W1D|(N7~AmuI;2Y zDqJlP@nq@VA#kj%HtlhUPvzE>SdkfY$|dgJLGET@wuWnUT!%RV*OU@d{^mMP!Z6de zu}h#KZn~zxvWjk7V>eH`9`iJ`>6niN0t+gx&sx1XI(g2u6Io+j&h6jBD*=rzxQDLF zfU95^#ize>y@U_BR7L6{8K#Q`?)EvBbg7DTd&ny{B+P8~62mS6LqIHz;zr!0VX2Or zu}om@SR&>b6_`lrHd<-7gMQaS`3e!!EI7!@P>;Vsj zy$zijw&~ao26X!+U^b1HFq1uT29^Y!i=@=4wie}p7*p)+I(DH;ppls-F+>JyQkHQ( zV7vLm)wMa7>XnI$vhG2*hP^u8BE7mQ%8pxmWQ!i(5szXY_G`FP$6Ik1317140(I6Q zffZqs`)M^4RQW_(2qXVi1otqEm&s`9(a{Tf?-Yx^?F?BKQA6eI&Ep7|q*_}XDw~Sv zFi{^spN4)NHV%%F4hu@HO;li-^nactk+Tp2Tf+LdxDa6G@X2*Mbc6(w8d5qO=?F_p z;VmdG3OondCr`tJ1{tB!{1F_|kpW>#0{l+1k447b^4wTjQz>t+iP%ZYHD$gsIwWCL z8Rc{g;xO}AS{-$wRy|WfV*IgLsD8%w>5>CvxiF;TUc8Nb+@tJ37AJ2&j9=98ZkZn&vgV*Ai<|p& z9K|u}GV7Xdj&3%mZC^S1my|imQ;zF+pClE{rRhUVCmnIAsQ2smfV{2C6Lw_ws2`*F z5I(HogpQBkmw85MSQO}cWsL+@Qg$5~ik)`Wm3)Qp$xr%z9iU1Uxk~Z%fQ|?85R-Vu zN;-pzFN)RbZ&zzK$S%o4?)m#-V3(ocVSyW}v&EKz3QD<#s!7lO- z*94jiXxWi+tv*?dX@h1WXYDv3Fr%#_T(|fu6w8n4cpSejaG7;Pc0^^iCivBItWeKW zh%CiVK|4`Aflq08QpcwyIJH$5*R#S#nstvVE*o4sX~l^7zoFwZ_$)b1ngbTq&}+JT zZMQ#A2o-&ObvvmZ&Np2IPqPy}|Kf>P&ptc);IYv&_m6(=qvswxdG3QxpMUJr8cqtV zDdjH!&wOxLM|v$;ta=S_z6jYQZ%6T)_$>|3>NthrYF(&DKxs&A@}!;MnL!{UWf?Ft zL`YfSB`nwIciptHmH)`{kT-T&*)+Yu3YW{ih~@t3-BHIWcMYxZOYH6_MsQlg869Ww zyugxD9jHj@aU9p^bu)>)JNk`3<9M~5vfZ@;^=

>;=52;R`yxC=EWl;GcGC&>64{ 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/controller/MaterialOutboundController.class b/target/classes/org/springblade/modules/material/controller/MaterialOutboundController.class new file mode 100644 index 0000000000000000000000000000000000000000..ac2d44e62dfb5e9accdef5209e8fbea4b978bcb0 GIT binary patch literal 11737 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/excel/MaterialEngineerExcel.class b/target/classes/org/springblade/modules/material/excel/MaterialEngineerExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..552563a01c393a607fe32c3d11ddefe1f30c4af2 GIT binary patch literal 6798 zcmd5>ZFCf86~1q>ACt{&ve|sVv_MO{2uTR5Ew(TVsSv(G6Nm)C(yE%th9|RjAvtcjc0OZellGys zolW+u<>uT-CTH9E&0NbU>P*;q%gs2s9oD$bDBf4P{GiKOQ~ZJrIyLgE>9%s`Xl`iI zDb5Xnv@rzCwG;1Sy$l)SAg+CAtJa}7P9(}SEjWOLdA z_y43$57EPTqwwEZ9_E%Z9u;WrvsNdQ`!vF*_^NoUxow?}bb&1lTMq)qb&u%usiLlk z+o)3y*F}KaErZUXn|0d4)%lx~WIcCs=G0Y`!p-U9H_l(5)89CC>gM~nN|EIBvDp(Z zmX_B}&%AvWokV6&V;|boj>+*MJHK1TFW%>*t?V8PO%35w%78nXLHxS={+l+4Si}mq z)o58`Q17>W51{?FJL(J%Sb5YXdMqyA2ybt-qDG;S55gs0nW#rdsvc1&Scoc=qNqJo z9JHQ_L!CiUtTTyJov6)QGjkb<+hb077gsF}sp7b!b{@CELzYmDvR){QtGF;#YzfU0 zQlV`UQ15nt%SvRqvQ7Zgq9sHmKrW<#ZxgsDX^;zDc&P1yZ&Ccd6LV{M|6=Dre56sW zq)BWcb0)Ql2~y8q!l+65mg%AbR@_?fLL{c7hz`0|daU1?Pze|u*wx#=8DZ~5!sqS6 zWR`E(#eg;>D#8{`lt(9+kiiHh;ICqR(;0CMQx=x0W(TUadax$2|Cyl zb4JT<3$S0@!gQI@lIl>Tz6>&EHw|L}qt6l_4=}1i-iLR-0ISC#KhaB{qt9~zs{(xi zYD}2bK~DmNX|p=W0tgdmb&I0rkf61xPUhW6u=n+dTR!zaHi0FL0?IxqEg#)#|V9IJF*?(2+M*vGlK(z(mm8AG#=b6chJgTBrft$m!0 zO6Rq{&KSXcoEKF(KjQ0*QQgP+o=WFOeVsAP`#9fM>Acg|8Q+e4oR?KP5BfUi$U!Rc z3^Q@A!8z2?`7VY1^RrDNRDSZ@l`UlgenIT@6vLf7?N1qRoIWx=1adA^jgxhcw4LFxKaw#}DPwn9a@P*6_#QyTN7l#NqS-YqB(_){*LFQsg= zigJmdJm^n(&wMFmQ&yBq1?3@s%KPR^DOv4U)39 z1?L55*;AbzZ%{CBq4T$-y+*;>3!T3qt$$_56>1kt2wgi?;=>Gd{hsQLzz5VcO?sCR zxI&*OB37G0KvtU}BgiqK4=6rOQ6p%CJfJmZ7@#$#W`sFNQ=qV+c|a+%4xp47G3q!d zqCj;jCOEb)%kxbOnOs0c|j&0BtZEj3@^+C{WaB@PIa%jR0*jV@4wf#T2N~ zhJN17ty*}*%3O5y%!?@%hH#itECS16nz;|fVQ$;`U<2V z^|Ky21}Q{YmY}af3R9jfp=Tj!^fKL|3m8l(tap+D1ekm~6={fVB3q|;yM zU3vjhl>SEV&yR2*21GO2E1Sf`^fIJ2`X-+L5G@UB|DuL4X&+Ksm}>B+u@7mX6zl$HBB^3If?^5q zpZrw)twpH$Rukk^!rzd0n30o^+-ZuF5TA*T;(1t+@u(<2{MH2(Hm?9LzbMKt9!sqY ztQSSLD3%&UiD|LUX$p5;p@Ap4ezh6k1|y&>8ZSI)T4M%<2{k92G$U9vrOc2ph2~7C zMCsLShJ^`5sJy~O(*{!$CT-4y(v)7C%sOF0RVuH#qG_uc5vItT3AHM{wwv|BgfdlL z^+i*^sSA@nXVQgfk$(Xkm(fxMP|F(WG<^%P46-P_0;z@~OrtXhc`e;fe@7zo0_aBS zo`n>o$LLq|Dx?s(bdFww6h;z0OW%Q{;d|pKeHT(4{f_$SdypdZS9$F6@oFa_g ziLk^uFDPh{&*$d`YyJ(Gf4N%4n*feAI8r#eacsb`3CC6(+i~>c=(j^b70-#(w~& C>^5)! literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.class b/target/classes/org/springblade/modules/material/excel/MaterialEngineerOutboundExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..67bbe0de208f5b7bf82e416c86a291f2eb80bd96 GIT binary patch literal 12624 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/excel/MaterialOperationExcel.class b/target/classes/org/springblade/modules/material/excel/MaterialOperationExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..9972f6302ed1ec7f91cd43380037c4589ca95dd7 GIT binary patch literal 6857 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 h)(L)M|3nEdF*U#h5%?Lew+bDnR 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 OD1{+y5MAO%vVINZSjqPQ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/excel/MaterialOutboundExcel.class b/target/classes/org/springblade/modules/material/excel/MaterialOutboundExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..fb78372e9d9751b3032a77ecac5dde9eb90305d5 GIT binary patch literal 9088 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 gbZBGd(ju2#xHHF}o8K+rw + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AND e.engineer_id=#{vo.engineerId} + + + AND e.engineer_id=(SELECT user_id FROM `sf_operation_site_employee` WHERE id=#{vo.empId}) + + + AND (e.name LIKE concat('%',#{vo.smallConditon},'%') + or e.code LIKE concat('%',#{vo.smallConditon},'%') ) + + + diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.class b/target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..8a5926ffba3f92b4c7da6ad5c293db5d510df654 GIT binary patch literal 1299 zcmc&!&2G~`5S}#+A*K8mC>IVOBzj>Vz)%T9Dj_9GMWu2c+k?B2y=(R-GzVUS$3ch( z;L7_T#&#W00!k1E4lD0^X1>{PcE0)g{nHl!cn0_S5D7RmHkYolO6N&|8OhRQp&%zq z^kfwlys0X(a(sRs>Rf3eI|)89L1*K}+=ndz*QYo`S)k74B$-m``*2Z!Oid{hG^NT+ zkmWoEgfDeyHYoN$uh92dsBg`ott)*6(sgX0Y z;MV0jnZ)~}hD`9PkR#=M%=E_OPfd1&7E9vGIRRT0ClavN6>GUT0tUw_*XV;~x6l8R zz|(&!#{u)dPiK{}zI&Ket}oZ|OO4KyS4KPe#y0Q%yE^Z@3uNc#4g$XYJ?f@hNqgnz zE6+b{e#ZwZm)iiB&QdBCh|4t^)>Z}<@ZfdeEG3;Nr;>seP4!%B<5?kGBLR<^H^U0k zQMl1vWa4_-VBSt4HnUR0Uz7W{Y8fHI^8Twa08x=be8J3!nUiUfbC-wY)Xf! z;A=koQwy~N;7P4K9vlKL@aplfig>v6;SxkJ;L{+2ZT?*5wNo463Y)LOHFmGfJyz<% ZbOUbI`x@*PuU!YXIiL-@19zM7y&s?qwx9q2 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml b/target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml new file mode 100644 index 0000000..14eebed --- /dev/null +++ b/target/classes/org/springblade/modules/material/mapper/MaterialEngineerOutboundMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialMapper.class b/target/classes/org/springblade/modules/material/mapper/MaterialMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..df55ae24af523a7157b2caf85c9d5cf190862c10 GIT binary patch literal 1665 zcmc&!&u`N(6n+kCyNaQbS?JMjf5Zo-0%ZbpAOqTGG7zqeX^`}p5jyf? zjTZ{}GrA_zJfkA8skx7@a}OuX;{@Wv_7Wm)n9B^K$LWJcdubq%97#HsMI@))#^bgP zAvVINZJ|vAgX(ZIl|O<*OmidOTK5UBQq7cvto6#Dgl2z_>`aE~y)b^bY$ zsz^40)-wGA8M?v<8EX1L+3L;9TkT`aRWbn(`0@9w7mbOBMwp~1<11@6j?RhtS3Uv< z?_wkm_^HsM@AIN3UWB1E*w&a50*`DdSi}ZHPKE7u%BBEnUt!`)W9G-$FAo1iV8i1@ z37W~VOW@66){AzWdL|u6jOb!b?V4#{bWuw!hh^qA z0=vrPDxHO9@-`0oT;YzGBW<48bF)+qCk$mR3{RyDFGaPuk}_3G^U3bnJ#s3s83=rt zk(jNg#bo98Way{IFx4m}yG0e>xg%=T92j~)6X%@;0A0$1>qa4DB?sa9YW z9H^pIbzluYSMk*FIB*TG*I@(U>2(QrRdIC#Hq-xkAMtzA0Alv!Ec0w1TFvo literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialMapper.xml b/target/classes/org/springblade/modules/material/mapper/MaterialMapper.xml new file mode 100644 index 0000000..842fa6c --- /dev/null +++ b/target/classes/org/springblade/modules/material/mapper/MaterialMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialOperationMapper.class b/target/classes/org/springblade/modules/material/mapper/MaterialOperationMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..1b349e272d441774e2a8e468fe98052e86aaf607 GIT binary patch literal 1268 zcmc&!&2H2%5FUpv%a-y}{tAK<5)!@O2S_O@Do9AX+KNi$JV{2WS56#kXWPB-0=yB2 zK0qa233cL>1(8Zw#DRn5pYeR2Z)QH9|M+$W0I%W65F!C@jLoI1tSa+FV@9$tS*^** z0zFxUnio|?R!%PWQ{JFgrksTHA*>0wJHt6jjb$#U$&6AzgzExiY6_X4DO6@^Su7HE zbCs?g8!SK6;=V;kEtG(#jx>9Bo;tvs1blfp?m;Av8G4i-8i#n?ORX|9Bj={e?PwZr zj{~XND=o*$`Iu==$RC^R04)~8*>M8asu0@d&ulHTBVcr>@)CV*IrOvt8v4$^Wn!19 zZ_#OGY_~E3_WP)%rp#2+Fiw85q2^cRcH?tRc5!(@!1upLU6m!3Uin40=I_FJyxWOx z1z0`svsAMzb?q&#bARu z>YBSMq7wmM+dlnGd~u&l{uJH{1cOp~GbdpE(9|}i_eyho&pJYGh5o8h7Jm=|uJIV~ zZxrz-GK3ot!H9RG2-bPJ$z!82!Ywx6hC6({F%MXYOVcLYYt{|eeI5@SJY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.class b/target/classes/org/springblade/modules/material/mapper/MaterialOperationOutboundMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..2efba2694d1b2380951813b77ad21ebad7c5a59c GIT binary patch literal 1356 zcmd5+OK#La5Un;Dh6w?}pRADhNMS=Czz_+>eJT`9|7PoYz-k1@Y2{)y2h%y%rq7xD^mnb zPFCp2D%AYbG-T!Ect7P0dS&Wq@RPe#0K*Nk}BFw z;*SF|Mlso7jyiDnC3Gm@eb?7NnKxZ#uV0P3g3#!&l`AP=ea{4&(+j2fp7(kOLN_=b zw$9{%Bj60L0Z+Mvhtd$vK>{P*jS^Vr&v{-OEeIDFz6h82cnc5M$tTcdxYGW&WLJ4z Qb8wvly09B?Glt*#2H{uE!T + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.class b/target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..9d823834bab69deae53e209a862d1828f9bbaadf GIT binary patch literal 1257 zcmc&!+iuh_5FLju%a#J=R&H-dNc07NKwu>hAR+B)D=L-eNis^ka^m32(tY3u_#}k* z0Qe`w#M>6MLCPW?c(4+CJjZj+`1sq8&tC!H8QdE}B4BK6DP3b#U1k~!l9effCMPTO zWEE=uX&SO}dODv4pP5h>)3`i@Edjf8T%gogmvWZPDfdITC_v_>k{Oyx6(-1PnW0y% z(ZO-R@;NKm7wBjOCE&gz&DrZG9bicUK0coG0FuW7J<2z2LOSUs)|k1G3)5kCG)wm< zky7wV%ZYM6Ws+0!$EG+yixsgnPQX?ZE89Jj>P#8|qeE5J=!50Lzx>a_pZ=2!W9Gd_ zCylY4rU-c1$168=p}aD+lkaTo_Mdd!c^}9wPd5no{`aVxa-`ZTzwEU8Ra{QTo#HmY zrIVa=7qMMsKmiZm21c*wNI8{hI=?*6>)Lqs18XDTQS1>mm>-i=(IygqZICgG!3GP| zfiF}-9|U|_-O%4mm-hK%-EbT5ix%nAO~Ce{2{xzKN^^M+*8RJ(_mkF9{45B#z+=Eq zP{L2g5H3LiBc6>C*yhh=9y@Iiu5kD&T;uI+c)$)k4_${F?SBh)lgBLww>e>zwg-1& G`rV)BTcyMR literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml b/target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml new file mode 100644 index 0000000..7e47ec1 --- /dev/null +++ b/target/classes/org/springblade/modules/material/mapper/MaterialOutboundMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/material/pojo/dto/MaterialDTO.class b/target/classes/org/springblade/modules/material/pojo/dto/MaterialDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..71afc5f6ab1cc396b89a885d9c2fcaf49bc44169 GIT binary patch literal 2141 zcmbVN+in|G6kR8_Gp^$_ZfR58J8cTFopdNo+q7;9Z7$Rhr==-If)`HgBYP5i#>|Y1 z@(BnbAt52)fk!H&JhT$DQY#^N0g3-8`3az`Gc!({ix9$>Ik&y{S!>_s_rIU~1Yip9 zq|k?$fp{7T^a~Unw{CiE*RtzNO<7ZB%c*sm$}?NiSFRSxw@^V#pG@N=oTBN5^oXuTC(ykmt#y(rUJ#away`qj-!07uh_?g=yEH1Y*-;77 z)gK{{z0+Z^TB>4s)>2blw{6FlK2^zgY~FHA?_*i7E7!bt-gKmA%1r^YrD~Qm7po1` zl0|`mn)0fy)z;b!%=#za|MBJ5>kpqk`}WgkpMSP~|A9a}#5*)^*=nKFT2k&^$y;?8 zovLhBBvXp(Xfy6NEW)@n|G!d&h=#oF(ccn;C|`0Fx~;7IhEuyOUD;C1Y+jr6olt-t zbhaj16g`22<2RHmuumf$*_N5X*|yEWMPF7|%Ca3%Ox(UxD$nwU62tE*uhaAytZhoE zMW^Fd)tse0mFcE4tKqE94{qIX9N+U@*$!EFL;aXZVHR@+-qcxrQ($B>l`Q+7v!bGE z2@`!zR(;1^75J(*Nh86~=uK(YSokCJj`;YS#|Up*X3L|1EAA*l)K zC0OGDk_#JnCWuSpPURnA@Co(-+d=g*N^LM=zl%UU<*55nxsd-3iTGOK7bL$yBDPle z8Oib(?H&x4`NCsl!x^ty7~|tgeEc^IWaGbL-+iRVv++kb8c4*~XfW2}nOxwRiSVKg zZe?7=CBi?5Nq)}}$XT4gW$wi=fh_%X32_u@YZ!)+{1bZ(B=`JCk;a6LF5GGR3RRn-f#o z-wQ`G#RgrF%oOg!7=MJ*A5Ifgc5Ph52agw@i2u&%Jj{=3}1MnH8g+m&oqJ$!)4%E@ zs?WVhm^4WJV+=-8yxO5@Jd0)n5ghS>M|9x0`@6} zT%}Y04ea0=opu7ib=;sE!xoVz#rG*{T()d|q>#b+rPfgc5PcilagwHO2u=AYg#v}<1MnH8aA^Z7Bm^lX2X32Wl{h%wV6Tzjr|<(f z^#B(taX@h8HzCBVZB>z=6$f(I$&P2}u6pZq(qzjYyS@-XH&O!``J-0+nIXID`mTD& zU{q`U9C8esr?u=KcB?fT1%}qYNf;@4DnEf0kVmnIWvnpdhTLzxj=0BAskW#54R<{5 zkDcydDu$|Ad#Oz*6>&}%XN9f|b?ST(Yp78Fgol$oITG<82Mnb!_M$I>(3Sp+gM9|} zgkgD4`k~^!>T@p=78$I6jKNHrSKH*$vuHLD!66@b1Xpg$A@};6oTYo3G}Xin86LO) zixExIuVhc@CuLZx))ov%vQ)vO*7Aol43<mGEKu4awrH&%RjcJg-Dg8>OiE2^K$=i_@NIwzEG|2^J8Pmp#UJ1k z5Bg#gAB?{Gn~d?!?xrE3F(&dbcjt2MIp^NFKYxGy2H*+md8ClGU=&~?!_bue$PQ+{ zQ;P|0OQV#yt#<-EXmgOB$RJ8X4%+K|h;;^Os|&PhG_auiJcyy!pFM`lj zL`I{@cV*}g#4|^?w{_9`KGJHqP4AP^)4?^AafRYlx}~s1D@W?c(78<+nc4?K+@P}%18@_!=*F-^Sb9uVdSs^dqQw^biN(q>;9Sfk2`!c|?h+%d0%^zd dX(Wsm4Y#zv{Wnf4;WSBM4;3n8s74-Ye*n=5)bRiS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.class b/target/classes/org/springblade/modules/material/pojo/dto/MaterialOperationOutboundDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..b5f6011bf3d493ed066e1ea6dbed7b0a0bdbd628 GIT binary patch literal 1120 zcma)4O>fgc5Ph52agwHO2u=AYlokrj2jDYG;nELLln|tp9Jp=bRpQ`ygS|$ApTZB| z)B{|o!~wyT--HmewpB%fmgcaN9nZY?=I#9a{q-Aw$7mLjLDqs%f{7eMTLvRLoCU5w z8hG3h_Eb8NCqjG5l?Yt!*)utjw(ym!-r1cr*`0}iD_8p6NDXAhTM+pyXpx; zwpQ=wk!M&xvuE$9TdP|rG8|k?grnry3J9%;0!k$;Vu>L?0-Lh&lyGPp*oNh*+|bB!`K zMMlwVoPd3fOK#AqKLgviNoOf3z&dWxjbVeplja8$bzQb%eWH-Tzgx4Xt+WwTrFq{| z%u;MN8y{gB$ITxoe1MrfZhl9hbHDKg3-PtlJi&7O&p6gha}>2$-9`eFQV<|+;|{5+ z(%4(1ID@;?w*bS+|H6`mLIL+EVKS;K!_XU@N_s?H+A>pX(PZ=UBxI{e!6}(Z6q+nW k+#*C;3F1!tX{Cr3nOoUeI}g)JF->CFMvWR7>am8#A71w5sQ>@~ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.class b/target/classes/org/springblade/modules/material/pojo/dto/MaterialOutboundDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..bac7d88c76e5c7da31d3d1dbae60f02cb1defba1 GIT binary patch literal 1075 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.class b/target/classes/org/springblade/modules/material/pojo/entity/MaterialEngineerOutboundEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..901a4b0ff6d421bea134f36635cd891405061dd8 GIT binary patch literal 14035 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 W7$JCVJQsBbH96k z_c!0`-tX?@t$!bXnTXcVAEUH{>cSMzC`chj%kA7uB0rZ)WoM?+=CqYa+BqwcnM+KW zc`Gr9+q$fia&|EaU7X6MoB>94D|#pEDMIyOifR-ijZuFkOU9lqq^*1+V>(tYWu_Bz z_I5jA397`HQo79bNjo!VW_OKDGin~)ZtgS_X)`;M7`3xA{rpXh8Z}Wfqd?N0wivZ~ zFcS{%xToFX~tTcz5rqSs_GiP6K<+x_4MrYDl zjAA*Ax7i#ob`W$FyEN7@R+pQ~lJsx7dqhwHj zm@d|^S-{?0S`JBwjbQP&W)m@40 z!F5+^bQRa}zK!u6!j+pe`jV?0=bMBpuh!@quH@rhTUvT<`m#n}aq)wE^||s|jZCiO zoxMt|pFv5DrU~7S%$oVxA+fO$StG3o(;1CsDaEKOWA3nq>}=9>Hl-YZvU$hMI(bHa z^RBd5H_tk%q5lswY9T)+v%91oHy@SiwRb}*6(fBkq9B#ACR6zoV(*e{)^tf{1f1M`)56h%3%4F#*!KdOi@TpZ zdEbMJFW$HK*v-Y}!u~yrhmI7Ri$_l^9K5sGguJltc}CHNJ04x!d;5yZH}x{AfA8V> zg?pZU=L8Ij^yI#M@4f<-(87V67kA$U{lf7B3r{_8^4=rw-M)`EZ#%Jg;(*%>E$q4X zotO3?#N}>i8ck)b4Ta2=+%3obo8a$FD6(rjG8r+u{De_?6sg;GX004v&L=$X zIkTFC!K-N&kg^k`MS{w7Q2|pYLQDcwt3{Z+hX8sd5#`Ey)f>J7QMV(!Ar1U2EE;4( z8u*!5G^mE45@#chG|8n}vZvyZESgkHj@5GjGE!qL(@6$#9u^r?OLmB#YsC)9M#F?- zCU=aPb84#x$2X3Qt-}(HAgFRyzL4e~-ig=ZWfL5VtLbcrm(N-dPJEJraXBZ!xSWDe zTn#uBSHsidWy1)?Ri}e-*~f@u%e{`COxT57(i%?jSZyn>a?a)FD5JzE_6=$)JCmBW z3yI9GDWtLdT)N=RSqU**9x{l_;7&7L0ADP>ZL3>NVGp|O3(p*T_vqt@%t70B@=ng2 zlOdXK3ehj3^h^3xm|o|{$s3H~rL#Ph-D&Tz60+y=gc&xIj-5lH_kcHQ6i||`$8maUs^hCo(#|6%IAq4g|LKn;m*wjh8u9_6AJ)+jlPa2 z<25tx<<8Gi_y~+%=Zk!uQJ(rZH&i+g_&TFt^>J>gbRP0`MrG^c++OLt-q#r=u#aaVi zrSmplXZ*hLaqg>hp7nLcZwephb1R**zRusEZ(%X3DplrqID$}`1^f5*R&rm8exD2jffuRpojv6^@s;FY}5lZ zY(({X4vH#Jy&m;|MvNFhBZj8OI7m|9%2`5jHcxj$SBKAzN9end0(2=mKnEZNX^icmdmx1<&9Zba zq%h^!EZqkwLU*$fx*t+K-Oq;T0Z37rXK{KEQjA_?OX(p<8vU6*pobwf&|m2v^a!Lz z6k2c7_aHT~5dDb`LTYB`&~x-Cq!!jk&(LF#TG?gj=i`vt*f`xm--p!BY?Qq}fYiYX zWYG^Hb+UVCn0^GQi#>#ol21VDX2(!CAA+Q_S1=DhhSWn(VxIQW@^Iu|)EK77`_vgG z1Ah_rK6Oj6{{JkJ3fjHM0|EY3S7ob+3B#WyLDbWw&DGwd;P2lDUlg zMP|WwMp-8Wmx7`RX<&VG|HXkdBG^xF?w>`dN1FQ%QF!${OFhz?d%&p`v4s&wU=;32L)Y#iwTsg6fER{m5`NM1rC>kOL!lH za*0&Al)U_H$`Svck^=Jru zI7Qg-QG_MVnxKl7Csnbp;C_lfwFxKzK*t5@g!r1%j=b<9>@Vf% eW%skrEA%Q55olk-^(OrWtth0o=y&u7(*FafG4Xi- literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.class b/target/classes/org/springblade/modules/material/pojo/entity/MaterialOperationEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..a68abf46ecee1b95e7b7ed916d36c16bc3f62ce5 GIT binary patch literal 9948 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.class b/target/classes/org/springblade/modules/material/pojo/entity/MaterialOperationOutboundEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..886c8a65772f72360df8530ada3def446b18e645 GIT binary patch literal 14670 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.class b/target/classes/org/springblade/modules/material/pojo/entity/MaterialOutboundEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..1052169c8ffb4191977dbf61f7a72fc34e6628a9 GIT binary patch literal 15388 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 Sx3b$%3P8G@eSzIc#{U91kOo!& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.class b/target/classes/org/springblade/modules/material/pojo/vo/EmpFittingDetailVo.class new file mode 100644 index 0000000000000000000000000000000000000000..67f4e7aea01056bf131b8806c9597bc767f48a2f GIT binary patch literal 3729 zcmbtWYjYb{8Gequ(ypcTB~I*AG%aoFq?YY;fkFW(4o%#Im{?ATgL}UmOIv%Rl~(Mo z&18lz440M@UV%Q zjzDx~_x9t zli`z2NKh*XWh)E>o=-<0v1NdZDb{XK!byiFVF?t^Z?!_FX|Fkfv+ml*TP-h?p+f@% zlt4rJp|rN8>(nE*Ra3V4(xG+MiWi<>aW*OfdeaU9xk2Cd-Tvu2x8D4fQ~&7w*Y5oA zuOGdC~Pmh1AY2XDWA_0Au!-+uc?@lm(lc=ung{Jj6T z`DMqmg73)o02LEbvvl}PFr~{V8#dB{LL%3uKr$N z^yZJR-uc1nH?RNp=4)>_tPm~E;@Gm&ve^Ucwtqn~c&cl>nsnDBdyVUasfC*kqq(sB ze{?5J90~f%w68ZhDPCg@R_$=ptDlp;Y}#yl9$lbluSurTCDrMX5+&6My}G6*uKTK4 zKyXf^M?=z+0$DHIw0-JO&Q8m2M~+7P6k{v`q({wo3`w(MP^2a5G1`*SldvWtO?_j8 z(fgR}J1#xIskOuj# zgH3(^XG2*CaiDll7`!k5jZa>ye14g$0tCLo|6>8Zim#C|0% zZ~}{bvzl;-&wk-QLw}c>X<>7qFmKuc!XrC{#|8@X${ZlPXQ%MQKw;jh1BCbO6rLO? z`~*(YIpuSiZ%qN#fp>c|OY8k$<32)IP+X%P@}=wQKl%2XU~RCFEc^SIjC*?n6vm z#z-++%%wnw%Q``a%SKUGAR__kMI!|&m4^u`mGi}61FEHO5|O)3YMwQ`=64xgv2k}~iM zj*|Mu|_){!2dmk1?eq!=E8O#yv4P{9njUHJ)KoH1)ZhRHGU# zs=%`<8_LggQ^yk_uJ6u7P_v;*Yr4f)jnd2yRkGMJ;wMz0Q&D@oa#UN0l6hdfvdL5$ z<8zmxAGwD4mlXeCSyLNDE!i2svA#O%lOq;gU4{{Z6?GBh2A z5DYkk_=JMJbw)8Jk?jCF7_Fa`z;Y>A54n?@fc1WG4?kdoBJ}Zv?hJgKKB=)jrNXXK s!vA6ZOE>TZVCPUwUj$R#$h{a9$4iiW8`QSW|0XVSl_%9;WIYr=1sfzDhyVZp literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.class b/target/classes/org/springblade/modules/material/pojo/vo/EmpGetFittingOutVo.class new file mode 100644 index 0000000000000000000000000000000000000000..71a15bc25f656f11f6f3c385e9c2af008a4d66ee GIT binary patch literal 3013 zcmbtW+iw(A82_E!nZ2>wE`_$N6fIh`R~8jex@`qY3&m{3u# zp?KETN;5fzj&$8}Mo5JzX{#-YcElN?IZbfgShUi*O+LjP?y}I0q@<)G#M=?YHf(1I zWw|-^W|PnG?;r3;xQ! zKis{&wsC#!&+p%2*wtwC%%x(Z;c!M@Hn}L5NZou>7-Q*&sVcXmstHI-VmF;thpCanjVD)=h1$Tv*adXE=c<>($C~W06yl)7d2| zBCivw;|~=;Q(KTrr#F?)qeBw48|u8FG2ChzSfs|9)kNOPo#G{4(5Qtens$<`qU&_u zHn$Y()h$K48WEw4yQnNQvp;Gy(i)@r;hh<7b2F%x$ZI8rHkpe)&xC2OTzDy4D=dwZ zrNiNBB*rp=XIEx<(TzwwwJ zM%`3~O$D%54noSrQOgpt4~tGp?DhaoMQ|DmL1g5#IK$9apP9P3YOQEV$A~jPrg>Ia zrArJSdq;=M=qNqG%^Z#EzO-enl#8j&qt8QW5R?twg8hPrzdCL`Bv-{GH;jxfv{VR` z$ri7M{#x3`*>JBH$#FJ7GkeA~wbG=)ZCkU0c$Hz#CLmhH7sLgI$N!s^66%0~-8ABT zG@5<%M=v{C`{}d=G+yX8Xk!S&M2LZHL!IQ4?<@E*Qjy$SlSw)<`#dr=Qkd@O?Mv&k zBqhm=p6cK&ux~1Ao}*P>17SQ*Yt&)DejK0^RS|a3+9>=jf?w064|U;KOJRD45m&Qt ztXVkTLf8rNAlZHaFS<%b=_z3g3=VyVU~B)o91hoi8Jh%{;SkBGj1F-+j3PxiO25)x zl`*N(?}^HRWV1?{2Zk}?cHjz7X7<*N$ZN;{aU#;Yos39hf6+5Y&-~Efmr#`(Lq8*Q z6{`Qn&`$`>4iDbM*26MbWP z@M_IdmHd;Qy16`D$pU@$5J|%O8>vv~IT}xmDdQCod*Z1)K^Te;T|;o>CVJnH^qx^g zUL+LvCM1EStDe???RT`gZuqGnrwI<(R|jx{c0NR~4>RPNpM2@YN!lqDa85#bKm>)r zVT=F)V-JX_e)dU1C)6rKl}BkL5gXZixz>uZA!N(8$slDwYm_rIx0Sb{+iKpYD^Sm3 Xj-DaXGEcv=I7g=l?OwroyoSWTu4%rC literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.class b/target/classes/org/springblade/modules/material/pojo/vo/EmpStockConditionVo.class new file mode 100644 index 0000000000000000000000000000000000000000..06b7daf1bddfcf00b1c692977ab0d336e7b0d4e1 GIT binary patch literal 3765 zcmbtWZF3V<6n<`+&2H0e8v<=fK?F&)uSD^cgd$Li1lxiXih?g}leJBo?1t=?8T{sq z<2d?7Kk4`bRu4cGqqheHZb$iXu-LP}BwfdrKm)2)&t6Xs_wzXsn zBu#6jVwq;6SQbdnwfA0hrOATatxre4+)6QP^PYn`bvz~2lT@E+A7M<#I40;9 z*|VX*?CP)`ghtw#(s4*CXi`B&M>3z*@r-1qg)TXxTiryJ|KBx~0cizdMp1FIecFAm|5rV9SZ@3)Uo<5|bi@EipYn0aKje3wI<@|->{49MdvWFU`vr*-p zqy)#-vaKWbWW#4kWWDP`pf9_{zUJC~N*KFEd!tb@Pgi7x>}DFa-cX0+jl|5Hv~AaM z8%EtvpwpkgN)oH6s92M2vo4TrUtSgKhP`g){9XJ`I&G9(yKz(Ci*OzTpl|eyVU>Av zX6I~seWP9obx2S_Ax?+l#hZ0A0)91wZ(d#@R$yX=H|S!;H47SQ0t*o_7;T4jT1@Wu z!YYZ5uzCz$gmMltGA+gg^rB^%jhU+9IHsebE->;)oTA)U!D8L_?@*S5A1fT-wHMhS&J_%c^H&VsWt{v*V<9_%s-Kw05ROV$Lp`6;PoQ_oH zD;A-=bF1>MNM*iZ5z0ebl?Nl0Phpmkkpatd_OdrV@dMQ8a1Z*3Alx#VGOq%ssjmnw zQe35(8k0Fi2f;QQW`#E-CiQq zjnBFB5~(CM*-V#7_24J$!Rw@Syuq`bKw8!QLZ1rl0R~mX_^*iv*zJ?u|4lZVWR8iA z%OANx`5mD@vhNg`Q5lBtMdgRVZ#$(G28GVcFa&M4;FSu0P?E(?7Jt%&Mnj*Z3P2{M)4BIL7fE zehL$F7}rQ8;9>{{Db-8XA4onVBd$Udf(hbJ(uXwBUdJS307?_k#Kb#U0W1-MwUJx7 z0a)z>xA75zKt+2*rL7e$qawq!+e| b0!m)_mDwR+Y6RZpSB1q@l9Y|>aFF>23pCCb literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.class b/target/classes/org/springblade/modules/material/pojo/vo/MaterialEngineerOutboundVO.class new file mode 100644 index 0000000000000000000000000000000000000000..662900cd5fc1d7120214811acc099980a5fc57de GIT binary patch literal 2515 zcmb_eTT|Oc7(I(6OBewT0TL%PmxiPm1MY>ifJ54ZKq29hhQ!RY)0r+t0|p~eNv6X; z>GTJb7arP~HkrvorhQ3g`X~BFnxUy6mZ&Su%M zZEvL-th-fbV>a9tNZu+t<>0nJVklc|hlzFrDGMF21ZLhY(!P6Yl;Vm&s^r;BVp;Cm z0zHe{a$n{v(%H4?g@}%UHxC0j6!6gB+ zB%RrBtFj`{*XVC$ecLVth3uEAl~*iWRmw?QY5FN#!xaOA0_kIDA_Jv;!@_$QqU$Z` zGv5tj$WARNs~a@&!;Tki&o8^qlZAT%;ywYZ6;_m$s;v_M^(O?h$V2xcxv*T_UAMi* za=jAv#VyH7QIbDg$3iXGDifO7#s7f^1!mi(0aSEqCLg^vDBJnkiT` ztv8fl1a73ya@}T9#ZU|AZm?y00^O>J!A1_I!<{BkSEy7cAFU#t21(~?AWJ(-axVr) zfB0x&X_g5ru$7+eS1W-)N0ZmoV1s>X)vbCZd#Y^E5J=zxhLMB72v=uP&wS^(%5xMP_2Fj_KZk1X^R2dlA$-8M6)E6De8d%5jI(?<8~+01CvLXk*m$g^ zF|WNA#+`2(=UW<&<0eC>$Wt6uxyj+&uP|EY-5+Vhd8?Wf5CR|5PUjIonu||byX<^h zmkQIm%kI$SM7_ibW}tBF8h(m2pWf#<2fSHpBg$QMlzH{iTGjfRqruV34gUyTJIehI z^9SgOqug&WmqzIKVz?a6J;UW_#&F9cd`)Sif1o3yy~LSASfd&3Dc-GV^iJti>77bu zbfuGgiJn7rX7o(5rlcJ)YNDZ~*|00~Q8sm4JxsD6{F2~n6v&Y_jNu+`QI^0sZu6JH z6f}H6ir(f-#~Lo;Q_hn3jQ+18Wte}X%YfPb3jGGI@!u4$a6X#0*U_CMx|;fa#kfo| zrs9CE08yznvM)+CqJUmcRcC@K)tCZ>uwVRaQKXRmi!RhhXgXcE#q)4|TJ>#tAYIrZ zjAlA_2xIgqvfn6q@06xCGFrT2DsZ_q&>FPy$Z?!Wf?3?bU4}KuzZuTj&`F^0QJ%mJ zvSgMsEd=O3wAVb;8UYf5nDF!Xno7s(HYMnTUQ?*)Xw4$3(QGcn>2u6;G#P(^&kCCZ Mq&Rzo$0#E6FPS3}IRF3v literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.class b/target/classes/org/springblade/modules/material/pojo/vo/MaterialEngineerVO.class new file mode 100644 index 0000000000000000000000000000000000000000..5e4145c59ad271a64d572f6e82374b067b29388e GIT binary patch literal 1069 zcmbtSO>YuW6g>}S7@*S@v9xOas9Kc)b=HQ~4PsIQVuG@8_kb4|9OmK7qlx|$e}F3% zy0M81qg#KIG2S;bX^1t(L>BMPyPSK^x#zy`KRMy;Uxbk-gBM4S7}yhr^`;CW#RJvn z{z91KqW&=kBPrf&lNC=Fvw;Yo^MOz8%56F1exH+lbWf9pns^bzVf#PEZ;)ywdrEJM zEUr2$V<%ZcFsT)s@q@vXY9c}!sHgbwRfo@0Wu=Z#6FGXuLp~F3T z{Wnm>6*}z%fUCGhH-t9jm+^v1WT70e5Pp}z(8B5KyLgB>f_L4R!1vSJC+$2>M8hf7TV`r4nrwBRglszjoRXPDp~=#Y`_z#h0&yq)G}4Y1 ZnOi>C{aa5f?P(Ij9Wq`U>%7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.class b/target/classes/org/springblade/modules/material/pojo/vo/MaterialOperationOutboundVO.class new file mode 100644 index 0000000000000000000000000000000000000000..f940eeef554587a640e3d5eed2b37a61cb77234c GIT binary patch literal 2520 zcma)8Yf~Fl7=8}f%`WKzDFxcJwNguw5FlQvwxm>BE&_71&@iLpjEArTfv_8QH+A|? z9DjiQ(hoYL?My#7`lZhJC;TH;e9rDBBqcB~?4EPp^Io6#IcM|te=mOrFon$&I*>4+ zS)#O?UCayk4sL7d)2~QxF%qh zq%-?nO;!Z@oBgeB?b)TEko`(EbI`(drJS^trk}zM3>p{`NFPBH87S>x3-4ltu6L!+ ze7A`qTeYC9hH2u5Juljx&*nZ_m=O?*1gu_IQC4cUP5{)O5YQqIJxgWBUa1{y+1`fS zs)T)UOR`dwWDwV}Pz!d;gl6uHoI9Ne1*YY<_OS({m<`z?t6H{$U3Ys;dL#l_%^WP6 zHabc)0yolUy>2V3Vyp#pH`uj3fgV-GP%{bB;ZBRFJ5*}0k5-XRlcZ}skfr@)S&h-r z*B&k`&oY4p_R_QcS|t!T*Wxub)MTGpcWYkBo+~T72Twei#nlPL1ETQ2bpt=}WHo}r z?@3}Yg)gvVU|I2bMPTTNGG*tnyKl#bDx&zDECsIjMBs;JGRBIL(|PG^^Y$28a^3w} zwQ!vAO_CPFjVD#Rjr!M3`gPVfiDDPigk`-P*aZ`70w14(#mG_Lro`A_1I{UtB`Fph z$M&Wx()VrOz`DTAV|cVH)4(HvYp1KSrx7MRtR~MPkicb(A_svnt~xNzhxcSS=jFw* zlY6|R`Ob5d=O{Spqc0$S3Dw@?TWtd)c%N@8QoslJkSp>S7x->9{uRd0-0Z-S@kCo= z-h6G0yWTX;w>7?nj~GHlp5&;?O^)V%gV8?kfk-3HTh*k1U?*v(^AI4-#V74ucAeFw z!nEPCCve}b+(%l!%S zN9c)Xxj$eokJ0aya5!>x?*HK~pNg>xD070y3}HJ;I)m9%G!nrLciHtfoLluZLy4|muPeoXKU3gk!!CNP7$lqGNr_xST* z5*ofFMelK@V-r{KDQ8K1M*r85GR%L`ZNTh&jR6BU_-~5WxD-u08|dC4x|;fg#kkyI zOvM3R0isfEW?z(QL;<~#s?G#esxbu$VZZq0qDUeA4_&D5&{Vo`m*?T;l2u6;G#P(^&nlY( Mq&Rzs4HS|2A61DI(f|Me literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/MaterialOperationVO.class b/target/classes/org/springblade/modules/material/pojo/vo/MaterialOperationVO.class new file mode 100644 index 0000000000000000000000000000000000000000..4d877ee1e92b9aeedfbc7e4ed4d50af871a18d93 GIT binary patch literal 1074 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/pojo/vo/MaterialVO.class b/target/classes/org/springblade/modules/material/pojo/vo/MaterialVO.class new file mode 100644 index 0000000000000000000000000000000000000000..8a5c83b2b0bdafd44d5517f09146f3bd1c362d01 GIT binary patch literal 1029 zcmbVKO^*^m5Pi+eFu=|(h|Bu1eyqAGAL<;82gB-RU6VB+CMXAQ4Rl~|n8ulA6a6Xv z08bqB;wB!9Uj0qRSUoc$iN+W?bWIhn-m7}uU%!9+1mGST1!Q2@FdbOPGBjm4a-&)3 z1*5*thr*r8;oKLIJLO7*9{1guoJdy$%2Ti0c3M1$Q-y|_KOwzN zwPvHhaQojBj^vWP*C`+m$H6)_7;*z19K4)!pP^E1P52RaeIAV5PJbc>s#$xkH!3+e zp}|?9k&!N)bg+pE^^bWp-j_oWPkG2tisHq3B8)s4JUe{Az#cKI@5>-kJWxIE&xJ*9 z=^tY-ljdT}3&i93v@gP^yzdiTxg`hO?{Tt;^0a8Gu@^DiY5m9AO`2B8uF|)`uvx9G zteaE`!K7CH%?Accs<8-Zk*?x{7i~UECn~jt8q47m9`dQ6OQq?up@`ThA0i^dn^-@q~! zjnBxpZ`40vEl%r=V-({rbD@=1Bx><=I|)rHL4>%BD>PMw*50LwGq_59YcTEHH*DC* z=W&e+79(5eYMIRc{|JuK;igJ5{JKXlfI4n;EI%AQ2JrR7XBR%TwXdNRe=h zrYA$>&8xAcp<<~JP20Obdlhv?0ach~u-+9t!4sik-VVALx+=^wI4pvM+7MF417VS$ z(`TH6!S!w{lnhuLtU!l9#(X}ulMUu@jn9ZmR2D`b8MbQ}4Ix<$md4r7YO-JwKPxQ|I zQ=Pw-%3vQKGi_Ynr?QY2zlj%W6-g(xvi#PFEJH&r9zIm>WWrn0x;lg92al#d4q)&; zeb!02qH@ypOE0f6G}q5c#Z8bGA45#OG8Q#z47`+>!PAKMw*f6bhM$IWf-;6fRiIZY zCa1|@v7@~S@lqx73JXwy8r^CYSft+)o#lZOR>-{y WYh(8u&FPnGgN&n~P1qU+Z+`+^n!vFD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/IMaterialEngineerService.class b/target/classes/org/springblade/modules/material/service/IMaterialEngineerService.class new file mode 100644 index 0000000000000000000000000000000000000000..8644d22596a62e6043662a660fc760acff5a22d4 GIT binary patch literal 1995 zcmcgt&2G~`5S|T9LqaKOfkF%A=ayc&50Fv`L_v`frBVc(H}=SEYJ1Ik9W`ejgE!&8 z1Hj{OM~of2No*x`sKj9t?at23H=n@LFkyhk=&9GjxTG+*5Ys zV#qyVP)p(R5cODE$UD9C}wDQ3%r71(e zhayD&hJMl*3=Tqc$t|DbTsX+!TdQj+kGzy8Z545EG89IJfg6Q<8WN4Lg%P|HJG8s` zyoI6yHBx-6cs}39e*0*>TvU4x&1Yqw3oSe((n1CsL4v!Pk(g1&pgxd}FHEG7vHkVR zI=N9_e%V??m~oc?>M8=r;C=4SdR5FvYC5TS&cA$5RHL~w1w}aOVi|V*(5uTg+*hF!7W-zN7w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/IMaterialOperationOutboundService.class b/target/classes/org/springblade/modules/material/service/IMaterialOperationOutboundService.class new file mode 100644 index 0000000000000000000000000000000000000000..d21c009edf590d8bbe2c9445518248f59154dbdc GIT binary patch literal 1371 zcmc&!OHRWu5FM9KDgW<+6$>N;8@ypxV1WP$R8*u&uy&GBaOK3opQ^nB$KVt!H~@Fx zDu_v15TXjS5)un1vfp@S-t)}7ygfYwz!7Xzp~B!&o0!|o$TSX=h>#~b@(L|aghL~R z;ucLuhR83j1}Du7jc`(@P45Ej)2P+AsKO+J<+kVuu0$I1X3)maRbiUJ?)NC6HWVu3 zfw0I==ri!aVB4aiYo)=iMT`s{cN?Kj=(wDt`B{i|i{i zhkrx#_+JG3v*a0UVK>vJyowl{{w8dw(@5rJZuzYd85KRfe^K4uNyQt|x;lgTdyl3! zFktXHzSmJ%W9p>qmDlH4f!B|RvK%1*c0*J@xXxkn%;2G~z?c3Wu9ULg9wCpS2}dT% zV78^b3GrMinh86NuH7Tk>h literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/IMaterialOperationService.class b/target/classes/org/springblade/modules/material/service/IMaterialOperationService.class new file mode 100644 index 0000000000000000000000000000000000000000..8071fe749021f8dca7045594ed102201b50c94ee GIT binary patch literal 1275 zcmcgs%}T>S5T30+vGuq9;6d@M7xw|GJros$N`-=+x5*Hun9Xq-^@2VGjAU+uK;ikdmfY+G_(o1O^l4gjuHX#NC&Ax%Ol~?NTIkz z(~~~(>zk3Jm7oz$>bO1Bc(BM|t1EhfD-nmh)#;+|JXmIMJc;gWLm?905f*uaJ|heU z2No5%6@uJ~5E(olH+>zEn~r3lQyvXEl!8rEYWWZood|>z{5o@}H75fXXeGLJ8W&sh4OF$Eqp`heq45 IlN;}T0-Z6mZ2$lO literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/IMaterialOutboundService.class b/target/classes/org/springblade/modules/material/service/IMaterialOutboundService.class new file mode 100644 index 0000000000000000000000000000000000000000..db67d072d5598521f12298906211376cd0ff7b3b GIT binary patch literal 2585 zcmcgu-A)rh6h2c+OA9IpqM)ewTQoWkP$hu?NfWRnAST|J>F!Vmc6Y|v*@j+w=_B|i zUibj|Aijn1%>DrBwy{lv7pL2unRDixZ@=%%{QUF%2LQZ*7iB0ASeLp@L#0K~Zh6e* z)R%7L@sRq=a4nceL#{i*;k2=vjx;0Fl2PF9Clh5T5|}w=9Y#GCv}v<-%pFsP5`kK8 za7Sv~LD3cqIo-gYGzNjCkbCIXyT=}Da{}LLJC5|xOZvi<5%s$*W<;pGD5Ob9ZkWpq zqYdj&-|5{qSCo>+l6EBR-S4njUma~PtbLc8Ptx6En)w_-3keieocBxyVg?z3%D!j^ z%tV?KvN&24t42@33#w^Ny>Bm|iA}Bs_ttjLb(@ zXlwweod`V%Oxn!1rS_2vwwx_rWnygvhaoD8!0*9j9SLJFQ5p+9t*VJ!z`h}argpi` zqGdG>*E7;kz0T+DZ(M--K=y&aoXn?8pd61jTmtji7q>0@tlN;vXaMbb%p4))+X;B< zN_pK&g6A>;>kr`s_5!bq9T<-i#e%MdEhgDPSK%2`)f}tmZ?T8txP>#84k-?XFr#ro zGS{3RCz}V&KHSe~a9Gjg3mSW*5g6X?tI&LCtJzX0u$@@QxUW##_HT*#cn?4wmNoa8 zKEZ?U%LVV`A~2v;^tl8K(fBT^Ig?<<_LQi$|5f*8q#eF3Jp7i+gDx(wEC=zHLf{J8 z1YU|tMXUuTp#T+ps}!J$k14civ;thk>1%L3ou0sx|7>a&r*6O;#<8BWMVQCOO|%8H zTVSt9w_!1zUM#^94)-j9JMpr+u$(SinS^^6mfcUIJ;3J*S`zgkJW7|poXSPCOCO^> WL9;GT(Qp@dhE_<6s=;df_WUnHepBTD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/IMaterialService.class b/target/classes/org/springblade/modules/material/service/IMaterialService.class new file mode 100644 index 0000000000000000000000000000000000000000..684e342a14a1b9312c2a41cfd8cbafc3ef3dd229 GIT binary patch literal 1934 zcmcgt&2G~`5S|Tf)09%$(o+6^OO;&MGYV8FO^Yg0Qj{tnZX0{#Ze)ASdL1?5F?bd( z9C!d83Neo3q&SI4g2cgzc4z0CnQy+G{rT(r4*+-tdwIw)c%ihz!$3>lX}Q8i?kPKR zG31^wsHJduh`J*!cR3}CL7^cXUzkWEV{EoEUd~m<{{N_c z-qaYZ;YFbIpuY^Ne87eYP&TRmeK9GwcdHsEzM2$l zI*E@@mgq_qnuJ)B-k)9B>&F~Yd?|;DQZ5R=Txycy<7-DUm*Iixphla)$E@!hOiYNj zL-eHNRO!x3x6(~2c>50|*=9Hhs%Ld-!#aAw8#G7K7-G8~83wP5Q&LV-%J`!4cYs2S{zt!G5`OMd@+bBgnm`=H_kcsdjty%9`F$BO)N zsTIjcA0050#`)xcsr-_d<5e0*UumdFTX-a0x(M6ZC+B(02fZ&0uF$tg&sd(`pgb%? z4hpm?!R32i2MJ%wG`&B3$Z%eHQT literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.class b/target/classes/org/springblade/modules/material/service/impl/MaterialEngineerOutboundServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b0f4008e55142ee91f87c3cf3dc7d0a5a7280e4f GIT binary patch literal 3048 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 abUc7_mDH!euHjocE#W&{r>}M74d4UmTL)tR literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.class b/target/classes/org/springblade/modules/material/service/impl/MaterialOperationServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..64061d751094068eab8a855c2c78733804789a41 GIT binary patch literal 7305 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 CLKb@f literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.class b/target/classes/org/springblade/modules/material/service/impl/MaterialOutboundServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..26ab20df45e50583ea96dbf1a9348729c5fcc52c GIT binary patch literal 10551 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.class b/target/classes/org/springblade/modules/material/wrapper/MaterialEngineerOutboundWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..fe80d4e06fd03f35a6cfd239aa488b4f932f98a7 GIT binary patch literal 1753 zcmb_dTTc@~6#k~PEUgtvy?}T_MJyB?!>%y0tZeRxo@3indsToFBZPyOg7)A;Ubqiw*uli9ssueoY z=N%D9Z3~Bg>^bvFq}X)ZwkxHsg+W7wZYu)Mz%tQYV%Qi8>8U-%_tlw@^;!m(F>YZZ ziyS5y3jL7XTmz*X9tO7K^K~iQxAes@-c;VfmR6K+U`wB2rBL1z`+_^dZSz`VPd0AcidhA?R@}KZLfHRpnMghsfto;W`D{!VQKu z{W%R(zFQ{Q?ckZE>NVID|7I4qaGPPQ=TWaQd@7VLkc5g95AEE}mKc&7swEjF$}~sS zu+xxwM>HJL)Z`t@+~n3GBoq#B{^v>3{T7&*m2161iXha~u3rN*Ls!u1fXjbO zeJLi``Dw0EH8a~P)J^%)Hd8n^WYaC1O@Mp!WNPsc>8sj`0L5}@^_5Kj)&!l4~{EKv>M^0A8dWYl)$$T-N z`G)Kf=*-huSu%b-Uh}5`JfStZ(&e7*c|_dgi-(ve)EwD8qWBV6Ao~;}HF7VAY>HHd l>={V|m0m0!Vfrg({&5WEmX7d`v2rGyMeH)YB7_T0O}@a`X^ zFJd$?Jo`r(XWJu^w&WV)%g*iG%x89HXXn@N?>_;oVL68s#vG*c$Y7k|xi)Pc_(pl{ zhAUc8)~Q;# zJsp{*e4}g^&0a8pmhDT$eR>)x8k9g9)DRe_^)Br=Nk%fWcmno?K2o?xtNjg>Fh^^? zXF!Mtw9Dcl9+Ad6&&9}zA8_8EAp4ng?3{m@cJvs@%3AM}93xpQ7jxf`KLxEtT5C(z zuNT)2ao`z^xs`70xt>QHn|$#Y^F%F>-4i-r3JYYPVWdXk6$P6il@0cSq(x;H%cr>U b6}SGz7|bmj^UqiXdz?k`PN9sYu6+6jX}{a} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.class b/target/classes/org/springblade/modules/material/wrapper/MaterialOperationOutboundWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c2e697dcfc857bfa87d516ce7a46b9f0685e4005 GIT binary patch literal 1767 zcmb_dTTc@~6#k~PEUgtvy&&SHUcf?;(fGhakwj1uV=p9NjgQlIQkHCY*4bSQf5hLR zFJd$?yy}lKo@tjzD7Yp1a?Z}_Ip23KGp9d)efWH!O@XygZ50RqfD` zKJSV^YFjw`eLt92BSW2#L|`ko9tKSny6p%(1Iwg$f#G>9rl)ol-&1E}HtHE%#JGit zEOMA+D4xXZRU0Vf@G!6)pRY;bzNRmR@s{%TH?^WX16%qG%f-sB*c03lZim;KyRsFO zk6G3o;rr$JW0uG#gG;z<;Yt=)F~u<112Jq72tki)`7X4ztSPq^Iz&Eq3fC#n7N!|0 zCu3k`l z`GV{rNajga7foEB*ZhS5k7%VX_qYrFh=`kFF^f4u&5_>&$}fR=@=sA4fZQ`8n|8NY}mX7d`uyQ7y1&U6fgvFkI_#14a5*+{l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/wrapper/MaterialOperationWrapper.class b/target/classes/org/springblade/modules/material/wrapper/MaterialOperationWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a878a4062f366a4645f91862b00471810398087e GIT binary patch literal 1655 zcmb`H-%k@k5XZk;T8`EVrKtD|!CzP?vKk+FD3SoeQ=ueajgQ-QQt4a4xV@>ICOFjShWI~ZYDJx}TAR^-Zn zcSI>v`P3B*ScErYi~PpDfsLKu`WP6xW(}5{FxH9?$$?k zdzP$Gua~ymck;N4DTa}rX}!kqp;Y}JbSleWn2VcOVMwp*mSh;KDo<`lorW}fqT!OJ zSk+D8)&&g}?PFy++*efA_5M-&jUk23G$Q4;7&b}+oMHgp_~{+^Gx7|Z{WBe)iInU_ z0&d&5G9doa@)x#bxUX9~!ibKf8%)K`?y9yY!pKk)z9#s6UybF2%fF0mWkAX$2V0?v z<#u&snsQUwX_~t1Ia;*07We6vr0CfM(xAb>Fs=7!$4N4hnfYU|PxO((G_CeGP{ItY z`JMqG9?&j}hj>I9>pT-9N4~>(dyMQy(y=rCW!llbBr9vZM{H|5Cn_T1aU@a`X^ zFJd$?Jo`r(XWJu^w&WV)%g*iG%x89HXXn@N?>_;oVL68s#vG*c$Y7k|xzcSO2HN%8 z4NtTrZz?T$C*WZe1WFseAws$38`m7a(;^6@W*A>}eb=lrjFlGZ4kj30_ES2l6?rn` z9bu$)g~vbkocVUFs70osBEJa`p$W75G?9tBJ@l=@NK z+>BBlkBsYud_xNVEqyUeHdS!Es}<#ETp2Q~l&Xi~NN`X1ZC+~}%BHED(`0JD1RsNDER!4SVPbbZZd54=QL31Zh2() z#s*5%yGUE?+j-354#PyxvR-5ORI2_5I2C0y%Fr9EFr+tCOEOGVU0?1*orcu=qT!LI zSXE8o)dlqv?PF!y9Jo}|jpU#S9Y~QgjmY&{46jQg+oFty8sf zdn(dR`Np+fG<(4WTDC70_vvY*Xix%aP(xsx*1NRhBpJ!f;tALn`bgm(t@bxi!W^yn zo&g~q&@PLIctjfOJQpJ;e!zKug6wC~v2*@q+R-7PkHX#J literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/material/wrapper/MaterialWrapper.class b/target/classes/org/springblade/modules/material/wrapper/MaterialWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b6091d6d4e90e44035b6b4608c5edfb3ce689308 GIT binary patch literal 1529 zcmbtUTTc@~6#k~PY+EaoisD_oVWG%qh{0GO5u#7!l7KZnPTNTtvfWu{cQO1TU-dk?{+-83N`SA+Ofp3)8thu5g zd0iXHTRsmW-`6JOD61 zD^hsx=!;>buKoQ@qp6-y$$(*@SlJbOg1f?N@{QWAtcT?jmQ_~-L3#RwCHBeU3dS8= z&EXm*7{=NlmMsP$=n*47M#{)_?X5>Hkx!k$bq2J98w};{ntD3hZi{SB=(shVf!XHX z%HcNdFr+&k)eVNQSh)ZwHDR#mQY zu`wC$DC*s-{$%HD7BQx3k#ZXhi^TzQJ|8B1w8RWc{nI&r9F$S^2+Gdk#eiVljm)pf za7Q;bg%K@D*NfVe*-}kUgpr|ke(r(od!-k9LjGgR$^!;>W z!<@ZIxKAsbpoa@cf(D9Vl6UFENi))^nFFw|^pU_llJ+-H#3adF$AKUo&?$q5ctjQ( zJQ+i#f5Q22fXo-Nu@mtnI?<&eFYCQcdWdwPRLFiu?hqskB-dtbT!+^_s=zaPh8Eh~ zlbwi|n_}@8Q-qo)zbBMm0@LK5Vq`}CHIYq_$&$^JwosXw(jl&Y!_9vjy|rax{3EQq PO=pIp6DVP}t)Kn{DUYub literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/api/NatOpenController.class b/target/classes/org/springblade/modules/nh/api/NatOpenController.class new file mode 100644 index 0000000000000000000000000000000000000000..03b59b1462df64c64158d904da45aee3cfb47a2a GIT binary patch literal 14640 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 P!xR6s@!CYqN8bMjW}RNH literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/api/OpenPowerStationController.class b/target/classes/org/springblade/modules/nh/api/OpenPowerStationController.class new file mode 100644 index 0000000000000000000000000000000000000000..7c60949235435e27e38e23eaeaa461b0d43212f7 GIT binary patch literal 6835 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 B34Z_p literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/InefficientSettingController.class b/target/classes/org/springblade/modules/nh/controller/InefficientSettingController.class new file mode 100644 index 0000000000000000000000000000000000000000..03820be389dbd3b540f88f0471bd93c72206c5c9 GIT binary patch literal 12053 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/InverterUapController.class b/target/classes/org/springblade/modules/nh/controller/InverterUapController.class new file mode 100644 index 0000000000000000000000000000000000000000..4175af47a75b06cb79c0ada7841746c37f28a02b GIT binary patch literal 6883 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 Sk{5ti@n_B<>c0pVeD+@zV;#-_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.class b/target/classes/org/springblade/modules/nh/controller/MonitorEntryDailyStatController.class new file mode 100644 index 0000000000000000000000000000000000000000..e6257aa3f2c87b6d17c539652ac884de7b411923 GIT binary patch literal 6530 zcmd5=?ROMc8UNk9uw*k5NRwC!m9|ow1jwj`T1}uOAz(BiA)!I2w4L1@HWOxdmYLb4 ztJaqyG``THQjk_#Xq&3Xa}dvwnplte*}sE?^1*L@_V~LqyPL^ovb#i2^~3JW+`0F; zzvp>=&&%Au|LaeG0k9XpX+RBXBdAkQk97k5mYr0cjBTWoF;h$EYRXDvP2Ew`6KdQ_ zyS8PTx~&dbX~VVbeh%agXoi^^b2YcG_+DUZDs0A>ZciC;U7&Zc%s!4kOC1Q^B`>2p ziuGuSAgZ7diag%cMQg@lp52ll##HqYAP4gT*JwjS%;ROY?{Lt=%{C;Ff}N$yAd1E z6v0LXo6s!qbSb=mU8~YpU>#8pr)j){?bRd8Ye;2Q=odi?9Z?2X#+tNLJ?$E9F5KaC zKi@^shEGOtzkwR6u zhXr14FDJQ5#c9+sx_UyUtZ-e&hl%VVJRHFz3Os%T%?Dp^ggFB{WwP z*b_?C3ah(#$?pngBd~PV&K(g?23Om<$Li4H5gg5RH%zwiCH7N2$1z$op9qedRub@|M5zS`EWW6^xkdP)kprBt4D{|*y z`x)HT2nG~<1z+VJt4E(?y`vt?rsI_CT7ys>Mu> zG!I&F%^cTkLq6vR>)Z*0202uYk<1`fb}saEYiR2taG=}{)#@*>aY%P3ti*_BYm8Xk zCiaFgBbg>$ZR$At@tC=%qB3Pl*FIWl^JtdUKc$ZwjzMSaPp2(L94SbBb_ax?l4?#{ z_GxumkEt;uolv#nT=kIdvLs|A`335yG&4&RMAQQ3_IjB)X}A;FnEIljS-F&vR!^sm zQ~K`7fE-8NpD~8n$$1FI{EkmbwCsd#*Rs<|YHOLeBTWReZ+)Z?n9Im<*8*K=XS z$)-}8og@E0`rZ4BXU{SI61o$&jf~$yZn^#EYYXRQSD{Ls>Bac*V32yHFEkhfO=_Xq zhR$1R28gi9PanmqN@cw+RN%3I_5B_`yry%7EJgHJSA_ytQdtDrmIq=kQwYXA%Te{L z%yEH{e4j1Z0 zcdy?Pcw~7f7clYGrT;m>;Ky1^)SeVYdGPtz{yUw65j%QNa7t&E}U6iT^tXj-d`; zTjsFsCg0cKIRB%(0>eDu8o>$PJ>;*&v-monCCQPkx}*8NIdsfp zXDtpB?5+>+**w_V0NCSbAyf&r(_dZ$yN#$a+=3!;1~xZtA#4XOv1K{h#u54MB&Ima ze>cr{Ql*9(Po*=weSyCkycnWZuAtU83Tl1RSL<6`(pl;o~L6=UdJYyb4f>q@BERMSJUilh-Tj} zXm+kdGr^DcV|j=5QbB3K4IZ`T@nj9=(6dCQbsjFu!|mI8LlO4|;+8}T(5FC~^BneR z^GX55Oaa9YeEa^8yEZ_y@$w`7q`4afvB-xX^Cxg&Rg_PMqRg!w<*NmhuN6>UtQO@@ zRz=wtit_B*QU0`m@@EBwg0 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.class b/target/classes/org/springblade/modules/nh/controller/MonitorEntryMonthStatController.class new file mode 100644 index 0000000000000000000000000000000000000000..7788fa3ccd7d8d2b01ec6b7dd35c93842b90e056 GIT binary patch literal 6530 zcmd5=?{^ee8GdelE!m6&(j=BbrLEK^0WxZ#RugDR8ZerWkkBAh+Rp9{n+dx!%gk)j zRco~fjapi&luBD$XiL@OIf&;-O{_=#?B78``QSG{dwlN9?q;%?>@Lw${jfWC?%ey{ z=Y8Mj{W0_RfBoq%0QTTFji^Cw1a%7P(I7Bj*-6#O*oK*mrL=^urmaLar8}xQsm3kS zwXIZ2x7A_GG+fIb;6#pNcXHg--2UQofi3B<72~=+ZNznfzM(SbIQ}YiF!YqXjGidg zp)rD}f+i>eouvZfmQC~-)yZZumhGxUmoQwzG6kBGx_c46y!{>3Bg<<@Wmf1HK`R|m23N+KvQ*u44L29=aJrw* zqG-owBe+|^Cfpj4Wx#76td>a{}vpT_#2Z zUhF6*xk|-p)H1qyLZ+>7T_;9}>^|Hd!2=3Dk8J{5OGSAcb1f^SY8gWv6R1mQt|qWM zl&TeWd(rX*1rMP^AVMOIYDqHb$VxMmhK)z+im{N^T}{GM2c=-|v@RK#+XbG<c@D7DlFL&*V>g=In=##8>)csjAPRXt{WSPk!!*M09Kpc#_vfvhyv==FIm4|Cs z!9kENO}3u4rafF#Yf~_)`ejj$%i7k{Nh=(}SOnt=4&zCI?oezo%W~DYYp2vcS>=P3 zyP?-$ZQmGokQmf}py zkQLWb6Pj(v`}|~`J894$2g)&$8Klb2g`RE;ZCwPOD0f1&`U`9r*4;@fF{;@bBUZPG zy>Z+~nxv~u9j|^mX6~)1OqtTPmsZ*|mSy!%>l21!&>8zo(_+Mtg4AbMK==u%=8R>Z zRA=;<8Z*pJDH8C&l#GPOB<$o(lk!! zyQTti9CcsD7-1*pAsF{NJ}J?%6S`f?PFJu)95O7`nbDF-Hn7tVtCr?06H(mHjS(lC zPHT3K{Qu;4A1;REuq|b}poFuPvtSuz1E-b? zfQtShkjhjmgF_(oX?j@TpZ^zT`ybF+CNfFuTD~6zykDMkqm~n_KC0~Sq>wr?c=6)( zh4Ip78ds~pPkffzWK0t8EhO`0o4gPBzdZblBa*4mB`8X@mo+?3H^~o zRnPgGf4#PNVV(mg8%rDPA|w2~AxClnzuq+auoq`97FYURW65h{vEQs*XKIZED@02m zZRa=3!+qiM@CZRI%wE2I=>xVier@zN)|o8-?4EDVeSG`EwcBrH*uTcZrD0s z@(0RNwyIAfJ+e=Yj$2tfuJ1Qwqqr^fO=qdg?Uo-y1RkxLDr3w|OWWz9JK5@Gwxu@b zZhlHzrEln{(4x3n(oqjYUX-(FgLd-m4H?|yRa%Hr$S7tdW2*c>{)_{!CV zSKr6|{MdJh-l9Y0=RS_saXf(|sKd8-_q6;N$m^D_KR|4sLu4MGslnfH*YF(Lc6@}* zbJ%*F&ueg$|509n5q{tr#W9ZV^Y`K@e4BTag5#7Z_`Hc{NZHSDmOMVr%d`B|Ktqhz z2e~oMg^8yi9OyW~adHroFt}vO!AYbXq&aEAB5sNFB_gilb*n_WV-62)Z@Fs@o%7gH zi-QEa^CNsQ54JV{_9$8jRf6sEw->=~C8`XMph%p8&4XJB+ks1LShfBLe$C?)cQ_At?&A3eUDpOYPjop3jY2vs{I0Iq?5YwgS=yG zo+Q<6Evh?@UDR}Eh>i&~(}qhrwib14CCndsI=1F@Y^FJvbX54vpLuaL%}$4C_M?Jk zXG$~^d}%+DcUT`4lonj?QEMKL)?g03OJr*Ba9JL1-`4AkxYrZ6BvODr1=^hDv`?Ft z3Mgg^D1PkQ_a{8H5u%-!pYkWo-6V)b-n`78z`0dXJ|2oPw|11T6i~ieKzY7el&`Id zvOg5%>9wQ$SpntG3n(vCi}H0`%yV`i@9~ZKWU_xAL!m&=1%PfWI(;MFz%Q1Z{suj@ z(&?89K;J9?eM_rp$%!^ZtV(Kd<6Lt|63PNrb=tH{3qCw*UYD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/MonitorEntryStatController.class b/target/classes/org/springblade/modules/nh/controller/MonitorEntryStatController.class new file mode 100644 index 0000000000000000000000000000000000000000..96973440c131ed988242e6fce919f03eca04902c GIT binary patch literal 6384 zcmc&&{dXKy8GdiRw%LqLo2G$QFn}OQ+UBaXfNUDt#18glWTcUgwEyYs60xjb4hE25(1go#g_P6+6q#tDjno>WO$u$MHb#js zynrF2RAtlzz#}G1cCc&hpo+>tj|$ad)DH94fRqW$QPlTqCP7>hJ2VMTrPGU_=Mqq0pW5B}N;3@Dn49&UDoh8m%b| zSVK8){j{i1Zej#@?xMS6bdN$`rh6H6hNXBca)iioHE-}SMh%+ksEqbhC1b>DFCM<4 z(EZfKCXGXr=Pu!0>1r$@ZM?s1hC@l7hY6dSvMBVDxkmuj?3DKCI>w0m2Pt zRojjf9vw=%6zU}o6XiX%E=0va2=02Krgrp)Hjv!=nnGWv2N10iqh#Jww}>(-Gg!C!r#Fr-PteN&+Wa#)c&k62H5FXQwWeJe&o z3VoX%#~!Q4oaDOA54vU=k{yv0W+rLaj>HvU|F|P7XDI`F@gZkRk5XnaCq9WvV1_6>tG#j>N8NJ`x(`D zbx**M8UotLGD=luh(K*xS9%P)0sb8n8vNUuG)(=Fn@j1|5jB;?NLx~*)$D|78S=R} z*x*bWu*EvXRj6K)`eBi6V=gLqPM9e=Ow)vHBPHp7mCMtiB)^OjGHl>NjJsM7^*1b43nQSjg$KBsel}t@6Q_}=)pV$ z<9@FuB??Q^t$H-2482{_5ZsZCgN?J5zy#PKIj6koNRgJVjXIUzsRp%|&cYtg4b3?gMLQk)C zWORSP@P4OVy-Z_;tS)d>Z$wQC6$?fkD?_c2FNNElm8kkE6IfuR*c?kDiCaPtP1&0L zWrx;yC>J1I)zb%lHi;LyvzHqsD44@Wf zuP$A_hUUbtdEUYX6J;HJ@6EZtEM5F)>B{+q3$yrMwh+~ZrQ<7nUrnM$9abb{a~U5O zu9emg8nVUf41bg?ccs1ZWP;JdYbMAT63_B-IObNCdTDF9Y1x7^tjaE+E27tM)QruK zsIu#6Tex;<>FkG}UcB+?Z!a%gcxmx>*BRYjIk@=B^@Ug8r@L{qb{LMqLV37`yA8OX zprh14-@(&U^5_lMJ9_>|Y{wkM=IIM{^bguHJV#r1enMZIqt1`Ln zCdt5*DVt7F)}|Z=O%lK@k-h-L4Y+nnq&w&6z8!5_=BRs~cGlA&fZg>8eYFU-J^=O@ zwF9aI+v6`UgY5*WJhp&HI!zWfZU=0e9AI-X+JO=I?gUL^mj7-B@1#o2b)HJ6ar+E@ zb#$hRT7{BY-z%y0eP68~U`bmYRy_;BKRgb#pTmfBQZN0e=okw-Np;)H>dw<{Xu7M4 zjvBSXhRZs(mvw9h%;!BF+lxB3!ko)GDtPCQ{CG9Z&Q{UvCne3!g*3yN9H`|xYyb*M z3vTqNHBS%M(H!+Hlc~wWB|O}|tv8l&Zv<{hqyT+Nv^kGqpEfU)P|TK4{M5Ja&#-GV zu?}2b#7~;Lg#n9vcnLp7FRzMnUsaTa^`m^Hg!0uA$_r~n`P!-|2dknyyMB~EFQNQJ z3FXDLqI{h$6*+sL=<&_PWO8txl2w7e900nx?DWm_2K{o`>2JVOl}^800{UhN=oJa{ zEziqarI(+@?`@mjpCI>4{s6dm8C={; lpJhfi(k3i=*IW9Y2UF(4_wjtK%+Kre0pd$|Ar literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/MonitorEntryYearStatController.class b/target/classes/org/springblade/modules/nh/controller/MonitorEntryYearStatController.class new file mode 100644 index 0000000000000000000000000000000000000000..259da588382b2eac8b710485e4d387d7e94632b6 GIT binary patch literal 6508 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 E2Psjp5dZ)H literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.class b/target/classes/org/springblade/modules/nh/controller/MonitorInverterDailyStatController.class new file mode 100644 index 0000000000000000000000000000000000000000..ac09adc1c67920d34a39a2baaca9105c42791437 GIT binary patch literal 6608 zcmd5=?ROki8Gmlxw%LqL6Vga|DocmX{(P&#Cns!9+dkXa9~S$9(g%A3Xl<%H(Z>;XmhHiiF8%Z>-90ZZM0FRN5;q zW*|!Is5L@SjoL_K)LSYuAswiZ=58jPmX61P(GZ@HHly~W=^f6PPVT6qr_-jx=x|SL zTF>g-((NQ4i%**gZ=g4pkSQM5Wl9(_!&AAq?g=+-Wn7p9vSF7%pvzAwVLU8yppDj3 zdxSP<)Ipt$hD+gv3|z0uj9LJE%!Uc~_0$h8uO#$YrDBA-;EpQL(sEjI)AodytLXf_ z{_7}p)0ZQ3t45pXHbz5Lgw6z3uPCtSmF9RxSccNJw;E;Yln2Ii(;XV!Np~??7brD3 z#%Q*un(+E900UQ1+Lx1+6_uVG1HQZIo(SEm(O2j`1X8IqpLL#;7T42)k27jAbWdlr zvn+XQtoGyQs~T;g9!3%H>X4oUv5u}bMrk1VG_M&QDbv#xJU*fX`@8k2P~FPtnLOT% zCoDdyrw2mB9JX}Vttq^A=xx`ipEyjE_SHIHD_%JKX{SaH(l;61>zWplT%{x%km21m;`yBXzX^4|rO~%(0B&~mEZDoT zTqGP*akWdM-SjYQ?V?;|Tt@fx99tc)B@yN)@jV(1sV$G6c;SbRve z0pYsdGAK~|cQb12>79fj4FtHb7)`Iv7@^wsxzcB;JK*PGX~56zF=3krGpV@g9MR(z zMml3Mp<9!>Bh+(#u*sVeu*qZ9c!^X}e|H0a-&(1?VYI*6K5H-pqYa~`Hzkcjx}zh8 zO$SP}PKcxp>N-&NH(!{^2WzTSy`=4i#Wsy+&>^JEN#P3kW{+)4#2`ost#*XupHRxq zNarMQ)AZi0}dncljARDZHsnoSzoD%%z0QPuk*y zxnnvc$K`v{VhlZ>k69RU zTkaD8vOUNt#exfc{g#!{mXHI2&cA%Q#|l-Y;IjT2wXvk=FzQ|znz?i#Ja?`{HMlzQ zg+}sCxgylenh?~ca9#cFfZF+=B|fSXa-BA=S&s()%Zk^EU8Qm}SM*eY(Ey4s%${9( z|5LOND`UEts8$4btuQLC!Zs~a!Z1vHn>`pZR`rZ9Zi2%u`c~u(NO+}oQmn3TXya;; zP}57m^6)BIr6sXC6h`t3b~U4a{lD1nf5UQ>-4x3k@jVstUUdo{l5V&van%bdAx$9k z;>GI=AH2ut&Xu8Z1o>}8l-!0ScT#uorG%m;&|;!8@=0|IBGnHi9}Pp&$f>G1`TDov;>7BC+=V$T#?jZVw zW8!q+Kvm+_d$=;7n%d}u%s2^ipHMC3mP#K-%UyB5I#FTtP~C(XN5WcO4o9tJsh{qa zo1oiqHdnc;=&8}eczV+1M|9OqbuPVdcH!LH3zt7xymWQ(t?P@gT|=L{dT{aes|)8o zq z(dO%T-#|~|KZ+~iOQwUy=os$q4%X6B^j$nb3LS?;hWBmQL&<&yqoDF}T%N_Rfpm)F zdOsE>FwuC5m`f&|zcW!(+ZQY^g53;MX>0+Jbc!5o+y&S!dBB#zXg5aGyW^C_ ztl-@Y-YJz@8+?^c;r3bl8t8NxwQ>cuzE@D|`+-_Nz>>}eta=WDe|QXPKaUaRq<(rK z?-&O=DRsMw>dw;+Xu7?OjtOcfBcx+jQO7R8{E@F?S6;_ne3aVSXrR2hJbbyo!&v0=MeSe@seOo^z z_B)IQ=`CR7BO!3nBDkoZK8uWOrVUv1zQ6PXAEwHMAL99=B0sOv$Cv{szfuT4`43EI B)m{Jq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/MonitorInverterStatController.class b/target/classes/org/springblade/modules/nh/controller/MonitorInverterStatController.class new file mode 100644 index 0000000000000000000000000000000000000000..2e07f335c1f8973c4073a86553b60e220216a1e4 GIT binary patch literal 6468 zcmd5=?{^ee8GdelE!m6&LWl)hX|c6QfQ(wGwF%fHLX9RQBs2(>wzIp#X2R~wGBcZW z)z(@HjXw&gNWp4_wp9Fr^&E?ddeqPU9c)f>{Ni8W@wqd*o5^OfyX1H{e%PIvJNLf# zdEfVWf6V>ofByV80Q>Q~X4IiRf(8YRXc8E-?4;^sY{N{(Qd&Y+(^evz(jC>DQsb8C z+Eyy1+vh^@Ixr3#*0^8H8-%sfFj1kubo*AyNhvUyuheCEJNa&4X z1DYd1u$KBqp;kcDnW15vV5>{4C=VF>`IGI$|p$#aThVTVC>KQ3a4T|h-!A7)3 zut~vYvL&YO1;E`b*dc(bmN zQb)8*Z-9S;Da~=J3a=hqdld9QrHL}0T9>MYMH$@n1X1ODP_}_&;1?Bq2~RM1B}U1= z7w!>dwH#Eor%XEg6g-J93q0iLDWODePKkL__#8(tNjb1v}(PqfmtzrB> zA){%(f&=&}E$p!PWF3J=J5Q_*(6YGll5@X;0l7sqn<0z!f!t6+n(u204$5Ig?mTKg z=e>;LS$sW$AqC&SH@U~!ktZ4NsE4v@)_PNAxhLr2K`TKQw+Gn}Amf}d; zuoc%*lbUVF=fYrvJ7v%u2P?6Wxud2Ig1jA^#UDAjGE zZk{lbCTVI@yBqhzynR&_S+i6fpmny5XIbUb`lR6)bV0vqT8uK%j=Jm(h(0A%oVD!J z>Z~49V}_YfwbESmS>0s`$VkEqG|p(LEY**wMV{^VGI7#yr?N5iWka)aX~R@co5m@9 z?{q+pqxNTvQFdz{f(gH?lM*dEq1*NBV+FgwVZ&0LSuL4ldph%kYH7|25vBE97;&=c zv}WhX`A>fT;o{kIjJbsF#BC$vw~5>C{`GqP+|5vmG^D(!J{}B9uh4~tU!V;w*4EH@ z%cYoWx&57^%C&%-M?SIELcZ}n6ucV%@%pkrn5};vo2Drvk!XpcLCnxYMrqzeNICrHq)9(z+J_}1dW%bHZZzNa~ z+5(BXuvl*H3zwTm2r55!ed*c>V5$LoXLe}vdIkH`W(Rfm6I%g8*o?!JT1%wxw# zd|!v-{EzYqjPjsr3@3Q^u)h}1w8?%R>xJZQ1GiKsP^|cBAwKO*9wlYxsz14 zy`=5}_EOV5Avz||N*gZg*k01HoiKmk>DXS-v6bdr)=}X*f8_PGG&>uj*&9X8&XsA# zQb}t04jZ6?(t;a3YAxWYI?SVQnM_R{F3ZF1+j?UO_eSEDL<-QSNSpH<_G$BG5ye~) z#SeY^{)oFaLv--+WB#PMTLiJlhoA5#@Yb3rp9w{oTR+MRMU)qdC@dh;3C s9{?9Efs1&*u+H{Je<|IfqbwD-quMFS)0lO8@`> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/PowerStationController.class b/target/classes/org/springblade/modules/nh/controller/PowerStationController.class new file mode 100644 index 0000000000000000000000000000000000000000..0f10b3fd4be66e09b58f08c6f1b12a25180bc3a6 GIT binary patch literal 26772 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 D9Qbap literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/controller/PowerStationInefficientController.class b/target/classes/org/springblade/modules/nh/controller/PowerStationInefficientController.class new file mode 100644 index 0000000000000000000000000000000000000000..2cc161e8b2f7cf58f361e55853156f8e87e8af07 GIT binary patch literal 18701 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/AlarmInfoExcel.class b/target/classes/org/springblade/modules/nh/excel/AlarmInfoExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..5b567939eb0c3d792b2742cc169880633e8d583d GIT binary patch literal 9016 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/DeviceExcel.class b/target/classes/org/springblade/modules/nh/excel/DeviceExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..d0af86faedae1e96b2f899b68e1ff8de354e4868 GIT binary patch literal 9830 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 MIWo*T8fn7jA3Q~Wa{vGU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/InverterDataExcel.class b/target/classes/org/springblade/modules/nh/excel/InverterDataExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..4775835912f0eef52741b533e793c8ad55ed2ddc GIT binary patch literal 12749 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 Zn*nG9ComI7j4i+@3TYvJCD2L6&j6wc0bBq8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/InverterUapExcel.class b/target/classes/org/springblade/modules/nh/excel/InverterUapExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..8bc59b1ae3ff993c021cf654c3bc964a1f443a77 GIT binary patch literal 33748 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/MaterialExcel.class b/target/classes/org/springblade/modules/nh/excel/MaterialExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..885345f6056e3752947093641b9086a9d62700e7 GIT binary patch literal 6245 zcmb_gS#TUz6+JD@KCNve*>2)3@fd8$_9O9*u<6`+BRPn_}zTgL{kQF}op{Sy$BAD~~y_xBeI}@cU zRnyb=-FxnN+r9U_nLqsR>aPIw;-v%{&=^HXM;H+et%t0`Rwi#1CNlSr9kR2ohRD`j zA?Mzsp>f^%(Kup=N0HExgsx$eQ=G_@W{SDO#8}=Mw=>hu_-x)TWeSrS`)JnAXND}- zF6ONKF458u$~xn=hSXrSpAlEM_Xy@@9W8=3RIsLPp=i^Q5{jsMY{n)~=sI+C3SF3e z*?FN^s$-d_nQ@NT9_D>IZozU5$)fFAx%_Z3mtD~7PG@#3Z+pG2)UisqC&%qlwwRl7 zb523f-m2p^p^uFft-`qKJ*{Ic-p}4ku9Kb8(C(YbK*6;q>|#%X&g*onM;D#5R$8O%D< z87rR~v&JlyidF@XIa18IcBbSW%iEbgCqFw~IFK86Cwmyzhpqgq-N;4l(6FICiJO5avNqO$n6$bK~7azHP z;hKi{-=Doa_vA}|dyPs(c>UC=H-BAam^*V~{^a8o>)h2db1$A_(U39GGMFpaduOM| z?Bag8PN_jBYvo5RmLV>aQij~g9M|dg!FN}|ILm0MoH8{Dtu}1^D2wQj?M^!5!&Z^$ z!t%#{gp)`frVJ&OGK^(5yhM?rmmW+CYHP|sO-CxmL`MSX%O2(o73G|fl&TUe@yCB9 z-bkT2wbfYFB?f}yPTECIMl4jirjE9GrdnOXgQ=pJlmOL=dnQ@<6Vf6Z(jaO*mqi+6 zL-#yX&DYQ*ZI!m{%Paq!vNWoeG=X@F50EpJP%F1c6B0YwHD#DoO(DdXBtaaW)(@RIYiQG#Cp1B zWbt%$5HZ)00mqdaab}BIyFVvtLaOGx-6RT!$Yn#rUG;O>UlI1$*7!c>$R0a4G3hem zdlv7?lIz+9x9Tl=Pce#iIF4I#i`IyaE+tL#{l?2A4B=P_Nf#_pOw## zu$=b9a8bi_%?7L!yWOj8SS@y2ywz?C(c5hyc)KkGUy_NYZ}Ua7y!k@*qN!I~&p;a} z6zpPO-YS*sQWP&}SbNhl2CYsMmo%)b4`n>drNpf~mm8pAKjM7z>PLB$JG+#v1C&2L zfCuoP5Dr2s;ULw#$khjZf*@Y*>VrN>5N~_+L7yUs7r^?UPZPvDVSUg;1o19dA7l~4 zi(!4x7(u)!)(2&|fULBL@Ozxgnc-XGJKS{z+A904{1)93fC)_U&9uhd z{H}HW1)?w0=yzTf=*)XvfOFGA=e2>(yZ{C`w=Q(<4s_-qnyFRLEB?2mQt2AMR|)ySqvWKip5gO zBB&@=d6cDK%GHadlqFM9-sVxdm<^ivn#EGe0;?$3dX)TCEGZlQ$ag18r@_+^GR{vJsq^g7xuLf>eFE+bP$Y&OG$Y&IiC zSYRTrBXto?M%ak>KwHcxL0in25fz}A0!59O4`iBgf=n}E#04m!Kyf4C1NE9of_hEe zND7dyK$Lu-ZDtce+stO8Nr0LasL5#df%?oAg8Ix>qeXyP6{y8%^?~}$HiG)il+h+Y zDFtdXQa;dt*-p@a*C{GXl*d>D z(%Nnuqpp#EX>7-FN+Iml()cW;Fov|1_#CAOi_Q&vo>CM={0Cp46vMahCw!4o98cj5 ze2G#5m+>l2P)gz&evU6w((z}U##bmc;jefUk5FpnNjinEQfkp69QD^IwQ6h8kFQf| z)4H(@-=LJz?&SsOB&Bw3n0JUrDRtm6&UG3qqp|;@If~d@SQ148KQZksER$mVy%jlF zuK*urpohf2ODcE7sUm86SVXwk0{_7;Zw<1fmv0T?{&19&(8`QQz0~2qD^&56Xgo&> zokag`?b#aY^%7)xYtJOpBi7n|5z&p8G5CqVu~rRq-RT~*r+LeYtE8BoTAYE=pr@xiLdg<1uU)`F|}0E2Rg-Q-gB3brXn{=F-$0i>w(x>QxRcgB&B;dZWaixfY`#E*e4 zCgK)8CLfWM+xYbH>E_eVXMoSNFc&*7(RB`7_QpW#Iq{|5mk#{&QW literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.class b/target/classes/org/springblade/modules/nh/excel/MonitorEntryDailyStatExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..657d07caa66bcdd4661a306f5300d7c78cc71eae GIT binary patch literal 33880 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 OYB@k>vQM+KiTVGmwLV4w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.class b/target/classes/org/springblade/modules/nh/excel/MonitorEntryMonthStatExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..d1ae5f0b3b7642858a48886bef3b11b45f3c9f0e GIT binary patch literal 3964 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.class b/target/classes/org/springblade/modules/nh/excel/MonitorEntryYearStatExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..6c0879ca7ad02de1266007fa0d3a7b6c919a8f32 GIT binary patch literal 5499 zcmbVQTW}NC8UEJRWhJj{W3J+oaB&)p!3wmbVU1~tF~O+~6oVCVq%(c)Q~T5hNc@z?zLcil**z<*%tqr0!%F`- z|M&mr{MY^EzyI&;n*avzN*XO_O(Lctj)a2F6UHecS2nE4+<}P`X5Lkh*jchl?k)wb z8+*o6P?1U^t)UH?0^P1m=A4;I$(o!f8wE2rZ5OI#)5%%IocUzlEaygT3fq+-%dN~F zGmXlaYq&##qd;|Lt^DEAw8>*fymPB=shrzmxMsgNr(Ht_Iu#_HS?BQV3}Ib9%)8#0 zD^B%*T^be(pk`NHp}%BX!v&#XsfJ}(t{^tclNBrui4R+@IcZir`K*SO0v4aPEw?BH zS8G^oU5IDHIh}~ulTZH0-DYQC5Jg4CSA+A!K z?stn~bDM@w;#0gSH;1HAOB%FFvjq4-4WGtCbSS|!htdfR_?m6HhJNf+&?eBekk-KU zpbFKyG<*i1Rgm_;GOmpmk&zYXhcyfebO+G~LctZ54{6woM`&izaEgO=f%(A<9qwXY z4{LZ7pHr}W+L$s2Z7XlMM@ue27UN{Oj)Du)`Sr_%{3|cebSH>G2o$j;eHsFJUJD0P z9+t$Yf+b!RlfFtv{i?@^#Usvr~CGj5ctW}J45e~N%zI)zyIyr*|T#mK7ISr^|?!LD%kKq z-`vGlZ(nk{!HQ4+b=!C(7%7?FLP(lPn}k1H)4Jgbc~cNbANSu!mJ$j{ns^O=Z*5XL7&nc zax>-@OZ3Oik&oZPXjz*R&iTc6WmV5O!#8TWMZ0j&s2J0x%OEoQJu#X64UIsigOKYW zD4g`769x@oS-5!wi6?|qLcF3EO{re$4QI%#6mX50P=yBu)SH(8DRyH6l+B7cVY@|> z?I|UE+3h#kw6_;5Jcid+=_{WTtUOlGUp1c>EZaRMi`DPt^o7q4?PPpNt>3guL~TQp z0O{pSz?bVq9y|QTppibNaWg~z9{*ZS?E3PqYqEommABHLuQa zjqfv!!Xf+gKC?7gbeYfn3m0YgaZSsuON-OHnC=hTw(GbRW5&;Wrz3&q(zt}@lXyWi z=F1AY>tjaAI%Q9pIp18rSMN3Q92xl5eLkG!66h=4XIKT!8QmkcJyo6Q4>ed>K%t!m zK`}@~z>kOU!MixLB~=U>aefN6U>f`s{vrSq z$n%@Ug`NCt6n+!QKakmi$NA|C4@3%cYKjof%oiSv6y^{WA-rh5@NlFsXVD1ZCG&+3 zL<(~fjSyZjU-(F*Felas;Z^g6k4Fk~f{hTqcfPO@DO`Zbn21p6{B9Ak+0=Ut$>=~Y z^AR%8B94BsJVCiQUwmG^Pofy5GP6*XerZXS{-PAEa?wIn`h_S}`im2oin`^Jg{t(+ zR;pa)8D5T7xniLz{UVntS9&U^VMX0?)k0PJEkUYW&3{lO6~iO= zCr*)yV-)|uX;KN4aSczBO7eLFv;0)?V_d*fq*9zwzK^exO5-|n_G_ftaD$!T>!dXN zi@!I&K`MiPvz>mER6G0oI(&;%hmyc5e4A7!zC#<1VntH@FWQq(?_gOHE&Q)4cev}3 zsgFxSCfG@y6BB<@kU6`9-Vj|XE;36vG5kXDo#;2I;B6${OAfEA1R5PLW%-MmTkLx+ zf1-*s6}{8hzcV)ACFbhR{vy*-?d-jRjY*CwlGSHz)#DzEdFlzN z*?7R(t|vTJqQ+wO`cgaeq{m|7N~vVP8qigbrPf$XXJ2Z!p7L1CWGR*MSgWH`>IvUC znNqE|i8J^vO^-9+-y}F-{>DwZGGJ$HkKkD00K;`aZADyAy^$be^-K& zjo>;yf+0oJyF}_z(L5>0KMeW?5+DBW*&7poH;iUW@$^UV>!&wEPzl5LLsq6gVvR5$ zV*Faq6y3o`r0Q-y_w(uFvz5>Gx3LeHKM{n7xAihXV)&6)ROh_`cnzZ`2jB~A9~^+k fI0^s6Cw_{HgsNQpjL(bsIag^?FXNZ^HM0K)&Xj9G literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/MonitorInverterStatExcel.class b/target/classes/org/springblade/modules/nh/excel/MonitorInverterStatExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..a24675ece7801392b996a2c8777e92f4fcbf44ae GIT binary patch literal 19801 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 J3tL6j{{i5g&4&O0 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/PowerStationImport.class b/target/classes/org/springblade/modules/nh/excel/PowerStationImport.class new file mode 100644 index 0000000000000000000000000000000000000000..bf8406f627ba4506b6f0454a5823754a218d8ebe GIT binary patch literal 11391 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/excel/PowerStationImporter.class b/target/classes/org/springblade/modules/nh/excel/PowerStationImporter.class new file mode 100644 index 0000000000000000000000000000000000000000..6c804dff7f00949cce0260442afc65f23062e378 GIT binary patch literal 1307 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$11.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$11.class new file mode 100644 index 0000000000000000000000000000000000000000..14fb67348f55ebe55bfd9ce410f10e5ec62b6354 GIT binary patch literal 1141 zcmbtT%WhLK5Is(l=F!lG@+{@iMHg)mm5V+Y$QbjPpo z2`ms23qF9);6o7Or0Nc-3HR!H9-e#V%y|6k&ySw~USh3`9OjD1S5d&cz;o+*(hr?B zy-udOBnP%T%E(L8m&Ym%)}2YE{YTPrXDoJxdVPCaU_SJ!R2VtV`a7Ab6OE~fv?w%^6LqTODCkTk+OvK66YK^ndla-eCCBU?rIs}xm_ARD zm2W8Qo$s|Kd+qVwfwQf8bNmWa+IHkpdaYxh7cb`OaiqmZ@yeu`^*oW2Ruyqa;OXTl zUf@-67xx5KneV?i34EDmbpEG$`cU7TqS2Eo__TOtO8ex)TkC^BbZ@PK87VPi^u{sLHETp$1d literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$2.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$2.class new file mode 100644 index 0000000000000000000000000000000000000000..5d30ada95623dc50faf236cad6178d5ae6ef1ed7 GIT binary patch literal 1081 zcmbVLOK%e~5dNIzxeaY7&+=*yIkZJ!RD?iEiBwg*q)?)?>fPB)6PH~(*iPEs_zV0L z4hV?@;>?di%%&9wZrQcg^U(O4nNKsn|NQs~;3d{;C}5$2VjU%v1)fN|EKTHzia&a5WNaPDa6Tq^$XAb!$&rbPv+ro5Lt9{BWAjMh#YV0ovZuv8J7B=& zjyAMEN&DmuRX<_RO2@`3IZ{q%_NB9!buI8bPrBxIOQ7+d!pIJ~%BhsNTL!Bg=%GHP#yPhU*H;7_kSeyby(CcjoWWmbqktP6oXK0b&9aD9+{J^LXBBHK KBZkdV^7j|$2t>L7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$3.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$3.class new file mode 100644 index 0000000000000000000000000000000000000000..fafb4c8fdbdc99c38df6ef1edcd2c691f05927a6 GIT binary patch literal 1074 zcmbVL$!-%t5Pj`<&yYA_4O?>XAqh$v$wDAGSc)Px$pp)Za&M0-c878I(A@@d)Uq#kFilh0SgrrBa~1UcwpT~`qXJN8YF5+ za$<+mguFCkd8*=I-MLiSzauU8XJS9q&6YqpjJ0pxXM%1HhISoQ)GDY)SVSbS6Wa-g z^MTy^Ng~fw{MuV1W9vwU^OWQjpT^p<9L^++=f52i^wZOwX;hL?sK;tEau^sl5QxoE9nXGoCM@EII zbQTfbP z0n2=rXTBfNVEx*K7gn&!7W>cG1TM2)5-5Gh=&!I*z*Tn6-NH59N=L9u}n$^ws#?MpYZI_vjR zm5>~oWSo+d*+3qv*c*E$m3ALU%bncpjC5;DpzH_QwH`7+GzUVvjw)&u)EihtL*RaF zhTP71vLA=3JW=sGXEGTZOVXc>NFMUkrDL*`#l+pWb*6nsU}1gZNZ{%ETqMHM;;u;; za5>T$?Tv>$vWKdda%Lqmu}Y7W)gk_uEQVbRJej9mYpX5Ld`o^{l6_^>ka)KYRy)xB zO!=|proW?^gxH>$N0TX*`}W2RqD@G$@_hc)J#zlFabBSDCdvJ@LOYD~fN}mG!Wey6s b!o|T}!*#Yrtl}o_v?GA%#3H|_n)7?0KC9@4FxPzP;8)tvcR@=L+K|@o8cf+ zDao--rx|%^M)E`@!Mby)wEsw2?#{^WM7OpD%3-8^>j?vN=Rj!JQAMqSdIO7S2s}#c zn8W!%?$bDvrz&~xt&xd!B*XcH5>MJ>}GxxLO9Q9qOS` zVd_W-(arS`JGt}dQ^@bsQ$xz*l?E$^6tp=b$2F!Zs0l+%oRx1V>|d&1vN|I7oQ-U| zGdlwHLpyZ|z1Fb{OaF%M@u@mf+^AP3$*kvby?DtAZVNn}V+0$xi+cjAoalct68Ms5 zrgB%@rw{GTdAi3lR6QUc-dZ078vDkO+sl;q4r9xXL+@YEZQO%Bt$_$;5jyHC}63AVjU%v1)dl?kZx>sI_M`V zCOI*lUN*$=gAK4O4y0fbh7Dryx3bu6PU@E|fH zZs$DN&!a@1s_4Blsf>&z>CeU_d%Se%ge;{Iard@PweJWlZEYV5Jlk4`MD}ZO-^2{K z8tRk|CZj&tp6Vx@Sqn|1l4E6c7XM2Yvt0{3U8G%ewM@#IZKso<8t} zuk#GXY@4GGt?fA!o04SN`S7a;bJnv&gTAssnv@|~>m^%RXpb}KWFzhzwF z{0e&=wgtAq&i(HYJ3mnQ#!&&Qyq5FYb2Qk$KCQxKtZ~HkIhw!~_Dce#FB$w*4hp!& a#hJZ_qu!m}Y2vbL2iqy+#(&_K za6m{LxN+%^Ld>QW7f#7q>v?GW&CI8n%RfJV0eFS=3UXK|AzwoQMS&OA4Wu7AZ3g{B z#UxW3j}!9J4CR@Mf^`$AwEsj}?oGwsNH>}S#W2*q@r(gFb0D;;D5FwBwT4C11hyla zaylQ#eNGd3uA&d#8W~wfGE7D!dwg~2j2xMWIQyjz5T*ves<@8UG}5_Q(^Tt(p~R@mbBDVo47)(ZlKFB$wQ8#&zO;7s1dJ(hW_;Q<~` PJ!^QvvdXYoO8))=zivmt literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$8.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi$8.class new file mode 100644 index 0000000000000000000000000000000000000000..ae01c51297aa598b79ad2c84200a9b85d3c8b480 GIT binary patch literal 1172 zcmbVL%WhLK5Is)wZfHY!wmjNJ7Htt22_Yh-M5?MnD}^dbtL~kfY2tEY2iqxh$Di;G zED#b4K7eoFTM*;4V#gx)TG#XN%$XT`=GUJeKLNbPMg=)6l#s8XfTF-l>xR-#oHoOL zss<#-b}&uJOEZ#ZDhbwIN~Qfr(sFl3b|<>g6exy~_KoKZ(8++%s-lca3Dp`FQ4@HY z*fEFmf!wEYD$iB&-diIR>qv&n3CR=QdUQsPOhO!eM;jg50t=g4rvlB*Oi4u7{GJ^! z;BrSBI+~9A+{(JYIuf<&c6l7v#7`zA|#ox(UNfoRx1W99|zCXulti zVuY@JoaR<5MjC>%3>@>O%2r?VBXEo_qG{I!jm+c#)wGYj}u90&AS@ ze^L_oGEZ}5FP%QLwz51YH&ywFd^oT^2-FUZA-9(*@5y6>XT8j0FY5I;?UCbu5jR-B z#9W(cj%juK$v24Y?g2F)9p_?xZSBUvnY4IiO=AL zG4a9&@F~3a9gP39ggX=3-R%6w{r=Rdk#1}W6#YQE##07}W%{;%<@2(vBr+9k#ETF zU6|Sv({3;wSkq~4k6(f6p~-AauXSkh!sSjq2}$uBcGEa9j<<2rs1jBLo?Sh`OS~HH zpv_R^GWJ5kP&!y4b>GGAy> zuZMdaIR55wjr9x6Z8Oa=t!_U02C?}arLQdIu*hd|?E43G=5J5Da2-o5vHuuN;0E&r kfx_nif0KnAZn1NqcW{?!9?Q6ghhxn$R+&~AHiYEoAD^6Bi2wiq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiApi.class new file mode 100644 index 0000000000000000000000000000000000000000..4f9ff26c2cdf56fe3fb8304fa61998441ed60bd8 GIT binary patch literal 19339 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiPage.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiPage.class new file mode 100644 index 0000000000000000000000000000000000000000..c6adc06450573fd0e5fdce0367974c52e4ca6a45 GIT binary patch literal 1987 zcmbW1Z%@-u6vod5wz1K|KJf}W*lil!4Zqfm_Eg0d&tXH7LU zv!lLmp2(IfD88$ky1OT6x?DL*(kvwtlu~Gp6hYgT-BF!WTQ@sRLu*U5YqfiZbX4Eu~w2l;%axGUgcwx`Q$%>z>$2^JLIt+Xvh7g+D%m)%P>F7$1Y0^i1GQxRTs>De)Vl7tH9^Tk zy<=)_&jwc^wNt;! zVirN>|#b zIUD2%o(rZR+`yE=DSmuhCA0wl`DU)~;Rh5n*LV55BzzzG@0bhNhhK93f-xvPi9o@p z`F=TrFS(Xd*y?}EuJUf<`OppcZBg61XhJQAR?lw9*E(w>Gf?~nE1Z_0$SHJP3?sS+ zt0`8vH$%_f3=MlTWJ`h;y!9eZ3vN%0w_w@FEHKBazes$?Vw!GaWH$$2!l?Aucjzv5 z%OjQ*>;$dSJ&dE_eo*2YoWtR+O&IPzt)UtYcYv9zj91rxQeuF|e>8-?jZxltm4D)Y-e`^fC-`m`jgC1a=a}SiDG7%`g1e2e7 P3#t6oHa&%Pigx}3V0Sog literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiRet.class b/target/classes/org/springblade/modules/nh/factory/aiswei/AisweiRet.class new file mode 100644 index 0000000000000000000000000000000000000000..e39bf389de9361e366b47e5b6e35192d86be9650 GIT binary patch literal 1479 zcmbVL+int36y1m02u`7eLbYn^-GOSy#Q4%8Nux1og4zh-!M6jP!Za|`41=bBrAdv6 z4}O3jWn6n^xD2+2^kMedXP=d|*S^f}KR4IK3ZqFQ@x|ZE*4`f%FL#I0)sF7*+&12c| z9QVwW*653}%me@UsF-o&NpCz7RH)C=9onAiDR-YUWOd5Xs-T2rA3K8bbFhZT$$V5^ zrvj}5)s>!%q5|#vg3=AEXCs-bpugEfB=Oqm;*zUdwt7Dvww2qI?ExbBy3>(^mUJz? zhrxu`w;=Ro{R)L5St-hSb~@qRy9!|y1=P5xp7I)D3yVg1t~-+^0yCOnO2!3{atqUb zr@X$?J(8{*Do?qnR0H>+-}UtfbJ%wPKpX&y^R(eRvoggSe~!sRdDZA1wkw9skHcbv;l+5>{1eMW zf{MOhA`L!%3D^xp4sZ&b$;uBB-{8dQ1}s0be-l;@0JKTBaJwCe+`&!I7Hz{u>CQ>} zipP1n%#w6>QBBOJJHp9Tr7An$Nt?;zpPML)I&wZ|DL{o1Sw8nb%!y6mjm6%_mlSwr z-4E#D1-e%jb?2AV{fHhz2e%=jdu35~3A#5f(akgakM5kW`w1CgqS^S)X>C#W=2E(Y zy(lAVg?2D6*8d6g)4s1Q>feI??Mw6ryT(g0n+f-wXHq~+OeRo3C`kPjsRHjA?IIc@ F^DnFu{!0J= literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.class b/target/classes/org/springblade/modules/nh/factory/aiswei/config/AisweiApiRestTemplate.class new file mode 100644 index 0000000000000000000000000000000000000000..42e708bb033322a1af2388de6cba4931a0216daa GIT binary patch literal 2702 zcmb_e>r&fB6#f>R2pgq=qzwcT3TcuWC=oO?Hv=t@P-sk&VoFOdY1i`FULs4bvzch$i;sKF$dQQ4h zEig>C2j2<7_*MqzaNfYXCf>sZhDnWq*STF4uhE&rDv88$6ge_$hk^2H47ZbroKW)W zQYf90@QHyzTr@CbVi=bgZoYx_h7N}QKqx}w3R`W;n(#tJTxQqeSiB9Q5fkrgIKxfF z(sL8v6B8Qwn29U;Tpyh)c=j{Vu&+0-nz)AR45y0PR|f0NC?aaI7&kCsViF%QOdY01 zQlT`mN~d|8@CmUxG*S65%(SulpR$qV8zwAFGYpVx_eGh9jye?kr*Wp8kl)uuQ>H z;w6S_+58TF&Mk+#6>5__2$J9gEt0u3waEu2R`5B2cDxET%eXDJ9%4u>dnM{WXYJEe*C~r#rzVkz+7aqvF|`PWq%VO+^+?nwwfM zx-O_%jtI7X>iIKvH5Yx~`|VqV`PGx38su z{1cvfQ5RN0_|K&+C~wR)x-a}F`vplFN#Dd6rM*c%HiSawK8;c|rqZSND$VZFKBI5% z!~xg=jD7U}PSY-|(Odso02k;xfG=od#z*lG`DjKzNQs(XNo_Z+&Gd)UxdZeM?O}kP z%k+%y;e-4EKAhac)E;KmUt)IqC2no+DxVuLiLP{1ag(!OaIQuMH2N76b9gbvNS`QE`+URD`hEdX*x8e2tivEInE+ENmV;hxw0mXNnJTMvK>$# ziz_59cmSS+r$8Jh4fvj$qxojWXU?4Q&)?sF064;a9x0@A$P|#p9K-U3{49kly`kvz zFKjDfm^*YlCpuRQwsdv%)U4Fiw!v|OE;F!4zL2hSIrc<+3PVb(aolELd4`OBqV935 zl6IylbKEDroob(BjkGb8H5)0CfBTh@sRYf zSRt|C0eC3Hod}5uS+cqEcdc`d<$Hhr`u+pJIgYC+VWWa_4V&0vs87Wg!DFGvyf>W6 z$T4iaRa&_VhK-jeg9xQjvcpZNJ*t%}_E;|g3;BR!_<=$ru+az1+2O`d-hi!(}Vm6Ca zB%CsuFZ}s@?%x=j_?eBRj?74o&W@squ&H$CpTf5PhGB0dt{+~u-gi9I8D12b z6PBCw1q?fZ(z2T+Luo@XjH%NIOeErguqx+2&9a-Ql;K_Qe-ouiRr@Bhk!-6xt6rG) zt9-0DMuip)v}6akgDM#A5|vORzE|KK;@tu_i0>Ep0r8^(?~@bDSC{Hza^y>rB#{RY&D$QS?s literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.class b/target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpHeader.class new file mode 100644 index 0000000000000000000000000000000000000000..5d688afde31ad23dd64f93955d400bd39f0d20fc GIT binary patch literal 665 zcmbu7OHaZ;6ot-|d-mZ_f1N^X(nLF}Cu^U?hiZ0izgWn7)^flKV2~@ypJ=@(jb+kq)#u zVHnxoY2{!s9EVYl$NfkLy^b%tia&(ifv;j7-0@rKnJ{|hQpZn9b1w{HBLl;$#`LR- z#1TWODnz4Qb?u6K)wUhSZ3t@Cen&S=;(f?4>3pAWNq?X$Owu~G=czvJwU~BsF6+Xr zi}pq3z```c1RXRgFniQsDE}oDHx1XqEJNW(E1vs`VIeKPZYC?9leL8fhWvG`qCLAu z&XiSJSg{4UEiq&((vVBm3A^+t)^woigNKfagzWg#Db+$x`Yjphguk0vbEjj5)7rn1 zrNHvda1eRwOedp?zoG9Z;bIFpx^B=_FJT;cP)7U&_252$q6e&cs6s;JzHL`nQo5wwYJ4nDCLVkMAIdl- zBy#sMncqz2`(}2(e?Gqe^l{Wc3FR8BCMu{hwCCbQ@K_{MJ`CnEGz`^Cl_+z?P(C@G z)L=98bvotQGF8bmh(#p%LPvQlGoH-&vj~k&-?&iOt5iJHNoGW1_`Na92We(HBB49i zXXtu=USm^;T`;r;>w$@gb7`Z_V2y@j-$sk(Mo*MDw9<|1xxQR literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.class b/target/classes/org/springblade/modules/nh/factory/aiswei/constant/HttpSchema.class new file mode 100644 index 0000000000000000000000000000000000000000..d7f2bb8af00060f8e5a789278bce9dba84ade16e GIT binary patch literal 468 zcmbtQJx{|h6uj3aO(-ob<*STrz<_t4FjPVe5g?`N?xd!1mD*L}fcRNVNDTY{eiXuv zDwUnVC*Qqye!lnp^Z5l}gkc*EGy`}Y_-GOO3;x1c&efbfCJT`oLhD*8X>JJ3)3a%S zkTBB4oRzCWs(F(0nP5vjt8!5?m9b}@8eP0GF3VRTS*lfOxH9bCm{pu+V#x{K{bce) z7(|<4v2m|m5xV2GW6JYNgy<52%z7^wBlyl3hv*YRCziG9jrB|rdXZG(p;{)QnD8XG z${^Ay&!@bQj;}?}WU?gOM*j+7f7*_9Rixrhx>3DNz6+NMCkX6jVb3wP&<0_ z?J2FyM~0cVJA)P+hW#v`@Zu_0dNNAHSn@O*mx(O6zTn?QY_fdHg(`kZ#p6sDMrgys zX<=k~C~14nu=s80xx?`2AaJ9vXFfx>|1UT+*7-fdf_HyYqJ=4Q z$*}&|X?Wf?TAM~iK==&3=^yoo1hgJGVife!IvjhBd5YTPA$TH`h1 uXEoj+CuTnn)#v2ME2f;?8?fst;ssSJ0~>frwNtHU@d~er7~W8AVCxU6$e2(7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProR.class new file mode 100644 index 0000000000000000000000000000000000000000..e892e521470ab5b0203f2a61675cdb4bab659060 GIT binary patch literal 2768 zcmb_e-*XdH6#j0qznX4o2(%DIineImw8Y;^(jroR#ipgUP!xP{o2<>!bhqwqK>i5c z9sdA%;X!8O|I=l&r^FCMGe(SX)-mTJV}oi`>@=tXRp! z3}yw6ZChLRg6B4@@TL)%yS47FALi$XbxfJ!MM*omyw>F4qANK#qJ$U1J3(KJK7?CC*xdmAt52?5m$TedGSDD#`>wwf7fdrKqPWQYUZ9Vtg@ z*{=e*SRXHj)JLt4&q4(S?l;}>Kh^>v#i*u*fHLv40 z?8}a<%jkhCbw=JK(sRM{!XWgmotUR!Si^D-*RZ1FbJ-Tr;KJeQq58WG@QY9`Htaf|N3GJ$Z z>jKjU7?>n;^J3hCEn&}Ch|LYmn$Kk z8;*O8e}VoJH#79tH6HA1%onJS@z8!_v#&8<%09;V{l+7Gjo-ujj8BGL;Ve1Qrc1v< z@1OK&j6j^U%t^8-@B!^qUQgt?_^`jrp_g?j3)6Es9J%}mANPwg|FSM+je9N&kxPCt zVwXa?9$*3wO4C0=RUVc8gz*E^?4!~jFqUSfALD4Wq;PzBhC@Y}{R@LdQ^qp5b^b4y46y+0T+tMSk6r8l7cCvXfNFq)a4z0pdjB zMpAo;s0?2wk~C5^DiOcIRIxY38M@Hu=tjOer_4u%IFYZmSOz0sdI){?G2Z-I>c=XI z+$bu^jv(^||=KB*H9Kv4D#VN5u**QOY2PMG`Bi9w+rz zC@G}*7_L%MBQozndrpNyGKC<45aK!EyX%Zpj6m%Ix)^1zDuHP!*e-IvmSBci>%Ay* yJW)Pd1xXKozA<_?9p_lk)Q2`fG=WNi^5`SyB!BvjZI=;Xy6#oNih8Ls& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getdevicelistpro/GetDeviceListProReq.class new file mode 100644 index 0000000000000000000000000000000000000000..e4f8b02d97ae3254c3c4d4218d49c048cc49c472 GIT binary patch literal 2306 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinvertercurrenterrorpro/GetInverterCurrentErrorProReq.class new file mode 100644 index 0000000000000000000000000000000000000000..ca9bf1e9165ae9c4624689331fe7b1e0620c1411 GIT binary patch literal 2778 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterdatapagepro/GetInverterDataPageProReq.class new file mode 100644 index 0000000000000000000000000000000000000000..2cd8d6937c865321674acdf640874dd704f796b3 GIT binary patch literal 4166 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 O4X!ejKE|hTko^zI%T&_< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterhiserrorpagepro/GetInverterHisErrorPageProR.class new file mode 100644 index 0000000000000000000000000000000000000000..97c5c1a0c4ccfc1fff8b933d75ed2d9cdbbe7c24 GIT binary patch literal 4294 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverteroverviewpro/GetInverterOverviewProR.class new file mode 100644 index 0000000000000000000000000000000000000000..a00e4f38b2a38cb73bdbf8b7f96d56c4e4074f2c GIT binary patch literal 4789 zcmcIoTW=f375+vdxl3v#(Q;&)juOW%)9Pk1RqNJS+HMoY7devcN~&DPc9IpjmS|DC z3U?_-z2A~vUV3?H(T6_PKw+R4G!76HLGzLVeeP5H)L+q;y6HEwv*b$J1VVrU+MToK zeCN!}nQzVv^|$}N^Dcn1_)!5p=rxeBkVQ_Qc-Pr-Dow{*tz2EX>()Yn+?j^g2+s-h zj*czoVIps!V4)9|z%9SES_w8=4R3X&>D1lIhF@q8rX?^;NCD*76qwGL69V1%~Fjqgo7QXH_|l0Skk2 z5IJ|ruRGgPb-=<NJhbtTT;I~(ru8RJ+g%JtL zZa3U!UAjGK;h2nMw%poQ-3i?SmB%fdz$d7zIo|o#+D=nocr-EID2vsxmn8UU3!lWN zIASJZM)v*K=vV@)dzVWxW?@{0&ABpWAe|>IoRrQcoo~o7NoB>tGx)TCLFKGU*3OVR zT@v~k3!jzHJfY`R#-#Rh7Czt6s-#Knvli@*cFAYnr1p$O#xO!3BP?`s(1R~n_#&R; z$kv=-ZN{&=iYv22WY~;_7jRzS@P@PQ&iG!<39mOog1jJfyf6^>c`{pixQU#6JdMs| zBFr2vO6G)U*Bj}?mD&g!1pRn z2UNMtZ!&n3Oy91OLR(I=&7>IaE1_hnk~SnkwT}5E*`v%2&NV#uN_%6)Z7n(MTN2c- zIn8CK)sWv>nF-e#9L&pe|IZ!Bu^T~5tR1wDlef&0G4Ft|I~iQQ)qk ze=#Jj=ABKw+}Udjv-8|XVwN?bdaFv#kqgC^U+ji9)>B-#of-wQk{8b zrZ^wm?OaZE=FK3*`Ot3X(Nt&N3{sqr?slF`b>^X-;{3#J=Vwx#zk~&@iCik1t)yCR zeBvz_=?i@*Lgd#En(<@7#^`|Tsz zD!PxMy?tEfJeJe@IJnW5k4=C1k?Rm9i3(dmlsh(O=4zatY9s zZ4fkNn^_1{*;c7ff-DW9lmMN!`w2R2 z50v^PXh4JdO9Kf|)gC0MY8Oj`5>(Wn!BQ~>Wgc*o^(M+^RC^yp$&0t7IF6gR#cU4? z3%6O1dr-zByi8p$f0O(huTaYH)c6NprIcm7zr&%FLlbXdg_405euo+*6F+^yAMV<)(aPcdj0bB{~cE8V6Y`Cpf4g2X5P)O<7YpEBuY?Oym0d$;$GLNExI z?_TGgFvkUvH?|X`=oFu6KBxGc=2PY~!KeBTo(FbcB9iyL6CHxQt~S*+zRK2Qkp>ndr084_n}yAY83P8=>c~ zuC$znTUiepn=Lo0_|3|*45eJo3H}?E{ZWy~^!0Ddn-rop=%0)Mx zOV!s>^C@H z-C1*I0>AFWx4f7jKZ+ecjsz}u$Dc;DJI39b9*K}Bb^74E=et)o*H_$d*;#2Zp2B=k zcUm`{(39&_sl`o?5!{~te=A=jGf}4m+v=6(J9d-Zy5Ppmpt0zL&brH{VqiI1Ddx#H zWy!aI2)4IST66YS5I5aWpiib%N}H`eQFd0zmTE8oTkW-%xnxte8hxlOwHR26o%-5> zvyt+qFJ7NpxWGu}*f60RZMNjqYM)`2+79)SvbW+uB}%_b!Dd)@XFXYz;a6UkWAcWO zlXF23M{($EC~~4f16TSmj|CG~WoKOzC~aLP-bc21MV+OZZB|`ef$zK9ECnj3mmI&r zYhIcUg0;Lu`F&gmRN@#%JC!T=fGZ*2DUREXpTPWyn;C2w zTRn~WO7$=v*lBF{H0ER0!#KawIN#IwLmX#(GVCg6$&oQ${sm_5r1vWX`H@LWLL{34 zA5qo?7kMsD^maM$x-Mm5IxYtjmml|bnSWiEvc?^kg~TPl6)JIYnsbf`JS>m@2wi(z z{sYzz(6f)rzr$LX7=Ma4k|l)$S0^}BwaGuxU(}vs?<3fgMeQjLwGqQrosi+GQPd^I zc#gs&3>5XE(FGc*ngoqht)eMGRthqURvV-}W)%%Vm~#{xdX6eR;K-ic{SCPEy-8A=vD<(XyJru8@Wn6O@8 zzljY0Eb#&dm6+=m+hspVLN)nSSA_C>L5Uq9nUsliUjUVeY9zgrh|ch3B55O?PD;ct zGF9wNaf~huI=YdsO=;6fAr9wjO_ssRmmk5Le2UU-sUNOta-*oFJC-bt+8U|q$rkI9 z7+FO<**e^t>ND!VG{P*dle)7EN5>-0QOckXS1`k{JfOTxF-8L1e8-UhTW+ICe6GrC|~$emh(8Rl%~QJCV1^4Tg#+9XB%jXc9B ku=9oJe%K0~#4jcVyo5Q<7Cl|&Z;^C>1PCnQ25zDFFWQwDWB>pF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getinverterrecoverstatuspro/GetInverterRecoverStatusProR.class new file mode 100644 index 0000000000000000000000000000000000000000..0fd6cd4fdd9e5a4c81b51606c42e1a3b46d996fd GIT binary patch literal 2992 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 HCx!QC30KqD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getlasttsdatapro/GetLastTsDataProReq.class new file mode 100644 index 0000000000000000000000000000000000000000..b6d454e697d5a16a2e6c108b6a312258c1f9b420 GIT binary patch literal 2299 zcmb_d-%}e^6#j0qn}o1HiiHxvN-b4Fplh{in?ThXul z;~yX|Jm`$#OdlNkQfK@d{4;#C*6;3aLMR!>2Petid(S;TzVn@PHoyP<3Vynf9ToH z-fmOYE%U&wx0;r3It}wHSqoh6u_k21ap-$^=u10$rRgbZN(-6ft=NuPVnWOL_H``GkSj+UDC4fCOGQFo`Sl z*^qu?(XCq{S(RZ@eAU1dt_fT^ko(r6>(pfMnH^Bc@dN1uO!HPZ)HwKgI6V*wXi==8 zs_j_ot%F_5+m^dcMjx)aHQC&eo~_QYPzxG1<84>}|Du(dyWipS4Eb?Jg&j86niVwM z`iAu6ffZOD!6>VcMgifTEqPou7TOIOmM4%^_^0CL=nsYMQ*;$Jgg|^1p9Z!9S=(Qe zhcOHK#%5*h9>Y~wSI_cWP1WOVN2#gUEEBj9a>m_qTVBmtwiUBuJzDm<>Qkn7*L4Fw z@Z@2Xr$3a!$64IPVj4@T4H$Lmw54t55&OrCqC}ms9F2^?H{CrED@IONrBmmCO;ufY zzjatX-zZ&@Gltub53L^RUv%lW=cG#%yI7RX=9V2;To45T zqvAN0x5$zAEkBL>v^6-+6n{dxH||mDs7xZ^bn9FM? z7;9^cmvpL(mr{9M>7<@v_y_}eJ)deTX~&F}>?%Q2ztspshld7>{x(66U<)@`(*%cb z3GYyrpefpo|KV9Z845pEJj?pv{{AR>+j78hN4jCrN z(9~a0OvY`7R0Yu$3kqp>vqVUvis>DsI`Ju_am8+g^zuK2BGm+c(1p&mlq=6`3n7UU zxpIRPW^%`Aa1qFKOx`uf;bRMJ%r-dJ}dt@*2ZP;sbteF{Vx$ZgZDFmat0v zC2^JgT;@&-$+-{h1qB+(5rTw3h!<2kJtvf41bSPct)rb4QH}BDJF}uX?R>!8UD^>*5pnyNt&d$Y15{i+9fRmR9S8)TWCw#G_!Y z*5VGXC<21ADDG0lDvMB{B8v+s?kg&S=;MEX`v~IuopbJ;o9U%Y(H}lfZq9ek_rC8r z_blJ}X6BiHAA5|5*3*lv6rq*`MGcBkTu^4(K49mHc4;zq$-Zf4!W9%hr%)=m=L%|B zxoTI6l9WnNt3hpK2pTI_Cv&w*wNRSeSG4m^Zl;`{EjqPaX)1T6J>izChjMnIcF-y0 z@@_dd>9`eW7YjAFQZ45;Iqo)8$57o?Eng}qF;Si^xz$60y2t7R87;Zaq*EQ{zS|Az zpp2kax9r-*O8KBu71R{~UsRsmS9Bz{%b;$WhZnFbh5ZghgSZ_o4_e}S4eDcDbfVxM z;!aG17H~tGJs}4)ZqGQ}zR;jW5?GwgyWFtYpd~z-xZ{@dw&X4~Xc=RY6II7{9fezN z&>I*RIhbeKN`qE;G`s~j4H>kCY4O6$RGuefcMsjx6=lLHnMiyVPVlUv_x&@LWu8*tcJa`w3W zEe2iY@i$BU)p~*6JadPtw-1Z%GiZXr2}q1!2XUKY(3RZQ zjGa^WKfygd32+4V{q$L230);-kRLz8Z_%E zY|~56YjMz^cM!IIa>}kvjg<3_JjSD4IQ;K4=w0+~L47m!erKdyny}s71s9+awn@pY z32|m{M|dk7SaiK!ffhY2|8+|<%Ex1lZ#jNEA+K>f=wyU~r$8$ql&Goh7%P;V@!6Su zPIae^u*4y#JYg4i+0_Eqbz{_>D%1px|4*aoFwSc&a9(@E7IW1ug#4|JJ5|nav#Z!k zu2aQG(jW$p>73A@Cx@vi;JouO2csu~F$o?7js*?_qw9x3x%dbuA$81g2$-M`0ggIq zyYoH*2VB|eI4HDt#FZi+3B}tC9;P5Ue(tnY9 zgBq5)4gE2DRVB+;pf9T`dVX{O^ku!v5IY;IKe2zSUC~D`w(Zi> zBTd#9xh)%9%|zB)x|S@jm8`2RnXRuuOO_`+k@aRck@coCmQ}N7WarFMEUP9Zm94*j zBI~_uEUVrvm94)<(k-hahWFo5o~=$e8w(s>=53mrQk}wC6pr|X<+59It9C`5^;$=q ze$z_7rQap!_k0aJD=1q}xC*5M<^4`h^`LHsjVhTFbXzctXrL0k*e>Of`enz;<^8jj z;S=5gbBH?+Rh$s`zfzyx^&k=2Hf z2OG&NLdi(=L&(`i@=z!lp9(_AD;mkUP%@J45c29q^14tmK6!+Y*EW*R3?(D64lJOZTgnV`*c{G%KEqwq7m(R0>l7m!y_0WTq z2#*H63PCCwaHQaHCg_9U#gOYD<_P)_eK<@q-K-=>Mqg4@K0+T2lk99(l7p--*)8?2 z3zzI^R+8hjFWDz0KNc=IzgbBR{l4S^Df#hm$^K>~`4;gd7fH$M!2jAkV{(eWkE zlKP(xpUbnGmE@esmmHRo_;O7}qUaHn%aHYyhF0H2vFMSZCnYgQkn zb7U39`QvNw&x)>nn%d0hQ`C8wjJ0O;C|%?sHd!%1Hd%2q#+dk1)ODEBX3UHSKwGQ? zKwGS&nP5;-gA!&k02;Sa0F7I%W{N?r8k90y1EB3z8$jDF!)#-ap+T?$pq*A4pq*B` znPyPC2BppR0BE<>0nlzMV|Fkoqd^^JCIH%Fbpo`<>M}bS)TKe4W>)~T*XjmnuQku? zX3#th>Ne*EK(^HbkZtvvJq+sApdPa~0Loi^0OhUuW*>v*Yfzs#KLDDvOn@e>1*XZM z1sY_U3j&~Ns~@0gYoXcCpoJRLZ!QdgW~@a3%~%8GA_fg;&?0jn0IFDv0jgL_%*6~^ zqCtzzB>_;)8U(0jEj0%jv{Zuz&7~d)yN;+OkZ8*+U0k7dqIWMxN^~pThOOHZxr}Z{ z<{qJJWHa4?wia3)xrjakD@vOpE9kSZVzf0fNO!`DQ!x^u&%sJiRlG!>hn1w8#Pjq8 zSSh+yJWF4M)k;Uj!}KLsZS<(PpS}#spy$NR^c7fX`m4B}z6z@ypD#*u7px8u7gKZ? zRz@rrqx3aconlCg(AQygiOnKQcf;xy+r$8U1J*oIrdQ|)tR68-|DJ_)ppXgh# z`otah2z?K%`Qj0JknV+LipSA%AFKu91-g;$ht)6sPS?@5VJ(cb(0+OV)}ly?9B^)< zfyhdHU49hS;>amc6+tY@zdq=6>TGNhPWoaTy?Ad0Kg6j|fGX#Ud3y`H<#x=79~N(y zVG-YRqX}tb;%Z2A6Nv{h!{1$lH$V%% zDEJONiq(#Zd+58cBGfAGrpK@;T4JXFo#p)-pGU6KiM)y-#o#IaXviLJtU3_?>f1@R@pdp%|q!2i;B*ZHiaJ?Skh8~J} z01p$L+oWOf0IZH|Y}MezTyPy9;?R`jag;hM+^327fmppD@WDU%zES@DINYu2t*_#* z_kJRT7HNBRk-E-nfV7lxLaDmiYvZ(F`n3e>noU8qEME$8Ux9vtKfMagqP2KObK>=p zp9Dd7k!iY%dM_u((H(W3Oh@&;PMW5>>pIEq>OH<5rtY-+) zMHjkl7%og$0{z#$n_i*j)mIAVm#_QfNWeN)tyiNH0^Rx1r3@ToY-C;Zz!jJa!j(d^ z5mxIf%Qdg!7uJKyM$K;)>Z^roUO5WFTLrJ${MfG+Dp62a@uLQP*Q(8^5e9{`el*YR z47c-PaKXPJU`D~3Ul$md=>)P6N&hAJ>K!in&`($pR{T(4R{}O&kNg!sjBx`lc1fJw z@K*e}jdf`|=we9f9I0EVe!|op>~)dD6I7PH`so`RUQJ*ypKz*3D2-l{;QcP1#8U(_ zkMk;k!Te|f-3mdHdcegq(zE4Dw@qn($i=X<&(eNg1t!(cx_C~id$hV0+o+2%jH}lz zDq41LdYvXlzHQRQVHAj6^_r_wLB)^DH9f#0zu@9UyddnZj zM@@k%$&9trl&rR=O7fw72^cD*zL{!WmSfou7ro^ggB+L%%3f{B3#)Rkl}5B$Wmxkw z|8IAdNKey`G?kmmtOFfg;tiPfqt&1??}gsFANe5zkyg6iLrJPy<(6hyVsuSeNxhMk z6cEAYe%3uDyEs~vU7VHq4(pcgiIuIL8z1Q|7U)%noqhXQy=q72Tq%@meW|o-z3W|w zyz<(t*U+q+^B1OPPcz(UHf`uPH)`_ow*qm7+b_+;qVjJIYi~{zC=!{@La-5*{WDcr z;GxGZ`C)mp$@8foh?-I8H5B2^J`3+<@jfouxGY=t1A*br5UAE~@(L8xJ5(2+Q3FQc z>tsO9rZ2CH>oTzkmL-SM&SU>bMEe~0r8%j4ICqc>;ftORJJ zXcIJ2baJ)?IT~c=oCGLe%n+0>W^)+{%4$$1mu-QJJB+$J(d_D`G*mY2y5Ge~yutJb z@hwjA_H^;b!xxyMuA8^$bG%8(z*(%}G$j+W@NtHcg&Nnhlx&3bagLIMFL}wQDP`~# z_Teo`S-j0Sj-bzW{=yC$&O;2@=;EIv9%8Q&GyfvCy743{WXPXTx*Lx&VALRVzaGnWu;}G}rlnk8U=ja`aDkE)lm9)OM^qR#93e16zk; h@iG6#ja5ZY)C}yx$jh(j=x^Hxq8p7#{$Nr=X>#af&9qmN)Igbm?+rjg)OicgzJ^46?*>q zYSUSBE1SVuyXi(1zft+dsmDS1u;O^p1J|pp#X)7=ja&2`2kp4UUl>%by77Y4+)OkJ zVX!Em#oneXFgUvt%Tg@2sL9NM-|-Y;E+81Q%_*hSv#Zyen##!y}^^bh?k^?hP9!q+`RCUL$FK z%Ep^`OTeW0a+1n!>oge&E!j9Np*o@S3^a##Y>Z%(dpDe@F&(TiL-IZ|$ZC~sjAKGz zXw%tnrvtz4#J9beAU}#pVI*)pn^L;X{;)He6qC&@Rj~|e_x@SWcjw!it8TdLkX>1r zpzbtRoY0f=RH?-cj}a`-{{J0OBb8By%3W3KgulYZopa+xu(sfY&ZZl?A!D&6Ox!>rIrMSx>U0dbXfe)Wl2{e7d%jT8e#3 zu~Xleb6P2H`oiMO++{{E!yXFVsNIxDuH#!TDOdSY;wBDM#*AkvXoq$8iYE&)wEq;H zk!OdjTnvIZibJQR=!yCb%olJI3no67?Zo3&+Bs&Pe?Qo8D{2$fVOP{C7Wh8fTPaXE zz2^99JoBa5AlPWPYWv$OquFJ+{IKPAf#1#GJLfW^N?lAl&E}F9yEO~T0;BsW7?IRX ziSbiO)uiADQ-Vj!p7DJ*oNhW%_&I@9_?F95;$6P&RDKWdb0*|1!}o6Er!arw zVvhbg#=TvQdBb%v?%QkJ-_@9xRu|)gdyNluHU0n}GCmo0m80ay7%Tq*vwPA<6#^=0 znUiEw;3L}Uf|CJGKE@~AT=u=HOIet0muhmhdz1%X)upWQw#!3_e|{)bl;SMM9wzXp zJoY1W?Me9$SU*6|KPmqXYi@jO3x|^_g=6#Md{woHKhay%p5x$S*b_x<3&%T%lU1FN zlU1XrON{XxgOAZy)Qd(2G+Z?a8m?MJQ-Z7%WEQOsNPEJ7@|nI-P4|@wbesQ2ILEs2 z^NH_JV`!@)$#%|0$}_a1~c@o|29^T)?N43^duW7buws*?XT+vT%`mmSLOL z-#B2xdV!-Ra{O811&%4PCo6W!evX7{@{^vH{Tw5bouo@9Wg^)Fpb}Ayq;DspGklpy z+DNseMEv$r#oiQW=)$0*TLZO8Z7M0m@qt={Wv~Xyk6})1;q9-b{$y2?3q>tmv1D=7 z(r{HzmROg>$SUf|((&$8pH~~E5$3UoXx5QVs>&AhD9_VN!pUl17?`aE+3l zkof?{ODZ&yDFg|G5HAVendhY92=or1gVA=YQkao}?I8DR31*lx+n2&5ca+!Gprl7q q$7lE%+XH)Vi0s8SxSja*q<}Xt%h95zIX+9c#aV&U3ckP{6#oU;brWX* literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProReq.class new file mode 100644 index 0000000000000000000000000000000000000000..da3c21ad9a0215887c8ef71adcaca2227506b976 GIT binary patch literal 3156 zcmcIm-E$LF6#w0HzmjfgDYURsk!rBt#81?OmXAWA+CrtZ$cM@{S=!Jv8#WspW_)&h za>geeXMB|zhX-X8XLxY*1!w%5MEu>on=~ye(-$Yn-gD3SopaCEJ=wqhdH5TENvvd$ zLWc>>h7LoZ=caqx%~jm$YVN|yO|KXV7{|)hayTW>F+8%IhK00=jEzp%0!x0dnyc4> za&>j3;+DMJhF@w_yn3#>mb>8=LqE8abIbKly>hM;`ngpvtkHJpH^LgffuB3;g$t5% zA>u3q{zdN=k92G0b?=Tq@7$(8i=jNGAU)V+qgx(t)V!eVmn3Vqjb6#pN^a;$#$FqJ zlA(wGx>wDRv(LtUI09DDt)98na4Q0R!)*tsfD0p6B=~@h0X#2|rq3s1Z}tw4w83M4 zWCCBXaY$M=JZZKr^kit%uBHUEo@KRI!^+JH8W6LcC0| z@~3;QT=mX3Hdee~$z7??!`?Z+=vJ29pe*+>Qw!J1^l5qS|7ev03sm1M(3Wz>fsZV+ ztLMFN%`YvufxF>_UO<1OnyL${L0VRW=_VD`KtT9g+b`}8Hk2Q(d4WKu3@qF1R6F9f zwo0hlQy>;Lx9LbzHmX2I>BXB!5H&3AD@nZTS`6Ld`n+3<)2c6AoSi>IH)q*)fmd%- zcva2T`DV6xn4VR(jcjbm3VoFt9=_-|f}%H5meq5T?&1-7|Cqp2z8}`Zz^$oF*1HXS zkijx8nfOrl<7I*D=2b0MZ?lne>KN6cGin+LeAC{XF;E#j=T=Lc9oaeGUvJb3&+N}F zic5EDUIP4Tn}z1xZeztJrrkN{Bdqdl zwdw`a6}MjZ>LxxGIQ&#fk|H&6UEtuep)9gW3kEqdQXB&spPa#@QgRqZD<@#Ia`18O z0-F^EpRaM3<0`o7qrXD@6v1BSQ;NyN8+_U^{U(lbC*%O+bF1>tFn^>lg-zwoL}gCD z1m&*n%H4^|9FhsjJ=>M{Cn|HACMfUOt~`*a{1)D3a5CmRSD9#IbnF+H$rVe1=pSU*iC^rjWro`f(K9ru8>=nXn$C-$aUE zOFYJYMW+9QY)^h(tz9#EMgEAh}5AlrORK9oWDu-leBH%kUnl6w`VGa}211?`re>$RbTKlJk7( zxQum*tSD=P%3O&_f&nwhzVjKZ5>N=H8E*<02NhTC}#r-xXZrE<@@g Id;%BFzeIOX-2eap literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoutputpro/GetPlantOutputProResp.class new file mode 100644 index 0000000000000000000000000000000000000000..6d451bf42cac6abfe72b94f0e3e1d082c84efef2 GIT binary patch literal 3213 zcmcImTXWM!6#h1rEX7fXF(hE1KtpJA#l6u|J4t~+AjN?+;nD)VD7J`29LtqtC_jSt zPJcjo;epPybcTmc`$A{>n@Z`oy4Z^2cKT3eY-#uGcg}w2vS;L&m@W41sHoyHW6(uHD#J zubWk?u;o-+b;~O>YK1#y#dq8X1=IHKTXv!9JB1C)Z_>8!wEQN2u2Z;R`72U#C6KJR z&Z^}#xu@B*H?0Q(xpIflnlJY$Nea6R49WfVs_C08(v!m726EU#W!Lgrbu!O}$}Qin z7s|Hhmoh{R8yLYps#eU#`LA1MU0`@Tu}kQ7Y2u~?=M5adL4kfUKNC^fJ3f(sN2FvJ zUo&u6T25QitS9x48hBmm4^aPHL{-X<85qOy&@Md=*ydupNxpq})4(_;$hT&CwFReY z1&LV7F?~}8rZFS1Z_C`Y7Mw=K^l#WcK@HDmOg({%NzWpxJIQy4sfT~0x@K=QOuyxl zz@09Q+4BEi2c`LvfD$@9RJI$|<<{1^tv8CI~B8j-E?g^kA#X}v+4AWSHOl< zNjkM1DSBm|_j{d++g6`Z7ALN=zLzb(=2TZq*W9vv%cbuFRErCZIpZuYuRT#IbgE05 z7}*}j2hBK^b~pSLc`8W=XZt~qj-Y_*_%+L=S2D3tEXIvMU{|=@5ro=t zQ;4+V>EN1gRyLQ-W>iD!%Iebcd2(73(As%TY|A=Z zHjv_zR~bir@=6KbyhR{zA{ZCA%0fh%&$lQk@GbaOCx3?cA%MKir(6a!yu+sv0`M;0 z!XMAV7Kx>Pi5XQ+@gEuY`3z}Lpk*RB=>$FA4Eoq ze9M@nC#Qab*4z1!5D_^q10$m=aEf{=PcpKceAwIM;D0qK6V*036qqcc#9T^O%So15 zX)=|Fa+so>EW@175*?;5&2I^r>xg%bn}i{mqmb7;H{oXD6yN<+dN?)tJyhlK)Njzg zgPM9g^(*w{>B*eJciyZ01@p}Y@rvHgu8uS+!(a^`AE?!`N zIP6aj|Xp4xUqB{Atpl&aG~J@A`}BAKESG?AvE zYuVDQG8ZJ`P_|TK8uaYcBWN>E@y1tDex#_#g}f52=rTFs(r8f)mYA17Nzbdn(xKj= zo)0&S7^bj_i&!EZ6)P;OB@)Wu5O@@g7(Pu0VboY>C>&vwr czZ@j+3f%^4MBo$tZ{Rb|G92B+ZG3_J-&DM{^#A|> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProR.class new file mode 100644 index 0000000000000000000000000000000000000000..f8554d0f6bab85912c6efed3b4317b2932e3c9e8 GIT binary patch literal 7338 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.class b/target/classes/org/springblade/modules/nh/factory/aiswei/dto/getplantoverviewpro/GetPlantOverviewProReq.class new file mode 100644 index 0000000000000000000000000000000000000000..c40f2777a2c1c9d1b67884eb2d7860af8b60e891 GIT binary patch literal 2324 zcmcIlT~ixX7=BK&n=E006bo$xE45S!A6=_e+XT>-mX8XQDGWOG#w9tDEnzp^-O%Bm zIQ{^+;X-E=XL{l2O`Y*K_%pn;*5~XlA(V{cjgw^0d*1VYJm-1eck}z-&wd6lgVh{T zNN1s$(2)_yKeqR5t8Tm7)`P9bvJwhprXAM_X9dz@#mz1l=*l8zq8p~b=bpc91r6VE zx3}tcRa(1VwON;e<<_jP>`LhQ`_XYZwPcW^ADpgsb=rz%&An2jDBi$S|=S=kDH36eyyZ4?n?Yh9g zSetWvp>pw&G9EB7hzkN;#B@8!bbhSZW}f6y1QkrYt|Dio3L7Z@VH0mCe}n!TF@hA{ zG%YIAo>`WyCEo!R@By^3Amw0%eI6Qvf`9Oiqp{C^d%Oj?5zT2B=rxma>WPUF_jqO(@f+d#<>&f)xqa!=O2*$j)y6nI2#?E z`QGT@-1Dk)uA}n=CYeHIE=3n3&hd#Kk?o9okT&WjF>WO(A_S(W)j1f*b91e8$e#Zi zQgPY}*%yW6+cH7vv{A9h6T3J4N5vzFoX{%W$+>6kMJ+h_zS&R7%woGMT%cT zyuig+>}ru=kqk}!DJ5jwVoFsIU9q5$wl_WqJbe}<3N`rYg%ByGm=!6EED_uO;7bIy0p-TnRVM?V8t!bd5@ z5I3M%(2)>G-pr3%9_CF zbQfY+RWbXSG9I%qj!QIVVtXO%#p!I9bq6?x7cIP`fD^Vt^_Ba}7B1t8fI)XvhCr`( zl)a+(s)bkZDkD{;UtM-9EP!-wjIasUEWC!-1;&r$p}p+Z%QE=X320RJ19IgHEOZwT zfj*yPcixc^ISpeCmz=u2-8|a2y?c^WDf-;9tnEq9QTs@#1yzUfN~Qm=twqw~x9REW zM3iH8k5jj02UWMSBRzR!2e!u?Ogcp^>G6s>qP&FLI|Wf|IU;UQwLO89DrYL1mw}eD zy-T)^!huVLC*fvrH<0DSE!l`D(RV)H*ji<<4YuC1{br4APPAe4snE*|+^`%5-F2H@ z*%hTeat`avTt9XE>#4vENiu0 zC$NhqHU%>6!lxBMOJa7i)rKXJ6|gqyb=zC6N#D1916u;uo-4UuB?j&aT>f`c_9iSF zS9w8Wyk0T>@mPA$oI9I+o%zD)<2?ARbF#1V9Ii8jid<+F#yn?oKf>sr_ZV$dC1Ku5QbY)r z%*q5eX>Q)YoBbdM|0|^8v;!G#_@0a)|Kw^gS~WNGEp+WP_bbeApvO;hzrfs@ojJpW z)|SHP_ADO-ZSFS=WVFY)Z~|*Cqn#nswwNgBG?^$QGP<%!JjTcg1~Yml(Kgaf87tn^ zg0O$+*C-<6CPS)*=!ylEY4@;%nT8$HJDKXtPh}c) zY`(=cKO|JCA^3w3I@dzFxTr0)NSsI)tEA9O=T2bEoni6|rJpEh>L8;tyamvK_22vg*2LVHSuMskE8ArRszjn4Nmr5J_Y zHfY;uy(*e9-g}*kwxFPhKctFLg+5}>@a(1OzOF-^?BAzf3?JY&SCc5q{NKQb+@&a$ Ju#FvL{sHWw&wl^_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/enums/Method.class b/target/classes/org/springblade/modules/nh/factory/aiswei/enums/Method.class new file mode 100644 index 0000000000000000000000000000000000000000..9fd21890a7e9b1819448c21b6a0e47520a453dc1 GIT binary patch literal 1586 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..0acdb8199e75c420ea90a549f08487a34796bc8a GIT binary patch literal 8747 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 Pu|(yMus0#LjG^rZarQRw literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiAlarmHistoryPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..b1a59f1fd8aec201882de7bf8b421f9f50f03a01 GIT binary patch literal 9465 zcmeHN33yc175;BB$(u}GFhoHIP=g92fiMCAWD?M@2eV)jf*>l7nU`c>G81MdK(N-@ z#kSU}-E6hi*4CxAwF=rH5v$a;)@rNWY_Zj@LhWkz#k%xA@4cCMBvmKaPrt8US!Uk5 z_uPBW`OkXqorhn%=RN?7)pf(u>K(ap(iS=xW8eucg7Y`3a&14|f z8|XGdsd!>A5Q_Kp#bbfBMvvJTN=4!^h2n-tERtHHP*_#nrNOJvoySB*B)QX!1j4C! zpvO!_Vmr)4%1rb|l4c?iPxN#C{zN>m%1kvmU8^I>71AY3uT8|;&FwyDDD&R@9@)_aqa$}HBr#jqPQV2zTlf!JTMOLZNF;kZCab!y*Hjpxt8fq0LSzM*e zU8z7vq_00}${Z`>i9RFcML^-$LH?<2X{il|D_5@$_VopmNgrlmj#$?*KFmX%hWR=c zV4=csxyf?V(3EI7oKNAjQOvr5bu=juF47Sc2z5f(kunk~nNB(ybS#z*A3IjWh=DYp ziL*2`>R5_p3gdGsX^N%H9y39>b{NqCv#ncUVpRqn%Xl1$dYO8Kj+IztPc7EiI?yNd zF3o4CZCh*7u}0`i$%@c-M0T4cXhw^MRvm3vtFShIk4aMJ;+Ba(qvb-4Q6teu=MeXl z*)wigVtW|vN@0F;{_{Jt_D3jdJ32IU>R5*^g?UFY2hE1A@-i;0@bRiKF!owP1^sfY z+_#%4B5*D?XxOOZJZw4&1ULu1n+VV}Qv-Cu2~}=8&X|c07vMq-n{^o2k}*unEA0@% zfyL(b0Ye;mhTG1Z2;;K6Oc>fI1{T&~g0@^3jrS;2*bqd!>$V1(<2|(ZdM|nv8f-(U zeCEo1hpxKj(3O`Rx@zy?%Wr<>_FJC5|Hi|Y-f`%rJM zEeLJZu?`P z0zNknRlD+76D9E>DKYk3?9{OfgSIS;8OBIivN8Rl{PLxZt>dcVo<8ix#X8G zsK{u;GO1>U3L172@6mAu-fK@QjSS)LsB6(l088R39aqbwqF`zE;r;l4h7aoa5Ux?E z%HiFeF#61$@x-=(wbrtDG|H^Vl)BDIM@-^<{V4+McdwPBtFPYZqvd`?$F;bQIE3P{ z9X4}y?g18aE(6HqcDpGjr+C5jIzEOQ6pm-%5@D3I0;VXv!%XamgiM76uM`|ukO)(i4WCe$nG@bFnjFg_;Ssf<$Jm6l(M|9)Pa_YQ>` zXEAqSBt1&j%DKW1jCIg<)@hizzI-|d}0~6ozVKROrh4gPUgW8bFkm^;xCMsb7kP)bo^ZgmSy^z%^hY`*!!oB=kPBVds6DVlAh(n%~T_k z-a)*e<3+s08Y?r;Qj>spa@Ukgf4LEo{thaos{$EwOlA!C6EcFUE03;<1Wg~oVVsxk zkqpsv`@l%dYM!X8<1-7iP)|{x@~cUjnyjlS>O@9h%K}|h*GhY1 zZ&wU#f=Q(yEPG{});b#y zTKiN$Bu$t}9+!-L`zf0*OLQ(#myhTp>Uj?K%G$Q-Ua`K*oNSG%)H%n*=D6G57?K>D zo9{x0YHF}wN7oBhi<1MEaKgv)k>vV#7UAE305OK}^_o=U(o6n1x0_bV=I}7r_xwT5UBlVz z73#TyP2Z5EU!0|1Li#gFc`DRP6v(HcSt$(@HE0?tGympkyz_xNi-c5xYE;YkR92{F zu(6u|YxsXTn+ntlcCS>cP^c=|b|J}&*}iFJ8dtW~4&i;*!n3EQc9z?yJ{+CsShqvcH%ZweZ{4@dA`_ z?M9-xl-gLvw-uyZMcOr_UQLZQaYQrU+Bm9(pRK&WTx;oXHSwMUU9DD49N(6GqAXdR zZc=NAym;9rOOpkpT(8bn%|!fU{&1v)Pac;xgnn_BzMg#B^sQO?HqwhWW}xVKlxaBd z5+g?ub)td4E}&8l@E@q3+sfMH!_q@Zfm(Bf4%TvJUJKbez$1RJUo~+F|%|tQ`bkG1h=`8E$23<7N z^%h`t?3<2p>KxT>Q7y{Cw8(-)U|Pgqk93eZFXqr_36llRM7FSxRILQZ?rUS805J{) zFQD9#`@!chJtObg>^d%MbDf-k=jF7%O13}EH?jTA`*D!+{;;){;{2$V(d@^yG{c{z z@w9yZatOap<9E{jhuVrir}0;5{YM(lvq^z3sxYmJ<)uVEbon?&J}Ts6f(45mX_qpB zfR^LMCfeBf{Kd=#4D%Oa8aC4p4MvYGj1nQ*T9_7S(%!mhQ9T5)7aI^E^;RWO+VQHXU2m9DWf9{+g&u0=}x`^Hj^k*j>>)q)xaCA;}3!P35PZ W6DD!I?XBw--I};<$fluKrGDa9tyV4C6B0Sc!;c<+^6ycrK6hraJ1ik2;OWW9%-wtMyzhIT`@GM6 z@8AFPm%joyh_^CmLbHaHjux~E>~+0q!>@RjGd*dWMQN1XV%3(u;gpOivk zff-a8iEBJ1gMoN#G#VQV$3{GNR9?tHL$i9c>(H@IV4W|66K2&8j=DwZ3vBKhoH1uj z!#161V=Pch%jYK2*nkcV8+CMIlfcO8!}SX#sW9=3{xJT2+w{tDU`b5U(enB$mcYKj z)!UD)R;+vmo3Ta1Rvqs_R^W-dupzLW(B2L{fh%2Wi0s}rDxX_}s|bWq84!f+c&~={ z>9`;7zY7p(Lm*8MBGM>6<+}c)CZ&BQTg; zwmU7*8Np~z?VT|O-Dwqk8y*wb=Fd5W9dY*TU>><%kL66cy)V9`FnmJCUhLy4LOx8n z0{7hnM4TDzcoGLRd{9R(@&X+p=MugIT0+weD~P{dW(5<<`9U3r@S({0F*7h5oyW`7 z&@Zq)gg%6A(DH)}j^dbx<2p{@DS@tf5=?n!SzdI#^F}!NsB7B<*>aty2{|FwEdO}9 z63hu?W3U_M<#XpW3euWS!?u;8cR(vxWq~+N7a0bsSK|Tvp$0Q2e(7N$)t1OAk z5`Lj154sd&^^w#u1rmHc1w0NWn!hQTE8+AUS#=hcju}O1oepY>uPoU*%IYZ4lShHt zOjkz*7YM#tEH<1BH)Wi!BS2MPD-Sx0dmd{10F!AkMPkz^4JV@dAX3{%nFMwvEg!W_-(NZh5~4z($+DCP z$c_oiwH_Gc_uRx`9K2edeToy)A4IXiCO!==&uIuMaz>#noX%9fPf8JjvT6% zC#5%T(tN0*1=F4|Jxl$LJ5xc)qQB9EzdL2%>Z$=o(z#UM#QVlf5jeP#r#mGYjkXk7 zB$Zihtz>7ZZu>uI23=;R617!lLhxhSFu4lBB?Wn1{}g}N?@6ZK%)1n-yg-*JPx_U+ zDZfFf#KQ+sd7dJCATg*~hlACA{?U+0X z7$VVT;nG*I)kRTDS$F#Zq+Nu6PA+Goe>L{zY9I0lz^pM!h2oDeWE1Y zfH`Bthie`?c}6wye%g#}s`6zE>Y4_DFR|6i_m{&yp3x0`DgNd~md~$nhQYVsyQTXY z#8oz$@Cu)57}$!h@~KA?@HKp$zl1s$ky0Ovf6#q~eGAv2J$nu5p*_3jk?DRL>-Ws# zzTQ+eHIHo@@wWx+SilEf!=^u>r}I(O`}iXEH{+^m_T9kY-j;030*+ip>gsizq^VQA zt=X1EoEGTSvf3he5M0Jd)p}as2F~`jW!vU)E)`k6jPC1ro}YcJH=RwZk&n-#7`00C zIG=6JrWfHf;hER}`!>V#vaO4lZGu{FDqQanp#yfHjlizM16=uo=;A%+N$kP_wvHf& zQ@pdBMi0iZ2R=c6nc%&GNAW5i!%y)z-r()wP3*%p><@8!4rz|xk8j|cZ29c{7QRgn z#4E;9wZ4PzhWIYf&i9CZ8{WeA@dF~e6<4_E*BIdu%;Jam5w~p|Mf{kpR{Vr^x;dt7 zyh{H~@%*3F=3lAJ|2gOXB3xg~JL>A9Y1sa6bZR*K4mR?sVdP&p{ZHEXC1)vu{0gtL zm2P5qpn2do{BOb=9sS(?-!eGGoxOZF^PTD5eFLB9na3v^3A8yupiI2zTU~U}1^?Ud oyBaNbhL|vd&J7EA`OoN4mPLY^Tj)88=}r7TjO`CK=Km4+AH&~POaK4? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiHistoryAlarmEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..03e2db4a680fca0fd9143c6f39343daa1bfb0bd5 GIT binary patch literal 1909 zcmbtV&2Jk;6#q@u$=aJOb)7a)D1|l!9H;3*Ng?16Fr}!j(k5z95XbR)VozD`TD!AJ zd*lEo1W3RE#DxPVgiujG_>h1ze+Nm$KT-9~dgH8<2qJn|znM4h`~BYYU-y6g9l&dN z%fb*06FD2h7-5(R!j=4W@~C~8cP*GO@)%_(M2agJ`1R%}4&V_J2W=E_ zh~dDt5-E_iZmbw)%L@tL<9^FoY+Mtrs_y1Y?q(G*hQlU~*civ73`_gSjmv0VNGEdJ zLgyViwS;j|MmqJH$HPuG?_)jrgrCYR@s_B$Iz5J~3;*Bc-Zraw9A!AZ@!7|lKYVxZ zi`)0U|7zotk2XI2Y4ghu|M~ixzyJ7l^MfBPJb_~-p0sfsPi?g#sb1YzqNN*Vu5m9G zi>nOd<$AVssYKPn37j-BVdE5@d8pd$oe0A)p&;DZ-esksSFQJ&nZSpTkZt!?fEs7d zF%-9<(bKi4>611pm?BuVx!?2z!>KHUQXe~9Os+5-B|IzH5i2s14Nug3Kj>btWy|L(4ykmP{9a>r<^1B^b}d_+&vX@uxBQG+P$dip&>H;1T}8?M|1yGe&3V)cXp8_(0( z?g`)poTVGnqlH|e{5cuQ5pUu*nD5<1;mUN$n)(H{fp;snP%1rEY)`#i-p>dZto0WE7)#F>yVC8JwfQ^0e1pqLYD_Nq#)ZQNPXh-)8CU z6?)5&-m93SQ(=hAfQ0nFoz8B)SR+@jlb}w2hNwZ*s!aWfXHVZjd1nnqGc~Z%;C8zx Uk}3L()X5vDCC=XLSN=Tk01|N!^#A|> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiInverterDetailEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..2d671e81a3dd373fb6904c3410bcddabd63bfe52 GIT binary patch literal 2195 zcmb_dTW=dh6#gc5vi4?69fzj$3MDDnPSb^waB~QlT&RO{p{a~`9Iq$#g!QhqyH46S zBm|H21tItYh&O~lO#un<%>M`~?>r;U>^kOCsRXj^F%hWN}nslQ%@kQdeZSTRE+;eXqq7E-;*X{KfvkgRlPj zw^4Oa|Y#j}TX2%#%GfoP~|X}jF+h>dNAiCj63TUVo~ z;~JjVFlk^4*H00+{tXz0i3HwYb+-b=yka@3Wyl^PLcH3CDJq)1$dKtXBeK=0=6M4J zOcN`c+^O4wVJgm`Zj6Bt`Kpc?+|*zicnL2voDa)pZ_nE25zt`NnXJD2(fx9O?Q75;_MYm2so~=kntan;9 z;oarrKD>yOdw z-#$!r?x@B5ao;gXcla!jUw!$WCEBXReGTt1jE8}xYnC^9Cq&OR5j5TUCRb?F{2)-$ zTe9KspyLsEt8w-`k(VdTCtn>P`H?Z%>m#L>nz!ukuwISv;pEf)2`PnuY`GoJ5-U=% zV)DPo=1m0_LoOD-&qtqd5^g{xGPi`cD=kr^aWqc_zBtUGh^)UndBo}e2C|i??mW38`@k#3YRIu6-?4xR&ffE zuWlUjic!2B#-74EC{bq0;$7M$ut@q7Apq)Zsdu(SXUlY^F1do+v`Y_>8;}xEre_GN znG%J1pA^;oXK78)su!kz#|t+eA~y&^CI*7uP40Mz427U4g-Q?FYhmt`L3aERZv2Q_ X$}@|>J4TVCoYt@&=C;wR-X`!bn>H=olC)(Lifs{?>`s$uH#^JD zq-{`CEGQy^s5MfRdLup_ptx;_0^W)j9*;M8-y&WpqJr;lW;dCnST}hd_(RQ;WWM>X z-}U~E@0$mnyysp3=d0u52qCN?qN5J=3XAPhf6^(ItU`ZZ-pHBBK|42;H=Sf*Ai2%R zx^`(enY9N8?Lu;+(QkHSUCS;g)GxIPmb*+L+|s&9Lsa3i8a6U4XP0RubFQ82H(jf+ z(=54WDQCDwk$V?QcJcz#O;@@**)1eDmh6mqWgMEY-JmdUyRp+qy5?>-*<%eB^Cl;n zYwXgX;YQJ@FngFkZQb2%x!j3s*QN#sQ;riy97l-6M=H!|>GF2S8-@O4k1LY5w{D7} zNg?LAhRB!BHJ}-DG|bg;G>%bd^i~YHRzBHn6e%^?SC}8%X+z(3GwZgu1~#vBX_%*Q z&~ZARBP_)n)9ol)7n;LSoS;BvHJqg5xiS{zSg*aqEJ)`mI!>*2rk#TAXn3B& ztO@Q!7jeu-IF1EasNpmnZ8)8*igl>v?0{J@r<3#);97%bQdV6|;T#3c$mKeXVYW`L zNasl{GuqP?;U;>7${9M&6cSOcTx$=NsO&{ptYL|cvvH0>v&WrhuL(;LLEAi&DV%Z$ zouCdY1`^@V(~%P4b!w!?HA=28tcImJ&X<8W2UZuzzUV;1avdws;dcv=)(;ITL|W3V zn`CsAj!qeE;366Av92;>Sc3~RtksdmI)zN_kann8@tabz!^8MEh)vh9^0I%`b7H;| z(A)}3x@xE3@5^QFade?u!+ISXuu);r4E9i%O9YQIIpJvvBQ4WlY9^jc7nv@{8PlcI z8T4rA)p0R4%|L4IK}Vz1gpNBze9vhK;w)Wo&3>~)GHdXB9hN^uz&VM`06N?jA0px!$G(KyRcisu#T(n!bxFHrjQkj z*~4Ip5>|q-DP8GrZ@|@fv4)rEcqy(S2NRU4Q>c~!!&%R4;^nd}vSN>pYsD&&0=qT5 zT;cK>Y+TX(v|U0>632D8UdJm%WepW9h>W6vSLwJBuV%nxeC^2R6%xUKxysJxnRl49 z+FQ4Xoo?3g8riqv4GTD-J`UXm7W@ z^1vA`WRunSBv~atyt-hP`iDDvH^ea_-m@2P((z`zMWK!Y^bnepeP=v#j9|Zxw@QMj zBX)b3NcZCHI^H2m>$!Bbn~URJc(;bzb-V|6OiI?B_E2Bmq*aPW$uX;MlN_j8Lv+?J zAH7w6_Q`hd*YN>-klNj8+=11ng1~z_saYzW$hhw++rN}SYxnxpkdzID!Xsd;wqdb88PR=?_oB zAyID-Y*Dr27%zQ{=A3rY(}0zoz5s_=ds>EJiJQeH9*^%&@}})qBj+PAf}B zRv#|IIR30;y8H0kFgSfvVc}G?Rzi8!F0fcExXJYct13+=if=2ZGaK+-d{4vobv%TJ z6;@5%Ay8r0$_tGo9^pHJAHz=#rlbl4{n~RPytXouCo)3?De^X1jzuJQ6bcOM5-%9Q z&kg8lTgezSciE*K$v)F4IOD~?F}@(#G3462tdf~)XVA6+W%{_{&kJmL$Z=v^*a^eA zMrA2?jI6SAwA~S1RzXU&KC{$oc&^vfWoM22CZlA@d!;kt4p@|+_izNO=a))kuC+!Z zFVP}1oUi8#TGHu&URnOvR=`Y2`P_6K{VyoGWKkY&d@{x~1esBa5eEMbtyhT2I+B6!gD91c(_G0O!oz0#tiE0sM zrbS~$^aUpX9YNW2bTLyqDHNYgs=lC&Oz+tp^o~mOkFVaHHH%&r(-beC{3C>AC(|3o zM;J7^O?SY~Z8RjcF;p;L#Coj$0?&UXQ>kr-MD`keucia+|6wW@cOFb<4H$)7-W0!+ z)33ssn(i2;Xs|s1J1+~fxCyhkR#e|GSDN`g?fx&zfs2IfI|T?VK`c)kYNS*&ZI@+NvU=peNjy}B zcyJE$j~BjB_yJq>eEyJ6;79oJA$>f7PU#Etou5+p|0i6NMk}y_$mL( zFnHPjGyd283HUjF!8e6p;#Y{s;?N#GXR+_`F=(3)AeM@ZA-=guKY&@Ox8Mf6 z4)OG!DC5{fr0MuFPE15p87GfnJ{Pp4>J#;$gJ?}@iAbU@p+ycNS;kpqoa?>Ud+qi_ zRn>FL2)L7qvDFx+ z9zYF%GDF4r45#C7_61D0EaxPQ%FD&D=>#HD$wD}mQOVm{`;7ZHGz}{5-7)FSd zTM1MxL0Il9<2Jwbwu5+QGv2%7Al_HToqpflUf%)R>l>|NJ(`Hh(vKd*ePw)_GYQkr z6X)6}zT^SxdV>3_P2WmHM)936#2I~Xr93BFOSaQ&ts}%PB!s#Mk#6*0J^J}!rHGBZ z3BHII!5Q4d-doU%+xY2095_R>EWu_qOC3QY7je8glID(bpFVYzY9a)vjBz0CSF>q& zasT}ud_ttVPc_r!nsX%LK$9w1TM(S?PLnCSGuxR- z+Mp;Zmr}t4fmTHj5EQ|3ZBq(ZMG#RdUWoTarGSbkBBB)kZ)P@`qy-axrN4If?VIm? z_xJz4H+_8X{SN^+UDPB{frx^riWn*dW?FW4$|>50*}W#O<@8j+%Jt@TCuR1e)@oVT zvinn6t5C4a)B-Kr)6r|1x-C#S+b|7xjzFZop-Vwrpkow_G{f1T8>yUYrMh)Dr}r6I zJ#RQ}(Y8`&>h64Rqm3KOZL33HpMZjh{HRu;qDG*~(cRXfu|)3|IJCZPoz|zN@|xM5 z%DB>imWHk>j6eKt@aV+W;G^l7qQ<+DvYvfbQ)~wUBE`?X>>wC347srMZ&VSqzQY+YLSS?dY8V+zVDgaH$Oda#hyDK+I{n7 zyDz_X&yBZD(rw$aUwB}XLthw{na(x8@51Sm40EmJE#!8u!=-|gm>5Go@YRu_n5E)m zoI+>NqiLQKIAoYVgW9RaX=ql^qGC2-0<~UdhEx`adAbPHhaC}|K6^i&=#tXkrQ!^< z`qJlXt~OG7;5G&G1P=1l_uMZ*K*0imgNOE7ZCmS?4-%MrK zu%oOpr zb~~6AbCFY_g9s7Pa=8&*Ww4|Z=z*bNor?33X8{a(f32+*^bMAMe#*#a&mzs~$>_}T0wQs&r}t%*>(y|OQ^54B8OmPL z#nH#S$@-El`#i^#2((c}KQ0hBf}Pu7Wt2^qn3~aT*?9%dcr&*;K2<8c^bI*M8Q(9^ zG~^C{gb3yZ<_r}#-Bf$eykP0X@c{vGLNzYJhZKBR#Yb?lz?_jBLPN+X)F4VY{bsgo zq90v4e`eU_Uh(XkS^ka}6#9}Agn~=UsN;|mgwck+Iq^hth|@*PKt=G%S>mE z7B$;pN}c@Xh7Z>BPzp;PZ04WE=M;Qi#r62YuudQ!`|YFCC~!q=UYx*<_@aWFWb41V zOzlOhjQ~K?>KBK*z1*aPP56?ETX7qk8|O&bj3h^$;Xkh=^gs-T$U5=hA zkI35bda(5A9V+fDqh(s6GH@Fc1n3q>hOq)NAYd;(ZEQaKP>EzGOcvUWPC@(h>6v*B+Ah zhIcT3R80NnvLe^r@3m9Gr}s0Xo3{~Tx1g22iHE?aks6tDIc zDM4Ro==mHq7#GqYLkJhB&^NM^hw6C{!=>`FY`iL#QSo3Xe1&8#XI&l-bCvnXeOqTQ z?mX~Dtta!SP21kerBYtFc$^O5Xswn5BO}2YZnMHk*Iz6rUM}P^Njm$08`Uz0T1^Rw zVPt0S>upIjD?~+4?}sXME*Qz=x$DQE^x)+*;O@c9+he)R(K(*^-66x?PFVsyZ$;9W z#|h7<8upj$`HWM5VTr-oaumE)o}3ITm0mXZgeb98cYCbda!roQypyqPt1?EnNuaQa zj*G*nz2AN?%B*PU;&jPdV5I19re?*m3c5y$L}m613bZM>M%0Z$okN zn;gM+JH~b~!41uUTT;Y&TD(2B;w&T{J2AI8 zwgdCYbYXL4GPWIO3ceLdD%-I{U^AA<)e3=~=xmNB<0W)8S0$@_szfpoP)(C7k7{*u zb+WQCS=}UQ&ne-&?Z{T(tXp4y^48byNLCJ@dkfCkfdb`OQcPWOJ8Tkg)$6Zl)P`hb z-Gx%{2csNc$2Tj|n#<(IN2xa*^9WwVOSpv2kuE$J6Zkm=aSq2dn95(%P>*A=n4e3~ zgq4_1ni;r|@w=FDxCzH&8&1IeI1vxxByyXDU3_Kq6i&e(a4LDXko#$P8O@>sr+cBf zfbPEuhv2vP9jeLYWc;4ARpfa({)ne3dlxm>jX&|_?aQQn279<-z=B}P)w6g`2AHeo z@n?oVj{o2<_$xDO0)M}NztNtRoUvad=NL7<1%KzN691rebNKB`eTh^@Rq{9v%4=AnKv6JpFD5FO>-}xpi>V4a{q-xD{wgZ^6kJk6?Lck< z|HWResw!vzs55kw&DrF{~PdJJ(J%N zQY9LjcH(<<=&q4)a(IYuBJjb!(X3@O`7bWwOb{QWCVTeL>bh|Q_|ZL>E;$R&5+A6N UlsfVFCEHGGL92{Q=4IYEQ9KskOaR>`gBv}|tjGLL3G-xz4%(MhD zK5*hVoA@A!j~MJ6#0QSoVDK>rvv#m|H_0Y@WRL8bjW@di+q>B_dt|f5-oLtgMk68o z34aM6>UmwSURAw%b-n8Ez5nX#0IrkQLnuM1fq;oJlndskGM$lZIulQJZcA7(JJOSi z^(O3WB-s_|u%b>X(;tbZdU{gH$Vw~P)zX_x+8IIl(s(lNEEAN@s%ke76ts+jkQLAF zwBwPOlZtfOPQuDMPBvyaRyvc4thSvd0@|_-1T<$-E%uHO43z3)tO*n21i`HBG-i{j ztl+{~P1~(LE0VC1osm{Y<*%)3AA<>)Xy5`96__NrY4kE>qg}RcJQJyNg=|dr*%`;q zG+B{UhQ-k5akPCG+3 zm*V3FE;DgCt`J->Xc<0+!059Qz4nFypxhbA?4AcuI4Z`X&8LM9>LRf*)u~?2( zCRSq&BSDImC5E6Hf#n|-b+aB;q;cIjDbyOcS5Q6Ng#Cn00zh#T9TIq44B7>Ayn!zW z+CD^}eA#l|wjIJ=tv6cmkco#iq6QgJ+j_E2I)q2@Wdo0Cg4vf3TW;ymMDGz?K0?GS z4#A4WEVUPpn|K0WVf1AsqrtI_7R)o~NmE6|G~5LmPh0Rc6JJ+hG!3$D=(hWn&^Jsx zsU?v~LTWPcRI)Lq=uew?M$yZN-kMa@XH9%lQOk(hNI&{b(kf&aML1;Qup$^lSWl-^ zGDl1tRWjuyv&xEw@Dg4&@QR5Xj!}HqSzQG*q<<_Kx_5Rd)}NU8 z)4aMpET8lbP5k*F>6GIBrHQ{PqUcx&h5n6+9~Ds`)Ti)c6K~}yG^?if;wL8lKEH8- zg7_(Ya;MImHt}|Tf1L42yldhg3nVfwiJzJHXCy*OjyeVtcBRMTYQGlk`| zXRP%dq#>oI1eC!P;^gB++hFWv@|1E@4B?HVJZdGP4K$06UrY8JZsKZ^5;A41il;Y` zhNyR3GR~Coy05W$pr=2XXvzh7{jG7-He`}1lXbnKu42|$qe(-i@I=<=^hKsrDy8v7 z(Urjd5o%aI1F=DQvk;FGV5wn9MZfQd2%Im$7sm9ytA6 zpaC`;sdsOBH*zePkg+=wEPPi}(zu;qqF+=Tq0TOQeTK!(>?2h`WO@ZkWV#_&4T&D! zn)2nB^K#06Dr~hWVVN_?zqP=BNL_kP{v*|;6)05!0{SS^N4Y)>m1lmw;&h|g%3V=A zt-&-X*HT&es{FO*Pu>6M+Yi5T`jxv+KXT;s1BZte;~}Y$MW!s)!wxZEuCudQtCPje zLaAlBElY=88GKERB&mAEGE=V4dqw+Ph18j{A`fXKWP&u9vQkztRH+jTJDRh}k8m`F zIQx>UF{M$~(kNqYEN|DF5<}mtss`oVWXifc@Ai2L*?j^s*zvZiO zvUCW=vvtY-6+ARngBQ=bxk#7A#A~aV7ADB8rdYC#A*0Jm#xz@vl(0P#Zl$r#O0&`k zNla`*I!x)5E_$BpIz=}o<|OTpc&XXD%?Yk3c9MGbII{Ulyl5rwUzKd7X#LtA&&HWR z>ypWom&UodMMY&_M}`@BXDZVj*=AeGY@sP*6&6J5dY#nHc*c&AY@j|B z-kxoCrpIFqKY2HiER#_3m53b8d@bU9d zRH5@he>AuIY=8tys z9DPR)6%tq05Z>UtCQ3XNY1~klp0WCEYl}nIkR+0K zpAn=P$!e1MsneM3FdH!4oWbxL@jXWk)V9TQk-T%W?wbzu?3g6!Nf{gw{UJ{n6p zf6W{6*pRx!la<$sJ~rn{;(QFr7(G+zxsys)_*T*CGsIS(*Cn&Cs2Xjf5r*EemhKGpXY#@(`D^e*Z>tw97XD8VS`m zo|2~xc}C06gH*#{q>U&0Qr%qd)|p;KTF8ix6`PWe=n-AxX5j4QO{r9OZ~B}UezzJM zvapT9j(}dA`Tb)lu0VYf^;RO$%AR3uP`;_B%KHPa!6kA29%67+TMfz!9I0sr;~basce@K?H)$Bm0JE=)(M^m9--N$qvyVZJa!?`(K1qPj zY0|@|=^;o`QhXDwnOHM(aY-)%7(-C?2^gD>Va)nD)j5P_zl`y7a+tg%P#MT!+6DOT z0A>#0%Ke!9BEl8dD0E)+aasf+a?!aU6^U`!G{S z8w4lOvLskpKD#oQL)&rORDz8MKlsrJY~jLN6u)BYaae?M6f2B63Zt&VXnSFlD2$SY zQMxe76h=;A)K?hoDvWL`jBfWw<;QWSU_UCTjk_z$D?Y1x_#Agk6$V@t_hAOdmm$c8 z$2eSpskjoea1|EuxtO0D>QRj*gwc&T=;s;V&a?UquHlV(E_E`Gjh-4DVvqkA7T^tB zi|@0O|3j{Ri>u#dH~;6T#ThIWgWvZqz%rT64)$!e*Y!xZ@YuRBUedCI{CR->;p!+O zSv_!$9O;+9GjfOA$@|k?i$Z zW#2*hLDYshaRpErI4M^uBbk*VqXC(%6IXMhZ1}`IrE>6t14TR-cM3eNITw$)=i)K% z+&m6q(s~AqNwQ#0P8J@QC8Y=-p;?|{U_K%>ytr$WI!qS<8fd~R8TwZ7Gt+81)EZQw zk;cCkb+`e|G|_f`?Xj_*CclBM)Qr3MIp+a(03Sjt4xkMOaU)(J)*HA9-@_*SfFCk` zjGJ)^x8P^k%I4Os>_1uT=WL@Z#pp)1)Z-Ru_crbiw`QVw$N z5HfNEX~xwZauU6+>vbSRdN;`Z@&E%tfKK@!M`di_ZIiw71@3GMXTRvqc5(JgIx9C6 zW{>jX`j9+Kcce`h-1be^m04&o-#j9Z()QJrW+Qk8ZyRhOok5i$U*`W`VBvdoo#OWu zhSW@OU8zhY?Ya;St!~{E2)7Q%rhN#GS02^Ai-h^x z?R%^;_6%gayY>!#_rH_zb&o5+OpjhcfUxZIA|ArBpCeCorI4xl@UoAp-VaQyW9oaH zlr?Y8Cl!?|G`pH!63)ri;mPwNmz$S7LmsygBG*Jlu8H8eJ;5j?F6m3%e9ORAF=0TW zFCnay#Wi>@EmzVYyioTQ`6}m12_?FEW2iAtKsI6lU|6% zqc;*yCLoCi{{a6FEPsG!S;UthlgxQAOgq>wgY*cd{F zp%%%Gt6oSy?6d;j7VcWq?gc`*Vb^`my*QHVF89?d;k(M~3VkNsYGP>o)eEx>nYin# z!W{yvp8#UTLKZm_mW^T949+Tl$=!g59rsCVRd_K4yz7U4JjakOmYO+?VAOwYMfdTT8qpABN<>ygKUCYQd}{}>J3fDDgL zB79-CLOu6b#NDX9%q3qFv5*9wmOXlPs}c32Cm#B`-ibrAa9fi?N!LOzh!pWPK(SHM zeLSw#L+=pp4A~{2;)O^N;r3z}3OOHerG&y|n$;{A&VxCQo>v;-6#c`vNb(Zx=16Lb zRi4=aEAPVmocK)BnxUIOl~6!ElX&3@u98On2^zyS+7HotzjnyE0Gn0~dmlz}d91t* zwvAKy@iF!@{RO8F(5(dV0UXql2>L2${00#WTqiAs8@Nf*pz$oCoLELML((E|oe_P% E0k~05iU0rr literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$2.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d0e1e7956fa19f052ad10626fb7863296454378b GIT binary patch literal 1688 zcmb_dTTc@~6#fPZTgnQxT)f|~Y5{c>?=GTPQPG0N8s3NP&@S2TlG!PSH+|G-qVX5_ zpl`;Qc#n#{`a6X9D~xB_DzzGjktUrpbLQ;%&V2iw*)QMUeFSg{=UUK!MgtKOO=xBq z31r?1XQb=rCq14MRx!wxJP}%c!J6WZ3gn!{-SCERtD zq*tK?hIPe&5CS>kD>;`{TxErvbsfQQYPmCpl_+a;?C+1;209t~>q~TkBH>w1;D?I) z${H`EtJ5%wZU%O+73;CVz(y0Bu$jTG&rtK`R;qzvOUbZAq%Kv@ zQkIb3CWZB(-@slI`>>y3bQw1Pt!joQdV`WAdalap5`lkmT;nO1RYUn0pRs!<3{X=g zmd>Vm=93<&@M7vesQ%Tw1i=tV2RX{vo^gFKUMfxsdA)*>$OI1eCb)F;yYdtQbSa#G%>8Nq|R{8chV&(g|EuG)g>`R$3>_v z26}3a>W)ZzJPbvM?R4)(!C-;K$rjbtvE<_fM!EvwI|ls{}Qb4HH_!wm_sx+ z)04n^9Hz0m5``l;N-K&lXJa@<^CnW?%{T=ghe@MOJ44$#ZBO3|uoqa9=z5EF4aiiM zTly0_THatMdxc&N*9Z;QMi!VyJ3e6tKG(qZRAJlEffG1M7&b*}tcqulW)b?%=)(=+ WG}#DcJA<=jPaD!?V-%w+qTdgkRO-$E literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$3.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiScheduler$3.class new file mode 100644 index 0000000000000000000000000000000000000000..1c38e0c12d3ee0557da555c8c339fbfdb0f6402b GIT binary patch literal 4338 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 SzYXU%NqqV9r2F7o=jVTEny+{O literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiStationFisGenDateEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..a18f68190c19a94f550353bdb83600fb2febd1d4 GIT binary patch literal 5223 zcmcIo`&S#s75+vK)`+#i#7->Sx@qcQ5H_2{cA9`=n*g?P5D>s}P1DCB4QOqlm3LRh zw5M&_v`yMNN#CjaNYkhLuJZsx($nLg(w_d-|Du0F+jElin_VFxATqeeoFjHLJ9FpW z@80{}JNn1FZ~hg)WB5x9A%rzVbVN}naK?6~4Y%M}`RU1=nUThfohjy|Yvi-Wl$rKy zXU;G!cUD@4o6bu0&M|uYi80UgEIWU~a!<;9pXtedGo2kR=JV1Kh-J-uCMP*<3hZnf zJa1kyjhvaEHpV=4Sa*A>o|}POc>-IfrFX(|T#u)ES%KE|%vx*d7BmZJlXEj_mx6zX zj-9xh7`b!#^l;HD6g`0#*Acc>*4ml&S~#upV8*iz+EAb$Jlj9F;Mm4V>5ZtFK$8*2 z9+hsPJBD3|YiQB28z0zIoNVG0fqLr0^NKk_(A?G@*jMzdoH1y*9<|tm4{5kp$A@vB zKwHI!Q;s@^o{WAq`P9R=FcGbG>_K61U#r+yub?if% zz&1Zf%ZCeWu{`ORj4y$^t8^PE%`?Ul=+LlV#{qQGf{KLYCDbHqxf|cPz{H^J94OJPqmAa7bXZV(+c8bEBxoa1amc_$VHseFQ&c=88$72D~cQy9>2TE`O@6zHx2=&fXt0E&eSd5(;y=uTkYhH|z& zrC~^5yvEVDo2M6JNMc0ClNc4KJ7N(+`iX8xsTboq&M1zrccs@;urA0sHG5Xa$JDIG zS!ITro6zy`<&`7SvFwcU%_nqx5})G!pa4*Wz~NfnSY<{~Cb*4(WMWc7T1N)N?cm0t zD9aGo&SSGAP}Fe=v&%Ak>I?XX zhu6uAMN?5}RhXCPX+^k@t{#Oj2#}_m_t>cUMQWcks zXB}x~1fp(E$^u!j?X*gnFALmNv8?}cS{4+&$M98*Xn0oO&<3I?ZO@Qcj7n#s;`(bk zzK(BD2fre(U<-lAYlYLg1d&u#eT5A2UOU6AX&kija;P{nDV=eX^vrTIXs69w%5*ICy)+r|vKF0oww5KU5_J=uUALl> zpz#}^&ze`nL5bDLKWXo>QnykJl_dS?cP3M_n4naJ9ODAklAKz8%7-q=zn*e{KtVDYw zIrc;}Xa!t;mqdf6R9_lYr6^lF<(sG<-rVJ|pW9qOY*Z)JC<;ui(&xyXuwMClEAuRU zfx%P?^{^w!f2lig97_P>nBDR1R6JD*nB@h(kP`ol-z>ba2{p?lp?{kIjRP4#i3oq0jTj-SKTIBeieBKWBki}N|uW}u7NpaHl$gaj%a82&! z=mE6~2e>^BdRWCH#Pr)aWXH$kjjMSTE1~m@_}&OoTHp;}wqTL)-!`27bm* z2tVg5{z5^)R75<%rCT^Zn|K3S#}XPsNG3X(x9?xTT|)=nhIwEC_jE<#kwtv)Dk86n zu4p{6gpUYx)y3g5|#kB<-UcjT!BfjNF`C|gmjs|pM2Mk`4AK(@BLE`WbFOi3NxqBD`yj`X62wUn$ zF^OJC^syoAXQy?_N9z(;Ozt*>#*>--2RIv-$1Cxv`9S`s(# zl|;updK3HSp(PH?}+Co@)IuQ=M5}UXb4MqlTT&ITfqMSF#Gzf literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..ca805a035ea89c730bf4c00132d65f793d3eb8fb GIT binary patch literal 5148 zcmcIoYjhOl8GgRpCc6xBQJ@RG1QbmOFe+eaHb4UjG!O_95&?U0vil_&*vu@mvk581 zVq34!B34VWYOiQpYg-kTAgJ_at=3-c#oqq3;OXfP&*|?T?epzSHj@p8grhkp^Ub{T ze((2Qp7%2Q(womb2Ve#M9z_XCHI(TnM}@#r$L%&UY1gv5J5y#-8of?3o01vB?lHQ| zgy*;eM#Aasb!?-_O!REY+O~8BD(WrU@>U9zR@ZcBs1(>X4nd}s>6ey~^cafMljxDke%ENo>)M`?ZkuO%mScy_kNB2Q3xQ=V z;}`D><+gYfGcZ%bEFJGbOkl|+$Pl=kUM%*Qz~Sl%Xf&}{#A_xX+BbHK^l0oHyjR2f zbi5xQxCCPU{m^KX1fP=R5nW?O7?Gl(--F#sgi?CROq2pRyHzXtL zSt-Lemxou#-B~lmn`^>35O`y>e`)N5FwV9XwP>b!bP)aIl>Ti7QPGBEl^4Db|~l-CsCu5?M%u1*&B4U zV51KarBpF%;LRvnv01~7I<}xqV1BWhLDNvE${0#cJMRRd3CHehVh`!2=az?~6sQnF zZXs^N8C1}-9c(){>DZ>wyrTH47PmyT`)j0!5<u6=a$Qr0FWYJ{|qTd;^MaK*uKw0zJnwQ;P9ZI`$1Snu_t$I`$6< z-0bvA3T(w^bbMC9C!$~xP}_04jyu%uO4?H(-lgMi+(WOBI20_lz)_x7^T` zzD%d5oNktVR#LwTq`H>wG+OescqJa>WOVM{gXf<(_WJ!NUVr@PzfRwC{>ZU^?!WE) zLwE6d?$q&f_Z>XH|Ma;-hsp5oI}cS!*LB>5RhHf5)a~83uqxpsr<-yG>dVKqe_ufzL!r8c{Sh31q6Y)YOE74ULPsHRH~{nJ%odx zs1P`5mCFJxV;wTl9>^#ckUsL<0FqQG;q6hbA5L?HBhp>DTVTgKpv}6`!!r5}rwe}IE>@mmF9;nzTp2TTl5{+R$_Ty%;+V^_U&7xP zO8L)EZU{WZy9%yPbA|epD5A|)&697+Naqg`ydLM1!BucAUvLuQN#2y;1h48f*w%8q z>OKQbVvtWlwHgZH<`SEHQIf7b4Q=~LL^ds|%^|wrI4)b1!xeR9v9cUypG8$&xw@M- z4KEJj>Om|#ihm5f%HjID3hua}_7v($P^ZPpbNFx$jlsHp5S!{MV-+zihpmIyeiUc_NGI9!689>e^n@WAw=70==;+e?*|54Ua4 zJ7Qkj_VU`cQ}|jbl%LD;e%^tZyuTWi{DPf~YRp0nL%RUiqZX^M5F4+mq&oWK&i!jH;Vu?(-_2KPoU;ROP2mWbi!c##&& z6;tpFyhJ#?%(G@HK<4>>$vdCx6>|NG?;26|77d7Kn4;lP4Zqf)X_%v-O2YvS?Mfs3 z4^l(ZTXaChXg-kqTS`*!{T;OiA|+H3R1f$A|4Z=4sSPyiPgGGMdnwmauF(axXYuI5 z9KKx)@7W=EM+4JGA2F3j@V^p&E+oxd+~A_!gnS3 KYau`X2K*n7@)aQf literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.class b/target/classes/org/springblade/modules/nh/factory/aiswei/scheduler/AisweiUserStationListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..c21d975abd628f4dd762409814759a01e0a8ab7b GIT binary patch literal 9322 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 bx`;19u)4HRo*;L*vcR?)IaOZdJmCKT3tZWy literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.class b/target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiObjectMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3d587d81ecc880b23d4684404080e3d4ca651695 GIT binary patch literal 1649 zcmb_cTTc@~6#k|Zmev9-$VEiOds{9e#>B)T3BgN@1q`hid7Eyh?cjE|*-p8b`0U@o z7fCeHcYl=e%yxwmY>48+&d$u4bH4AK`Of_K`Q;mc$G9Iy1U(j_3G||mVaE3Ayds)f z`g?VUZwvcf({p)QXi-vbnXi|&rL9**qal5UzD4CKy~NOy&TN`U{RzYnXNdVylsARb zk_@lY`E9WyxFg&uFKA!6)m;A1Ft+DQuJ;>~7irj#73oXYmbpwvgf@emg#^P$5LkKq z#ro4dTQ;=vTnmE?lgEe~Emy0$JhI0zfTYPb#W2xHtyuHDT~TrfF34phfr}WWTx`#+ zsA|inT&n3V%#RB6L^h?bgrnXI!{(V3nmlt`nX?=_E1QdB91|8U848mO%bs85&4wvm z$q{AA>t4C#$R>AdbXm6c{CzG|b5|!Mrmf!-sQFKR0}iA-dv~se(g!<;t~I zy(ImjDK^7!-m`_XDX40+4mYE^rkV^Z`TqgU2xYV_p_5u6S{B`|maaBDjzts7lp(QW zL>#J-fp@vZZo*|4JDDBHI?V9F--TK%7IRC)cc7rDC#eC$Fv(S^YhL-4@I_rx*HY19 z1yywe*)fR4;-ikd!sc1()crrTWSdTgNHMSq!^1AwoYfZ$y-h7NT@c%1h!?z;Z_8)O z=wke|is#J@;W{-(gkCQo3i3xEjhAV~>Cfojn>_^kM3V@nXf$Tfvvh^VMEd});u@`} zREVP|aQ;aDDD9=PGqZ=V4%WV6;O*QYhQ0?beXwwW4w!(0bkvL%hR}~>5I9S=ehN2D z?2I)PLYUbN+zeu*a0|DI)E%<7iI|%4}wF6n|XwRG2%8J@S1KPJYo~WEan0>G0aoNBERuw$!#7;E}KU$ g#90V&EW-JWv163eCAC6?ko|0uqS422FQB&Y3ly8GBLDyZ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.class b/target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..0e2c89c3a988d4e7039ccb2d0a01b9143186a7f9 GIT binary patch literal 4088 zcmbW3+ix316o=0wz9eDOT$&3>OD}0Ij?;7rZD?phASslDCT-e;a0$0{vWd4!?9^Tt z@&FPNAn^ba44@W3C1_?;Phy&jLNwh!K!J#*%qZ_b``#{d5J z#~mVilF}{IK#g&VSQMq0p!OTiEyvz0PXBT{L*PfH}>+a2h zn`hH|uAk0s37T5EcSCNbu$Q-&<<4p5Ib=~AwF`=*vuw0;sd9!@pV6dNr$vXQ*1qGX zd0V$dJuHYh`}>#O0~S4OQ6Gz%AzF1ebFR@ZCI11vPBU^U|XhP0(Y4y7JymWkXT$ux|tLeudJIaknR zXc?e0wIQpO%)-WCXdjz3Y-F{_#q1Wmv@LlV_exuC$)Gj2QOW93lciqW({9Y19 z{IrMQ&E7{2)Fu<c2;zFBQ23XYE-yW7%C`y0diPz%rk< zr#f{H_RHxzrD@-zPqxX?x+dF#idK2v1UXkbj@bmT(zF#))zDNYXvI?aont&-X%vyf z=*GMXbx0abY|OLkUN&ZI9i3G{EH#he8lmBs9LQdVGTJ>Hj*~RY93#5aXqPoxRxW9bb-U^KwLEmm?ZE2|6q1=dceg zyXqbNy6PR>TI!-b%MraeSf8YR%yFIK`8Zb3ViXvo$=^uamg?v6N<1`9MQhHuc)=Qq@M~07)hh+enlXtdLqnvRNBXY)JjLI1Y zGDb6)_rks zOcj&SsGL~EbPr4!X`x4H1t()Pjx%#ch2#`8NAnQrOszW8O(WAqdd9@mp)(c0bgK>% zM>b&Mmmo3AV55u&GA7h8?Qk#n1uIRcKFOK{D1rfmHK5f^^i{eBdC9>L#-~YF!e~7dZdc_6=NkObn4p% zYC#+3N=oRJR0Qp>b!hoY4YD=~HbJk_Yk2CFG^R8CZe)6$-l(Z0+?``O)1P3vQ-_JK z_kd|!GQCNTp^|K!=`RD5O6(LYZqk;il5G9!{tdQ&>aeN59O17!L6a5QiQwzH5N_kG Hfp-1}Sh25t literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.class b/target/classes/org/springblade/modules/nh/factory/aiswei/util/AisweiResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..9f19045949f608e100a2cd39c8fe6f1b26ceaef2 GIT binary patch literal 2625 zcmbtWU31e$6g_JvHg*)7eBhX-EvBKwancA%DQ)uw1VRE%LK7yPKJ-DcRa@X#sU*|M z4{D$KKxbeW+L=zD`=dHNyOI@IQD&Iwi+1RR5aK)O12ki!M!vdC)~fhMqGJ1yNkcC2peuwyh$ z{m5?iI;N|4+xm}2!?T?e-LTxBO-t{2R!6_5=6j}lYY1*$)s)st8cNctnT}&S+otOp zEmLlkHC)CA0@=1nu#PKG^y4aU+s5(I2tLF|S$wSF3MvAlDr zch;1}Cj*4~xU;w>Fm@Vu({S6&oW~5(GW)ECD(0B#xW`mqC8Ro=DIvKmcV5GSsNW5B(>=D6g!$g;@YhY{^jXLJ~}7&;jPLj}ce-U{dUf z8GhN@I7`V!q(=4_HL|Oykxc{wpQ-sG{rJi_FVe;)%CFAVEslcYaP2L`@5=QCzp~!~ z1q|`XP0lpm37_)-IR65-`IP~5j(&jG$o@t{3NnC<4|ctz!(ZYKz2xClj;fm4^c!U3 z>8FUZtRj?ruOPjQE^BAsVT@rmVGaUc;~ReCm_}c5Gm2?C5z`Wu={1OH{tZUsn6400 zKBa3Vg4Pa zQ}`QKUkMpEt#n%82(!E_1^#^9hZ0YzJk!Od#P`RGGh` zQ2P@z-@nDDOs^_lc!%q0e0K_EoG%(!XSomfI5+tB;gNz=@#BP$DnZGNjU5)BqMs~B zOsL{>Dei+il7QVrJ=NlO_c-D11UXB5ceS{lcF5lDIqb>47V2q1VfvQe6!!iDE=koz literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/util/Client$1.class b/target/classes/org/springblade/modules/nh/factory/aiswei/util/Client$1.class new file mode 100644 index 0000000000000000000000000000000000000000..fa7871bcb4e3a843b8b1f844fa6f6f1d4728a936 GIT binary patch literal 1118 zcmbVL+fLL_6kUfIrZYo<5m69tAm!$T3UW(O6NG{j=R#=37#{FUdt{2GCA~oWBA?a7 z7-RSVzsM)!KAq9w!3RUqp0(G?KD&FJv-{)Mw=)1wuu?=9G77RPx{+g83c>?DIu2d` zpy6>x=tqH*cp}pMrv8@OaS*=Oxf`7dR~LSA6zNqFHv@+ucf!3yL=3CbGkcYbRaq?{ zkAi}tiXNy8%l}^{iCs@$_gvw}+8o20W}dpS-K_Fsjf!aJ9BFMwn%~sgj* zan!X}F3{ohspvR5$tDWhb<^74tnXB%dR@g0srIC*Y3-D2TT;KJ; zWtdVPQ*oyyzqIx{*_w)pR&A31CQqrDmTGRps2G-^;4VX{(`3DIDD0Ra|Je3i-;JN9 zUUnI>>wzN}`YWz4YROSUgcfgjqzqI7n|r%FbR}<#y=KhqcXUf_UNnOww8f??cl5OG zb5?$pDjL4+1rZHq>w*+4GAv$bLa6PUh~no#L=M!l?~8EV<547{(kM;f4E-6bG%ROO zMx@-seZmLCej-B=kbDI@`(FGE<&%7Rzu;1~{sGw+DIFr(-Jv5ya~*nVKF@^3QGCkbFmE; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/util/Client.class b/target/classes/org/springblade/modules/nh/factory/aiswei/util/Client.class new file mode 100644 index 0000000000000000000000000000000000000000..0767be0eb5345623a38d78b76ea8e6faa0556615 GIT binary patch literal 3391 zcmc&$O>7fK6#m9ZaBMaZegc%z5{Q8~Kn#=+NFXIYKvJAw;t)s^+HUNLyNmUjaY!N&gvv^9XXnkE zZ{Od%H;?|k`yGHI_$Z73%7Q4@P=RFv)fe>3dMu}#nb@h(3o_*jEIVwNhTA4kRv#S< zp%S4W!Wx!C6KJ;VOw1|RhM5`7>1i3uTj^p>Ix#aF8`D#+WlzR*!x@)GtmqoKSZB_V zrW@HS&>l&S8*VDws}~{!iIjjura&TQHZlbg@j)WeEasg^uXM9kS|Bjo6UGXx45C`Y zDy$YbyhMH4J>B}{rJ{6bYA7S!Y4Dc%X#CmHJjG)E-qtYIq9%xS8rEZjz=7w35eQm# z+A#H;=X%f7jT&CXCazG?ZcC}WmTJz%Ea|FHP=OVAUBl*S(S+`16>p1%txBUXw+|S3 zX%$_?j%e71?LNC(GK{t(uxc9E3mn7bq1J1NDpBRB(?w}dItpN?hF#b#u%6tckuiOc zge}L6iMXNETs;R(@jSSghCND21=n6EoRpIaZl8uX6j$@PNtv=G6>Y+SAeuEC#G$2U zUbpKO&M*b(yDUFXNGf%we!lDGb9#K%j2jl8dS=ZBn9o^CW_kae&QqsgnU3^a*Q(*L zibN%y)M2GnAezvo;Y}PRQ`wmC66A*$Y^2JB5*PfhHg{;~REbeVoBdQ*mMg=LDZ`Ho zJbH1~dPQ*RK)o!3yEXLSE&n8ROuEuh_6n5OM~6F<*>PodufW|GVfJvx%Q3SFr!*u~ z^t_{)P(`T;{fgJCz6La$QAa+klDbRgq$`6sE3kF8?)BtyGNb3(?MyMx26Jp8B@3=$ znUxq4s41FGu~4vVSEg(8Uhinx#^W-Kks!`%cn9y!X?%Xn+4#mRJFl}&99qD;!zHKM z@06_z7UDtZs$K8RU}fAeWnVErD(wLU%VHk4QhIJsw+%I)VwSsE zgKeXE2~D%)Z> z(EnPGX-c~@r#p^xumu-*zf(^DLf!EA&T$swC^%L$+=jU6E$8`G%fJShd~3b{EEG5k z;Sy|uaC6{i&Il^TzDBU&7OHMxP2*RbAEKPvA0$Ody`&=PbJ9c7UtF%?hF3_hk!neG zq#dLNQX^^a9qhlsaUq$OxpGGqlWU(V*R`13iMeto7n6GmuWvEAr|?cMCRbu>^2R+3 z4y`^{ejkCMGU`*6yo0xIWzW0x55_+?Ph{Sz&GZ^3@l@#Y^vJ8yl*u$>)d2V+%_0rJnG0XlZFw(Np| z-Q3s6$j2DRJ@}AoSFsP*csu);D4(!4e~JV649$%3L43ir>-@(}wBj3HPQK+|?xPLg zvqwF|QT)iY$LPQ>Y~sJ73%~L2zvDRmzzOC?H~!|@6Lvd+lcEA~5n^YnLZ4WLQ=$e5 zv59N7=oe8W#cm9Uy*MM9Fvz?+D~^)i#bQ5#VR0TKUIwp2fZriFa8+K4FdOBB%0kb5 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/aiswei/util/HttpUtil$1.class b/target/classes/org/springblade/modules/nh/factory/aiswei/util/HttpUtil$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9f0e0e4255c7c5c367b870307f7600081524a9f0 GIT binary patch literal 1082 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

+<1MM)>B06%{AQsC@tk;$~G| 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 L`MKub!Q%e`5+Ob; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/EachRunner$1.class b/target/classes/org/springblade/modules/nh/factory/common/EachRunner$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0c8dc0e65687247a13f5199b742159c4cd473b6d GIT binary patch literal 1361 zcmb`H-%k@k5XZkuTT1I`3kVcJtXj1kKMoMl1oZ_mniMqFps(BO(jK|)k-I%2KKU=1 zw3_(fAK)KloZYtR8Q&T&*_+$hxtY(-?Ch`KKYjvuhQ~QfAeBYhLI#rzdqLQ8qVv#` zt%lE=!s!If*cXu_+s-L>RS;e}ZqVrj(mCXA`&}%h2rJtRldA1Sl`Zm68^^`I=9sdO zL!Kdf!TkyihGOlEUvMW@p6}GWNEtKB!c|;j$Z0d5Hv}2Z^bLJ3TTWeRd}CU)FpU`o zOPhL9i7@HbSl5Dq?R5)tm>)!U)hC8RBKi?O-_N6j#Vl@ESi&;F88+kOP2)_sin8$3 zlb(9ckgBepN)B30}JQ)kP zvc1nR|F_%A^P%hFkx=cR`Id*gBj~hHm|Wd!Nv`6M08?Qs8S?cY4qfrm(|Ie5+F(=X zRcoZ{2N4~?zB3CCu}gpP=u*1%elb7%hhip*JuD+_ZR%J=>QxZYiLqYm<~;Cu6p09B zYOoR*?jlnx>OKQVQX?5jU1B74fRS_=(ETt$V+r?=!hQNWrMcFY?X@15z1~CC-ss_q zy_oKyU@vBRn6mr9nvoZM;n4aTeOtzExVBE3xePL2 z2vZ}{n5HpDV}q6^uuSHg=B=?lk|Q0aWOs?GOHf^6>Jm{Gv)^!Ygp)T2J6NEKXrzAF j(g0}$GSs9AUB}zPHpw)#^9~*v%?kEN<|(dD5j}qZRSQw& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/EachRunner.class b/target/classes/org/springblade/modules/nh/factory/common/EachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..74ebafdf30de5dc82a84dcf74fcc10430d62f511 GIT binary patch literal 3476 zcmcInTXPge7(JcLGTGh95<&SvUGtlkp67bKY1^EVc0c)7JfARd5~l=W;h?~Q=+gg4>Fr2v!JxoC=@jltW4-CT z>-g2OET~8n2~Qdr#t3OVr@$VY=H`fCWF^H1h0uvHCCpO^JdI~`j2oCx=ti=0qU1@l zz&(Y4>zEYSvWU~5Ls5CvN+1gj$aFl%*jJNwJ0DKqG+t08;zfZsGqvpdm$_R{nnp%M zlV~LeAr33#kig4$MaQcKUV|yHae307tQ8Ilx+sHMVGy`K%Jwna^!;4-%KAa69&-!S z<=SD(k)ze}l=LRdDWz0ao4jdHnx3V;>z!IqQk8Ar>abu9Sn719vfwzkDvtvb6S+fF zNGz;?0>|r{{!efVhzkFP1e)Y|fejIzHdMtm1*=heWUQXdtPxZ>MH`_}l|mI|n4U|m z>KagmQi(Te+Ne}CZO#V_Wo^W#suT=@WVDdnK%G0BMm!o3H$YfGY41|=fk^NxrC8sN zLbr81F!N`*U|j@lBQhwtg{Mr7~*)5UyeRGftjJc;x-`@-40+ts{7-V_qd0vA(k0^ZyIp z?Sp6;$lLYXPiA1EKQd`S6)U^Q!nj-Y^7154K}vP;`tqPE&;rR(=?5cHRTv7!7*sc# zur5ho+s31^i3hO2CUs9@YYp4Hn(;ZsuOoa5zGFQ%Abwz@8TtAoAb|qgMr{HlrukJ| z(o^D>fQ2)(qdV~(bhNT>b`JXf*pFy!U*9{A4bA9`?bmnD<6eROcvpNL+XTMCORBYt zU5UQm(ARezyW_LpU?*)mb*Vl(@Q@|4^n-IH&&6=iT`=2bRM5Ab14ifriw z4@muj)6e(p?(OT+Zs7Uv*%Os`He7j6ZDwQTRD+^agQ8S}qEwwC6<0bWEme<;tI@JX zf|{jBxFg6Paq}NHl5txI6(ML(&Ech=(5ezrL=rMif0xQi4v&x>>c)4@x!3pH*Y_V^zX5oNT^l8oEmWGQqQ=lZ<*&FK^E7l{c&EbG z47GlgMtZS$Q7n^-}UVPC4y&88|!Loeoma1$BKVv)Jʹ@mg>y)Ws=C$ zee!xFl4;Dfc+4}gJLd6B9LhKlilGv4%^B8)|EfP=XdFjj%JobMs$euCX46@Y>y9bQ zo(w2xbr_}MXqI?Fjkp&Rvo@4IkH=g^2G7ZgoWy&g`yT}4*ARgtWfCve3BbZcX>t(Ri~Rz(CLrvFZ&0}6oY*%XUZ1` zks0Lr;u7zgburYBM5YgArY+oJxc9&FWN1E3Q=#@^o@IjiTKVfnuuX?oqLZadQZ)znV`b5*1DhcQ}3 e+G|v4@w$#1#FlUqTe;oFZL&6HsncY3Q2z;$3Fi6$ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/EzTemplateBase.class b/target/classes/org/springblade/modules/nh/factory/common/EzTemplateBase.class new file mode 100644 index 0000000000000000000000000000000000000000..4925ae1df5f985bfc71d9b7c80bd8f6ee508f10f GIT binary patch literal 15048 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 boZn%J*9uB;uf>P>htADK literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/PageInfo.class b/target/classes/org/springblade/modules/nh/factory/common/PageInfo.class new file mode 100644 index 0000000000000000000000000000000000000000..1ebdc93f07720e096eadebe8649b368e0c73ff27 GIT binary patch literal 3358 zcmbVOU2_vv7=BK&o86{cT3Xr?MJyV$pF}DuCZQswm1qjJ4MhQ!ZMr0(>26InC_jRG z#~&a!TS{x;EcaX#OLhUkZqcADl^IMIq&=I`}Mr%-TmvI$G-tMhguRb#0_W` zbR-0Z?$~$jOx<=XnJb%joU$*F$k*JOzaS8woZ9Gvi9Q2K3;nPJ=DkKG)7)*;+{$L% z-f}WK-d3ybG&62BbK5TaUgKV-?CtD$Zf4c4I0g5%C!lTFzAZ3Z?DmzD)(=@2#1K*S zT9e*~6sqOd>X{-X0cP032#yHoyENJq7>SrFxV}?y8o4BGjaeASQ311TyGviU?7G0{ zWCW{H%uQXF;Fm1CjAH~>9A5@YyQ7m+5p>6L496|JDlI1*X|^e!KVjiDye?qy`HMk@ zNA^4(I+M_o7T&;{3M!LgG1|~hqLP^@3)7fkOjWyCUG%n`fQ7;^xtp_a3K@a%9edkZ z^xU%TU#s~9xlP}8eMVpCk!p7}d!!dldEJ-P<^=lIYZce_TMZdOsYJYt?SpJC5%(m}O#;R;Q?wPb=O>LXJAL zOa0Mqsd6h-CLayEb1celyE!FB@Q~@AUv(M+Nm<}@cux8QVSCpXsMKLhDvjDGg*tzs zLT%2zNLi<+Wm^oa`*wMI#oi5x*H_mHD@%;Ez`8V?W~(koO*=F_ts>FW%CYHtsuczH z9;)XJn$MTAk!B7L+gcCV!hRUbwC=SUWoNl2J9R)7Sk9_bazc^H3!djU{f51(IBgCl za5IT7@TGyTLY80Ng9bV$rUa~l z>pG3ay4`F#O#>{~$$hE!%E&-P;P`(-*#RnjoZys|=EKTES5{XNVMberw}A7*nj%a<3g-O(QIHftTotU#V$2l2q%2BVc+ zB&KJ6fzi8|V+s)#Qx;mWCd=B<$+9ZlX@e25+wCCc zJ8mUVadLseMO+LyDMqtBd{DQt2Sucb60C&GHq3D(Xjy(SC?}%Cdmq*JXQqFEu05Rj z1LpV8;}2(khq*F4{RpGMmW$NoSzfZ*+@I)AX-{zY0j#-{_6V=E5ffRRkcn&}rAtiW z35FkFAf=}g5l}j75R}fEDMNzH5M-pxHb{HOfV6$b%uN>j8zi0)qOssYu*eYN84YyyF)0{@-UhTW+FnrzOGIEDWVe)H27VPA zs+wdz&J{2$3&ww17W6S@f$nJ*9p%GeDLSKEN+fAoc+#)oGwx#e9M^d_>Ej0fHoF!q LmcSNnql(nO5#fQp literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/TimeWindow$1.class b/target/classes/org/springblade/modules/nh/factory/common/TimeWindow$1.class new file mode 100644 index 0000000000000000000000000000000000000000..3bc1c5445d4f29eb999da873e651e366fd2837fb GIT binary patch literal 1382 zcmbVMT~8B16g|@qwp|ujE8w@FR_O8tL*6M-Z5o%g&GD*wposD58bXV2}6cdqQJPx)1biE!Ty@+*YUya+_qLoShXR^P_81IG`;hyBAzf%Rigl9;cU=eHVE9lNBk2(V)eCMb z)(zZZn2j_JLf3O@kvLBMVR$xRC^*&XC=8dyf)p=F$wJjZR}~X?Rqzw z-A!dql_0$!!KJ4P^_p{`Nufv-fy4ocf2cx*H|wOS-~zGad9!ccy!pQG&70p}JpBp4 zd3=&U1W^@=ju_$$XI-&ocpJiU)>dt^!HuTd2yE^d&bo2atoyEL8FjbWbRDB+HTjC= zG~7Gc(+qKc-SV=hC`0uyDM}JYhmHg^27S}CvyDKQzU4X$tfE0jmx|YPB#~n1y=88i zM&Mg^2tw3M?=~Trwj9f!VTk7P%NlyntD;ZG>*!}lg*$B1Su>Vep3j>M-St2S?)Z|% zf@Ry57w){AKpGhpZ|Hav0}K;~VZ)$OW?^y4*ZaU8=8$$zXf zC>xv;p}t(cy*I>tW%U-X`y~}whROd9s$HQnp=oIt!3iC2NkNn~?$;!cypDoIp=`Le zExDi6@ixZE;aQ(?5}yQ#;FOMcKvnL|nx4mntc!QS^2}A6Hz?+YiV24Ffyi_FQDq@q zq2Ua=G)&=~ig$GsWes1cNShf$!f}1;W^2y2HB95YiWwd6VRm1kP=$G$05J47xMvC8 zczMo}Z~8&If;Sk7xx-z;N`9G$&$|sGo~&99UksY7obDI#Waz27b<Yy4$#F3bV<5E+h*P(7lgv8m9h7;#X=-d84i^YqQDFMe5XVFPIx4 zW))ZVTPT#Ywl3T|ZH67wb$hRgv?VtXb$-#3%##PbJ}!$)p0ZQ7U5}oLHhS5aA2Y;q zl~BWuMeg~RT+gRwt~d@CVcocgA-YUDy*$xWTHYuim6AOlT6%!w3jLFqqqz5JHcvM6 z6vlSI3IjV(3s2Dbh?XL>2-?DE%-{lz{p6FI%eY8Z&SXl44``lvDcz`2&uEhOs(D@_ITz`VeXVSNevl->rZFCmn zWHa$+kBCVhKF2+Rb`M{MHX8DsAy&WuNj6AA9;K)ujM76gfnjQ}Ea@;xd{5vq_4y)l z_!N1xsKxK%B)+1~mO2%nP}DFg6cv-?_Y~8xg%2@K(&%({mClG_Av{fefj)()nEDgL zDn_28XFOh3vG|%i50ISGZV2GHG;-bLvFRAn1V^g9^;E|^RlLqwmYj>9$jh~OhE WkyYpss$n_wq_IL)qpY&B^!poajh7Js literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/TimeWindow.class b/target/classes/org/springblade/modules/nh/factory/common/TimeWindow.class new file mode 100644 index 0000000000000000000000000000000000000000..85a8a91c411db6dd314b2b4a19f41348e423d95a GIT binary patch literal 1656 zcmbVM%TgOh6g@2o1`T5a0tY_`F|p&4qT%5IqHz}V7^Y96u4 zK7Wu^vdEIPtH4S^RX!kJl0_Ezg4m}Asw8$XQ!4fC+uiq`bMNW?>%Tw#1n>p6bfl2h zkTKAQeu3fV*7ug#w7gyO$E9eCB$N|B{hxt1TcZD%wQ@Ln>4zbbpW< zMg+za3~}T(&5gkI12@`#8q1iAqXM(%$#`>GM-G=1#}5SN^VRbNDHXPL4CAtjaz)^3 zzFh4BUGZCOE3inI+Z3&91}5;KfF`{taAhbk(z89`Q_}E}z)&}cDp8hRxGgXm+Iv!U_))axzLL(S6-iZ!9%>1REh~Ic zs#H|PQn+K_uF_WKrR7E%J`>!B%Re)wroeP?`gOvF!TR=bRw%&7J6UD z1I%ccHSjs+&d9mGA4ampHrR0xuqg^>&22VawuZ{C=$OWWDqD$2^MpRg>#?L^*}y|Q zI@715dpu=1j=-f;@;!H^RQOgPTX%OoD~baasM1rP@L$@s7IFlqGq*E(dczQ4s5yRD!fD8M0b@i1P0e-7}ccW z#KT6}^JK8nw8Bt^6!!o%MPc$r^M*m-OU_bQ;hb+$V)H>sM&iU{uB~$REBMNBTrPGX ziW5H`K`UmDaG`jN;l{)fgc5Pch`apF3SY5D=>D?p&lhcKyx5VTZ+LPe#dAT^4_jg7NS+}Pg8c0j%H zC-?(gI9F;x;s6r8@skij%sNHl99!Pm8PC3XGy8u2`T7mOW31^&G2EA7-;PG18}z## z?+M$Ny|E`EI~dpp+=*p)WINLLWnj1EPy|oM&QQcTq%or-V?sxk;lWfO!tm}kgE z!snxb3A3lCh)Lt^K`7r%m>K(W96DmhRWz;t#Bf*5iF$b+IG&71NRv_w**y`( zFJwf6Gk1ePgxemEA`ziP@-aw+%(9e#XqTcdkBek4(Qb>ZiWt?}DYWVr3QBclj6l-UnkZsk@>fev4kd6xKbh-{Zu^JSe6(R)EjgCbWiBO5Ovr5$(^hZ%N w6T0i?6iXB-K>LkV9ShHN-1tS4NaGfTQz+v$*)$!P#hoO=2ugKDdLc{CU$P70K>z>% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/TokenBucket.class b/target/classes/org/springblade/modules/nh/factory/common/TokenBucket.class new file mode 100644 index 0000000000000000000000000000000000000000..3683b7663db8080b6e5b6bde875a9e58777ea50f GIT binary patch literal 1200 zcmbVK(M}Ul5IvU`mX-xdi-HA#BE_~SD+;2tnqVUdq@WSf$dkF^HNa6?h9X{|C;@qV{f^Rf!@7$TWGv}O{Uw?l51n>;`C^`_*5Z2L&E{51Hf6on@ zJ2m4~WmlMzp{rmymVC|-%4EwLx)~N+uV(m7&vI%Nn^%R=aH}m__=ZzAcDN~B@1tS5 zjfU$OTkf84UbM_TAtTTb)zJf;A>xY$Z`NH;FtAk(eGL6U=a#f=W6Np?FN$6TY=B|$ zTJ5IhqKF}(cnvZvWlGnolFybqNhtb+P8FhI9k-BVNcd)5DALPv#o8CuH(U~xWTte5 z#TNJX@@s3^veJ1}$89BY_yf13hH-|me{!!nQg~jgDMj_=zA2j0a-AqrnAC7b#}v{G zLjeVQXMWcxxwV?`R?fvHJ!?XqyBN}K5Wx_OHuwE}_MH5smw7dfyE-z+(qL`3#t{EM zi9uUme*3Pt{FEQw z)6F7Fy-Vkg!E&*}H$+a*yM0WG&72^%P44(0ZqWA#Lx(}BS^B?8C4hc}Y2(xu$1y+~ zFbX4x1qJZ{b99R%frofR?NXS(X#0tPs;r6JS42J|mfNN?T&3;@=*t~p?7pn6ly45?Po1&hR6irh+LmAW5KZ9{1tWYTGD(@V{0@)Eln^@5>7NQc5 tFQBA?L<+~X@0j?4X~mKSy_85G*+N*Pvjb1?l+G}DV^|_98dziie*tGh4}Smv literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/common/WindowEntry.class b/target/classes/org/springblade/modules/nh/factory/common/WindowEntry.class new file mode 100644 index 0000000000000000000000000000000000000000..239e91bd9cb091c0d18e0bf3604b8f6dc3a1a637 GIT binary patch literal 502 zcmbV|yH3L}6o!ANNkc9rq|+mHI7QX bH~24j2k@g1o&=HH+GJO|_Gj6jJs$h_pC7*fJi|r_8LSkLtssZIz!PKpksDd1``uI~ z6b(%>PRT`j5cOp2jXjO}N~cEmql2k@K2r4^fxI6mSAWP9t)(~`WfV~=pj^Q!DguvY zEIliS^wHRNQEV(lZ)CuptolUB@#%=#)FVqeCaz*nY2}*&E1O#<0#7%WEG7hJ_f5i- z)t1t9G#+-z9?NdZmbI3NWqKm53izKf8_qAVyIjKhPD7yfn*6{d|If#CrH<-r>BpAS z{+y#ecT4u>g3i3r!#4Sa0upbcu_Noe^vdW|IUgO6?@VEfVVm5j(d1X4+%aPt(@Pb4 zSe;GJgSYa7WXlU3r^fN*P1{hwO@YU=DLAwG8Dj;vafca0X>+v*d|7B7&U3o=jjcsH z%&jOMk@K&N^8%Gat;z1E(m8V2;B_qWW{O%ZEM(C5Tg3&oUu3PxGQ+aGeg7N8_IDJ% zGRmOJ|NO*v7d6(eO}%glYmC@`!X|K;^_)QNbD+P%AcL#y9OQM}V41}_ZsG34vW|N! K%S;LJMb&AS~3m5(k z2ZY3dAAtBxh;dR#Z*8)x-I@6`{$@OnUw?l51n?ZIC1kKrK(>M$@&Zq->&bNJwCQyc z6_Xs;c$82oO<#6ZUk<`m5qEtY+f<;sW z9!*)gP7UaTb?;5orIC)wvAMBsGJV=378G{=ZNzK<}2;%o>6|} zIPULL+~=-Il?FFE0mktUfiYBzqY9tsI-hBx0R?gr4*~Yokd<$QLBah3>trnSYrGF zYfY9JmgUWR-yk->qwtlj466LkkA1(O#`@KX7cOF%E%qO?30z`5Cy@IT=r6O8!4-B6 Z@*1wQ%wh#Mac7LI;4aHD(}s}z`~@LRNs0gf literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$11.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$11.class new file mode 100644 index 0000000000000000000000000000000000000000..a8264086fe82319967ff9b3bd0568a0d1248e71c GIT binary patch literal 1084 zcmbVLOK%e~5dNIzoj^i)mREb|p$`dDAp{~J5~`q73KdGKN*tYCCvn->!FE951iyh_ z!T}+1;EecDh;dSp-a@jg-I;GR{$@On-+zAm1n?9a1*EW&L%NI%vJ8)n?Qu7>O7}X6 zh$SDGc$7%Tb)R=dS}~9xjD5=^V-IrHL0IFG`FXRE$QpcQ}JH#kyi$gjGW1KVf6IOnQbP^C{3@A&|mVat`u3 XZjel44YzQ2Vp+pF$s*B)ko5coCf`LN literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$12.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$12.class new file mode 100644 index 0000000000000000000000000000000000000000..7ccf97f7b6587349fda3f4e49dace089cfcf8446 GIT binary patch literal 1148 zcmbVL$!-%t5Pj`}?SOMj>>16}qN-Q>uRlM20(gPt5;B-8AX`BWd4Xrf#z8u;O2?f< zMilf-G)yQBbT8=2&>4Fi#7ZYd$HCT^z8t8PhmQpEuBXzK2Lex9GlA60D56wAxq^9A z1RhUNx>ok-gRzG}Xe zO~jDZmeRC6?03lS$xgzWg_a3rvM;Uj@`*C*>*t8G1>_di1#0ie^-T1?K*lTWs#r@m zv>f;MDeQCiWaE_6nKNy+$xY?3BV(G%A#x^A`iLygFCr&ZlBm=LTjZK2+E*iOyWSYR z0_9yZv?0AwzV+3~*4;mlN0K$Kb(olxH+I~-0&WUCnJmwlHBS&LxQ#nJ-hcUxGih;t z0-vYar1MtkvD@^%zBcWUcv*_ul)AUZCs%1|O?ESpX-X-U`KF6}-lA6XSM53e=5c}b z7ny4?%`h#m-}?r!{vCy{EM-vTe|}{91vTccjjeDA3oNny2uMizG-4C_*3{EFlBIl8KNLW#67D+YRGx)6)(LD{jCk zH~5xrjF}4?`L#uSJ zlgOCDfr&>6rJ?SJT^TuJkHVhPiP61qXCj{u)!M@?fxPRhbnSt_9$zs_*~cTcv@96I+-n{9G49f+ObOGy&)vyrIOg*)ULCqRpVHl@Q_onL`q&x~wD zuas|MWja6i-^oMC$V(k1Cgs_iw4s0-0*|I+aBlWf#xic@x%Q95zT4EtIp z6pd{%)s#kN6b)qTt=o@=%4lnb(e_+Eo2d1B4+Qdlq|)`f0*^YUB59OSM5%ys1)uDPbrijk!S>|TCrWnrC)A|@IWjSE6vpqyYCciQffKT$y9EnkY(6lO!K)JNOoTYrHL1KmcGUx9MZPF+kdRp?-K zF+6wP$q$l|7bey=<-wcxpn$6a4;M3VZ0QTe3a;Y@GalCUoV-+8;BCF#3E3hod4797 zjCtcIEuoW5~6%OjAm+#tT;DT@$rhSh1k-w~RB4pJlDdGQ+aG zdHWm0=64jnu$4iT|M{8kSJYU)H21zwkX77bS!UXhlAqsp`Y|j3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$2.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d82af58b770a2054713b67369bafcb9dba42e91b GIT binary patch literal 1007 zcmbVLOK%fF4E`ofnnzO-%Co%MLk?+?SX6`%q(rI;Es;WnlB)N~u9FOGW}=x1sGRsq z8~}*}KY$;F@FW%Ktu(vZwLi=LY|q%g|NQ&~;3YPT$Y3dtY#BK$3p_J+5V^5cdeBQ{ zLea=1laySfhf!a~-q_P-8TtS zR@zF_(PY#kdn|h?Th`hpmg$MKD&R9?HuNv>e6fVJorXa5E%~8I{`JRn#jYA?=_i)c zem_V3-$$~0F6hD=ZFR_BDj@MDnmDq~ORtPhmGjXd`R)vM8clu$N?kLtF&(IIc$N9s zJbEubO18Y#acUfo+^qjR?g%`cU;l+=&l$_Ohx-DnXZ5@yFI6gVP;a$Et|*l}w_P8` zyRmiIli^MZN96n)?xD*1&6yXjVvP~|PuT>nv7QsieF^l}8DwySorAoE+bpwK$6Y*_ PTGp|_vc$9@B|m=wBkd<| literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$3.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8f9f9c2321f0c7cb835fd59c259b1350b2a3bf65 GIT binary patch literal 1036 zcmbVLOK%e~5dNIz-Oz;cEYBWtNLz_TiV%X7NT@)G6e5&V6<23>l9+Dn$m>sq>xG+O0%oonfWyS=HZ#2zrKA3@C=&;q_C1hx`Yg}0*{Ry2Fb)KJ?zIa zqF`*IX-r9=N5Mdb&e)S+sB~=fFxa2V=Mz<}3uN6$CDn&a(O!z9QA8ev9Ev5Zq9jmX zunepm(+6XZg3wqB-b!yfvg#v62PYHi(ts@KkT{E7rIl+6tkkv+1)kQHOvWEh@0o}x z%Wb8pGadKI9>{*o$a>p^GCq`6dHWPh`}zf*EElj^ZwOT0kQ_1}@xWalyAoI!7Uu7eOYwYah4cugz U#s+TV-VE8meU?S0^&$EB4K9u{i2wiq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$4.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$4.class new file mode 100644 index 0000000000000000000000000000000000000000..1b838463dc570f439ce74ff28bee758b76baa8b2 GIT binary patch literal 1072 zcmbVL+inv<3_X+P-i3s6Ew}a|4{ecHB#IEEL_!smNTEV$)c47*lMHNT!tA7|JR$K# zJRl^H_y9f%;YkYVTS#`bYah!#_IT`HzrX(k@C=(JWUx{|Hb4$}fyc)7!*pbo?spRz zQ#ds7IH5GugRmzfXY6U%S2{7eA0ABQ^O36U3gq2DrL_l4(OQb5UPck60?Gka5ePh- zvGlAQ(g$PTg^{rozL6d~vg#wnozoGusYjM{L|nz5(#kaiR<^c}1)gp#S&R?P?wgn? zD=nqza6Igi?Z|GzmbI3NWO6L6^7zb{_2(COvRuO2Ze5`In%uy||IWvBr6bkX(v2;r z{c(=^zgx0*E@+(%L^SPCgr)CHlcu<0*_`hFt_#@V}RSZBM|&8%oif?d7)95f3WxU?L}M5 zT__$>>RuUNP|(zx?0zEClu~T+9u|2eMYZZT(QEvz;sV<*vesakVOid}_Z4F28wy_- zWl-UNe&X9fmGx^=FI>VJBle%L30!79Cy@K(>8~)z;3_+Nc^x-cX0eW2xI3||V}oUx JX?;q5{s6g=LB9Y1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$5.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$5.class new file mode 100644 index 0000000000000000000000000000000000000000..395f2c7eb2d51a5b9a745905286d178320e3032a GIT binary patch literal 1082 zcmbVLOK%e~5dNIzoj^i)mS+z+^dVs+6d_26gbI{Mp+afZ8wY3CNlZ6(@Oq2F34Rg> zgv5a};zuFINg=(3WLLX0-)Q{JcpkrgfBymCDK-m8VJ(Mr85v|59vM5}@z^Ro=tUxw zd}P8Tk}=mq-WP#0cESfrM@A3${!Bg_t6H5Q>xL?>Js^tCN*s+M@+jm`ETe=n!^1gC z--?m^VC)GGjFtS2@YqSKKFaWDGL~K0msaXPQWj06m1{AqZEYVjJlR??8GksvXF{T^ zbd;6{$*3pok?2KaS?`!YM90D^kI#&0e}9I@s|Bpp8w}Og(hW`c?|wvAI8*~ITw*Eg z&vVrOU6SUxLkm0F?n>9}yc4H_Cr(AYqhiAIMl2)4nyg0R+I+A=cUGC z!KLK;#`ZEb@Xnja}{s10hL~#HB literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$6.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$6.class new file mode 100644 index 0000000000000000000000000000000000000000..6bbeb3ba3675432e3392ba868720e39af851f62e GIT binary patch literal 1160 zcmbVL$!-%t5Pj`B@{x4WTME9a&OO+#|`6d)7=J{6aT=M za6m{L_yB$h2~lH5IGln#qnWCDs(Q6__0Qkme*k!f^%62zDj-`y4tasc#>RmgTBYM| zA|nb0CK@H=0^JXKGW5odgIMXr=s4J)%I8B>-xkRGzH;>kOwn41qftf?r2@(oETbau zaK_TJazG!9eH($ zoc7ll>i-_e&Y7TdPxPQoey)Hc8Pi+=kvDvS$9p>+VgWY<9?f>>+}>x572LvYfz{JG z|EWjd^IR)6cfa(mu{rON@#+*0$@y2td4bA-=JD+&(m8Ti=lfmct1fD_^oFMzf6KVQ z_(j&5EHf<2Tlc;~Y<)xF3tJgf`JbQo_E2N}>eLIDu)-GmPuK)5vz`;keM;$9*~s7u bJE!s*uCvTy4L5OTf~?^#%QDlZDf#&WnvY}* literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$7.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$7.class new file mode 100644 index 0000000000000000000000000000000000000000..1d1872c09a4ce4ff27673bd2fa0bd2d09a749608 GIT binary patch literal 1105 zcmbVL+inv<3_X+P-atYrmvZex9@-+YNC-uc5~-@7R0>s+PVh$*@YakQ%_qf$b(hGoE)Og$QqB^?rHv8}Xn9f75d%@cuV8w)1mgY&y4 zV#<0~X*!sU`ect~KVi#C*Mu@Tkyd&9$C&r^3p`!yz-Fs0(0EO5XrjOMFRuV2N^M_jvb%{)Q%bSUi(2NL6^({pRj={4j7x04%vy(Kj%9W0!54_F zuPA+HltZ2W#mv{B!TR;77p`E15&LIs0#{it2oyef`c(!wTw`Z1Z{Q}&Jl1d<_cF^G M?z5~itv`~V--^&o?*IS* literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$8.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi$8.class new file mode 100644 index 0000000000000000000000000000000000000000..8b2741e9c0d8596f7ff911399c69fe53dbfc9217 GIT binary patch literal 1077 zcmbVLOK%e~5dNIz-GzkmEYBWtXp4lA5TcL}2^A=nLWPp5cW2j03>!Px4iGNzmpC9K z4jeh~qY&eyB0W)(UG2_%qwzQ6dHnkQ{Re=@*eD@`l>)L6a>z40Ft*R#$SU3MrXrDi zXp(U%9oGZi6R|gT!uv|6M)&#NOg2nSu!@M`-khap z#ZbOC_6?7XmHd?m*h{NE%H(h|l5N?OR_a(%77eA9Z!)ZGZXGc^+FUZ3a5%eb5~8fM zl$HnMVOQEi(M`#+)-th3kAzhL9~-mb{tOS73s~E!GgMznKQPJP`w?BKqxxF-v8Av- zPf-7NNg5{(o!Zg;w)BnGYw=F-u~#W?DMxtTh*Jp?Z@BZqE29%J;d|0|X6UJywCm03 z%TVr^v5n<(6^dDzkI|hFnJmwAoEk?XIIBkiR~havkj0!a!gbuBfX6ve77U*jnu&kj zNWQIaEmEFPU+Q!5Ksx`zIL{F6Yc1_=Dx8xJ8?=l?+DlfghII@YeXBS__OqllNoGiv zw{L$1+x~{a7eX0S=%1hZen6G;ump1 zNF4Y9{ZWW?Y`y%$np7MdxsnG+zKa(%Vs@`D8`=N66$3zjW#L+CHh*AON3f56!crs_{ zTQQQKjD62zV4~r^;B#X(+@GPbTEKdv$xu6#erS?^_anMeR}HlA6H8&w zE>Qn>Nm>^UE$rw)NBUOuPJ9%6;#JBcUMifE4qLRAMcPnStA)i38hz`yME1+1wMk}3 zmUkci0NeeE!goR$ROz3e`hG=?^cyoTT)_q*@}IIXTqQlnkoywouMx=LIynb<6Sqia Uv57mlKecS)0m(AahLH691%<{9 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApi.class new file mode 100644 index 0000000000000000000000000000000000000000..9846bb42cc4accbada7c9b80010b6cfc74ee0702 GIT binary patch literal 16631 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.class b/target/classes/org/springblade/modules/nh/factory/ginlong/GinlongApiRestTemplate.class new file mode 100644 index 0000000000000000000000000000000000000000..3a5b4b47d3478f21950a77a16911f80d941d062a GIT binary patch literal 4645 zcmcIo`EwM<8GSA7Y9uijSP*!@Cc-fw3B;_Bv|1gI2uTQ`i%1*A#IecjZfiBLJ0s7| zaygE15e-#7P`{Amq3zm7nu(adl}6Lk-QUsg`}+0Q`_F&> z?e73i;e%E*pix6eM;J{4qmG+33ahSVXHz*dBaOV1DduFsuvd&_GwnI<4I^vWImgZ# zlco3Qsn&VzERyfy4 z=PYS^#+d)wDm|=RZPw9(R)I*##zwG-BD7cUmA;-}(D_(7Du%h`{#Askxc?xyeh(`RR$d79zAq zM;rEX#FZJVkaVs{ds^NgVl$V`tEQ1N8M#GI1$ej_j|=RoXqcKCpLpid^u$G_WxtLC zH7!$iMqZ~D4Nq=Jk@^8VQ(Rt_%E0|1so^66r)!wiSF>m_q2&E^wBjHRDfpifXzb`* zYQ+IlnBhw_~a^5SsD~>gd5q4ZS-0&@XVThSme^ z6Oe-R1detD^p-;&=$TJlmT7NTL8oItM*@Qa&8tqqJ6~{Yfm;tH9ss5mMjxCDrrO>f zGvTJpByX$|9Hxb|({lLPI&N(3(l9Kry9VCG^|V~|EXP(6I;G<@KF0l%bFx07?Y<}G zsvnHfW-AzKkcnu_I4avm8H>vL+NJ9{?$C=bZNnJGHB9I@i%Efl3h4W5VM_Rd0$o9P z%2)>0kX&({Yi24ZeSmu~rQm&r_$*9;oisLD^i~{Zl&SJSz^;SiRv#X%r|x3Xn-((=>q*4ogU#Uj+cSNG znf{*sbfP!j+n3Jtn*)h{nU?8+!M?ao96_cu7$C-n|$6< z=ixa?ig61M+}V|c;t@fNLgPG)o3SdeZOkG6*k1SScz+9A6f}4`invN_1A)6y@MNA@ z<`kI}Z6)w5$GAXB_o!N$d9u@W@HDuo<3)T0vnwmiK;rq%W;iub@D(F+n4aFhSzj_8DA0D z=YyMD?z^n`fTU3^OVlnXbqO2}sv66gg~D*THV8-#D+>CWj<4ez1d1%9&ezTA$zIWg zqU~{WELjDMTrg_ej_0Q?gP5pGohfPBg=(o~Rs{^EjdRW7i9@xaF(<=>+c9I=a;}(9 zNjIse#&;rZ=9Wy?Qs3pykhfyd-dMn1=?r-&j@VH52)xoUwKZCSo(dDzOXUB}u^=FL zfCkH%vP}*Uf^x$8bx!rfAZB4p6)~JM#fTMMZnjXy^hhhZD+{ZRU6AUGB9jJSs_nrC zxlT1j*Qx+dw0GAz<9OK5IKlYPU^zyO$s~OodKB9u6g^Gh?Ten7zA|gBmR0VYmE_7y z^%$m8EsIvxHoc>lde3>%3*{ztI{Q-bp6`7NvXDVljt9Fm<8`u*KN1KjCJ{|eY zI-VcW-b6=RC|vDMMKa~?T^r|hN0y`78dka^`Dl~>cA{av-^B~v>$tXtmsBz|`rr=X zF}CB_&B#SDNN`m)j^HSN*+}qyz#9VQF^cC{<4cSqj|rALXYn#7tKf4zRiJPA@Cvm? zqEQ0+7T&_2Xm2;ARTx6Fl*OMp8m7Gz{=!xhtzKg9UgnGf_z)WZLkF5QG-!C+|FcA; z^)`dE-N$}=V-@$eC{@Dz4u9Zy2k#PnwJ(nGQT~Y94k)E-GLZEG@8Nw;Qt=F{4=_%5 kt9$E^uK{R@G_2!`@8PRTS1|Pt(%2gN8gQ?=Ro8+40yjDvn*aa+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/IRet.class b/target/classes/org/springblade/modules/nh/factory/ginlong/IRet.class new file mode 100644 index 0000000000000000000000000000000000000000..cc9338e5d97b4a0eb29dc2ec78e34a1490d5b848 GIT binary patch literal 2341 zcmb7F>uwuG7(EkTHgO$da&ai7ZD<3r-O#063e-uUbx9k^g{roK1mefU9-M8~yV35r zQiXUA9s{Hzr2gOmcqqh~-F3WnoGASS|GpWc#hr?$W*HPbC|`Pg+dXRP!zEJpl652f#dZKT-jB2-|r4w z724jR{fq2qKX_^P9MAQMxA#mDE!*+CN?@@$GSt%Me%(O7Rm6h9&Gf^bIlo=RB9;WK zaM0jh%7W6PklG&AE=-$ z58Nn5en-0dGH}c}5oYzFLz;J*Zy0$RDmTaQULFrI@4hM67K!f=(dsE3vtO=E_0|f9 z3M*6MTHR;CJyH75?>?1*>?^GT`j#i^ld#7PZ%3N~C9Povtc;l&hF_pS?GvSP+T2jb z*fW$LMkO*%Imwwou2PNCVyMT8W7LPaB~-pbMT0r3{W!k@m96%@RN52mozo)nZTW+s zqjnvW>p9aMw@ptlB;>0@9mwN2HsL}ZTLm`jj)kvH0e>T~K58Gwd*L4`J7y5q^lsdG z0>7ujkSNBWkEPdTqpml7|7dVrPZ3N?H6$V)N>a%zt zP%}>dY955`4Y9Gg#-@)qNw;r{%{9}`+u}EY;-2TJpyA3eRH21$1wJ?xgK4f=cqDM` zd{yQ$jsxE3qcg*YBFmXC9CtJ3MT%CwMA6E31_JLz`>QB$&!>~~HA?Pt6JX#Qe^Y|X2@1Ka)O@?@7h$}^OL-nF39`Vbl&rmyjRKl zoiliw+?~UFA>zG>kEX=CG|BtQ1$p0w&G?;)cWILMb@E<2gSV-*b9kG7nZU=mlNcJ6 z-773l^1gW?-f=yDLfB978SBjO|B>(~^|Cz4e}nuhXYh}E#1!|amQ1~vS}Nlztt6FG zrYJW3IfZvmD(D$oQ1Dy1#>(fI=O}S3zhEdR}#qz1nG7@7vn^^h+U-C4AuW*m+ UEbY`e?xVqzY3GO7#baFlACV=$J^%m! literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/Page.class b/target/classes/org/springblade/modules/nh/factory/ginlong/Page.class new file mode 100644 index 0000000000000000000000000000000000000000..c704774783e4f1ad52d2976f22ffe72796ceb90a GIT binary patch literal 4229 zcmb7H-*X#R75-M<)vn}q;ySe*rJF~cyO_643`_yfpGn4!}WW;zT5Jd_#!fxPg>|G-m!@SVMPrM0Yal^JXI+;hHr zexG~S|Ni{rzX4dn&x^=m#D?j@Lf*jm4ezE`X?a1T^5V`7zaAUNFE)c_e8s@XYYqp#3_`-O=#e^{IdMAqfAQs+(E+#QWO@~z2HgG1RX(fpL zh94!$&blb!9QQ_kJ&bmV)HXYDvsGDbw&Pln>dw3P3LZA#)V<*9+a2+3ayFw(pbB0WuwjEn=YQlx2Sl}YwsPMzY6hkcynTN;4C-F|N;4)XXvba<(}hMhFG-~Rk)NU=-*`Dj>WC5+7)6<<^Ji_X5e4%9PIefmbcU5hKbd%?zOhPs3~jBG~>M{ zLwIuaK0B6%rjF{nb(rdW`hJzAu1}}6?4}`=IPGp@ojI26@-};T&5!rO-E}YW4*b}U z7?aIC(ogIFQo4&+VlH&=Ol4K2g%EABq1!U4!LCy^ft=NQyIkd}h>TE@-J4@QDjdx) z-t!}>m!!|=i62dv>8g;3WX=gw618v>fu45*V@lRtE0ucmwMxBGJG;}acXrp8@4H%a z(q?0uu~*+;^A2?*S?e1sYgZZk3Wq!L+ntu2k!e`gjEcgU>3W=>(f&CzU0<9yRK0HC z!L%2WL$^Btvx{5RmW;9i zcO?k?Xu0LJ+kV@|PYpbNEE|J@v~kP8!zV-86DlLTFdW_o;QgADOOsSiZn@;m%Po2H zLQCGfuwY;@p_ho_C?U`16>^^C+u+-p`wNT@NQ~eaK1B@J_%5HW0ucHfSIb8@-{Z=V z+l$Ym>OO+~CknIbibJa7eKtVdSiic_A=U9J9H4HzU!6OoI$ogz)Sc;9H#Vd?Ua~A* zf9|IH)twqjovQIw`gaZA*J@Y!&ao2tx%ofC9$exnh0rCI@=H${nPTTDlVU&5pJh-y zPVvfMBV)rFk%m3N$mzt$4+a|u!N_D{WDVCj z4`O6HTa)Qwji@=60qoUFY9jS2@w3}Vt5c#m)e0|?$uC9~oADpM#|XbSKlcY%=AHR} z!1+C_kvsE$hqJaYcNY&OOA=qbzQ9M-y!bDSmdsD^z-_n}OXgiXmLe`xEkZ6-^Ce3# z`A;x$8)GG_l+S?5Rhyu4)hXEmax};;IT_GGwLs89wOA?$sHj1OQZWO%R2?PgQq?Vu z3dq$UQYpy1!_drQ$JZ}a$lcz)hjqNfv`pfk*x-@IuWEdVP4Y%Chd*MAl*yj^HC`rV zVGZxGUN14nE$rhJQZ^#^_#r6=zu~0)h*SZ;<%GUUs))Nh5MLuTiofC^{Fs!ROp>bF zJv~Xv{!eKCb^84*CT!Dn*I9g1{`*ix#|w;A=HHTP zONz2bvO3|FV^%js784^WI)2vc@!v@Lncw^bv7e3q(Sk$O?~m6O&84J$&X3pj*gVeo z{B775@8a^C!oN^8MNl%e#F3U#qH@(rMC_(ylT)%%(Lyz!i1J+#dra-RRJ9Wk+e`1V z6Vds>&9I@|)RB(hUA%!e8H9yj!6TJp`F?>NMn8hbu!lM+lOe8Qmz2d)KgH5ZGsKw2 zTcqqvmfqK;m4f~k#V-gkZ8(O(BEm4fpwiwtCyYs0DImp|M_C${&%k=fey#@FN5MV( z0D<1(9NW^{HCV=tOk9IWQdj>r(<2`Z=cN2nYW~Xn$+2?jV|*Lvztggx7w2?IdMzg$ iIo(Wslr?dKs~l&r#kWIS2mH0s;i^dLCVqx@Q2IYb+79sm literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListR.class new file mode 100644 index 0000000000000000000000000000000000000000..b41a3d581c76b58246e27a957db2d531d5a44605 GIT binary patch literal 8607 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/alarmlist/GetAlarmListReq.class new file mode 100644 index 0000000000000000000000000000000000000000..f6b6194a6d5aa2fe1a6b821605ad73f9b7350639 GIT binary patch literal 4343 zcmb_fOOG5^75=KHs;j!Ey653}q+(-|FfsG+q;W79*LXtWi64{9ID^MH6n`=+Nn zJyqlG8Yd1r*s%dtM2HPSiZ_-3i5Mx0BG@DnOIAp%Sn($u!gp^yy1G+}287gAb?!Oe zId$(j-#xebumAqwBLJ)TQ57YOn9yw)C~G($cH52KLDvu3I~}hj8v9}Eup@enV7Kw6 z*NnpM-9|eMTW^U*D+(J|M6@2X#M{@!Z4KoMe&9#XXc(DaxLJXPiixU?QP>);9wn|H zbi$ym0(%{=yWjD9k$lB-arJ){|kEY@C*1N0YEJ zDN_HGjRwBPNmIYw&&$-n8aIk;ZS>_@*>Yq{b{i()ukM=cRQl zwPq$>~r{Tx> zWTx3ENLWsltmuE!L_hPBKX&$iw-Ckh21GtwPC z79(<+Nd-}xG$k)PNemm-_My2&P35pT^+X?>t#&d8&6G9fx4F0J9VBEhwyv*lUSew2 zxn;Yeci4$EnAw^uN{W|Poy#qxJ~uSou~?CtQ!UnHuePEvE~19&c6iurip#zv>C~0M z9{ZGRCS=RSFpPRp*E@)5(;F)zs3OFHiQ95tvR-rjzT*dX!adQ5-wwdPbwh&8X%+4du`Vu9HfL+hW9 z`M0W_ek?sgq?{#R4hE8+DYE2enk4zF+5&gidJu^2TF2}4M9;)q8lL=I`iin*;;x31 zUkoLA;uPX>cH0tLXPI}Ny_8DwJXB8}f$GWgO+9&jtmmiOm*w_^Y<;W9^>JiB-wbp9jE-_uw^-?>ug%oD1>xi;)vEp+BFR^U87 z>|8H&=9yODJT>fmtk9WfUV-!Mu=8x8Gmpdq=SPQ~j~6;$!BwVJX4~acm3(pOeVE0y znu!rftz-oyIW(-(-(cg#I0r8jhpZhnq~uu^a!iGM5gSFb96xGEN!cvqqzbuN9CGTY zAtn2>kTWXewc?PoM-3@AQWnxtAzvyE`RGwY$~~EdJfTAJQ!mbCN#}Enm3z3f_#O=X z{?cDy{R+m&{iQ#{+C07Z0AEr=3Xfkq&6}$)e}Yj*{}>bZU@trR13Z}`7F~moMYrr2 z5>x&dllM?_45yp}ExRT`%dX{^5@aPH)3I`(Gj4^TGj7$XNKiEaRh()Lbk-du=&Wly zqY`8%AWAvVIk!g8Ik)cAB&eQ%YEC@`>G!$*kz8Aed(yjcUNW9P#1_88L{8&hxXwOR zVw?Fpwy7JzBL0ROlyqFd`}i&;1Dp6AZc-|vgP-GNN+!DaDZWR^!Y{CgS148RO9;G5 zsfq`T`WmHCe28c9Iwc$bU>p8Er5gT;?deZ((w#-S!hX&S4fRFDU}i7X|ySs_!(wtm&9OkwI^VIMul#|(lizn zn)Vrk^~WWtn1+!8Qj9*RN?_$2tdAVlCSY?A+{YIf5*O=pE`6_JTjI$7_3;9U&;QhV zb@{iy*i3ik+t1FttIVbRm^dj3CCS5Unb#R!XL+6bfa%BZVVM8)IGI)RmZJF{H!WBV T4g0)$IOM2G=?>n;J8=F3#spRE literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListR.class new file mode 100644 index 0000000000000000000000000000000000000000..90e64f4cff5e2c404f9cf1980496c41c50c362b7 GIT binary patch literal 5511 zcmcgw-ESOM75~kC&Ft>jUa##WLqgJ$4LEkvC51pbn;2Xtab0XT#3qH7k50T(d*k(t zvpWu?e1AjvX!&f#1CK;PkpQU;qCyBBC=yRR^a)(%yltKqF*ZaQ_hy5-k*nr^%5ZB(Ch)&jqEy}I7; znm+mJfnQzon@y7Xt!ASgROj7buA^9_;-ZFBqpqR6*qg;lAmlX}ci6;;3|edlPSEhZ zWoOG3{iunu=<|_&p)T5S6BD9MwLR(XHL*{+887mBlZpMJ$a2bVQy_0PaZqW5M={@H z;$FN(!%*D`oYlsbOUu?aqZFIqBG;y-S21x!-1Dt=yRqnAbDIT{zRkoWj%qO09PixK z9jB>bVlw6)M!9zMF#%7TIELfoUw4DE{X>=~kH);zpt5yU6K@y#oGaXIA-UhgJMc~} zj3f(;=6IiH6i)%Z%f!0{I85M5FQj66z=SO(vu9eUi{Z4%q>0E^Jkh+z#Ct`f6Dm6* zx(7|niO!&INy012b0*Grlro$`K4fA+lrqr8Uffc6pNT~*kz&JXZ_JTH<=;Y?S^J2I z3wXbVy<5(vJLh|APVi_WAjsqPctKmk3-Jg?D~?6)|EW$4D;lHfg!-on}Cu!PulL5)8A_x9CErE6Yn)WIfqRIQ?8Dnru#C zWObF;B#gih^NRWvf2XzPo^MFP@0lMg4fjb&;5Izy`$0QsIon|lwnuV!x`1!sn>xNF z_rkX|RC?8;;a&4L-D)^ScvYMa%aVrY<9QVUL(+#Fug)S?S@iwQo$cD4r#GhQb6mZ? z?IyqoLxawfiOzi0NN_$p z=scC^{3t%iY>*_e*-8fIrlwzno}6NPLIlDTlk}5Z*YF|wWqDnr#Li>Mlta6vlw;GS z98r{yCsUSoODQL?OIcQwA5Nwm+byLW<}T%gqWnlQ<(}PA%DvE~+@~l%noMc!mQt>m zF6Dkj`LSfm1G}Y^+p0@>P*FYsCn<>z?Uqt5zAojxit=*uED!INQtr?$Qb0mKE@wAbNmk|TA7zIdIRQh zD{~9?br2`)EFmZCoRt+!?q!s3V93f^xftlAtrK+8HY{C0Mg-C=BL+HU=LtGx7p%O1 z3K1x86=I;8T_mVxn^sXkW(1-X1I^e&1kKpP){uaPBhZjF90SeTBLvObC2K@Lr3f@) zm13Z?_9#JT?Xop0pmGEnwaPKjygf$HyghD>31~b5jalOzQ069Yh;*##geB{ha2q=J ziMEL~)VXgH+9kLwV<}X$c|1v78dKUV)+uE$uT`)?Da%i(gJ@97p^4kLLP#6hf0b&dGiTHRIZ&!?@OT)d=^N0G-@?OBi2j6~5rdV9EQTDK&~(zyDihC( zax$!J$8^fhDO0X%;wcKfYPPOSJV23`-Z9PChB6sl6OUEsHEZXUi6<)Z%6Cj>?Se8D zx+b2p&}-f8tNlGau-rw;l#x;$@OvO)A z%3ub+!e=ODxqCmxXDQ{FUSGuLDCu~HDgJp%27b!me}PgSzsLQwOB(-`uZLfvRFq^( zrBS|3MMj6AX-qI^+HDTi>!(C9fouoR!DRYX5iA#j^^k+w2(0&md-w!H`uyoS9u`rQx_N%6HwdOWWKim1%HQuWwgA4fu_+n2j9 zf~!mx`7oH0gUIJ3pHqBld}jE}@;S>#?DH>S85n$9jDJ#0brbt5>I(TPzQ)$z2w&&( R4DVSmB{h5(-^UMO{SU89;BWu{ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/collectorlist/GetCollectorListReq.class new file mode 100644 index 0000000000000000000000000000000000000000..c83bcb64eefc1722ef2c6fa56304f496718a765f GIT binary patch literal 2843 zcmb_eU2_vv7=BK&o86>a8Uigu5wH|(o0j;AlC+3aJ|bzUEffVW+$L+Xbh}$NTNM8T z_l`e6Zn%&c#ThOfy}=oOlZemR-K5*H<8a|jyZfH^JnwVfuk&vH`sc}S0OoP4fDE!4 z6ay-90>#_rU9;+#Zl`*6{kGK#1afn>YX@fqvXfJ5dFaS%C>R)mA+YTEooa8(x82UV zW45j8rq|wftX|daR=+k|f#=_=c5K)2$kz_MYRhvRl6t;l_k!vrD_H0&npCVG-wVvZ_S{BWpp+n34Wy6t z0->V@#&C%CEz`YlXWMiHMkf={DDL{yO$ja=cm=PLw_^p%v16l?QwezAHJQlQ3>=lz zIZN{PB*Ae5uS-{pya-2X}D~yw2cF1CyAd*Il#MUGUmgSdT`D zRje48!K}ccO>@Iq@Z6Re+^_?JTqeT}dIHU4e0_&gVo0dsqmz-wDgh-rf23)<*3$Oo zy5(Op*ByFPYI-fxSu=fGu4APVbZz>u()_=Br7p|8Q^a}+Z9BZL+Th51C`Igri3E=xcu`ye zg;j6cZ&?>@S--<6H}aIcg-qgk&kK5iZ*E1|?2Y8GRKQg%Yxqny;EKS+&V{wzyWWOX zjZTSr@?ta(1inueDh5WRmrb|L=`qptyp8Rx`it$D(Cjk2c5ll{f!|8t``0?5iYXRM z$62)ltFGgk!0D76Ohz@G7c-0ZTvH|pSYPJU*A|yHRiBOF&^G)oKH38L`*R*?lmr?8o!J8=$~}E z#<$E-Zo2XdwDh3IA_StKWlS=g0`JpKfggr=n__(#&EH2i3t6sSqsAg6@73KCqH*o(c*X4mYl zEA@=v%n|Vi&`S(NgDmhfH{ zDWnZ(Iq1j;L z(1{r2g^~24P+++@GL6!J%0{FzQWY3$IBicxy@0!aJ}TtmC=32WcB|LONQvO8v;{@ zt-IgdvoF79M;*VlE(5u3M|MCfzZ`jsr=Yn+(!y6cKXNk#bU*6Y0ne_={cKzevi-Sa zaJ&)8=GL0*CWk~{zrDJ)OvF`Qz`zcBE~}QF1e=i`-v)tG%=f{5`*$SU@OweiUUAeZ zEDWnj7u71(#_PTxg;5~8v8~~F21{97!&?U4R#*BRf!Tu%9PggLWn1w+@hxA8OQOKn zgEc7$j6rWouf+m7Tlf8~UblLb@W9NWg?E_tA>khn#K#rAI_N?IQIoFQa3Z^Eq9!ms z%!H!K#F8iph|>S1CG+!Q$T@1e|KtQ_Z9pi?ZCf-T<~_GdXt zao*rJA1k&ma>imW*z4sVA-?N}oM)?kR_!cXwU`08fS1?{RrCpTc=7iz9`eT&4i=9M zS$wu1^D;q-C?VYksdJTLnkiR)fT1X)2T)=PQ*lH>K@p2Jl^Gq=Q#0p?Tj7i@ILIf0 z=Qzp7g#e22L-soRTBZCgbZw{d3(Rkzr*|qp!(5vy@8WoW$d8k^=Ga`-=6}Png7zy; zK0t21pzUI^AEE6K<|xyJ7=E8=4fD823X^Ot8knLhGkArgG|DL862COON~}p_4D%11 zFkt?PDFZ3~nfrp~DM3?@b0XvlF_mk&QlO{|T0dyoUfxs&tv;2+B8yl;J+f?-HD3`z zV?UFxE^14C1E%xU4&|Hq$^#hlyLk4KrRm|a%kk1gb{f;Tj0FPg+~75SrI4k-*ZZ=S z*z-s|W?D3g6@o$`#A7;gFir_|F5keL2|ER*j$u|2dqjMua+v7&G-UUQTe$GZxNU(2|GRTTaPvIS~J literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayR.class new file mode 100644 index 0000000000000000000000000000000000000000..294e5dc6c8f8f9beb39c2a0a152e0249a6351a74 GIT binary patch literal 4789 zcmb_g-E$jP75`mX(yrvSE!%ODP0|nt7yOkf5D2i2LtE#|!A?zV9MUw*;t&t3U1|9<-&0E_rh9w`hMNL$DtD^R%aK5&aw*WWI_uyx-ng#y_N6~7W*6d0JE z+04O2&OqM6AS{9FL1VkvtT!tD_Eyy`d&OE%ZdJWz(cdZFb4y{+*eh;V{A$2>@7tlM=rJ%J{^^~t|;aD3Nx>f0V!opKh zHBfg;a{M6+r)2mn$Bdq*>a>LqV@kj*x&Gx>T5eTfVmh|8D4h#4FG}!7EPNExT>G{c zUh3V>*z`=yOKnKjXx74<44?I6?4}HI#=aL7sjYco5FJz zp2rdc@3_sKrJ&48lTpiKzJzFXRD z27b})fQr{SUTXw(o`<~!lK+8QZ80V3C^I7~72mtjs%?3V4VTd+S%Z>W-E0)LW2(IsC8>3%r_?&LQ+ieARA&W-G^yFm zFo?>}`mG18M#;NUk+eK?wYQBwBYQW=@O%)2&9LFtBce1%viN!)-@rEwd`q78ZwpLy z+dS`uVAm@~GeiyGN_2e){5(z~4UB?bbNwu*Lft-nOALs^H9HYA<>x^T!Qmxzw>CKGwa3s8%ZID4jNL@xf3!Pd?9(2qX!KsPev!?xQf4t zTNv2C@k0j<867gc@xu(c@4N|oF?o)o2c082uX>JS`{y{uP2J`k2?acU&^hGM@1*7_ zm6{imvwiZQA!Qfoggm7}@@+U;W$GHAqihnBbF;rfCjDscU6{W>X5i7>pJ1-e&pyVa z8d7-r#yr2A^qD_n&`!UH(TA|k*y+cZX(Q&H3?cJQ*3L*w_C1U}#E_k_voX+F#~|pe zW7>uUnHpr+W(;)B$q{tU$=f*z%4<;0&c{IKok4=mJC;2tL6!zlih&$wh#70{QrfkPV_C{Xk9YdK&T?_NP2~o z4E%(@Ut5$+{F?pc0i~QIgV@IK`&6V2m_o>R7$M$g*zPzb6%)v`0c}jWSEXUu7_5uz z*J`lQ3-00*4BExq=hF2`wrNNH*CpB@@$o;k-?aRvOtM+K=l_enJNpMA7=-2fO6Rp; zg$0o>Yo|%k^OC;&IFhdXoaN^nKZ|eU643w75P!Wp-66=U>QL?Bt9+V_{55{QLpp#& M5%@k{#}8ru2PbKK;s5{u literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterday/GetInverterDayReq.class new file mode 100644 index 0000000000000000000000000000000000000000..c65a10a62137fe57e6a871695a94f00a536c5359 GIT binary patch literal 3400 zcmb_e&2tlF82@duo86=f4TTm`5CMy{P1{)fKvJqmp)}YQq_t=fWt%KbXu4aHEm$vJ z9S@F2$AexRnPE8SjNl9h(F@M_H;MRrb~kC-u1pWkWcPjE=i~Rj&*$c^e;)k?U=-C9 zVu_O`W9Leqn>%lN z1*c?xdfC3EAaSbVRJ^wo#C!YZk}#0ekuuQ+Q^DkRa4SyLbryZ#igVkpd3LR2tp$e! z+q2f1e^jheQqVDZ)4FZtsupc#Jh}3SoVwFQyBry-JF?wnqC>XYvg_Du!r5b@Q#h(u zS+<3-*Tg<#6d1yor;45NF~+uBqb}zS zm>6sz&N#x!nRrDw2G5uhZ-sf>#H+&8!)wVIubX&7u4cn<9g$U=F5V?wi_Q{H4Pp>X7*tJ<}p-N82 zq+7JAb5^Y)`;e)6%p z^RR#)?vlPps+wwnB-rej@vP#~l(iDZQoD4yFm;aQRkQ1>RgW#~pBL|u0}?$UoYoUq z8=f1)gQzp^YOQFGS0qhc=VctUcIuE+Fhh36b-lV*vsQxG)!P&JB!%m+bSy~O6&3WX z7dxBZU9!WT4k~dxm^})`gCsM4pvEI5u`8>?FNx?R^% zR&aDnOrl)XaZ|y;=c_V{L0oW{Ga<%y*ZAgWCKZ!;>8~7={>t&_ubhfp+rhF#g6|RT za$FUzTK}(5e)iQ)@hxI`kMeB>3U~`|bH~);DBl~6e}VoJg)yufCnJqH<06cAY&PB* zY0PmLVVvG<+!1Nau^C~!d$Vy@q%l7Q5yoBjH~HKhX?z;*FftObJXgt9qCfipdUUwE z0*x@-k_5@Cf-|(!I1-TNW-J2+pyMuf zWVB48MQJFnQ)wt~WOPw7LM1(8v?vYdlT;ecr!q-VN`*?vOsb)zN>#>NIx%SDmB6)T zT|LGG3XDZ3?%@JkJBDF=g?Gt|;{?9IBq9H9iQVgE|D_u z9UJ65Qc3)P{kTjjg&E%C1k$?kH+JeU%%|wmag0Ahd5V1jnfwp3QSK8=kt%=N!mOX< zjs1Bix!K%)fulhKX-!8px+ji?4RpazI{z?{#hz5YCZ5ilewH3NrH&p*kCY|7*GK)l z%9dF*(%HMv2Or`!pP$XEBFLzr#E@JEqM^Lzi4T zQ5bqC$}<|S?_V!Z literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailListReq.class new file mode 100644 index 0000000000000000000000000000000000000000..ea30a01453a19b39d0b2c8d6f88100f69ff8a27e GIT binary patch literal 1982 zcmcIlOLH4V5dKEeS`V*n#fcxmNpQdkdKfQn;>ZpVk$|e?#1*AX5jZf`4${W!9c6bE z2!DY;Kyl&5$p@(7QI!J)SAG*k(X+EwHesQ1NvSlCp6>p-zwVa){QKc=0JhPtAcuSr z1sfKo7&c`%aH3J@1%rK`yTUn??${TR6AYctd0)x!fisZO{X#gdlFkQ0bpls>c}v`5 znA-9JPhDZi*Xny^lu$0BVq+RM!=0z`>jl0H2C-u=xGzE_LRTp6`Mwt^gJq=e$I>oI z4e*E$#0|;7IvRG?#+=41X>rf{N>oUA!p1yKlCaN%Yxl<7XIQ9p@ACWH@i~Fs+`lXO zs#U+El^1L*Vu_(V5NbE^O-Xh1+i4rm>9^_RO#{pmmuGC8#W{whLw+FIGU#*lk*9`q ziWCo2#IRWFbm}R{p3*e87z%Ca3Wm9^7l<3(uucsyjjrrMt^RekiCm6vT9*rAeR$5SmyLGpfaWD$|5q21}}; z2pML2iuVt8_$bM#G~^LcrCG3cZ*_LAk+V=lV_#9llr&5+oT_E=SLw-d*caD5&Dq(w zCo}qFLl>K}xGJTJRLDmrooH?fZ&mO%E)}tIs zqGrZro2{=NPslc_GuWLV5MkTrQ6!=w-eI`#FCMbeE8;zdbN{bO^)y`IJk3y!<|RiT z`e}$yG_JIlLDk0;tMln0?Mbgp1n7H*x6Txtiq!tYo zs&siN+vUvDy40LbT+YQVYdD!i`8Dl%LTfb}-@_^#HUB{ATUhy{=Il9-_|41h>Zjzbi$L@doWB^7kfvTl7B-ROoaC@8T*>{{vldn%MvV literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterdetaillist/GetInverterDetailR.class new file mode 100644 index 0000000000000000000000000000000000000000..6b6c953bab9b05ad23630e5dad3706dc82e86a30 GIT binary patch literal 166991 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterListReq.class new file mode 100644 index 0000000000000000000000000000000000000000..128315e93ee071e841da867bec97cea447b86fb1 GIT binary patch literal 2897 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/GetInverterR.class new file mode 100644 index 0000000000000000000000000000000000000000..b1d756713a21486b51ae3a14c9d92ecef038bb88 GIT binary patch literal 11075 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 a5j~<8Z31`Nhih1jqL+d+Cf14dWc?rYlQDk) literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/inverterlist/InverterStatusVo.class new file mode 100644 index 0000000000000000000000000000000000000000..64c340f8f464e71d77f0fd7a6c52c6452d25b5eb GIT binary patch literal 3563 zcmb_eZF3V<6n<{HZ%MYa1PTNZL4$46miYdXP!tN4YEzJ6QSgOrvTZ`sY)!Vz@X;B^ zarBFR((wn#7o5>iafWdm^aIZL2lxT{Gemsu-c7m|AjQ4X3$WIK6n;t@r}Qk$SW49~I~u8C^)iLefOaMjE!j ztk+sDwAWho=JI00sk((#ue#oF+l6MWu;f&HuXVMsTyHi!#;f{Xq29dWwtTnMsJH#X zOt_i%9e=&O;PDMkqrn_zH(d^y3-IC8i~A8ox3!8L4x<&cnAmh z+GW>2CX>sIj7G3Qda{HM+jv9 zr7}h3X_dNEAGT4DYLn`6kbMG=+js&`(!b`kYg1m;4S1Q!kjr55$i4S0|8*ZN#=I~4pu|$Eyar}T!QA@lqT4#>EH;>FX4b1X zjRmJwm-|qu`L#N8oBLmTiCGx!kg^^3oqBYET~>DenpZvJw47C!Ey)y;^iWK(zLW!g z$O^@f6>`Cig?+<*^!%FJVhDM#T+q_VK&9k#pjK@xU@J>!n+l9ULkpyp zE!^3GDeP>4er4?LlYv<_IWtx^wdv>ms;rcqwXoj$nX@zHlgxjHHEOwS_8=)!xtY06 zB1SHJt(EJ(LeHs)mhUO91$J(_4&4q&&3o&uiaTAGtPk~G^uzLglY!%&=ePZqv!qQXB$R&{Iyc%7K)d^}Ln!wNiwy zFxiM^ljFIoYiB~ZAxCbo za?S=Tr)#isqH-Mon;iz9&v94aD!A(TA0WO7V9)a@%`#|_Pdk)LIKrKfqm|Fi&fmfO zn#Ke+oXuEg4%Zmx{$6J*)|oRn#(A*UIT`EBSsmlNqt`hV>&%HBqPx!L5dr z-PR462|^x^54mHjA!XxsLk0cqEHw7$pwcp-N6Z*WQ~UK3#NJH6UgCPyhL3e^7sm;C~4e(f*DFW z%J>K`Q!>!N3SOaPq6HVTlq`J87-dRHe8#4oqm%*@!f8rr{K${GGn8z+%G{12V_JV= zn+fYKc9}@<&k}dBM~TUQ7dw~a1c}w;2csgEXBL!re>DiA*bdg<*fp3FH}Kdcsm~QPX~=4!#ga{; zOv6PzFtI-ZCo8LWO!=Y_n2fH8U8B4vie_M9!-QUDVA>Z??^%^*c&o4ARmfZqQG(SM(Ny9B%$wBK8Jo2$i$@9^hhnY$FF8ZPr5W&Z{g;fXo` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthR.class new file mode 100644 index 0000000000000000000000000000000000000000..ccb5d45222ea5ff5576c466dbfa21a922a79a4af GIT binary patch literal 3301 zcmb_e-E$LF6#w01H@iu<9~4@MA|JNckF>;3l!PKu3RK%tDHa7k*d|L7n(o$Q%M3F< zJ3cw%lMXY!%8bKfBya8R{(RU zW{^PAfM!8QN?_=Qebdg@ZMTxYuyMmF`2wjEHMi!U6i7}^t*2okZ6ITz50=1+*Qn&1 z+l`uA*{IuPC%@&Dcj`_v?^g5I?UL^`ZsjXAx9-ti+4u4__ombEoyL~u`qlh7$6pKu z%TjQWhdHj(sN515Ug~&q#@pGbJ4Jc+fQ3N}38Vwun&0S#Qb1o6blAdf>=Dq)w(l^q zh`}ZLqcEcu_DXYx#85ZGBeE8r!LtHp$#xe$-LdNeBa;#3ATPzKD-!&ig#$Q9e=3f@ z5W2o+aw-B3otJq&Y~gunIps*RO{qU_;Rs%!1JpmG{2cDmR-Q`Wq=hL=3s~)gRP5bn zh0#m=jD=Z=&xD3ma0%osyoi?=T-9z?=e;r$!?G?8vl(8o@G4#t*t=zKI`f`evi-|7 zpCGsC+pgafxDri67*{0H@brj8c^~0JL^M62h-C`A8CHlrOA}iVKRI;n?VZc-C?4@PLuX^QGyJ2rRY-f66wbd9=Psg;v zrlvtyQ0LvzWU53-%b9Rr84+H0bBCQLpnHDR;VFGG3*)UTV<~ByO{>kI`7^;*zzjsR z)H#DuMJ2J?x{B@Zs0aL-Za1!_?T80o97(H*hWsb7(CC}U3*)BfW#t})E;-y>LP7M5N z1mBt=5m9Jj-mcfzYQ9r6!9a^oWMDF=_MDhG)Egz-E2Bd z17(3DPb4KSRs+`s4*WNig$@#f!<;q=&JT@Gz7$9$WV!Z(t&0?&$H?Wm z3aycL9G@}D{k_U&tTKmm zjPkBtWh+*hgE&Tcq*r+$R=J213{J*e;3^ZHn$G{Bd>{VOwk6tvkt(3jO7V%Hs5vsvvv4z&Fku@WrTp>+Ru8_&5B`6bu(%DQ4 zq}`?0$w;#YH)T7Brd{`Yn8z80KZ0+upgLz9U*arfNjBpbI7dq3a}(!D=~#w?MN%o$ ziF%uqfd)?D9a1K~;w4`qmB!c1;4-NUR_Mnu3>xNN7%*Ty!l;1+f2MeZeF2&N7qZoj z^Q@32KeocwIZlUVgX^*yGS29w4&n^@TW`myGddY(*xw7P=KR8;h*w5@P7?+VZ4VVs zXmhHV`-h5EmeL%`-GMQCA4jiA`B*`d8(A&fF=c^+t%-uJwpd%GWM=i&R<4jzTdDRI zD^9Kb@kKfx_!2sw#1<}Km7eM>!@HysOzU-AWI#!bG0khFG~U*iafy_U5BRbA9;uW{ z{`W8+Q=l0zguVI5+hE$2oTtW69XhneG literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/invertermonth/GetInverterMonthReq.class new file mode 100644 index 0000000000000000000000000000000000000000..ae84e6479c2823e131e1be4d9c139f8fefb47ec7 GIT binary patch literal 3160 zcmb_e+jA3D82_DQZ%MZ_6k5816l|zXFGRecB$Qj_Qf;6%SmdIzO_nA!-3_~2v@jKhO6iZeVo`hqk5O(K5Z?&eljrVmb=bH4MP-}gJ;?VRMVe;)k?U>4Oh z5=g3$bjVNyjydjX-fOybdv&E@R;~QHQ{8A-Uf!@I)+*rzm_J= z9vvev1hk52pS`nTHUx$yy4WwR+_oxyF?Wr@dv)x?i$u6e2_QFiPvp9wkt1o0;(&^S zI$mPpOvlrZi!x^MK^`+^bsTCjmTlI&tYd;T8l6E=Tbrz$)G^hiWY*B`xisfE5R~qEu;DS>z8_T9!=XIo%{92uST3YzO+oedg^1@p6R5c1Xw@mdZ zS$@r_E}E{nZc*!zA8b;#DX}yMC1{I&O+Yxk{TFoznK^#Vas^b5Cd+NA1)4w%l^(N( zN*2=rGU!f$zEB^n+FN{NXNy<;W#6odF3Jn7!S7u#(?b``^t{pB4{Ap!G`>!& zJk5e;dGc3?p90t$H1al&M`_eU0N%t~v=aQx(b#MJGt?hxGl7n=9&1c5T8wf3R^v>p zF+F}U#+j|gyJL;%k&H3kwbghe*7z6-6dcFQGbdV^ocaZ7e8z@DM3gbkBbP*=NOm$^ zS!8H&Jf5~A5) z3Nk^)3W^~!MtO|Ed+0Z0L+JvI7gPd`7c@gGmX$#g{lkx+Es?1?EVSa2{)TnRo*TfTygktJH z#8x++q@qatLnkZ>j*-I&Zd9%Y$Ju?U!#KnKmfLa46dlJI_4nzZ%=G(%RCHy;=R~0r zQ8QCKF3kqT+?OfVsFYe}>K@dYhnT*}`mut<8-^6^Xk6fMYrG%_TU6V?NHgTtR<57~ zTS|M2Do$4W;)`@4^d)jWiFLe-1@cs;GL%S4P+D){A_bJh7-=q%B;f>oi!G8Q<0|&x zJ(83l`9DB=N(xDZCIlrMLOdnI&N{)0A;>L23nTTaBAC(z>mavkBe2>F?%-oK$b@2C zYQKRT6F>38Tnea7jNdxTejt&d{&7r}5lbLF5pF5`WgHDX()&kcM;t29X;!$bwf EzcUz9$N&HU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayR.class new file mode 100644 index 0000000000000000000000000000000000000000..506f8e59c5998cdb179e8308859a09966b446d1f GIT binary patch literal 3756 zcmb_eYjYD-7=BKg&2EzIg_afqh$sb{UWmmjDOI62iY?T(f`S*e>C%Lz*^q2;`q3H3 zarBFR((wn#7o5>i>kQ*K=m(tf5AXx@XNdTmvzug-?r1+alk9oVd!F~*_kQ;GzwiDG zU>ubMB52bQHK8FU&~?MQWo3$1X)SYc<%XSe1!AWQrGopCK-)n2QXB^2Iua(5Fa^#z zm9?wRNvBL4knhnYhFTMpJ7nT99Ok=oR%z1k>DdHp1_j?ui5T`=hEJRbO7x;B?I4Y;+Rw%v!&Lm6o1OZfE4eN;z0-G z;h>2j4AVFsE-N3pn^Y?=B=CfZ44xK9){IaAYqrA=nS`G-@r;Bge7(x=2%aCrnxmAH;Fhai1fhhQI4{&y3 zlsf^0FB1%=&tgtJ`#R?eCHunW#)@58wpcr|o}8Rjyku1ha_=*vZoWVp&(Hl|^~+Eg z)q294s>AmyeThk(x81z6x?okT4coOVG$C1&q9-k7RdZJgN>s2KSOa8vHP91`w2GO0 zSHeG6dWF;6SboK_>l`;PyDlLE((kumQZZ}0Zttl1?L9uEnHyJ7ue%Z+!rQbr)GK>B z0&h?Zvo5K&?G0gX&ry+EpSQ|>{8Lt+E{g zzZ$^T##MmjtC+Bg#ifF4j~Q4Om}z!@Kvl=M7(P-P!HN!6fMm!>*H$_`F46+#Y>7j7 zqG(mCc2!47;Mk4;h54nW;iBHp~U&brk2|4NcY!?0=`Zqj`@OG^U8==CS z&>_O@t-|q8VO|m;!h2eU6QRPqL_&o3whAXhg?Uqi2=8wdHbaHa;4C8}1D53~vlSa0 z`T=@)xcfW=yl~5C%Df6pP)_6QWD*4?F%_n=eYYxQiPTkko9S>X_v}`sthTz!9;JT< z=fbSqyIYmAaO*1jl*-v~$M^46rR;&aN^irj5zk6-k83-_{9tJCD`?R>L%+cI5?b4x zp?fgqhX=QDP;E&(eqor8Y;@!|BvaA**mE1^NGiIGqcz0wtVYQ3Y%HZoOzb|oZ=*e> zrD6e4I;#_u&KfCQf(##|r;Gq-BpWAaB%4UZB`D#8;;BRcG@4BkG@3P2NeME25UCm{ zdWWvH1v=Dg?+-ke>-F{k=kY3I)Qev+$Cl?88@|Ild2JZP*SJ6`iWz*0i=;H3e2fKB zF%+?m*GTE8z{Vme1D|0UOQhoXoVu1tC9usA@;a#`e!@XqB4y$-Z99W*-S`U~I*fFVfEczPE-Gkw3>@Dbj?n{-0Mhqyv2 z!i2n!tMs)EN0G-{q@o;S^LU$-M#M?HLn;QB-S{pkT_x)eBp#6w)nN$11VM;LRMFT+ zB%>Ev4N${Gn^`_A7JxO7ty~|hH-j7akON=D*dfx83O}PD!*s1a_$L_*c_|){$>x7V tCYS#-|D$*DBG7sp1h3Bn^#oX|{8o_TYEa`U|2Nn>U?K!I;NT`w{{RvE(3$`M literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationday/GetStationDayReq.class new file mode 100644 index 0000000000000000000000000000000000000000..346f91e01fc5020d07ca5343c4338055528a9e37 GIT binary patch literal 2990 zcmb_e-*XdH6#j0yo85*j4W%u_BA^CMo0cf}0}_frp%7>RX)Rh%*d}YcG~F%97VMKx z{tpf>zQGF*IwLs4gQG7vzX2G>LJA3V z8PF`~NGhE4>x+fPYTfk~7ixCZDXjR_wVKl?cuR$E>`LI**9(ijUw!Bls)1j)=mcf2 z>U?{{xv!8s<$7*#TA?d9Jl72q-3C$?cEM7(yc55!SM$Ba&~YQM1K0Pe_PU%g6Yb91 z>)}BOx2n)Lb1fnee@e9o%#SiajFj1r3EOt(nFF zZV!1or`#bif-MIt^iH{+b9HTH!Ku&M3pH~3ru>Rso3rb#>|>@DEV&F}YU=;%k`l3R zMA&bsVVv3U9PyrZf+fFt-LBg!PTdFeoRMaY3t}MpN-`aw4Z}3z< zSaRyLmz=WFsb zYqfyaEp(mC#*XxCWM>9`lq~(t_-plwGwDhN1}?T;sH4(%gyWp=2aTX^uSU2udXxA( zg*n_b@P)L`mkQa<7InP`{<0Hay{MxmqXD7tLu)U^ijmVxwpZmi$xiwH^4e-?dposo zwiwQ?uR0ynZ?))eT+bF(>|(;M)n?qlDVeyXaJ(IWoLe1NqlZKMgb@5TRw??p8dk8% zp6ApjYIdXHGz@&LaAX@8opLmASK;7)tFo98ARHPd2Qr}X&A~}3A@eL;ImN=2!;5PV z*lS4g{SkKsu8ONZ@+;KOq1wlMi&);D@NGp3IDwPgDVa}vZ#Dh}#!nO`uxV^{H0CJk zVBFJgobG7Mk=4OC-EQ39(U?QGgYn*{ZDH^4Xk0{z$w|&dt^#y&B>xOXXT%00jTkY( zQA(n4igr5hFVftMcXrvcQ}5Y(>rx3jnZ`47rOiuXSO9i^bC7<>QZ{H z>2e@+$=|HVrJCg0O-vr;M;=4hp6366`3QQ~)BNu+r$F*M5ON0D)J=qh)I zirUzp*p<;{sA z85wg!Nt5pAYH8}|M%<2~Zr1k^&f*-?9KiRO;4Mku1GqR(UKhKmf(xWH%wm#%=Xm+% z3F<{sNv!iWT_R=RI}D*r%EV=!If@>`{2RLsnAR%{8p!hBRIji^Y8x{9I8JK}L%urqn4C<%@bKVu?Z{Goy#11D#Pn9UUFV+J)P= z5;m9MIYlagesZQ6e-}S)j^QdPjp**fHBx$r>q8`86LO8XDn%%v)N875?i0cofWD!y zp`&eO#cIhGwN1@-E|rPj_2%$8!?0w$4hn31a(wc9hF-95&_2ythwxxC`Oj#dzzxiB UHR)}Z&paUkQl!4Z9oWeH3-qQmRsaA1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListR.class new file mode 100644 index 0000000000000000000000000000000000000000..254b271f32741773e7afb4118405000f9cf90985 GIT binary patch literal 2830 zcmcImZF3V<6n<{9Z%wzfl-DS4+M;dK65oZSMWhrcv`{G&1;%lktj*HxZq07c{s_K1 z{s8&H2bocv;e(@JaK_&x;&bJLhjj-PG-KZQi%3nLRIBaf}*Sx?F>8~D#cQv>eN$sxpdQHU=@o@RX-++_|u|>bnVU*v1|iYM;W>gKQ5(l4(C!?Rgqy?LHpVc{a2rn4m<{W0QjPgx*05w_ z5>o;PHk@^LHVkS`eA9~w3P^SkM*^3!iKVB#7<)#OVzLRQDgjNMKDgio?v>WYs@uHo zkZMVPSabXpr|HRcs?_3!#|XY$_&@ukN@gR)Y*!82X{@lV7u~oK)|Z^7v*E^WlQH$t zq+QG|v$U4uG_yMx`VtUfcbBD2!sElZ;S$g<(;aO$q@8FxOEcM&9c`%%DelTxBxej} zjS|fOFGp>C(b-Hn)t9c#FU~QVc{W+ojaoi0so6OuKPvqe(skm&ibKA6aj0JoTg{q# z-jgLe{IZ*OLf$yCb~X&-C~i8NioR&jz?A~7V#&m3vh8?9N4GDh7u*Zi-Lg7Lb>ew7 z0|dU$_FxKBPA@t^ofBhpAq>}Bo7ETFFr(=*yuP*R_JH5c;M=!2qe@-OI=;W`#ctKY zb%76GM#Pv`pAnPCR7JNXrZ^*b9qsvm<7(D-qR5R*+!Q$e0v)}wH1UPNk^hFWxQY_a z4vTXI$n(jmODQKuU-IT?EAuJ0sl+>c+Nu05-s4Kh z@x*7h@y{@S;%1Ki+Q$7ojX4{87!T|;9_(q%dDp{u_fF$IJ&oVT2aHdKUEy1DWK5KP zf!RCh{R#ne-)uk*<$E8}F>>cIqS9K|C+;O=l@y}lv z6{R@IcOMhDUz+$4y7sX22dp2U=O31ShqX94@fdrPC53}mCi$pnQ-7krs6EB*2e7A# z+G8AQBaT*dLXK99qAoGUQw%@AKv6Fm8PG_@Bxs~!6-^1UQjl4++92&A1IlOmMm60X z6=;Y5`#8nA@rM`Rp~^_uzT7P4g3F{g5o5=BFiDx*d#J;T9F8e7Gs>weCY1vOPBH2m0WKt%Qy#Oi^ z)ku0L5uM@7MAAm8CMDwUHC60Qae^)kI=V4boz`ZOLL3^ZHdqF0sPq8l)MLE$mDC@t zXmX>dr8|}^j@lZj=*brAk{DSq$gy43*$Kz8p#xb1VV`Cgm15NQn3$u8_>pR-KrF3WMJFKomzq!=6q); zO!GuJwuU7=k~)4zp0GWzb3$YX+i)lGOGyDQV}Wmro)-CC#tp6tlveOLZlU-uWx+81 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationdayenergylist/GetStationDayEnergyListReq.class new file mode 100644 index 0000000000000000000000000000000000000000..be2ba952db618162305cbfea9b517fdcca11403e GIT binary patch literal 2931 zcmcIm-**#56#gdN&2G~T4V4xmNU;`4o0g!WNJ0@PEd<+AX$1vErpcHrO?OLni`GZ} z3XdDJYzeye^#I;H+H=jCVCB|EcC$=xV@XWw$pH(S`gUtrEj}VRcC7dcuUulQK?_4{m5OpGSG^Re4_L_JRf<@V&dj|H*$^1abw#+ka#vOS(%4Nl zK4jrF92V%UDSt6aj8G}_-VqD0^Il)H$Jw#|4GW_D(dAfa;()y&&lc3zHl(O)(?rg6kYZ!NLj7!mLZLKJ8Z30P*2%3-92h!2UJ4 zs-|71BK;e-PumV*;rO0FF;_0{%xR}4CUL@@&k^XKvmLdtv9_X`%W|a=RKl&u#&y}W zS&o#NU$^PRJ9GapbxKqvuTv#0S01}gu+A&L?p7CNQ?4mrH7Sw4$cpPlRU#>@(iRp( zMdA=?vglw=#3XWdQ!XNmfbRNr)uc4|!lNNKQ-LlL`hyKB0Y3?=8_CwYG=Rwu^ng1Q4SYe z*Z2IUTo1AG`jfbp!V;DZe9S~53`RTbw4M9zs)`<3$gSD1p$L52{g5KVFz99JRH^-p z&bjXD#(HTd(YiES9G5rORgC$qF8kJt?NUV{re&kCWc#XQ;uC?{e}^I$cAY6PairB~ zc+EBBxdZf+7!$C{4mGXmhV(q;8Mq~IbO%0h*EaCEz~TQkr9y`oQFAe=rvn;|)O%@_ z;9eNa)c%5*8XV1O5G#Xb3gnIE>Dyf@aFT4IdzzU|HfvCc)5=yH7LBFzkR za{S;E81aY=g%%NFj3bvs;0*cc)KiclVJbdkdbc6Dy6uqtLCCZCU`LkuC&=tJBon0_ zav%tKEo9ZKHu{m3Bx1|w}g=el17T!i2^|E73>1L3l_4b*u8O5Fr!~%8+x7I5!M;D-3pOenrAee%!n n7O=e~bhp8w_AM63KY^=Qq}ilsAJOLqJ|!tdtDE=?w~_q^j@?6F literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthR.class new file mode 100644 index 0000000000000000000000000000000000000000..c87ee9f6224d644bcc76a4b34b9d8c54834f1b74 GIT binary patch literal 3195 zcmb_eYg5!#7=F%fvRNPsBB0erRVb&e)kw`^C=mH`UtbBw-1#)A2(YHs_r8Jn#LI{PoZC-vEr^zJ`>*!8P-N zX*2@cF)o>b)dmHshKvpkS%EpPzH0azb=zHCamyonbQM!(V+_pPU?6E?+Rqg zraN)JVLAf60|}{-3B|!%5`0R>dw8F6SFK zI4z)&UuKS0?c$CDtKb72AL5LF-c%I&uv=HtiynNe;}d*JFRG?r9rr3x%xAh;G-q|3 zLqXtZ&0M#}J-2KIH|&5Qmx*@+Utl`vZ|p$ArC3dZ5}KLxI)(_e$Bu>8HhpVWYLOX_ ztm~Y!U2DEkTe0d(CetSKr( zPZw&nf=_u_spvb;rH|@VX(@k}_2ci<&#r2Vqd&OJHYiy^)vH`J>t@ZOd`i-rY+-zN zamFc-oEl+KbsbJ-Hp&|Bg}1vK;u5EMUQo5zDjhQF{o6gJht%e=Exe3|LVI)-9S$bA zLi;+Cj3MO!XG?j#WNyUiRj)40lqP7=4BMn``3;B7t~FJu{jr*u63WO1UgRsQZP9Dg z%hseV>!){W&*(ZW=Lq9?(ena7sGA#6K>f}PD($dvPs6J0jjBNZ&d9Od2j046L@J_o znT&>}!1u{;#=uDEwCPqjV*BSjZ@sZmO!P`5C`sAHxU{)pB`;(6?SzEw36vnkBF0U} zS+oPIn8ljFzS%txWpGRkpJ>iOd5}RJ6N9X$8J9zB+%bLM@-@^1PVEasEB`dGf{y<; zlnIT3fs-73Jsd=7q~!GGE+waPxblU?Rp+arh*8qVcsfVC;M(~s#Lc0nNN=I-89ILo z8P4;W39ozbIroy4P<(+4Trcw1ManouUGg!3Ngq=@^S#2S6mD>p9O}?B9R8V`6m~>r z6C%}Eq>vMTAM;Zj+iOopOJ+{-7R-Hnne~>;d{?w!PVZ&zYRNo}nK+;Yt|_{j8Or~H zW38P&5+P!zWsGI21ZHKd1P?N-moe8$WZ&zGlv!_zJRXWHVZN2f^y`Y01=JL&g(CUV zjYNvGT-)ftqx{g1P?ab7KcM^oHT@+2JCxG!&=yXFM{fG(hxsTdBY&bJr@X+S$IwS| z$`%H;5&42jNWPHCsS=ZUf$qmRkW+J+1js081Q~^FPLrT)4AOGhZIJSW2Br5E-JQtL zX8a%F3a-+#UOdD#)^-a0u(3c|nqL)VEOMu?wkNT~or)4UuXC4y!-iYtPD7m;yun=- zUs7itx|aPL2Q?@!aYRE8|FhyHjz!zHy}~T&yZnyj?aL-6Cyd-x|@#Q4HIZ$g{$nMGJiJKd6M7i4qR*?_b)e* Bke&bl literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationmonth/GetStationMonthReq.class new file mode 100644 index 0000000000000000000000000000000000000000..555ceef0788193c1f3c64c8abfd063d91c5d73ef GIT binary patch literal 3009 zcmb_e-*XdH6#j0qo85*j4W&PbML;c@HZ4(9goGkcDMZ>*X)Rh%*e2IzX}VjIE!ZcY z{2v@%e1jJrbVhK72S;CU#=l9#@9u8WwB2#~;IzB<-1F<6^PO`~_OE}Q{{~0(+m{>Za1;fc#xRZ>c-z7|>e$RyM&U`sRjM$W>bwyPqspU6kHkW5D(0Al z@eZb6Q!Wb@-c^yAHM?1x^s2I#^*(9geS9D=xMr`)Nzbj={td^c*d^Ys-xRponQ9c_ z?wEIT$}yPHoJ^N-RJ# zEWoxxM%j%l67(7A*SzYS-LTiBFB^=)q)C8qoAhg}Gr3!J)^cTKExhfW7OSvY z;5;=Pxe5qnX!>55ut0j=+h|nel%py!xchRQP%TJME_$Bd^c(hih)%O7h0oJi#0>*q zs7CryV0f!r9rwPsDx+%{_SRH5Fa&<+?5apHbb7^hs~j)G)1J4wv0mEUSRI^gh6|hP zGDiJohkom(cCaEBlXks6@A$H0;-Vz0O7JwKLeoYarX)z&21gx^_%En~f zZZ>7pz}EuDci|D2rhz*GNB&!tB@Hp*2r)UM0gZ3YQc?*u-h!1wEm%3qxORg*hZNr* za#!Fgxay<7Li`-4o#I=G)%zp9txy4{afUmgrWN1Yjemjh6NL$E8C$W&9859B-8+pl zvBn%=F~*sl#(lBI9KkWh2cPT+`%tWL5hW(4axQXJK&M9YPhrF(HV|q=h$$RZNd(T) zPUk&FhMS3am)(1HsjAy{*%P=t7w z7c6usrnq(ylZW}yN6@t=`9EMjgr0no{~hMc*yuA123rzCV|;#8GH#B}a(A?-jsJ;# zS?vW5Jcc!%)t=$4mU^zJQzchSWp$;KdV$`@=+5fdREJW&XizC%G_!_MG9x7;Yqpd$ z)g8%>rVek!tuX3#eIMciE;7x2e2+=qk_6s^gHOmyvYRTnL`uT~rucV}mv4!nUM7{o zCU4UfQU<=m5Xz)Xe9AM&&~2E1W4{5@dWiu8!~8eJOB@Qxu1>PmR~HDcroKy}ik)Fd zs#SG`>&`w8GYLCYZ)c)2ew9hosgps$_=!Lkn_rx!zZ5;*&Xmq-6NfXUnkvnmiJ&HG z%Ziwp{9_p7&u}8(=ZcyVWVJ|Qsyc1(;S5)8HClsR}dP||DqittJ zYN-yjEzO-=DigoC_V7B-u+(@RP_XgI@yYWUdd|MV&S};;ga_Kme@6QRu4A67NpA~$ PmIw)uCiN9=!$$UB@&!E_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearR.class new file mode 100644 index 0000000000000000000000000000000000000000..9d4a21fb662589f0d6d2253c4ec1684b5d9dbb9e GIT binary patch literal 3189 zcmb_eYf}?f7=BK&n+>oEBB*Jp)fQVIz_#|L3D_!fHSq$7_0rZQSz#gB#q7pP|AXH< z{Q>ohAKDp!0Vp0hq*n4GDpR z8|DMksQY%sxM=!T2Nb9pQaUuG1s2@en&EBLY-eq?VwNqV>Xz#j%QKvH1nKfh9@|VKpO)eJ&lrj$x=qUt8R!r&?sF?3WC%QD~Iu77q z!=mQ4K!>DXF)MW{Cx?a?IzbX0htMmKny?+)KS%PRh2fP>^r2tF5xIGkpxuM6tZrB( zKhR&1K4x^hfj6mdIaY0LTc9^))kU|yTCwsH_m+<1c$+qaxFx^V3Z;Otp$iI5>Uan5 z3ZzS>Gkw2qRs{NoVyvMF`Qcj!pL4gmgXEnX(!^b*4!Kd_M-SpO{+;SN6`CgXH z869Vl6F6EmH?1kxDVhEa+b76j+8y5$n2Y-xIS_LxIwmFw%#3>-K?FJ@#{z4czBTJK z&y0uGbr)>Mx?HcWTD4`9X_NVJOJ-%otl4rM2^D|criF#V|5wqpA+uO_e7kC`*q+U^ z&O449mOPIdE0o+SZ;9tywTIP;v0;`rJ=ZbJCdgRedd96)O`lxamgy7f2prz#-&nCY zRxY2Io6A+JIgfm4dC+&RLl4#2;&S#3tH;}|o|amRVn4jXOHj1@b+>%gteI7d{AALb zYC&{cG@}GaO^vXywhqVh8s?1q!fm|^QGwGu*I&1IQMzQz2OBp`52VdyN3a>TgwAj) zTpWyP1@?8v6$8luHkQ(6(cFrXt6p84FHX~^>RR(Cbuc<6k^~%S-wl0b ztu49rTFIKRW%cyUw)U-Y*+dw|3$E*Xe$Ctpu%P!^0A8&62&Dgip$$uR(vyp-;Oaf+D}Xr zQB0YY%98C{`7|~J#`pL?6y|SIjGk!rK)H}1ofN~Yrg?`AY^q{BuZNN;QeE^gjTsNKT=Sj6rzAHxN)2`784mx< zNdmi+=@_LNQ3~1Z_bETcvAyX%Fp0>(!n2!RQBh|BFLldnrD3#dt{ z1(bZ@hLqwA#|}F1C_C~aROLzb4=6uCO+Lx~4y8CcvV#-Bl9R#9qkQC)u|Lt3QC{HC zW9VZUWd}nIL^h`qlFg+us>GyTp!YEjWYkP51~PIQK}If}(IhAxfwWAz0aBjOpya-y zyAvAPjQ=BC!Bu+JkB7L%+D>2)HWn#M@{6K`CC(Jq_6(LeQ&FVmbB#=u z6BbhA_7F<*r6W-xT?D8A-Q4TAYCQm-gb7)&7;KnU@Q@ZEJn3i{;-c?f7=f^YO)Q3OlHV7th@ zQi5sbH_eVR!4qXK>y=^S&yZnyj?aL-9U|V?dYg{l4H9T#m7}~xCH`z|awWghD{!!d F%)j`(joJVJ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/stationyear/GetStationYearReq.class new file mode 100644 index 0000000000000000000000000000000000000000..3de44e3a22126bd23e176355220d3e812aa04474 GIT binary patch literal 2996 zcmb_eQF9Yj6#j0yo85*j4W%u_BA^yco0ce|LP8O!6e4XwT8k7Ew#nKoO?OMO1^eWa z|H0wKH+kVfX9Q<>aP$Rd{7oW$XLp;XX~yY;1G{_fx#xWMobQ}_n!o;e{u_V^ETxb@ zmjTU!j-4{)F_J9@EA&pgo-@0?y5!X7?WGzuebau~t}WPgSJtso3#u+dnEhY-q)7G~ z5&PS!80R*!K*ndBpz2qy*>!u>37k4(FzFJ~OHwHcsjM-jtr~0Dk~k}WdlSap!BhR9 z>d?!OtcImm%}^7HsZbdubfG9o3@Q z<~YBx=5#Q>)ndPSLt9ia#H3xT&AEY7G;vGeD^9Ss>2K^TRWTu5*PO|XJ0mg3+ z*lkGi{Q*~beigs^=&w*ehh`u0E!*<`h;J)0z$u*OO394kd%N>5Fn;1@0$a{jM`wxu(iZl?j?M)XnVjTY;8%!Fj^>`i=*-w)WDzqa zJW5Fv&d^Wi4Mv)aiO!HcyM>hMHX(aM$g`ax)4PR~MrlI!g^(ZP+>XSDo?`!QA*JV< zkOLtk|87N)YKq@(a`GrQ`XhAhN$wArkDzxw$^8yb%7@4t= zkuf)oH0h46mZpww#O)~RW_=&wJT5TJ0epu^-jW2~gNsk7>tZ*RagmaSc}(%&1zx^I zl6r|!5*xftmnj+e7DFgeGVv+T97B&`{*Ao`OzR~E4GiBzCuon|*bj^lI{J zB(B(Lh9s@33$N{c9%T}Bs@}{*XZ(^$+^Lgc!T8I7DmK45MZ6>t@1%=ow24FMVpU3W zcOtBbELjmVoqG&p{27ji`fNdyjf@uWm{O-`D_79NEtV*BGBbL(b*MAzXQQLzSi5i= zSHk8JKBp-q&`-?_qVzy=3uB9>gyVe|D=NOiZ*Fm9;PnJ)P&(L%B4cez!>kuAnCjS}z6S$5! Veodmy^I0S%K#J0rxC0xRe*uAMHyi)} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListReq.class new file mode 100644 index 0000000000000000000000000000000000000000..f221c8ead9936647a0983dae413243a564dbc49c GIT binary patch literal 2458 zcmb_d-BTM?6#w0@VVAI!G!_txrP@^U0YuyS0fDNeP@*A4f;gkonJ&pS*|O}WyPInL zOB`Q(aqLSUbjIRL9~^zr8OJ|Kt>^46Ngx@A2WOId@44such0%{$3IVh2C#yU5{O|) zg`y*lVSz=*Z4|tgYub%H%c#r3fm3f=(ks}_!e>U!cie}ChU3&fmxa3T6mChsWY^^v z+w#7^@Um%}{&j(&Om=q!8b(wkbc{k5*gB0})3zMD5g2ZJ()E19HyztDJ)a#_L$XX{ z=&ofnWW^B>C3bd3$2fb^__}I-Df#lOjuf5~Q0)VA)u~H?RQaCqz$jP-IjZ`cXE8y7 z6FMd_McOsPUc28mEP;tkkLc~ad$Q&iv!Af=w2l{WUSOml{jDen%DKe67j;}<-e|<* zNcjGuj+gMVK!WZoN5P!SWP5yc!b#(@idS^J$`K{I@rFSV(2^tc5=bMfBggKvrr|X? z!xWWuPRBeJ1f~v*eYxt`HN*ed^oeZ~q_*z~WHO~vzvltL2q+!P8GHUIx_Uqx?3VhYu(UD+ibi=UgH09~C6HhSCNTT!?LQTFN+!~0$2JF$b=KVBIYh04K<&mI;@B+RiBVVuktE`+!6wH}Ymy7oF*zQX zd>e~>QRbf@d0LZPn3`P_GiE06QPLi-x=p~v}Opl#0O4sk9Z z>G1p<{l8%z5i>;091*h>qGp$r`QI@*t^9_wkD$*_D~Grg=qg;wp`Jbno9J5TxP#{% zszQ+>oxlc`sj*_Xj#>K37fJUfrim&-!8>GY3Yx0@g)=HNUH==CD$?}RI!P{3k_vwk zqa+u}Dpxno*`4gGFqp8o@lG&t3W0-(in|=ZMjtD>;(qy->?yQgO%|7xm6>F*$pGCw zI?dc&A$qpL3<5<<<{v?wKSYKk27{3c%|-qhtapP>h+_fo(J4kB<_X*gz+eb2A@&S; zCRDw=h*v1Z~{{=QH>8t<% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationListResp.class new file mode 100644 index 0000000000000000000000000000000000000000..bccc98ea2443a6078c18223b1e61d25ea9d09cb3 GIT binary patch literal 3295 zcmb_e+in|G6kW%j@vW0fO_S6RN(w2&xzv=lw6T){O>Zeqo5mrP;Dw1Z*wZ*OW@cQe zPYC`23Go5sr4JxMk@|q(rAT}OpTQ%gtTSgEJBfv45yhEv+h^~!*WUY_^T$6=e*v(F z`x(R#PeL=GBOx&SzUtJSdlf>SSiW>y2&dsL{|PQ#_Xt-vj`e9Q9#Gq7E!Vf#VhrWI7w zu*~6_*cOW<5THdeW%l%bNWftPSX zAXPP;>z}vGhQP>F`5=d-{Kryw)W8@{3S?`0UbhhmtWD+nLC}lLgI>zezHHzX2{2(v zbiRb~s)18@O(01a(h-64{n?JZkKwd|*YO6uubX~-$=#wV=E!oEnRUj%n|MoLY{%TT zmRzT52KViNLXIDpPT&iCJ$2On_MS3LN+6TCB#^GyHHVq!(VH*&Rk_g5hF&r3 z6vSHT3ejka)}gZPSa(`Go0hk3ZZ-%lTXw5vW5e`pIgTc^pl*}e%F&@{mnETm*?*QC zIUQNQN9k0KJd^SpJPB8DKRYPJLSRp0uK zm|E$v;8C0HDhYJ~F!H(^)GbfogiNnV7O*_O-4=!m7aB zVG5=W#Bou~PDpweMP9&Ib{xxFYM8!n`AJj+&K#nlmv>2gByj4#MHyp71y1ueit)0D z@sH1mu*W+Y0#ji>k2L#ym+(8ynF3qER-gVE;)hUVhF`fXzq9-rN&s^>%MoLbll<=A z{3DXzb1{a_=5)`^ye27iaPz>y&6ysXl>-v++c*~~DYBLBCZ=b8Lb5mhQ6&-KmtIL? z1m593U2q`TIgbm7hq%h!DhH&>c$Zg-lEW$$#}_HB=t}SqoFk}Uo>7ls64y}VoTTUq zO6+O4$z)q#Psa*9T4XQ5HDH3T+0@?{Od|Chqe;a0ONr+=sk-Ss<}Z;HO+NM_GUjPg z22+BhUpg1Mz{gWzmw#DJng0>ivI6hpelfu;S%r261 zPcZSRoF6Z0av`ThD=A4Vm&SV&c0p;4V8lt+dw8EVbzH;;?8T5_l3pdWII)aji9IbO z=Qgw#oX|*)5F`Xbyr58L9Fr3x(AxrS8EyX*#c1yuu1B6;ma6FKpmb6?^pr8f!LsTu f=)pboH$tj!;uhN!wJh`hF79!ZVQ&rV*g)=IqnJAc literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/GetStationR.class new file mode 100644 index 0000000000000000000000000000000000000000..4ad50d6d504ba80945ce91a97fce7ffbd6323780 GIT binary patch literal 14761 zcmds7dwdkvbv|cSt6fQ>_jB|@f(0Zbke|UG83IN;gasym@w@RNEohC{m8BIib?uh8 zX{h7Gjvc2YbrVu2P#jVm$2i2a)U>W?Xd1Uk-MCKErs*?%Bu(okO=?WPbLY-um$AJD z{whC4bM86c_uV^p?rV;8`imx)Hwxn{pyN zD0NnuR82KZm1D_Va&vlT3MxA%(cS=j1hpt|ok{i5x|%#N)I_P#q$X-+if@~lm{^mY znaZzoC_A%tBBf+3lUhZlLbrH*a%V~u+D+;Zf2lmp@R+z}nbak&xVT*0Y?J1Qvs|3( zvRl&=iayt*dE$;tXR^ZWF{xL|CCRZd)xtiL`e`9kRO(GJ@vy)KOuB?Fg?BRhz7!hG zL*l*Mq$^a#%BvsoT_!CSXnZs|nH){$b_?=qlWcL8xz0<)dyPp;gkRx$wZywkTBgur z$=xe6sj2Ns<64te2-@_#8ott`Rnn;yJF}VGxKCJP(y$P!0)9=o&ZH5clS1L1>of^)JrS4{`4-CBFOfI!OH8ofc zr7@FIv`zJWX60Qo$qA;$o&eUFRfD~^2zcD2G~EgCc4r>oWn+>JOK8HRos@Axs;Me8 zR8Et0SB$1inkLN6z;ty6E}nNZyK^!*1*vGy(2ygx%cS>-SOw}?p~r+&vfHGe7rzFgw`en2TQbYN3w63Q&&;e?e%Bu4#CVfzP zsx&3tG%X^(YSIJrA*Y?Iyy@AH$JY~7;2$>WBLc5No$LI8C!vQ;`ly5|5xUtMU=n%M zq>o8Ms}Wfh7zPsixJkbzu{tLf90?Nsgh`*IUw7);5*!STc`XbMhu<*iQ}k)P3n&g_ zdCPwm3{_d+MEf%){iXox0nF<^U?l!olRhVLc~-q-$~q&VgC_l!gvt=QK`lw*ebS`Q zi&x&ccwO`tO!{r{OV5bkS(t?Jlu2KdNU2nj$%^YsCOspr7+lM-Jc;jFlfLWRl@X^Cgr1RL#oq zCc&(cP4kFR%A1y$=r?U9Kso_(i!miGr?(&R>+$z9QT3pxd=V7 z-x6~!>w-MPL+92u6y`e@7Vs3)@HfST)E1CF_vzI75kM4{-PsphbF>QHvAj-|5e;&MzfB!=f)9y_3mQgGbust{_gyT{o~LA?B8F zYLUjdMfFS)_m&d8(O^*lgb`Rzu)yRy6i6P#Usjxs_RC&H-s0j^Xx-)9;#n5%s+@jO# zQgQ@zultT_kL}JU-JJq)U2z4%Cj;iCqwmKwmQaB7{DL#}#6U90bK9&J>g z1{Fs4W4=#S5IpaDuQA_QuYiGZq9hxfHWj*^LF*3}h1G+$!0U{oqNIj17ou+Dl zKJ8Sn#XY)VqVQ#zL#jPn-eJ%MNMNslez{;s@L=^O{@ z5}!NL#10GqDLMndwPXOewle?}C6kq#3;

jav*gBRoUbFLyT zjBjR|d(O}b8!<7ym8tWsp;%^|;YHo}lrr#P(T<`51otI`(+ZX1=gTM!;Lf;57kruciwgD^ z_$gsH>09_|YWo%XOO#l?pz$-G{0zmOLeLwuRN+ZFg}(`JWo@yNazODU>y`d@>2JeY*-)&coOL|OCMEg3 z@K&}ID=Eh&PqI}>{$03aTd|UI0`nw0l;q!sOLi73DTg^vvP((+L%3vjv66Bw^d#pf z$$t!&OcX0AM@&z0o|62haLM__O3G=~lk8QJ|4iRMXArd=r3J-G%E8x@>{pWiLjUSX zMkt~tyYCm8*-Dly5Una#%^e7T(IW#Y)O&o+mk?B>y|SmFtR?lrKh4 z@_HrtORYk)i_+NV6TQ36#nD-VdDc}5_WK!wl*ZhuT=|L(%0)Qfi z`W76ZXvyKelNA3XMI(p%o~QV_{sqs{s4BwP-jD0k5<_7J3OkNb_7l21gYrzEd^gH> z2g>)Ld{3Z!AIkRy%6rzsvBxf1c#0~lk{7A=AejrTl4t1yZuNWZC?I?7QY$K$(if@j zAXQpXt26+5(2fE0pdGhj0*Y%;%!&s<57}h^J!F?#WdbVKpfamG0D8o(0O%3hv?>H- zY7ndd=rOwzpvUYgt5QH!8dPaj1wi}kYJm3HHCDBNYBZ?YstJG|w`&1<+^(}~1yrX& zwN_mKwBN1=XusWH)eERWgX*n@0O$$35uhjRCaY0EO&Zi_H3dKi>}G%t*ezDGfLb)D z*=h-Z4%rq!hwN6%5>TrKSypQRbl7eK=&;>xwF#(QgW9b20O*L_0nib<)9MgVrv`Oc zodM9(_AG#&w!5rZ0_xJBSyop7bkyz!=%_v0>K4#!4eGXL2SCT{IRG8A6V@C7B{XP` zl?Z^2+j9XrZqKvk3TU1N&9&wQKqu_^0G+UVtoZ`!(V+QOPXKh%?gi+iy};@f&;kwW zwJ=Y-;roK!2ha<4zttz8ehuoAF7`mD?1dN04TEc7)$2h z{sw=G>tQwVkN6ljz-s27@YCD~tHo&IN4W`>Wwi5$xfxcgF~}Kifz@U#=W(`RwHtTv zFt@_$Ft+guZiCfne1H?&4r`Y2A@1Z3SY5`Gbe20|bsJC7Pk9!s*~UxsDtEz}W4w&N zI_ZX$FkYjhJR8?SUr)Yw1elt>WvIhis!>x5E-Ra z+ykpGlBQ+c3#&h}m%4cYtc8(}P#gEbTEzXxw;FU^EdDxG#VBr8%fBDXcWz*`pGD7lJK|ZjBjWFi z;6j$5at#1;kjH+dX7HMlCG9nX8lL4_K;5Vk6Zwcl=3A?#9`)#!$>d8ts77sB4=qSj@j}?l9M)mmQX%YPnq|46BX+9_wR$1!ZVu~dyG@0#v1wMD8#-#Y zt5CZa!glAdj@cb5gq=>aI^584yHkZay%6?4hjqf9r9#;HG;5X{I%#*QP?s0NhUls^Lmm*jF)+#`f`sN-{eKG3~Dw`@&I3g z4P>G5dA<}@lvWy#@@24Mbh~j6Uk8e-{Y%c)p9MLVjET+_w!*MgjLV0`J;RdtOnl7yLbt#M!pxn*joy# ziTCj`emAUU{u0mSWw2WK>s-#uVOjir`XOHntJNsMqP+rEn=y;N!b7my4Vym2D`9mQ zH_-jO3Rb5vN#nd47PbRg$7^7983*Vx9){IzoJ2iqVa=9hxvZ1=&(c2m>-#u!iTuM# zOw4DoLKQd-@itO<9@Iyl>(_*eLW0i;4QZMgLi3q#7S-g+aI(*T3xJl8oyzYLFoXYf z54|-;3st|Bkl&)Wg=x8(w~_M|i$QA9+P4?=b&CXR>AIq%ef8q;x`O&*EAZ=hM-*L6 z!#k+Puj!q#bY+e2tTMm8^C0RfaTTz6qaP7yn7uOTG4&XY3 zOLB`xa6OG{JFXqLj^diZbvLeKxbDGq9M^-mPT+b7*GXLW;d%krDO``>dJNaT=jhLf p3V%}^{Hvy2?wOZI&_09L@p|0jX#MrLZr~eHDu;Cw-@><%^?&_6>V^OS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.class b/target/classes/org/springblade/modules/nh/factory/ginlong/dto/userstationlist/StationStatusVo.class new file mode 100644 index 0000000000000000000000000000000000000000..1b2455cebb991f679d6ae0969690e2d3688c6578 GIT binary patch literal 4107 zcmb_f-ESOM760A!eC>MHcAVJB&=C5u1>2i=NeLevCv6&&U>Dmlb#S3A(6K$XH(t-U zyR(7t+BaT+C#s4Ugw(u5YLRG=DpbKsEAhw^QlI+7Kao;?XYTCo*cl-sRr1a~_nhB3 zbI<1;|KmR&dU2aCr@=fROnX~N+~{_~ zb|(pvW*oJeousj*X<53R^_cGnS}lc>OM_!9MoG96w&&!{BQ8eewN@0j_k)(OPPiBs zmbo2tTZwQ^xtI`+9dB>9no%gc(=N^k&)MiUTU$J>Fu&yDF`QK}_74u|=UDEgOFZyg zg_v_LzJkZ8xEVy(-{=M{g^8&gPzPyl`V|2`>EbEWc)Xo3c|rV`n3~REd!9(hzv|*^ zV%G}AXh*cCUCfAfnc9pi{S)qa7Z-%%zwzU$z@`cIV@*Fira6xRi>E=kUD3>HT0YoR6c; zAbGi&5EL<=QPNR(Gar|puLbUZ5v=sY`Pi-{QiD9Yp^rVf#LTaB_cy}!tze@?N5+@p z&7id&w41Wem`1YOPw5u*XiIQW8Drr>&%+A?j*6UAca$hTBBcA zm9@Cr-VARvrIt>~z~T&(MdsG5j4NjJS{x^xq#YdS)OJQK>{k#Wws9c+^M*ogFxi^X zop>+g43yH_SV}uc&F3)?yTe?fF*F z>4Y5{cNCs}Btk`w+xUgTx&IAiW#}m32~NQhr6fRxmav+ z?6@YSWcwz^Q=}3lT!VClM|`Q?-!e#Jg!M;q`t{BsmUcQ7p2ELu1V?1zRAZ@ zll+X*CQAm_QD*L8edZmQ#{K%=;k*rV=zjfgaF)-{JiwRJEr};q&hz0L7e2!vb^L6;!}QjzeZ{VKjC?oFkw3n zF=E5{43joW{BzW2IHSq(|3&tCcZJ1a$hUh|Z_mA#FSgPcBW=}NhTdBzEi&%MD>!NR`A{JeyW%opvd?yt-eGyBMT4#$3<2CI; z=JF8!h@awT^v}c}@H(jyQ~7%Y48ssFvNy3o%HW60E;dP-Oz|?dNLfhm43jT~@oSvM zHYrDvtDc1WIT?lxM=2&0N_|dagMCRD6EJ >zG#%3xLwHb5TbW?=g;cz`buWGc=h zDg&)zS*FN;inW8p=l@cF4f&tBSWI=sdxsI#9|;SLrF=}BlY)}s;jhl$EPogIyYvAr l14l2z{HMpcem0wFncrr6g4s}PUd6UexT}!r;^(*v@4v5O^n(BZ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongAlarmListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..8124c3af5db947c11ec45578a5c40e63bf2ebe25 GIT binary patch literal 5980 zcmds5`F9i78NJVz7+D@RvjjmFrzycUF%t-2YJn4Dun{#jv5DJImu4)Dwd}89Q`WR{ zww2W~o~`LQ-O1-n*V6_JuUEbd@@2$09Y+fq<5-Vd6l_qDz(#@9z79E^dsCKYWDQ3^ zIiu%_#_*)T`nFVAr!YlQGP+g8ZMa>a$u&F)<&Z7O0|Vv}w~tBkRuy+j^5!!6sQDN{ zy$f$wuvx|3*dnl{*3Pn{q!V1N&-Yq@;)<-{jTu(Pc2ZWxcvPSzjO7u%kZey$q3tR< zu$8D&XqhrXi^gK;6o}98uk*-}&P+!7Q&Vv-wlfqaZ6~jL0=vUJWeg-k#*KP1#FAlf z%2QJAeJXZh7r~`m-vRp#I_Q|0Hw4y&F{-c`YeEc1{J=vCq!ss1eJk%uO;=O!r{E z;LQjm!WlG2mux?-;JpGn>OebGt5epb9mlw=U`O$Y3LO*7Y{Dc>TY!GKn9+`LWKjqR>s&*fP;Ecf5S`^EWrESagbj#C*ruxc5 zHwM;9ac?so!}}F{K*i(u;Nm^=y21sPyE9h0s*}Lx1&~~$Ub4BK6Ie6XbPhh6HVQI& zBvMbR_z*tKE}XNojLHC&+~m%a+Mu0fYf8rOQKp#`+^WmQ)|w;6t%l>+PBT7^Pbm1L zicjIw0;_yjLVE?GKAk|vH7amO)nikRJ*`jVjAXlCmOrcFbNKw6`}*}_&g-)?#*Mfy zv@h9=FXBrIzO3Ra`07&J5MokxLsh3aH~2lc++PCg=8{`>z^5uePD*=P(=;dmGLEP5 zbp_v0@lAY-X4eAQ9~`4t#$}BAeyNe#m(yLhQjJ3{U}H;+6fKW^aLjZ~LfmUvwx>(? zGlBPnvS6;rOt6N!)w7#k-JtarJ$u@8j11XEBqRbW2TjWuD&{8)=a}@MA46$9H>NwL zd@oN%yeX6N9t_F5?qRXqHnn=XEES0rSd4;lGSHSvg@E@@CG|+GDS6U5$&`tkD)X0T zCnibSV>Yj>5h0+u#u>wsXUyI#&t$7Y1pX<8J00V+z~Oq7shGcbep0XRaVZO^{`!t+xkH}?EINRB>;AXFri=e2CoY<#-Ay7f*v~J*?RP- zKqk%GyOa&GH7#kwB2G#6@Sni(kf9RMw~)QS>-88{A7kGd7-Ee1IONFShUezM zk0oW)E;?zW-;`&YI|i=%y}wNc9lzQ_V9lMVTvi#w_Sg=!@)0(PJ9+wU;Eh@Y8|4w4 zBgmTw2z;BPW&Hh)oRS|h3+8w_u9=JQo!4=EewTYR{tEs^J1#+7}h=#C{~a}@6@Asv3748M$&a553QK%FDLo&8wN@!eR7E!coI zLfy_=sSezSt+*fe@M547C$J5V@ct=}?I>agrg?vK4!a2KZl1!s@C^3&IE@EblyM>| z_z8aMV|M{R<4C&j0)CEP5Ve)W?-@KxEjHjO{F3ug%9_MQJV)&FylZ$KFYsFP9Ob@< z5@NW--5sP4c+8SVK!3SPf2B%)mGr+N!h(A$^^z&x^MmayQwFGO34jg+L`{=aOoh{RsG1JI^Slu0Y z4o|dvBoVock2QjepJ|!yyo@h|7Qa?ryhs5m4c~;bgnJj^J6m?gHZ)VrJ__q0#RH`2 zBULXiGxwA7AZZVgx}VWMz~^Bf_8tOo8>wHxpUI`WI-|EgyBzk&Y)Q1U2O literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDayEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..c6f2361d04b28b36e28ff54cf1aad7b23d762576 GIT binary patch literal 5394 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 K9}^MzPvHMpbYV9D literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongInverterDetailListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..34164e4c59c4fa30d7ce607f5b7054b3ad4fe290 GIT binary patch literal 7142 zcmd^E`CA*u8GZ)@3u0|!5^T%lz^R=eFcx-klOSS)F<{jgyWkMpP17#Yg4T##yt}eP z(l%-89_f|dZPNQl&os?d`AXCDO4~HO@B1(5@y_lFEuwZLKaYQDA3sQ=nQy-1{jQnu zi~lidX}G%tYCGan3K|5CRlsQ0FmskUo5;9U!Z1(jwyWD2-PMd- z&T!nssP3kM*}dNE7-uK+6HzFrl^;ziRICzcbaYp0Gj0h)I#Tf|xwu9}vs`Qn7AK8+ z^e9?zm4d5Pv|^pWP31ZUmgQX|=Ol(aGjHcuVD+r-PU&XGvQuV8zgwWCW9+zgQcFnE z!~ty~8Ba-}8&t%k&;|zm+YZP3o;yPR}aHL$~e}T7%ij&Uj5_>x_>f^K$jIax$ z!M?!-L*VAIDg*`WxiJ~VCfuOl6)HAki@?sy;zD$a-Yoe|;GvFcl&Uf&lJRPorzUil zw%&ve1#uOf=n_a&VXNFP5M@wI=F@52aRgdB;(kQrG)D9u%gX7RNf~YERxB7}t z=xNK&Q1Opv9)>qlx5HPfj?yBa@2?=K&A6tJePEt$AabF!1V8$}ki zO~_$hfvLj6g21kF?x6}>fr@mZvuLJ^=KJ-FLDL%s(Q|Dm+b3PwFOwmEQMsgSgf{tk zYJ1r}e7AHpvqd8As>tIcJ7&(JjV(U3xtZSMi7{(dMq~rnXWFDT?ZtB1?srG0UAJw^ zZo)mdSHT-qya{g>X!a}*aS*8U=ma_g?L94)Y3t1#&f3-~Z91n@XQ|r#D&B$z1g~ZVVJ}YlG;6c`? zGH|7NKD1H18}Cu@UKQ_??fmd1G%B8og7#bSVTOjTW&sPGDx!ElKA_-(Dn5h{3#>2q z=ZJs);(15b5idvtwuD_fl+zri*a}0Dkff~>dDAuK^(n(K=;=Yzw3ynAMF#gRAupCH z{4^VwvvlawmNp~?^R9Kuu=NbtMuw~mb9&8~Vd~@g`DxugECb04=(Lub(riQi4kjaR z)}Xv&A$b?A{zW{iItEdrh6R>+zb%Y*q*9@z^owc*t_&S;W#b{!T3a^!-b(adxjB;Y zdinNBb{DOd?MK2ZjbQ~$1$N0pEVW6yEDdYQOd}b~&7IXqsrHaXg>2nnm95Ga@3h5( z&zKdCh{c5@m{o146qkwQu4FZeRKr)`!D?8`fVpBe@+Po6*!umS z7wIR#32YYw_}OY~kbzQ_4Oi4?ss1WY7M$N4`@l+{_y%;a<#4YFPfj8t^hEJG@M ze)C$zlt7KV>$ir2eaXuV4zJVr0wX!^0?-`F67P^GkS&|4D!!|!7Yd$dyq3<$G(m_1 zmjgsqDqhhPtfqKWgH^~UgsIZ(V?3dHu9T=%DQ{&SvKUx|!R9{KNq|N8;NHUy)qLwY3GmpEzsk@v|s?j$bJFrHWtS*8(?`ZkN0yT6210%!^R& z(1M!@pFr7#O21wT-xz{TzJPsR8Fe;~S=L;h5nSTE^3J$y<6$ZuCa-+a7kTNu;fJ+= z^N^OyO)?FV%@`pnzmxB5zgO`+e7_lg6gV12`DJeyl~)d#eQL@yb=$jX={yAdg;%f= zPRk5m4yS^@30!w+Qa%Uy*kcn7s^K$H1RLcu0Y{K8$PoAlNA>*vs5i$)n-z1syO+(? z@i(9M`S~&KO7L6oyRP#L#FHG<;N$$1%b>W2`KkH@cm$u|FM&_uQ&feUg+b~D&Yivh z<>(nS_C;cmwgRHD$TbD5jzzl9Vr>EIJDT>&>1u=QaalEa?o(c4!a ztA7E5#h(Sd>MZ&mLC*yYkm;U2C8osc3mEdhMhn=_QLvZ91sseiPlzX|N5s>;534!e zf=1kkHGD~JMF-)E^Is=+q6@pRl}~Wpd@I`qod8(q!F||Hpn5%fCuq}MeDnS^KEqf1 z-5A1W@i`(wI|B^l==1o3hs$Yvkt6Az(|8nLLM`Rqi!b9V)F#e%xv%1Dg!}7U@8pcn z_pv3u-w60VipROrr~fADr8P|u|HK0d6op1e*F-4rDLli`s#?kiC4(}7Z}G1N1umb# zS@My-=_8jq&L8P2U~;^B>v>E8=WwhB^a|nKL$AD{yJhAAvPAj#Im|_<_1eD3Q*c^N z#UkghSPRnJ*L@Cettl$~ zQVtO5K~nD}{U~<~V?RfCa3tew7qRH!-g7ulPWzWev|$PNBe+1X$k;sMp2 zrqvSTc7DsX3wUga>Tzo7Q$5F3iR^WV{F~}T6tpQAQ1BgvjuHw^tQwOa9>k3`WDC2ytk00QNWYd5bXtB?3 zlcz1$TH4Oyp{L4AcQi5kwIIsnQl@Kzx8j6Vo8plt--8_3iXh2B$M*W=dq|!UZec z5RFUYLK0UdAjE|~z@K4)@EeR#&rA!LCM*mznfo~X?sv}l&bjy7?=N2g+(A-;k72^J zii*8tX+|-x^MX)HW}&PLTQL@td9FI9wW1U?LpKeAsSCpW(^4iYmh8Tv0RaRh)X9)g z&oFr+q|sr9I%h$%qeDcQIT6le2qB!3Aj@b(6GM2BFLOobl-*2zQK$~N9M=rZxy#^> z#d8fHjEojU7<#HY%-O=qI^5ArBcs{QEH8?Cs=H%&a;zwiBu>`jG(*SU%dMSPuXoqh zf2?lpu5Ipqe7m#yX7Am42<Fp-^eV5k+A!NXuL=iW4}ZHHS_xzSi92QP-KQaZP7VWWqhkPzLrez0)ZeMab! z^3m6bIL!%K-KE*Jgc1Xr@F%v=@X5mr&{#(&fe~DxvAu%ARSeRO@E#k3LhB%P?ej2! zhtNc$OKT(O9f$_TJA?1ho!EeX1I>}vaG`S>ZGmlcen#&L#ylbthj`ptLF`R2@g`Ss~DfGbET2rvxT zPF{0o9mC2`nmi}8f}Jax!qu#4ZHnvCcILIbVVSl?FnwBhe>&Pw$uqv;s6q%~1r;h3 zR5A?h32D5Cp+Zg@ZoHc)vwOmsiXei03RD%nqOKkma@x*~afcTKbu-Ziogy_bGw91ORF6xp-=hvF=MWjUi;gY^4Nr^u z?Jq!=rx?{UVCkmqlG-JD6}{dyYjEc+{ojLQs2mZlyl%U6Vrs^+gp)S8>k1bw^rA%Q z^0k9Squ#4RZ&rZ5Y9z^a(5#=V=ZSQ5en7Be1y%2TOec*Mv=d0<6palf6i%ayR)qK2 z7&MxPsdpEm1nx!+jUKIwu)iT5>T3+YMsvq9g3G9l?T_XfS5Y5YMdL@bK4k3e@2_6K zAiRJvN*5R;>LE0dZ9`@=cmS<9gC0MncsY%;gswv1Cq2PG{94bEBY^X`KsH3si@4-_ N7%r3bl<)%3?+?Qoqr3nB literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$3.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$3.class new file mode 100644 index 0000000000000000000000000000000000000000..c57e7348df719b806bc530ad05c52e5c0f880086 GIT binary patch literal 1859 zcmb_dO>Y}j6g@AtGl@G%jhiMwCTx zksXUJ*c4b$5D19{AS93wNG%O4_yOJZKTwC?fDrV&8Hc2%N`=T+Gw;ov`_4P}+h~$uu)2EE$lv$TI0!O<=xBMovZYYUDqZqxs&N-`u z0vF{w0@?gMI#$h9f==OthLbv`aZ2DqH|T$AvHJ=okP4+4uv+IkiQP`(zZ1Q~5(T{@ z?TYUBl7?p($hLAS$L6xj%3jR>zcgsVAr*HF0bS;SMkqduB9CB6I3*`Yk^hpY{~tXj3`nqg>%7~>h8W`oZ_WHRcUR^7vU z0MBxKjB@_C-mUakacc!AI1*b4>B@{Rrx8jnHFQ|!2RGjyKA zAfF2ME2NO%IFpp#by{Mtd3u#- l=||6>{1^NKC%DNO8hWsRvmBFjE#uY5B2eL|q)T$-br+jR8bSa7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$4.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongScheduler$4.class new file mode 100644 index 0000000000000000000000000000000000000000..61d0eed48d1c2f0d18fc50b33aacf58adcd002a1 GIT binary patch literal 1844 zcmb_dOK%%h6#i~(XA*ak8iyo6cm(QFCk>gw7e_8%niIjnE69#$&<_`rlcUqu3YB*tTijb84UX}OZoU0k}X z?1)#+IGz*D3MBGli@l(Yi3gAs7;gG};Rhuz3RbI;jH)VFacm`U<{;<7*vcv|-1~T; z2M-E}sUsM|uz`n6Jd8&K3J1h{KS+VTx{9=mj_;Lgp}_HcWhc^Vq|03>kHxxH+AT zTk7H^fr0$_PMGZ?>(}goJjM)+n>dLHffM^PZTn4@+R}LmtzvugF4t@gX0;f-FObde zN#257Cg>zA15+lR#VLWe_JjT>UfnA_0;w>P0XuZAQ_P*h{kyokH0_vom0Ei{wrGI# z%I+ji7gjF0?B?_N|5w}Xp}-x>^B;a>cIBr{1v1j%zbr7c*U{DGZD(`) z&dlt}d52=NbfAw6vac}dofy+qzZKZ(tfO;1xPOvP>WVO5CC_&KkTi|mH*rpntATLU zvx%qu*5sL!5siB;s4zO`hinbAtm#>FWf-auqa4d=a(WsflhLD@gTIUaK0HVHJXf=n zT9Y0>c>{^@o9O+iZSw-3-8>1@@FJf>u@zpz%iPhvjm9a(b&7oZAVcFB^z*4X^!@&gCr*Nh1&nV%CG04wY9KjS`!K-b5r#n8r#7e_01`83_qKh7r@s zDfXPD8M!H)XN8hCvjtt)iZP>1bJa1e1tq5$x@izhoe}PzmNHuMq&FQk2p}k-N`{1L zhS5DCjrKECIWw9a?IX(6o^U2Y2w|TDSw=1D7{arBo+~=1>L#XUh3ZhqLCw&dD-8Zv zJW~V0$Y?->p}DNXkj|}qO0%6wo)bf=qnQT7ja}up17)Hb2N*hv&sH~UJTXa!gj8iHXW3lGz?)4>)f`5jdpr7LUg^l zz`|ko-Jn;=M_(=CWV>m0g{ zXda|ay%#2MAL?jyX>A0(4bi}0OYjxix>w*|L49O@INP#@#=sg{KBMCSV{iX_a|8O} z28>X;z(b;5L@U`&Jgx-yp#!IJ#!D$$PU9@0YvB7ukL*vc)^p_Wp&#eT1_*iq7d;Qd MC9O? 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 U*K7N|_Ndn;y!H!n(l^-tA897`5C8xG literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationFisGenDateEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..598103ed4d244eefb1a3ff70984d7ec8d1fa5424 GIT binary patch literal 4768 zcmcIo`F9&v75<(jdu(}}IF6ezp^y|xVtL6VG-;@mrLN-yxsDU!RINiP8B1ep5^2UB zjncR*Efgqi*h&f^ETyca>@AIAH!Pu?lb!>=@H6>K%Atkt&5SI`_OYu2{Gc;4Z@Kq- zclqvp`s>@T{Sm+cydFanA_}4^n$aS#!*Qqe;*4wA)0254Yw8)NP;hL$v_YBW+>?2n3sA(TIJagE{V~dJ+<930T{T7XIP$1G1Ps@q-s@RHc0?kF! zOJxOaTM1{n74PGgp|J_M|(5=HR6!31f~MlQHbY-3s=p_z><9 z*xP_%t5O8i(88fFpX_M_&O7i>GTw;5)JfCh$&%Qw;DCyQI3%Dqa5A}HKw*FmIa&In zyJv+!Y{j5}*cHPN4l5W|aRf&NHdIOC_~cnL;}scF=4{Ex^JPbE=mgWrng|a^;-@9_ zl!_7DAD{>lzaB-nSiv!pRaNPzRrF#wjuQ$#qT(dR1$wF{pK^_Y`KaTb3utV}$>#}? zydz1E02Qk^T$u6Z1hf#UWJVHWWnD6Ux*elILg6Na8|`RurPG`C-505Sit1X`YY2$zQkbR85j?ComV8G zOQka^WG+2k`SK8q&>Hj^9|$-l0499YfvE7p#h?L5ur z@dX7>srVwEt_#LW1$Ir{bDVrwge5c?jpR21FBqYn?pzMPCUe3v*p7?%l7cU*_zJ!% zkgNuNpsS`JuZ5fSsWg)%7FOiIQ+3H3DqIdhTK`#WQSfzvJ*()iP;%ISRI9y$=jwti z&?H-pZ>qSAZ_%YeHy}{4No{!y5cxUiHz{exL_lKeM=jeND-|Y9_msiFX6%hR86%%I zTuXk3gHbPMkqIVNb9x1QSb!SpW|9oxuvo}y+O^z-Orea&z+b=QEaaGaz;iPd(0l8b z?q4pnW+Y_JgG3S=zK}6zBmou`{FF)JC%5J3spE??^u{sM%Q@K-hGb6?8_m-;ZcW>U zSCW}EQp@Uffl+b8JH!*0&XO@ll{E*F;YX~UF?6XBkrGxI4SsO^Uoc5j9SoJsIZ{BF*7FT@WYyL#x!UR0BGJY-FTHihl&GV* zx~{2`UrD)aWHqD}##%-PU#B@ATnLZv|!;-jzWdAJhuMu9k*y;1FOV()r$@?9jQ3zQJ z_`JfeN4PS=XRNoce;%R?`to&bp11}r5!Ir7WxPj=cHL3N`?csm8QZmJXKNX8EqZ$y1KhYvi0jC5Kty=2>9ufpHBHtbnxB(;4 zrnQxkDPwxw<>#^UItmkVz$v464ReW@ro4fe7E35EVuQx7GCp|)ia+r0S2X1&x`^nB zK24d&=N9lx1k$=u-@0e9h3^AA@J`;mb^2yEH2Q2Sy|x{D(9he|UAP^?ihLz^q z86?51jD5H$^YKM4dm! zFZgzm5`T$b(YI&t82A1LEtF{Ex13d^3l_b6YthTMi2fBitsQ^I@96mm@xG2%sWnQy zmr=$w{#7DlU=vpba_1>Gm|Ni7Yn;=e{0p55F1?M16l_+IR51D$+7%QOOuU6d3Jku# ziH?7w=}l~0IfSGg1^d?P)Fk8hVLqdLcK2Sx*LwS|VpnhfRXouPC3{)$OHdAh+8^qF^O*AQhyoW nSgLZXud{sL4W{P{{6)g#_ygoWQBCyd4L&9IKLh^(BXMwF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationMonthEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..4ec22c4ad74f36d12304232c634ddf9624c6f2a5 GIT binary patch literal 5367 zcmb_giGLJl8Ga_a$!vCq5(1^J;8AEH2kE48c9&8D33NjeFbP2rmC5cT8Q9E(nOR^x zK&`FTqoVP`t6C50Ew(P9c+{)4c;8yjdQ{6_p#E&@^Ucog&W0n2KlA%-=G$-H@BQB6 zd7tn7_QEp{eGR~^cq)n-gk*#j)S^zp8p|G4oeA48M~AaoMpwtJOfIWCsyU{PXld87 z^J>}}AGb`kOG}US=S)+#CDd&+OvBwIA=K176hTBnEk)e17@~;DP!!C=H4^3>)Q)Is z&NZ@XuQnkemZp$qn9dG8FX7sz9`AitGe^~(!w2=Wn{3`ER5U19fJSN`)m;fIE+=>C zQW=XRG*mPWxWcO_7UMb@&ruM^b0zf8!rxKD%vvoByzRwC40{weVug&A3YyR? zq3P0XY+ZFNE9<4xQN^<2KCyAb%sF0AsC>EaenoexdHQYJJjx?^H;vw{w6 zVTDj~&=}YEQCdQ{Db+kA0MMzR3)=_~7Q~QlW-L2pX7pnc8iV0xjU}5?Lf!2OQbL{B z*psYh8SGHdgI)oUU1`f(Nq#%p&Dh?R2wQ>EZWgjY%`Bp2NC0mmV1qIMR*>JkXCtQ+xJP62&92rK2 zC1GL3%?{hv^2KdUgkl(ht-t{T7%^Pk)_C@i#7YtLm>}iPCu2B*qcV;u$m5l)f{NCX z2yGhEoId>+_3@D6v2p~jR`41Tny|@f87Cyn1spS?EsEoKor2fnj&k(5S!2lqkEnWh zun=K);w~9)RPZL;UCKiFwS;u#`xSgZRG31f7MGDl#flFp_^?3O<2P7U|EAV^y=^iwd^BpM2<_L~R+GHHl9v z_)KYcamoo~eon#XMMD$PG8sXoUsP}gUy`ttr-nhGcA2i7_c%;=IH21{j5L$C#nGSNPiGtmQhe}7E=;7UxkfkrI1YHFjZw+ixjaiShb=i*^!9O=^+K@@f9*r zvBQyYLy(EC)XR_s*eD9@4H=HXq;#03RXk;h!3}|+RCr}r*G#9}a%$xTYDdnsjvBU} zNfP`;TAklxn0jAsd|0;!HL7Qk^;l^wJEYl$`0h`J-7$mv4F>kRVvk#D2xi&y(U$tG z=7>Yx9b?xyy>i$kxK>6~S-pS2iH@N$z}bH62&uHob9{b4gE+>?eAO=HCrWOutrp#Q zsnWoV&-R$9D!5c~-(yYWe)J7HYR<(eh zTVCtW66&5!Y%aObU&apMQgpz|*=c>7At-j4-~0y)s&WawNpxUr83Wr_xZNRd=$1@!_om628h&9iQTd3W(!%+FY35`I`m*f1U4DJ|#YDTh2l{!$A!m z=6~@TSc-4(zfu&yH}Nfglf+4eu($Y0K5IEQxatusTh%C^LwyZS;kp)YJYT3<*t)8K zYfoeKc`Vs`7SHPow@u;slxYi3;f6%GB_3{UnZhbhtfj3o7Pf>vTb3ch@r{^|6k02;6+W?xrVkR_=Cx}@g1&grQ{+?PByOzU%ojh{te&-hPko ziyn%Z?{nq{-b`ruf3RG}l7AzHA96;7?ML_tNA&SgJ|5%er~K65XMDw9MJU3E)~w-E z;rzw(Xs5?7N`&KK#$YuaU0=X0@o;Ma8{^@INCCISMKrb+u)XC$bjQO5^d)NJwFL|| z?wi8?Q@CGz8GaZeiMn{*6vj>=eC9k%s+~y4@w#&$1tuc#$T{RB2Hq5-S4oW8@kG4{ zc)Y%V*B0=Gvv_kN8jt!pn8Mpmq3-mv7tUjns@|Q5#bdPaJ@J^3KUKg7i=%rB_!vjg z#?wqt0iTM?@z^mz+C+{rDArO&j{y7yky26U+y2H`hN7S>&Y*hKmGN z5eyeSScn?B=)oey)lcAe_&syE9uIKeKN4I5DlMET>itt$?-RaW0iTdB|7XezAgw^{ zGuR`eUB+%1BTr)i|I0Y?G&aaMPJI0n$$!!QYKYAXd6=(;*O4gOx{k$(XH1uK3p*#H0l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongStationYearEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..7407cf29f8102daaef6190fe12d74f1243b3ad17 GIT binary patch literal 5496 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 TM#@w8D}|QeZzJjI@4$ZmOEf-V literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.class b/target/classes/org/springblade/modules/nh/factory/ginlong/scheduler/GinlongUserStationListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..6439431fa5124f6e77671cc3df7af114acda0445 GIT binary patch literal 7782 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$10.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$10.class new file mode 100644 index 0000000000000000000000000000000000000000..74deb2e18c0b748deb0227938160e431d3c8e0ed GIT binary patch literal 1218 zcmcIk%We}f6g^J!ZfHY!mS-1T^dWUX2!xap2?CT#X;mdvSvxZ~iRr`+9)~Eb_yB%} z1wvwh#Fjr|gSbvgDZ4Zh6HV@8j?eWyzVeS>U%vr(f|UYNn9CtuLIzoZN5*!7q;Hk( zv|<@i&@<5>rX?r6M6AdZY8JnklwR-=aK-P6tvdYfG`V176BJwEYP%L2{ zC4mQjIoekCXlU$l5E@Itf%LH>tKL&|IO{MuUr2MyF zhune3HYeEEC)i!aJ{#?MZ0!&BxpcBp<)1*YX$Cf=m&(h(a5{8bZ{$14C-g#xu}Qe( zM8O;>PA@h>b7Eec~vEMgGr@u^&-p|LO#V vi&)}_@nbfDOYCO^G9NtsWe!rf!eDQ&;X2zimT?nz#+hZ@Wm{xgUy`5S_}qQq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$11.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$11.class new file mode 100644 index 0000000000000000000000000000000000000000..98bb52c48d7f9e870e7a98f5c74dcd8e5e43f527 GIT binary patch literal 1088 zcmbVLOK%e~5dNIzxn0_{Jj<&+^w5XYr9vR2lt`#RsT3-dR=qpBlVo9I2is{?PW%D> z0e^x6LgK)U3qJ}m-l7t2Y1UfLL*s8|K97I>{{92NQ>@fbz)S_j5G9la9&6K!?9imD z*U4l;(Lg7ojBKR(QCG%Jo3p5=b#hA4UM`*u)79;5fwJqTcJ+b4qt+AMxFH==TTU|B3m4vqX}GPy(Ccj=;5!iQNVQ$_VOlfu`FT9u1BCC_`gO?kOKTvidVc2giMCQkyI#Au)%VPPD5F%&l)63cOsOiHcvE z-7*maE;e*RyMtbf?15^Nlg%+&X{wH~!Ii>5ovCb?SUgE~@j;B+h-I_3EEBrXDpoRJ-JIyoZC2h=x1vT~c; z&Pig=Cz{pz=oKjMn}H4Kt@gSuOs46PC&1FbNy6BqJcnax3b=D_EG{B5!3%H?_gP_P zc8-X^*UQYubep43)s0IiHYUlk^9U4oDRu8m>I8zFBq6&Mt2Ct)t9(O?d|5@M;_s;U z_?yQS&M&Z6XPaSL-hB82V)G{o-#N-)k^lKo?Kf1|zd5eLRV;DD^&>QaYwYI)a$h|B fbq+GP!NuO*!fm!$EaNU7j55nuVOwTc-;$sI$n8sk literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$13.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$13.class new file mode 100644 index 0000000000000000000000000000000000000000..8c0d32ee47a26d0eeeba0ab920843b7b248abbbc GIT binary patch literal 1118 zcmbVLTTc@~6#l04&I%PTh*utX08CsB(U=sQXjLSs#1z8&boaC!-OkjRDWpF6H~bSO zJ{S`p`~kf2hm2uoyPMr}&X+Uaxz5q=pT7V+!*T^V%#@H1P(V@OiLt%V4Xx6> zP9kFp2PPgRDcY@gap<6Y+egRvv8#6n$U0m4^b4TNxXIcL5$CX}wDJvsnboy@fv2mPQb~{I znV9PiyCRS;BGi>H@X55VWUo!q;+??QT za>IIqUxDhb8QF+ltF*0iXUp{9y*!ZI`ByqhjN>&t=}ZYX|JjP^3gYDqa2t077CF)X zB_#0WB3qKFv3~u;3zxCL7W+@w1g@}N5GZ_3>94Yp!!>qJ Z)21Q$`2+i8Q~Lk_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$14.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$14.class new file mode 100644 index 0000000000000000000000000000000000000000..e99525147822233140fe3ffe1ec860f9386bf00c GIT binary patch literal 1113 zcmbVL$!-%t5Pj`Q}F8`T6_%4*<`xRzd~~1!OD8AusUM*shEQR)^ho zpnQ^j}W>>A^rklY!H7X!Wi@UcMN^>noUK;TJp4v1PAMU)CCSFnhR zz@rI9$ErS^82dqb#**AusqM(>Pvjpa18Px+EQKC1hq?~6YX~fCY#s?b+n9?=dNjLj zdX7#0ew*x}Y6t9DX&O%jN6PBd{_D)9cjtWbq~qe%1gh`I^^8Bh9HW&EbT?Ek zww(3X6!N+2QJ*?=zFxM-)tm3tv68XVfo$rC?MWxj0`Z-ZU2?nOF4xd}S+xW&Y=fv8SlAesvUui&$ZcY6r`wQTJnhb~eF6(NvPBB25WDO4zpdY{-Y&QQk_#uKW-g`Wfm zgv5a#z>h+_Nl_^hhcveAx9Gj^?LU8g{{i3$R%<9=u7YBS63PM(jZI`evN}t8sftMs zO*~F1m)St}Rpg94k%=+!G0D9Nc{}OsRO+;;xAqaIvj3 z+8+;lWV@=DvSz7mB9$I0tG)b3S@g9FJenn3W4kF(e@$*+;IA~FSKvk!r7*5y;biO_w{)e zr6%VcJ1x9|TmQ^_x_o)_LfpY!fhy-Q2`}*RB18Xw3G}YHK1=hs?CL({?xo3{K=>-l z$nK^p&nd?$Us;t8PSorE&OFE8JT9?*fw>mb0@Gk)^DD&0H&ni`RKOzt%M;sYs55{4 y)C!le#1h+2&;+h9UlJ&N^6*z#DBv0!dwK&mnHI5(+qgH;EMtXfz_30fKfeK>BQqcX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$3.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8571d44db2b12be1d5cb5a5af79644b1596c34c8 GIT binary patch literal 1121 zcmbVLNpI6Y6#gd7UekuMwQTJnhb|IEiV#RCkx*Hsq$)|(`^0`phB}^fJRu4v{s+H; z1481!58%rGLA-HLDH4Y?w(PfmZ<#kgetr86;3>9B$Y7~}tcM)(0*|!m`^m_txZjOr zNd8cVOSZ$_$U+Zu}{;QNc8>wndAa4gMsXkH~$x(-F0)M~32nxQ2ZdE87rQ+TJ-4c(T1vDK0d7phE^+ zZK{|K$HOj}W7&;Zv)0ssj83FcPX43Jy50pIFOsfWs|!?GWCuDt?~TDq9o3Je9UD&i z^8)bPvZy6iwh7^ErXsM+bkMg$!=6v!l1L W&NPb++`;`+vw=;fWrlSr`S}g4mscVH literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$4.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$4.class new file mode 100644 index 0000000000000000000000000000000000000000..f0c253a0dd681dbaf5a2541e1619f6a32752a3c6 GIT binary patch literal 1116 zcmbVL$!-%t5Pj`+YRGs)6>QZC;ovi z;ee1h@Bw@RAA_hKBPWPMV$W!%7FEA`UCYnk-+usjhRqT(SSlb}K@NF=$Hw+$GO{}E zcOw;&9GY+(Q6l4k?5V&Rdm{VBgcFkcsdzrpwOxU{8|b9=kO5i?Ak@n!qEtY+f@M?$ z9-U(JtQyk9*mp88mgJ%Gwj--QQh0naqBix&QXCL-Xy{nGrohtHc1Pgp)%cQyJU}5H)79P%LFRwD675w*O~Qq7kIKry4r4Cp!$Z~z=X5AF<9wH_haS8 zmXrQE1AO6fG|n8lSSQ=$8m+hLgOX#XBiYgk+oz2<4CdJ9#G<5nZyZHUdJ)ny+|bqCD`PhE%N$`YSnM8 z*Z5n;CHAkd)?}GsS>Cz-6=LTb3SZdDV3q&*G`52(>({1HxQsQnI6g%axWal)Aot0` gud|WCRSx#@I&QGcVgt8uH}!1b9?LSr`jq_q0p2B3MgRZ+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$5.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$5.class new file mode 100644 index 0000000000000000000000000000000000000000..a5641b53024fb08f02d6240d0af6211e80172033 GIT binary patch literal 1131 zcmbVLTWb?R6#gd7y|In;QtP!3d1xy*f&_)cfL5(SETJiVmC5c&GP>D`vlByn@^APv zd=SA0e}KQjUm~7KB&{H{%`Us=!kO=Ub1pxBfBymCF*XZGVJU}n2^nMss>b$YGPFAG zbs`m#9GGwvQ6l5M?5e;SJCQwO!ZFFcsdzHfm8wA2^>tFY&j8H@5Nbu_QOKcK!ZJz% z4~{XqRt;!u>^m74OR}ZB?a1nn6dq27bUN?i0A+WTyeI)Q`YauHBXnNO# z47l3VG3}2A9kPe26R~HlX#y1;DXYEx*O~Tr7kIcxx=OVsP<~CWZ^HTA7_89Ny;!-C z<)pt(0H3)W^%IBA*2x2M_2ygkLCKNRk!MRNuvBnn1 rPtgP}v7QmgeDd&@*+}6E2Yb1WYb?{)zzy7V0ER9E0OEyBnf%;>yqA zfRH#KapgxL#x5%1md2Jn^NnV{otd5a_51q|08g>eKnY7VlzmiC6?mjgByDEmG#Vr- zBstdMBq1x)ksPYPX>%eYt-~qF{X#s;;?|Bp)s14?dcXwT1sK{M>S)y9`B;W8@bDkU z(5Nv@wRtB4ZAkW1jvbl!BZWsN8TDyMhSGpIhut`hT}NPPbL&{($>u_-@pMs3#_%mvP?3 zm9x>g|5kla+~^l+kZ8+8ciM>>Zu~a{^A*6O=;Ib{Gan~5n~1>Y^9;irrS<83dux#v zb1&)#WZf%moq+#3P08#f%38A6;9acqT8d^f-^N_yZy6WZzQS6EWr?M?eeWy8_BYhN zFe+h{|JA~GgeL1(PrYyvYmC^xU=z5+dPSh}DW|{8poA;zoXcyt&a#Yk+{B&2vW~kf KJ*Lf%4ldEkEVAhaB1>v6T=CQc5ILpdf{+N~+!`yG}B&*-2+6ROQ4w z@FW}%5(gdt-U;E^qEf^q$*y*6f3m-^z4nh^-@XHQij4|#SSTT1MFB;D$Jz`+J2omE z^b#3UIMVSXAseQ{urDL0%~?3mIzFXvKNHW!s@@PNx}mc59VTec!O#p)Mx}(HibYff z9{uI$8#$s=ZQg~EHWVI8Z#y#T1I0&YW9m?!45blq4!bHz{F$t`r{1D(>K}z#6CcUp4}tW|@td zD(%oob8DX7b8E^6WZf%moj~<l@FR|8QnPVAj zKllQ%{S~FpY~`@bXEF0VL5=n6=U%vq6}H$vV-r|qy&zEd=;_zk$l)40dwBylS>~~h S+qjn@>$uM{U|N4AKfeL{=1m*` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$8.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$8.class new file mode 100644 index 0000000000000000000000000000000000000000..5d194dc70e1a612f4e59cccb353af20064d266fe GIT binary patch literal 1107 zcmbVL&2AGh5dNIzzo8AK{FJ};kV9J}76~CDr9^@P1u0Zj67}xvP7=dr9c+gxJ@Fbm z1_y-1fd_zhLX5Yl6mdzi)_P_>jX%$fXMX(p_8q_zY?Y9~QUTcta>xrj(q<6Yu~EsO z7t4r(k&Y%Y*&rDPeHl7!rolk#=!AlUR6HH4T3sOThRW6+FhOephDI4hlnN+Uu#Aep z!@nGTBS&~h0*@EDu2yddRNs&r>gYT-CM$K+Adzlj z_|l&jh-WUx-i1T6y=0r*JclBug8{j5EE8v~lTL+^bkYU~~dC#Z5r>L@i?aT|8vBnnrr)&aOSkDRMK6?6fHZr)%&R$-} W4VGDK;1=$t$Obl9mYLRH$=`1{Gf#H_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$9.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi$9.class new file mode 100644 index 0000000000000000000000000000000000000000..510aa2c3a6bc215de99bb589ab36b37581548efa GIT binary patch literal 1071 zcmbVLOK%fF4E`p~yP*x`SzhfShqg#85<*a=L_+0NDO8YFy-#+XWMDIs&d#<9CnOI1 z9u5eJ1Kjyh2+tNmIgw^pyY^?kguVDqQHG)`$00YO82|5 zj3^kID2*uz^dRWT&>1@p`o=`Z6gXoLp`#jL*g2?lvb`KFt@gTAn(?7r;AY*}iXP{s$+Dvy5~^Zx7t4`xZ%*lY^aUy>V`XmU0ttL&-1mM*oN z^!q8|soSx2DrmZ!?2tQ4P~=Q-n35eUeMFjXBne)7xbp`-kxn*S{0da}Olm`VrhE?< zCWCY5jXaXv=BGN0O~NC0(uWeR{WAj7mCu7%!wuZz1X)>=Is`tRWfJ~-t_~eG*JtT2 zH=?{tiF;uZCs5nbn(THglY|ni@*0+TBSpRL7tw3{&Ep)~7g%et%(1L)-2M!)@dc$% zjB;4ye=+m@fI91!PrPs*ON`h*V-vW*dO@J@-qT-Xki#W*_VNm@vdm){*KsSeEMtXb Km1%uSetrQ+PeL^S literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweApi.class new file mode 100644 index 0000000000000000000000000000000000000000..be33c0b293811c7acea4f57b611de08b1631c719 GIT binary patch literal 14917 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 CY(cO9 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweRet.class b/target/classes/org/springblade/modules/nh/factory/goodwe/GoodweRet.class new file mode 100644 index 0000000000000000000000000000000000000000..2cbf87c1829fe63fbaec711b5baf4c0a9e4773a9 GIT binary patch literal 2087 zcmbVMZBG+f6n-v+DRc{!B4uS2P*GZZ8FyWGl>)m`qY~>&q`^c#UD|6IX=ljHtsAr1 z|FJ(~P28CH!5`p{GCp@^N~Z-4@x$DgbIv^HIdAvV=MNtNtl>@uLrA4DoW%$%ffKLf zYiYNn+q56=yi#>7V68f?qt^ve#nSc|MlqH~CW{}C6}ayCO*`249k;pDk_~0Iy+)^{ z0^8lSU&^}n{5N*f^BR9C`(C&`RYV-FdkrNpRqZ+3bhT>WCrxvJx;N1gVL@@sOZMRmUF)n#j2`i{BB z!ePDZkkpOpcjT4M3jLUG_Pe+%-vhYH0M?0`ZYmu`FQ=e6kPrAek0XL;Z9TG*%l-L+nmi{(gkGLINYjQdk7TFEZ?d z>Q<6aR*{AVb5whg2Z7>hZ6#6U*n0i2NFcN2b^N-z>zK+;9JKmX)8LGK!}D~YeYqbc zA;?+yJ%gLLmBxzcP$qe?Hw%vY+S^lhL?de2yU{EO{F_WgY#4#wmu`cTw^;SOz0Q6) z!7|QRLelqRjcsy-`HO^oH&F>u3{jD-)|R7Hc@%2`^P8OSzs+>7Es3Se3mo9+V1{%} z{3DRvbY10FS~3V!kj9?^7Y+q}R6J>H2+V!klvRv^$63B2LmdAUSH4p`4Vfn;-1%xi z;8b{?r5(Ej7T2FBxy@a0A6b46@s@`aPIEPCb3Vg08yR2@^SmweNzU>na1Q6W_QSnH z`add@aG7JmE#d;%8@MOjO;pzMrT>xc(KAmtFu^!-A!Z@6iYXfUCI=!x)}qdky~uAw zP;GcGp?C!E@j>4CWAZLxnLG~h9v|dgAn%#4@HRF32Jc+R`w}k4j(X*Lhsiy$YN4GW?$t{vhv@gZ$^nfBq}{qh4DeMz1C&@1`bGn5CDv0#g)4uCGz}^FbvZ zk%FKuzswHeH_mVJ1Ezt&@XjZ~%OC1aBQcJLV=uqpI&VYx6*st>A^45oD%N?+@bm{q Ip@LIi0A7=&;s5{u literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.class b/target/classes/org/springblade/modules/nh/factory/goodwe/config/GoodweApiRestTemplate.class new file mode 100644 index 0000000000000000000000000000000000000000..a74286c519ecf56bfc6547591ea890364f77db21 GIT binary patch literal 8636 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/GetIndexReq.class new file mode 100644 index 0000000000000000000000000000000000000000..10ed0826352ba961a7531e40f49203f520148ef2 GIT binary patch literal 1593 zcmbVMOK;Oa5dJo?V-rl9mNyhAP#{T5%^Qka4papqrGO|Z5?t6OOJeGJgT3K#;C~=4 z+&J|B5)X+3f-AoXA!cI}42?K&@b2vH%s1aRv+Hj^K79r-huI=>$XhTRm?$um9`eWB z4S3jcZ>&5N4aHEH^+R7>V#t>(%bQ?hlZB##&2SiIWYluwPUMHJm4G*eyC$36K*Vm? zb|3JDlF>7_C1vx8aGOfHSB0vDP4V=Wc*J1(+GJq0B7qJ$7)FV~Zt!s7QI`h{+spO8 z*?5(^+IiH$R%|2ZRtnf7R~scsI~?r9E{2_Jd{xZLu))F~X?9D<6)ET(?ng$)o#bjs89Qr+4&>z_Op%{ z;C?UTpImS+D?Wvo=RvUKE8*EVOZCZUFZV9(9IG%mwJ;RXe8A&a#1<|v9ND0DkO&JG z8TS9%l^T^O#zDI7Il9-3MtX8&S!B~&rExc{T$&lpX7wZ3TQYLkL!&;XP3)!7N$oN0 zqZQLnhsHmH-@#g^!)&lUFnB)>ke3d=NV8^EsP26aYjElvi3gI@nwHkUFivqMqeY1p z2Wd{;pC|;zXy}Pi9gI zoorl((KG1jJle1Oja27I$(uFi#!6mWE4n{7HW)pTGLoX_F@$5iDw;Hw>B~{33aT{f wzMP?1H@~PcKapO%p;flC*=tekqfYj`rf{5Qn-HeyJA-o?iLCROfrs5c0ZmpzApigX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/GoodweApiReq.class new file mode 100644 index 0000000000000000000000000000000000000000..c33caf2742ed4e830afb6aed40c2e751729659fe GIT binary patch literal 1597 zcmbVMTW=dh6#mBE^=@4^anc*5p`;}R+ex!r%B69F1W^l?99lJ1kl>{gd$70J?6|w* zLLc}ah!@^?$^%GTq&^^c%`gtl`vT=gbMFLvobXVs;UsDT8#);T=_m=~!G0wB zDmc{rair299tK~?p3%wUV4!vXOBM8u4nCTwAB@7g>Y;!e#(njbfap{ib*_ea)CK&W zjBh?1%ShmCqx(FZcJni9yja6&oT2eRnNAjk=sJt!bgqW;ctPO&p*&FAI_^pHX=sMj zQX^xN+OVBwA@HuT@Y@2;w(cu|`ED4iPsWG)D!C{3Bc3dFbx%fnG70TIKXlA6WU$Td z|1SY^`stK_Ls)z4z>YFQ-M=Ffd8mv^n4_X>J*Wt6!5pgzOR3FJB?6~*jqDxl$Wac` zAIg-}EiL!X-OkQU21`^rj@Vb<=#09+na0e5RCo0_>8V?xEy6;vdFvJfv3{tvNlhY0 z8R&Grf}o1m@rH*tZ6DqeSos%j7(dbnD#)^Ct+|yAiNH6-Ugw5c(2r%@=SZz|wLTb+ z+6DS~=L#p!INp0aQZvjyFW6@@-Y&AwLu|_^+6|3r`*@opQzYM*%u zit%k?F^#GSCOhw@qHpWq$wvgqv3biRa_X=R-^xLRbD*2SOU%}#wTvp|;G z!m=C$mg(mTZtC1zrp!Wq&9%&{_0`t*aGj&oKj420w|unvJN%us)-O0U*-}|pwRdp? HZCrQ?kSs*O literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasData.class new file mode 100644 index 0000000000000000000000000000000000000000..2a32d6d1d11e05ab58e56e319eeea15d56a5ba92 GIT binary patch literal 3193 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 b{fd4KZ3?z$aJ@h;;wb~^cl0v7O6I=-k(iw8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasRd.class new file mode 100644 index 0000000000000000000000000000000000000000..54894094643e6a7d70d6531893e75d6b01be5d20 GIT binary patch literal 16647 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 Q(&(W~#WL8YUQgEl0rM37O#lD@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInventersdatas/GetInventersDatasReq.class new file mode 100644 index 0000000000000000000000000000000000000000..071aa3c769d49a85c01587443e373d7531d6f367 GIT binary patch literal 2158 zcmcIm-%}e^6#j0qn+<6SDJ{XYSgfRNegG?qKS}^?(?X-6b{Ym}^uFy0q z{|g@-{{Z{KL!D8a>4T#$I^*A@)^m3kSRgv%gEMe{oSgIB?>pz*oBaOQi=P0jpqW7e zNdsCII#LWvuGcmFzGpezZJT$5x$AZYw(w1-XMVxk()FI2UDxe=Da?*^&Gle;yKg-b zPZ(0mmSf3PhGeO{HG(uo3}mu6hb+V9e*^9c*>LuRBZcR8xa7XM9<$t4mf*;w@AwS4 z=3~Cc&4ILRvuXLVmZ8H(vlv5;A>HQAy(a^1Gfb31N1Hoc^W*KuqAhFXPnGj{78h}e zB+$Vv1vy?Sp9Rfh(!eWO6clbQI5P%C(L$Z$XOPF0ET-@(o!;YqukLn4kd?+bWqmq} z*Kmzta+mLjy6d#L{KS&vBBYF2|Hc z0jm_Eg;d6xmLnbvcDIGM$+vBaA8)#CZf|kVQv1lL$(}`YwwnJ(@rcchGfDmj+9^LO z%f+*q*<#3_B>%L3C?K~XWY6t9bgBJ@p5H>?iBrNd;LEOMsh4!pKl zvs9G|!*0R6qDcLC$91JIJ>CyR`(r7*pTP&XZQzb-xjJ>pu^P+Sb9aOpo*s7LT6n=3 zzK-9M$T0-H&z%lE2gRoA?hN|1SazZ&i&;(tZcGypjw8If&3#|^2JSOlKO=gW76TtLT>W=fs$VD^*XYei&|PLU()&j9 z>$FQ?1_rI^DW$PU7L#U1vtIcT?7P6_I*saMP~Z(3RWLc=CQ39j^$rox$>8r{Jf{y6 zI1U~i5*%_U6G#PBBmm*A9uWmaFVr+k-XT3@nIYUcvgnL9 zxk&Il8Ruu%J3URVFL45pad!!(|D6?Ny(7Xm6#iWUfqsqX+9 zRcgK>2#x0HTy0rf2@)`stMy2JI#+!LW9|T#KVO*|F1r$jMzWIx`!?PoU>%q7F0B&C zkiho>*-GpT5-%|cjl?oWTEW;$%E<9P!Bk(~!cxR;k!IC~8Aa>`uBuWF6CHL#=7>lw a@LHx{5}+HwuuA`Tv8Iq{wT=cpLg8yUpjU*^6ecbTJi2XLF5EYS=nw^W!qlbm#xXl z_4a~nuQL|U1x8l);Vk&A?YdJ^0ER3a#jt=@m61ctu~sW`>-GXAr7U$uEF8xP0ka~# z8(*|!U0`&w$6cIVY3dWDeA2=xoMx&7NDu-iCZ~FIlhBH)mn^)j+-4l*GgQW}SU7`M z1q>Ri@Pys9?uC@XSqrb>93j&*LJMMihrh)P}< zNiPZoF86{@03FV|7xPA>ic%8Dt+%|$Z8%$Q=#s!|p65q0a_L#1uv+mOEL6yXeATGi z_he-^^gUbdDcLuv!)isOv@wuKRuzMuBX`T!cq6_%MrAlnvZcoqAhfV*h5k-hF@9vEw*#^Df4B zU*MbGwoMdcr_0i-@}-zq_5Iyev($6l62Lu@1BRRJrqf6L(;ofqaH>RawuN0G#Dh zlHya4;xFIU&Wf)b1SYvw^At~}L*y|NqJRNP_+)duz;m0k;H*zShWMdlY;#n{pyM|= zTCoD&!bR@**5EY9gT_C?_@0L;`s*4W>1)gvuaEKIVdKHR#&6>iL#W6_&MN85bp9t8 z{c)d+H4@wkmZC@C9op%F8^z6Kyo>aUE(ias%b4lJrP}l-U8vVT!Tu*_gBWW0>F=Ox z5A(mm{1$rpVg47G<(cV6IM&&6F?wr;Ls2XIh9f!cDULmWRmf?Nkn3uU6?LkN6*D13W_?dXNqSy9WMv=Sf3?Dn)<>fWT=p;kh)?) zA?@w#Jz>po_$u{Y;-NkC cOSDU287rJkdb!E}HLP=&T;|_BF08TazssI20 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getInverterpacbyday/GetInverterPacByDayReq.class new file mode 100644 index 0000000000000000000000000000000000000000..3ca1c5b664d5bc19d0baf75c03679396c25cab34 GIT binary patch literal 2353 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnReq.class new file mode 100644 index 0000000000000000000000000000000000000000..a533d580ece322b03e34f127ef9799d42094bb64 GIT binary patch literal 2355 zcmcgt+j84f6kW%bEX7qW4NY2;P*R$fTq_C%T01F_q)A+ykf}Ri23}C?)7Xt8xsuXO z{)FKJ$V(nz2Et4q75v$j@Nj+6df0Nys%$(@5x63TJuSm&_su4e8a-z7s`0Z!Z6MY7zDWyB{?@S*5`2R9R!SF#%d+@mP4nqv*t7tR`iW~#kD(3Q)H2S8SFJU2YM1AJsx?7UJO+rTlV(+ zid?QMmao3DiLa^Fiv=tiSW*qb{Nu-6&bje+q#fssduBNv zFoCZ-yCpGj_n-c`-8a|dtY|$>FPX<8KzK~^U=kKb87lW7~OFX(?;DS#;qhpgupDdy5MGj zn`_-e_Wsw9iqm$;{wO5ho(al7xf;w?o1Xd>x^_7IE6i`8rw^xpfw?v_b%cRvOX1x5 z3?F%I_BWi#Y0q%>0M=|yJHmyQ#YkSK$w)qv)0Iu;83qr~o6~cdmXUVITK8vFPs*^bpFp&YGq;j!Sr#x-@sU@g5}&D{P?~lyt0N1n*PI-~+}V<3FVN7y1mC z&oOKu#jh!z<3cR`yBIho&7gT5@M+g!EAzskvc%M>=A?PiGmW_5& zMKk7`YtM?xsRpu7T~b}>Dc%BJ9-7W^?Q5f-kEp(lkGPtQ@-ctQSmiEDsfbTm;M_ki Cui%mZ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinventersmoredetailinfobysn/GetInventersMoreDetailInfoBySnResp.class new file mode 100644 index 0000000000000000000000000000000000000000..8c0db7c2486d08f1ffd4d9b823632beee3803006 GIT binary patch literal 9535 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 VCOuu|_bRS)m8J9*Zr~OQ{{qNsLU8~9 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterdatabycolumn/GetInverterDataByColumnResp.class new file mode 100644 index 0000000000000000000000000000000000000000..498baa7a628ed6909c4435005f8fd2a1ad0b32ae GIT binary patch literal 2396 zcmcgtU31$+6g_Lpmg2gNn>Hzd(4;giv7J;D%17%YK-{D?-w&m7syVPR|jBWz(k>lQz#0^Ane%DX6X8z zHBYu3dn0J~JSVdKuKkT{sUY04J3-L?&avAnuse=&{l`wIoUkpGT-#~|UT?#MTF z#&0veuvL%a51eRIz)X^^lUy@q*Hf-%H{D3p3S@Jph(VMDtd{f_zwJp+V0bD??2}O| zf2os)ia3Y!0tGTj-a*)*sq#_a3`UB$pn>y_Mvb&lqeZ-qH~6lujJoxp?Zl=uhG^xR zMO?(Vz=aLD?$iUnCDj+MVv-*z>8nU!GG(<-KYeXXb46(rYXSo+ZpW9Z7ZN-?#A~+s za{aE&lYo&38*IA1bFa6t=7bOBnnyN6&7dW{RT;W^odylnbt$g(l9}-&keWJDsaN7i zA?iCV=Z={j0wGq^H*UFMbM9 zm!7xcDyL?lE^ze(FQ(E0&51Hg*6@8Nta~zwoXEtIz?CEVkCSEMuE52UQ(4u-16*S3 z%&^G`j_muKC%DQmZt|HQ4vudzVsjRpbCus9evVTvbJRbBsgoS_W+vbYu5uQ-9TVu_ z=3ihw<&PQcZ!R3Oc_Pkvn;=stBO8M>xl1$6SE|3l)D*IPC<%p;BqODu=_Q&f%ueX( z$R*-d8OaGQN~z#!2KiASfM)!ZbB=SpTKNe%W4rns){n?#x2u1^TAr@#;B>s?!`XY& z9Bvsif8o@q@h8qcL2+i(*uij|VQdrTDAOAW{2tRfW^j!ZhB?|aFhf_y@eWs6R4|I` zd@}GZv4)X1t$%RFg!L~*Ol0_H?FpKp1Veu|Qz18rsa?xy1)55~_5G&p)=gK?j;W*; z*~Ak1qppTL~i!E0a7jU6w$l59<7XEBENaD%`( zzTka6Wl*5N4`SI`>}6zLuq+0}3PGU|;sqVqUuT3qmmlJzl${3C$FQJ@JtIC#d7S9v eG!*uT+>Ensp~l%F!Yuz6a9bnsX%TnO!07)D0zL}> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerR.class new file mode 100644 index 0000000000000000000000000000000000000000..e0443a5bcf7aaed62f820cffe9d8e7ad68a211a7 GIT binary patch literal 2352 zcmb_dT~ixX7=BK&n=E1ZC>CfGTUx0S0$r`BG=Zw+GnG(;4$kO}OL8PBVK?q>+UY-W z`~h;qh0Z9>^unn(b;jS|&+yV(pOf8$q+}c~9KxP+-t&Gu@AJOz?(cs;`31ldK20Hp zcoLck9SMQq2lhkTs@cwgb#MQHECm9I#i~;cZVSYxGkbk7(3eEYL_bV{ZPz=n{JK|l z4)$wySz1SKxlxn8{8%*kF5jOEkBZ0IdH858C0Ez(hHW5AnkWP=PG>r_+m2&+)x>McaY8DuzA}H^#ARF&NYZ?ziM`u8 zLa&IvYT_E+V5ExeSC-u}^CYQ-5tib*i8t|JcH$?6CujGN`!aZQHYtBpZcD3>rm+>9UIIqO645-3w8H*(h#Mk)A+GB{dawO@C9^ zI`uWL!nR9=H{oGmH?T{GMY|pmqi^pNimMD(U;}v4Z`9OywA|=Zp_LK1VLA-D>o&ZS zT&pUs$IdnT4b|ez_>Suae&E^lFm-<@ft3_iv6jTTYKsklsk3R|1i6RO3S)$wvKEe- zz&D*e5-EmGH*BZO!JOK3-NQyb-_bY`_Z^Zh!~2ixvWNN?9r~?l>JUXPmhD*sRsl~NM-1TO!(DytRdkE zNPf@D7|x81p2mC;^)McI+1Tu9Jck<$p(5v+i4o^a_9rBJ;~t}q$|S_Cc8UnWl$n{} zVVH-v@lG$71OL^f;63w^+yjv~JZ3*04ei~cA1c{KjQ zU=qf2j3p7{&k)aXDctt8$+$^oH1(B=$hgIjsvx>zK_TsImJn%JF};mcCq9KVs@Qy! zYkpuTQcds&UFckM!}&#RsY&9*aK1tcjp6Jul5?k+{8Gs$a+0pe$`oOWoV(CoP@s_>ctNGJb4&?Fp|=!T zI$F1gYK-?`d(ak?EBYT)$*4r1ux5C9XgbGru#NsB+QslO?r=5eWtsm4e8N+TyG?9i H8|i-l+1A@) literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getinverterpower/GetInverterPowerReq.class new file mode 100644 index 0000000000000000000000000000000000000000..89de9e57831c0dae5d260c10b70cc978bb475c46 GIT binary patch literal 3245 zcmb_e-*XdH6#j0ro86>a8VW5$5Q_%;BP~(x z1My_LxnSK8NFQt3P5-z+YIJNl105L+Sp&T=1Q!0A<5kOV+BYrNx7@aK%W_N8mOm3I z=A|Myu*b6n24=6DH_cMZv{y@uzKpyg&)#96UmmQ~P2ZA=odyQ5OF*qT8@4a7D`q!i z`_`)E28M$Mh9pk$Z?~;14fh(z;~4?HX4+?NY?v*9!O@uUg_Y}8&997oAi?_$Jc|Pa zGlOb)(BSA;4Ba^@i(wqp@VtQ+r1RWn5}`lRY01Mp>GhC-7o}H?UYDYUmQA-Q*O5~38%;*FH2eRzScUX@A-!8l9z{B~%)-rCe#5EHo36QTv0WL7MiWUi z>7^8P!BCvEZuWE_(Xyrj!r9u*QDZR%$8T7!Kvrg2i2AoTP=Tlagb)2=0b|uz~Q8{CpErzl>3GmA?eCG{_ zsUjCuv(;K``c_59Re>W39E^JQl$aQniEwP zKLoHhILd7~zRA%D0XT{>S3}r_F&W4NHpeKmSEhs-8h$M%(pqgIJez6 zpJ>b{IKg=LcH`kh;|h*3Ihk{rvm`n_Ui=AKGGjv_B4SMPC`%&vi%p^h7dbADC%f!> zT9>lAU6=iV%eQbMDazc_x|EI5bvY2YJellr_tUzRJ=b+P6u9IsW*DXTgmW)BxmO(j z7OHZ$_#5=Ep{DK@e}z6bF@7I=f+dB0=O;LnmC4`Hn^zuU=N%Z6dF4Ky>mUkcm5@R? zomV9${SX6p(3e;9=@@9FtPwO)*7KSK=@CfF>oHKVoFS-K&gL@`l#M`{e6|Bp?lS6B ztl7hx(hjrf*8Lt%q000J@eNJ~om0T)I73~E*WfdprKDgQYy4JuDd%9}9Hlf`+?%1K z!DRv7rljKwUh;P+W$-2TVU|*s7GPKQYxQOQtG+l9cYvHarmm#7s`s<$Scu~E(;uPjg-}3i?t1m^t{^HDwfm1R=T^ziqmR; za*@u3u|&bAu#WS%z(`e=VV+VCX}yMbnNW&BM?vaW?s2xBDqij`0uyhQziQKM@z}i;uCO%<f|y1H>-zoBme*a literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersData.class new file mode 100644 index 0000000000000000000000000000000000000000..214b63659306779a7950a6922a9608e82992f998 GIT binary patch literal 3278 zcmcImU2_vv7=BK&o86{cC@n2S5sL=xClUO@q(x}?s-{pV6a`ea$(k-rck5;Y@*}u+ z`~h;qh0Z9>aN+0;&iI=|e9oTTWLq+h7cgyh-}9d5{eI7T_OE{){{~w0c@LLfUnvDya{eFpLt`e6xN@`FaHwH3HtW36e| zozkXXZ#SJ*$y+adZP!9SxL0cUe*Lafs)v55;e=b%9k#aoyH3z5opZwFXuTY*Purm_ zpw;crp(oX@D^=fXRHW%$7ItG$z;wOP3GUcUf#DQxk=%w8M9?7%!`Mr8O}E7;Vs-7% zZI-I!RPt0eYGEJtQ(evW&V19B>PE&>`cw)k6W1m96$`K8fPld$=qX(s8lOmkBPV4# z4_bI#YRx%PWlPE)vhW7p6zHd{bW*uKvQ0j5Ug8g1cnfbUThiNZQp`@OUS{A%D`~>v=ZZM7%64CJ!gasCYzOwH!+vAf z{S@i;-e_7ZskM}pnpMjsnmYki@(dn;}zefjd@(i!@)$kQG; zt#*?qRgcZ|6}uYsqEcXnzB)4kdy{^NhHd90Op=q~TPRqb8fy2)wqE~zd)&vgzHkKD|l zE8O2xnD7p zc$pZPU4b&?bWSm*SfGO0UMdIvuS!{{j!Lzd!wJ?>hFVQ~xkswZrn0O`^t_j<<{uNS z%9rEk$I-5lVOmrvIY}nJ50wAnINyB~x<57f19a`-)E_Xvhn{^n^*hX^>B&bJiIyY^ z7pD0rYcqeMzo0$Ao(HgI3fd#QmLSH;Iw51_TtSzZ+!G8vz(7GS2@!~7e&446+bY9PaZQ#{3fMfRo1q#;f*v6}phQwe3S z2~zA8nMoN)`iP{9r*{I;>AnmkZn1@^Irv#c7W+XQp^6+8T^+2H&-ZLuzqkXg{9tpmMNeL@+GJ2&$ryp201}M0ofX4! zDOeY|lS?q&yhMl9z?!8+IoO6|+GL9OD?Y|Fuycl_N8eB<@Rg{5S8$bYlbTlfyNNHk M%9HvEHv6pbFNIpg$p8QV literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersR.class new file mode 100644 index 0000000000000000000000000000000000000000..e97e438ebaf2fbf2266be3abff6149e56ca19e8b GIT binary patch literal 2816 zcmb_eZF3V<6n<{9Z%wzf6k3QP77fxiEvxtjNn4ddq0*K}OHn|_ZL&6@>2BQJfcyx) zJN^Lq!UvsEoZ*9`UvS3XB;s>-H|-{796mVH-j{QqbM86MIrnV-{QJqT0Os*U4jE*1 zC?-^B0wZ_qySCM|-EHgY)*YuB3TSf;w-GJ~WGAOK2Vh`8N6y3`Oo27e-?oC5-*C6L zns&{xcD-7==>(Qrx4yEgq37SXwmq+Q&#`KuXKg!Si?+j{<=u1qz`Epwm1tjy_SXcI zu(9h1jIQkau^vkEWqI=f6T=u0$he-sp%iA>4V`Vrk3gd)4&ktXde?5Ydu(0s+FMPh zoTIIA6Gw1Vz^K~p#jo3TQ($Z|Wik%GJatooUo!DBj?pF~SmWJelT#^Z=XS~EaTBjf zvzjAq22%NiiP!KtZ=&*M?9<^c{ghWHO}v3q0y?o95f$CggbaDpl!<8+X|`?$^+m77 zP?@3SQRa2l#A#RpM|SNUXVG)3c6g%^666MLNpSodlb z+qZX}kTuAhQc31?JWWX_rBcTrAjw;o*$yLw2#F$!$ zb&b%AsSwDmdu_k!EHz}7#(Ll3Y5Dp{)_KnhgV48IF>ArFhEH<1hIJhqvc#?n6!sr# z!@cY6I97Z`Ty;xv4-oh^O>P2=jb66h8aqZ|#q)OBt#Yd3lC-5HU5Xp`TTUPNtrWiV zhEt-%#G>77t~WxbY~Y5#sa^smC1LYoX2SL481XnSrUcAo*LD2GrX2)MpyQ^%$$t^h zFD@Oo1&;qWlnIPUzzKGZ4Bv5GaSui{Wjj=PRK69v0M2k=s)l>%XxqSJSa|o4^??o{2j)3P_vJUzrk3YnSPA1Xv;-@ZH7Zh znf(KUdF3e%K7=`&S03Y)4q~FD5;9TJ@~XsWPcixsLwPl?r9g#}PEes_wZKfoM+bFksy8!WI8Gbo^e4=Bs>TUNz~Tq(GOC49t{id9O^ zbETolH?hc-4xeA*3tSnv$UBQLb>lA_&|y5oxQ-0}4Dk#{vqgG#a`-Ql3-hqeL7VDc6|> zW2E>H`s`y&ektV>B}E?OmE^>b$%&5&B{e!?ULqwUuSQ45`cu6SUzm89Ws_bak+Mlt zaG9$Na=3zJdY$F_JA;q8QW(V%N+s2j%zMzDQ=pJcAxI#Ecux5KJ|hKVP&{n)y#^O-*qdEn&s!6?ff0H9Jt=YeARU;53GD8aP!OI@O<4~ zx9$m~XKlw0<^@vY6Pvxz(W@b2pbv(?+J7UiT0y;LI)PtzA6TBBU$%m^aK0AKLw6~= z;tLFv?wa?_d?T=H`I7AiMd|o}frA(jP%36%wJ;>8=1ZYJ>ByIiCk>3^lt3RDWmr+LLwi`0;hr`yjtNpo zyws=_KwBjlz?6Y$%rLEO)8AfjD^!Y=TgkFB@&;bV8v-M{=8m=CI%PAsZU+Q8ejv*t zupA4}rtHiyF>gkf)L|o#T~-w6-LR{U88kflAB{G(NM{oy@rHSBQKD!MmTbqm+}Pc+ zysPF`jr+4Dw`|rnP0yC|*r){CHX~jy{og&vNXD8~_@|K5eq4;feZoy_3JmWJ{9(Nr z{J^ReY`c{;(=&H1)}D!+?qukyl4RBBH0r^o*Y+8Z>wPk)R!0pdd%9IJ!h|c8?d(xz zue!mu<*|fP;nC=@WkOp#=?@p|mWuZvoOZ|!z)`$wrrb`{rAfmnJ!P} z1=kJyz%%Pn9sGl7e44=x+|+PO9+J=4v~6W<=f1mRor*z&G!vgej(2Fl)69JFtp6z7Uw%FTpsaoD zWnJaFsq&oQ|JL>#E0VzKD9f81` zob})=|9QiQW8UI?_i>G%Fh1YnEYG*#Tb=v~;`U>zT;vK+M5q_*&N069!Yrf^Vvz#-$|0~Lc%`6sV8y}+*56&} z{mx|RTGY|xJT7#jJoIlVWf!z42Sa{-S|dtvj_+PZ`_4+~zF9k;yKzkoybOPl$;C literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantspowers/GetPlantsPowersSiteData.class new file mode 100644 index 0000000000000000000000000000000000000000..8cc43ebebc702f7891f31cc20e3eab59d406fc5e GIT binary patch literal 3179 zcmcImU2_vv7=BK&UrDz#1X_qzz*4lIMDYugwjzZ>HO1OMQ9xyztj*Fi8?zgbAHluj z50D!!bVhN83rBBo#@{63b9Oh)HVuv!Fl~0<^PcDZe$RXMuYVr>24EgH(?}qxLouO3 z6Uf}MZd>`f)!58`vT@6<_yXFT({TI+f#k&GdI|W128+EH{ z=eONzyKZ~=MlJufRq@@{-TbEOR`1yPs_*7EZNEv~zSnf`*ex%A!S+{!^=hy#JHCC+ z@-3S3oT@;!)b*z9OCv>Tf1imVY22t1+oo@lx!*(<2Lu$!WE`Pr+jr{ulH>WsG%>>_ zMsSFN6{~Uno3>RK7@mmP2qP{|UX$RQiI?y)!>7|_>CM53$rv{BN2c!;6Gx<4&6YYn zDSXVtt5SG?!ZIT1rQ{zsF^&@gdc!rcKOX zR^ZUKwPi25jf&-8b$o&vo-cDNa4{ZKLKX+2wVD^`8oYB_QpF%`e&FyO1t*ON{k(w*v_^1P6! zH7{ziUHur9ZgQRdykh$`x4LSztZm!p*!T>F%b$VA;1S zTPs#GY8G{MZF%K9Jz3^iZP{MC&grH^7RS2^)qs``xnTvUx9qlC6?@5%ojCf8v2{{T zE0*f4>-wJGvYKJdyde$cG%n+cj&*r2Kg?*%dC7K`1P2E&KQibA{C2Py)F+&(ZJ^dr=F3A3D$64 z%pB`vv_sDe4m5MQ(Xd;Kb<6W?Psa^`6MJ&eFGL+*3LN=wD9ak=gTvS0U=hp9E6kgOCVDMrdWFqC!eR99(Du7{FH%zATjorgn*IfP z|KLYLL=?PCjLfdUY09Y_Nyu>Vet(sN|5v3f)Q-xbKxF|%)>4LAihG%nDwDA+hb7wU zWmxk$qQmlO{8*5+j{MHjNSKm&GI^QP2#tx;e5WXMZ+hwnsLF%sKVW`@uzYlXZr#!@H2XVBZ5^}Vl7NO2Gvz zVUd)I6{60O(opB=IZsMQi`}_I${>#49WZs{Z|u`yJi&;L1pf{31cyU16(>81U0`Ar z`Oy_7l&v91u~%d!Wgzh*5-*;*6NpO3WFS$g&IJ9yZzHl~iB3|5MnzXL#W`g@D8y){ zSYsKC%=CTevk&pwP02r6P~=8ViFOQGoN#Nbpaxs4OCV(A)L?70f2tQkgOP_xtl=V- z>5ht3d_*dNG(P5^O!aXdz7i>g^bMooqh7}>~;{ezH{uB3hcI{y2Msdq@;42EvaN=-*VJS99)fq zH+4`C0*2>CBv5L^q;@yX0!f@IVh|+(t1113Z+p@c7@kTJ``FjYU+UzcBF^Bf zfJp)xL11XAd=xc^fuR>@UC3R8v(&jjb)1lgP8V@9 zX|X~aOBW~Eh|P^<*-fjRTlsuxd4Y&aY>d!}dLA1nmnK^(NRF|<+1+v-JluuVpcgis zMOPoE^Uv${E1D^L{YDU|NQJVSSQ!oGF;~DmJ~HvKZnsa^RQsY_e=FE&s7W&02q(rx11NdAjFn z7U}{M&og35S7c6<1&T|)?}T+vMv)VlSQNN?MEP-oOxzZ@@c*f-WTGAyc|T@&nF)@( z(>YIYm0{fEGd~I(UuVSTEI8*Xzd`&Qr(EKwe+E-0IqJYuQFL@v8s{R7tWbY%x8<0T(X-Y(WZeJx-yQpxXPk}QM}D31Md)P z7i|a0^Qq{SP>*FXaFL literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasR.class new file mode 100644 index 0000000000000000000000000000000000000000..6b494ea4f4e4236e6210b8ccf3f1dd016ddba45f GIT binary patch literal 2846 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 Z;5x4Ht&{0f{(pg6oMkvN*<}`Te*rMYjj8|u literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getplantsstaticdatas/GetPlantsStaticDatasReqByTime.class new file mode 100644 index 0000000000000000000000000000000000000000..97a5f4bcbe99d247b01f4de8b15385c6f947c823 GIT binary patch literal 3608 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 WcsJ;2g}={ngHIVsH}NHIBmXbaH@htW literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpacbyday/GetPowerStationPacByDayR.class new file mode 100644 index 0000000000000000000000000000000000000000..daed5983df690e3da17e2af1fe08cf2174404d04 GIT binary patch literal 2380 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 J*upmQ{{R(h<$3@B literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationpower/GetPowerStationPowerReq.class new file mode 100644 index 0000000000000000000000000000000000000000..cd2315076bbaf5ca80395dd6952aa1dfa7f52261 GIT binary patch literal 2842 zcmcImQF9Yj6#j0yn@z)(hDr;OO0gDco0gy=NJ9|_P=al#6hQ%%ZL&5?)7_A4V0h(M zIKKEMFFfds;0zCrzTk|%#vdT!cXl^v+O7^hIPLB|=iGD7J?FdMp7!^@p8X797GI{3 zK#u{nRl!CudK4~H6G+wJ+E@#&R2XdKNpB+ z>dqDWu0ryp<2wE+g`V+=YrROJ*Ff6D4wwoz{#)Wz+pl}~?MBnLe8+PGIX`FnOJZCO zje#5-oNy`%1M_#RdseIe zA+c)ygSwrjVXuiSUROw!E%*H0mQ_<29Pc{f^2!~%>=!0(i1V#i7^~x3AB}1`tI?GuFO&KX&l11fe90nQb%T^yYOh@ZA)EEIc3Vk zv}BZ1&aqJm&YL(A6jimF)uLCi2YBW0ns^UK751!KYj)9d%a(uL@wx31YS(X)0^MCk zwQR4hREjB?@X0v}{qv4%FSgcK?8a4VrAEuZyjQkr*Q|ykdSul6s>2g+&HsPoC=lgl zi1McEiyE7_Mr0Rkzv@+%tcJC2`{W#9WQf4X8>JN8s5V{_ciEGRBy+sYtcxhY6Ft9b zH|Q$;jR`qZfh7=o1Ea7}Asw1SrH{NWuPs>h2pxUtN@?Ldueo72TQxGZCy3X_Lid#K zg-tNcve#;q?F)_|Jvqr=QsU^RS(;4_9t;Ajb&Ul@QILvEskw)&2jH} zYj*TOg?zaX&H;t5yO|O>hDk44ZiQ20Y~J(MTJ^$q`gB<~1q!e+?l-&q+aF$+DN0ea zYPDs@w+ktJs&MQda2R(gvuf&qfGBG)1w@b!e^yN>m?hV>8^xN{Y}!o&Hx&+U!y~Ru z1D`AG|94m3W{3%gLW-jo(D>$rq?C|B6|9_3!ODrmwGU(zl6=2UEzebP)hB;~`XO*T z#3Bu8_b~?6P$Ux<>bAw z!5o`0!MnExkHiMgpupy&=NYa7baFEH1V%h!L!n26nBXW^qHvONx}uVyG8><=?^RRE z?RHZ32PseC!);aWdxFfXrWB%dQVs+uPsgX+{i-R2bDfk!K}!Dp39D2Yt_CrAn4A0# zy7oBtD^lM;?|Gd21*wIp$*0&8s1){1@%dKvsEkkEEy;t3AiAM=+=)|1wCEl4Viy2tgds94{-)(+0G!=QRLT< zz$u*L&soNvqkNu{28$o#1xh+ru@7^UlDNqHqu61j{=`lLDbsv`Ap?i_n^G^ZHxzq2 zK%F5_n*75MUFQiNDx}i|p{8*i2*&hN91iTc8BI2_TC|fAxVbeP5987Bq^PtWe1uZK z3Z3gEN(okVgjRv^IQC$kk`_RA3EE5Kpb;{q2ojWfNv91xA%;QdZHKmxw%J5C_Px-V zJ*Syp2HcP|$tNex^BH-DcYv+KsCx_!b-Gw&d;*uT#5KiiAM?46�v--M}q;f$ZNh C+#q29 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/getpowerstationwarininginfobymulticondition/GetPowerStationWariningInfoByMultiConditionData.class new file mode 100644 index 0000000000000000000000000000000000000000..e0ae7b7129095e4cbc2cb67fd73fcd1b03caf6e4 GIT binary patch literal 3095 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 F{{R-u(W3wW literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/gettoken/GetTokenReq.class new file mode 100644 index 0000000000000000000000000000000000000000..f708aa680e50e4907391fc49e967229028e746e4 GIT binary patch literal 2314 zcmbtWZBrXn6n<{9o86=fq*$P_P^nTS1R85wg#@aF@}_|@g~1v9;*zW+CG4izO>6&& z;}4K8e9#%inSOBUmpbEb@MrkZTA#bSNtTjvbR6KmoO|v$&w0){clqtFr#}N&z*Y(| z#5E`eR3rrEoaTPsZ8U54{$AazSouSz(yCi--md1qG|QgTe3IXHoXTS>U-6v$s^zWQ z73-_})&`wa|8Z}G;5qd zLm(L(`Rl%I&nzEon2j)Mb?g56#xmWl(|6NyTXmM3-Zi64_}6sL32-yAZKu^NTProm zWI9r?*JNE#wCFgV>ov_r5S=@az)}i#v8-W5rh8RjqFX{W`wcwR)WS8_&S>V zP%$vNX4)0D=|stK4qA=k*@B2jPF>u2(y)4{e;(0qcS%GPnpiUH_3fHx6?KrVu}JKb zVICI5^f(Dy5LqT@-L|dfQr&c2%hga4xOyh+UeRdS6uA7)s!Uc8Ig+D;~u7tj3K}+SCR<9kQuJvCe6*ey-oK0 zTa%L0j>!SvBwxc28TT>{Vf+4Hm5lhl$l>~ zE~7lh`6C!J8RY~Q+Ztm9l`3O}L`Ic5iRTzRLSIJBB-%>KF@41&DG2hn7GUV`P{nn; zN6l-NTbCPAPq96c95#XCy|C3yW!KzZw5uO2!5vt zm2)9ooL3fn5=Ya;Dk;>{xg%&ZCm8=i%Et)dukpd~MK4E(AA@euC9M6;h literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersData.class new file mode 100644 index 0000000000000000000000000000000000000000..78f339e930317189080176db2d492e42691331b0 GIT binary patch literal 2747 zcmcImTXWk)6#mwhEZbGmG;NX^LTMp|IG2h`OItfB(Dat#^b(hJ241Sz!dBx*sU(-_ zKVkR*^ra6l17)TU47`*Xegi*)M@sotE89xq;i-&m?e5ug`ObIFuKdS8&wc^0jJri- zkTsy0(2)}uyKg_Vt&Z)rtecznokk>(TXH=&x*(99EpHT%N5MeR!~vKBH~pYxg*$=k zwKh9;)3LVwX1C*nme;nvvKx^fJhEE8-~8IKnvrik=sLk8*L&!AkrRa0ZMj_SEic)T z&1iws@Pj6i)CN#$zSpYC(4!^}VoX5mxFMk>I^D?aST#zjMe2;3IE*6#`G)OXe$cf$ z0u!?-XDY91`3tE$X<`aT1qv-ET2CU6&z4i_acs%bYbIWoeshj=8cORoOdP|T0tT&R ze1X1g8dC-*OuU7+iK%Ue?G?Z2#B8pPvj!(kyn}ZIrnc=ZXT|p#c68T`sN{u_?M0!$ z=`{Knj)FG`k;Yq(WHqWxsqVHsJL(1uc5jcxQtcHMZoPVe;WU-j!J6wiH@e%KPH@NG z>@fCt&2QM94Lfkg}CVZQ5XgGj;cs_Fo)|!e1@8VHF@}M z2+Rz!=Jn)nIhKl|&f^tzlL>s2u5_ZPoL;lNChxtOn(uFQcd98C6SyhKF2g&l@(}ee zQ~JFND<8ZX(ae%Zju;*4``?Jbj9p^h||c%xN2#aBhqCym6f7oze~mO8EPxK za(rQy2SMbv!v7J4e4jChB;hZP2FLdN+;`BmC-c7{|1I?FllfnfUt5@aibL^|lZhJ( zd{nf>-*KR%J;$NPFc(YOQYmIL?16`M)u0ApZiB1~UBS z#S0u&(?Xy5vm`~6e;N`p&NHMerY>2KNYm|!(-lo_l(b|gFNx*W^l-vXE3XNREb00fpD?D5 zGx(IV42o>hi-eXXmMN@orp4r3hxU>JjpPVHLLkITDh<{dDVTuXQ|RevyG2xEyi2&8 yWO`1zVy2@qNtw_y)(m@(Rr)}W_R(L7slJM99P{+D%HK`g=BmiqI__WtrGEkbc3^@4 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/queryinventers/QueryInventersR.class new file mode 100644 index 0000000000000000000000000000000000000000..6eaa4ef5b93eb4dbfece86e753d2ef03c60c01de GIT binary patch literal 6057 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 Icd&uXKfsQ3ssI20 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorData.class new file mode 100644 index 0000000000000000000000000000000000000000..f4824f0a14854b315877d4e88c72a02d25b9adcb GIT binary patch literal 2867 zcmcguTXWM!6#mwhEZb2o1QKwYQfNaP=Yo5I0(L@M!Y$N>5YsTzzErVQTf~uqB*XAe zI{g9Vg@<;gr87Kq+7~+0-_W1Y$5Q&OR<@Pk;SDB^cK7VLeCIoRR{HC|C%*w$!RF|De?Jyykto)C|4S-LCCF*!Aw)eh^xr{lgW}qg~RR{2@p4+NOIAbQpF(IIJoPcm+oo?uKN>xfKdFo7> zIEX_6*@op_y4$rn0#kDdXDZi9@hho3ZQ?MF2;^FJxDiL5oGT{Oqu7$UH%z=K{bp?G zG?3PBnK+8K1q@ot_yT>~B&HOOn|KHB5>wj>+N)mEju>8>WL-{}cn|Lj9Nw|E?N!fh zSmA9aq>@YC+%OP0l|&!GQSb&Kl6dQ(tWbq1)t#1Wg!A62q-Uw@1+J zun&#CAAMGtWkXN3hQOg-<)gc=-!S>Q*Yz9rWk;US<1f3WPRgWMrVE}I2BB~5s(JuNrxc9tmyQJc&PQR?~O@Z%{=O9*8POn;Sleg?_)$_KyyOji= zG4O5%`F9Iy)|6=VP2gI>J>=x*U}* z(}}DUB`>;E9G|APqASCfa&ZtuZY%tsP{?;CgGdto;b?GdFU#9>QEIXpd3oY0Q*$s?3x#1zqZ7o?`MLMhki& z(^JwO4Nd2&!q8`^jWak)oKvXd9IKwfEH0uVF> zkh1?`%s}=TrVXU{%Zg_>qNce%^JhqkCO=GKGR`riET%45kVuoqDM`HEN2(K_L>kxf zTvSVbR!}7A{hKayj^&BUvbGYDI5Saclfvx8!b2EKk8$i9DW558a-*QdJ6TCAw`PVD zc1n4TVWdgdr}&I9b)3fMoTZTGA-zCoX<|8yRnD}CoNLgYQ=pL?AxH>>cuu9kIwb{D z(0d9!9c{0OYK(Ugm*Py%N>|KuOeQH4dcvAve_JIRdaRHBazynNT;-Uhmo@(1z)i05 LoNeG1Hc|K=iXD?+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.class b/target/classes/org/springblade/modules/nh/factory/goodwe/dto/querypowerstationmonitor/QueryPowerStationMonitorR.class new file mode 100644 index 0000000000000000000000000000000000000000..49f2c423a4f058ed039d8876ac79809dddb1b1b5 GIT binary patch literal 8530 zcmd5>d5|1s6@TCETszylGrODJq?64iArr`E6NW<+dPyXN4Oy}YxeS45LT9(xo$T!N zGSia~Q9STOQ7#4XzKBOuKnRD(p#qAxQe~BvmR9+{RsQFJ_n{0;V`=a!G< zr(JjIsFR=a-29DIr+jSQJ?fMzp6wOf(wqy^ZaKe`1v^-^X<|JqGnMKUH)mrB7xqFsPrI343bNoszhP1}!2JEY`19 z1oegdjF&uT+9^v%OAH#MrC5%6d$N8sSGd(fMMr{`8MK^1sYx5Kf_IF)o@LNV_S#W& zOVb6fsvNH}=xjAW49{n-HfWgjW6qQ@CvQ2*-Cv{eX<4qwOMQG+g} z^%(uM8uhOp4#E9Z;+T4~L6@=Vgu`|#Y~XT(HqjMe!N3k)y9IUHdi5B&*`O;K z*$Lz(y@1RgH|Q$nC&3@X!Z2^bpl!_KVU5YPVeZui?O<+7`PzDvnY#?y?L+qji|`hM z_R=+idKemtO^&tt5$b4TQ`Z`F9V>N1Nrx;49E;v+(A!wVgP+hb$NYl^UC(?T=tdcK z%sph#By$ak)?vW{$DkVmGdePuKVwjV`F&6b50^Kd7k<{DBF$muGj?TW6M|bN?szZK z-8E>QZWOd|&YpEPxh3SoH3bi#5@NpORfOmX@4lXHXoFuL#}A8;A-&h9<+S4L_1QV4 zRydfodqL)|YRN0iIeQD00@8b9se}aN;)VFnPfWUVsB{(2Dc>|#%pbNVXDeBmX>37yEKJvGdJP7v(@?0 z&~c(mO^8#c$dikJ?+@Yq-Y3M;CN|l{;_iayjHc*kf}T0$O02Hmp7mnw@=#>+qrW{& ztL^bY)e2MCa=!U-!E~^9@=$@MeMYjko|M z){Hz#$>^LMPzarqoUf`>y&HOQv_h0^u3CcL10QY8KDt`!*`O!iBY@1yreO?;qLlU&vVlZ&Lu56}mrOfGKKB%ct0$w6uI zL(wLOS~basO<;1lH2LA^wOrAvNj|p%lPjgk+oDb8S~bZ>U|{lWY4RhOctq@<)2c~z zn(DY5hRKE#dl(Ks8tr3Et3K4htbMF)_OTW|ZpYF@%wt`vKGYenedL>c9D$FIMbG2B zR(+^;LHoF%*~d}%_;|FB3tRP}IuGsRqGlgA!3TbHQ~49i;l2#LLvCcv0~C*)7fNZo9W}GpJ z7pV6*b(wK95dw`_Nr1+zl$m5uN`sPSDg@eMbpW)*N}C-FN^4MunGS)rTAcuGwG6Y9 zL52o_3W2s;T>x#jy3H;Ib!$+U*&PDyv@!tgw6bP~L0JvTnAs3$kJSUv9;?^vVNkCI z^_aaO&_1gVpncW?vyVXwG^o#95CZMD`T^Q+4Ve858qlDAb07pdU@ZjbfVIe6$e=|U zw9s4>0@;=ckZmnCO$II2Ak$nN0!>*<0GhG}%_R&P)SxBiUrxQc#H zUk24DcF@c86;KO=OOMi5LG_C&eTN~5z7EP1&yYjk z0JT{Bi8j+WK`jw~MW&qqHQ3gU*8f|embP`!68bi%A=o8&TbE4zo4S*fdW8m()P_$= zyh4i<+3|lt`d!Bzs3tM~Ge94{mtdQ@S&DPj;OGdyf~fZw)hqe$FZ?ER7v>%uL3hET z;Gd%LjhC9lWiZi$_ncd@qnF0k%c3)w9i2hRNo7ZlQ*zx&I($9zH(D_km@zF$aUoKo zF)J=bs6kRGWyXEc7Aqk|i9m$Pq_nnLNhv~6(ppJhwB1TcQ7RCjR4J{UR)-X!N@=YQ zU$n`>)eO9Lwp=@cbPG7X&GNi}|M20UqV0B3m>X_E*@bYcMj=5y*09bfUM5o9RJ%2>TWn$LL{DZIl)seHYu? zPAkQJdIVIAHi*lRN}TA|BKb~&N{}bg^cbil4!gh6lzt05b?8l0>L*YFVnt&(a|scA*av?Bg%RTBh0 z{E_pG@n5mgVy&J&g}mndbO>#v^VCLac3uOdO&O;(RkQZmIBl@&wG7s5wglB?xoFF{ zg8FGbdKX$nYvY;LjMqkf1`66mwq+MJFK4Es9rc`vqnfWXR)ag#qvwL(AZGA8BL950 z0SCq&T>EhC$8`Xgg=-_OFYdfx;Pg03c<)RKYevg7>zZ%jHBk1eEhewb<^hn9Ks@kBBov7c(NwBXMPG`+^F%-{kHm*9i6>_H=ZX-CO(0^=vIS(Cq4Fv-OFcen*yTG^G zPHSt^yX&<4zz!OoyWugk*Q&fEhD9+fMTUjQ5DuV!-PuwYp1)<^u`5m6tyh);naYd| zX3)Tpj70NVHK(<@CAxhEhDA4=>`DT+eK9{~U=;fm@|$+unR9E->k1=@=yPu1)SXrs z{-6OD=aflrH8rh2ZIuyLF<@B+>;VQaR(c8<9XSvNOKR-ZR; z0T&exY}o4#ovL+IaAZ)a^ynNpHd}MfIVPk}DO16wIq_H)w1) z%MHJ=+H}skt`~8fL!O$idKP@Fo_dT~__so?gr`52VT&&t$Su+Lw$c71 zIXY`9@dsj@Yzp#}t%#>lgf2T3l()SI#haI_;st9?OJPtFSC&PHi^@=FNNS2*NYve6 z4-qN!5D*r;d}Iq{BUHyFPN5i?y6po|*j+nN;b7cBifJHpib@zK8v#4bXfD;x-c*R^ zlF$^n%d6`P_GZkR?BdnAh4akQ99OmF`0ZxErAp2|A2yBN2VTSxcCqBOTUF;mLl}MJ5huxUDUu}A3!WGFLCfBZnB@=U@YMpohOcY* zh7_4^DwKQmwBg?I)}8psAstwEE<{JB!q1bWih)tkOSW6%0b8E;y!H0xOroB|)J|x& zIbPe^bW-52B=DV6BcX~zoU@zFrAFY)==hd`|A<^1WA0C~A=FKC;`M^%+XH%VdcSv!5e5dn7sxz+`Db7#qbUvQy zyo7696Im*YU!huVV)89$=?lF-Lc|L#BoI<6e2#uuo-rt~v78>VxYv-v?{3JUFy!_0 zkfptbjJ8TV%Hc5N=kbNKiI40xWVFfRkfUM9m(xQY*lWmWd&VKnFyt%g6MuZKA!TEC zb9p!n`Ni~*PwX|M)QE1#r^1lDn@73qyTtE4mVmLziC-a`xj*?H^j{#`e}D2%&=;mA z9^gpWq)@&*#g~DVQL%c>^KPK=`*pxE3h`(W#QWgvNE2@-oXyPr@C~0WnH*hHF_z8ZDo0RhS8Ge8| zr2-yc9cz>Z@JFH=lnnfxmxEiBiuebfr~L*7S>MMP^9F`g4u`NosRWmExQ>IG{x1w_ z&>v#IhH?Js>LInEnEzkJPDy!{{bc0VWxQFRV>YBpWrbOi#N>ezB{3>eozqCpr4vi$i)73*H#?-`=NK<|}iPG@FAVjeEdtdW*_Y4RSl=?8fJHPKI788Mid*rE$r zBhv{h8=A<|&`CG59n(oG7n*Wi6WJSiowBshMB>I?TE}ErdT7$SCek_bnzizwiA;{Y z@}cQ)I;Cz#lZz?Uk9Xl=lT*)f!EaNN$-hmK2&JCJFX2iDDGl4xod{Y*)pwTmsfZ z?$pL$Z9BM!Pcg(U`YxBASGp~B(^0I^aP)id`|Hx^O@#j@tJ)Gp82$Gk#qg{f$5pJq4;miE$jQkZoZ{pi* N6)1fN-(&4C{{!yF>NfxY literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweAlarmPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..e00d64945863eea0b9cc59c48cc9ec4390618d68 GIT binary patch literal 9862 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 YiwK8zbLYUOzu>RFZGT%nHh%~H2iCahe*gdg literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterDetailListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..fe289691cdd6d18b10e6a81a1dfc520edcadffdb GIT binary patch literal 8358 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..9b89c46f5b2d87886437c975e9f46c3c45c3ed9a GIT binary patch literal 1836 zcmb_d+inv{5Ir3`nb?@bnB8y*u#g4TPO=P_aCHbo3%hb;2qMV4ukD$R-7ucEW_l9% z0{8$V#3K?9NJvOX+#e9n{0D-sSZ%fKIO8~IBkexSbWe44)u}pFHJ|_f@Dad8Tux&E z2@A;#1~J4iqk@_pHUsI`svdWR-B51iiO}}z_A+<03hvpCYBZE@U*%5yX5{-KU>KT} zzSMIJiF~0ljA4dUsJWKPFS*;0#x@I?47Ov0Vf$^q!tF>)&%VZ+bfXz*hI9FHOYU*M zW-nH63r83GC53)b3Rkjr2veqbnX0e?*?cU9P-Qx_(-!2Y8pDETWQ&?1P(HPO~x zJGvq?mtI+h`UbCwdB+6E@Yny~bTiAvVT>{4zCL{Y_4(s(FFt;GdjHFVN8g@2OJg_o zSlFAvIQB8@SkGL^*P>wvI+IjRW|}!odsT% z2f;>ym$WIcVyR8%S}nv0UxQhwSUAj(T@SH+H%+u3&EOa0src&LcRj&yI9@~@9~)d0 zDhzw5YPD>LiVS7d6Z5{W+O--|9mcp^4tPVXs^E@Y72FTI_0PK(?Df*WH5d8t|OYJEkX-t8FscjN@bT8yC=lvHKFUu zy}?a_spBXQsU=zSxsC$L*TTQjxJ5jM?4FwF87$qhGinQ4;h}HvZGxkfg(VdQj`&>~ z_V<5px*RjPVaUfkuUA}1X%R{jBleOAR-_|})Tmh+)&Qf2h8?X1+6~b0Cq6`G5`Po literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweInverterPacByDayEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..f77a176ca0d09eba4b8dfe6370043faef205bd45 GIT binary patch literal 4582 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 KT_s!x^!p3J$c}{o literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$4.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$4.class new file mode 100644 index 0000000000000000000000000000000000000000..bc7b7fff20259d8b78084acacbadf7d8ec45a0b0 GIT binary patch literal 2100 zcmb_d-%lJ>6#g!|Ft8n9T@kd@S}nB;v>iokt-D}#p|ExNA=~1c$z^ufojS~rnOT%K zANt@+)d#E5nD}6fNt+l=T8lpT;#>a?3;qqpsNbDkV7rhuQ6`zWcg{WcoO8c(zH{&W z{mZWa#_+a=7J;1SmyKZ6x83rRBTJUC;+3k76&P;CSe9n!`Rhj6^GfeoMqpMfwdNaB zk)XK!-+?$;i6@fcD9eJdUpJb%&+{q_sL4aammi{}IeRS0rbvLqO| zia+4!IK-89gVAWy74D{kj#cT0wvr1RuRGf{yw{b=#DIi%QRQ62pvh*Y9cjA%JGiKUEKKd!h^lkND7sgdL5|}y&_XDFDHkTPItazn)>B|)>w0s(m z`BicvK_qwBm~6l%A|BUw_`@y2=9?GjeK6+r)$Oq&ao?h=vm~ zq;~tP6@=4Xz~a*Lisv~;27wje81J0~o5L7HGO6w!lCOntCtl-tfwOUrN|G2FzJu7% zU3C1&zZSgCZyR?4@8Au7duv+AVS<0ukF4?L;k=cE{UAx@i|FF_0!6=}m9BwoJlo&) z4bBbSM(j4aQ&05&jJ_CVP9;Y+@bqj=eEf9kWDf>6Fxp;t2y!QWOJBVYRf)>1m1&(o=DdI{b5m@A?kX47|^Di6UWJ&-4 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$5.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$5.class new file mode 100644 index 0000000000000000000000000000000000000000..cf32778a5ccb67e55f0d6e6e8e0190f8b7180070 GIT binary patch literal 2204 zcmb_e&r=&^7=FGau#hegQwmlTu}y7&wyOx$HbBupAvHkTv}nC8n{C*->@vF>DmM>3 zc&U1@&geMf!Gkk8NOFS8dbRoCWQsZUnBkqE%eCeB0D~W5JYXo;Dd0 zN?ZG8B+#IsQH6pgfr$fv%nS)M1`C#-d5M6<13=6rk;EYds)`o03Z!o7%erRkPDPuY zzhxQ$6%JdD6^shRv%Pc8AdiZtkQV4%ba~)<6Hef*lma~{nclKxm;xh@GtG~PXJfn{q&%MTdMZalA`N5u;`CeSNQ(3f0V$-y1?<8vK`?4RAq2N!HX(RA}ermueY^$NeExdhsvcU z=98Y~gZBi|*2H1zron4O90f=*ZQoE2m8C6zGIb&ncsSaJ6;o^Z zQR1B4pKZHY_Z5?ZLv?~QX&=5ih0*xUNx2sGpz$sxYH?4N+^T1o7cH6n_C43m8CfE9 zf5I_r*XNjuVyfaTIo}WaD~>@p8BE!K<9a~mrWw-@rd*%3supB_=WX5hO&>kH!;+i{ zBM_;SyvNveG5%U`f$JFGM!8B#vakO>;(ZU$`~!C}yv}DMB>@+2@YxY@A&+tH$RDEd z7UO#ZJN5k(nJ=Q1&oPpILj%9SSYo)V@hjx|RuNxCTlz@XLv+S5eJVAuhUaFw)^PlM zB0B6noj%>U(w<*g~z2l9@f1_q^wM@9)Wve|+}? zfTy7=Xky4%c3E>4ZNn@VtGpz%npLV-g`=4jZGr2qWiM-G%PPGoG)J!pd1h-<9-*+Y zZ$lK#3R+YsXl0n(1<2$mLyKE6oa7+_%McOk*BuV&GKWoOMLVY|XExZEuWd&$rR!?8PQ=lEP&HvhK> zX$5;3hPIoiTQ!oZ>6YoZ+;p|sN+wu3t>|K4hud*4?o+T&MGtxz#CQE?2q+cIFII%+_l~VW0M8ByyI{tMlA8BvT6V&zy zJYv^PhIV745z00Z4>`wkC$Z_Wt~)~q(reVT4Eo4%UAOALytrXQGIT{^jrsdbz2w54H>w-+n%+9GP-2Nq^Vaehnk=74i&G< z_oLHUHuX@&P`jEHjyr8RlwxXDR%52h9Y;7gK<{IWDtH)g zv!uiZhrUH*@H*PQ@py7Hw$M%BZRBa}^0_dJIoc7whsJP%*3DF47vjWx5_@Qrus@-h zL<2L?v7VMMFgdu2$SOJ$_w?LAcLe#KHQYZtl6d$g`p#WPe0*YMm5V_*IGy;Lg-sn&iH4Xn`k4!Us>y?B>e;CocWE6C!Kr|ux}c4HW)P$0#7 z(T~$Og9xpsFpsmIVKad-FA$nE&*wk4$^RnpzeHzkX!@Q0u>3~dA&QrY(1cg;D$P-X Rc@5m7FcfK)zLsXw?=PliotFRr literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$7.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$7.class new file mode 100644 index 0000000000000000000000000000000000000000..b905b64f6ae2a2e543f70a86795788d34199cba4 GIT binary patch literal 2367 zcmb_eU2oe|7=BKZ)@|yxA(R3ujKVUOrpr7EYX|AdSlYGelC&&c$M|-f)5IgOE88jL zZWjn7ga#54>ktwbXks^9APw4q#1G&naNi>S0z!=U*iLIYIuO)S{PCXmJn!>J+)Ps%xC#^u5^Go|cl$ z?}?C>(9bZk+eOW+lT}4C4ck!-M=4Y@{;S=I0R}eOjfe2Cgaa}L@d(4@ZiGN4{{;<( z-U@fNJv3~Fcp|qGq@p8gBt7hj8jfC5a=PtMSP$Yc2}3d-#}f=kcC+yP5F2bI<2rSL z-YME-F5|qz5KCl(sCjiI-HA9uXGyjBlVsNRzHqKA$R=h2f`V zJcASD(6VXORjQ-0yMXqLqg#J|XuC0vlM+Ezg~H7^P{!R>o>R7Zf;$>vH8Ilzg&Gkf()i4Ov^ZnnO4?aKXRr~VUSkUT7%Co zGu)qOrDuDYiZP2h3Flea3G>tfJAEb+pq6ShSY{LdBL~~VnM^Q*GiI3(`*OO$3ype-TZ^8JSkBbc+LCJN z;@cO7#o%R_*$?yaaVq6#o;y{uyr5cYozwgz@Q~Fo7`pY=L>2QU>IKUUjvG!=)5L`6 z3oMAJ(e%^lmt`3EEC1$7%ZGSii@=%)B*IV4B;lM0s1fqtXa)B9%_a8r&=H`$MLYbE zMT%y_()d|jB(8tg`FKoZm%NxZw3=zt6!pR(V_6(TF}rDKftI00q}f;CwlizmRAq8j zbY!Nc+BUZ_L}zV;TDbrgjf(S@&hj?;^(adpnqy@PfF zpP)$h0Z$8yxIkZ|@1jxX(|bEL+Lb6NUqmn61?cbRpEw#j9ofK{)OVPDm$9$ztP5^o z2yO?-KJY2suMxL3I@GRX44+|^WCeWga!!)&07mf=E)n}dr0_CcL5SXScona?-p%_S zy-sMtM^FEaZT&Y%U!}D!wEa&1fPTX{0xglC4I0Yy3=<4T#g#Br=_vv(e5dPAGX1#5 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$8.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweScheduler$8.class new file mode 100644 index 0000000000000000000000000000000000000000..aff2f2f65521917521eeaf130762281249cd47af GIT binary patch literal 4965 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationAlarmEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..bb06a1a95a8cf155e7bcd541e290e9e624180aaf GIT binary patch literal 1681 zcmb_cOHWfl6#k|yl$IhDl!s4HL_lSHKw?rQX$+bo2%)C?>Agcc+TLmIor?Se<3i&` z*KUj(7bZp%7sj>!gM?pUJab!XDHzeXxbryY%=eu+=ezUm`{yqJZel)(2%>SsQs_cA z!<_a@JgE7~D-|okmAtCmdPN4@EAtKE80~LyM^~%bFp6W;hqCb8ie#AB2ciL5H>$!{L@hI2 zU`R9zSyK%2e^IWeZ^PX1MOAKU{~<3*;RP)@ ziPiz0tsA|meCZNw?3Q-vBK^zCllSV?qV(?zf~TG=Ye!TH!dG_RG{#I>5#M?n-*5HX zxbp$UMwuk2EmmJS*OGUZp8}$ed2BNcU9I{u4DHTztM)V7`Q4#6_JX!qR*Mg$V=@aw zlw5r5$ePV1h~px|V92O6&#ksRq>vS9%GzBMw%|tkRF_0vl{{hUKGkpOkJ30`K2|`x zbk@vt_vJ#JEghsUd)}3O@(8Pt*LB~Kx0O}HcteW&zZA2!J`7WB?7vhPP-&z#)D@nW z{v+kc494kSiqOMozvDOohLg1Fruh`jun$^?ElPWOIcYpieoix^xohSV*n3(;Fh-+w zgN}}eV;F!lI7>VFeQ*r1@UWmcO18e44~P%+rQO&^^jnZ<2x4DqV1!^sL!hxna1)4* zVFKquqCQOGJVj4Yyv^78CNWKx8Cu84asiiUm59(0kPDclF9M#<68L2TwwIZs+2)g+ nx$qT7FMh;u=Z$*XZj@{$vX>%F6!b-#Bv)`XB)itC?Hup}W#!C@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationFisGenDateEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..1ec9b4c867909ccd554b9e74894da21b5a60178c GIT binary patch literal 7370 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 Zxtc{2S@5cknEVZY5174FNy&cz{{t6nTAu&_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweStationYearEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..2fa8d37ccc83c787cac9cb109d174c2cd1ab883d GIT binary patch literal 7281 zcmcgx349dQ8UMe{CbQWLBnD7c)S{y1bVc#XLKH&4#e`r2@xtn`J0t^}nYc5HtXidq z_D0)kJ$gvBt<+y_wUspyOX+1>ZENpCd)xcIPnG`Po84q`xDxqQad+Rm`QCT@zvF%H z)$56&k`iDp4hHRLYJI<~+yA#8XbzjHeCHjIZR^2G7a}M7%-Ez1TFe z0u>F7$p|6>;XI#f5Jim!UB@iU7MQig*k;6YTodm$h6QR;j_nzi?VfMu1?Dw$srMPf z9*FmB+G3`>MB^orMV*erP*3IqrYCUXbaYdfYM3i<*f__e?U@5+Hi|hoT*nd8tcYcM z{YEBdYKRG3;baHm?r_$!2R3Dlv>6|A(z%T3#_hrQW+UY}*?fG!ane`Oe$R7U(z%M+;OfwQS34SAg})7q8H< z5XbU`YkJAFD=?>Mrh==>atTI%J-u_hjzu^@;D{k(tJ&e$DZ{(a@&-AgB2-5LnQRQ; z(dS8%5)qsvpyl~rYj<}PjcC%)tfK|30u7T*S6){Bmg3!juPcX*tZNFK5%fY)#8jb0 zJ(LYHUJ_Bnaf*h;I!?uD0<*^>LcXSggjHgtfLRm8={Q5fnL5tG*(GWfA6xkdop4= zqy{Sm4xb2ZF{YHHRXSGVJb`MiTW4l1CoRbXkd%lU>F+f-UqhFUZmbnJX)5|dLyoNy z#f^73@?itrKmdqNziFqPY|>7f+Xd=_LBgC$G$y4D>vUXzUf+fyWtf`xS7SXkXz15* zAubZ=nJoB)Bi>C7nlc-*@zp8?RD3(OO!`hEHQ1Z8ZIkI=?I+0cVN2lju7hXqGvzWu zc?mAnuu;clc%{H;FM)@^T;en(4+ZXMn1MF48dj) z(_7u#2?jeELj(Dh>wEeHod27zqg1fw&hh3j4o}@u9#3E4x4>=9nbX+A%{yAlEJ{W!ib#C5Hl@#^iwUF0wHLmep zElrfwVv5-sUd4Jij>Yn9*2qihD6YkV8tlNUHM~a0Yw@~L{Z+->XBe?OGiwkjS?Yqk zlf`+OdLv%1;SD<8h&NG#aY-c-DmZAkYt8Lcklh0}{2TEW9dDIU8n!vD;U3RJ6oJMk+8gcJQ&PU1QUbP z%C5U)LAgf5`vfj3qwS&is5gpTxJPyjx5>Wc13Es4duiTqCg-ZU!Jg;%;6_M?nu$^m zG~Rn?_>jPvWt3DV%TgxONg5p}Nm1;^0u3J)Xr9a=rFLj`#(oDDUpwB6Meq>;ajIPW zfQ|?8v0^8Zch~2KRiO?v2qmwuKiG+fbnKDwQbQ-o0L`(SNH!1a7?Er=wiz4L+%7z# zV=o@%c28Q>&rXi6l}>I`MmAr&u}{Y*vEOeEinJ3N?;@#eQg-9hIzA(X$zDjoAtyhl z<1sm@b5aI_<=DxztQ23+@kQC@R~YGZ6i-OFz9g_@GF;O%8ASxgI|;cxd_~8T_$o7I z(6G}Pf^}Tb$Es)tinwZi`dKpk9k8~`vdy)*p-pCXy+PYqdb*sHk?A+GmV7QwhSP*r z;IeY*eJG(TJ(r;Dp$W0%7tgwY_R1P6FAq`z7tBDNgKEsELewp}iUKN99-GJ7fC3Ue zMrxApvgVZnn`WTGj5hzV(-6glv!=^q;LICE*)nmrv zgBvGj@H8m3Ctebejm-UsXATY10!j)dmz<$R)hY@7*Rv-kq`=wbyihhom^HNWl5*=0 z#UZ^?^Rb46&0;x02eD@hRJs|}4MyBz?;~K8V|pmsm)a{D5%#5K0^WVm+&mP~y()R# zmrLB3rR@m~&kHOov+cdOn*{EAdCxy(3rgAem&Kwm6J^KG`sJc-+V-||#Od=-S&11l zko`(&v8))2f?aX3C$hBsz07jkc6@3UqM#=>%PM@8lieD3S&L1_;}#h&na>)z z!f`y;%NoOe)pl#EM0Hd|MU5tSWxGhsB0%GNon>!xwsO6?PV_GxSNYeX0=EZoEE4)m z&r{8tyQs@?w&sS5wfzNl#R&^#gFFrSrM`OEwgUC?zKx@L zdB323dC=r<7(({A{QVjrZYE`fv-gZZw6{Elqg(2=QB;R`CahP(+7R|*P66}U_hSCV z597$Ta4g(hz%jA#(U0Ib@;`9|4F#M$f+YpCsoC~Pv**OZl_OYDKxZu6GJ<3QJxvdx zFBUG~;mGy|FvK-T6rIOGH>zX*vuz~$G59-8g9T6+{A0$+i(W%=B4U4xVo2S-^A75#J5nz zH#PV+z5|VK?!kBQJ^sqkQ=AiO^fbQDzfXj57uWrOpfzJVeuy7&=4ze~e~h2-uNFTg zWfNz7ZqF3CJ%yi*@%TA;`1HRZ{Vz#hi_o(;PCSR}HO$v|TlOnXN+10izvYOYc#1zy z^Yc4?LijyDyuqRdbYG~FPqR3`j~?0Hy%*QgL)Wcs8O8Mi(ov(hfme{&B}Z=-^yJRA zNxW-oSA z-hFL)Os~JcfRDy>$?M|<6gVRNXaS$_M|T(SDgW&)1$?$OrjO$DAzXOxfm`oAu(9<4 zTHt$j4Z{^k5Syj6YZ*~)=hL}Z!TWK8-$Up?4l8jTI_cF_^x$fmx0asj!Tnf=0`H(l z>Dx!qr@TB&zYZaZKj4r2n@)~g{=`uY*Pn$y<1f(3bp!s2zoD9PuEXE)4@ScZ-jV%N zMME=B#s9*;sShz8i;I0KYS`6K)_+JReej@)p9&QN3+Wx7$A1|EKGm~hRL}6O^n4QG z=P^&i4)yps%TA51gjfJ-AtBRY+x3m5S0M6>c($Nk3-sTvbeDCd^gkB&0^N zpj0T~vnohX$5(Z{&Z?_hjwc0AbxQaW{#KAY+SI%sJ6a0(@??=QB~n-7qeYQZv!ISy uz)z*02O=aS(~t-Y=^N@Us#wls{?6uXgwM0pcb$+C73K3BF;5(U*#7_p4#-LX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.class b/target/classes/org/springblade/modules/nh/factory/goodwe/scheduler/GoodweUserStationListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..e854170b62777dbb0b7a44faae05f2a82691390d GIT binary patch literal 9897 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 BA1MF; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/SajApi$2.class b/target/classes/org/springblade/modules/nh/factory/saj/SajApi$2.class new file mode 100644 index 0000000000000000000000000000000000000000..cfef615c90166e239cbe5bd7884517dbfd179192 GIT binary patch literal 994 zcmbVLOK;Oa5dJpJ(=jxZXL+@U9NO|Qgkwr1R6rnwsv=eI8+(#$aJ ziH@?EY>B_j5bgDvXclZ_XdO9;9y;iPG_53nC9?Mh7ZG4r4v9^4H z@@gx%E%0bL+;b0^Gx@lSd(1S;$jtM+?$iRa3y;^(Y+3BAz5AbC;!>-JWYag=rUL%k zBq4JUOKZtun>VM*OC%Z%w>wVbuZ~OXzsy>PWr3x)_uw1E-gi{KvQ@x3|I3TmhiI^V yBagxrY_P@g3pRnPtd|5zpB?=*HVU}T!A{=9EtW-W;tuXFJe$~J=`pQK$ zAS4d_0Dcr=)l=c!7-ya#$%L@1uaCK%n#}Ff$z`qkb$0 z6in41jmZSbI2g*%Dm@R3oCG~Nc{z*f4S}K^N2dOSp`E3$O%G*MO7MJC;R`g*&_gY! z^ik;#L8vqZhtk=Wbo7Y^NAnqVX-JxqkU0BZlti{Au(G*zEbwe|$wN3$zO4pKwc3di zI!LE|(nqo%vuCZNLKz=R9Xb22GwOX#?~dfH0CgtiEXEvn{Jyeeg(XqN_9xDBiE?v;yUb3#P?93ZEVQ4K{MP$-z$E#vPVH!hs7g}xzOg6C2FIK3Zi>Q*f5Vvr zLgK&=;71{56GVHe8f@9~(0t$Q%ijM|8p;#NUEIs!R9n73 z^I}W5CGhZcw&$L4&J^Mf?h35-$;}dXoOH@M6%ljO zt?wv(Wh;ke{ugJlFHvKCbsmK)SYeCfXKVsjSuY3_K70CWY~*mAgT1_gn=JEK!)@G~ PdDd{BWx%vPB|m=vW_~1< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/SajApi$5.class b/target/classes/org/springblade/modules/nh/factory/saj/SajApi$5.class new file mode 100644 index 0000000000000000000000000000000000000000..252e9d0d853f2ef34dd64671e9595def47e7f31c GIT binary patch literal 953 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 LAMhvq1oiYMfX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.class b/target/classes/org/springblade/modules/nh/factory/saj/SajApiRestTemplate.class new file mode 100644 index 0000000000000000000000000000000000000000..04e32082fc354ce518497f0c3c86882eed862e5b GIT binary patch literal 6727 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 E4dU{G9RL6T literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.class b/target/classes/org/springblade/modules/nh/factory/saj/req/QueryDeviceHistoryReq.class new file mode 100644 index 0000000000000000000000000000000000000000..b7ea4735331bbb4f972d22ce9e6be00fe926b9b2 GIT binary patch literal 3267 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/req/SajPageReq.class b/target/classes/org/springblade/modules/nh/factory/saj/req/SajPageReq.class new file mode 100644 index 0000000000000000000000000000000000000000..68bf76002e8d71cacde7e7c7c05734f562bce731 GIT binary patch literal 2423 zcmbVNQBxaL6#j0qn+;(J0SYu0TM(*{K)2Q^kU&)^l+*-}Af3?{FUd9ugx#>aVW$2P z#~&asJm`!?rw@+4)ER$+Kf_0BJ$HALEHrjThp_kDyXSu2Io~<=?(cs;`x(G89>ows zSb?NMMug#xX;n14VbzSvew~+f?Z_-Q>$Brg%xAh(Um?5%M zGiuH~hVb;vUJOz6D2S=(g~~8+z)!eV=SD@#8IE4jEe7R;*PHs*V}_CG+)Vxzk8BU( z=vR4T z$4y>m7@iIQZ0#TDB_})cxp2OwVhnFG^j3675DO6D-z}{eZeU!&go?KWexj4O2T4lm zg3lJfQz~u>;Fu3gd5Hb*sF=nK1y|*Eb=52r8L6Hdq-v&B%wmpV^oSqotEN%n&ZC+` zPKNDp!?77M!8H7GWCNMCmV&_-9nlO~2FYXV&({ng>b`F6^8GsT59ZAhukUfICg%R4 zxA>9n=oWFt{GD#)nJEIitTf@vrc)Ko z*e3#=YSo`1?yd(G)V6~Q*w=aQ&5I5%9Ts@QPh8&K$raWZSdPkR>2|a3F!TiQqOR@k zjXI_$FT<4!9n%&)Ry3PdNnfuCq5C_{eM@9S*{_(UV>=dacrw`i5j>3H6XX>XL_2IU zOm&j487JnUu6gKQhpc;tn&Io9!oH&iy1|VyT>(>h(>!c8g8kx$8IbqF#@#0ky^H%7 z0sq!n3M}~$tGr$>)*L+>#Wur4C-v!8t(MvBxUfmeWkyFr%^8Mnt=741>$ZX-!_8Mx z@0O8*&ls-1-j!@Si9+O%p;1H`Nu{4+s1v(KExXhso`+8@!V;>`rA_-}x(Sh>$p_sb z19H3`QV86J9B?7&3iYG>lSYNus_E3XkfpQquZVvGIeeD>1@Xdc>Kr5Pl#DkvXX%lV z=6*wOQhJVoQ>b%E=^WQv9+MfFTqZM-q%3?Q&oOw4zNDOtw49_f;tB^!;OVg8#n9HF zig_$h(8DNVk!l*k6z-Fv3$!7DSKADlki=^bgi3(xq)mV4I?s}-cU}2K$ zLwrP>GPTafWQFL6+{Oxp7RDq-u}YTYit`ZCOInaf9L7ixF!qw1I`fcN7>3+(X!%GN zm&lFy?qki*bb&a%BTG#p5_(3J!sSEbiFon2hOzES{Qw&@MhPWH|6BN!W-+pMu!}t; F{{bOF?u-Bc literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/BasePlant.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/BasePlant.class new file mode 100644 index 0000000000000000000000000000000000000000..fee87c7e5d874944c042a05a36cc8c830009501e GIT binary patch literal 2668 zcmbVOT~ixX7=BK&UkMAOv9ygvEJ`&Y&}g+ECV&b;OG_x0emLrdOIS%DWaI8q?T_fa z;}4J-t(U4Jm-C%_dN&x`se9y0A}%78VMwI zC?-^B0-0^=fmLc+t*z3njcvQ;3urTqR>PkYNahRoQZSIxkv1^^Q{a;0Zk4>Y+h}cV zG_6g$wCil{HEplds+YdDYQEz>EP2*;$+f+9Y2NbeHBysPZ_9CcQy{z2J8|8YL=}0) zkcnY=Kq>&PTD!LNo-mP>-sEa^InDV=6C*e!VAQPE;x~I%Q(zWGbVC) zRUo}(`#~7;_>=iU3?Bs`H5oPWnxxij$?Hji*G-(01ZIaoh9wu?F!82b(6|spmcV%v zZ{cl5R=2$Rg0pD{@-1g6dcnjbiUOy1tsQ&8Y1J(Me#0lI<@prF6Sxu2A&TjEl*c`N zQV~$X(}!0YEqirucf)q?SQ|~olU;FYR`Z_aHsm~VDt^7e2(GOBufkTSt`}4HP%)xJ z3isG$RokySn`@R!1%2D)iDqY?6qQnPN+|_|bGS#Mk_xDfU$)Vc00mlG;CD+;Xaa;sr)-OY){7>f%C@{=$Dud zw%FKzLs`O51&s3oCwMKB{PInsm5@(QF!HhCH~@AVG=8TzD{&MY)yZEWehy&M{K{oI zae-emvP*b}Ga;WHeh+W{1^Q21OrW<}@4J~#PM^(#M>iXNH}hHQvpI8gbE@y=cX5&N z$*{{DrAFFh@iFxNNuLT4)JG;Q1(9kByhmFVoMbq8zdz;R%Tmh1bSZ}e%1iwzGcQXi zYuu&G29$jG!^Fi^jwvSas5to}ROO)f2aF$}CJ&0g!>CS8KEW%&l*Z}RDSpbz^q&~W zDbH|XALevUd4jVY#8_D+WUQ>^REg1^A-j*koSM^Opz*R!(0JL%=@Mi_AU$VvK*|9F zO2+yoY`QPQK)d=s!ev}xW+V6xS6Pz;CeXkK^d0? zF-uE_i?f)cW#B`eS%j$@e`838@f@dgB=}>9=QtCZskqrG`(+BM$UoAdpgdpDVn;|N zWg_tl5GE2flG;r~W%x3YsFAJ)CE_1fy4aiI0x2{S-OW^Hl-ZyVqnS#bWiT?uedyCq zF!7c2kChdS4x$wX!!X$1}x{n!-iZ#sBN+6A! zSYXsi{$p?vpU_e$~t-Cng`QF|6`ZwQkbe3L@UXEUddUTM3gM*`&J2>GecW`%rU>C(M3ijTypkhN& z>|#w!j5Q`E8jVJy(P%XBZ{h#Gvoo{v?G4EnW1-yd$FlFf&+|T0cXz(ooxSJ2d*ETq zvWA8lCoIPzQ7c5Puobbb?B&JligQ;MmoLqoQnI{sakXtlhLn|;RS&Z*(y4P%+=^N8 zsFk2r(xSFCtfF#hZq@3_vht-RD~p$u=B}z(vUX)@Rc`sR+#`z@S65VS$gL_~o?BU3 zwK{in>AJGTrPE4_S5}v;Dji*1U2I#iCEQt9Zd>&x`DqtcqvT*rEsI)pFsYa)U09CJ zy40%2ol8JvI;f$u0ks;UGg?-@PWl>CtBK{>7F|_ZU0Rt}SY2Gbw#v5ZYiUg=uP$9$ zTFDb@My=*3k@V#`XwbJ~f)>c+>e;aDGMSr%(FQ`~wS~;`0+6&5|R(k}q zG_WX-$91GuCrxi`W$7C3??SDvnjh2ejp=u%Ru9dO>2rTiYV|^YFntd8p;li6)6?fr ze`*cT^e}zyA4Dyt`7!-InEnuI4b}XZKKBo&)(G?m)92twYK=lLJ$(+1q1ISU57X!V z@zk1t{^;s;z1BhEnD!CWnk0RTAz}1Qrq&eU>n(XxsWnadByT#kW(Z#&$(u>7S<)wY zbEq{JeKAOPH8vt9GM`!tgtNDDE}~YkaQ0Eo#nf6NoPCw^NNOz=&VI^SMy=(-*%zXDvFnI2)j7e(8<&~#o8?4ag}90oPIu!u2@^LvXq}< zr%~&4jA>F*ym-ah)zdM>8p3B%>ntS2D^V1?AtrYYwYK

@?^-k6K%OFLq7zo=>d{ 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajDevice.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajDevice.class new file mode 100644 index 0000000000000000000000000000000000000000..a715b59036c9001ccfc34a07da8518c6ea5b84b1 GIT binary patch literal 5979 zcmd5=TW}m#5j|Jh$L#K`w0hb@j1wnoqKEATOdLFtw%irTorb4U!89}?Kks8kJ=c+IB6HX z`t(!lUQJ{xv+;i6&iF#y5{3`h zxF=+IGzgjK@3rwk(dWrLWuhi(*T#gXZK~(Oz=`3Ijr+tRg=ZX9h3WIE6{HaEL(Q7|eZ4*>)wYhLDg+IiD9>nm*sQ$lc5*A(| zW!}AamPvYIef6y0JmsCOF&h1|jYY3^+G|#294J%ml`7x=-r4`EMkger3sxPAQII4l?sN3Nnw&&OwxK%(7?-$uffta?8+!8D&gC9vPY_ zdzdq%iRFxfYHVyQL9r>M8|@Xp$%!R6aur))_h)8Jc(YQyO zqn@PDYXEUg>>14Km*P)hRA!o>T}9J$#+oDST+w586vlte6ky~Zjm=}~p%h~Dm@!RB zPZ8^G3Vr4|H|UBBZEx|yoVOOFUwZzLnYn2$#SHrt`~P~4dr2-9;as^BOsgCPE?yEUa?$-Z_ert5Q5Y(Y~}#b|Pl< zkw&B4YB#+#liID`3|`9PoA_21-Aw*3hUFDtwdz4=I335V34 zJHllVIan4Eqh*mnXIqs~uq;M2%OY~HERiV7B7@kn98#mK=9zlkZ%);`R?BZ?@v6e^ z8^W6uwJd(1u=D0nCZ7p0_j8L|CmbK6gFE^cM6W$z;lbtx`%yh$x3NrI$=Oyj4nRE)nH+O?ft%(%CAd^r?vQHch#hOu1vL zl+yAd%AJ~WDVg&2tx`(&j3{?$N7g{@79$3v1O{K zdyw~SY}uE`$9{x#>gxD!VZDlU_to*=z?$1Lb`2wXNMX;3J^XT0dw-9DlX??;Ob520H8(2|DcdI7I>V1fZhR69XM_dkH$?mYiMzl>$(& zQ;LD6-9Cb*-F~M}K>Y!z&*_hWj=2K_9dier0RasLpaEwv20HEz5p>)gc7_Br9Ds(L z;SiL%%Ffgs+bYdI`!};zVINbMv5XZi?vQ#GRqnlAD61OIQ`e0#bq*IOrSOoNL5)%x zb7~5!lrpHPGU}AFXsVrPP_pn6u49c-4lm;$c#2XU*YGDaDHZT5yoDAe8-K>@Xj3ZU zulNbpDfRFua2XdV^{NbB#M6{YYB%S9hEkszhmT8?`qjfYice4)Q1iGS&r%vx4IX7a zNoh!}^WTh5Q5wdl`ToyfSJwI$da|(I#&8y0{8;L3Y&T-=eQJPp` ziCLxbE6DD>h7(VUe!rU%gOds@mK2^b9dOgy#G2DimXi)m2i=S|Wg-(R(RfX|S#4qw z2430FblA1D$%;%YP2+XM&1n;>GVscUrfD~?P5H>gS~XtB+=4c-Oare%XgcoN+GIy2 zTbp(y7r^r-T0wZbRWF{yXBf-0D&n)0x{y~EKF5%E<1YLipQn`KA3$&6c}lV@zr+ia zGECst@C8a)e1oVjQnK)4et(Hq4!^@3zDy~Pzwn=_7bz9+PZr--DA|&nU1u)RUZ2-=01b6TWhQP(T!KLGsYzrLu=csu> z;^QCvzA5?dG}#=u=ikBJnf+#nfTZxwBpsexfC4J}rc@oaTjK)4;;jffoLhpDmiheE z=xqErb5MS0?UUvpjeyqyUI%$i@;c1x2(M{g$9Nro1CIck57F_TY5T(J!Pj&P`#LKC W%zniduJB#F!ja7RJ$xTOg!3PkE-MZI literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajDeviceData.class new file mode 100644 index 0000000000000000000000000000000000000000..ea5ddcfc7cd551bdf3a32940f5760b6766f71e5e GIT binary patch literal 3101 zcmb_eZFkdT7`~o1Y0@rZrLaL20msn2Qs0Gko5)}??O@O`6i~_9xMu5`nWQK`g6|%G zfPCQto}+jUA3XX6&+#{jcs)tFrd{=T(6cqUb3fPp{*wIu=i{FN%;9zh2_!Wr22`X3 zvYX}|v(PY`8->g3n^x5qNX^Z*N=I=!RtOH;}^t0i_n`$%djW-)G=)QWMxmr|BpZhz3y)5>aVB< z6Kfo)Wy`NSwH4Dfw=Lgt8O{Jj+fBmOkcxuVI1rVw(-~61NVzL9oR=s$tG)359+tEx zobGvyW<@}C{JP}|49TL5#m6@roOH1U15kTz1@?uI4kI0E33ovxA3O|Je6zZ>Z0uV*=p^S{%$~n?b{_N*HIt%&6tMvLW{8?6$@sgQL%liq~jBT?kzmtDdL=%KHg5E zq-7H41Q(LA)NESrLc{bt%hPa6;N+e}^ovi!X97q68Onl&$>8$TxmbZDuY9$TO32k8 z+_~)`a4Mh+JY^>$#p`S26nGcBtCK%Ld>=qw=T#m98s6a52myE#Z}CaUUC(Q`@DI=) z@-TspaJsKBmwX@L!Cv7^UtzupXrkA0wpVzdk8l|M+qC@--i?$Ld6zj$O-}s?t$*+% zAtDN1CPrpg;56k_juEnaIMZL{;J;NV3$?3qC{S5MiM5oWmg8P#rOIS1%VCN3dKuPy zmgum2DZcY%ts}p4G!mv{j!eFcX@thaY2MQmx;HiX9aQDP)UVLLg_?XY^$Yan>B&bp z7(9|Vd}*4OqB8Rv2J*@i?7t6VCa*lgkv8I3Q6=P9F_l*(CiMil`xwlt`BV%vTGR*{ zE$Vqqg7gTa<@Gj5dC)iJTcM-7mAQv`yvJaM@ioq}RTKPhu<<^5Nlc=ObEFh}fJH2j zQn5_bc~U7fI6W6gX>i${i==eo_}u_Q)BnIe4f<1zXh`s17f*3GB-3%So!EIMR*~OM zVM5s&f)sm2W>N+cACY+R)ZIW-Iwk{&N_95q2Y%a-B};UQDpFK*EnAvZ=7K^T$(HIY zgPxtb4{hcVUb!v#$BK$P$Scu_E{hW$jTY75h;<2s^t>7z9qFIy`OskGVG>ty5leJO z#R@(ol|Tj`@lU4u1c$FoN?|z;G08I3GMQf?^^6RK$rOSKgb>dN?>r|YV;E{1(8eg; ztO%Bh!8*uZF2Qv3((cZgrA4{eax!f)Mf{CEW_zG_hs0N3Za47DK>=5Ag?F8ruJZRW PZty8X>LxzL=g9vB;=qA{ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajDeviceDataItem.class new file mode 100644 index 0000000000000000000000000000000000000000..d29a1636770cc16b143e97a362ce790a0ce0c62e GIT binary patch literal 2483 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 Y6qey}wQ1`np9*}QGTa5Yg%H{Q0ngi@nE(I) literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantCurrent.class new file mode 100644 index 0000000000000000000000000000000000000000..e4e2247f14691c57a04e1da3206d044a49f43207 GIT binary patch literal 4818 zcmcIoOLH7o75=U?Gu<=lc}RYx6DLGw0(#gQ91JEsmI2FlERY-#$r4U@q$RaABaNmf zJv}z!8OV+ej}257S>h_nRRM}PRVgY(Hld0&D_HR>*kHnUyL)DCx0;j+iYj&Yx#xW6 z+&<@i_uL-+`Csq82Vfqr7chcR4H*Mj7H_+df#id#&wwI|nkx2?Hks%f8$88>;0o1E#bX2afHjh9?Z1j)M7iOSL>@ z;A7HK*|hy|iWSG(Vm<}VG-==rKF+t@vfI~Q?b$7X6H`iJVNL7PFG=t-20npL3XJVI z{>mV`<5Sa$LzJIfrD+2*GIq|9fx9xoSp(-}gbE|9saZ>7&A_Mn#$`2eX?)her=_t> z&)Z7w()JkxpY1!Yxk~!d_&Ed5N#ij(UP-Ay-M}Txa}{X6r7Uket!RN|TAw%Y1$>bu zYuMe!g1b#BkZ6k&r00TxtGFg`YTw>-7Torh?Qb-Fg4$i5Jn9PkTrF-C^lh+uwA&HJc=r#C5mq*1GLA?R%rE^9TdB@^cjNVr(Jp$m z>2*?N+3_3h_KNM<`;PB;oO+C|L;l4aBl-o7M8!D9SX9NBMLtob@+kzxSVZm+l;n

_WxEqmE4%XI;xhM-SY+2= z3+}bpbn{BVO4USJO4UU2#cDi9=@H9syn6U$$ExaE>AoBCj}3p-?Xg#0Z_3?pJaHb( z$^K8iTyb5$>w9)5WNNpZ!`%Yz;aeIGWJCD2Ky`RjG~0LGJ*O7V5cY`c;lU&DOSL;h zz%b|yyS>e0s=DO5d%aFwX%Nv?Q8Y2fwS$h60)JV-_j|meib5>dt=4MOcj`L6EAUz( z|EXco=Ed2k`#hI&Y?Y)Uwn|c=u2SfstddkDS7}~M^VnN#^N?I<+1;+w)$jv>XAV_1 ztza5{DDc!rLrJ-?x|rm#F~WAP@y@RXN+a@251u@+gD21D;K|cCc=GTKo;+&#JO*|F zz) zE+(A|sm?r~Q=G?>&SR<0Jik+%k0+gtRA-*=DbA;o&c#$`egLF6Kb~|hr8@HiA;tO0 zq;omd`O8@1n#iTH_>{cK&CI?HEq$R+hKOjPB?%&INZBI>A;SSbl*1Jtxxwc+TfpS(%&(BmJeYkS`WwiOKA8O@^yRZN5Ak#` zq)@$imNzSN?oSvqGaq35K8$l_<{_r~h*>L3$gGt!vl5g002B97G_z(-0nJ$&L35UF zY7(SJAkEYj(0MCQ(0Qw1<|U{Qf%0ZS0bQ`h2)bYy=9mN-5r~okx@Z*%x@eWmq6C#9 zP|++YAj>KfWLXunEJ2kBR5mMpQ04)5%&5`}!$$fbEM9+qiAmhTI;(v`7}#KQ9YGb3 z@Kx$Y`Rn8#xJ@a;D1XIEl(O81f5FR?a%kage2tO@4{zb?lyv+IKgBmFdElMT!`blh4DvKPRAab27xWgPa@R+9m6D1A$ zBb?-!!#`a-qBaoo|E<_>DYrOJM*hl+TFP^*hU`*V$t+n!^*{-W7&fVFzlbc$248nT z*^Pj|{1HSI``*a!7^1*H?^o)VGV=j3Pgm*<(o(O?-iLPXAuhin^|Mw+8q7>&(Ir_! z)0~wJOyp_cq?_5k>AaN-Ou2!H>9n0-n)_*|1V zB@I8pvv4Wt_%%+ULn$xGAa+ptkcx~3T?qO8A;gCaI~*Bk(0wli()Q`6_1A=(Lrs{IJ!37rR@%j$F$5DaO K_wgEj1oPhqkEKok literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantData.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantData.class new file mode 100644 index 0000000000000000000000000000000000000000..82f2b62f31d8e064935d0149381c02544b3815a7 GIT binary patch literal 9546 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 G%>M%P`w(RS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajPlantDetail.class new file mode 100644 index 0000000000000000000000000000000000000000..a8ab365df1a2ecde7bc9426ec6ed663e5cc4c17d GIT binary patch literal 25023 zcmeHP34B~txj*OLnaN~wvo=X{yQED!X|uKI#?sS$Z%UG;Odpvm{@Bf{9&Ye5M0SD;f`@Q%3_4a<} z`~KhmEcfi+wD1CQeSY4=5a%iAi~w!wx59s1Ky15Dr^Fiik%@sznZ4EL9_!bTXMC z)l!EoBUQ{(Z9;pKdWFMQlDa6dbt}H?2HuGGzo_tPbNp3 zhPDmLN^f;ok__SDe)Va$Ijmo5k~`3!$@xTwZI{lv2k8E?!(l^Yh~cBqsOlN$BmA(# zP9k-Y*S}Mw8*x~MYF9KmlGJrL*7;DK4>|0^lyh-v=TI`Oi}?|UohgecwLQ9` zA9dKrvg%d3wx4j=C#AYColInsEAhmT-=`h+8TMHk8;PM+CygcsQMjhS81?3r1s;`p%GKYOtJ9O&qN`|jF?CVr?V)9xZJ&_DoI_xSk z#9-L$eMC}!!(rbfbtTjtIp2}2*E;N5WUYg>*Yqg~^lgWIhd@-u4)rxj|6PZDkA2_M z%PCe)s<~~Trd5LPao7(CP9>Lc`u=3N(P1}{p&W)4fhmt{w>a#FIuC6l{jCoBk=Acg z6Cdesci4|fPoHK*cJ3q7oesN8XVVjy{>XNZ!+xUaR;U?}^gngj&q!aY>Et9xmY+N9 z7i6L4RvD4{mk#?EO{6m+{euqs73rzRQ3j;@wZk4JU9qN++D9Gs8?8m_VNN9MZyokK z(o#V@EsavLJmIh>$wCEDGa#v-cGxqdriNIZogB&Zdx!l&dmQaedZhlN!~Ueza-er? zCH22L?9ZBrx~`h!$n+P7{Z)JPc=H^o|IK0lPHO6MJvmbyS^vXf|4CN*+S*F99ohcN zVSgiAlx#E)kn+DB_NrFOS%8#(ci8KiMSp+QpE!58MK)?Hd;>M}!Hb6+9wrO5mDdGR zq%LxJl+@HS*Xx;y3^9k7XeMdUh2o_SFUzs$lJN?MS8B_Oz!YWiF%GZhHK<*GVx*sz z8o9aYsA7zdb$A_jIUBnpu^nsjP+uZ*ns`oFB%S1o4v82|juYAEzOR=um*2A5__ZE zF}Nj>9-y>RhBEyFBb+VleCJ1p1z71u)Vv{Ax}5!mDp&IsoMte4_NTV?B+^*muwg>J zj&`Iu3abE;G=Fne8ywcUb%~@5ket0mPHw7S5|F66? zw&`szTFL_jG^G-v4{P{J9wMOd0D33vbNEL&_(;eOc^bil;6nl$M?yxu-7#9m%f(NR zk>=df4rkRKDqlTLf{o`N&c=H_Z({Xos}DwgZL+UshnNduZn z3F!;$r}3G+V&y8m%(TugO;+InGHRFY1F{OQAM|Cn+vw0LryQME=)l(7FVS$0QkBS` zbX4{Gd_}oex4=A95y($XP2R^=rSd;^Hl0%%zgD^=y4zEx7_5q3CQ1UiWAp`c#?X|; z5jDdpqfUC|_EO%Ir^+2vdF57@9Dcd|wAa{y`wqXcb95eyy3_Dk{IqA5%Tot#!qiCc z(_SVtK-G5N&m>3Zv8XE!pT$pm<4Ip>==oHQr+l^7U$xeoXjOmBRmQvz=gq$*Uh5Bg zDbJLos{(up&!kcwz3#K#pi%U>O79z?8>n*w)^n9dK&2|K=W^A2-sr=0>P1D0L*br{9bKz1`FG%E z1Gj0TgIJHlYF>BZIrDcc9+;_%pC!RAXqj7%#M&tfqb7cGa11%c&2T*xjcYQs0P>r0eNF=Vh zek86sda2(AUi*|##r?hva@}cT@j!Ph@e-;ls+8(rXr91!A(~0`%DZyRioL1PbYF7y z0BwrKzflP8il>e4nb91ZTqa)u$C4)U&npF??p|Xejsr0U(lXmdU(uz-qtvcyEiCTyxOuz7+L-jS_*yg_3F6moQ7Su<7V&0GQXNCM2wyRn7#T^96!9lGYkb3CF!k{w z{uF2RZwW8}$Tz|o z@{Qnyd?Q{V--uAiH$oEfjTi*pM=`9LEW$V+hg3UK9Pe<;4;a6mV0=9OhMAOn0{(WC zJdxKU#pwe54bIExisH7YIH^b#Nb?!?_6wjM)xrnj3|o1d2YUQwb2=&7K8Jl z`OY;)XT)R-&hzt~YmLqb-58t~<~xryIwQhka9)z{TxWDf5Xj)XJm1+hIwMqMa9)+~ zJkIEh0H(otZNBq(qcftM2InL4ohKNb5ymn&cjr4#G&&>LWpLh*?_6(mMhw>AyeZ## zlF=FQG=uYz`OcG#&WN}foR7|TZZJ9{E@yClZ@%*sqcg&G2Iu4Qou?X|5!W*~_vJgs zjn0Vw8JthZcWyK~BTi^=9>{l|W^$%LqQQAE-+8*x8L>u#b1L7t$>dDIe1mg3-?`c7 zjF7*eCL@) zX9RN%&S&L2w;P=i?=?7oJl}bi(RmV|jIADR9|gAMv`vq+wC-j_=KW)>hv44+k@l9f zq365-eqr2su?i%nm?=vOrKGcgPgyQ0r}DU|lof?i(lNuQtdf+Ce42@}x=>0wvG|m= zl5)D4vaV1{I{f&Q<0NI1xh=;RN=fG^pK_w4Y&KKY7fMM-GM{p?q--%$HWW%pr#qi= zs-$c+Q^pIWq=TYQIZaZwnJK3iN=au=B%GqYhLkp#(qrOjhxTKt8rkr0WCEXhM zlnW%~Tr=guLMiD2!lzs;Dd(9fmlR4#cNsqAGD&%enR0odlyoiPQ?8Vhhngu@6-r4r zEI#ELNqLxgzFb=QiOnu5BNx9NYnJSc$?p}S$lO*LT^XN$zN=etaK4nHy zt~OJS7D`Ds!an6rNx8;Mc}k&_bh+$Po+>HVnki2!l#=eLeaa6?$`14AIlWLyy7KlZ zKP)NNnJLdGl#*`GeabT>AevkIl8i+G>%W0JDdO!@IbDd|q%r~D*Q(og@rLrTdx zIC&k31J|t9mMd8}bZzTxEP5de+t;@Kh(){FTK2F{$s~l&b+_R!5t?x~D{(`2vC6BM zGs6w-VPDjUb43`Cb4A1r6DD#OtGbGnx?wjG09_!80J=a#-68@-6{yIK20#~yVt_6Z zF}IjNF$F4iV*${mq6DBzh2xeG$Wb6j0np{56rjsRnOjPrG6gDi%L1S)L^(iLhzhry zKots9?p6dqSBpx3t`=2pC4s6GsM4(pfUXf^0J=t0yJHActw3Yk>Hz3EQ3KF*qSmb; zP^|*hxU~V$^0PPi%-AM$RtU#08$pO%9q5+`W#1yxI zKvNW`!JQHS-65s|bccw$QwbDTps8*=0J>W=0(7^S<~9;&ngTVt(*mG-#dLt~6;1AR z0yQbnbhjx0x=%C%bf0K(n+epSK+P`twcma37p(x@FWTHz0<|enD>bnXdO*xT@&Pf^ zmE&Nh0?lw|20#yqc7Prdv)p!Knx#PP?yLal5iuK}N5mX=Hi70S&}?^30Q8uc3(#X? zo;#O7^Au>VJ1+owTpR+>lK!>=820%}V!vK0p9PS=Qpu-jDF!%5P=vgrz zpl5|}=MzXM(0o?}K+lN<06ixbx(f)jP=OY>3j?6%#Ug;77mM9R1X`>>i`>Nl&;PfoeFe>+Zh1aq6;8fbh}*y>Qtoei1h$PM31|kKs^ey-t7s1 zip2(iip55E1A#Uw&<1y70OW{XfE=;O?IqAA1?qJ-1wiFuGeG5Hi@TXXTNG%syG4US z*D}WJ{5Y`P@2w^J9xpPBckynlH#L#*d_7{r7K=w5-UFS@S|Sm?0aA#q3ICCAgcN37 z;iq{oqzD@f-@!LQDq`vIUcMPplzkz5Dc=IAn4KTKfFB7d#`c6ymY);4h;M~7mR}e;k0&A3@f$-s`3aC*erxC? zz75hi{=3jd-VbR!erdhYx8J>YO z-MZZ#;-iq7tS9aD{A5VY)*tK+z7tZ59kE;ZDUe!i$By$|klO54JIqgoG{c^4z0OaA zG}G>}p5PyV)NXIF9_1f|G|L{fZsw;$nr)wE?dBhXG{?TsI*)%C(p>v8>ui1oqE8md!3&LsUv(C`x`$W(z@^#_9*`{q$9$|vIqGEkUGPsvEBSaNL}GG*thvtAa#c? zV`uY=AgvEy$v(v|hSU?jlWpghK-v)gDNFK8A#Du*iLK_BLFx_vl`Z98g|sPB&KmgT zkTyqZ(2u?bX$${4erEA7JEJK2Dl02u(brgQ5wq|o%3ou3o>=_^z;iHI~sd{ac5E)_-6ghPPxD$=IQMO2!izA36rSBPS1!l^)c6>HPgA|_2S-xSlP zYeb1O;h3PjO0?-Z;YgF?n;dPrUX)4`&JD_|RGW5-GHELFO=a42gD96K93+%ixi;M_ zDx|5xH&tlUUQsDcI9VvKN^QDLR7q2nZ>rL!JH!}i!cjwcjnSsNMYS|l`=)Abx>wXl z6V4vWt45pd6SdM*>zit|>3%U*ns69VUSqZC0Z}JSb-t-in;sIbG~sljyj*R1M2wTB zalUDsHa#ZBOB0SO%4@tfJuW6l(*)l%L7Scu6Qv2~7v(iko1PW*(p2x8>b2=PF-e+m zpiy3vwCQ;IciD}X_%{NU`CTu&WOA`)7%4@nd*`i6BntW4}Hbq3UG~tw_ zyqdMCShPq}i*IVtCP%bN6OK*Ft5uuIMVmCW`6lcvF{Ml}ZXo#`-fX0%FFTatSMVz_ z>xDx*_*IZB77O+Bt1+e7Y-(sd{|2NGmj8MDn~=insF2IAffQjG`|tc(NJZ@P*hYN| zQj~quzK352shHhqe~W(`Qj9%ef02I&QVIKSdndmhlEZ85W3h?A29nRVm+|jGD&w8@ zH2!@^<$Rl6!goWe;2*L6%J)F3@12k)+jIC*eix($yNfr%8yiTwpU3z; zkfz#avcK@3K#JR!VC!-(q(=Kjb|e2Oq-pkp>=OPnNYm}Vurv96keWg<*3W+qsX5fh zy7(_3wS<EZ$&HF3~r*WWCHb^5!I2 zo__#RRL)ycW!e5QP7#*=Bf>0aK~P0Yn_k(k;QkhWWUmX!Epj1fMP6PQdA8(l!$Dlr>Sy#WKth2elbAMHU zns-`&Y#H7ag(?P)pM{J^WNQ4Q#_79dQH2@%?h2D_nSDT{ii9)yyJ;V<(Nrt#8!lBa zcV84N+hY5SP8Dz5J}O?eg!__F6>|K(D`d8u`vuk;=V3$w#@s5 zS{1u~KNLG#^8LlG3O{N86h2%2{g{EO!sPu{g={VMZyu^54g0eq*}ClaY*clo?C0ua zYjhxTQk9yz|0|WP*8$2*RV{u%s+O(Yfy+--u<<}uFk8n1nx(4dv;$bpY)ubzuBx)r z4{T+#^*sm~t134g@G56(eQ@$t6>mNm70=fFpk=SB-*S+upKXDISpwAvtp~3Wvh8q? z3!$2#?VvVAwlxlZIaGtpIM@x6ZIgeBqM%uDjgPg6Jon+bAI}4L9>Vhop2zS!j^`;n7vZ@S&$D=*!*e;F z=kdIN=S4g(;dvR)D|lW*G?C%4Azy*#YCPBALAiJYPca?`Px(!}mf?TyHvRYkzjLOV h=;$GTK%ySxzrs6;T0ey6G5$NGVvru^Px7ak`#*>M#4G>+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/resp/SajRet.class b/target/classes/org/springblade/modules/nh/factory/saj/resp/SajRet.class new file mode 100644 index 0000000000000000000000000000000000000000..418dc639e94c438727b69569b2f606cabebc55c1 GIT binary patch literal 2949 zcmbVOU2_v<6n@@hH=Bknlt2rS4?%+_{UC@a(zI1*L4s*P8jFG-Y}2(#n`Ucv!wmn# z@y0v3;X-BvXSi_m250<5UWoXdeK&2=c9_acci;Ct@7Z(C^PG?LuYaHZ24E6*Q-~pM z!LVT>p)j!G+;a*Ir@36XzPRF61BJvyy;%>Y6ymx3LLZXovyif}2e!glueDt8*IV`G z@?yhTatmwTQoG^$g=Verty2xW*8PI-tQ14yy<^F5VJ*5O4~SqgZy&I37lRn9c3{^tsxtSa9AN(b()vIYdZ~v!CaTYNHu?3 zlwY%P1V4g)17OtExN6Wv)JHuy6jb*#)8wT z%Q+GnL9NaZ&Xxav+UaYk*W~^6j@b*ZU~huqPtmBE%ZETLzmrEJSIRH2l4sqZ<}KZD zTF#mqxGlz=piY?4p0bG8k#EF^&RUN~hf-=Ja`Yyu%A;>DsJSg>P-w}91>6^kqJ1dV zC7aT6eK`Lrc!vdT|9s$7S7)8|C?V#Jo2A*y42uocZb)xw*Jf6GN(P>Wr;wYdjCa*U zglTHKNFg=vwOdv9N?i(Jk8a!3(wJoRlII0}&~nx_z5c!g=2NKPGYbn+ySEgwn>}1_ z-t$)7f{sC#^A$Z76u$57%}7xjz3McVI7G5#&s%M;7rR1?a@8g2`LM#8+ClwJmwqRg zU82auw9{zJ*8{hh#1{(3H0+$rs!26^g4vZtXq{Af1-sO2x~=Jk6+hFg6 z#=_SM$6v0>d}`=8$&nJ{Scvn@fy-S?#$~v2B0`}M?$7X+^@s%D?@)4)tKw=7{|fbp zn>fz$E!Py{UB2yTe-7{Q^nQ=zJWopIBj3H|eu4Fnm)+*9U7F)i-N9V{&s)qTcWI7e zmSk*=ZvR$ueY-NJS^R+UUBGx`w#-$yPYfS<3~Of+hqMMXi9)bsNp;bg;GNJ}2Z&fge%GUqp>f9p`FMy*)Dg6HMdb$R9}l05kq@aiDyVZK!3)}BsxllRH?D8=&$O4 zHuBYGr$`qK;w~<+5hN)yn5HbwtW9x$kX9<}!^_;6xXq@x!d)WFu;!&5Wmwzzm^QA` z_erFzuui#eHTfeA^*8(+VBbEk-9U5udU6ddsjO)H(;0y zUSMqR;wVLz!h+$y8&r~t_?sR~t}_G031jl;K(QuCxH}oLFGq5p92j{3YwQVfp*%Zo z$VJA8ZjzD_ULD<;>2unC6k?n_m%`34S(Vqgi!tCc#41dW5q+6EqYJ=H#Hw(44aN%+ zYLH8%NFS7X!Ou3&F%b;H>?m|}j9wAdh<|ot4$aYs48*j67wCMlPcZ^)og&>MGaX^t mBwHlX8Aj9wbGXh^3^(v8*Cc)1K*R@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceHistoryEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..0975825195e7a743b19b3d9ea84a7624726f39cc GIT binary patch literal 8653 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..64eef9788608a5f9b54b10c18c384bb25435e5ff GIT binary patch literal 7383 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajDeviceRealtimeEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..f7298544161e50afc591796ec95f3a21ec951230 GIT binary patch literal 7837 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$1.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$1.class new file mode 100644 index 0000000000000000000000000000000000000000..cdcbcbf475ffd304d8a913232913812fffaac741 GIT binary patch literal 1224 zcmbtT%}*0S6#oqrwk#`@^5GXMYSp$V3!Y3W7$6!O%SWtopKgbCn`M{G%#v{P$Vo3m zqr8s|#}=-7;^KPn66QL$|K`DlRq{rax zbo6D%#t1H3xZ>a{t}zU>Yfuces0qnnZSWu#OREec*^V zLZ7rEfiooLqbgzbm;6vH#%mQJ-?Y%vrO4yK3YWgokBte_xeT)xBhE|}s96_;u1D2n zF8P|!LK1AJjH!L>auiEXyztE(2TsqDS<=YAiN=tleHV4WyA(O+;m~Se=jhl359N2kc5x{^n5weG x4-9|D^)`Xs1f9SjUCxl0Xo@)|Nf5P3_aPpUOwe3UV6tiH!xTxIyiMx#{R8RhRPz7; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$2.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$2.class new file mode 100644 index 0000000000000000000000000000000000000000..bf1cc1d5c29e0f341c3aab1c3228ddb1d81dbda1 GIT binary patch literal 1216 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 M37RA1qcft<51#DaqW}N^ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$6.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler$6.class new file mode 100644 index 0000000000000000000000000000000000000000..547d400822fa50cde1d8e7c5e9eeb610c5265db6 GIT binary patch literal 4551 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 J$VX*Fzwaty*t-A# literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajScheduler.class new file mode 100644 index 0000000000000000000000000000000000000000..83e40ca1fbbfd2e75f84ff206cafa2c45f0f7299 GIT binary patch literal 4815 zcmbuD`%>FR6vn>=#{!`w4j~t(DRr8JV&x(nAW36FE?g24AQuwav`t%KFSdv+QAsAH z_s;acK24|NX{OBd0Xlt-K1Qc!S9UCH1y5`kb5>&Y`*v67oIUHm|NHYV0N3$zA9@&$ zdFIA7Z`;m2^|-s@o4)1Pis=BP~3_wZZM=r7dOl;(=T#!YwD^i2gPy4IUe zkraCGG90bz&GIcP#~*XED=7AxjUZb_f5`Rlyp-QhOPh_udh zt#w(&X~Y$L&^76biV?(B=s2g~yoiGf42g!Mdxvhx;_gU`6lJiqbX_R_tt!!J@X{q~?-_WjtUw9%$AxPgr!hqlFDbTX|CTk%q@u zA>UbloqxiLk2+GUy~;*PYapfQQw^*5sNq7Qf5mHb>e7Xpaak45@QH#?HGGEWBrEe$ zX?n?#>5g07HL)`@t=Sv*EpUreu0vHXW=+=t()9FEo4!lTu*GDKHGScA{(( zQJpZvW}G}FwS$Y6&6g|XHSRtU+qGom%+jjqTH?BPGv*g9kMenEucThkP+m$>po&dx z)$%OD-?D8d2xX#AhUn|AS>`Vt_eH%nqVmEpU-vfZMN*!av79SX+y05M)cANxm%o&f z4v2XN4k%Iy&2@4tr5l-0mm^I}6C?oYnHfuEGSoTfOR$qoJ$Kasq)q7YvD8Fed$6Hh zcYe`nGL@NZ3{a}K_$z}(AR1|%bx5#k-2(Tb0bU|bcq%>r?pYPK-JU{A-%_bIKOD99 z?DhOxZYv$38t=KW{bV~L)mFM?FX#%kYtQIxT)_-m^LIz%dShPhh}Po6jda@CTz7eU z2$o)@%4~`IMJNBz6d8hQC`ufCQ@K*@aHOs{6*tG{Es@F&g-=r#Mcv3S6`EnYBr_*Z zFtt=8&NmEt^y4%R?)clA+?a97n~qJ@BXu5F=AOUAMRKK4Y73%7k=dMkI7RiKPUpx0 zoDdnDT7#l;m6nP`X{nNvmMSc1srHeU>Je$FPLP)NZfR*Zm6kR*vi)FK!v*vpM^{sb z(KT>jknN!Nnf?d%y+Z$Qbf*V-`m2%!&e4G|15Pb1=#6z0=&DGc0lH(+XT!q_GNowr zL4iILfxb%U>GtR{q3sCt;0}fa`e+3DHldf>qa8wTMxc-FASuxAM4+D&I^Q1s6`|b- z^vN9z3v?<1Z4r92J=!C*AAvr#gVO?iHUjMv`lt5j3Zb{6(IWyq8iD?W(7(1vza+GR zuWQct57_~7p=pAq^>bBR)X!HjpRdG{K#;cgslS&nL^<-Zai+ZxZ ziidhqt>Q_;S>r?pj>%zc2IQKfl7ALkWJ?59pKOV+>X$7MSSq%uomNREK>`UvCkUFLlSzV33JI#-6XcBvs%;ZgY9ur=v8sZ|PnSzLP;G!t#5%{((L}(kDTq8=>>{ lFnwz1!;hJVG-5O(W}d*Z z>m*L>>~Y$rrltAfY)#$7Nt(uCEJ6~TxM}uuZ@Q&h+H`Nzy-m_M|GDqYXhw)ZA~9y> z&0Wqt_x$Jl=iK}F$`3#FSpeH59YzgmEre{;pEw}#?1-BqfRE7cC}e> zV{6}-bJB^Yoy$gKq9*D&Y!t_Epg|?~jW2_GhU=HrIQxgw91+ft41nwh_TK)i*v5ae^fy zt~Z#;@0tn#ncM1ZWoGY7<-N`Zyiy=*!?+f&vas65b+}#-oxQn4Hs{8@Y&IQN#PR`% z2ly-qjb&3A!M4DX2GZ_qI_)OZF#@2=p%0WOZ&G}2v~iQ-V-ueqSIx}*sEgigqZMre zD?gP<3}jCUx?8K6zuZ?Z;V8!6VuB{)mqul}svAZW;Rf6yXqe)E{r$;g80&DWh4nTz zV56Y*a+XmszFq2%Wpm?>C)iwW8SS61P1a$vjV;(JsGD$ddAeOuRJrXgj;(T(&3d|t z4jY}=M)x02WhV1?WhZla!3`Iwwr7sXJ8-*&oi@6#OK`JVz?opIyYWPJd_0@U>-R*? z&F2H}P|u=pJL8_}%H^CX{ViD8S}wZO(W%Py*x0SgH5%o5oGAjo4tLtP3%x|ix1?@m zC^b$q6bYpST<0Zx>TVl->Qjs9Q{Cy5oAFeLhWCJtz1T;ZAft6nqy+K#x)e!|6R7rn z3|bhnaR9@D_Suec3G(!33sx{*4GWog&3mato~n^7PyYD6J>Q)WvI*tz{jSID9KvA> z_u9A*_Y2m~b30`s7@*u!cQ#3Y$ho~L@j)9$@Q~l*Z||z27Z?}bdvuI6(P`nRVCw>x zG}cq07D(iqs?46qj%DLXFB?|^iPO9MgwZp!H;e?rNxOB>K z8|fld1$^6^YyerX_V}q$9Wi0!gpRQ2cn6pS!f=qc;bBtH%r%CxNoQ)`NnerKEA?b2 zkEUHhlE5h&4`YgaL^;DwdXl!SNLj&9&2a1RsEwb}cnQzMi^_Pljn@=)p}pKicpR^@ z@Om3h;K>RO^aHilNzTrU0ZwiA>fATlc$4}_D4%-7#L`=AycKWb#z+R3WZxx{DB~Y+b{h+jt@0ZKUnb4%hw&4c+90|hD z1Zv;YHhvzzAXsEr$_SW~Lwn1KPAyIc|3$%;Dw#xED0(kxqaN*!^k z0Ux3ds|DKo`?cjc8y`_o>W^l)HXc_({Z$(u$FH#vnR1=VTB&QnK5)2F1YO{HeA2>M z8wGWN+h?1hjBDp~fm!nCspZF~h^rOjpve4mmSB}qeL0c$ZM z^yuEcZsQyH&7jIFGBLTNwMRMZC45i^{f>>_Rn}`NdYK;!+W-4D{y_az>s1jc3;%85e{B4( zZgRm~KU<)nrL@yhpF+r_e*xdO@dNz7kE5EJ$u-p4tA6-Jyv!q{2+8lHX5GEVH1GD5 zSDB?GeL-q%32Cq{p+A(W3ziF9L+Wj@v~OvpD+j%ewuH5}xx!_b*|J)$s~`fV8qXc4f&rgu?cSeClk!Y~xF;+($c>iV zr2AM?tV2v$*hi-1$-A|97%4TH9kklgCQ;vL%H1lLbUHqvQ_A+BQh3k{%UY&SX%}pq z2k8YFb>=R^l6d8=%>4yZg4}A$dc8NP_wPFBJbv-Jq%W0m2PVgly15~Tg&du*FPm`E z!%i-xzk|k*H>#GnyBaGLvxidg<*!{jd4QrJG_Pp++EQi<0;RVuGtR<)ucTiw>_rnQyLUqYovXjslH%(>Zy?aYNG;F`?jb@Yk zoSZZ6@{)xHX&g+AWE^iYN5kzY$1~W&73tH)yk5)8fXm$6l-v7KR|gc7&rr|iGDS?m z$aCqera6qIrfE`6>T~kmhIM+>)#E)qoJZu2`T9adTGkk#RGTM?Qq9O}vzn~Ra(>r4p}Gap}DXzAA)K#e^zr@u24ac$N?$bGGaRfbZf24hs?E)OnbuSL=G z)l|2ipU>9Ib>*$fmHA^(W~)nzH}Bh^LH}B+nwGQc!ny9H7c#$8Kn5jX=Yl7fYO*Vq zU>udPR=k>DxDLf*U{M846~zn2@=K~R2lL-pFg;b# z{sF9LY;6Ie18QX>KlS7cUaHq4CY$)Q+8-vHWeb0Cf^3!BAm*t zmJpY_UAp+xSR-2j>EPd8{8=O29L(2OfhHf}0(ESUo`-e#1vCz{#|l^+{Unyg&S7~C zIzsJ{P|GW(v8sR@qU{B&nNju{N&#-+-r`uy>z)X1#f?~xHf%7;Z}cUXl#iB_kBU*A zGq0B(*-afHSSokOozzMwo4hAHg1^N4b5Yg^i< z5!a7R{cFS1xNTq>+dD#`&2`J`ny>u;PP8wtdvY4x9rdwD{WR_uJUI6_4XR$DIwzs1N19kGyQ7|uEtiZ!fm)29kg;M zpSGbJ+cAJ0yfVI>mr^@1#+MBzunUi}=SlS79US#E?!dI3q)xQA6F{DF^se zOAVir;R*zOX$L9I?>j^U4|7+m5qg;)^%iO@SQet@|HlRRJ~H1!-BreM>qL4uxJK?R zA^L>?(dUbZzEct9M+Ks_22uO{m?EOnc=|Gc_Ll>ChJe0H0d0AvfcN@ve!z$GmkM}R z;cWR8E?U5ci=cmW7P4=sK=xz$>l5Y3?l*kVPa6)`J9`+2Ln5AWuif@eA66MPq-RH5h|#LfWShluliazD|H zV>Cc_7Y>xreXNA;^CfhjFQNOs61wjyp?g{$s6f}3=A)~956%PKlNX_@Zz_X$Jw$Ys zP)^4Jcq@YNg?=)nAA+Z%1$@d76=UwRY-TvVWQeMOFBI?_1$>R9Rlsi*@Z09$_X_x? zdH7?~`z`bQ7v}lfN&aV?OK5XM_1%6bnsD zQ$d#Lpl`>P$;yI6V$<@-Dtc6AX$c@c`LU-P}(NM*_Pv;GnS|t8FY2*Y_kQ-Wrk) zuqOI~#GFi>1-_v-nOl5;}|TMk94+@#bix{wzMG3C-89-sI71%{q7a5=!=8 zV-h|&ikNB2SHrE*8%!EepET`<%#$X5#cqw>@AJN+i_ejIPH*PKW=?75;AXx7YUY6E z<}O(;$C&;Vk&P6l;=<9`i*n1_f~=dZ+$y7-pYX%Ja&u(GW+r?(X>E}5M`V;jYj~6# L<2QFH$AKRKLfY%+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationDetailEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..02c012d59eda7848d4a2c21d57136077aae36047 GIT binary patch literal 3067 zcmbtWYje{^6g}&hC^iCz@MzPNS4%_e5X2+Ug2N*rp%~&g#niO)sn{D^!InI-4EW#l zFLb7)&<`CxF`fR4{*O+lXC*nvfpMI6GV!ifclVxq&b@c_=Rd#w4&WLdClSMthPaMB z7#6taxK*RobS=BORyQlsXgHO2UA7FnW~`fK&v83O%iJ(p<(gD4T%%}i6g|_k9D7lE zrd3}u%eDJ$+m^0CvS!+qx?D6pQ{eE_@`m}uH0q{ZHHw~ckxiEp^gp5_fuz7NPo8gD z0><)yFzB2cvPtOJr(wU26h;MRcC}kze^q*`gyjVh2;6xW)Il-1vei_q+?O7Kjp3k% zLpl!Qh`@ybfkloG(1`AqQ;`BgQ|X*K@qHcR_#k)_aC>Mf9U-@{wjs-2R>Ow^S9j?$ z!h@3Ln2zH(AuuX!&+RCoi_(2!m5JtBKSEl8m66Lkw#BSj+O|Er7a!qc4X1Q`f=PjF zADBCx#XKWL3!OsS%T)x5yA`kLY&Ztvv%HS69WHTmnL18jN=F)*AX|!^mM0sl&Qq1; zz2q-C?X|k(jx(6ia8`$bb0n)zd^`IW*xOwN00lh;usI$aQMa zZdPc!&`}!n)OwhX=|@T2#Jq+D9k;M3Fx!WdZm%gjjfP_z(WWvyXECMdk>ya*aGS~b zCeomYG`CL@Q{iip#M`WrwgCd)a#?klKcyLiK{| zG`m1A^_tGTeQ0DQRO~vDB$u9*WmC2HmWHnc4*FbMj*%;Dy`chm>D8Rds_B{y=}DKA zB#KtmHodk>>hA7H{eXCsK*JUPo)MTEl=N;pjr2Cf@m5O{xY6&Zo$HgQ#g!B0biae5 ziO|KQZV3VRKWzJ7;VWtPvAD~RnfGBXJ5z(A2(R6K<~ucQzt(z6GEBPOJoU})_H)!F z^{r0vj+F8fy6Cjsvb=4nnm*1*REvAZ*UMRz=mO*Xmhr5HELkm!Wj}A*PGHXzkMgyy zGXJULJ~ntWxYF@hdPaCxW^s}Y=_Wt8V!XZisl(Zrx>q^IAyl8@c#ltyXfecbI5WKo z@iS*bSmv*4Xuu@D(M}`J*@?gkD=6@Z_E^OiJW0*&qe$xqoaE;VXUu@?ZtzFRtw2SjhYWjac^P&urqr0sQe3u5li)I(ufDC`9agcZA1ZEi9 zS)Aj2d4<0VIM3)V`_ax4$^(RWZc;7>0d*k3|$oZQ)7z zIx9s|zS6NS>j{ibAa Qr0b~qSZlC2DzqEGziE+Is{jB1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationFisGenDateEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..06102c6a6ecd77cebf00e6a2ea5ee14c177e6179 GIT binary patch literal 6721 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 a6CpSdQf42=mHep|HGK1Pq>4HbK=A)j(az8S literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationListPageAction.class new file mode 100644 index 0000000000000000000000000000000000000000..02632788d6ae83d0a158933342530a6306978c18 GIT binary patch literal 7693 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 MEEn)w1@r^|0iFejWdHyG literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.class b/target/classes/org/springblade/modules/nh/factory/saj/scheduler/SajStationStatusEachRunner.class new file mode 100644 index 0000000000000000000000000000000000000000..84d282794679ccefc9d6a16038bcc0159e333053 GIT binary patch literal 10708 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/job/InefficientScheduler$2.class b/target/classes/org/springblade/modules/nh/job/InefficientScheduler$2.class new file mode 100644 index 0000000000000000000000000000000000000000..2f43829dd572318395edaf9566569226d5f0d77a GIT binary patch literal 832 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 SP`k0bpwKwkSYb3!=>Gv0xN+nF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$1.class b/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9d671cd516a4604694b340b3e658f79cfb805098 GIT binary patch literal 5833 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$4.class b/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$4.class new file mode 100644 index 0000000000000000000000000000000000000000..6d41e5a355ec5cae6d70f6c6d711e669c5d5d06d GIT binary patch literal 956 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 E1qtzq>Hq)$ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$6.class b/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$6.class new file mode 100644 index 0000000000000000000000000000000000000000..60cb5f6a64e6f5e86c5edda4eb8e4b1f83029739 GIT binary patch literal 973 zcmbV~TW`}a6vzMWEp3`@p}TM&w*p&{2tuelgzaSvnA8nKp%Ra7VzsGKdvcs1-uOyL zLkJ%D0DLIKaXM)df}#;AIkt1o?_B)<@$=hv09&}*KnZ0B6%SR^7#=A-3bI3;$k8z6 zu?VIr&Qp;EavV(5FnD_yb0eN|!~4-#*k8KcWvH2PlC>XDeDCal&_x{$2d;-EJO+Ql zk9d%BISO75Cn7S$f0D?=Y%`QMHU|wXV#$H;;T&2F56_;FatLYkhrZ#aFZ59o35KnC zrDrp*U~gYhAxiK579KXSf>j4=9?shy!Z}6#i^Z^>7h`^|RQz5PsVJ=(zY|>B(L1=v z&^n#c>s(4cOsR**8}pj@%LRs;1BS|uiV3jPOQbl+r$eFN%#f{~ig-HUI@eBY{^gkPe!iA!WJ(`uWnJ#jntK7)0>!1+}8 zT%m7`A}J78X}vb{!aA1U7eXgzK-l}uKdMe5A3$N&sQplb;8!1kqG5OnWS%Y!VdBF zm6B#J7D*x#++7TKKAZ5oTu e=ml)?EQi}@a4fLRS8!*#vWUAJT~^zk`S}Ig6Zbv< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$8.class b/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler$8.class new file mode 100644 index 0000000000000000000000000000000000000000..5ccb009422269bd86ed8c8434fdd697b6e42d2a7 GIT binary patch literal 6355 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 IBjzFeUlUV>V*mgE literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler.class b/target/classes/org/springblade/modules/nh/job/UpdateDataScheduler.class new file mode 100644 index 0000000000000000000000000000000000000000..6e24248f78ba0287a26435a47fe5c412301e8b30 GIT binary patch literal 4914 zcmbW5-*+3u7017mIF`KL7{x$>0(IqvP+MTumgU63jv;Y=8Jr(jNlN(HwKS2}k#^PH zmEDxKv<2EyXiLj)I6U#d3oo43rvaSVwXU=w*FXgMHX*da@M6=@J-)x?2C1Op_D+6K;Ci7hF5bfyS!X6OVX%1 zrFunrhP`5}I?KkDTFLa~DbqI#MBzv7gA*EdqgO`)NrB#3%eMSEfukdfcg~s_y{bV& ze*(IWy%-P}*$OE-)v99~b>FIZ#%0sHG4I&E>r@2pwdHz&9Iwa)+w)DkDEYC#=*Z%# zxn>#_(=HnYpXW9cxwBNaZF9LI$#xPcfxWasC0V&*)_9r;4DM`IavJubmuGXYj{Q89 zgj=`Sqa^MV7$7U2xh7j?4(`m%q=qzlllTeEpOE!nf8?4~lxkPK1b(_Ra$ds_lYb`g zK#Lp(Ou;_mI@MFkOac$?%)pd}Lu}yZ0>do>XC0@sE>F{z-aJnmyK+sMZmMBre{N;LRSx~5IR|LD%}M>UM0w+|D@B`~QYk12uN)}Za4MFMwQ_L_8ksis?y zE^nd0u})d!1-*=gh4!H{{Wyy01di!=3^SCE9enDL16a?r_J%` z;s#+s(HC5>vOK=C#hunL$9s2D;K1hI6$l;1A+t~IjD1YQJhRWz$`e~@Vn_|*Z9!nF z!@XK5mmQHRbB40O)4fWJ0niOBgNv^0%++7h?bXZs=m+EG%wV2awn22_GTl1Z&M{|-IDySx4 z>u^w`d{LoWxt?D&7M*fgx@Usv2=tYuAKVf+94(FW71Q%(Mgs>TBbBqR4iB8~6{jpP z*xpHCfBd;Zpl9AGk(AxFXxZ{Yy}B&j%Up03rf62Kny$s)!<#++3a@9r(?Z-P`6$uS zRL*^?Dz93eMa&bn?F45WLQX}H*IlzJ*B$qU;ROd7Iu#gZtGCfS-js;hQ*<4hO7_%v zW^z0;F_p>EFG-rVc}$>0o0!hzCo)Hy5Bnq4T|lR&JSrSH*j}dt!c-uxn%(LcxUV{lOwY6 zZO7Wyz#og=wuUs-MjeQQwpa<@8MJ~^cZ>3j#o}<^mG*ayN4bm&%tl=3mdK~o;XX`fKKct} z4|{H* z?@PL~3+wb(qZY`~s3rWGuJoWcZsIre?PdD()1BYa=XV}{Pt7Ya=(`%&$LPCn;hwGN zmkIrPck~|!{l^&efdd;CO<$7AI2 zsR()?9{qPh|04!{qJeovpN>I4N$7HS^gjvxb`1JV1Lqk1WDMFN^xNIh{~~k({|?vr z3u^mlopS_zD*NyTE@mIuKp{J}f$?m*X9K^;ruS^%xoo<3121LMi47F9>Es5=oBPpA zM35Y@2s|Iq!Ubb_U`gWVIesMwC4*&Yx4Or|)T6Fgn)awG7N=fy#qyL;S1eFTyhGQ+ zNkXOwmZI0)6ulRu==h$Z^L2`j#3?$|rl{k)w01(N*swBADmgfD3pf6QU$Ngp30UBF zhU~vb_jciZC0ZGKhN_LI<^qqns=det7G{}~L?zdZJl_aD=l#GR4V7OJ#sc$@0xvt=D?rfA8_Ts z58y{3#+#B4_52ejSd)PE@o)ta1*|ZjeA^Y|!zChGJGOFS7b?z<^C!bZKL(}c zQ2CIvpd$(+Tb-c8h5|V+V69DL2KYmd_Vm@X#wI>q_HAAFWV(RoSw5=a*^ zhJc6fA_F#bro1XN%}0M|j1BBu?tp+tsq5HcIU=c&p(QRZ$W+B(y$R~buE^-4fKM}j zU0RQPm7#xMjir*3r~la<0UM__x{}@~&5ZWu%Qf5Ir=9nCSp{6<)8l_Z#tYqtb;w}A x(IA5je%#=**(Kp7r*FX)U+>aA-j#XkHtclo9oR0PJr8%dU{-b)?xphkKLNBRasdDU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml b/target/classes/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml new file mode 100644 index 0000000..2ebedac --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/AlarmCodeMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/AlarmInfoMapper.class b/target/classes/org/springblade/modules/nh/mapper/AlarmInfoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..2fb951451fdae0bc79517abe68c041ca6bdff9ca GIT binary patch literal 1615 zcmcgsO>Yx15FLl6Atkgx3zTnKS}9zxI3OXVR4Noiq?A?!g|o9eq>jAn#rCGnfj`4P z;L3p?z>h-Adedx`mZrUMuoCagJij*{zu$j;{sMqkuwH=@gXh}xxJ`_VdtD_$@A!QMW*A)Si-F)u#67;-?PK67Fw1}kI^tcSBN^(HN5igg z(k3dk6fgvxH6Q3gMQ6A1 zwB_liPAcA#)-_1b4!V6E?g=9zbZ9JtnZ%Q+iX;6Ds%_beg-Z>Q{QjRwZd_F5CdpdB z!$g~+zYMmg(GGMRN+)$}`Df#A?6iK>zNTn~qXY&&E{-}~55`WqVR3VB{l2kzg3p;y zco?8M29j+FgTd;@lmH{_NGrPv$5+1<$J){4QU@5U`>u;b1pCOPA80O$1n#Q{tUM4Z zrKu?40fU;&>-|_W*s169=ATR3Wp9lnoMUEp2WSQo584@AuuTKs(R5Z#r_O)UaWiBv z*F)C~-{=sD@7k$nof!9u9okRBgb2SpN5RHP{#gU(GnuK~QfeghMg3f|-s=dDq|s|6 zL8QP#e4xiSp`oRHw+g=*HIP9if0)#PZ^!uMcGQ?=Ad^;f<_LKY`R6p!4YYM?0(>VG zv0w5^3cq}oQ73a`aEVr#ymyuiv;vo*1XbEqOE5=2S7_B}mEbCc=V5`;vv8TbX&kx^ zH?sd3*dnbZ3pXkG7Tg|TQSve+OeQT;(jB;4B;6Y$-lxz5cnF!PKZ3_a%E~D?D-_N- LuEG + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/DeviceMapper.class b/target/classes/org/springblade/modules/nh/mapper/DeviceMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..af5c6c1c724317a47d6ea21a34fb19cc164a6e37 GIT binary patch literal 1351 zcmcgsU2fAr5S}$jL)rihzl8#o5J>Gy_W*%PjS5mESE-0pp4axs*~s>~yX(+!7H+@| zc;EmW3Nc>0ZB(K}dEsGY@6I=$zWM$A=jSf~_yBt?@E9B_9dnawnZ-dOBIK!xiUbYM z#yk~yj+&p~REBu!E-h#<*q(@~;EBj$J`5%p+7@gu;Gs%+AXF+NRq%8c2rEsV6ow3% zcq_8LFf|qN7);2!;y)8HGD!FR6*Oo?B&^_r(xK-sk)NxH;!{=YKOgoEd?&oHGU2{7 zwnq|9(T-JgCbUS=qBaZ~xl^(cxv&|uM>5WYEi}pd{y*itUn{sHil&2?xzcq)8Jw(A z8>%dlR;tYKFWS{-QI0wn1?pK1VDMvo*42?$RNS%LLX}pwzq1|ZjbBI+`Ca*Ttfz%BUR`SKgonr*PY)chvhud>R@n(PLtMBgVsw6 z?t%wxy0tynq|X+e4jm8fk@-G6Ab4qRQueM*U3ggjmt>FVJT~xzz)#^>%|+lH0^A1e Z5a>C)xB=}h0PT{w67UjUk==vWe*uuvqLBaq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/DeviceMapper.xml b/target/classes/org/springblade/modules/nh/mapper/DeviceMapper.xml new file mode 100644 index 0000000..e53526b --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/DeviceMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/DeviceMsgMapper.class b/target/classes/org/springblade/modules/nh/mapper/DeviceMsgMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e203c538db05f7baf57008f172572e9f99d6598e GIT binary patch literal 348 zcmb7=J5B>Z42J&+k0qg@;2c<~7bp-=ZA6h1%1djB`J3a6wsm+`loC;h` zawo}1r|6}hc*qUT1!(Y=dg-kmeIdK=W!5Q}lIkK>^nv#v6CY3l%dJ*U<`P-ptviOc z-9Lf1-5)x^PoCIio%g>^PjhbXTY=TqmpJgVHuae6BkP-=+p40#Nv*T`L12Mq?iX0j GbM+0^es0SE literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.class b/target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..5592bcf0388b3c644472ef6544d684f55116ca2b GIT binary patch literal 1237 zcmc&!O>fjN5FIaFmMsNJ`6?1zkdWvF-w9L#0aB%{TCq|&Pm*cYE5{DDv+e!?ei0`Q zT)6S05EBO##6}yzg@cuknR%W!GjG0q|NI32Ucmhk38Z*TnJ}dg*z+(NMzA4ZdyWf~8ciXO(m7>e1eXQK%$71mTdLgFvRtMZ zl&^H{+2Ht&7Wfr@(wC zIa*#2K!G;Ue zHILAM&IEjHr}8(MC4GAMQ(|kmMM?D6OTgyT)-I#BN^@!tSJm3e`DvpeUIPLy@fq^E z8SttY!4(+5n7_sY*yP7mK3k0uuCe(#++g>{JY>yXm~O&O^WK2n;&a=>9S&&2?!vto GzWW2jqMX72 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml b/target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml new file mode 100644 index 0000000..c80404e --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/InefficientSettingMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/InverterDataMapper.class b/target/classes/org/springblade/modules/nh/mapper/InverterDataMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..834859d3429b468be392f79534f042795c1c61fa GIT binary patch literal 1881 zcmcgt-BJ@V6h0|nDHH@05X2v_Xt^;r-c^~Asmw4_2F5a|m+5Y%q_ewOvq`0QzJ_n$ z8#v>I58y*No@BRlE7%TPaFK4BeED+D`OZ1{{paT|0C)q{A`}R`lB!LUSc$0J3YgDn zD18&~ghppHWO2+DJ&3woX|C!_vqQI3gh>Jm9oA(uU{RYMwL09>MYuzNdNQOfCPU#% zL&IK+X_3T%NpM3UdrG;-5}r~KSV?$*r}MWQvooe&eGsQxVUMB=5V`ooUl?Vci~h}jHeB`grTX;IdQ8B-uI&Teo7(10Ee)c}gly%CxRw&lls*w5hO5XUKb?KM zh0AXmsjc@W(rE9gNJJ~(7a8$3iloN0mJ#O0wv&Oy%sb;$xNN6v0HE#^hJC8b0)wuv zn;27;+gjRJGVEu46A1}SRCi7ZY-SMN6&|-6{4#Pm#hjeCj*PY#wC2Dku$Y+en0b4> z+*+lY6R06kuuLAOSX~-)4lT3-^=X#)c`VgXO%kY&)5?>PFI-&c2jvRAe^b7|$}Ryj z0D&LZXB{snN8xmDsM_DTrP}T#lSZ=fbB_nZJaz?X2o(4i0z3cLbFYWm^aZx!Ea!#j zR|*O~D~+x@wJqvvPOY@D*2eY0f1Bz^ms~3x6(9mLO=*^4buEWFZ;wb_fNMM=D*1U{o0}nld$JzA=dSU@M3h?w2 ZcoV@}@NB?Xxq`8R+bO{|Ja + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE nh_inverter_data a + INNER JOIN nh_monitor_inverter_stat b ON a.out_device_id = b.out_inverter_id + SET a.etd = b.etd, + a.etm = b.etm, + a.ety = b.ety, + a.eto = b.eto, + a.real_power = b.real_power, + a.power = b.power, + a.power_factor = b.power_factor, + a.apparent_power = b.apparent_power, + a.apparent_power_str = b.apparent_power_str, + a.reactive_power = b.reactive_power, + a.reactive_power_str = b.reactive_power_str, + a.temperature = b.temperature, + a.fac = b.fac, + a.pac = b.pac, + a.pv_modules = b.pv_modules, + a.uvw_modules = b.ac_modules, + a.pw_hour = b.pw_hour, + a.collector_sn = b.collector_sn, + a.sync_time = NOW() + + + + UPDATE + nh_device d + LEFT JOIN nh_monitor_inverter_stat i on i.sn = d.sn + SET + d.`status` = i.state + WHERE + i.state is not NULL AND i.state!=-1 + + + + UPDATE nh_device d + LEFT JOIN nh_power_station s on s.id = d.station_id + SET + d.out_station_id = s.out_station_id + WHERE + s.out_station_id is not NULL + AND d.type=2 + + + + UPDATE nh_inverter_data a + INNER JOIN nh_monitor_inverter_stat b ON a.out_device_id = b.out_inverter_id + SET a.etd = b.etd, + a.etm = b.etm, + a.ety = b.ety, + a.eto = b.eto, + a.real_power = b.real_power, + a.power = b.power, + a.power_factor = b.power_factor, + a.apparent_power = b.apparent_power, + a.apparent_power_str = b.apparent_power_str, + a.reactive_power = b.reactive_power, + a.reactive_power_str = b.reactive_power_str, + a.temperature = b.temperature, + a.fac = b.fac, + a.pac = b.pac, + a.pv_modules = b.pv_modules, + a.uvw_modules = b.ac_modules, + a.pw_hour = b.pw_hour, + a.collector_sn = b.collector_sn, + a.sync_time = NOW() + WHERE + a.out_device_id = #{outDeviceId} + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.class b/target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0a9abe2d51cc72d564a506928574deb2022c9d42 GIT binary patch literal 1408 zcmcgs&2AGh5FT$ELfY_CO3Ob7B&2ew4@g`VDuD`8q*SR$DQ9PQNE~_Xt?doXiMQbm zxNzVBcqqiI7bRO-B`OCF)_P~gpXVEYGe3WQ{{aB6;BgZo2G5Nha+h1FhXW;2(PD?`9ZKWVU@wnv6u+1gdXzVV2p`x!W9NQF&Q5SlgZQ+Jev-L zmo8U@BZnpM3h|9_SV1w^a;WHZ?UF+=Ls?g0_DO+u`X_+Fx67k0=Y-lzKdryv+hB?J&SkU^ z3{MkOXJASLp)h#zz97g9kEN3Xg){KQq|;Bz0QTc&RrAFLo*khA!&+vI*n!mJ4*+Hihq38Ff;UqoX|@QRWQPKVdGc zSZJTrpXs0dqh2W4ms-Bn9Eg|o?cXzC`P~bip21q*6gI(kQW5*@T8*m-vs*SfO(q5_ zv>G(}R%m)P;VMMXqQ6!IYxG&C)ut7}HF95v8x&r;8#EMVt_`?V?n|&uTDKi+QSdh0 XnPc6hfP1q8_sLPAK7fa0jo{I5Tgb|A literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.xml b/target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.xml new file mode 100644 index 0000000..858d542 --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/InverterUapMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.class b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryDailyStatMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e13365201f2d249d1347db4cca7ade59d37d8157 GIT binary patch literal 1665 zcmc&!!EO^V5FKw5l9ZOxLZNMdR!B(Y0RDiqkw5_vDN!pT%GueqHjZ}f#p_KQi67v^ z|Mb8eJ_<4RMop9~35WxSQJkHb=Qp02_v7dFHvl+=qY8KgPL&R6nrI=ze#8P!V-;i( zPpKTxm?a6wFa`5x6^KBSs@8LweR9a^FNhl9U8C6v0t;4=THO=QyyV<;dSRM*S!u$cJ z!YvGC(*WwS5Uf06QHB%c@k;_bYQ*(O@XL29({?k3PvFCGKD}-!J4%L)`Dvc<_l({C zNrcOoe3@MVTvEKbmgZ#J0f9}G8F!zO?Eu+Vt*^xl5~~`GQlf3t*HuhT7MU~)xGYA^ zu`9rt$;pMuwc^X-=T)jQuT@Lu!3oPBjTwRU9yZPAZ$*T!c2uZ*xjMeIVuY$nU=6K| z0=|aITY)NgP{V&U57zPLHrfW72b<`=16vqw-DMQ78`n1M*s}$@hju@OT?~Ez4=2If qCD_A&eY69#x(!D2;E_vwQJN<1O^^H2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.class b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryMonthStatMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c73ba08d1cf399476ebe3192ca32b461a7ab5dfe GIT binary patch literal 2697 zcmc&$O-~a+7=EX;mLe!0B3~+qpn$@hj3xyV4VW}3f!GASPP>zK$?i^_oh>x+;MJ4A z!N0-5yZ$KSJG0yF(k>MA;9=6;&ig*|Jnz@euixiC0AL4b9x?=WgsfA)DQ&M_b(qDe zE3ClbKJ^;ZWz8m+^gwvF5^~>DvW?HGQBh1Cn7uq?35=hx7NZXH>h!RB!fPrIw+PUh zaA}nZ*S17J-FB5J+iyC7j~fz?39;WYpNCKc7JcrZcj|FRtj-C1UMmkk<%(HMFu7u@hHSSyjsJ9T0!1DV5!CiiA`*zjg-4c4^c>=phM~1+v z$r5X_T7y&DGz?|20X1F-mTNI5z>3Q7Qvy?>#bwLpr`^`HYXpwh!tym;Sr%Ts*jvtt z{fg4OpZ>^cqfQu=A(i(ig_8)jt4-(x#THc=d!O*5GrdK_bO8mlW9Fi=FfXS0~Tt-1oSww+XED zCZUrsQ{;Ohz*a;xuY1i>*+*fx=vu&IJEwJG+gmZ_UAIND2hDpbWDdJXDgr~?!|wTb zEpA~_Z+OtxL@7kwFzEBz`_aB~Fq$vywdO5>k%|apjlZ)U93D%lSAg)Eu%*ivuNN2} zTsgeSSql$h3lRV(`bAj zW+LN>EX<<89Ikm>3)&c01|As4&1~#A8$Zs)kMr^40wO7?va7v7s)jn9&pCzpP^tNl9m + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.class b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..423adadcf1b83fc3de697f97d4c081cec227e797 GIT binary patch literal 2231 zcmc&#TT|0O6h4X63WA~_AmELQfI99gPLUaz>P*KnWh{e_&Nf-gGD$Y>Zh*Y|gM9Wu z-~CaJCrL@#q%_Kl4?9hFzw_<+&SlT9-`{@#z-xF>1=E0SA-hERl6&2bLv2P}VFwOV z#5*P~^?fGEzVNsf@~x+3*w$3<$JJmauS;5;6K3fuTsMGN!X+IlTyBei zxM7ECu6!p@cp&kHgm#ZAmQWe6sF;J+`I`=Cml<%j*(@Psn%Y!T(ufRd%@LA(aU#g6 zC}=ur)wY_km_T!fG`Z3>l(*0Hv9J%Qq%PA;Dg(y+*r#bX7Zd}=+q~;h9Y}Qf+y8NS z=ZeyIQR^H#_k}E^z<_$07E5?G*Iamte3Wr+hsAR8OTc8<0~ql0-&xDmF;8B3HDFR0gbk2$0uhM_loa!_p#o<9PzRB#MUt>v2Y?PpxA{c-#nt zW&jdfAz9^=Isq1r$<7RzSAkon;ej|~axZQd zp*jqGET@aak1`nQwE?pOckhJ_&t~UX&^^)pjEx~aRIqF!{HwpgU*f{ozA8<|ORa1Y zjw?88(xW?YH~NmqW^m0axQF05n9slqDfoT?ynx_ESjxc5DfmGF zyo}(7@MswL@lfy+SjoVvDf3zZyo${0@U#a;{SkO0HQ0;|=FLpxYWBH-0ZPKO1<%mL Hgy(+%)={bg literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml new file mode 100644 index 0000000..d5d34d2 --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryStatMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.class b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c38cf113d2239c064f68f5671959f6feb9ad6207 GIT binary patch literal 1929 zcmc&#-A)rh6h2dmr3fmB3Pq__P4GhJ0k)Dzz}Tb&ViSxBH`CooJI(ISIx|~nd;y=r z=P+J)YvMy0&&<}Aup5fe#EX+o_ni68cYf!`&#&JA;3Yh%K#4$8svgye5^=8^vVhY_ z25HDOjr%lWNx~I9kg+gQ?Z-xq-gBlphM5DWsz8~*tpOV{8nU=Y54!{In+jYbKz$j} zE|ZZ6WJ;q^ml>gxFx99~=p}>RWtwMD1hzB}@ph57Bi7>tK5n;XfO5kEW*BYR3tsz@ z&=NV2bSMjBJ3jQDwOvrD5g~00Z9EL~fSbMyj+kN*H(Y4~<;3w?iwY7%pxP0=n3+@| z^)LUAdh;*Ru!C{e_*o)VVOa?5&5FyHaUhJ4v8L~ot9emwmp-Iijm8E9zW+Ju>?nC` zgc%hU96K9T-cF9%rKtSO=V39P)gT;!#@iIJBYrHj=!SgKJg?$d;uP7u5P0e;#1iKB zITdbDD4QBkcMHMhhb&C7nM(YWz^WW_H5B~x_e2Vx!2WjDw{95QGVXa7`?z(^pkwUR z=YmF0Rh^M*1q7C5YV5=#*H&PgeuOK4z=Bb@EtIwRJj-h{?{vqz0+UPA?2VX0AHdcad3kPvTA!dkbf^s**O*Q*R2>;)JRU*A@p=3UfF56S literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml new file mode 100644 index 0000000..c370d2c --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/MonitorEntryYearStatMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.class b/target/classes/org/springblade/modules/nh/mapper/MonitorInverterDailyStatMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a77b732161f7503cdd9c77daf7fbc3b6ec854ce5 GIT binary patch literal 839 zcmc&zOH0E*5T1?InEI+W&w9~|`vamPqCz31g@X4ae4cG6ECLo7kPp`n((D(Am0eiAw4E5A#_2`YfUAR4 zJd-}81a~CD+!hmbs0C5t8T6`VwiDe!7K3CeOM{_y1mXREAzb~Dk{jaSrKRPY=IJI` ze(Jq>3}J!{t4?(unsmAzr$4o|n~6uMh~Bd<1GPT8TnkG6WUxiCO}~MWhhx}<2ogFa W5%g) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.class b/target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f38ecf10509428933c9ff5ae42bfe21cea153850 GIT binary patch literal 2358 zcmc&#OH&g;5bjxtk(YvqfErW;B|eyo2dyAgQec^?P*BFg@;KQY!%(|B>&|Ro{R3Y7 zJsv!G^Wu-P?3sitCMyBTDi2e6bobZ&^?W`3^VhfU0Pq4-KPbM@-8%zro`H4b9j7i$a>rC-B6oHcBK1Syx+hI*k;L~z#04CSWW17*b38>Ug zAQs7eNn0|H+3t3wT(guCEqq!NN>`BN7T0^y+hH*aIQBph7>aCJQ$c@s2n^RnGh{l6 zvGA||t?yrH!sE2#K;XyOQ3rG6 zp%yyLyX#GBsjT%?b|NT0bh)1kXAFo&VBt-I&;j2SN;G`lmCegAlsG-6D+HG8?XZZs zdz=b8Ae3be)J7p#p~d_Jb>#2^0+Sy^=&h$mvsm>IXkocmusI4I6`k?5AyIG0Y8%3i zab26&;H+)2Gv#SXRT{c9D-h?~_GF^T_0hlUY29?-X>S#k{wi{)I4UGiRH=HKM%b4x zy(qa{1|y$%>6YColtkcyGSn^~V{5rCcB(wy;T&$yPT`izkHGYwDUC=xeuz5Dfvo1F zE}*iE|MS!M|D}d0W#sLu*V2feA8g=zOklHvn7ydw)4WUuWE*!*3xV)iCNM4&ZMF~2 zk5%#eUfkTO&X?=+F~PL=T4m7w>D_7nNKhknnZz!CC43b7e9nGsZ_pL9v~csH0`U}Z z#TRiq7vT~(FpR&39T>rnQ9NUK92iIQWw?Uw#$3Q9*ELPTRrB3|P2stwU>cpT!%XHp z+jXAnbDl-#8*sDZjEQfdbEz9JZv$qW4E=WYwS=*E;BKdAtSXCJK+`=~%wUaasSA6* h54M!SE@A8gSkCG%cjF%R)nCT!?H)aX$LQz4li$CR+p_=w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml b/target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml new file mode 100644 index 0000000..b114248 --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/MonitorInverterStatMapper.xml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.class b/target/classes/org/springblade/modules/nh/mapper/PowerStationInefficientMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0f78d5b3d8b4f1b4b89bfe7e15788695fc50c4c2 GIT binary patch literal 1292 zcmc&!%Wl*#6ullg3{%ScQCP5`5)$3u4@g@C0;Eb)b;L+zeUsc~JaX({JJZgFAK;Hz z^aGIiCB%(`3W8<^#DayDM925U=lY!c`Rk`M0N90x1Lz5OZe1aL<&-H>jXBBE=Cvj- z%~Y0HRpjK@o{*aa49c2)L&wJ|Q)I$HLG{keMxIindg_ zt!24LnZZ}O_6#`wQOo`kJ+)K<9(&SU-SNXQ79`-q)6oiE3YcR+x!)8dqa^|>JF{|b zyA&QBCflPZtqw}dk@6v7u?G~UHXozIk^(s|V6BQr+pI3`lz`zx6$V4?SisqT6|nPf z{n+CMJfhRex~^Li@M@L7%$i&^Zu0V-i!QjR&l~S+a*OX91bq2>*40|s#wskj?*DZ} zlfB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.class b/target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..40c11dce57eed9e708c15db53e2b0d173f240a89 GIT binary patch literal 3349 zcmc&$+j84P82;DIffOgCNvK=SEp2fqbUBo8a2lxFz+@&FX9yE!xLaF`ql}~#E6IuP zcp0963ud_B0eC2eZ&!*fTf(C4Onb3$cJ-hC@7w+V{^!rXi0A=5T%;PK`%3qD6lyo< zcRk@q?kgwpWW<9L?u#&#njfk&sgGh2yDB)aM~gJaX!TSK1ouSH=bi4U?8S?;z=-#h z&$~kTuA>s}54%u{LNAH%LBo1#vMnN+nqqV{k{-14UJgZHG76jf6~<&N91#n?XB1ld zGg1lFsp3woc$UZGA3CkgeVaiNyB^5!siy+RHCIu@f7JFiDI;?ImqhAe zCcx;AC%0Oi*ME0xrx4OiYx2A&y@?X-niE^3nml8)92tK0B7?XDBt3sVgs=d=@S0sB zs{mjpxxoIOgJ{;8B{%7v!r^uijRpnleXWx4P%HCnB1Zx&5oufDIE8>|Y}@USFrz5KtB+j_7r)G|D&d z`AvFj9MRjOPwx~Wx&h&v<>9|u5H`8qqT7fi^>hdO_j3Ct_M7zn*z?_y=MM_T?n3xO zx@WWD^ih`0l{s7UkF$(E85#H#;`iyZvF)wVr_T$vw;=oleVGZPk6%H!HB#8N3XR&h UF%QQ7wh&30-VS{Yl^T8XFNHz%zyJUM literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.xml b/target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.xml new file mode 100644 index 0000000..5312269 --- /dev/null +++ b/target/classes/org/springblade/modules/nh/mapper/PowerStationMapper.xml @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and s.status = #{e.status} + + + and s.sn = #{e.sn} + + + and s.apply_status = #{e.applyStatus} + + + and s.brand = #{e.brand} + + + and ((s.last_status = 3 and s.status=1 and s.during_seconds is not null and s.during_seconds > #{e.offlineDuring}*3600) + or ( s.status=3 and s.last_status_start is not null and s.last_status_start < DATE_SUB(NOW(), INTERVAL #{e.offlineDuring} HOUR))) + + + and ((s.last_status = 2 and s.status=1 and s.during_seconds is not null and s.during_seconds > #{e.errorDuring}*3600) + or (s.status=2 and s.last_status_start is not null and s.last_status_start < DATE_SUB(NOW(), INTERVAL #{e.errorDuring} HOUR))) + + + and s.om_provider_name = #{e.omProviderName} + + + + and s.agent_name like CONCAT('%', #{e.agentName}, '%') + + + and s.capital_name in + + #{item} + + + + and s.order_number like CONCAT('%', #{e.orderNumber}, '%') + + + and s.station_code = #{e.stationCode} + + + and s.source = #{e.source} + + + and s.owner_name like CONCAT('%', #{e.ownerName}, '%') + + + and s.address like CONCAT('%', #{e.address}, '%') + + + and s.apply_no like CONCAT('%', #{e.applyNo}, '%') + + + and s.om_provider_id = #{e.omProviderId} + + + and s.province in + + #{item} + + + + and s.city in + + #{item} + + + + and s.district in + + #{item} + + + + + and s.id in + + #{item} + + + + + and s.om_provider_id in + + #{item} + + + + + + + + + + + + + + + + + + + + + + UPDATE + nh_power_station a + LEFT JOIN nh_device b on b.station_id=a.id + SET + a.brand = b.brand + WHERE + a.brand is NULL + + + + + + UPDATE nh_power_station + SET last_status=`status`, + `status` = #{status}, + last_status_start = last_status_end, + last_status_end = SYSDATE(), + during_seconds=TIMESTAMPDIFF(SECOND, last_status_start, last_status_end) + WHERE + `status`!= #{status} + and out_station_id IN + + #{item} + + + + + + diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/AlarmCodeDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..120e93764bcec6d701ea20150910d49213ae8e20 GIT binary patch literal 1022 zcmb7CO>fgc5PcilagwHO8k+J^J_;0?55R~65=ucrZIOx+ijs*19?57*^(( z{o|u*%|?OY_P^){O8(-ez5?G=_oN>x?yD~M zB4N><^p7!^N%LyU^~IBD(i6ck?|DR5Zpl9JaAKo8Et+cNh75OF|2uP&tSZ@2`Vtt{ ztF?t$lPV#Y)Uv-Vfx(h$Bm$bEqj>*Cn@>|arM6HbIe5wgJ`svWrX2+$j66kTw2VSW zMnPXZa`ixKi+6WRtKc%-L`Lrc=dgj(6wgqW!C87Zq>3z^n^bWqGKyCH1nff$IZvnl z8`!}GI*SPa7jcO)hAkpbnr~9nIHPR8r;x#)Ta9@u-8G@K?i-2*#YUt44wgAKYFwhH7Hknqa`1P&s%TV1&hG2X|*p^iS~* z@WeqcHt}He>fdCHZ+16GqS44<-oD50Cj0PdllM+#{RMgb-=40ohIw1cVd zc*CB{2g07nLFkIW_D1$pj-@R;<*3*81DE@gruSSPMma-f&+!~}pCMhTcC*MbtjsY7 z$48Z_g*?Npf5{J&{H0C2JaQ-$u#6RkY@d6FFGKD!lq;<s6NxP z6bo3>;Ed47K$lJxu#PhEM?4tq%YlfRY%&xB;XB;z3O{h9_q2Jyz#cIy?@KRG+*4id zhQg#h=^tY-V)AOs@x|z1Pr%Z|2uPoT2->6^d&H? zSE>uM##KTvscnB-0)r{lNcc2GNAdoPHlHT#6x%|LZ(j*?@-4nTqWKT3@iH` zD;9D&T%&@?2v>xm-)hp*U1I5#nYtHkwm460wh;s7W+qu^vqW)+6zK_&cf6lQqG-`_ XOM9Dt)3g#zlN@$YAtFOH>Y?@%I5oUU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/DeviceDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/DeviceDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..970c00f924f9ce87f8b6699da31c9f01d561f1e4 GIT binary patch literal 4037 zcmb_fZEqY`6@IS0yED5Uzr?AXY#K~Wx5Td*XhKVO<3M63jf?FVJ9TNoOUJu|cjDcd z?ar)2cxkCbYtc$=5qxMH1VTuJ4%ac%*1G_v@WTu`(5WDyA&Hd05vRVUyS2JyudP;$lBrjnQlnzJx?R?5 z&P7KzZO`&9>oewtRWwie8-dg@%eK7Z0-YnHD`}`mE68Z*f+jHeNft|<6PlYjca|n< zMp0mJ?xL|_=vBij>nE+X8MA0rjY>h0S(n`V zGz|E-T9dO+!+vB1x{6MvVirB8zHAHh2cN1K_L{!z$;b;Cs^72SAU?&|)=ZDz5!gR6 z8t;@ue_F!>60H(FBmI)h&uDm1GBq-nnyyK~LmEEYMEm|q=7@$-j0yA*JsoxMzUGIc zF7~s06B;IQSYTh(SU0B~yJ&b%Szeix>lwD^3OqLw@AChP8}%s6PLw6X`kaQ(<6&l| zXxOKoZ5S1SfzT@-dUo|9OHmj-FFWz5hA&8P%9KbqgGX^x!50Pk{C0>aNOWF90mo>% zY`BcNWcm#_E4A`eam~7AR94KoYdQ9lvoiwX34!irdRB}|!%Q-b@}CgME;ZQBRddC1 zt<{Qo!nPgH@Tkf>PRv=3?p`w1*37!TaYT0vS2wl+detmhhQ3@Zn^mL01}m9vv2N9* zHp~CvyFcC9ytVc6FYmm%$$qfO!FyH{S?dh@r-3j&EC;NCgQHWwPzRkME1pxd&aog%|F7(DkO zGvSpj#-Y#sPp6Tgq};Imv;U!$Mpu~XdDAO9rA4D|R85ZwXHBT*9|Xovveo{9#BX}G zIwftb-qso6VU!0xo>z^iY!V3q>jfV%}x@C!UabV}eW{JhRp za7~WA1Mvsnzd6387`&zC`IhDhzyi*474ov=yIuKhD8Hw$1KY|+VwHJ!#wd61RDL8@ znRjfAa^FtnW3kG-hhvoY?o>V*tIYd4MtN|j@|jrWMSPW+kqOIl^;=?W{05ZxbPooI zFx|2gL9;B$B5)+3kDe^Yo9w<CVPF8=i*KF-K)u*=9A-d=oZF-odu7ckOQp~ z!e2Illj3h&yJ_+L@v+|^nYcFoXQ*!>*?DdJJ*e{&w5$8uvGI3sB%t`|g$cg$iOIj9 zE1S5DJy)SkW)nB@NE0!XPZBbePi2!5le&%mtLV-qv#AJZIIj>ioL94o1gRlN$*K`h zE}teSm(OI=5|jx+>1-wfI+X7s=ulqEc1e&Hf=D$%iE9k9GjjUJ{FCsbAox}UP8`MW@C{N4HqGn!CaENA{W88qDuoTK;~7$%)-Yj^QgMY7 zbCpyYzv5^ulFHycj@=TeF5JfbM4spP`Zj$#iM@*YPxL5I(;s0_!K3`IijS~AAk&{r zBJ7%{*)<9IQ#WkH#~6@2)Ja)fnTO~U4Dt}1>E;NP!}J0@6HSX3{66F_T(USO#2uPY zY3S9y!ZFU}$EMgP2Nn+Y70PT0wQu|?l*yZzdPeex@(C%(CPIlS8zm48=aasOJ>n~= z*<@3c%cp!%swHCQ1X_pkiZ5c*gj$L(Iv8K#rNGm$#GQBrYbY}g6)(XeCHwycTx7VN z{8OmRGRhL4V0%(#hFl`3c(ujhx^AgvAyq*i~%H@ zfF>r<&I)0v2y7d81JdWQlH9X5zW!ma|zJu>_mm&2% J`~c4*`)>*RG9~~3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/InefficientSettingDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..085f6091a582e7a5cda2657d928ede2888622292 GIT binary patch literal 1067 zcmbVKO-~b16g{t<>9nOlMLrb#Kt<_?I%`tY1z>_HVp3$`?zMf;!C@ZGyqf4w@dvnK zp&LnD7~T4tjPbnAgpfcqv5R+m@0@$ix%a)FzrTJ1@CeN^a>#pdDsWK{c%tKdKRJqn zXuliEzVZ)se;BI7j|TpcKG433Okm#mn~~bv3wi<5jxvVujnM~z!fFr&=CMG&R^Kh6 zC@^;(yuPztt9vL5to%!`Z}bIfBq*bVN(JMX5GeL!wDD#rLxGuE`#`>xekh}Tf4h62 zdZtx>Wyh>maLIxT$|4h6x?I6DX4pTF$zVPce{LHBt~LV|bDWNmz1LgvDDzd_Qf8q0FJvqamEr7MR;-d? zXh_DblskGD_tewCPBwqxwLY|RxW&84+09@cvzTMN!YqfYd}WkJf#(7%KBHiC8z&H- zN04hg?Pp*a*LhY_0B+zWGl4~tr_B!-EiOOhePYPr;@13WD{r4DtNWfY&)94>KEid5 zn?F$c05^Z!{EpJr{l*uJjnYQ*1e2qG&aqWGBT*ZKq?$Ff?$6li29PYAj z431a)g$WO(67I3!3gW78?CZ@et+30k%(Y&u*x7kfvDp-GD&|tcie-#TWaL|*cDkQd b#^`amQ>zPq=VO literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/InverterDataDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/InverterDataDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..652354d6faabe2f96e9223f173fa6ef203d78e6f GIT binary patch literal 1037 zcmbVK%Wl&^6g`vJagwHO8j|uTj{=3}0eFE}R4HtlA_b)_Qc4!=Cdnvva6G}DRDw_8 z16XAN8!E9tu;rT&;*M=q;USRlVy@@<+;h&o*I&PX`~=`38hNCUwqO)sBEzsFgOMFh z1J@t*Jw6onL=I=32yNf7r*bT9;VW0YvfKWN2$Tp~T=D%V#gN%`eOEnVNLOpUEV2x1 zi?G)5QMG0v&v5@=B10vAQlQd2awrtAj1`9LfcyI|XWV0`R6ApS!flWHBm1a776a9+ zJ=aYY3s}?OjL^tXr_L2nMuqAf9y)t+C?czEhGHlJmwP=Cgs$|TwOb7A3B&T9^h3pc z)#Khwm^3i`Fa{$oUhTNPIGj!TA~@!KkLXGrIUpWRY;;eOhH~7H;X&s=+HR6tCA&&5 zgrQumEwmeF3BjaR{%sBnrc{mysFAMXgBJ&Unm8&R2<6D(Qy%b%pe>TSOd!IUr-+Q^ zk?+b`Fc6Pj-BbCOCEn9QxK8^>>1p5+)^VQV1-hkhk^UnRMuyG}%GeYcMYDbi_CA7K zrc-|gwsD2dLJYuFT%#MqCXvU*cPVOIx@5hhkiwr!(`Ti$aYAX`*A&wf8;$x~n8v*E z1-Umc)APn>6~w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/InverterUapDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/InverterUapDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..8c8025999a3361b57b2ead1ab59f4205619a27ce GIT binary patch literal 2138 zcmb7FOK%%h7(F+!GZV*Y+*e9U`k+lAwv!IDfi`thX!D>haT=O5NU-6?zKSQYXUxnv zRd(!J(*s!CUE=%U6v%auMG9K_bQUk+3{BUi&**9@s>D07XuFnwPi|}|&)U9dxze{}N5E>T znk}uBYF#yDNnoI+{HkZSw6;M1Zy!JT_0z9@|LhZiR21gWqV1@qc5_{MtCG%i?%XPa zl?<8t_%IdJZF-+t{QsrFCViQF%Ie2$CBll3varP23G=E-Kxk|3^=`fr(Bt*^)hR~Q+~ShU*4?;K^2m%pdB*d|xXZj}=6A?7G?(xte%(^C70e~^%W_9hZX zv58sPXspgUL&+Z0lbRWxMOi4$FW=aA&hT$*@KRr3nsKQjAoLhnx;`rbXtSau_Ut;#S-!SEX6w6(_t*J#p#e|wtHIAsr#HJQk>7^ zN>^Dor)D(YOQX3`ofMe4;(ZvCyEyyd%;^5m3z2pVy_Ya&aE-Q2R`Hu$^Fj&>7t)LCA+{TsPdSl4|uGQTBIO;jAna8JcapraRC8v^2) z!1%h35+ftCC&Qs~IZOKq0Vgept@S_s zuh6#99b+#|V7gX6*LS*0gwWQ)ZvzogCZr~;}fkl$1#Sa)QEZZH#AAbD1NpV8uqliml00?scjo|f_r5M_1WG8P%z?bds^ z&T;!2D(~PHkK12S>E3I7!q_NnwNEfH`g4x0(iw@y$lXFllS_~gw{V-TrrGu)9T#wi zbz^Y6@(*0_P^sW9H(Wtn9gcm&xuu7!vLkb?7b|wQpG<5f1DuMvl(1qs<02XP9H^bm dXE|r|INZsVxxaCGIj2j7B{Wzl&>VSa{Q~TA)-(VB literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/MonitorEntryStatDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..3a95726399a21124c50dc468ba350a331d2a2589 GIT binary patch literal 10046 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/MonitorInverterStatDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..a3775e307d42af79fecbb717e05c1ad0cc1438d3 GIT binary patch literal 1072 zcmbVKT~8B16g|`KcH2^0+?W0F#&n-ZQ4%g;48d(Zwk~C6$dihRdEvN=;h|RfOsY_ zxu&DU$jI!k0cxS`JrQmK_al)`Ty!y zXxiv)V}~U$(`cTlIy)soXlvk)b_lrI3{}i}IJ^Gqt~|_*)w{|J_27k!<$>a8X|fcn zWE2{bu`ShYJ&OD4X<$oR7(dzjRu4Bgor3KRE@KWC8Rxkx;1Zu2^-pwOJw}TwPJ1623K*YSJWb{NiL$!y7>kVUcIyLN z=eYeHmG^Lq$L(*Zbnmu4VatRXRCT`KyEX!V^;{t9o zZvu{2{)uxQDiz$}fh&ls!?Eu-xAcHnwq>sMV#UtZlZnk`fKxG-5>_l{Tp}YM1GTgM ctmKRyn>)R_@Hb8`=X9yCj0O`0nyH7@Z%;$gJpcdz literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/PowerStationDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/PowerStationDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..c162e0503cdda2d9fdff586e3b76702ff087a4c4 GIT binary patch literal 1995 zcmbVMZBrXn6n<{9VV5+#6oE>mFSgW@1czds zzc~H?`-KlWqjaXuIQqrT^f#&Xxx3r2DH)xS3HRP}_MCIi^PF?f^S__|3Sa@1EK*3D zFmlMCN8pa<@0Nn5@3^}=4Oz2G2VSk!u!E9YFEzbAuVlN*QHP}s?`zxNR8l#fyBw+n zdgdM1QFjH>llkplSm-s8&EX7k0yqCFZcTX|LGNun6zJXYrCVE<2e!b_+MawQOAYDn zmNu16u$<)`{W%O^P$0K!tHl%R;mQ1I`yoOe%HcH(3!FQU`}UIOR;BvPQFWdIC0!K= zyft~+vr902`DhO3@VbCimG1IaE!hwlNqRrr*|V#voc~<2d_IRav~iEEErTpB;Jk^8 z0)r>OA_r}KIfplKg`w**V0JY!Kw4L|*JZi{w(rQsw(SQjz^AMC1jGY@zLzkzWus+h z2v`3J0V9equ;#e-dh1}v_P69tBV^U9GLB?4%CXW=b%#XUTKgYGE3*_qM=3fOi7S`i zCWeZw>RxR_`mC=a5`tA;WI#AxXUStK1u~wh+rB`*PI4mAAOqotq^6GzTHUY6W{fMd z@yTjsnXy+{1>X)@4JD9GdSo}fmS4439L>#evdP(xGrCU9d(rb$pnTbk00aX)_#lf9 zv1npRcNdE>aZ*ypedO)iamz*xw<4>`^A82SO*Ttx7zMr0zUQ->So6I7R?JqTC5ZHkUa(e9) z>TY06d@OMB-%VMc2ss~t#n%A+elUS+;QI`v>(p?v@N81Y*~K+asl;7y&lH|O{1}=R zxa!ZqbriYgA_Gienv&4-gKMYrPcVPr#}rPSr@K1O@Wxc=JjY#U+EXb0472;yqme~? zwN6W85O|w@89_m3@=iOSSxP$ZY~dJvPjMD_HK`<`Y#R~hOq|p&-1Qu&6bs)YV;mKK zhxHvY>7(LruqsoGI}(b8;uDNTCtkHa#bwTzeugt+#veHQ7`f>&;~3+ig>l4y=>#*A zAv3elMQv;q+`vtyKZ4tsCDkd+;1X_8m!>?1cX=}K9%GHdG_60;Z^G*R3!^43@MpDI zxj{Y*J!oT0cNkO?ozY-)F3BoIxkNl?+PP$Sqs}Gfc{XI2^OY)H_iq@&;C^MWJkP$l zw4nK3A0I5&Nr5$3d<=8?7+1es81D|f5P8Sfr3v#kbe0yIc8;eM`ba}LgsuT!Md}4V r83Zf@v2sMeAS)+wiZeTn`4HOz?sB&n?tT6*<0DF0p6=rT)-d)DX)32x literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/PowerStationInefficientDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..807ac97acf02b2099a3d963270e29907052f5618 GIT binary patch literal 1092 zcmbtST~8B16g|^+yKN~@5%2>PRFrtZQ2fWaoNG$sYZW_Kfos* z^hFXMjK2DtjPcCwhL9-w;6BXVxpVJ1=boAGKR%Djc?v~Tl%$%wv9Bt4%?yH+w*%qkJgh@f#R|s`esES zUvKP|P!gCur(Haoc!^R$8PzIAF(y#z$#DJUPzC~1_0EBOCA~m~ z``%{vK=sU0R>cKdTvWC)wyBF%Ok#@t0~rribzda|v;}IhihLRDswn2b&)RDO z;)%fMst#i#L$fP`p>pV`{e(avZ65FVp?W$z?5b!-b_2pqbaan6l4#s#$$}a9vB0Cw z|2eQk;YM#8dwBwr^~RaW(=025wjzGBM8MHzpd!x1TkXBrkVl!g+J-U%-QSXtJXD4T z(6LCx!@v-X)>O9jFzTttz8!Dw{9C?nIdOxxl(Qb;DyDIX@iKQgT;cPh1{Ar@Fyk=_ zMyGiK@i8fx>EMBE&afli*gxvm~aH^YAD!uoJo4XE^C=%wOF#V^Q2_cX~8L(LkdflAubS+ h4}#pOKT8>+OLHfdXa0uiW|$5c7Ex!TKqJx6`~{c^+0g(1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/PowerStationPaymentTimeDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..cb626e66038efa01f979147a0c2888daa4831f53 GIT binary patch literal 2597 zcmbtW-E$LF6#w01H%Zg<6AHwlfE4W~s{#rQtw761v4u)XarDL8I$k0SnVcH3^+;5cKayZ7F6&pqdNe&?LK`Tg(v z4**QygEV4@Ct+k@A|cRyUEYvZSvt$s<)!PY;0q*9+K%l{3d9G87Tb_QTN3FE+K~~M zbZg6&SFPF3@={qAl~r+z^|JCTr({*#>#kMwU2ERGscLy&`nK!L%Uc!Y_zQMLO)p#) z=(HVYV{@h`&^x<{An$9#IqkDEgD&l`y}D^2O?giSz1Sg;DoE$-Cv{mC=o^ff2!hBB zeW;cDGT4RP0zJ#hpV{Jf=ipG}Sm;@klg;2I?IEGGc~9Hfo59Q4PABa|0@B+1GT4s; z#8Z-9Y053C25mFFB>P|n12`nGyCPTAl zY*}7ZHIFP`otYL87X>=jtuM-QU719o|AavHO5O39ghku4m&)q2&6kwm7XOx6|9OX+S1AwN~$7rOi59Bg_>Q}=_MzRKL70Lr{6#M;@*=VzS1x< zkG}c#@#=%ex7VKDzAIn^q;$>Nj=EH@EUDUpBmkXwx4-}-!{9m;8h*(pqEoZ~ug-|F z$J?Isrb-F<9$F-sbILEd#d%qi73GsshQ;HNRFhq|xmLqM6EI!Bq-p{?H1vV3<-N19 zyG`8PP>$3#0SB5*vJQ4pVP#HMLwd~lD>HLv31)`%SyNuU%zo|KW<4{|WF_UhL9hbp zyj!mo)Hz#cVBd=y^{{SA5_86Neb2ASYQT`!mB4#x%wjHyOS-(-(F2?PYdbgG6=em^ zf{H&U3%*;sCGcgm)=mqH%d4&wjy6#H7n%mw05lPd*g4X^FA7OVw46)=Jm&;UHdY6y^n=Z8HagLgh#PG;HBwOR&6=;OGbxZ+O@9><-yA0h#a=f+4j{j;hAUQPI)iB9V zNQm-Jj!AkejSPPW(^wt(6{)Xb##cvvL27Pvcn#f+B_}&Cjq){ajQxi8tnm;%caRy& z8f)0IuF*ekQl)=9ku|kW;vstPpd)K$6YEOGDt*NxDG2g+A;7S~LkTCyA3vVRBgdS^ z*v!*7Nm(4jnB*^oaTqwyqMPK*#2otZE@ugxqW%5+O_2Hvok^sgVOJ6{{-?w<>O3u93e;uKflkZw7HIHK_AR@g>@aHSwuDZJGap* w$F(U&+Np!o0o})|z}BXTwrl4G`tuE{FJOjaidHW2na35b(wyaS71xmc2fmjtH2?qr literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/StationDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/StationDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..f49515eda105359752b9243eac117ff43594ab0f GIT binary patch literal 4320 zcmbtYOLH4l7XGfRR=4DqtT?d~g(TpNAbunkFw7(E7y@|^gY6iSI1rv~t79pa)uy|Z zOlEk79V?0zH8Y#pkfJJ8FjWw$SWvJDRV-QY2UxLU55s)7AL^FUfGJ#V_33lJ^Yy*w ze&<}-U;XdX&j8HgS^*ghsL1M2kP|p;J8Ly}(`mNXR$6A=s%_ZyPRnv@?M7|WzGT;| zw%7Eo)|TummUG54y{6qh;kyKKN1E-X_n^SQ_{4G^8uBU%ItHN&O#d2h-Lq>U-|@4j z1vI|MxjI*O1%~G@nU~F4%WSU^BBwSZ*-JWxB(>@`J&Qo;+ooe!`m~N~Ig93oC7nBT zjQGw?({-=dPF*^8>ez*fK+(Q8NYnI1Egj3!zK9S%FCoSRob^JlX3xuBu<}KZK>$oRkITub{`p0!lME<34 z_R>G4;~)+Rlu2{CcL5_kua1@=gK9eNl|dyr)p!-d6vF*F{)h(zc5ayK)-k)iYI^6J zUW1nFnQf1oaBckd1^sSMG`j>*dj1C zkh(T>%t&y~l1R5ey&Ebh&~hxOAV8vz>UbEBkh)>ITzTE{g*+#tjxvP1(llGkmg7?L z=jM(Jh{q_OC`HR=t79olrTh^B*??hap4wXMY^+$$S#zaD&f$4`l{_Zd_#8U3UZcq* z-#h=?%4CMRbCbI3$wer;iDk}y!SWh*eaUoK6CT$<1u`&HV89aTE_jO6=C8b8W24EG zcXy2MDaqNy(qb|_JD3L3W%rhHxK#p*?KLcigE9%#{(AHW`@Ll!nkYqqZ2_>yR}5g? zvMhy|u0!_$VFQuPK+dEZKl{T`FX8fn@z@c(AnGe!K(9pn4957D@#w#Eu3I7 z<|s?Yayu=LQT@x)t3AueSL0@=#k0#-&bzfsblD;R-2^nXQ)8^o)jo2s|AxeLPCwtT=dA zxV_Sh5-9B`fzs{~p>!nnV^&NE=yUD1yc7J5Md%w=tFnJU{37RO4On zu1tOc@n0YI7(eAOkjLZv)B^zKvA`!G4>^AJ27d(gLk?yT2bWWWdE})87yE;UQ-gUh zrUaM!gLk9`^Yly!-rgTPni|X_HYIqpKX_+qFpt`l;NAVfyHbM}ahhqB**18W639(X zeGD~yuSNqzxL0x?r8oqZ7^kqEqs)gV(kY8urIb4BQV#i)Po`6rw@N7`+oc@#DbJ)+ zZr>`URDYLp#HT!qb7{F8-72Llq%P$ypK>{!a`#p#WleS|_xP0OyFxt`*5SU%o7l^1 zj8~P{0bY~5ra#4fK);TXRlBcSwfy=MtUWWt`w$>J4BVLd9NNM` z^8U$xoSgauhXaeRTRg}QBYWse3|6wYuYle>lC>nK)~ zN-hD~Yp4Y6HMEKD_R0HX5UEeRYR`~N{}9cXeB@g zj3Pk?j8dg2L8TB>tdt^9_693sAknr8eignOWGJd5k;7AXnj1BO?{R^BFoS7)gJnc!8FRm+=-}q^03sScgd~kN?2J3atV@XG345 zHHcd{iaISF-?Hsnw2Jr+ciQ_yadC{0}W1x~W7=L^1``Bj=OcCgIjq{x%#{qoEa zo;MH8N*yomDbF-0E3G_r9qOT*IQF9SPa9b|P|1cPniN|wwAWDlA?nNz(keINQI3q-lP->DgGGd^9>9BOpvfg_+|En1GTg9# zbBm=o?!lXA(aQ2KiUu}lDHO{B+O%@Gg8O09Qt=LUVw098H(2b4{u2-StO`vC?kWF_ z_=#lkb4EHwphSQOlkIhduv`KbBm2D}SnUPJ_>_S#M7u2{j!GX31Nm=(V1dLZfBp4l k<$n#*hZ)XvyyR=rfy=wb{Cm9q&N2hbN#GT{hBr|8KURH7a{vGU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/WeatherHistory.class b/target/classes/org/springblade/modules/nh/pojo/dto/WeatherHistory.class new file mode 100644 index 0000000000000000000000000000000000000000..99c035adedd10397008e50a942a5070cdbf1d44b GIT binary patch literal 6004 zcmd5=U2q#$75=U*X;;$9lI5RdX-Jz^p|PDr(3C*dPSeIXwHrGPO-M=#q#Ju(`vfoW#v9KJl<=LqD`}-{6Z60fGhW@Z z=X~eez2}~D?)Coh-*5aHz<#`zK_B`JBrGJ6QYf5rFS_NbTU#zae&(FF*i=YORce*y zLkj&n#!jSRB5fdJAqz|40l&UnZmiWSwdFHacgZWS`b+CouTie8l-K-oetD_smrr_b zbH%IARvJyeenr7_FI48ei(XZsINy2Rv8K>W$`b}GF{Hy61}GT^8=rie_ci6UDnNY!yX*wNg9X z^j6ory4zf@Yuh~*wgoo#aMqI=lFBQ4!=Mo@Iq7Ct1p zB5@1dK@{^L3y-$V-EkE2oQ224oC;n`RPz=VL?v$;CXUSbaSKQBVMcSsZLCcDOP)^0 zxgwMJn1$o`h{C2-_q;dl*A`s{ph-}z(R6FghQc4BaSy|IYheH1G%;(>Tn^@*pRd%s zBkQYYy!vtXOqJ0n&ijjQ^@Llm$bG0xG*>E||AX`YeVI-&85_}L>`LA+h+`+%F&4b$ ziobN!t-GsU)2s7&gLLf9L9S;&CYi^4YXNk=G0VirEDI#bEl!BKo{S2W-Fd|938;f- zggK+2_?&2a3F}QE=}R}_OGt1^onADc^%2F826VR|h2a3!tF~Hf;SAek!F|5N70$U3 z;R#jgfI|l&6B6i~z#v_VlMD>O&9L_9>0WF!0p=Ec2=5JG3*M_YTXRxKhp%&?q7Y0q zY;}xdVCvi-Yr2c)7u>Zl36n>km|K|Pg3NKL>Rw~L%1tF5iF3Zx8%$HILEy51F^o{M zB)yz#SPJG}DBUtgs(R;<5IXjbQu`gvrXQp*<9W+k33N5k>?0K^7x=f z9u@S+V}Txd9N=h!sfrYTPw=kHQE^O;{{re~8g`PuVx|&L^4ALGkKz>XlpG59+wJ^w z7(b=44;^PS)|uyl80TECb2`?U$AuW@La%cs)|rQj80Vp0=WMJq&mA$&qrJ{ntTPWN zG0t|cb1v4ICz%-MExpbIvCcf_#5mvG>zt2u<|!z~`QBdVLaZ~-OEJ#ddz}Ykou9(T zm`aji4o4}2)cC~fFyixbG(aH8Psv>=7=@41FUb=F3cUG5JY{a9lu~k3-&81DbSyP^gr?fXpDSfI+DSZk*zY=Xa5$gRjZGwt60Vg7k5NGg9`WFK9p1y=cwz)xH^mTloEJU&7n#u zi3K%{RZ1yTRS7jp2I^`nd`c!>!cDAEO5kcYJVR+%`8>*e ziqeQ$=ZB6@QyRr*IRDGoW|;rNfC2Muj2h_UpQ+x)=0HsU&&1Zgu*_mf$mfutSg?%j#zsE_4!A^u0QwlFI?RApc#G2Dirk!k=_BknSO0`X_#K3FHF|>(A z7gowPQwDnqYy%QWL;v?;4l1S^#Y|V{>kF|DkV#jv+op!Z&Hyk zU@FCggi<&8(9V6IC`OQM0a};+G6&@!t=-Zbq!IAi%WEI6DP9M79pp8`YnIpHH}C||dx(zyo3^`EJ$O;Ku&=WM X!0cCS;R@fyE4-6ueh=Tr4`KfY(^NVN literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/open/YXInverterDataDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..3d033bb4612cf231ed7e318941d1c527aeb923ca GIT binary patch literal 13689 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 bbJ$$m!)PUb@n=`DYfvhO^nPZt#bo?HpQ4qP literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/open/YXPowerStationDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..c503846fe8695d7e4078fa649ca78e9fd2abf4da GIT binary patch literal 11600 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

xy8QEC zmpzrbPUJ8{R_+jwd5qQ@v4I=1+m6n%uk zRmT>8gQC4l7M-9CvIt?*+9mj~Lrb5dS}XJ{H6A5%sTDdw?{*Ql*a2PnC}TGOl(FMh1B2ok)L_MZplx;|K-=sltC2xX8q{bt z`9KA`8K8pQVl^|UMT45H79VJb-3rhSyUl84P@4v|T5UeiUG@}!?y}phDGX}Ypea_n z4|I=h0d$W&)v_2gRf8;Rst>fwo(9k^d%87^LDMy8nl;@A+HKDOXt&*A&0tW62FR5i98*A+?LsB0>KI$r8_q4*F+EQ^gPHHTnspY2qCH zFZ~qKbfXGS_AiiT7&Z9(S6m%NC)Sw%25F{o1wBds4r!Lri@o-LK$>mzVZ-pBkmeXU zY~ue5(p=+CO3{BqN*IS|4gC+KdBzdC9<{tc^Nq9Ed;cG#1;)2u$2t{9|wg`3LKPq0Ob|u#Qe-_g=1k0i>pwtHrw?j1 z^f<}+@M)? zuIV1TUYhDX6J`um*Dkw3nlM>tR)cHWZO5f4?wK%!DApdkQJOG&XjY?Z+G{sSQ}F}gbfQ_!uIYf?B26ux36qRs9kg4e3G<6)wMx_Uz*LB&Bm+dJ!YZVsSLtU6 zpD-fvHAn`<#LGAn<5W0T{8$J`A-YaHCk#ko{PN_OsDe~Y1#v)xAVp}u*e=45qV%}9 zRa8T&p>K=pMFdieeu#t?g;Yx~i4VbwlZ5m~C$;K*cf5g%aClxP{H$O^V;B7VK59uRo{ zzkJ>h|F|vKtm&~|U@zAGdI;^L_7^)T`gsG8c4fY6I4iy-c#My5+K}F4lheeBFT7%WXih4ZoBN-3%-jD|sJLY2d$pPk&i2Xbe0xdxyGr zhLhT+CXUG@JR|W z#FJ2Ts7MH;_l+k;zHL~0`NzBaX5AA=EVrzdcTXTblieADhM^=qon$lj<@i(z{H_(V3usFZg`)yJQ`W9XIP#quoOif1|5JgiaWFtP=aI^ zD=o|1>>Tcz&bG1JX8O^JT{qf0hSQS!P^oy$785R3{$KZsWWo)Y=wm!YlilGMRZXvH zH?|DNI5a)eVYUQaeCo%eb#|GTPQvaViLisrW_wN3A*~Ykv_BO?zABKDzFH2H7HFk7 zT=R_jLDe`4YgV^DEmzl=q)aG|>2}(j0wo9#pZ1+SJE%Y)RkJ%z-CS?^6!wkoZ8@?m z@PTc6uICs>L8b1+1Xfd6!+H`AWve#?rq8FlWj(PE%zO|(=>ED<_iX1_;Oi(Kp}4WOw$$HKIj}3Bf}6<9nthTZXX|+1I)jO*msXdL=}c88SQqh<(Wkdj|8suRX^ie zD`IYnEm#p*0ljQlrc-Jgu4}qUR0VGRqvk=SB*81-`oEj9O+nqb$s-u!5sLATw~jCI zg5Wv?4hIr^&TyCKD!8h%KS6x&n`QZwuc^c=pL!_gFvlG+;0B-l&Oade9bd+9?yL=T z=8ZDIdH7XleW3F^ZZn0=<_|wD- zTn)sb9vOGYj3PfbAsI_dDI20n79`T>umnhhj;TGQD)C9AVaFDHuKBT`N)EyA454x@ zq>IbSicjKXy4WOzS~_=v0pR$|PZuoJUYzQlXF>AxH>>cuAx4eM~CGpmq(qHcG#WX3Y0t@1QNp uP>eq!i;;ysWzX>Hp@|;XkskVw=oiC%Jm9J^N{Rnve9T>nQU#mXLgsIht+#Ce literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/sync/DayEnergyDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..6e9830cec21dd5885d7baedda5d0d5d26750342b GIT binary patch literal 3153 zcmbVO-E$LF6#w01H@iu<^aEOmAR?67^n)l0NJ0^53shS`T8aWH+hlD*)7_YCnCXnq zj!(|`q~naQGUM=|jN%Lrj=tcGf0Ky6yLXdr%E~a#WcQwX&hMOizV6xl_0PlK08GQl zAc3R-&4P}UK>uy~j-9XB?pprR>TRdw3#3j}-Ku|DAUT#>Ny9|iK*mB3EP-QQV=dpT zH>&R1YRxV?`3+3TguPcn{%$ySlgUkz9gWvXi{KsVe7ah zUs@^319n*GL%)E2$F8-UZrH5XTCF(&Y|z3^=|sBe+kVw^=gU%g$ilGXYGvDJbSCy# z$l?V7vt+w-pSJ9pz|dIaU=?REcU^+_S$Glq30`yj6?OWqv0MZlo-fmOz{1PYaLSQZ zn^OIdg%KPUFsObt2(eo`3{pa0u`ni~7NJY+0Hk2t!bID~Y!E{NQx=XOPq!*|vohnA znG{xIevmbM&B9TN*!&8>>!Z*=C7k*}RfnTd^Bexeu9|U#Zfk6AS;VbBauDvz^+mDz-gbVGl1l ze#I+awj1__<2wx=XHqFFXO~u3%^bBXLOOL&$H?pp2(P;X!+v3VdVa-e2xMePBVn)h z1kCm>9f(x3XOu*3b_4=eNHwlNpOQv6N>_F7|>c^+mfLrc}RtWqxsvj?S|e z8&0!Tlef0*f<6)+KN7L6k0?{7@2SM`h$XMpC^_ev}|9Ql|B+=lM;)Vb@iD zn|&#~pTP&XZs3M&!kYpkTlcx@-tpF*yfUx)@|<1ry~d`%H_?s^fy(Fw+bwf`j4XKG zdaGW1W>a=4E^pSI82F8dh4w{{utF0vcCEHl^_`-Lj|7fJgCCRGn--G?g8E9LlSa9b zX`B{0w$HrF@itSln@y)_fcZN7R4(E|G*A-Q|7<9$sq(>jV{-5S8s8kiq!Mye1}kS_ zuyXow?FAbYDZby}F3(kP)yIE@_$h!L<6DZ!#Bsi@kUoJoxnn7DnD1`opJDt+VFFvq zW~?%2XpD02cI9-eGRIZ$?aDo|$|q4^a584O%0#EeCw_qupRr+u zfXbN6rYwm-k$Sq|rk|Tr{K&?b?0sI7vbr6UYI8c?%Yo-LDI29@a%W)wt$35Wp4X)8 zxsJ)1qA(6xILf57|}dh*`H?=Tl9#~)yKuqCng;v`=MZR$_- zWVJ^axC?74t3AL=ZN$NXPRPMRDyvIO>JbL-qBpB&QxVW;!60a~U}g;oGDDD&H6x&0 zAx%)OkjbVcC=-Ix*-RUx-J{pZNVBV(QdiM*>V6+*@HWFA!gn~!+mqnk`4ThaB{7aK zFiT3qd8}iOl#WF>I7cdl8rSor3^Zut0x1(;@siJzO5I-`?uhW&ju zC^P?-ki{z_KBozThU)#rQ`&S;%zgdE3QKABPuztu^#GH%B>!MRlY*=kN=#W`B^oX0 zfrzyYl+3K&7Uc@5K$Pl;SaE9Yi!agzJru7qCVn9h8;{Gxz z4X61TdykaP&)RNWA(aY}{{ze?WM~FVA((Io@q~(7`-Ef+L2m=v7_FNX!cq~~7IHf` z1RLGpEqsiCDvWWdGXu{sCOP7VW!hy)_>A(&J;bZP_MsU45Da%Rw;VLbRjhC|Y3&-H Q5AiW~8B({fiZZhQ0&LJoI{*Lx literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.class b/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterHourlyDataRecord.class new file mode 100644 index 0000000000000000000000000000000000000000..e7235a18fdad1c935ca5558ad354204b6b8f1394 GIT binary patch literal 2439 zcmb_eZF3V<6n<{9+fCbT38Af2%Bw~4)&>Lxng)dc5>25}UbN0Q+$L+2HrM;#mRGPFg|@Ti6zaZH@HXvQp<+L@T;FnUI32gOc~$!IwpDZ7 z`Va&(6FLS22IiY~)4wDTPiO9_gM^7e3<(T+mLG}>jHjz>@}VrWq`g`QnZ;1rG%=N z(KPyS8iBrRl=hAjV3qY?5uuNQUTrZ8Atw&j*v((^3Oz>>hpJt*``&cI!PBmXSQx`s&L zIPZLtH!#LO4w>MMQ-%8wN81^^MgCb*pK*_KANvvFlc$I;$8y zjq5NHP@`^y^eEmY=UAw#<`pSg34C!BQ0^U^r|k>m4#p^;4#A)}aJeei1@3~oo_&ga z-}5B~|xJ@*z4U`bVi_JQJqNa=L4Yl!6HjF(oeLf zn)__BIIoqalEsFCsU zo#~jx6~4uAgt(LgEEEElpuHd?P6UMD^MbMw5mVFw^%H_e#3eY5_s|re^i^DolDRh_GP98}!TFazxF@ZP&M+Kux%^asvJZdipKXQNrO+=5*x)SWG-u;Docch@c#7VVo>!?PL-PP0+lowu#V=I-3; zMFCx^SF1Y~4`1?6Z+g{QVb1idl00pnfj;yz49m9>7zj{)jB`$Ny%yjG3>?5gfrM*! zV^%yFp6_eOz#-{N*{W^UGIX9b@C=@15M|Sz|Ey`&1O~?<{sRt5<5wm4IRi)Vyg+)> z@`3~e4vvjS;9)qD(_;o+ke*YPbn8m{oPp!gUZef_Fn|{gjA2}$hkGk+A_iJsJ5)#q z69y(RC7?<$v+O=R%u^m-Fz^yyW?B`~t;{+b`HSii<7dW(IZd@T`-yo%LelrrO7tJMvEx4lgJO4+*tnLrgRdVNLb zBJB&5oeeDjFh)I8QS4pu%<}fKSr6G(FI`?-o@bDYY}F^US{Rw%^$@W>t@m#NA)&ttzz7(!y@DV=N@QG~GPX%(F zc~rG;I@?wuI4S7db7t9d8oL7DMlWp$44f{Q_67%1Zpm@BoApwpO~V33cDf8#ck5OR z{8|Lxnhuez(8a7-tF2Ty!E`Xu(qjDZ8*33cEhdi!HJ6fW%cmrJT5vQNi#8|UY|V6C z%hj+UaQrb+;&Rn+L*U4NLs{s67#!n#NpLpzKl!jX_>^iu!<&2>0RX2^%igDTDXZId87yY-cAU%oPwP@PO55cD-~ZY8C9@Nypc`vP5&GFH0Td8q#?mST|C6$KukYD zY<1%-E2PNJsIYZTF<{x?s;q|0GkU3mJcIsL+j*+YPUac*_q<Qq=g`sF!&^Pa1oansme0EM=3#CZ{RW$N@9dGuTWBWTVKH{B^4j?8}xlj zDWCiwpg-bVggh#w;Dqp~FY&&v|rXQJ3U6r(=`Lv7}+_|5SF83EgqU!MHGj&-gwl*(-8O=SNC D_8Dmq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.class b/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterIdMap.class new file mode 100644 index 0000000000000000000000000000000000000000..630323f38c3e634276a5a2deca30ad5da0dd483a GIT binary patch literal 2266 zcmbVNU2oe|7=BJ-$8P4PS+;fyEu&){G)=oO7-LJ?0qfQ^Bkd+S6$x%|6RUBX+QD`z z^`9Vq0KMr2NKm9*Ah;P4zk#2@C1X6tcJt9j2%#iC?|IMr@x0Ib9_RPJpZ^SC3F~Pj zkkp_UP>~YI?wI>#sbxCbr6*fERy`0%E!vJ9+!IL77B)wqV?;yRz&RKKw_R_$0HaacKFFDOp+ud0f?O$lE{(?xOyH7$x@`qjX1h3B z=rfJ;$@23CUXxK%mJI1j-zfvHOW!PgpA4c%;0*)QxJndF({C=j4J)Lknj@jt49wuV zz@*Y`Kq>O3<`rzS{q5QH8|$5pe?)$B+w~BxlVEnr`E%>6v>LTgz-&x(x6oAl$)5 z$30?rH)vX(fF^;?$a&C1O(^C<<-h<4T!_w3X-78#v%brziVIhtep+37$i!8))U*6f zi$k0Yqh@AK`Raii6(o?}a64YzTCqb$dvnLYH{_VIxcjaf_UTr)>*r;B<80Fm|GGB0i)_Tmbct8ec$pm zJQlcqrutz;X{ZTY`FB&cE@A*zc^wnHS_yvm&Iu*H9=MKxLxdEcZ*f=RD!8h1KS6vS zn!U}ZJf;$}d>XM_z#Ml%z8?4-bp8R_cRWm>=bRqu%=g0(=h4&7nW4@_%rk||Tn-B( z&bi``(1zolppC2~!Yw69gunu|s^BKe&5hw9NB?U`$!Ry_SQwIT#TezETs3BE7U#Z& zsvH%6h5ilH^N&pb3mFaiOH61;@T-fLxEzTiT{21}Ly>COe#vQvE(#t;)s^k#-!4N9fa<;OlEQKUaWh+fmsAr3Z&=!ty zd zqCz1#LXZ#$@rp*heL^b6p`I9=*eHW4nlayE_pZpC@hDn4O@^Zx+y{Jh2h literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.class b/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterRealtimeData.class new file mode 100644 index 0000000000000000000000000000000000000000..67cb66b69bd8fd999cb308f5d299d9387f3ecf02 GIT binary patch literal 6246 zcmcIoTW}m#5$&se%Ddq$ar^bt-YF2 zc4jRr0Rkkv!pl4p0)%%A!Bs#NF-3}^-~&^|H(&4rfBf-HK`^Ih?(B}FiLELsD$U-W z?$dqm?c3eAcmMR?*M3Vx$LL0uIw+w~Qlk{51r;xuSIlzVv@ez)I)BNkc!JVLYj({W z6_nUNa5h6KWfaP4lp{^hF{g2{>@GKI_Qmscvuc%>oNBXfxn+B?yzE?Z%2m%PyQ_Ak zJZWFC8lKfSW0`fYwq%W)o+&7aaaBbvZhz7m$BqvT_uh7(%UhGYp-4VyvLsK*S=q)0e{{L&3gTm(`;lh?~q0Z zXxLwjed39xSr^o|KeG40<7+luq9=cbMa?$cm_-^XmKM(;+NAUr^L!)=H-L%C< zUDke=M(<|r3~T%DWA1$#8O%+CJ7-pybyPzbfTaek(<{upU!w<@nF4d%hdrp#7;|#q zj7e8A@`OewnV*mF0~@C_nhZ5gMx1b3qiLE6EX}tZ-5u_&?P@mvkVbR#o?s#K@b+34 zNPn{n<~3TN_hK81rn@-iRB?8Q*U4@~`NJALLXQgCvSePi#vHq1dJoq;fNa+@ZO;{S zD|!ghuNyu6W^>v*kIW>u7~#nEMMFV?1nFm*HfPt_np;B_9k*>Hj#tA@1(l~O&Qke; z=^_iSF4fDI%*tigvCC!)RGz~7T*FyLrml{_=~v8p6OJ6-oaRZVv1EGCQV~8_NQwoU$ z8i|BG1;ptU>g@4J@49RtidP*5}EWTp*Bp(xgbfs=g4#69xi_PiI56znPYR-xOa|Wv>K$ zCi6ZsEVzO?15uk%SOZ`?#kCM-1y;hE+OpDS1b}t{m(#Qv!Q!}b%f&I7pZAarGv=}k zu+-d{$(a*y=_HQ0VY$sZF2a=bmQo7tBSdY^dORmMTU<=@xG^f$$r`7C9(Q*h- zKM+)EU#>O#igVd22h#+l@T6JsoCYr87otT_0t2I`OuLFpy)^AOmz&EYky<2UF~V7+ zxUjlx#lRnn;KM5~!jdM&%zAykhAUU49|`g%V;YG49LvYVfnC9YFolzl!|4?!s{U(u zAj}ErKpq|fOI({j!y`H-1_Wu7wrw@W>Za>ju0lT+w0DCyD}r|18H&&fJc_PE z#T7=x7a9605_Ar4IgF3td7lfigIl4Ef&v6+h=A_kM#vx0{`e#M9)Coubo!Yr&`kfrb#D=kZp?C@`i5e?{UKKCFUI787Nticek}0A$ex zjDlMie6CggB`H6Lu!Gvl#aLx@E-}ja^~(LR%4l$6l#A6^c>rS+Be^Rv9f* zjB@{a==&oXv_4Ug8VwKT?#VBuIuRIj1jBYGOdFOiNdt#N*oy92cS+9I=tTOt; z80CHIl@G-#U!+A!_z`9xq&R)jgF~;95+9%a0Yb(n$8L~lHI7=`q*UCPbAm3#&ynBk z96`>?ISL!+C}8`SF-OP7eH1r42dBRvIY&3<5LAyh*|S-bTuE9c`+Sp2@h1B>Ym$pn z%j8zyq#bWk->gZlZ!MGCe3MSR$?cmp$)&Poa))nnnVyIXvz?nY8B|?)JiB3%OZ&zG zET}_l9^TWjCzPvOP8W8Y>?@?Fp}IpCYb_sn3GiC&CbQ0lJ@4ZcjNpE$}dh#Y63K55m6d;FoF4 zO@cs0K*xIDWBC8(emBcKVR3!n+3Tkm2}w*+&Rf@f5A#&hDU+sMA&O5;Q0-&?=}TO^8W)5>yIb*vIH8P-&`*5`74iLJhHl zJ`75wFVSuK2&fD_PyeE)L1pPC{e?aXDo4MeKhwuRY4lfml|BwCPk*PM(KDbr(KcM8 zXF(N2nx3OifGUc;sEVHi)g^|o;!lC<7E}14;nSdc#2h_9p8?e?9JEf)f$9@Y{LJ%N zQ2q2d?Efn5R@DDcr$XxM)UQwn{#EfhZ4JoGn?{CpxQS#*@{c_-rSF5Q`HD($mhcHh zo1ox?f*UIAptzS>!G2olx8kQCe&YZOZB>%fFOT%=E{+^c9`loIdvRnDDW(>Ou9Gr+ zlg>QO{KH0)1$t6SR8G7=bi_#cBIKN}r0S_qG-9NEQMx5choVtK@kK~NsilOX}`dmD_TLaGo5ND|^U zCT+iWFr$xBAt1yg*Rmum9f7rx>$wuFtOd96F#@TgZcu4!#ml53ekTq#2z>P4-*1wC zMvfOt_3RtS+q2&ZA&unT*ht&XT|m;5c1KffYj?*4r<@r>h{!ZV9!;x#%;w7&U{e!V*wW)FSSFJa%JZ(~$3%S(8E QNH61!=e$lop`VieKQgIl>i_@% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.class b/target/classes/org/springblade/modules/nh/pojo/dto/sync/InverterRecoverDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..11a21b28fb5742f48f4a83474967e711fd9ede3c GIT binary patch literal 2381 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 JDZGxtzX1TX4_g2L literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.class b/target/classes/org/springblade/modules/nh/pojo/entity/InefficientSettingEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..9b57352d500ecc72f7a3d9035834c9a100b86c7a GIT binary patch literal 14724 zcmd^Gdz@6&egFOLJa_l*`*~q`FR(9|UEbUk1(&DU1p7nkLm$#I|YDcbh~d-*fJnnLGDhbWr|kKkS|R zJHPMu_dVyHd+s^s{$}|0JI{TUh?eoqrKFKBM1GwD6lAKpHM%nz8Hpx_A}f>Q+eTtc zp`Fo@@z{o2nCe?sw)Hs)Jv9&t>r_IeOpT+_?XliuVj!BiHl7)VmCi&HnY4&qXOG>S zNyQUGJ*A{md59`>s-!BW*~!#UBt0geZ6ndaSY#kMI+{#G#xwDebfi}nu7S-|nTp*q z5*x^@iDg#DV3 zuHH2Ug<4yq*CjHsp;)R%Q0M40S4c=|Hoi-zZp)cU?u;h}r09H|76@lx0R5E~v5RzC zEUGC@#Rih8K~a%#FV)EuZhc@pok@J)VX@{$L18WdgU-xZ6d zN+EHJPD3<|`!*0wtlBXy#$~<71J!oDAm6Ifb^@bpD3;ln8xr-c_J=DwC`u_o$qQ>WVmQVFEjHVy=~OQ&C>Ul&hSEVCy2 zaP@aH)fKcT_iQ!LZ|L-!?udCp?6-8f%MHyJ(8qMT+YK!c(8qQ9gd18Ypik=bDL1r8 zK%ds>UN^K@K=zZ+UApwH;^fPh3V*?OW&U=Ql_Sr4pRV4u_JArDM; z$iq5)USQRBO*wUm$VYVg0)5fy`(FDLQ`q;p>Ar!!q|=uj5n`SYV!xx)?+Pe8uCo5$ z)9KNiUrix`|F}+12!B`%3Neca=aV{pC9A(OKQRdCX`N09C?1*W9T@5ikFBY{Im`~Xs1a&30>Cf%Sj{SEfxx?HZ4xh1jz%+$V~Uf8mWi&*Viu zdH=cHXI_8t-g7TLj%mC5jfeK&G|xKCw@wSJ(?aXC$T}^yPD`xQQh5q=cd4_b6X>>t zf@k;ddGql{FeRTo^R#RvmV*(sP4Qa~M`d3;5nDe#x((}aRPGOJ`jTL6iKgPBteie< z8VmOsYPZG2aUAQ=`pj?~cVb1~2i#KO_5?E4R;qk+COWXaKRTvbQIW>PV4sx=*0k){ z*@9)MKb9Fz4sML5FcoEDDYVNLE9N1L0f^;Sy9WEDkbNlIAeE)rg4C3SNk+6sOjKCn zVCI)NOxXgmEo@c;Y!jH}u+8d@6r_v_fZ35bfsQX~+UpQSv3?nxYP8Si~?k2)n zTUfOkbajrqrrg%$6ueKV%PH^`(5%UzkY@SvW7sO&#&7{4H-}^iIY+5AeywSxObuMC zWVONedX($=0$+(#5U&Dw`LYD8LSW;jb^WWb9;9OF@sSKuiS6MkYq38?E|i{4_p zX;{x}MRd5mh(T^IVldl_7_{~x2B*DgYfwncBtlpnbhmL`!sSG%<(_N=sidxqW=hBWGjV#ufyMJb(xN1{+^(I_%p+ zCD9ul8QC1q#CpQKMZ9t3W_1qpb<9zBr&u|bR@-P;#+_4DQFOK_W*4KZo%5@aAw$H& zDUAH{Bi**uUzBa*Milcc>@FH`LOcM=xDAiSxK%!u)3J1jZ(y3~8cSY7B*Y(Kn*8om%vsiWqG@>XYetH) z5otc8!th@AB1&aAe-+2q()4uzNPD?~Zva5v%ME-J0J2%MH8?0BJ8b@P`19_i_V&1OSOIH}Gu$$b7khKL&u*mmByK0LXp0fj1|!wz z5!~tw?(_^sKFK4v(;3|D8H}WpM{vX$yvQ>cnJJIpdCuS-&tPOhJ%SfHgO_^-BT?!R zyu=y2$}rj@u*nW@qrnJ%f=1_Xw_c2JiI@M%vjU zc$+i$fM@VO(Ce6>#nfx!EGGP*SVE?GPuvX_LrvV^s$I`n#040IDzxMcZ^@a(N?Q9R zB{^G4o})LtTG?8xq_xvhlI>FRAH7@IS*)bBM^ln>rQ|<(OGb*7w03t&vRg|2v$y2D zVkND8p^{u6C4b`GmkW!Pw04wAa

B7jMZW#Y$RxQ6*_g$)9>(cu%pC)-F~_E|Zc! zqkr`pM3)yUY3+ZNzbZ{CtCij}l>&PuXZO8&dIPyP?8&@PaQIgk4$^Z41+)}Kh^**B{ualBL_mUlE3hlys=nG>m5o--XtY| z=`DG4v69x?my(Q1$+x^EV9i9q zJvevcWo<`C`r2bcd-MWrCzD5-c0(PO}`OJIxBCT#zahsobcrk#?JvAni7*j7mYO zQlv_w%0{}!tOn^Gv&N_vq#8x4Hfn67J!UOPd(1kcR*>oxsn)2ok@lMPAni39jCw(8 zP^5aJ!A9C=HiERzY%&@JsY#I8UGX$wck!BbzHqtS3CP>H3S;kC3nx#lHjafF*adS3E$IVt_ zwji}C(rlyEMmk}(fpo%bH`)ZLU6I-hjO*O+ea!3t=`pj@=n$k%Md}b;oFkny=b(7f zoNLJEV6Gy~G3MGxPni*ro-(_Ph*0WMq=?a#CHWu4j@3$$*b)=`6YF8j?r(iN=p7_P z@MWm)Mmmo)h(;~Gek3#N^2es{7 z4y%f1YJFS*tC~Bs)m#ayhOg3Qa}}&w-l$FEYFKrg)HJSvRnO!67T3aR;Dh`_u7lOc zhxvP4537mK@Uz?i%iyo^SGW<@1pX1<&rPr<^6Pvr8?c%+A18PMtVvo45A#G=leJcS z>)s4&iZ+*fc@nItT0gh&WLVR*%{-Z>z?!b5=sZt_HAB0de$LZiwP=Uv6`l@jrgntB z%QIlj(q5ob+yZO1_Dy<%XToaLUZedy3s#$Ujy}b+VYT~$w4GaFb@+6OaT}~oUk9z` zc35+K-L#xLV9oVyq-opJBp`AuN0SuP>0l`5({3mq^kBvg@uu!3539W*N?gvC=u zRc4_>W|f4hauAkOE9$UWEg`I?DyljQ9WiSpRFi|S##&KF%~}azc~w!hS?HKqC!x9= zghkhiI&RiW2jc`Qfz)Q6u?!t)nVbWU9-LU+0xi+8Y!3xk; zt%>Ku3Q~sO<^`}qbRYki7s3kD34WOu!78C|@uR#LRw=#82Y3mrGWsR&~xdf?vk=!fMc3sGnEDYSgZvdAtf%lXg88fYq=JF&T!>(cJU+F3XR}kTEkR zi1|D&J73m>qn-j;LYCt%bSYZUM$0puUPZ>2309@n#GB`P04gNx3du)#V=A!3D=;5> zL0E;CULZWL@NNtxQg&gHyv}=&l$8FiQhBxa<|#q^uL;M!fQaKyjt#%~4;JrDRk9UD zaPzG#maW7qixbc5UqpbaqN?aB^0i!CjH;;mVk*klb{l}{Y)W6>bR#P1ch z;g#bkj$=6DIF92uf#We8DIDWCPU5&7#~nEC#IYO4JvjE@*o$KyjsrLj;y8rkFpeWQ zo_da+BXWKtXa6z8Hnjou^IGwe#p~oRiRxfoh1Py3&3)=8McmKp!KeVT0mwD-^IF~t OUn$Dh^NoBH8NUJt!fKfS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/entity/InverterDataEntity.class b/target/classes/org/springblade/modules/nh/pojo/entity/InverterDataEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..fd950597c1a78fadd74da6e53368360e78f71ba5 GIT binary patch literal 15907 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 P!-((Z_w+~lfHMCDk+rQN literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.class b/target/classes/org/springblade/modules/nh/pojo/entity/MonitorInverterDailyStatEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..821d1fea4dbb8acab971d0bdbc32ec55ee34d685 GIT binary patch literal 36424 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 oK>r~?8%kOlj8>+k#n{x4?!FY&~IMF0Q* literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/entity/PowerStationEntity.class b/target/classes/org/springblade/modules/nh/pojo/entity/PowerStationEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..2836aa19cdb27b99524bd1ff411dd7a0c5fc0428 GIT binary patch literal 34079 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 I;!?OZWC8RT2l&#Vm>+0_b zCxX%LU|(!~EEpCd!R4`g!ts^KP%;vWwnf8h*G4)cfUF|)Sbx$&yBJlquMceu1$#o# zb-|TMUd4I5+%lcYse(~)LJ5Id;h?t16tPODYF@h%MO+x`3Uh&4o$8$arJ-KoAEA>W z{GFk`NHWx8@ki>^==59s(K?M0{zw!h^z^LS+$VI#=`@}upv8LET_5X@XFkZHSpS-y zuy~M(I!)p{Z)l?+^13zYG==+$*Y$_uT|At7TXdS5_O1veMLE-S3UaT1EqW%=ZMkRY zG?Tl1c#Kdd`i?8i)@crRdSc05et(%xm-D)NWA{YE@wP7RGj*EBeZ|6OJ>`6zuHs(5 z@GkF;MMdG)=(K>l%hba!=<14x6A7-fP^U!#iuEp!$2LZ~!f{J%iB8vXNKZqu>^7Zl zpc?@swLcl@2`<88i+1bKX({IxqSfO`UgC0{ZsHzKI4YiGrB17O zG2VE%Hx%C>YPDLYTez<{l2{mvu8qV+JKUzz?c7@ui}Pys_pS-Y{ZRaZPG6)iiAIbr zzPmrv!>G2&G02v!Ss(69&YN;OC*P%0h}NL;>%tl1w`qzaLJUhkby3($Yjs-3)hp5i zTnb{)gn4NRE*sHlJ#FA)A)M?`L#ZZ1Qw=6g?$s&E$$pR*$nnJ8eLCIE-MnhoSwo5g z37wJ|03SXa*r?Mz94JM^5_@2AWV24c#*q>r3)R@-{$JPWH@LqD{$nVcKk{e(_WayM^B;kKln(&=dq@a7VLm?1pmw{&`j zBb7i@A!?Fv^jV#rv(RN3^Ms@OboyRUXHTq42RF_N#zKi;C`}0VhPxu6;L6T!4AFUb z8+C;fo$*K?-&0^Lre1jRqX%Ca+I4K`<)X{>{f%{R;xzjs_PQE_)%wwrX_NAWq3SLQB9xhpa z?(Kuhz5Dn_yI*HCw>`bBTN}p<_nugMLvU>@-Wy6fdPFSDe7RmC5Oj&RFO*D%d3!^%%sZ;l- z_CG3bFn}_!p_7jf4m@XJdg_IT2ampV_Vm8NFCS(!Z}6$ZsU0s4?K^bt&=&z44l5&y>bT1J6n#Z_78nk$UV242#tEHy9PjmsxpxBpQ~xg;gO8 zV7|wTb%uIYhvE@_ubc(R?g&Qo5=TSIUG}BykI}H@3A|}DmeY()iJD$hR%2(;5l(i; zx|WA{zoETR3mw5~VQoWiR6F0YVspad%F-nHqz(sP@+8Bt(q=f)49BX94GcuB4NOLb z)$5cO><35fTVz%3-HPLu?@_SSf|}l$@cn&yKY|4fci4qUMYV!U347g^66w_%69Pe* zYqa!buFR?f9P6?4WUj(i!=_)P{P}z+K`g$qhFEfC4b?&`YiKX8vQ-_6DkB!lJV>Y= zD7L||WOo>+j50ph0$4=F>59*20XRJ+f?^#@bcx%y0#s)aG?7H@dns=pOKf?E$3c-j zrD`B3$|DL%A6PI_WjRh)sUTU$7d)Ayq#Zs%z)^-DR`}Bggk34!855*R;Tg^fK~zm8 z$9bjXW%x2^a%^YPq)*aNJ8Soev18Xb?aQELsHsq=S|q(Iwbe3wx_nl-L$!M=X5GuK z5VulRb%oQDRuFquyDJ1oxvB+8m8`a}jB4cLWxFLgeYBG$D{{75bymh?vN|inDT$fq zLPgAU`mJ7#C;5R+j0^N9zmo$7r$c+d2wOIyIwabSXy405w9kw7kau`wr#cRgc5h|) zN>?Va*mZ>Z)WT4>d_`NwVod5bybf?~?(ab*{m!ZC4OsKi7qI7`Kj4^c>PF71l7Mpp z6$jFDr9jS&(m-Z%MYjr*!{5G@eWr7P^w70$Ei_{&`U3W_^Gj3GO5}|iN#%j;;Zh#R z9uuf!M%R}HGJCj)SDN={K|u7MFJSkTKj7#UJ&@7*zGO@;jcDVQNU3y&mqhrQJ^q6E zsA>Fg&L}8$Eo(xt-bh!hKiIo@4PLN`zMg*Pt~4n6l|MFC>B5bno_@$TM!WCq;~B3z z)m!CGY#OYb7o$<vONXt2-_nc z+BqqBgqRfEz@*?GYEp31o)rAXF)8M=DcEwfMUnhl*b_=5!U->1&uC)Kcyb#iUWRno z=nGTvUXx>r#vxUp;o#qZzsMF7Bc6&b!RKjQ-%QZA03f5A3%mmW8Qfgp_W&S;n+yCt z0OW9Ufp-BQiJJ?&2LM^zT;P2GNaN-Le*ge^+g#ue0U&vs3w#>@^0&FbcK{%Tn+yCA z03>m9fj*PHG&>1}5H5dtHm*CRu;K{DRNTj+1S7rxKbqz+U)g`zlJ9vg`@FT9l_1VF5U4xOX zbt$WoE`k2 zYcRfPa0$LXJ9w*WFurwg32x60-su{QZzo)Wmt_Y(?HY{lF>$X8NsK$T>pko;$N$x-=A%B`!C93v!uLO*ru@v-?z%1y7594{pQ#a%Lx zucX{AE6GVh@?YI0C+90EH`+>aije#_cgf~_CFK@fNlq1#|L!i?ny;kX+$+hTko*sK z$?5q@%430&oGB##(_L~_zLN4lp(N)B$^UX6mvi%#lt&RIdAX4MZ+FQn@|Bc_7$rGR zNdAwzh)QxPB(21OeMDsRse2jA@-0K2 zEL9mdxt4)bo$Io^BHuFPkyMqjiZ=~o?vgj>D=81NO7a#Vskuwuny;ih1}n+ixg`IQ zk{lD>RrtJ&$aAKp`9&%$IN0(n^6jBQ&%u^&lCNWG^KrUE+`_nX=~VnN3tHc&5~JWf zs@zX{t5I;AIxR-GSqMtES!5J)PSJZ*wVz6jLZiq*>M^|_^_V`x%Sk>(@)|w|DP|Uf z6f^xsF(>&Iso3y4NO7|Sq`0XYC7h%y5-bO)-z){G-z+mqIjKyMN{uoHX_HwF(k8RQ zDCeXKMJhKc9He{AN|5d~tBgucs#2s%qsl?L&#VUNKC{NC=A;@$sy1pIqzBAekRCAW zj9N~rQ>0p>&OzE@)`PUg9AVUR(g;PWH%2%}TTKI`t!9H^a8iRJ8AgMH^r$%!q({w0 zVt+G&mfX{R~X7{f_p6={qy)w^t?IMXyK%(iqyiJ*e2~a zTXDPJoMwo5FinwKjcE?j0W%2F0du+$ODQHZ0kX|uofb@zv)0n|YGZkruG1Eah zV$K5Th&kJs#YwXjX_hhDK{{&A0qLkY*O;~;gRtKw^E!TFidRR3qrrpg(z^Y~a+6HF8 zs$;vfcGdu^p6$_=u#vDvuoK#3)(FdBr?qix6s!jJBTZwYVU1*G*~e@QtVYele#pkc z8l@Gp@3V2RMr%#%O*S6Z7;PGRjZJ_xR_kDovjD7d+Di5qn+R*X7H3g53DyK{6YFM^ zVFk3^_;#=f)Bo;bXTzG|xtGFh z4y>7;J+y?)g*D5wm#$%#!J6$kP23iQp`v$w#yFwLFb){c~=(97mIXb#k_93ntT;4`^npSoQ~hc{oQ5(2aE!R z`1rytp&qkPKv=Uykk2TzpqN=CpduT>N-m?~rdL2%#8s5ng8EILfP6NDrCmmCGK&R- zRb53DThP6xUqF5v!dfq*?lVgSgk@eul~~XNrY<1ehI9+sVwMUB>%NLAwV)-fKt)wr&@Qt|Kvgz`{eq0zZB`2i zTLl$WZ9#j?8UfYV5H=7pYQU@&5cUo#s@8(`nsoxIvmxv#WYqI!y@0TpP*L?3wBH;d zpb<8NEryIbU>X9#?m|Tw7W9hQAfN^t!k$A$9Wh4=2-^)6HPV8PnvDW#v>|Ll5Y_0q zK(T-v-D-jIXs6jcb|uDsq4qYL4@)Dz_9nXuQ^bQ;>~rjDSOs*I_7J-URw3P{Mc4vZ zMU>Q*vTI>^X}dNHuU)=C9neOwMX-wLUG@oE49ibv*pJx~SS9oe_CC7~mW~DHAiEw` zDPFES@$%*iR6Ed2_FeiZTL!C! z{RFS><*;hCV*Hr;CRlY^fSzS5VAX3^(}Qd!tP$Gn)Xi4GGPHi`U^l~R(00&Fwi?z* z?PV-xx4>%TFK7SHY4)d7PX%7`F@_g1&LW?pQPTGschpj$MX)$%CZ|i$iX6T)Gux}k z-b`|u?*gb0UrtCm${kaI_`j3n1A_1TC!QBwc|KT$`_F@?OTQ39iIkjQB(3uqBqgO^ zP%5qV**qm!`dNZ$&Ag~emM{8ZTp|1d|5PvJ%U0s$`H81%eh~qxh>E<6NSAVPF{+@- zizz5w)G7%pwU=6fbR9mIgsKL% z-}%f(6zcj<&C}1TqAFAW`6`ocnPCu8Rl=F%^R$m_G}TJOqopcl3`fP%EjDa&s(KB> zRK0W!hf`5ia^&z;GF{JM7FAVk9M-C)Ydie9s=}j&yTa)@|DQ;s+L)%d+TYGUh2JCc zpKC>N=)I30h;coDYYVQexE{r|4Ocg=9$Yb8aa{elHsQJ#*G^o!aP7vm2iE|uy||vo zwIA03T(96dg6rs8^cGR}&j6f19E+;cO98u$ANkqs;_HqYSa+c2Ur4Yosvk_UFR?qp V@WFc*uC=TicYatAwt@AM@xR?RzcK&- literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/AlarmCodeVO.class new file mode 100644 index 0000000000000000000000000000000000000000..4b68dd7f1096a21f4b991dbf47a3fa409894c38d GIT binary patch literal 1016 zcmb7CO>fgc5Ph52agw@i2u=AY9|a2J18Po4Cz-x;L2}8h*{eTkw74F*zrte-h1$8cAMBPW`M zUNGwWd?=iW9L{_ZIf3g;90nBL?<_RPW0mQan&S?$3lt zCg~qzFp}Z*mKTVl*`zPRXT0wdT)8C&gu@Aq^0a6u*NYhLwEl17CJ9xttF-?N8`av< zrb(4LnAD`dS-@aQ<%*DY=qf&V+2+$!OsOrDD~C^c$R|S4!sJjWqM5G5GitWZc)Xd$S9ii6R;0)%LO|1-#`@? z>9msuT*76_7`6#K8NN+X_hrl0dkPu+c{IBirHiI6&HIL8mSUq(e+Sc;H@>3q7G`$d z_<}aOnW?pCvgLgevdyGnL1q$#CQA`_2$5a@aVP#XQ$&l*E$?mp T4bw_7O=7r7#%p71v4;9j99g<2 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/AlarmInfoVO.class new file mode 100644 index 0000000000000000000000000000000000000000..c96a480242c0a27c6911149e9adacb128e048f73 GIT binary patch literal 3713 zcmbtW+jA3D9R5z5&2G{yy+B){6^jOKo0f3DBou*Cq}ZDjih>um$iOEGAOsfg?7fG%+GMWmbdHsR8|fL^vgGo3}(aErDjkezuEL15KF zNX<7aD^1y@qYK@%F>h`bbEd%YRtYb93L&aq9lNndK((E`>CD*zy)&!Erjafg)=GNO zm4Wl#*{@?j0+nUQu<~(QkD8ibz{w(w5^=s z-YB{SN)^|z+={@D!!O}=tEzRb?KFSq%5!`i(=m>N^f6~xQ+GFvl0e^ZNPB*H)y%os zk(;ui4(T{7!BJBpD{&mfAr;32y0_!!D@gPS9Vc;$)CHr$_~cojY@%tYb%H7t(C#~qG~ZG!=u<88*Ckyt z$4OJGBEh|A9L0+bx)mK#vSzvi`*C_4XPTJ3L@MID>Q_ zQk#04wNs_j->uE#-nMs^2z2P2hQUNeK!(LV|<89CQ>?g@MoZlVC_lV0XQ!kZ^KW7}&RJ+ct zE1ON=w?g=8w}zGiibP{m>5%Wk;S^7Zu^~T#QVJp{MK6LAVuY92v}Kvj zWXY&h%!-P2fde~2(#%s8thjyu4`pWkuwXyW-!^u>!pkLtECkMQ*2b&7OSavMnDJfFG`zy(ZlCgg3#XT9>TP=DrT z8_x0RD<5vE%|~^2w&k7coWWq|X_SGVsyS z)NfFmN37pR1QC+~ktq?lL_LLl%)AJ^i_6U@J6olc*{xCflWAOOM%mLUr7V;hz3i?B#EezajpTkMK6on3-@j_SdSB7q0KK_<~~x z*&e4xe}EFXpZXKpw@}*er~ZI8J4W7=HyuqqMB115+PN`4GLiAW(2xnTaQ25)=OaG2Cq?4@j2geosx#{c$h3vis5^9_6?!(H9Ob_z zo?@>r#-1Zq%Y2sEj>xa4pe9e#V%a&0OpJ6id|LR9`i-O1998I^bTnw3d9Qx>(ZnV8 zqWFpwDv2uH*)u%9j!!Vhd*=qbvjwJ8>rQP!9e;q+x8?d^CL%WykzhxYN%psfGK#mw z{CY}SLaA;gGf{6VTH9jQsWsRPDY7Ns_xzIX5ueQM{Y^DI85 z6k&>w;1fy;cLwk&rKp#HpP)VCX&X_Y3Bj22Gw&G{x94qgp$|$GP{l;*mjYNc1lvY7 nt_EPW9=wfjvOyJ^b=%9Rfn|;wea`V$q~BmU36x+l8j1e^9B&?W literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/DeviceVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/DeviceVO.class new file mode 100644 index 0000000000000000000000000000000000000000..0efc80f69a852653361399a9e38b82f342738a7d GIT binary patch literal 3511 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 DXa(X< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/InefficientSettingVO.class new file mode 100644 index 0000000000000000000000000000000000000000..2149697bd02e51226506f2e8f79397d795aeedd1 GIT binary patch literal 1061 zcmbVKO>YuW6g`ibVSv&Wv7ohnRISQ~I!n_~bx~`Ap<;rvaQA>$7#!x|%%h3^6n}s# z7P_&C3!__qlQG^mGigXlG?B%-+&kx2v?!?TmX2rAlkekGbPTA7YA&+w!oE91x>eBf^p7!^ar1i1^~Lkqq$h%xyyp>Ju_gP&!-+#A)h8w6%K_O$-xUA@QF~gIaw8maONo@ zBTsT2IScyYsjK(eTy~@PwHmI|#iXrYh0eJ2Y_$x2SIg zrk(kPH5=J1Zd1Wxge$<*Pd6E9m%6lNmYzk6E$$PGm1DrEm_-s=EMeRsMtTaQ9sAQr b7;Q4QxVQB;PCMbWNZ}3{uZ^unGt~Y7R}IaU literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/InverterDataVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/InverterDataVO.class new file mode 100644 index 0000000000000000000000000000000000000000..4550d77ff2a1775a07150d0316b9f24c72595c7a GIT binary patch literal 1031 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/InverterUapVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/InverterUapVO.class new file mode 100644 index 0000000000000000000000000000000000000000..8f20af93007ee6d350bf17ce3c673d2dedbd5151 GIT binary patch literal 1026 zcmb7CO^*^m5Pi+eFu<}4;#5ghT^L6l)g@43FK9x)h|YA=HfLtzEg z>r|>XatwF>rLd5z?7dD7S>*Fr#|A@Y!2N?)bM7&eE3FA%aL42R$m#SaVxSt;7rLEd z9;Y-oEi^LJsndCEqD=K;9*+0rP(&`948>3cF86vO2wmwPH6Jsurwr@+(hn8)RgZgf zVbQ4ck1?2WaiQh<;&49gi{Lr$dqh`i$pP_jVxxPKG}YJ*8Sb_Ix90{~RkEw}9vC(& z)s)B4tWnw1uhB#k9EA`C;M>_ z?es!9Q2w4Cj6#+8(a_)5yV_Tg3CyA2)=^+|ycwDJa6<;+;kJ>68P5a?YXMIm3FK?_ zZV^R+g){NpPOa{tEb!o8st5XP#crpJ5-Jr;VoIRcm(k{%kqiaqYOP&)ApKBAJAS9P ztNLcO{>nC6t>Bym7nDUNcI$ivvzTN3P$t85Jy2ukTLRTY#eodFDoz3&z1-Rm5Kjdr z*L9Q_8JVsON6O_O?I#4Bw0OD|MC#dSuczV{vKNwWrltGjkz`|@Z8~NcBm!%#|L=a4 zrj6b<_PzvWYxPrIr@KT5Z4LZ34gpu2p^DiLFR%Z)E%!5H)wVK2J$No-xu*=9=d@y# zj6y>)j-|YCJvloZT*5pqFkWPq!vdch4WPhvkvl%4V00VD z5Ff{oC9d`usNpi#N(#UgTxBM(O!Bn&E~CZeXS@##Ih&9UtjI?mxH z>n7lM#UGgRP%7aTH(Wtn6^?ztnWg)zvLkb?7b|wUpHyr<1)PYvl(1qM;|dx18mOJl dXEkH=INX`F#lLZS8K+By+Z?NqqyS&vO}z<(2L8EKgDOrW$H^7NrVvC-_6 zQ5Kj#72n%zG(A)W?*B`5U!Shn+pMC3S`CvpBTyd5c>T>tMgp^q&W_xdek9{s$>pm}Pw+(_l>x)!6xlKs{ASD5IWA(on}QHy#U!rvj5} zI!=v@O;1K6<#Ler69P_FJk<$f^=!1;SIG<6k4QJ&(F5{GvN6v$9TSA9z-s6JyI-Mc zqqmH`FM*jx^F-I#E)hao1HX+!z||&D3H#yY4PJNUUT&=3RVL8G=Q5GI%CLD(D^ckv zG9=?zs#|)L4Ahg*wzl|(tG#Olah2Cou*1Pc%;7xa1!e`z^SRLgN?aGX<1-3Iw{-;Z zaSU1HYL9^iE^)1809?iuW&%qj&x-FbT3m73`@m4Z>7~WvQa%8ptnORJB4fMVdJoq* zY=1-L9o*t!`ztEl+pSNS7^kiF5vIm}&Y@L0A<-PWTgqs12@>KOuG7^l+g_&Q0&cKw z0*+VyfioT|72M>8D~PMZu@5-6bdObbWUlpM#ZLB+CL>=1wX^xG c3-bg6KQgSUfijy<$~0Y6mKX8-^I literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/MonitorEntryStatVO.class new file mode 100644 index 0000000000000000000000000000000000000000..decb5f924c8974d84ebc3b8ccf4084eb41928d43 GIT binary patch literal 1051 zcmbVK%Wl&^6g`vJagwHOD189sQJ_E`fL92iwrom~ijoGYkOjL*GHP60Pq8PJ%BS!F zth#^=l~^Fy@=XYFCbp`IB9QQ6?#%VM=iGZ{zW@CE1;84bW#o|e;8ftEAh4$69Y5KR zgJ`E0%7OCt^k5XK#E*vlzTVZoicDY*{kDz*qvMUp#E08P8g7^tD69tj@mL^Vt9Oei z3e5fv?RIK)4`qP||I#|pXLP!qGD@gaFo`LFVqZoZZ$>f{n5(sR<$?4=8SVI;-mdDK zmHI0?UA2O97Fw2KZ{cZ|W6BP$C?5a2kbo6rbiGX+}FuAUy z#K_2WWjInUowJ`1aMI%GRuHMJ(Oyr*FJvzy-AqgO$s@_ebCz_>Fh~R*w*G7I74~cN zwy}3ZTWj@G1E*OcgtppeoDgue8LF70@V5G|+j2kasoGX%s0YtwEccY*+%zgy$tW}= zqa)>QJ&OD4X<(;XID41(tro8HQgYT3T*5pS7%%XY!$rO-YNNn)kr|&+FuILnh>v5) zWv=!&P{S3jl@x%hxW<#f63NrzdyE#BpYc906DG#TM)Mfc7Q6FbY-TM??QW?`dB}CNM{SM@NCt@n&S=qgP7CJ4PBhyb>s^2fTbJkgwId zMHB^=Cc(SgwYrD0z}mkw5A{U7?sgd^R4SOpj6kt3qs_M?844`a+I#X)`k{<={q5eK z>YG;mwe7T8!8r>qD2q&N=zIn9SYZB8Cc_OqP~*C{1geRO0~vNzoCG?0x%F5;JQbMU z&{1M!WV$jODVI~UpAc};g=qL;%(zBKBiz;l@qpH|SijT4AZ zW5{Km_8O?+3eQRkz*StMC$K{DH2EH_#pUO`k2E<KHsdQHD=k7xwaN7cDA2XY%v9#in)}qVj1Hq8TlBfozAC~ bF?t;C-1_q0IK7P1rNSK!-VU}tuA%W8dN9%% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/MonitorInverterDailyStatVO.class new file mode 100644 index 0000000000000000000000000000000000000000..9992f9e95ff811c4e18a8f028535c5a387379960 GIT binary patch literal 1091 zcmbtSO>YuW6g>}S7@)L8EcK(+R;|j1I%`9#ixv|MhzZKV-2+}=aF~ZP50d&*`~j|5 z=*A{4jBfo+#(3Y%q#;psA&Yl;cg{WM+e3(D!PIxW zVbA3QVNc{>=8C}fM)p*Wr7b+=s8hQoJx58u;mw7wgnz;v_q3z9s)wH$Qil!!9x)_K z>oZBwpPF>7l3q`6Q@nCc;2O{*}V8{o;cevXXe&9&&W#fc_J!M!w zmR_K^r@Gvo36mzOe~iJ1iZ`2%C!WnFJ>kFLJ(uVTP1z?NPHc3KlZF~O0mI|we+{5U zzLo4Ky*q}jQhBNIC`$+?wTIs(!eB}@5Men5#lCpk*gxLeL#*A zxJ`9yFs$?sY*@%-aEB5mBU~Pae#Wt-hg79UW@;~5Y`LFEY&!y+ifgc5PcilagwHO2u%wu9|a2J1Mn3{K}e-YK?y+$7j-?}f<*K(%OZu*oLBpSmK#8EExH^t*7}AF>-92P5%9U;g z8HSw|=x)1Qv5{lA`!B`0T&31+=a5A{k9BM?Wcu7celz19L#f;x^Er1s?hl=IZ!G$% zUU{Xh}HcsQ}qJ~=ei$PF3pH~+WxI$2h- zqx75@w#t>In&VSKFsbGLXa<8N)kp+X4UMh;y2Yo7twKwvksLhd0iOt(Dp^biBAj`O z$fzl~j+_O3@x;}I?XDc^9W93|G@6ud40f@N9g62@m%@2^WF(I?t$TFhP-GOX>IvAV z2y%f|eGQaxk=A?+z$IL!9m776$H})TYMfEDKT=3xb*gciO2a3V)_q6OpjfL_Kfp2< zweQHjhh;2k-;izHs(!{=w5`@ouo?ZC3$3&yQHk8`$25rq5#lPYk*gAweL#*=xK4R% zFzw7wY}m+Vaf1#lMz{h@{df~g_b5xZ%+g-8*m6Cw*mev!6|+b}izSQ)#7J*}wB!EN c6GoewTRhzR8>gLcTBLB38m}8$i9A$)1GqKNZ~y=R literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.class b/target/classes/org/springblade/modules/nh/pojo/vo/OverviewStaticDataVo.class new file mode 100644 index 0000000000000000000000000000000000000000..686b16023b18b4ec18c6bfb522ad9320cd2e70fe GIT binary patch literal 5740 zcmb_g`*Ryt75>(iw0f*%*@>N~O+)HBi7nd|ZGn=t(=@T;)F3AzPE(rl=vv;|ie;@M ztsP2%^5_FX9|>t`DWRp5HcTf_=rl>m08@UT%-{cXqXe)>f zl`19s4h79Uy@!&BBcURxAq8z2e8gIqESn0{MWei6?t4H%N6$!a!RM2J!35H1Rguxq zhIR$FTh-}&ZN6HnOiz}LDKkH3O)ZqoTD~%qpSO-!`9&+gZ_%tSmds-lwqciwBZh4p zvJ@nW3)QMwvG)`dw1>ZEt%eTqlE~pBdkW&k>olwvinwjrMtQewC2<|DSFu5?=LQ9B z{&dGGwmEH96?FED1()IKoppRj!zSFwsTgIWIyYh(Wd&;jQwd^k($MW-t?HCn6<9H$ zEgH58ZOYN!UGen28ggQyNq3RE?I{88*D&C~ofk@YlKQ-c591cDt7ueqA6*dh=;#Sd zMDFEa?_mMHO~XgdV7HvePCtSj%O>K*P!R3WaF=jMlgM%KBk&0g zpY*u)c@Y*q;~MsQK90fjX~KRDpTYq~ZN{k03|mvoUgr2%J1gU$hP!b{!MZtP)*QAf zMZ>SbAhx!c{#l*x>n_KY>P->4dMrfpXFR+XNjOjsN~ z2aAL8G`#}(FCFVyFYSR`SD>(8279F24-`Z#dqy<5vK0$ZI>^UkbuGg7=9aYXAsb2e26S!CXl3Y zK%P#n#qyef0+%VEkxY)l^KzM%=~{T=6lcecc{hoo`wxtbv;Qb#?1ojdwovBzm<$Ff z+AU*}@|4cv6W#tglih(8X>#DrA=w?6qb3KQjYpO&Xa&nVb-m1!6V^htXpWY|F`NxM zG;bEi8#8p5W!W{mYRt=2t+mGR-6WpF^D4e48s7^Fy8V-|R9UoU&Afb%?1iI7(YC4& zDtJDaqApO9-epv#c#d}$ENgaQelXC{+zAIX%N!3rIB$l)?+f6)<1Cwo82b=d2ic+a=`scGU-ROT@6gUG;%y>t#`nRVrq6xNOvF zW=+LQ3O26@YFMmPysTj3wV}*E8CcxNGp>mzR-B)_Q9;2y9HsdEX+HPXaF_<(g2D~F zWUMsYM-N_;RvJD-11~%)4WFff7n7BS&(XkZ&q~ARY2eLgrQv=~mVF5^ei~fKDKt|8 zcIPfY$)(?hdJZk__nL-rXRi5eWY1w^!*`cE-uw#^HDQvUIVAbng$QnfxS6fRW^BL~ zN?Xy79^R08F+|h|`cNcNlas&{OpX+BgK{UB=eL+(H1`%-eojHYK+Iq4gYO)zJM-=o z;=HEOIUVZEOIC<;Por~Ns59?jA)w8T=#hcnBbAN3i?%b+ z2C|X!_?U;-rbh|crpK~Tfr-6~_A_Y7MzgU1Xh>HH8q(ugRe<6yNX^CrpdEUGpdETL zn-HL+3rb{@0njczMbIu?%ccZKb3v2>pi#Yrpiw=YZ4scf3u?)x1E4Xzm7p;_lWi5C zj0RixiTr-~;2#g+H4UW$qTg9tZCk1|Ok;x`GIq}aw_iRKv< z*(qWiJS2m?(>o*yWn@K+UB;S|_WXaHDz@Y1E>fgO^!Lo*P-MH4+#523GfeGxrtb{Y zf%DjRztC^fBf^l4xR$s`cxf8aqmGHW?l{G>QO~qPk2$7T-NXuzUb}SFF){gFFV!=R z>T$;uubWsB(rZjlI3`wu>y_|K1wHAQl64bngkBrMlW|_I+fBx1`~{EVF-9edKjU#q zO-!FZ;+qU!GcPy4#J4C#_}k2jOeB$v_cA5EO)18Noxu~7R6NZTeUeffuj5ucMJa*b zVIB1%8JRrFo5)_E-V&+`N&4C3s#qdeSC<) zb&0QV@x8)rt|NcllnW$2_~)!QB7Xb~H@oi1_p$qLzZSwJNxeUb&+}hEq+(8-U~`f8 z=>6PVaUrN-yGv_z|-I0Uk?v`Tzg` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/PowerGenerationTrendCoordinatesVO.class new file mode 100644 index 0000000000000000000000000000000000000000..06d46b3b5a84ae608a082eee8def7f342887f33d GIT binary patch literal 3616 zcmb_eYj4|B7=BM;CvNMmS-N)3Hp&X!*6R%0fRVI?t(UEkZl&qED=;@PiQCjJw$ru0 zU=q@}NJtOP1xPD??x8XhQx-U6;QAz8zlj81n$kfJtwQq3Hlxa;C5tpTBb!UUG@02Od z*IUc$uES=m?2@U2IvGh>)tLOSq!t-<^m#4jaPThLZim}<#scGl8Yd5JJ;UjOTt+xNfz^uc%6w-3fE(i9J-W22(ecmI>m z9)5o3@9UrRZ?8UKmJqkA-W62;;hP6vY~KIq+lL=thXujQNLyMrv@@lZMa`O5p~fhl zHnVDRLA7)~_l1H};I%xJ{y)wJ_H}Se6+R&w+XDkkZ4V4^BH5L*(7vU}`WH~|wFGRe zmPv@sXimY*&8n8VqB)ucLJrkiXt)j6D%>_WMNctN*&sI&3z%?E*;AA&o94>Q{5|8?Q%T3dK>!NQ4#xACCBtS0i#{zf(ssZY&v6>tgJSr^U6Qy zs%_WR4|D#Ih?A!2*p8*HdKF=}Md;mTdXL_Z(pBEtfa$GLts86RvZi>Uc-?MF%{r#F z!RX6i@AiS7(bKAt!>!YsHqGVIYATRAzqUATO9bA*iWw4*YM=ags6_=DSH5VosyX07||ZsuT{QH(I2rGqN=joK-t?? z3Px~SH!#v#Z=~&sMn+%+_jv;&v3eu%CmI=rkuiD$#PjW>VT`9CGB9|DqMVFyU_Txi zogTs`gA>IQ#^_C;J)*c|7?Kl^h`3iN=4bOHgyW5!wLYsep8Q&8ZFHpStgYf~0>a70 z&SKB%j2BX^vp5~AI*V7FO+kn+GA|eGINnXz{EfkZ?@1JH4gOBjS0sjS4gN;b%+SCl zwYyUccApu-BPk63K`ja49__qI@^C`fq`hTCcTxnTI~hrc922=m@tf3|5EGFAs3#c( zs3$2Uq8udoplCuWgM?cMXlpjFc!5^3d4o>TX>6v0)@d5$9->~-=`F~@=#*J{8zTXj zDb&hoe6Y_T?=u)hsE9*+2BRohw3p6eB+)E<4w4*|{-GUFk{(fKltTDP>=AW&!=~V{ zTr#IXtiZpVJwg#3!wA*HndBP@9wg+ zh%o9VVqYv(KpLdj;7y7SZ&L47F7HkXd?6wDD-utRx73pq-6iD3Rgw~-yR@${)nlGR zKf*B0(L4C#N(W6Dj6&25dgl>!80Y#3ox@1L;oMCN7;zNQHHtijKmeJHfk0yHG2qpC zhzmMMECb3Ip;qL>A^}(xSuX_`VV=RMdQ^d$vF>fK^yQs6un_Hc1Auxa{EW1WSL4Kfn_Q zy-1Y@ORxSW%d%&8i=s-=gL{~_^X9$oem(R3=jSf~9-&=D0Ywi^4K7Lot2*BGlY=;j zc6*^5D1ToMMxjdlXy_m4J?*Q=1m=yurC+Of+ej1WXgyLpJ3&9-(OP;cP+AJ2z$^UlkBf z1jbi%lo%PAt_(-YrJeQ@0#4RE(Fr2;bhO`7@iW;A2{+l%ed0)>ai1q0GYk@e<<9@i zzew3eZyS4W0#l9VskyT(D}=TZeltYC)n=$-PQ(lCzub@qxwQI*GDAJslCj)ZhU3$( zSS6#-5RArDxAiFQtH*&IZtlzreqbqagI83r2H^^3aFOv6cLiML!=nV0xXv=;GYUqx zbqw(_ExF3o9s>xz@!2ZjRv+*&+o;)<= z;5Pfl;CSU9IOm~K!5t=C!MZve`-pQ%57}icbFCIjc6y$SY$hu>A#+J#$#TR6BJw?u fJM(8TNAzg!q))UwS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/PowerStationVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/PowerStationVO.class new file mode 100644 index 0000000000000000000000000000000000000000..0a726e82d60d73cd88ac3bf1009e5d83101031ed GIT binary patch literal 4360 zcmbVPU2oe|7=BJ0$4=^gY^B>W3KYm7ZMTJw4Vbe6+uE^?b{*@;V0^l%X|kqqah#U& zB_Sa$Ktfz1xZ;N03<(5m(k{@r84~a(CNB6Bd_Bi@5<4>xt*Y(!ocDPjpZDt==jXq! z{s3SK@21g%UKI%)3X%ecY-c53Uw10Cm8Gh=Y~|PNbYw zYL>II6(yRs8%tHIkS6>N9e3g`0e!`CTQ1U(+;}&x#KcCD-mT*v+{-nPwCSx3PoX>3 zrb#3~l6Q}e`*44-*mjI=BkfI5lK62Q6B0kfbO?wU2XE^sw>i*f75EH*GVyZ)aufj9pWu>(2|;t>I@ zWY%V0ZTLdJXQu_kNmfuZv_-SpuoR|1{t1DE&oDSwsadBQ zYfF}M)?`h~I=4&YG0DbpFqv@66(;B5Zh{=%gxKq>wtA#Bj9bm{c#&?-TW;B2K5aVY zn&r}2x=8wFVr7#Y?ux%@5$O^625+_P-iTx`*g(96@U4-S@KWG*G(yC>Svh=(=Gs0N zv&1EbH>sdP1QgpXTMm^n_SufzXxLMB&JK9c&;~u|!@@Hj#18GbLp~-v74Wp9(Bx^) z_^XQSo&v$DI%fMB+GSKNuIvZMbUpBlvs@e+~ z$acIgy=XU_l6AZyt9dwDjr(O|F;hov+pW8fx$c)!eK3jF({NB%;mR$lA&_nNV5PQU zuUf(J;qO|<%@WTv9t)p_yE_2-q$kYUGSBGjoNcc*)(fFcASk2IOvLc)*18n~e<6f# zZX=9yC4Nv64KLkKz~vra9`t3@?7dcrrgDyeH3o z@5zJRd-53PbC5Rth~oVzj`Dm8K9z|p5Z`#P6TC|`ki#tRx(~ofJk1f;io1A^8h;1% zYbtxtHr^j=%ws&pxWCi*fmman)iK7~I*kv;8uQ?eF&^nOHe!u=u*Vqh>NI{L)_4x{ zjEoGJ!KatKiOKJw#)o@{j|jpoQz7#zaEkVd;9!V@1)Pqf?C+LRmPm`zA3TFIag^J- zrIgjyq8#@47vm{Mx}}tb+oIg*QJ%%KajV?bEv4*%7Ugb_ve+t&X*Pze``r_lG0JO< zSC&_f*W^|93OW-W?vUNB4&g_Pzew>5pZ#RKF*)%il*FaUAEA8)rT5b0HE8pD$@{Q3 zoS3|VM}3K}I<=QKBeCx%^kov)vF#%CeVN2%7)`{ep%5}^Br}S{B(G!pMf7KsOfm!- zGgN}c3@xKdkQRW{j1~fAjTAvyBb`Y}P&xpmGU*T~XY>)2GxSWK1nB{YQWKQ8L??Sg z-9PSi!u!7Sty;c;b9jy+9>K48p4&+e+v;1K=Ugui;48d9DS>D330|b65d9%uqLjo2 zR`D_=?v}9d3MCDn<2YWWl)@Ky5+sL+I9j`)rK zH!0fV9yu`rr3q+a649vumJGq#$j;dStVY3Ye2gM6(QYznTgB^WNPpJ6da1$YQ)AfH Rd2Qegj?$F2@D|=d<{$Phybu5Y literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.class b/target/classes/org/springblade/modules/nh/pojo/vo/StaticsMonthVO.class new file mode 100644 index 0000000000000000000000000000000000000000..174b0feef66da6b7425cc234fc9e7d27134a0594 GIT binary patch literal 3708 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 SnCJgfEK|yIwSraL!|1Pov>SrF4^BI)Ry z?>oBp{J8h7|MKq-{|I0fKhL8J-5N3mRAd#LcHE7Ux9!&LjkSikZk4v2^=8BJN_MTZ z?c8!omhIR5-O^R(CCgp$O~3Bg^MOi1_DtQb`)3t&k58=Tpd+UtZ=eT;f|K|2yW^BX zcfq6TtzJ=(*|khp!SLcObH^+-OnalWVEfjF|!G++D#_@WkT%z7)=2 z$>CrfmxGs7Ig7yWkbz+wP|&|?dA{YYo4fP2bSLg40}USOHDfkA9*h6>J+@Y%v6oR1rrz$9lI3?vbu107=u zV)zwf!XnU&iAK z4sMy7)|_KkP5+s?U!&ytrtNzQ?u@5I?=!|H<}sZ6{x$9K$J4svi)IWeplqOmGYa&o zY0tmdG#iX&d=6LEZdp~oGVz>f>azx(5a6sOkX|0=a8|>47FWBOBtf7r7?{UJx~`cX zW3+AsUA!Pz7fA6ew{A98E!SheKfOSe@|1$!D445eqiLxOy7;HCmRIT& zXie_SeIpz#1ywJ|^6Hh!*$USJIja7}x@|2tx7IB8y2<_%J?T_AHj^Xdd#KF#wK`LL zYTqAo?AE%&k6qeRQ=fL&niqBJXgpO>vreosx=WT{bJnk#uDNA#z2UeGvSNLEe*C`k z;Ho3m<^Qs(iO&oLBT2MtNBx8qE5IWJ@9k3dWrS(0xbti-OLDDC{EEts^QX*#bi9K_n@vts&Y0YI@_{aVIS?9>5sWYi z{lNepU-6?&eXutOY;oY0@n}M@|q29N@^H~0X`FR9Ue=Y%wUIBjyFFR8(DrVHirC)({!uW#k%O} zk)Ro4Jvl8h##TA+IKJn*=C`=6(?Pt>nofZ~AHzpWbW9bxm@^xV zmAY?LbiAQ}WgMKXT8q-SsK{Am>fu)W#7iO*LbW#&Nv+6)(6xd;t4y$m7i=DK<{GBw zS)PWs6g;{okZJMJ@KXgx|2LFXB!kHljLzK#(0C%cj0Groif>)`3NIcM1DR*K;K?&s z@Z`}dc=8MtJb7FqZz+(MF-Vz5SKhBsQ{q$MQ=R+(%I^cnRo;aeDB`QU8xnwPSmB!@ z4pqE&lK%khcQkgPO`b_5^OTiB?oE$){4uJWQpKN0Q{nQ^`DMrH~IL z$){7vJcKba$$%YBk}D}>nY8Qt_S0Amos{_$C6S#hz7H)uXQL7k=1k;M6pMmq$Ws-* z4DjV^cs9*t?|xm1x@)bty`?<#IUie$XRZGe0!&c!<|AUdMSAc}?@0`4FdoWTnOX`e>`KdHR*P>+0vTpRJxPPQC{< zbEo(x=4y7L4!;{#iWZ>^yjbEhHi+|uSTuOcLINl|UYWly>r$NtsOd03+UspcH zAt~nmFELs+)>(xa@smo{2~KmqqSRGUAR* zOKfX7I{M8(`7!dZ9YJ@{yH ziaOJ|L#c}i`xRbdB)YjDzJ_m6%J8RS4ZD<7++YH~O({#vWB3jw4Zq}{OkSp>iv%l= z!1#nmf{X@TQJ7Qyiu{Dm+V5RLF#|XPy{JTk2Yzj=vf%MAdx^UQVk(aUb63?oDus46;jDXw>4UP;> zj<`Gz57(n-o$twCnfO9lnUW{#1hn%y)sFmI7Xh8VN;2sS%MyOAC*j4q5>EcJ=zmB^ zz%E_q#!hcjz?)TNh)fnMuT19fla+Z+mT#x-s=_OcJ>`5TVEao!wjBQ;;M@AFtMyRk zl`p4#^0wZGCky#3rK0PI^bAS0Wex#5uFRrSS!iFGNWimhBeOP7-&f`f=Y=0$3J6^3 zK9)I0v^5t)fLR^5G{es_^2U~!s7xC+ZtM-#OiM}8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IAlarmInfoService.class b/target/classes/org/springblade/modules/nh/service/IAlarmInfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..9eade29923c5d224bf0ad0d75bc47e8b60ab4b45 GIT binary patch literal 2023 zcmcIl+invv5FLk>kX{H-DEE5{DL21>gp^XLP(YDVQYBS+c6Qy=)vmqR-n9D@{0px< z@Bw@dAAlHd(%q2s79<`vkv*O>b7s!iKYxG!0RV5{c@YW(UMk(8CelK7+5z)94V51U z+)%kg4cA@aaavmqm=0@lTeW&SMVKIPVV89o4VdiEMthfgwg_hlREF_9r4cluZDu%q zi$8q~0&|83=$3(Runs5iwNm#~h{shZd==9$X)`NK6vT%1u()MDvy9f9L$y8}aDYIh zb`|X^nuXYERF}qsN1p54?kInQX%=$JwIMJOrKy(KL0t%xTB0MFjWtsEH6DfKaVf0) zXVU+W5P>q^kCe{4Nnq`yGI&b*!U`n~{j6COagE(cRTWzi(7G_TN?_(o%yrT~K;YZ> zs3-H`(h8g8I(eV2t1Bb<91F$wJsu2zxFupB1!GaeN~Ss_uwLo0OlPNM-RxnYQ|P$S zb@RvfS`N-z!y(vG4qnAJ-BPmV6PPuL^fJj4SnP+(i+V`-EmU=Y1t(B6iP=md)Ug_N zJeK`7^Q_Vd?FbntycB$^XgVMcmVV?tX}G2~u_%Y9PJLPj6_=SFizdJS}Rjhnk zx>aHJxFGQQ6mH9-m2i?N<5eQpnUI!CCOxdgt3$ztRg+$kR;hrpNYExC6$EO+v1w?Z z>rZNkO&xo6AoD?bD1_eihTi8h?>KC8jV2rzoj9>|2h#671EZJIQBT0hZ8~x;kx@&< z+T$NYfVG()d7@sp=HPoo;0%6~_~Ml&FmE^q1t_^y0jBV88owF*3NVZ2^HA=aC-L6T zOc&8~3FZ*Td7|kuxCihG%;#WN(Q+;GxQ^xj%=?>h@P4_a>eKb9Qhk2ZZ bG|nPC%C{b;Tb04BB?Kt+Sv-NK>FU`ZKyh_@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IDeviceService.class b/target/classes/org/springblade/modules/nh/service/IDeviceService.class new file mode 100644 index 0000000000000000000000000000000000000000..aa4479814009792402092d707f6f4345ae1a5402 GIT binary patch literal 2745 zcmcIm>rN9v6h2eIQskoG{e~AV#S0_iEvaJC7EO~98cHxRYBKGPWytQ%x|d4-`_D)5 z4gBE)_$I!D@$AgPZcCx9(H~3MIp=)mJJ+3`zrX(gfEVyA4JiW4(rr-BafRKenatqS zl15;1kJ>xb<8D*bIV}}=_*>PlX&54KdY3gBHJRO@8?{|t_tS8aK(-UCE?q=)XpMQC z=J8L2fdC#i(M%&(Sc4Pznl0C*g}Txbh773Hsxe=9jv07V196`j%xAO|8sy5I-V)Ru zxhrW?QjNd8ky{)L8wsv+e@7Y><}!=>-1P_yIf~~=L#2a2rYagX^8**j{~C<^^MS~( z{?Awkr9xoJ6rP`NRpe*xR(-6Iv7;ky5nf?A2^_ zX&WM}i$~wM%yGEeEyZJ>0`9gV1p?m&NB!FrcGmk?9KKiQW;Drb;s3d?2AKxOeCQIq z%6h##cX74kTU8vOQZk6DA8zC>c%3`0TZ>}TcnCNWIJhl&h&`9YRtZWZY~R;5 zfpKl}n%kHF+-eI+yGXB#N?2i|CP$pWe1sB@cLF1ix#7&tEu#COaIs)% zg;$W68jdx2-)Y-Nt0cXb6d&xEBV5i{7^o|lS=hmk885KF(Q=c>JxR{L_3;W+12d);dgn2lVjDcCQn4m-{~fe(GC^(Ncacj!K`9VbIh71pv) zXG?WOp}#pw)-7SL1`E4m!ih2QjDVM@slJ6A{!Sis0~s*FM0lfB8Mt-+N|@O1)9rVo zrSLO`7a^Q-e1`F!HIA31G>kwBGWeEB!6^Qm!e zJ>>@VR0hb0!xT?WWFRrM9$HIxy$WhWi^29pOa+fc8u254f`M(rO$NPr;y`I)&$urP z@&SEn4hH)MV=`-c8H)%ReCdq>m5`lEWTQAbiWIE~g%x~Q7`UT(&zDll z)I{;A;!R)2M{a*TKa}}r&|8zp1V@nn<=n`>mOyIxYS{yC|` z|5cCcgvekI&oiYL^ZQfRrfv{3GMQZ6-6E)M}DPzs6^)QUiX2OgYVle*fh7q2%ouZSPu zYmj*01NbE*#Ei3>Yzb{h5f4_f_RN_xSNr?VuipUR0o)sd0)ua!!;gD(^8(~l}gx>#!6EbR@6G1V=%(t;JRoD9*D5Pm+R}&vtzKE!J?;|ye@Q8 z`8wgvc3oH%M?n&ExnX4(D;@TrQ#b~*u?!F)Z)!y}B!kbz>Xv|>Hpp07;UhC%A%#+P z8;>Hru6axIyp`4E()@51(D7%|u4#Wo7=hNMi5ZMUj_riX#frgrO*KMc6N8TY7|xOV zJ8+uaekG-R4O8=>Xs8*@iDIRTkAb;lTaG( ziqBxCSnXA0%~Da92zZ}PY}uib)Vb$LXjN0Ls#w(n*-hf3Fx1Ef%M;CBbkP@)@YW<( zu7tVh32>)XVldhgL4wIW6erCU;XQ7XLkK~JF68M{HId2jE9(TUBgA;zQ<;(*kv3hY zC|V54g9^vfp|2cq{>q3bk|wj1SQYT9iY?lic%MkqP6Zfz86I_T?j=Unwm0?HlG`dh z?4z_Tn%wYYuo;JT5C+rf9C`Da{9^ENkRQL#hrSZYB_%7GVFv=`(AXDPRSd>t=y(48 z9FE$y0db?tx0>rnhWyRztnR5q$}g5NF#T@y?+iET{*e%MMLYDU-D}uJbgvi&OT~eM zEv=$wI#gDh%v0*Dw3w)=yOWmovG@B-b;@HpZNgqBkn%y5jtx@o2)_DVaIp6Sd1BF{ zv7O3$?TQ}y`kBh%fWX6rM(;Zt3_SSS_Jo!Wg*xhq~dJQemOu?rQ-ekB&@qM*# z1U-U1P=Im#8ZW?J+Qc=1s{oUDydMsLdqt(chhQodA7wC&VuwkbKxc5x#xRXaN8l)a z5GD%EIsIdByr*}9bZ`~mBubxx)9KOVF2~>u9-ZxqoI{cGaG?iy(E(n9%RRtiS9%_$ nujG%ec8{*%(RElzfo4X5b61xp|+}GV-&V6K@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IInverterUapService.class b/target/classes/org/springblade/modules/nh/service/IInverterUapService.class new file mode 100644 index 0000000000000000000000000000000000000000..22af60c6e7f8788dc5e5e56eea3df6738b08beef GIT binary patch literal 1448 zcmcIk&2G~`5T13~hV%z0P$=*M<-#72xVY_!A4N*lN-l8T*duo%dw09LwvuySfS2LI zfd}A;I3dQ4l^Q`@g5WT+J+uC1zS)`Y>-W!J0N@Co_90;KQrna}W2H*RnMjc5Iw>-A zTwQR7wv;jQ;ZT)mJ=%A|L~~ys))?HKh*I!OsFa_MCm8!aY%q8c>zt2;&Sjztp3la@ zOJ}meah!ToPHJ_H+`uu|bC?lAE7O@sk-^7<(NervTdEhmNQ4)BSp5)=I`|kp(Y(~W zmE`?t_-wTVMEeB&g-*_d6_gyUW3XoGVz=aVqZkY#nJVE6OEkW%M&odG8pr>g`d<~r zU>B!G+xE>ecy&`dVyzPCX;d8lV1+Sg>7MFwE4?wn@m%IKj~lW)pBZ|||4p{T&I;%1P;yX z#`s2N)Pnur=-cyZ)=114^vKppFnc6;eYgby4CreRz$QJm$hOG>*rD)kxYLB!NhKDc gT?*ZU`%P%42M;K;NA_@W**F8}}l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.class b/target/classes/org/springblade/modules/nh/service/IMonitorEntryDailyStatService.class new file mode 100644 index 0000000000000000000000000000000000000000..31fe085c33f00ddaa00ef67a8d63904ba51a4c76 GIT binary patch literal 1847 zcmcgtO>Yx15FLlKA*C&}(C|^91qrFW-~-2n3Z(E6lqwae%Gud9TL;HpY;VY(Ir9hj zDIB=Nk3x)-D5c3JA*#f|TG`K@nfG@5{OkAk9{}(S9+aR!;JG$2wTTfbZb=q#+R;%e zxuxoqT5h@`w33Z3I znC^&3r?iu`m=iXUsinN41a>T!7$G<35sNv2Z+rErkwa~e19vQ9j?tPw z5Y%UIOmth*uBN%^P8z}fVyRGyL+(y>bi@q9GPtn>ib=ohtxled1je}M@++8ftkFz;XF zrt_u{?4Mu*OVo!z$!7LAOYjET@q;r9{J=tVkBr7bNsSf}IZabE7mF@}zr+WpuetN4 zg41_cZ+;n-^BmsFSo$*rYUAbP1egptx#GF5w=wJ+of?@{j~h)Sk4}P=msuh{@{GXR zP=y!5e&&L}m+|B?wdnhe7r=9&p28?sF7L@ACs%ygU;kPjSa2}ixu)Ci{M!Gie+jHK zQNobF5)!q0IP(R0?C&8y7X&WhSi;Ath)+rhE<*vzI4c)m1wU7Ctl}uZ8p7*vbqFt^ x=Z>Hagf`*&*~uFSZH?dx!Z+d85Z)-lZG`UN*v4^pwCx^l7^J!nJGfea-9HP~XwCot literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.class b/target/classes/org/springblade/modules/nh/service/IMonitorEntryMonthStatService.class new file mode 100644 index 0000000000000000000000000000000000000000..12422198b69bdd37e3fa2a585427cf76c7a4754e GIT binary patch literal 2162 zcmcgt-A)rh6h2eHS_I`s@COw|MYwS;yzrt(yeK41N+790y`1izEK9aC>&$FrAHo;# zQM~Y8AIf-UySBA#Tad&wlkV&{`<=hdI%_oUS+J=>F}6}H($%P`Gg;Z$@4kAw{PVe1q$kl+vm?PH*_RA&jkwl+yZotI?NT(>e)P2j0}B#Q-%`FgumlFyf8S z*eZj0l~^ZX5@6kT1@bdO`EP_f0|pL6oNu#cIPX=rJ*vC(W3Yy2vC_p-XHc7@1y4yo zbU_&YUW+&`4tDNSf;!C)F!*tK*2%>~X+xV9HxW$@!YJP1LX4%wGY_K?gbvE`w`fx7 z^#)RnI-bFDUc`RAw~wjfRN*~|I!K)a7&L}Yjddm)624X3+2f?XE>-Q_p$m)XD<)}o z-(_VR65N13$VZw-eLUOeiOCdGQ%NgA(niHtp-JhM23{GZ-+lUU-tTigKz%)AV0d3> za4A6h5e<#3UalBy7PLg+*K>m{#bA-h_CsxKo+*(s_~ZLvXKYU#U>A@UgD>3(2QHxM z=(#=m@|i4x3wYxid$y?(?cshHQS~;)-k&dBt?063Fhy&IuI4gbsAaegC8*G@Qi56f zyFqJ?Rte?_z6rPb@B+PF?7>R}FT?E|o?)=kgH{Q;19$t-y&iO*pfz}qL-SMMNFUOA l)H||HM;^lya?-g)#2etQ{-^NluUACT_47Gw(zz16_zm&2z&ii{ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IMonitorEntryStatService.class b/target/classes/org/springblade/modules/nh/service/IMonitorEntryStatService.class new file mode 100644 index 0000000000000000000000000000000000000000..a6d8f9be20b21f979f84b415c1558c4406cdd761 GIT binary patch literal 2780 zcmcguZF3Yw5bim0o(TyAqo^pLK;)vrs0f0GsR9zHD?=s4rDFNXn%iwIliJ%^W@eA< zKkyImXZ#@F{ZW=Zv+M2E?Y$7J^21hg-91mgJ=4>F{r$(E0PqvE8c<`5^<03c8@Ty4S0va ztw8m8SE#-WRm%HWS6FG1C^a09EyhNwxP&j@7+gw|P*{ATRQM9TH}Y%`e?_6UgcS@< zH8&0ztmS6jpww+OcV^_0s3XNOw$f&NJRJfeajV^S;Hyv39;$FpXwgTD+Avt8b9v$n zP6w&h^xOGmuw4A|VKTU2Fro^Kvl*yLCI`E% zjgxs{u#ouhR{LX3ro20{7YmzeWUO(r=5 zQ2Fi~nBA{>bfmfRETyU3#{+3(H^SjKeh|kh51ztU_x%xx2o8};|Hg1p8gPG#!0H1L zrBu9st3KM}_Jk`~mvM;44DL;czhXZnfwRvEz4m~mH|Ke_q7&g2g z?f8*vDTCifYLIUit?4s%`erfnj=aHU;0U?YQK=5_v5Y9Li_=!3o9+(K{zIz@eRW#2 z&d`q3fOo;|N{g^W($geeIR(q^k2CP9v#<&^uUf3ZITF7|-x_^2c%M#w0Ot#Joxz7g z)kmcI7%mi`r252zeOeV=giEE>WpDKvd|tY|LYP;FxYr1G9loF>T(E>&s;)zmM9VJ4 z4f?(`aMc@sRbn~guZLJSNPTnEJNMqdfp3d|C}9%8cV2u8zAqEKJp{Q!AU}+OkX>G& LyKs*TYw+VgfwE<_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IMonitorEntryYearStatService.class b/target/classes/org/springblade/modules/nh/service/IMonitorEntryYearStatService.class new file mode 100644 index 0000000000000000000000000000000000000000..f7ee304b17310d016cff5507aec37ca5d90dd68b GIT binary patch literal 1799 zcmcgtO>Yx15FLkvkkV3U%U6MxUJ$+D0|yR)BB8WWq?A?)D&pwujy8@q_F{XZti(^? z5Aatwa7E%rA;w9XL}il@ia1!S-M4;kW<2x!M)Jba@FP*O-}~M>&IG2r_G^qCi{TGG@WqGAy|eYgPR@E6Fe3w;wP;R2CfWO89Wbk zm$!uO%221go3(_KHi=WqvF}h>sntYcM8{yqVoVHqlBXg<249{wW)cV5PzLBkD4gJR zzoFWglVPGen)fu%Q#(7U?k}fAg*Zmn*5Rozf}%iU85EO2)LY%08ZxLfWu$~l4KlX5 zTw*UTk=ViitIFlVWU!6>M4Q}xU{G6BvOud)I_fmb-y4x6Xy{M}-I_WX^Ma4pGSy}`q5@8IG@-W%>)DLvJ3g| zpE1~=_H^w-g(k{s?@oMO7`(ms>)dz-vlKeby{3*G^X`IYzOl&o8C;=NqFbg! zmqQt@K>;fCRw=*=J+9MQrB#46f^We32rf~-j-guwZNTOP+8RT*3AzJ!Ny3xTu6y7w aq5H5s(Ro0~!|{$s1Pm2-V3)oY;PEdL=2KJv literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.class b/target/classes/org/springblade/modules/nh/service/IMonitorInverterDailyStatService.class new file mode 100644 index 0000000000000000000000000000000000000000..c540896669e18e5a23568624e87bb80d237ae988 GIT binary patch literal 2073 zcmcgt%Tg3E6ulW9BPb8W2R>003pQq9xf-NO9YCrEp=gSYt4w$333ex4NoKVF!XI$u zU%2oC{3y$t?w*H0Gaywix~Asd+V$R0zCNI;1AiLWa$V1)Rnz zXh+;o*`kK)j_^6%+E!9nrMF~^D%t1wRB zrLSVzWGWVcYSTDvGAm3HwGHK8ESE+o*@r3G5m+=l!VYDyyDa1czAZOOoBK-RB;2xq zSw^>9L9KDdq=`CGw4-Pl;=xXB&pN~uQBrxHLP%_)r zoREc!4Y+#A0oVSoLYJqD5{KM&O}VLA(jxF`xzRVGXPvKWCnGC)sBJ|=w^>pnP%#qs z$BG!8_3>YNte!*}h~!72wuVSEhe8H#Q%}B;L7iE|i_eKS%)ne)Vbf9*uV-mwFp8%F zVdrxqT>(95dW<#-MwvhjVeBay4op|*Jg90`L}0{7^nKN&WpFD1h9-378n?goPhFy6!l>VSTzgKNdVD9)7wUq;uH9{H$J{?b<$?TB%c(bN7 z%+Y9I6&1xj8{h>dBG;8}_KjZ8qI>8i2RiMjI#yANW?}@E3i#|M{_6nrH`5hPa>;d= zI_U_A;YDXok=>t;x?@ATlI674Go1SVPQm!=!0r~uqWo$tey>RZtw+-Em-xxlo0{=}^U=n|>;&%o8fN4`-oqvL;X$!v42|1MJ;KxiJnmzHdB?nYMky2V=6wVuaNVjslW_KOpXW#`m z@&G&m2X0(=D8x8%engz4Er^2?Ip5CAH#6VtA4w|SfYR3xebg(>3GgvtiO~HK;)cJnx2wj_pGYlTN zs=;eQHKeB^-iT|$N)!5#;n=bm7^#AOgw!2_HG@8R$cT6#>d4^pR%N7LS83vpR(Qe+ zUQP^(l`;8+>PYdX;u*oJ`^D{(1)?(Sp*>XIfzX0Tpf(Jq!#3$cW4M3}<{ViMgpD*Z zwsNwxc21vG>A#iauShaj(kOf@8@Njyl|F;&R;4dA$0m}cCQa%u23FcQtH&?eNRh#! zifmWgWskuswnC+|G{|6gQlnfIc+!%%4S%Oa7@{VUZQhZUKCeh)DdfV32z8tuVDRJQ zUME*~V&1zUx-4QYHi_=e@BykVrLbH_>jdU`oLrft2?iUPA|BQUNiwxb6#3*BR+%JdjEF+FBSeM4 zW`?hFhD2v%;9-lw)8m{U5j;=9DS65}XXv9KX^*_dk3BwA6$W230*o8$(|7Wp+!nK4 z)iC%p(D%;fD~?_oqqp8z-L{w1F-DoeyrUxR(s=kZE9+yH_QOPOw4oVH(KAE;2Igps z=V2CdFqgdLV4l9t(z8HM4i*Vsf@M0Kz%#V!Aldup;CyO9KNWhXFA#JQE~U`o6kI0g z3O%d6BUkCjHMrilUh6?O2)a24C6*l;9cVqZB9;kss|VjE%R7TCH`**W;ciMiwYWzX NxzyzrY`5R;{|2~-?=b)X literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/INHCommonService.class b/target/classes/org/springblade/modules/nh/service/INHCommonService.class new file mode 100644 index 0000000000000000000000000000000000000000..4b50a0e512c5552815bb3759dcae18fee54ad9c0 GIT binary patch literal 389 zcmbV|%}T>i5QWdAKe6=(q4*BE@h-$waV2Pls>Li^Pm>|JCCROmn?hgBg%99Ei8m-H z#g&U$oWsm~ob&$i`Uc<%M=>J8h11+LYqfR0EIAWXxvVXvF?C@Y(Tz>T+&#>$T~)a{ z`7&bk3CAnmuqnCD&Es+Gt_JBjZQ)3f<5FLf%$J69TBTk|vx zpYO#NE?cm2C0?{4^jU=oliz@uZM@Sh;r0*C|H!?J!@qIjT21A~mO?n$4S(Kc8WIS- jP$Lk9E(RC|9S1ca?4he?gz>jEiaHDXVM0aS1r9#}vukbg literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IPowerStationInefficientService.class b/target/classes/org/springblade/modules/nh/service/IPowerStationInefficientService.class new file mode 100644 index 0000000000000000000000000000000000000000..bbe6a9d0f32716e7ab0109caa4194102a9249d3c GIT binary patch literal 2098 zcmcgtOK;Oa5S|SUNlIG^w3J5+6bec%>=h{miAqI^l#-xG5#qM7C+S9x*R0o}IdS2@ zkKmVZ;0JK#_aMfPCazoep`sp~$ouWgeDir8zyJRH1pu$%MF|QFc9b4)-_z0^^c-O$ zA1OO<(C6+x_fe0fg}l*LUr=|9FjBb<7yEr_Npwvo#!E2AV0kFUf;++;@K$e#mMOt? z2Gy*0OKA$>@t*LJ@6b=;gTbbc4w>bIYKs9f_)%?IYDC6rByAP&(WFP5e9sAd9(zV3 zY+(dZCWCr28$Oksr-q7;70(ISZPjZR3q~63q1jh=S9TVypt7VQ0d5l zD@>q~vGt3kw|%+v-dw3XmnO?#F|LrejuTfyzuJt7E-=#Jd%`=O&tbLsf#)f0_=f=X z+JB}X}eaD0?R8O76ZBRc!=Kn$KY(1$#rJ3Z__ils|I|dtg5UP{Y z2-KOGv`N63?oH_%^6@=$=bX}HJ)N2r9$4t)<`aTZI*Zgy?w*itOWUX!tR~dbpQ-kV zK|$J7Q+??;(PXpyZi~UI>Uo+f8HH23daXMP;&*1Bosdbdd?o_0u zz@s^d9cl1A4J!s8Pf#gW3gw}WmI05ZXi{md!_&}fQeUCaWy1BOVTa?;Cy2q4O|w27 z{oC=rITrk|YqG23)S5~2%PH_wC(L(Lpe=kS9U{4P#@c%sHUaH82G{5*(oQYY9xOo_ z3Q(c9N&)8S?*=^!^b}x`;3c>@gF|R}3g065Hrz?zB1>7W5VQ(+DNN{?pfw10?mf6a qJ9-cuJxn`TpZeaQ+mGOJa+{bvA!swQc$)Sb9v2e2&tNNhd;SmDSf?TY literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/IPowerStationService.class b/target/classes/org/springblade/modules/nh/service/IPowerStationService.class new file mode 100644 index 0000000000000000000000000000000000000000..f7a0190c8a037519439b2a1f66d12e7222fd4143 GIT binary patch literal 5036 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 K8JDz7BK9+$QaNz| literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/AlarmInfoServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..abc1ade2d18fa36b7c8779741a39eb3a91a51994 GIT binary patch literal 25780 zcmcIs34B$>)jwzEChz5C5(0=CP((!yArJ&b35!AijfO>nAfn+m9c4_s*S}GiT16 zedgX*zTWafBAV!=^GJ~nkz*)_a+xM1l1s}|P04uU(#7@Bx>$KbqOQ3$|oG|>>ROEi}^ ztXdpR$5T!9&8hO*L=vEFyYea7F5^QKMz3Ds4bv%_G zpHGFFfk<^JrejMw0w1<#lM(XlWoQ8H&16z(EJC8u z(uZk=2fIGnxU{?`Ez6F%?8fA0t&nApt*jAnwNpX4d5Q56@Y249ifJH|Qx7sQP3?{F zwTZ^MxL}kjpP#f0(V3VL+K=`R(O^Rd&=97>1ixrgw02nxjMUH|eQ|9{#!@M}1Sz`) zAf0K9t(=@pMpwz2Fzr(kT&HZs_>U}s9zpWm#3PWni9!$dChc>uwcasf;yRC zXd(go$^S8iOe%IZ)6qeJnYH*Vs2Xpjtq6HfJT?nH>Ic~v8>Y!je0Yc|nMUn4O5U;v zi%c^#osMG)#Z%K7n$jQ=*5y>GsWNl|orv<%7?^iJNmUm(glGn++?#aA8q@Lgsy6jD z&6XoHi)M%DBtc*fQ%M_?CCO+*Y-J+3+*N;-iF#4M;O>*54IzZZL56Ls9Y5?;u|0DQ zolNtfx0@0xV@az{5{;fsVH&qPGFUacb5}5wrm?~W3k;n~3z_obshNrN%;tKSsYAP1 z#V+WTPp8wqAv%NUsJ7{LYZkjgBSL3VG(?LH)lwbPU|I8}iNw-+UvoimS#p)bl7Utc zD6He7sbwh1A_mo!_ZSm%Xo)DRrA#A(q(z^0sR5NP9q*L?d3xaN!Se7Yb+-x5IqKNPgh2b2rZh2XXx5VKa_6OACh`O=~2+lIbF7c=z*E>l*`Y7Qb) z9b~xOwzFMJB6M3djTBpZnW4++3RsKUXnkdUA{7%7G=q&E>SDN_Bxw(*-n(nm4c0;V z@+go;SJBlWy2j8Nx)vI-Bl#gMFzyhM##B1mm@c1@fGtWS#b`)U~@ohbBVT(+wfI(a=qFGgFaW_&@^~v)I|qQPEWcf`s#x`KiKbw;H-l zIIRe)Yn`X5F>!`#8bzqq8M<9S>u6n_tj?W=?xMS4$>7J;G%FF(xbYP#3ZeRMxs z0<3Uuzjjhn4H2-*{h*RT$FF!ZEU6t>AyWuh+D4}rl3L*J*3aG)BZ%VQvaZ8SYUo?aGMh<0|-n_=gb z=z<3X-Hf44f^K2k>|CUpX|tg%f>eP|_UhP*SiLa+4-7p+KZITfd#tceJLq+v&YjVa zF}E6ePR0yj%(<(YK!Ij@!O)L<(%3bY`Ag#$4ZS3d`=RlSXuYpl{pyzuy&~0lf`6hp zS!<#F)X>iaTE36^jMP#A_L`yBrM0Z39mSvPn}&WN9m41^10!Ra)%2F3UrFn*3@r~s z^gr$VL-^iyxL+H3S2#)3j|Dp=1|>Q-E{ppc`fZ4QXXy9zzTemKzpxC@7EL=ZTHlO7 z3GT!R5qg_G5dZH(DD#pNT$cLC(01C9<-lZGAj52X9B3mSL1nz#{11lyC=4qc2(9Ec zpPOnDGXKfYr-Er8AJb`#buOOO^qHZ*$S@KCWgj=wUk&|DNRuaB>O}B_Hh(wt51~zg z4AQ)GX)Gmfht&Mb(7&ZdI4YnSWoFQv)wI*l*D{RstW3s$w}${G$n4jg+=P(Ot5K{C zJL3BEO+{D4W+mOqDbaN8vJfM3uH0>ZuGxYucfDX2jPH4K4vp+bx$s;#ha-mb86mBT zLxoHTih4W8(~>^uR|Oc}YuFDFpat2-aFO`K8uNzs<$i|yi|Q>5>d~3A`cW9pDkEMj z-SPMjw>@y#M>k*c@wz*&e zQ1ZTpi+Lavsyj!fBfm-fCkmJMGrYeq4Pw_~5k7#2g!n+i2l2s7L&aKjhysPF$9Qq9 z=Y2-3+cyO@aC!y>iCDQTnyi81k2ThUYflaFAxy)2GeI-klwOz*gEK!W%)@XQ9pT|z z7UB_xM{+rsq|L}wHKt=rB_9%6Au={=iFjP?+;gvmXnH=}@Ms?6=@QSJ?;S+jZwxsD zL5?&$R;Yo1z|K(?^=QN6WKsLNi#m6~>}iW8Pn}m)ISrPO#~Yr&6QNMxx?wVPuFzM7 z`4~)NjP##uc#8D*jH~TGw`z8c)J-)!tz+H%$#Z5(-EoGGm%5_BxYH+}Ts;>il20&v zq73V#;^)Rfj6h_3M_LC`P1f5I-!HYQv9`Rb5!nW~rIHfC-PF0WB3#Y049^xdBKFFw zafSG8o@2O1w3k)x&{O>=Px!x@=NXy+$uXH?O8a~r-low+ZBybSZxCt`&z1_NCwq1Fb4FE@MzU)e6us*Kjh8tbCa9pXe(S+}`Gq2-24c{fHr9P5n7U!UL z`P^i*HkQZt@Vz0v&+z^H0Ae`X9b+ylpAug>HC7vMh$3`%PMtPq7AWAZMTcro;2~Zg z;)e}?mmh)k>c~_!@0^O&HY5EkGf0(BZcZ;d8Fwx%PKFFJ4TBTjQ%`8xx|lSD##a28 z;qUR|ZvQE(#ECEU?k`#!I3?kg+9I0fe&(ub1xDiajfF`TZh!kBNvpZ}YwgtLj4hW2P}(0<2FgEsyzZBV-h(FUv<^eo1_jCm!5>)6?4@UHj1; zk8E$fe%s^g+zD^HSv(Y%3Lo8g&4H7jK5ZC)K>L>;5M!`jvPu0YKO$EHPFh*YH_oQB5@ z<@~PU_rxQY7|B(TVg4-))Dcqod&BQbrG!LQh1!S=U3W_DhlaQLF8Q2TQ#78mcAmHM zju3xr_z&U*9MTcDpr~gB))g`l-6{m?zu`{||4EiBoKCpZlJWj*_%p#KAK19T!IV|v zntg8guhLjzQ8)Vc(Bv-+|6O|Qg&vcUypBiVQ&vLNFGVg(;*B>2?!OG%prmiG)eJAt zAs+O#neSFz9+a9>a z6E@(MZaY&Iq$;Ek8FagwnOc=f#~R9m0yqZ|J8YyXksx)oDl=+? zj3~C>>P#>dDpk2rqx`x1&+P<^@kUKhaO{V5DS!=4+07Ybi`<<)*A4`?f0#}RDlX62+~a+v zAjt9g>KHyRq>e=l+7UBf|MfUOq4X4^DrE)4Zuyk<7k!#h(>tz$Uw6DwRZ=G!#P267 zdZJO)0#DqoN^G*o7&DEU<+qh*{z{%?)Es~H<+%@gu2Clk+xySw8+D32mzc-G#(1Y1 zwa|w#712pDUYnLNPdDleX)Ds>KljHy)2OIFXTQ!Lqt>W8f9%OfoA}R{7`4OLVNwPR?GIXhi6rR!O5$(owXh z-*HA_alGEvHXF4-PQN6|Ghm8TD;(^d!MIB^hn3i>Qm$ zB_VaGQJ1O9k-qH6sD1+6ZgmR^m2&3-@Dg@2J8x5WjX=Pa^WDjyKk7LPLg_1wy2__? z)|z?vUZd88)U`%kC(*;ij`;e5g~K92z1Fp30UiJyrpHsq#bCR7chN-U9WCjd?(*d6OB4{<=sZRir1Y}N~E3rGC9s@v4s zkXmQd?dpzpTbhgQ(HHAMSijiyYy`46HL%f5(PRqi;16ugr3ba!q1&(%BHv}y-Qv`= zH}1`=T-PS8?ltN@sTV~)yBYR9o$#w3FzP{BADeE*HlDaLtJQj=9u~ zR@yfj^|Z{wQ#4JIE%m3d$*30LBH@Dh(PSgeo}gn=RyU%ysMe7Bfl<#Wr1-5|bdl;S zPb0Tu7hIMFQBw%}FX)cDgFCT=pK)uy3|ozQP7oAz)Da1)RxcQ3cLW5-&WV5ZqERmi z&8^=eyOcuKe$Qy0&dzz;qnp|#a@-w4;E+*P4G8|i}k0O$@zL|7--KaOz zn{5kKnUIq!{vLYAcvs^3wECq{Z%Lm4n8f7TT52G>Nr}s88TSLB2mT>MxSND0K4|BEpvc)FiL4X7?SZFuYnvFKB(<=|Q*rD})Y+WQHl!<%E@^|uUAot;A>E(p#O~~ayI?^R z(LSe_Ey)2xHw=yFem0QQd&`dLxhU#=jV=~y37^<$K@sBdAfxw_$3?PS!HI&m^kAb8 zkTsT#B+-M?8o_+MfY!6@j{pzG+m2QutncJxv|k_JLzfg|d6syVCfQPlvzp^0 zx?JakG!k(q^}I~q05~#EdbH7F^byD$!hYD4*3gnuyGg6H<(`1mSQ;792vf>BV%3Ro zp5~Fn_ALfv5Nq0ZfQ^P*;Soe@hfOVo+1hc$M_ zM3q-TGU{XLSY22nd=LlL+lmb9DIV+CUEZ*U18DtQS4)NUbXR-SBbaTcS}Xacm14P+*?AA?}&S zA=nM_)4DdPtrL7PP8aEBqgUA7)u!fjNT0)0-jRoWv4w*y$<4qqY8er1yb?-IpQq0c z=?jehmR`LZZt0X*)arO}T5Y0f6;vL!j?!`2u{x}as5;=E`f>I=ghKivqrWY2P>v03 zV2t&}Mo)pJRTpasQ1oT?xNyfA^%`t+ZzE*3FNZa@JR(sMphanW4x?IMZS*y=pmujc zo&g2K9GB5X>9RGfZ-B$*cBz$PPm5d?BRJn=^zmXHR_a@fzE#YC&EmO-qmp3_SD>%k zQxvS<5%6!9DIyAJw>Q?=rSBspvMD7 zTW4N8Lfv|!ANHZO9o0d_BSu?q-uho|(oaJ1kcLBlM8_2h@SLy8tLy=hfJK0Z zIR{=N-06AoR2)v@QlhU2A&9l5J3x(rxJt1LzsSdP}U9xs_f+%_O zI&+T@nXsoLPr{UoTs1s9D#wFipFqaEtWIY7e9su;8=$bKNcWa*Y`-|)03k?!BCsU{ zCXAgU$JVnvg9bQ`l0Aoy4VPY)3DJ4SmnRT~XL-hbb)d-A_!1tu@20>fLpBbFADHU* zc!1vL4fEN>`SJ0>6DM>)589YylLNVU#$8V2F!D&Md64oCM9EfF{qUh z;GI-OvpD{6m@Gf(p2~CCb5@%k>VG?G+d)dx#9H3NVR!!;nB~@ana`YB zxGL~WbLwPwRE}DMLTWL7oMr?|U2pHIlU?VWLi;uU1y9K$M+=2O~qe!>)0!NIKpIrwY+LFtWAX=1mcS7D9 z4(+m&9=kH*FhF+z1FxZX^}b#Ao{Ni#9{}4}Ej#$Ejz?^}9lpmC1KkfEz}k-7aYMAm zJz{2q#cs#$bq3k_1Oj^tQZ!!wp>0{Kn41F~iZr38T&@1;CRN(iu|;gK1r$Vg9T9-K z8MC479MqwQx4n3t^?ACTb_dDm!p_U|9OUvFnD+I?>kwECMV9--j&`KSxBtT zJqDHWa;$SM-#F-jQ@eEFncnEsr&Dq>zz{t;3JtQUlWcoe7cLIU-*{$|dhF>7Pp9k= z^g+aZ?`b+V36V?6QYUGTg+!0|Yefp1+5txhDC zH#c>$(bbvf-Hzh=2b+7S>_(+KWY2wr$22_1u-5gmeKo$w8QJ0W!faBvPmVJRdr{8e z#@XK)T;zaJ%#-9A_qGuc=xsk8SPQf1H*VDYkVpqM}DYJj=r%^4*#sksbre9+hcU4zd8>C zV&i2U#k;i}iE*dElQ*{q+m_ zN5CgSee{oUr|tAzB1x+kv#nmrw)zQL2}ywKb6Ik{jB0$Fz$3>7Z()utZKdH0HqnR- z9lnK*B*GNNZKaAWbPU$}SX-DPv% zrD-tU@EwZ#5?T>h(_^#KJJuyA>i4B$nO=5H-6xoeeg)7BsjukB5FJ_-!v2{zC71lK z>YuvgcZx7@0T!Hxx6sVB=fs00gt-N zgl-kN!#C41rixH;Xfxqd%vxR`cX-!rD>YYyi^CaOS&>(qQ=GS%&JzNxu80&zUZULf zyIwD~wHdmoBELBQCF;{k)gbI875VFFSZP^txHvyUmsXe!bY-#0&~>hOAEDT=vlY$e1?8p zoL`oqpSa~$GxYPWh8LXobDO-8pZK5wT^i|+~*NEbLZ>nG4UpgYgYJPDpmTVnWwQ|maO&k)k zZ{aW`DL2D;TRCS7V`0ICTqp%$$qn4sEAd`L{doXN^Gl0E8Qy2Uh`Gy)&(kQ}pNBV| z&&ONLtHDPXQ5juEhtm}RvWBKYoEOt|6sH?#CEbV?H`A4L3!dJJk2tKwcNW%xz_-(L zbPv5s57S%pUHTn8LVu-4p{O3?2z?LlP(RKC=_x)0IE|w3^BBtTMB2nBQ424mEnG{j zypo>bi|~Ph%jsFZiMH}R^c;Vep6AEt1>QhE;w|)JycG2!ze6wacKQi_K`-;a=oM(6 zpIW(DgLfAnqCxs+z|2sbUAf7ll{{MiT)zgTa3vq0U)OI?KJd8MYqyw>({Jiu;5%wB z&_w-9{TAo|@$jWj!8wP_VIp|;D?nCc_zV5EC>JW@xAgzu&Y{Ekb^VV1HH2#_KcnBp zvs^2slkkZ+7w&s5TtNE`pt&$!%EI_<7RK+gFn$jhBG;!=UU(N(QaD5k(jB7f?JsW5 zw>J%hSMx`QsM*%6{)z@c{tx+z&PMr5s@z3KP^inUL|;;kXAbZUGQ#|PbMQXqi7%yi z`tRQ;}y+O+;y(NFXm$nZMOg}w>9`U`x`>@9re>sMgQx51Xbrt$P1 z9fyxJoIt@OqkWbv?!xRd1;o3+p~gGS4FmKhvN z?gG*~316JLp7;MZg)Mmsv?a}(AkXXQ7m@F1c%*p;ki=$RSlYrzK;duTqn<3SRuhM3 zxZ)8!pMt-`@izv4ATb?=zp=wTLL96ouBXAnK_p9;y&M$#pg74Eb8;r`Cm`^-6!)Lt zJP?0_@psS$KK98CT#3Kw_&chNeuIV4@GXfDeS(*>KgG9*K7*0@oX)`qAksud*MjhYU{zs;W<7EEX33dP+He2+ zC@u;STCBn;c82fg8a%Gf@JwjF44>rdtQ^=7o(sbnXmWCfPqFH2fvdjU!l|H_ zru6SW5?~3y*+MT_tPlb>DAwJCx@n<~zO#j7W%Pm-b znaAAHjl3ve+M#H(P7Bw;>3N1@3vlvuY0U!2YP=@H%VG92oS0E&{e!&zoLo;uz6-1?$p|=BBSW-$N&vktfJ&acX5mr%1t2Hx>d02UXu&jrtZ^-a1PtL^69sDGylLrAmjMsrV#JfKfWrD5Dm{R`KQ0A^J=G zl{cjU#Jix2@Ey~)F{cphE{AxXB|Soee*=Tt(3ka2{k1#4-1{)QB5>RK4SYAI_TbE{ zz{8Q}N8#PVMTDe2k>T&>+)V|2>E-^MY2lV9i*s^aEiVfvO@6qUx4Q0NuJ|s`SKY12R`?A#hEW@u?gj)Dl72#G+!|8bk?qnX^EB;Jl! z4~p|Z)sHg##|(dpM;Plb8UCAl_m2$!)4lsL!(SKYzR0hMa9|w88Rdv;3SE_V(_Q4E zqQZg-dZ0lhqYB)+qKxWq@95Et+S|Q*Jfn);+Wj)>0Qc^oj5?%Ml`Pn#O2xw!Aj30i zWO2SDv`~kaZd6AU=eMY%H>*jYg(|5q#pXqlQA|cn&Zwy_9CSL)?S4W=%_z>d2D7W~ z1;qt!_kxU?ol!MzcXXQPc3+TDrxoYhmFTK_VR50`y)dH|Wz=G~J37VOyJZ=*+`Vhe zsI%=IVcu!?83?$tIB$bGSLS(Pi~3GRT>&>!UHu}7yQ!}3udZ)VH&*mP^FH?e){MF{ zSh&Xm;^#8zei!6J8TDORpQX>ndzM!jZ#e_?-rWq;qXzwg;!Fc#W?uLRmQ z7ut@D`nXknf;IhAxTV->QGd>;&x<1?GU|(r`loxdMSUrw?JSNs8BLbO@-o_4=Zb^| zJ3}OLF$rFg(RsxYD5w@~D)L)(zXhB0Ucv{c)B`elAKc|<^gt=@-=c@C1$)@K{WJPt zD@?hY^-x4ZrI@BZY<}rRT?+2eBU|+0S)Iq1QWTOrj2te7lRKRHav2Tc5l|*0;kJ&# z*G@*`E0<&F6g~omb1cHQqi6*mjaT!>(WP8LYj`})>rbFN;IKc;liLE!Uce{eLosvk z&6T;Fkg-JD=g-Z(DH3w#P9K${1HA7^BK0<|IJI3 z!%I~mFH`$+T$S)yY7{TW8@2W71a46CIi;d_DP}o0s}!$L=kiK*5uc;3;8p4-K2P1s z=c~K<0`(AIsJ8G$>IMF`dYQkYUgL|^TYQOnmoHWC^JQu~UygTZu26sDE7jM0wGQz$ zc$Z|29>~|~624B4-+&YCH|d#ti#~;K)lt4pFXy#50=-UOz_;TB@SXZbzDuv; zyRE|BiZseZDC}KO$$db%R+zNEQUvsgI_xL}CJT7Hqj86?h|pJ#gS!HLo1SrUa91em z*SA%Ay_0JdyQA-SLi_+saaiB&gq=JXfWG<`Ct@9)LHcU=yKlfy%+RMg`LJoZbhaMr z7^eU(!U}!3QwS&s`*exZ2ibu5O24Jq*@#@xX!D0AwbOUT#cHLy2cuubO`P{T(?yrRf7Lt(WLC}m(;Y2 zCQzj3{s_nlzoI)s>XV%$b~%I>SzM15bOFOtxdY$HX0y%*ZRFXI(oOov(&0~2O=;QF zyr^`<)9Q%QV&`do83OdQE*0l8nBO|au9?IX=YWgws^fnB3Gk0 z*%rT@gW?4!R@!1J7sW;tr`cj%2*pJx9%qXuhf$o3VwEjUFOt^BqI`lak1dksqfkE4 zmJcnG_CrvfVat0L<)K`JGC~Igi@8M+FAO3FDGmEiJpT#!y9$55w#tq0AtU0KuzpBT zsf`d6&{EIA-@TyctnfYhYh35_*C%K6{I&WoD4fz?FSLaZQ8=x?UStbzqi|+_U26-k zpb+b?m)XKIHox*D9tpT7aLt0d4}~nan^DMuyBr08i(3fip#X4a*+SzMMu_8sI}=q| za5X4o!A(aY3vL_=S#V`20Nip5?tm?f@W}_)7gbqs4hlXv^$!$$aOw{z09?I5P`^O| z;2Lb`gi)>G0q#$|S4eZ8{|9 z3>xDUqgtZ*2{dpg;me`dbD{m$2mj23FKK44|NliZq1Uko>FRZw2CXh8qCmo=pAFxv z)0%AZ)wMJ>B89aybd^QLjrR*|G7-I~z}XKrn~RieNxLBVV1ShD))lRKC0xc;Gs{M_ z=yOMG&=;0v^mkhHB^iDBi2nKtl&)&gYcl#el&(kVMq9cWrP~l4KhdJsW%QkRe$R_k zI6|)C(CYiewM2ben1-Cri?sg;c;AS6^h5UM@r?fN@DXl`8urVhYK1r{vXB<~w9}V}78A=F+birgju_i3 zu%GpYI5~8YbAU4hB#6T(OJ3Ja+ZD?0$NZ39`4x?VpMgDRyRqdQ=p2OJ$~oBIcyop# zeQ^k$y-t0dLrFU$oN{NhgOQzaPK7hUndBVfm5yy!n(R!mb#9-j&T&o^u`|nSds4f$ xbJ~^WwJR-XS30d->GXD`Go9K1HnDc4Wga$y!&w%SdZ!VyilCfu&UR8%{C{D`-KhWo literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/DeviceMsgService.class b/target/classes/org/springblade/modules/nh/service/impl/DeviceMsgService.class new file mode 100644 index 0000000000000000000000000000000000000000..d3534f07aa1bdddaf787c68378a71f1a07865e04 GIT binary patch literal 1470 zcmbtUTTc@~6#j;GDU?N^P@p0zcx$Seu1i-28w`njp`t(ZndnEF!SqE? z4y-^bciUzd&6f_WLyI>ox6Vt-truf=)5M^5A0YP_X4}?bhD;1&gkg~E1iY!-fXFap zJL8lCO}!my)Wq27i8oE#3dFAEh!n;dE=AB`ARBy(>}h0?)F3$%moXKC#7Fj|BhJYF zIT1lj<7x`mOkBqd!)h1leBo)mxOAEXc&c4Fwvu$dbx0uRGI?1&5VfFKc%Q}%BvZJ_ zP^>A3S1sj8TZP;?s*;v|vl04Sd?qb?5|*DsY6EN&Dnm+xkZ=qyIu(nQzgUTmeOuAL zErkjZ-&8gcA1X;#?1oNNczag0L6%HO)vQLv@}%CkjmcnN`V4EOe^si;(C?ph&~OK- zC=Kd0I}%s-SK8@ll1ztdJ0o%qNiE$H6qcOhR;EIB?KzNjG ze_7UDD+oP8`BM6i3a)pfS-okB~ z@6hfm66mFQGgX+){!I~0=Wa6{>$`d`eCF|r^IR20gbt1%$_mSpF!`QW?{w- WZ59b)r*&Duqi9~mW16-98t@x39Eu|V literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/DeviceServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/DeviceServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4b9f3909e11d79ff9b01f96745842514806347a6 GIT binary patch literal 31196 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 l?osd!(3tkne+Sy{2e~Qo46z^&mek{|~w5H)#L> literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/InefficientSettingServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..826e79b015b3e8d364a7fd840dd92cc769b6fc47 GIT binary patch literal 11274 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 MMEYTQL>@!r=Vb!vLI3~& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/InverterDataServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..d5af034bf322230e0887f3472e90d9a8d75431a3 GIT binary patch literal 19672 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 J5|2>y{{YOw=_mjI literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/InverterUapServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7c7ecd01f1091665aabbf22fa11723be8444184d GIT binary patch literal 6080 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 nGt8k0KHth-hvP=%l$?=AiO}}|kSA>^ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl$1.class b/target/classes/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl$1.class new file mode 100644 index 0000000000000000000000000000000000000000..9a540e9147bb758a19a2ad18b920ac4461897a53 GIT binary patch literal 1796 zcmb_dT~8B16g^W~mX<{-0*aqS0VyA@Ac|TfF^Hk2ph*d@I<#Y1((X39TMTdh3V($! zKB&BBi1Re9Kt zEY2GkGI0UJ0t4Z>R$%i@WRsAZ;?b$;(rLazzT0JB^hD%xp!1c%2riiz!)1YV#cedD zr?y>zkxtSGTF4hO%==Xn*Kl3Hh|vP$F}5wN5CuQF%@+;i1cr~*uZ4jmOChj1eRg@y z?+7H<+^P~7EZL6QYBhG1w=H+;^bD2UimdNQ&(`;`GpVaBP&zXW6AJ~Vc~b>@ZuOP) zWJ3kYV}yju-WoiW8SP%AWR{vwhdPQDr#yN_$mmJ&ht2j2+&@XV(#_G~iMp+@N{Q*R zU2|m6@|c;%sRI5Z$$v%87X@y2Hdm~vTct+6?sj)XJ#M2|al7UI@db1qGG({rRn&7^ zx5(t*2E-lR!>r@FQ>nW?zn`ek1|AA*oYlB6@ff;^+ygzC)Vq@OgJ<%PO|;yZxVS|+ zGE{T|Ra0L3>kqS0vi*Q$eOt;8He8?c!Yn$D^499o_mz(vKj}UQ+t4%v4kb0jbn4^RA zn)U|7|U3KNP0>unfxDdIQ^n!_~m zp{N{YXeEdq#w_M|b_@pQX(e%ooRM6Ow~p`@@mg*=K{rSM+~rDOA^Vil7inqf%Ouk| z8km{=iR>KL7hKUgyOUyu+yk+`Hg}fXT&bA-9+twx_wj&xlKhXb5_*>TZ>KZKLBXBB EKe74NIRF3v literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/MonitorEntryMonthStatServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..8b87c4188d97ab3aafb4274c2a43cfdb75ceff7d GIT binary patch literal 12880 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 Q0;d7+^|9KeKBLP21J|hU4gdfE literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/MonitorEntryYearStatServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fc124fbb97c297a061adc817f38639441ac7938d GIT binary patch literal 13825 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 T-`|$+kbao$@5<})eMJ5jt9yDLfGeA7S1 z7azpL2jjDUlyUB^3QE#IpviXjW@mphv-6wz`Rm(v0MGF>1qEX&5;~F?XQ)fBWBNVM zb~`PHw}si2?Y<*?)7>?F;qBX&Fzs&7G3(N`1L;-Wec=VdTjRDfXa+oJ#zs}L$uBaD z2fMbPe@MW!b40Fam_SN}rXvlV!Pw*b+;q6xF&nKtVFl!P*`@$j7{&_49Ss>wsW5b8 zG0pH|L?}JEC(U*sO@H88=AZO7WZ!cJ>#p!RgSG7jL%Jh^CRuFTUBNJ2DAuA7`ho43 zYdjDX;S4USnALF!ml-nu9y6!}5MQPM-)dBat2(aXI-OXu+v6U=ekhE3v=c>IIXgnJ zs^TWY%wYzrQGlGv&#*Nz#?w-!QruxktjacJKUK3`vDxpogtyIGPWa3n(Vdv^Fe zR3<`(F*HUcdfG7ZixnbOT?D(by~RD=6-04zqDZ3jt5Kd#R+JEFiD9k~v*rkKE5|j( zDnqJicU&IyLsmG)O^%T7ur|wQk8_2dL2DBCE%Dk8D^NH=+b@Jfq4KS}mLq){B=I|{ zpegWfMCYBhNII7Ah#~7sFKD{a0D9xeevj%jJ$%@x9qYUo(Q0B-_`!zsX*lRrms)w% z;l3|?3z;FZ1Fv2lNlW~kz8n@^qN4pi03Q4V0{sLC|3iUI6DY#Al<8%`&jXSiT zjjeDOdHN#z2#w($?UM}2_XZhLlapDFR1G8|N7?cLCJ%67J{IERCptWeo{7+NvGHH@ zEbe12^iET)KszP!lTt_xQowjgzKTO%&**ZP)MTmr1DSbR2e|UTpEwIW!kirX31bg2 k4Z@_AM2Qp%%9xMj11ykCz{DaRM;a4PNNNNUJ{kRf0~bBTF8}}l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/MonitorInverterDailyStatServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..8f92bfe5bc8ddaabbcc9b2dd455d1e4b42d27050 GIT binary patch literal 21020 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/MonitorInverterStatServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..a12a26a1d1455178fbe7982b432bcd0ffb56a792 GIT binary patch literal 23528 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 Di)*JB literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/NHCommonServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..36f283717eeccc3e090685a1a4137873b220e3aa GIT binary patch literal 4923 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.class b/target/classes/org/springblade/modules/nh/service/impl/PowerStationServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..7805d3526a427796a79789e89659132aa7a9e732 GIT binary patch literal 59311 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 B8(jbZ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/AlarmCodeWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d5579feb832ebe47c681b907c44744991226d5b8 GIT binary patch literal 1477 zcmbVMTTc@~6#k~PEG-pE74a_Kuux<$L@_CnfYGONNx&K(r|qOnv)x%|cQO1J|AW4W z(ZulVk20QV7pX0_#+NxeXV3S2=Q1-tet!K9;5n8uNMOW4GK&;O86IoX;DK+H*QmOp zE_qEG$y+`TBH!00jKQ;R@4wq3bf{$-uFRj590^K>NC>`Jp~TS9UVEfC&eaS>!OqQ0PUsD+slAc@!!) z;G0r-ujz|nqNe?$U8AXrP|1K{wNP$~L&06)HTX`oDQjV=%k#n&K~S3S^29M2T*M^@ z(^*``48v5L#Hz(4L_J~TyGR+it-bBYCGoj)w9cV+aFyX{Z%tkOYHO^gkyxr4DYtItI55)z3~6zCEE%2+%3?sjqk)h^&=wlpuPuKb&|8|H%tdlNB4oEZ1g_a5wiJWKJx|H6VRHcb!*Y$I=c3O1eWP>S#4|2 zb`Y^PVetTS#G0eHhm>Ce^Aw+Aoig*`qSST_WqL>s(fJkCeE(uuU>@J2M zF`5{j{ZYmK z)FiJeEqTl1e&~5h2Yf^L@`W4N!O?3iJWpzdkyYEZgEfYDey(g`lwrA-rKM`2BYo~R z`1=lwuRB7wUb=5p#FK_)5*cGy9Dw#zQ}IJ}hA!`>aRK8NCNjukk|E!VZdVW}SwznvOSTru5>13 zT6#T$8@S0Z+6gJ|GBoq0|Kp?5hXMZ_O_3q7scMp8qGY>rCu~)uJ`fd$Jh_sp3a2cz zZT68f5j1RS){{Xxe>*@VmaK%fQ!{fMnCSq9lsG+>49^B-F`(^~$k=Zh)9|ICM15_` zZp)ydYI{P9mJFn(rlj`mx+{WEQ}aIbF%G?_t9_7vJ4D5yxSr(KsQ&c63UyU(*=EvH zy;ptF+z;HL(;1^j2uOfNhY?zD(Tu8{WwM4UHD5TvmCv|#rqN$pD&jxo Q%9?cM2^~WL3vK)87sQ5_w*UYD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/DeviceWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/DeviceWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c051d6332efe72d7d97bbf8c5bb3138f83d16de7 GIT binary patch literal 1435 zcmbVM+iuf95IvhFaS}qChD*6qZY6EnZlRz)q*S6@p3;ld62#*sUZt)auUXqg{Stly zUMKJr;~mdAXLfdWfByRR1Hd!Pmyp4Tg=`r);rmiER#boJ$bey~*4!0)g1f@&@{RVc?1YWJ$O~5lL1VfvlIE0f0T(S? zD&sOH7{+4~qn45o^{AHbBS*`1<*i39iBFxPbqckGs|<_B_te+PxE(S+i?k)l!I)-V zFXIMoG8B^ktqlgd*8C4L+Vn6~--$FBvM-b^8OEB9C)cB1Tk37mb}3SAs*Z45LOW)i z2D9OgLp^#tNaWOsA*Eb9a$K9?No`<_XTkG!Jb?^P2Z^86WYRAr1g5uhLn)3nsj?=+ z9c6C{EqXGPnp#lYa=M-fBTcRPc!F-|HC#Rc`G-kq3$&uDPq8r zDP`e1tak?}exexb!`Ep=<4##7dz<_S`D(pd`ik-)$X3a&%^F;yYo0w|fgX;fSbH)- zq}qhV156QXh4LO!eHlzsevVNXmFFZjK_MfyNZwEtXX=Nz@&(uaYMk6#G3EcmRWaqv M5ITc8W@A718~(|MPXGV_ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/InefficientSettingWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..06af299e77568119ad912879b220051687e1c351 GIT binary patch literal 1603 zcmbu9TTc@~6vzKlT9(!drJ{I6ykVipYJ4E3hyu~Xq+AlP#>Z(plp))lb#@j*;&)PC z#Asr8_Cp!Zv^6%pVtkpibM~Cy|IC@o&tKnu0C$FMvA6R1Pw9;qIf(sl~xG45a@jSMCka-EpQ znv7DO8yV?^?z-UqYx-gsuc+X7M=M&Fks_oLa>YY_#9fd3HFvvwC@QAV=GpLg7#8N+ zJgt}%E?~;R#WXHqnqjg5v1%;{p~tm&7fCI)l)n{uBtF+es|VV_6^3V>YijFoqczl4 z+M^!rX>Oiv^0hRs;|9Z6Gq$wN@F7?HPcSuO7@^Ou6&T_hswx;JiqaQbQN1km9xr?3 z$re?GdnK-=owuBEb0DdYtAhlGo;FfVlq2a?8J_0`)_xXLmJ07U)eLKc3OvhZQH@jG zV7p&WhNAm7JF_XwfvWCs&FjJlO|4As%9_tjq^ac}yU;_Qf|ah6e>|0ip@4qNS*0GO zc2%S+;-$1FW~T4^vSjZfZqWsZ(Gv*7K}P_iG|te>CCkVr7EZuE(?<+9X|%tA9A;@u zHv^q#dCrExGA8X6c(~PbhMcL>*vLj@(`E2Sd(x;#?OXKFE z&1>q~=NWiN57}}xvbb@vKEzG$e-f! b7hL_T(Y>~0i~om}vE?jKb_{teHtd7n$4<>N literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/InverterDataWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/InverterDataWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e7a0483c3cb193280c45c2c7880ad8b192ab02c3 GIT binary patch literal 1519 zcmbVMTTc@~6#k~PEUjxP^#b1UhJ_-dArZAmB3=@ca!J4%AE)i44B76iv%466kAFa4 z#Asr8_D31dv^AEtw#JupcFvyjedjjwI{zyL-QRD;;OD)Whf0xr?s7b9Ry{R?FO?`SRM&C zsFAr18SUx%wlJb8=^9a+(mSf*izqhK&JTT{BQNr5U&uf2*XWM)m#{{?$n5CY)Z|NL zH(+MKi?C$x5U$huCg`~WlAw`doa9wHang)*YT*d%6MZCbjimhz6fjHDZ95Re4LYT9 z6Sv4>gJ(OC6W`#xJwo~;*;rS6kxq1B$jf@~k{%p?Hj$&$#%9qrbLv U2md!#&Ze_K(Fqi>*wS}@0kWH_K>z>% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/InverterUapWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/InverterUapWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f1956efb8cca836700201b749cfa44aec2b83766 GIT binary patch literal 1505 zcmbVMTTc@~6#k~PEG-2}z2Mz?!$OfkjX^Dv2+_o(ToRzh$7wq$L$*8X>@J3%<3G?B zF`5{j{ZYmD3$CX{AR_+6$99Gl8G!_ok}uMado)Ny=uD}xD4I+)5LhiQglFTPzxsI|+Z zP`LqLlfv7hFNVpw_K&uWrb$)KsrYg#ln^CJK&911qgxA)7DdGhdNC0j+sjHx?|eqiY{eV2K`` z<+gUAgXn4#7WXhqtT~FiPx&P*kiJmDm`C1!KE*_a;ni^Te{2t Rhbw2(nJ07tB`mbh_8TpNKx&5ZHP?5|I>T6DvFc!g;YB}6OEn@-hTK2o z@4IfiqR2^U!qV++;dDcQlO3$KURa0s=FCn#H53%EOMA;DD)$B zGBZkfJTk5q@=YoH*Yw3OSyw@OPbvt}$%(=hRc@PIY9b zQ-dqi?V>I9jVx~B7Q;l>yt>Qqp-}#RY%0kpkbk$Y#E{%l4aqQ7c73@MwQ5oyh?+;5 zd|B0nR~6c|_gI-Uhb|R#V;JXohL4C-waE1v3|obv8JrVsrZs5P8McQ-dd~Jyu(Jc< zZ4=i<5)3VWt|HB$YU~LuTGB{O#ZB+KO<$NuQxiU)K_9s*Mh7%{U`uCc`-gr=QtMQ& z%)W|rUA}VdB+U<7Lo4>ZVxC?|f|eza1dRs9>AX!hPLh#KEuDaUqK^db&}n}I1(}MAiyU}N%Wk#9J=gV!xycs~ut2CevU^DJC9p{LDMo7KHi&GNRF>>1Neh);DxTu% c7hM0#aW=PfjQhqc>Uvfz%A+Yp(B_b%wFhV$Hz>!?Qt@j%r4p47uOt z?|W{1OOcb(gr$$@+qCzLFfnEhjt%M@!;=K0KpiN4sD>lec5*n6Ne5GT6fn(D8bs=5 zW|Z=HWLz)g8&deM>5E~qp@O4bttdO=%8+5TR6P)ff_uVm@tyjCY?w-)X44a4SXu1T z#5Orxz(of$d0fIQ!*mzKvc(_-J*nlp$klRN`P-34KaoDprNGi=luUL-|&#`aOLvqRx+ z6W2x(B$mIhB~4p3cZC)mX{4s&X7}8dFHEGV37=1)kK7fb0~$TBl~c5XL!Xe;I@K$; zry|{uuUtDx^GR!H#lBa}(+f$_vINqg(ZD#JH|fSnGLo64W3W&3k-{xH?QfujIXd$_ z1A@3sw=C}9E@`auTnst!9nRZhWIvLQ_4$|SMsJd=to1(0F_Oh{G4~bu6VO?tb8Ff9 z^?2|ASSq;VhAN3S}&J<%8dLSKvti literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/MonitorEntryStatWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..bc2b8b5c47f092ddbba04b2a5387bf80ac7ac8bc GIT binary patch literal 2010 zcmcIkSx*yD6#g#VXf05x0xD|Vu%*bz7NTWQK%ZJl0@nCAZEwoJbnbX(2F1VR3%-ca z#PDX~k20Q_j!DyPOpGt*Zs&aGJIg&ke|`N9U>z$73?URlIEe_N3=2Xw6w8#F(WvTb zohvmVxzaQh%P~zMZDmWf_zT0@kl*U6&*ut=uyevI-2CW!q|0maz4|;R}bhIt`V=!nA)=IC8ln7 zXJ+T19K#KU^&n&J6}Kz1t(v>lxtYW*+-4YVX;#V%@3X~!f~715+4n4Vfg!vt>YQP$ zs2P0MX;!&BP^&uKq>G}a>J?RL?%BT#+lLyZe{GPvfCeR>k*cHVb%u@XK;FSXsb+ zbc*8vW_;s}4>|k|u{Y<4pV2#Ov!A0A%?;AZ(91EcAzG*MKM-MO`E=q7k{2MECRv(u ztwWx58e!TmkX$4t%QRC99+OPV-e*Ecc!(_dm>}dFW=ZBf3>L*4Z6b``T}F>E-;cwT z$AKhqnCj-RNgSRLhb{846UafqLBEt;@dwBh5BH literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/MonitorEntryYearStatWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..db9d6813b6a9c279d09a70e47de7ef740d4e52c6 GIT binary patch literal 1631 zcmbu9TTc@~6vzKlT9(!dr6PEz-mp+)G(HehBm&W=a!J4%9;fZ3EZOd?v$L4K`H?gx zVl**4`=N|y+BG(%77Q;`T6VH4*)N)ltBU`4w6}$=_U^Y?fT7{ zCmNF1m6p5}@GuGjr43&fp?u{V*Rs#BTS6Uz_B%5Vt76T6sSYRkJLa=bvuL07ndpPXhmx?t_&HLi&vaERg-#8)I9R! zE2=KMs?e^T$IhfVaH*Rwhe@8}+>vgo7P(%7VZAuC{`0}6S_95F!^W^O&$n?@>GUAD z-M#Xe_+gFDZAx>X8aqOZmNZgRThqI4(-$Vv)c((>;AcJ%E2mQa`*vLj^krF`ZqvL~Q1PvhpI&Fkvg zryF=e58QG`yU@*uwJ8@5F-O!K#XX|>5}2p>6eBlsYa}*9E-UtotVN|4N+-DX1vma` XoL*Zx=Ko>kY&i>*oj?hT9sBq^tb?2j^@Y1h~QZHe*aoSn1heBZguoS(nG{{XOr`3w>maFEO*g+YerN;ljv(9&;I zJzf`XO=;ma12>FE7=~*qINH&QYBW-W3=4(w0YBuf$Nh%8T|E#rQ|hp+ zdOQqEGaZ)LCxdIa?%+liH!;RA+5)j`F$h5qYw;nHT5KtQEAohZ`U0*CpdH*|SU+1+ zN4HxI60Lc4ZBl!jw&Az4xP!Y4L+yylHp8bv`M<+^K3Ly*k52p=TYJ2OMv9x&I8Wd!>B& zfl}5J-AL?YU-qTxH;~+>F#D>$!!>UTdc)N2^sa39+(eqja&nHK?=o3D7xGVcxzrb? zcWKMiyUebNbWLnXd&8#sY^!Vc!Vjk*x<<+a_9uk`(va(lZ|!67wJTgmb|R@9_azn`C>lv4cSwW z%#+-lvvF-+yYhi&v=A3s+>`Byn44np7}JEBBflqi6*BrjnA_$~r7+iFH*DNy(6lN+8h8UL4QktqBc{1ew z9{(7J@eM^mO26?Bq&8CT7-8DP3>;h1C5GocIDy(%{6KZ%RJJm>j9~{OS>!OvP&mtJ z?aC90=|SzrnYv`?6+Arz~rp2*c9M zDNEZYgE3rjFrLL#OfZbLAU0bYLg-;FKSZvUo66seJW4*@C07@;gX;{h&hF_{k6XQw ztyAjOpZNT2n{Q@u3%41DV&}>h!>2;|f63I2eu(o9uEdaBQ+3HOQg(g088xd??~1BN zmV8;&gjW&Twd=MqY4%)d<;z|f`(HUqo2o{xS7%r$^sN3utg&Y2BxoQ4NzhfmAjvzl;-ner)a)_X5q%^uNz(oX3Ya39 zjU5Pak5*~i#{;t1;Hfrp=sTSE$4GxB8`VNGjxW-RULSc`?_JUZr1Qmm<}0!%Aekq* zF=ylAymnXvPiUwuv~o|y5$)U*i-(vdYL5IKQGE%_kbjDi8MzfoHbEwv>=|i`O3xNg daP13j{LRt1w{)BThn2JC%u;j$Ma;GI z_jpsd4W)(K4%{#b0;P?+%tNv28)**TY90haGYl?BUz$aRfzou%!4SjJNtCu~MxF>= zf7d4omH;Qkx>Vi<0y;BZqbs?bOgGR&8%dwid}9`{@BMtx5-Or^)N z;_)!7O!rt~pB%2>s)K8JT*ny0Xa~fy#UKPdti}6CYO${T^~fXgsWZ6FfOas>@bY9$ zJ-zPqhnh;$IH`eHq5 z*M;8Zb&o8?s%mhr#Ft?`i!EmCd{sCZgS1r!U#=`&Th$;&rPIhAYV`6_uU{1r$YYa3Rn7~ zBo?+veamgBNH@eQX>ZnK@`9SP?-=*#-K1!d0%_1y!63=IbaF{E(wUhfuut@n!ab7q zH&DU^$$Zy=ARf>ui%C2riw&NLA&0)hd3S{DN3yY=_%fa7rIMHR-X=Xjx>zpez94@L zl0}khvo@~FYnMFml$PLphkK$M5pz>49$|`53*`5h@=IZw{47t-L(wUeG278keggqB>Sq7| literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/nh/wrapper/PowerStationWrapper.class b/target/classes/org/springblade/modules/nh/wrapper/PowerStationWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..0d313246557969a0194a83986148e80c66d480b2 GIT binary patch literal 4865 zcmcIoS$ES$6#gcgh$DzeTLPs}poBUL2uN8?DI{!3odp~m(uE@1gQG;&2uTiv?)$!< z(?8IszO^r`=k)O0)2IHRp5Bp^M2@$nr#xiFnz_q&x4AR<HL?Ezj^4rybq4xx>(Q!mteQBtvte zH=|%3!{OCZiXvY!xvN>T+RcDXn-n*>llFAa5LPHE21R1&r~)G*z!q~tTM%UeG7~YZ z#|8zRD&pA4kXVhtx5E>{)JmRVy4n!et;_U_VM9*Xi<6EZTReli3`Y{FIekIbOx-GI z6WKYQ^OBL3VN-YAWN&08q>14PJgML*6`Rn_u+bMHwS_`R^ah9DC>ahP7uI;mB;|Xm z=&B;R16%O4f~_i^!8V40oG5BpT@;PHC~3vTEP2tj&5|32i+g%r_jGM!QZI0ZSb=+& zIC&sX5V{hfd>>iLaJ{7T`?D%`U?;$nE3Uvj$g69~H*M!7xdE9a- z${Hao7?!KqI!%7yH3?7}*P~(&o)4f7mmG&%o}W*naQa$t>Pa8JQRz9qr9X-h(Oz@d62UBR)7)#i*M2g9<2fX|e-{aYVsU6~}O# z!nzV_={Ex4dJfl%3|q^*9jt0;e>2%d6?j6WBBau3rCKr<8Kx7d)tMVf{W`U?l#qU$ zu9vKwtSjwY_=5nS!f6FVDu!`}p?d{z87A_1QMVb6MjccsEt&#l{FF-Pa9+U$6(blW z^DFcW3)7^65)P$enO2rt)DFar<|LaP;iM7yb)vG6B->NmNs)GdbXXJBK|3cV~zMJ<>^!{JJy1OR+eW*#Wb!^ zx(8IUGVQvl;@eVFBxOq@I29*slA&c-NUiBe>RlT-Iaewq#rxLEs5nc#Bpx)umEJ%#Ev04z z!>00-ShSbYVt!5fPBipy?Ib@*DSLhu#K!U{UaJp)q?E+}XWX^)w5N>%b;puJb@kWU zlAy71^_;b~3~H>amVqs%-y_G?9GQCH8GefP1KC#^BdjMd+T;G6v|9GIyTO%89v9AI zKeQ`ymm%&05SG6s8ydr*hGkXF8itO*WiwZ(tuZV>1TjXxHboq$h9WoRC$rDS9l9S`-4B2WoM+w4*(>{64qBsu;;n7VD3O-ix2|lI!yniF}pEicIAm+K2(u>)=P8|AmU0%%S7TQ5gY31wBu&|;` zfr1OVm8WOj?vxPoB|G{^N_+AN8C?mr1&mYF4*uI_pt3%1^zIj`9o9`VZFoExM|Wo{ zzL0mSFIAMV5XS<8I$~Me@n3e_Rq!oCPlcbVnXKS@hVAu9sV4^h!A?@zM3;VG9jO1J zjm8=J(r9KhxAxry`;C4y;T0O?w%mM`Ml~S7Yj~Z$+Hn#l$pC||CQEQ zg#RFY(bbWtB=r={%`|uQcg5~OeFPf2XdD}me1Ts1F9F~PJ)}?ix_1N|p>E>EHRvQY zPIOu1Xv`CRE2Cwpn&Ub#NM*l}oh>wLef{^bnc)t$k3Gb$8T#7IKx4um`x)+H-}v5v z`#8{q>Aez3vu{C{&pw0>dbRZ6488cy`iS}hvCD`w6fjGwJFpuD<_J*_Vwk73W|$-` zus~83m#M5}DnV4C1qC9u>8}Ylh>#w{p(WBt>6C2*`Vd3k10;d_c&Q2ZaP~f4Zo(rR zUcntiZp6pBDPUa2x(yB?WInDSs&d7pl@NoojKQNt%1{!pDs&Tm=xC(SO;m<%oI-QC zVd!q+7D+A(-6C#RD!b?_qmh(dtW-8b%C0q3_9oscQx-o>N!cAL8>Cr!x4p0b5z=>X zc_kMsYoI;!es7y^VML*u9JQXqL`>pW^o!KF3%1npR@8@(sSj57_b#(K@B? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/constant/SourceConstants.class b/target/classes/org/springblade/modules/operation/constant/SourceConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..e360ea98b1c1af2f6619c50bcd9027527e55d5b3 GIT binary patch literal 698 zcmbW!%TC)+5C-6Xa&^;CXbQAkTiSA6U~a3HA|VuD5n+^=AlRUjCfYD06(x&Knm$RGDT#O6O3G`TV?wyXxmQXN;hLc zZrcmIct?<4TCV3|3BH9<+wR;%UeIp%s-^Agu+{Z-#}03Fq+%}&>}D8rVim-8E$l{3 zz1L?)kU1|`9YLw`uTw2fN_`g$4gRYuzpE__31p3poujga5n`QiPaO;Ihz&v3J*<{_ zHcoD`_P%pcwJz>puo`)**#eRYT z*pHR>!j={cSG+(Ub*~#ba#h1;rc?==%CD=)OWaRp;!BTL-LCxqqPUI1^X~S&q|fM! zMXo06!yNK_KcIjKykg{qs1%Cy8^go&Tf-%K)bJSn-tY%{((n{LV|bSSWH{+JXE^Ei t*>H)I@wJd+{K5(Co`LMj1LVFp@>j;>7)WEDvDo|0VgZYkV2Lq><-ab}gMa`4 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/controller/AnnouncementReadinfoController.class b/target/classes/org/springblade/modules/operation/controller/AnnouncementReadinfoController.class new file mode 100644 index 0000000000000000000000000000000000000000..cbaa75aea41cca6597b345741dc37078acb83341 GIT binary patch literal 1982 zcmb_dTW=dh6#mAEV`7^mgf?vhy%(?($WYos!EHrTQBms9%8Bw&p2oXlXOi8WWp>uV zZ@j<@Qu~GwLKK1W9s~#qh#$c3z=`-1h_iO;I2ROyc$l3zGw1T1>;C@N&%XhLtJX(rp(kuj8^5<>8IJD^%|bKW z8Jz-<44z)Z0x?*#C`a+vn}NIug~|sop)a843p!g%$OPFNmZ# z2Lmc(hNG=V-?bjB|M}tPn-AAE9h;8a@-z`i9ag>8iAdk|*32(xXUy9m=5BcTgz(Ti=Y YrwHpMqF?ReeGQk1=k*A0Brr>V1IHO`yZ`_I literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/controller/OperationRoleController.class b/target/classes/org/springblade/modules/operation/controller/OperationRoleController.class new file mode 100644 index 0000000000000000000000000000000000000000..448d97354f484b5e20a4096c5839041bc525f994 GIT binary patch literal 12870 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 Y!QbRQZ~TBaF8&h$<-`0gzfTqa51F!~T>t<8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/controller/OperationServiceMeasuresController.class b/target/classes/org/springblade/modules/operation/controller/OperationServiceMeasuresController.class new file mode 100644 index 0000000000000000000000000000000000000000..711fd8116c96a6eaa805d72594a5ceb4f68844bc GIT binary patch literal 10808 zcmd5?33wFc8Gip}2|~rzcCtH!A-g-v&TKID&>kwa z#iO-UsWMWrlZ?QGiA7zozNq8!cEz+ zn3>YMGB>-;RKFE5*P4ctPMOY%>=K3P*_{Q8g0Bjlos|!D`~&okaz_T#+QVo>QwU)V zp}E&|FHf7Pfz2r+NzN25Z|mG{^c#B2Nc8Gm zJ=@KQ+dii=V#oC!!;V`~JFUkDdMFkr8B05q3~5t5K0!y{A;k22lI`O#9?c<4&@d4# z3ePKqS1j&oIag>P{;q_nu)3{!i~+A?tBBJOTB)4M2$S}9TQ?J~Fs9(d z5KhuC6(=inRHnVtS4CO6Syk2dq^(#~VQt%-Dj-)$mew={(=?ol(-azg7B_V%>}jjw zjOxWg;a8S~N3P#4D~U~AL^}gBLpWW-8JH!WSK!N@eY&`n?i`Dx8CTb?QJd=O`*$q4pGsM;-+f|JiS8*d#BA6r=F+qq5yB&wPN~O zBiWv3yDMUb<5VPG*-7VXSOA?ON_uSFR>`Fb;2w_yjvZGD4iL*cSHpQYpN=mW#V)Tt zMwFFeS;3hSye`ym5iV9Z-7#YfhvmYtZw&VxBcA_`8yp8$3pFf4yTT;L=r@B@l1XL? zmlfM|ah&%2GwPOi(3Kmz+UIN$A6=qhDV{^UIj-TR9fetKTZ%(Kfwy|8W0{8KSfLP3 zC+QpJ@_`P9yve29cZ(=%m4?-_TobmsQdfAJRnF z`^bx!*}5i&Ik+X364hXWm`^jWk$S0|zbmY)UiVHd(Kjuz%M5i?dc zm#>niVf15X2-j#Bz_sNnS)Yz4KyQ;Tj0Rs>3Mt{K&qy(iN*x(9U45JDCiOM^Pr@8; zY%rZ9jo8djq5=2ClJxI*$9ek7TM;DQO<}wgFAL%28m`0j3JVHl;f1vx+jjMcn~G(< zC}=4d9u`{(%U!Ba+ct;9UWr$Q@M;Y=h&{~Asn$yL+kIv>P?=FbG|=@}igd)2v9+eV z&5o`!;$|2(VOI#R(Qq?ft1ux)#OITx-8RFaDMV>NJhh_{yBRZujaE3B*HxMS#yXxhG=t~XM2Wx5VoYRX!M!omNw9u`;2;Ml#| zQi^fvhBVvaxVg!4Eb47pB4M*2q$QHa3-XTHDy;9cQ+@hQvq$e?c+rjQTK!VfWe=2; zM8^uqD>7JY=ov#@;?-Ea%ysD={Tj=#2jW&j?@L%)%?q~Y(Q));Nh_D${qcxUv{O+t zRm&<%F$s0DICORzy{u^T{_}O)a7K~H?&rpkla9xY6w9%OBM-l06rZx(* z^AzBZ!bbjy^lG=fLpW-lA~o=xDH!0e@5=IGJ(YZ`Qmr)qmZxNh(%4N%c?y zhhJ_-2P9(nqarB@{3}6K&-+h(c>l;92YKP7d*T-JY>3kkxsnBZ71Zp*9@(`gyV9Q) z6%33s)p4Gv^77@VY+GY-T-8#X&E#yKwwxVelW_F<$BumH_TgRoj_zff(dbtSvb!$9 zT8Imt8hY&L9s7^ob>r}DySO05AZMjaE{GJQp!U+Z95ccu#&18bU>hLqZaEr@ zP)J-^0I`}Q{8>o01eN(l-aAQeJkl@*fo`MOv<2uVP0tbbnMczg!h84$(vl z7=HNh@J)yOITK&gRufQZoFahA?@R^Aq*=Lc*z{*9vpAUuMCH8zEi-aq>zeDogJM+S zjJ%uWHY%LZ?HZ9j7T!V68t%5!sffASlCE}kIaP9K7qqJjDa{utHZ>Q%j=itn7 z`BK#Hik;>LH9f3msF@*kx~9%h)LGs%BoMr>PVO)`cXDm%ZpIrichrp=OK93ZV~vrB z@)rQJI&HfzJ?dRsaW4`a=x>z#)_zr<9h4Xl1shfvu~@g|n(Y&CUvs^h9mXWpreQZ8 znxN(?^i*T+$1qhWVX@+8pfu-))dHo5)H$3Nt8@8kCTH6jGxmncG$M|WS7+pT=QAX} zJn03}K1P8ys`J@s7Mhbcu4X^4btDpI${WR*PDowE;a?HIrK}*NE@A&Z_EJ_BzR6%F ze`E4eikG=xer3X|Fs~oMAnNcazg;cALE-1LxgUU(~0U!Jc1>GS0EH%}5EIq+XpRI3}VC!2Mww}ze^=+T6?{Hg74at9(gul0i zY=573L`e(qgFrDUo+RwHX4yT63&`pG5s5j~bu( zcYaikvmck>>?aw{o+{u>VHhKU!j_Xkk>GgGv<~7Dv7yB|V`}hlB|Y4}tjA|@k0JwJ86LzXUd0D9cMr zqP(RH%BS(yoGhQFnu<04w+za^XHfn_Q2x_X@nli)clq}(4g{6TxRrvbY64|H&QFPf zi~QKJsBUWAATB$^XolJ$Y#zi5H;b`OtviTF4HnhY*?JElPH){YwZ6p}Li)Yj?T42s zqy_BdZ{F^~$$Z;08*jxz?DLpg>YtJ|=S4JUKh!KzwW^L7i9yw?2GVN8c`BqDDZ<&9 zgfFNj(v|Sz$5z=X;m2PU&aN8ARbqB0)N%n7L%0$+UNBNxR&?1It4;_+r^W}OQ_a4D z#XDMSJ<*K{M&c&dsR?`_(RV371$B7tqj<^Od5=JeBt*Y#Sh*7XafAd}-;u*v&cmL> zvo2DP2@}F<__W&oi$754dTWJ`F$Gy)WS7Kp5*7mc`dIS#4USK zU%OTB_@$-(BHw|L%UM%GG-7RnRuIKZ5U(4IQ>zTa1zvW%t z^<-YZyX8IJb(3cU2Oh)zD_agciuZ{eeKq^cE%TU@Xi2Q-Qj>UmE3e0+?jM*I!c8jN z`ZRynQKu&JZVf}vNBKz=suQ{LB<}M?YHLMp6$4o9U2Cmv?cLg&L}=}$y{xtE_ukBICcBgDQV)K=$-JF;@BjYC_rKoo z%zySi31F5uaS*Cd9YKwTTGR=gYiHYaCzG|(?QKaTVd^P6kxQD6ZfDG_;aYZDkK1WC zYbTRtR$rWdxZKQcvf}27&Wt&)@LJ%=!m7Xoe<-l9wfts|M_6wO+sdcZ97R0_MG)06 z7@EM8VzO~NOF=Talgni6tgDm7ge7GWXlOUxr8zU(xjJiPD2>32`f_ z+Xgf4Hcx4d+bO-xuv1pT&grSnHmbtOBy$e6LE2P_N6^tXN@9ADWb;M&j@Y zj?gd)qXp)dr@PrRK`70Fd1~8oRx%;b(ln(4_*6iW=oyJI8jixz0`;C)s}>7f(^LWd z%2YvRmzQ3V+GK}HziKhL9E))gjMp#$69tYbCa7@e+ICVmGM2tfpeA9shQO(za4xf2 zLH1Y;lhH&M$r$aX?`qP)1!B~_LQl@Ml6tGZvAB848i}0KG@Onz7&08!aC45p#HKZ+pe(|WQu7QA z&6p_=&1Gl+b8cq~oo_@KsMbh1W@~r{-YK9ZXcgC7?r+y;!E#ro7sXjU=E|TwPvAnI zq=M8UBhws+PxF$7gUqLrdB<+huNyY%-ELbMZQXkxebZ4C2pV7+8&WMR2}`HMl@v z&KuT^K$W>s;EWK!1prb=)4e?Vk0d7FqhT#B6c}x8k?B7yQV5(?E=mO8Rg^=6QP4nJ z1aS=sF#I+3Zvwf-(a)kst>lQ&+O<+#(U^~{s`~I9B?f_Z4eMbE9G)^dq{ZTfyV`Qs z=WR!iJ~pVLyo&{NMbajSu%+ zz3afv`y)uve8v2i#vgM_+)Re%toiay6gDyuY}Akic?_@2JQ_-iYLTarI?q}HSt(eD zk!AFkbrHjgzTR~+`a=GZX^9V(nNEf%HiJRKm$y^{-V?Q*N?m~&exO+uMGl)H*sNg- z=!?e}>p=y|HrsafxSLHD+{iDB86Rd^Y0I50P~9|z#NLPZNALj+AC#aN*Nagry~*w{ zbqZk_N$Vmr;l&2}9y4f5DwAAfy6f%4c}B{NVk<6=;KLd&!AAs!_7d^rWae0JIK)GO zTX5HwdTbLIL^@swmg~1`xLk(vI&)*rNIH_QD>Ymt>Gj?4Tq~WBZ?DmCtz`K~lF0`b zBPo47yUvK4N?Y}~Uf}eB{k-2u6~)J}J%Sth2;_OL-2WyGAD8=&4d1_4JN0Ol^FN{C zRylvtK=YSd?P=z~tXYrSi@c`)Fe0hnsbPntu93PljxTipz+yC4ER8TU;_Ql6e?xXtmPjdAU@ZnO$MDC8?WOs~tCz zs|*Ul-~PiIcfG~Hu&9EfivhT@zO$KeG_3IyIH!VbDlF*1_-b zx>1;`pKZD<;4-qtV?Cov29^$b9+0zC#njI1m213@eUoh3S)SpUZ^h0MPqn&Knlx1vonwF3)!o~-9o+dCgM`$Nz*QCdNdLGEw?^Q! zC*NU~x7yqiTBQX~nKqp=Z!gphMP9 z359T#l=ZNgZ@&UOI7`?{I9D@<6tFB?c2?*W>u11rJzPb7f=e|Cuwf~g*^fB}+K%T# z0Wt%J^(D3wjO)4-Tk4{Qy6Cy-;qJTc5ICxD0+Gi>eUiv%MjEe_SM`l|pu9?!I*bvwTGr z(2{p9URwB6Sv(nud7(7ezR4{;+H%VX3&?|8_Z@ih`tI#J4&HJP3wJN;$kpYtSwSTf zs3y%EOk(@H_8q)o*TGx2bzirg#Ilsy%9&=1*X17auMjqZn@=)P>PcNoIR zu--}}Onxjnw~`P~_(}~7{KZOgGJIlhTW5Nm|3tRZ!DF0$4hYzX^)`}z(<(3_@UXvy z0*CQDAl^ZQ`c-Fixt+_#%>|Zh(I$l1k!MVP-*vp)m4|Tw!;}jwj@!GO2s@OeDth-e z5{EnMdOt!2U?vNbfqMYgXm|7#hU`X;= z^uUckNi36ne~bM z%rB!H#}8r`YVZ($t(E@?fcG&|ABC9Kg~%QpR)sHM_@XY1IBqwN?7}e*^L-WM-ze|E z5`N8Iibpsa>#fCS@j3n?6+DW^NPif=>^#U(6?XF}Ypq9ldz@Dly0C}$NnE&>6Zc&J z;ou2;p5rH5@Dz8h!WSKU314>b6+ZkbzQ(DN)ARXD?%p6d-GfO2t>jlRR~=w(4Vk<^ zF*nki?lTvq_+Q7Ql`EIF(p(MHMH zab1`)Z4ahbp{pZ%sjWja1Ti$qeb>d3=w|Hz=0BPwIJ=y(d556RFoh zRZ6eVbLdI%!w?C6l$YSgc?o`!m*A)P8F!Gnoy*;%Zigro?7@lBPN(+Ty-x9!38-~Q zf$t%B0YB$^-_kFTOy0u3;A79izsz&-t2`IK_PF>BrxTGQdHXG|{k#TCJIf#4yaalP z)o?D)4CV5oez^3I8Ng#HmoMhIJdo$|V5MCC4!`%&P^`;YpOLieGUElM$k)#D4z1QPT zjOHQvWbDM5xJwB)+uNl8lo>?pKPen{#;f?30^AI|hJTY*Jx;>w_zzV$8N=!HPm`_$ zy%%8Q%KvhunneQsEC$h91-rwll_R{$1+Vc^&LFA^sw)HV&AvYmE=N>lP8=3+X1ad6#Yyo%%T3snZzgq$a%3=()(;fLWsj$z`OG?|tyqV(8GQ zs24I4OR~>V0Wt<(H+45IYOR_zZ8tvj0Dq6+CG`C-AK-o1wAiJ)aoH`Xt)4YTzU05P zyreqizecXTqJ9VF^L};gy50EbEjW|o8)G-C@pO)FiQT5g<2b$}wo{EqaC}$nUNs)1 zF!1m`+;@KL{>Sm@r%2Z`vnSjfC7cYMSB2Ch@VKnxYbsI*rc5u@_OaM8%w4Ax=>wgs08GcS~n=A{VAz&$%L<^E|8>>JqL2bCxCIk~M7NmBvJJ}4`-C1U418Hjw zSd?lJsaT~qpaR9(0=6Itp!W8ue+Nn6YyW`$`kcA!&R#;6;?G|{Y*T??HyB#x7^9fmOSB}h_-2{MO_Ht2&N$- z@azN16PO;?Y^mdV%~thNlAT>`Vaz~% z2s0!25*h@W3KfnTrl#12kx5MJ#REgaJcF69ZGmSSC!hE{55L7W~ z9P?-?TepYuO|-!o3!@p2gz#ttU&8`{)Eo+6uWA(gmAeGMYKG z%T&|kqri(E7$0O?0Li+9YFRX7)JQ75s*%)VMn*{v^^)3FI+3x+Zu)~1cg0)EekocB zZs2h6u?QBSh2Bc&7VWpbrF@B=o>U^|iVjL4RhqFlf+big5F)B=YMe2%tEGs2h1PJi zn-Wx#442$ewn)Jaisca~cwFEiOG}Voc@gLCerhUU1yYN2orDS{B4sM46zn83!4nZY zDfMsY(^D}S#qCKWlX46vU$2Z{6}}-5$)pKf>v6(DU{R3lUWf-M;s^b18M@z$pb@JD z7PRax&H{zeC-+|dK_p3aK-Pk& zYVXqRem*fBrEE*!u~JqjHhe9%3e2DQN-=tfTn+auV4os;Docd?U2HpoS;9cr|LG6e~k63&2X zGNNS7qPLZP+fFN+`A3#34s>f)n)tO~2AY&`h3Oz*882(?4C8rxH-z00?7<5H%L@(Q z5VF@WY$a-&31zLU;B~TJ|&o)q`pxLp&kH zr@_-s5sNcwGrh_|T{VW1dP*5c>3!OYeE~U^(w^3H#lo%0QleqTG_#V)Krp5{bVIQY zsPQ-(#la^PL$&fmWY=?H$jT&>syReT-no2X{FNgD(_)$xHTASx=*jgPC!Hgh-EXco&5ok6Kj zczMssB(#4SeH{C=0<86c^dM!BrhyTse-N0HA9h1&KlD}x=5qC#;-CqPc&(kJ-HyOI zxkuSFp1jp-lX5Q?n50aFrYymp9LLh1pT1J#Y9&GZlG_zb2e(I#jU9dU?%8W(Y`-3h zX>3HR(oVm2kN}uZmQT^k7Bpf4 z1NXI{Yz~#^5v3>o{r_O#HD4fPmwwVYl75w>oX@>kN^#@Mc6Z|D+Y^`Gy>s=#_|fYE zn@Y4@foQ*va=$V_rF$2eZH5)7G}Dz}11>@EreXTnTbCzJUQ{M79O4(Xc2oS=@x$!$ z7-AEze>^^XXl(cv@tRuF7<5XN`y@q#xa98e%{!l-7(06A?x}M!Z97FmrtKOxgA2@Z zyR~ewar^P(pFf2xEz0h|ZMk-^ACxU$na!bW#p;}JmkTG2*rFYr>f|<<0*lMvPhji+ zkk%(_rJZ~}TXF5YEU#)wH`UQiW0!A@y>`QG-kq~@VfHF+0A)wbE2BwnfuzO4Jx0ci zY8!RgZ$6yo;9SeQTsDWi-YA>6?AYzxa%P+RS?W~%T!S^!>dRf5xx{OkqA9Y~xTS1Y zWqUTejD~PSp3rXcESu|?_0*s- zpn3OP#LYw7Mm1_1vT(c?%p2ZBSLkLn72}=Yf)2wN$fWOmxXD|%ogGPu>3ag{sKiy1 zCt{tNNJuO4lIs(CytEmd10uW6$d*(}Go5pjW`*!qfrUk=OMwaD?>v0odn(h5iyV*e z^7MIXw(Q{GPe^D#VgegeuUvbOh6{aI6B~=ie~DfiB)= zZiC9FW_Lb%5#=wgL<|~bPNT%V=;Q1-N2>*gfqs4}pkp7u7joeMCnoklSV$tpXJZS} z*v~1Z1q-%?3U}*Ae9b~8P5DYRP+U2H0}+6Y0iRa#!L7y_nF6C7U5-TFw8yX@S8jF-J$He z!yNN~zQmU<&{s+T{fQ6sh!6DD9MG9AP=VKS7?0wosB)ZRQsXKLZa~GH3jn};pe0>rG7PYXyNCa;eAvozHScP{yA9T_tl4tb}xt5M% zMJ039Q@Qx4aZGzMK&Sew>Fd4N;Bp#Y^C&~}%GhY+$B&C&P>35B@A^u;=bQDERO**b zT(nkDL~&eX$9@%zm0vT+T^_CFD#_p(UXZs{l!9>Df#7m|Mi#;h4?-ZQi$y zrB6$x&lCmo*`R{I!}~O?%tCLFkk$Nd@)Ufw0;{XY@^v?`1!(A;Th-7tg6BTslwd4> zK<<8s`S_!w`3hG=R`aGT@0)NA=N$_);R1e784=8K;=3vv0q)2}T1+CHUg<=@IX+(C z$48t?Umy60|KKD3(C5w`>Qmvsdd9PRc=2^6rzO`QBmy_By0mEz*gTxoJWM3=y=U`k z=GZFy$ys{I(M9Iq%lv&MOPi1IX9{Mz{EJlMDz5RZ%=91ga|`l6X<Ll`9j97IHe6WgQRK@8g6S?|n( zD}B-(!BpaGrO~gw5#WF zpO)uYc6R3fzyJNN_y4|s^yOcj`7D6d;`S!gpf-X!4fSXc=(jV&x|7aWso|l75jXXu z9nU6AN4L{v#&9h=rN``)o3RrKGox<}ZVp(k*_%u!>`~KPpL;GaFE=ebV!+JowPL0~ zUlq$a-eA42>|(yCo@O+nDT1hmW@rL;R92%ZxdJW2rW?jCu%okokFnR#6Gm!SA8@6q zdb+AmByI1p^}Tj^qYZBDiDD*NB52ic8QKJ{Emk3BXH4C-?SyWmEq$9nUEFXDfm_0O zwhrwvV{REdMYFkDJ7z~PN5kc~LZGYcYRR-tmh|nZ=8pHG-O;Ksy z>$7HNlz3uxQXewxq!qWbdUAA#vE-x^S%=|7wUVZ5NNw~!DY&Peu_^z>n=ubpM{tdX zYcXG7$#kR;s3U#%0D<1r`Pykhh~he2A3=wPg}6cBvb@XtQm#2{W+;BIk;s}`cL~ht z?CS~zg+GEe?nGAv-5M5SiNM-oTb1Tkg%}ags8XM^!AzL08J7!}S+;9XX2UWKI&Nef zIUF2w%Vv+~#iO0m^G=D+r>)0y<3Z~4Dh)Sdxj?gH>^1$26xdxFfs>$#yOX5ehV5Ic z$QKFWRt>k|)dDlJX$ET^#HLpW#7;>8D>d|Bl|X~z8gAAR=;+*8N-xFfEa9!ua64W@ z%JSfmj|Y4ai^5^zQ&uQ&0utLPrL5Di9vi4+Tm@Oq(zDCR=-L^^|VJ~ zlmIJAmfOXM<>pv?U}H8FlPum7!Jxp6#g5B|6)`aYQ?9;FmI3SiUs3!9-Wb774R_&9 zWVC5os8lb38uLDZSBHbk-@`)A&FyM=7WQw+h`n3GJ-AokD)WB1Rh4Brfen>dF60G2 z;uub9K^1TPmg6!)h7gM&uE7L(zjJc?$vKX`fi&?3UU9Q_tt2<1cDgLDgr9hAAdzXX zut(tXq%k7R9W&e=mb*JJJbB=Tu#JM0Efv-XuC`#}{RhV%Jv#p6!{d)XJ^s?M^DiHr zIB??P(dQ?gJUMajI4>gLPQI=fe<^pG_s7h{Bq=K&MUlpR5o9zta3`xHJR!=Ay>gOg zk_OLT0vV~_v`FRL={ZTfE4P3xQZpDgfrW1H!u8G~jx(vCUn+wy@j&}?Vc_Y`2%=M1iz`_t$3TjvSK@{JR7oYSC6@w zL@vktx|-y%%1T-88iCr*uE8kw<3I%O(D0xPx&`_8u~K{O5mTp)EF-}}C+;N}%N3Sr zeXPefo9=EqzQstIQ9Oi)BY3BVNANCz*1QnUi~^0j4Ttd-XOwc)zD7L8azn}q$_**v zpoVwjJp^dpmo*ZM%7Sen$W!XSACGJJ9l2B?me*OSxP1DAh9{*qS8;`al#GO|oHDzN zn5q2Kh~E>qZEB90l;NT{jDr!pw?J19pj`j`8a^P`pI?6cyx|%#Ajcoka8!<8IMw(8 zYdFPCJ7YHD!$k=jm?jj9{w*o}n1<)1bY*Y)%~yY;eD+ZdACu4KNMGc98d~ZT(hFf) z3F^-Xjtg9u_jDhdwqYZ&HZz<}axa#tn3kJCBTfoj)0bjBYsKe#`_}xp$y`)nrP{tI zK8a7uaQ^)wp9f6D?W7^jGG3BhK}!-0C@CBBn~iE{dPtI9__g#~DRWCUIb>$G8$$^O zWLv)-GZKRa0r9tgv(DXZF#@-g2rgwYa(k6MD^b)~tgPEYj`B4SSYO3b6-s!@Z}o!f zP9wv-WV};{rkpzk9w^K6Wf>&j4X%0xkgXxMx!bZV#FFNq`=8x-8GqvNLA2qS_?3OL`Cd z=_4s?m$`gTNRFegOZ8!xYa`QPc z;$)LaBg4|E;o^zsCLVlwTb|z?6$cv{kD z%f~04IL!^;KT7Z$^*hRNf9Xb4`8a^>yT71!1R$4fV5NKExdRuTcz)uMr^XMR;0235 zkMQJCZ5eVA-Mf-1L};)}`_Eqd?BnB)9JzG(S!qaxKp^H@PBj_oY@qCp>6kH=XI{bm z1{OH7pQy6)=wgM_;yEL?2r(=6mZBzQ+LASuwY+{tpu2hm)LwCV?m)!bNGCs54Yjmt zV&QQIE0K^os=t+)sp`c*!&TnT@L6~0j$gq_o_VwazfB3HYR0d8g483y42G1DdQ~I8 zQlqN`zpE(9sx(h1AwrvdNn8;1G-B~;-Rqy1mL+nTE=>%W@e}99-+9Js`l$YBNqY6*j7epfpHBkU zhmvfviL@}uJvKtJ^Bbb*fSt|6%#D_8nL5f=o;*+T8=++~&w26|^2*dZF^^!}{B$~a zI#boAnC}U$aCYV2D26Lzo~c!+=Urpi(YG72v$&$j@wrnjcC(W`nt1oI@%OMfZ(YaJ z7sut%ve%6{Ee)b0Di(?xB4UvyIz?AO>+Czhb1i2WJfv`K*-6Ya5^lkbhs$`~TVs=v zit}A+N55^4WD8EO{SLF#>)u3J(e&IEdRpc*!AH2>NF<~|ds^|~mU^)yie9l)!(;eF ztI*XEdhxzENfuT?wc#@dACaUT(3G!=ikrpqh`5Evn&MVQWBwE(h-dZYlmW$)&W(XF zpZ;I6UC4C4si$epM#1+!*G?K#>Qt4@sMeQCnHhC@V>%JR7+qMRc)3`Jh}DeQsfUui zy}-c&zO#RTcIGLCd~46EW?sL57g2{X{@Nzr>GQj_`vr)_rxB^a<|U^v<0S9Z;3fVa zh${Kc6#i*uCOO!+V1GaN1dT!4k^S$@6DPYwP6f5`8JocKo^ z_{VoaIQSEMj@O^>!x!*H4*8OUFXJl?zRH_l!`FRu&v1%-!P`wpv$ia4$K2DnsunvI z*PgC%pG`?|FIy0lOmsX=W{1Mki^ zdB@k_+Z8qVyFi2Q1R8ud(BONJ_LR|dJ1r-prP+_Bn`)2`qy}Z+eG2p(Z&(g=GeLi! z&;8JmaDtHed*1d!<{ttG{}@0x??D*n@Fs{k{F>nB0zb_>n^Qk7@`u2s9K>}##F;+C zTWSbsMKQ_)A(S(7C}&oK@}B~fKL}9%bG0b{1^-HCN<(g@Yh+rsD3nW1V|8sgn2#x# zUPiX$V7B-f$?1GQe2xnHUX~fz!%wMc|1ALh?*Zulkf8rl*|JMI^}qP}p@Sdc$2*y_ zKcSS|y`Sdq3H&TaEyb2zTh`J~PGV_~RQ!05z)L~@JOKUQ0q9@kLC=-};Di2U7~nnl zl^?BN<+o(Sm5bYYPvH*9AY*vl8N8n78H!(a?2zW4TX!07uEENB=Am&0!$8}}-1@fU zDcGOl>@eFL;VZ^xaV3sn5fABC;3G=8HQp*Y|Ey#f{f|n9l|mj%%8XelYJ_w-|9C;v ziF$^?BFw_qL<2EO-tm0QnIgiO-l)dhs3wk*rkYVp(MqzALKXXpXwGyw_7%;(>4fH+ zPR#IvROU{5tumbuGXq!iCZ+BZk~d^{7P~fE*0smWyH>P{%P7rrt!SmV64#2hz_mfD zi&?}c+EF>x-zsJkzC^i(-_i`x?w2syz4%24=`U|r^T?<-gfN=(PgKQ4fRI00Tccu* zxSXJ+*suG!d8m5~Z||>Jy?6}2^>N;x$B$UC>EgHeec9r+N5}Bnhf!a1{6@ni<>ZD19Ku#{1(%=8>zSzgCFVu&kchVbjDJ5-C$8k( z8gZ5K0|QM^6LB@?DcTj+h-+!IA39>bbio2~9Y>SD#r53eyTxL$3_lPzikle8w}};e O7Uk7Su}ZAL++PD3B&Nmy literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/controller/OperationSiteRoleController.class b/target/classes/org/springblade/modules/operation/controller/OperationSiteRoleController.class new file mode 100644 index 0000000000000000000000000000000000000000..6fada589824a8ac0ef7a342c5ee7aac2601c5b8d GIT binary patch literal 10032 zcmd5?349dQ9sXXfO_qU#5Ksga5Hwtlw?Y8rlxQFb0tH&_WOoQdc6XMYSs>b4TPuPV zud0=Lfr@8~XcYol?R}`VcdNY*l0xlmFKxB`-kY7xB)iEjSpAjXZ?m&A@BQERzmMVh zxAs2^V7fS~3MD8Fp-e+LDg@@+saD-drmRG3OU#IxdfbktW2U3qNi$`*mYvWecEU~B zv6z|CoBf+hEZ1CY$IRK;X97oOxA;$&n5p$v#1xp@RQMRjTdX(c9Fif^5Jn}cLI`UZ z08LqO_T6U!F3OWJ2Jg`lhwUdP9#HiB`S2 zWvv-;8^$+9?6}@y*l{arr}cPy3nkzrV`+y%AZ<#*Bk1VsBr!cmvS9!Qp*n;b4TDiD zFuOOrT*($>S)hWzn-dh_y!zt7Wtb#CIV^@yM|Bj2mbBN}x|wh-w>?+ubJhJYhT*6X zj@B?7#|X?SOmu@M{9J-rt(3QXw{w|Z)=Ye(Fgk=W8cx7if#Z8qQNc1$;tmcCe^ENZxhz?pfCx4>>? zpeJfL3H6i)J=$!t99LjUt~AuSju}bQ=x52Wu#~3in^W4gV!GU_9CCt&iI^l1qMNpbld`8bi21!-Z%PXm}ez zpYn|v@s=okaxO#GVNz;RTYDstT4w2m8k(_4pq!~H)=q#0Da#PiX1UqSw`5*A5s{g% zAp}N^Q~Hh!loSml;d*Y)jH!NwaWR&LuuQ{pyhmVgcN%F-xMr)&pP}_eENwQg78q9F z7)&&o6$}n5u_}c3YIq+m5t#Y5Wg}2xt`j&Xk0k~SB%8{+F=uW`n|!|p11$nanHyz^ zkP|-y<`jw@0o&@8XM=$;3NwV&8d|YNpuTVU%RP=hhkmw{R}Ap36=w{sqsqG($aqOD z1lDS31J@lDH`-+N6*1i9mb=DR9R2*npnQD)$|Y6_mPN;P-MO{%+8v#@ZtA@0_RhUK z4?cMF!7Wd8-MYJL>#l=49tt5TFrzp4+^A%3jF_?91UFaS4kHC81Xn{E>-#F&JOWC7 zYLh363QtJ_Dalfskzy*4B@?5GzQ%Qv`h5P8#UXDjHk~Am*9^vr4D-3Xdw0}vDvt$L zWa7)RFgBt+gv&Hsjt>Z&+*=4LaJJaCt4G{aEbBd)LYZMq;gDD8)*HdbN_gRi9H%#jh;j7k#MY5157*A?cvv=MV8wCgq8AW8N- z^Fk}Z4OieM4L3{FBS^^)D@IIud1|#0F_pk7af`s&{d;(yF)EDPa9s$W=)sfcv-13H z8a^q{AC>?7ZUI%IS+2iJ!`*WIxc=5Jv04*Miz%}b+k3f8-vLBYzgNS3lDd*B^^;-0 zPCk1;!-MkKFe&q_?gB?WEc0m4vHe&X!lMFXx;5I!ZmZRZ%}lkX<1AaHPb6hHuf(V6 zw2cYIUMo7v%RHl^CY?f=kLuULcm$70v)$b*Yx}Wa8I>PpLYCoX?fuJTZ)JIz~gQ6O~IL$6EZZ5MNi%OZ9 zNZ2gkXoKYHi~#-BlGzP*s!iWuw&*Pk8oH5PtDkSWEZ~x|#$!FBN(Pn=x^I5dRmIfG z1eR{mH(G|>9=8&DTf$mxp0PGS$I)jdt?p#)_4ksZor;>NQr1j@sin!Xb!UUo%KAiK zf4XiPP7e~<{oELG(($;FVsTY*@UaKFuDV)a0R1SEvXq}OzaDsId*{_V^VmySOm$6p z%Jsgwro6eMyQ?FdDm8nNO_sn(0pWThnf!FgeUfbv)lt(spD_gW^r-fv?^P>$tu5MA z`kw_fNR!!_YvB2z7wki(y<;dP&T?I$nB^DfF5j(6;+ouzN{H?k<$PvceawH=F)f%bEOJ3%4CWBckU@ZkzN1QTpZiP}3To6_5PWAK9dc8FAP^WCD8N158x$Q5 zi^#x>0}RN{wiw!8@0~4<{C7914_9fO>F`Lz60pJk${5lvva^?_GhFv(0+VwJGwESf zw202fp6R@1zc<2Q5LjbHqb4UE^NUFs(t7#6s-IU-62p+O-5rT9FGK+aDiZFHARdlX(`r&AGgo+TToQ90`4Kq%7^oh+5du~|SL{pSUa zQrzzCH1EUNszP*k$zSKJ?tYW#n-&LR1xj_-Xm#|94cRmd%{!vvI3n-;uIqPp-f$mF z;#nNcI4<8ec|Dm^T_Hw<#Yk~%NF1k$Byb-6epj3HvI zhAnuwMw}?Hsu(LTrkM>6DKcoJgMnfk9~KkD#E_W8Nu-#}_X^!(3*UOxP@g8m;p9AD zkhi}>atnwpBj&@DWTnsrM&`FBH3(&EsWm1NW=hR^OeZ8x<8 >wHEK5`4#VT>ncM zq&$nkXug`?NFlS9kT2(X73THhcmiek41ZlBU)}S2?8fbeChHyuS&3=cUeJo@at)Q zO7ILm%kOdA_$(Jbw+h1Hai8b)7aH+Je2GiG?BFZ-s)Mib=GXCj25FQ}B+?p%bRWi* zV8Nsey3zo;6+C-o09{QMT@7Bqi=;V#lK2K*BE4^to|e7yE#ArCeSr@=yx-1)_d7n` z@A`PZ=i~i8evrYNBHA*NsgrmKbo|79m|Tj5lk;GXq8g^cJi*(O#au_x{g4Pr2QT9l zBCJ;Ee?;m&dhgDUc}JqJDpAsYIm^LM@^J7|pM#(I9Q@qp;1{%wa%CH{c$(Drpp3*% zm6XrywuTCY%T~CDc`LKH2XU#ign<5iz5kN8J-z?RNAYVP#Q_gRr{n`-7{9vs`3*k< z_^L+zILIFYhx$Z0B`?bMBS-mLALXk)%HI`>^7nnBoSqluRY#8U4?fC2`Y8WYEXqIQ zFBzNdt?~2nqTJdC%GdDMZjHZ2HRWpjZ$8Su`zZe*QT|h@c&JqI>-@ao;9vOnN``|s zm9h=Il`+W|`7MLk)QPo2IxuHy+3>PGIDbDDuy5_al08_lTpH`}vVFL;1XIiDY?1x2 zfZF)*@>;tC>mKKBFI)^GE#P*(B)${J;4c0jhPyEZ_bBFOc&B8|c`D8MKV*(4s~{rX zVyci6!cy)(O_T`f>?dIe1J+BVD_zqIj@&8AxYJuz?ynLRTqT`jV5xFf1{_J<3pyf{ z6RLBxT8I+`filZoeakLoD)x0B) hVU`;$#)xrvRh%U1X&EPrQ}~S8R-7tM7iVJle*rEIXDI*x literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/controller/OperationTechnicalDataController.class b/target/classes/org/springblade/modules/operation/controller/OperationTechnicalDataController.class new file mode 100644 index 0000000000000000000000000000000000000000..5ace629ab5d4106070c7d810570e215bb96f9930 GIT binary patch literal 10494 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 XI8mI$0rcsjfzSNBY811@nHc$B7K0)n literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/controller/PlatformAnnouncementController.class b/target/classes/org/springblade/modules/operation/controller/PlatformAnnouncementController.class new file mode 100644 index 0000000000000000000000000000000000000000..2c2caa3ccba328f390ad712331569e2c878f0510 GIT binary patch literal 6508 zcmdT|`+F4C8Gg@ZlO@X%XbcFbQKQsckiiNTO{5YK4I~hg7;ChZ+1<%zlHHwUW;P-8 zhEOP_Dq^V$Z533kwl<}Y6`}O8{keaK8^}M=r|+4|W_Po>J*2e#VKXx)=X~Gye&_uz z=lt_ufBg!;lbEPR02LtwBdA1`z+S^lC|1VQ(}`$OjcZEEh-Z_Ur5G8_RBhczD={N& zn?^FJnM!w3wFeC|wIiK2vgw$X($e!kkutxdNsB8(cW z3}ICS-$1Rvy`{KghN&sGVI&nbqbofE!MJLx0$Uq9ht*M4Nvi3DvOhYk#q2WXl&o$I zqYkS>SQEjWSSzrhtTs!FWvR4Xa_4z&oYvYI(gzs8J|5><_q9yhW|YCOs)vNFl6#XzE`QlymJ z6*8QH9V&k_f``y3P*+O7PTjHvjy5h%^+;LT`@FnRNP1!!?AID+*B0JgIMY1kXsXEYIs} zAD3yjBZ58H%gkb_qf}pn&d)3ZGEa3yun+r*#PS^RVB^5d6j+*bq>ASv=#eVI*$e|k zYaj23%i+EVo=3kMlX6U;*>kOKD69;+n$!=g(WJ%@oRRI8;k(@ON5UAuwh&$t*i^dP zjwMmUu$7o?Cf$TqSlX)MUM>IiyxrxB-zS9a=YZC^GO)yzJLj!CuC zh^fhbm5BN64F>HYoowq`K=3cPp0|=8WMVt#w5&7Z-<}TZXL*WLRr_7W$350e%;c!C$fbg>sdmGX-k2MK?!xtFh`UzEviJ> zZ76DfuJVj#cd40-%n$;VqiQlsH-r?QcuzWIAfeks*{E_zSB>$Mo>oTE`k=ODxIm7j z?8xZ*{r0Wbt!h%DVa7GHf^DE+73^fxSYv7;!M1MnQN>WLA`$uZTo|&lsg!DtGnjAw z>Ep>`$C(!5niVtkj9VtxfBm-$x#O40b0wH`s@UgCu$={-bemPTqE44?w*;4;R@$j7 zpaY`M4$7h~@KAY~1zm%yniO^{b6cTVR?V=4dNOPVNS0M@>YA>+Y)Xs6eLUlbd|%1j zrQx!u{{P#kw*Q1DWL#G&lDslx0?fOU=O(6(oX?$n=jO#vawktrUHpPsT5g=cYq!s7 z^A}N8x5agg0_LI?ED_W2KjgHw+wTCEV3I$QU==L&HzqFLc=JT=%)36j&Mw$P^LC}J z^7{z0;$LrRJtz6!Zi8z<=hAF3EWd$iTju? zi>mQ@riu~O?-TT-j1(NFXwG5>=H7+u1urG!MbzAPOHDjtgnNyw8Pj&_vfX~5+(~!(WUxt|H3YUT!g8zN&WyG% zW~l>ux=Fm#8dS=6U5)efcea|als;8HG2U>lO}ODQVu?s zU(I=Z%{2BG+zE+X?vl$d4};tVpIfhSlFO~vecRvgZ9nbW{wAkaL#*NB41aIQ&j6Rn z4;drB#90qnJM~E3*Lc=AvW6uz^O5Znl7WM}44{Yw*So;EZ!eP`klv?e^$E&>dIm%1pV+HiXY(bAP9fL^7L-9+3ZF$mOSis_nC9feCIot=|BGZ?LL5W zc)uBSsE?r`fkrej3~N8n1J74(KI4d-fxmH=T%lRoKJ22lAxr_N2*`3>ZP{@+t3_CJb@M@7zX~oONM4y z@Xkvkl*2HcOwEaT!5!h|`J}Og^mau6?&&$rrE8Q~tf6P9DDI782X@BLn!r<&vDCF%v2$$1s$Pf^iFXMSxEyup8|R+e)#d#~40JKAHHVKrGTYuWKSs zj}f|Ous4Q|1oq)shR$mGvf7v2Xzg&}DL%o_kP}8Q^i*baEHfvwW|NFoSr_Zq?6c6egb@tAba^a zap8-CG}5PVnkQA>rPTQpc34?!QF%NY72M{1(ML4wod{{h6l7Wjiumq#T}{6X&i?S{smS&U&jvaY4TIPilQb=)LF&)pPvbwDI6T}$0QcCk+LFDr^;^t3sErJa$ z%JyU!3&KJ{_=}X&M?ZY~@cIpgmYfW-zVd9C4DAo@eYJ99sruu?aA+en<;-p1Xe%gX zD}vJC5{EP(A1wd=_|xwd)!sH=eh?~O()M&@vM0z!2Bzqlys9TPR4M?JzT~xC+gi&~ zPlegP7sYe`}5vskM7@Ex%K(Vou!9gUVr?>Ck*>H=3#2l+gPR@ z)WFw-Zv>~pQ#88mog;0x#7=a0tF#X2+#=ZxM`3l#JBOW+@kt%}S$RR(>DF0&J6RvC zC+zKk;Y?&cC#VS4%?a~=F)fzRde80(W_WFGlUwwe5&3{m3ET9$SML6_a`Sd&<{o|h z9mBp&S^DCV{|%Brz`fVNo#xe&tS*yB36gdWo$qG zD|Rho&uw~AhZpHTPAf1*mg6`INDQ2&Umae> z8Cs8!;cKM$`c<$1y*Nwzb0g@(8>I4PfPM@F7{qx}?O-GtBK->ixgqf|-kK)O5qd^> z#@nkg43L^dw_`Pi{dHKz!FB9Sqzz0LakrN=%eZ&oBB7-sCJjP+k(M=-DH4}Zj;^7+ zw1#r5gmRqJo59*?d53-$bc+RT4-@pGIf_X-Tc-PHwJ77=cW|Wp*e_r|(y7F531NQ) p!gv{ByqLE#!bY@`(Nxj&-6B?-iZq=sm+@Y~d!$3GO>Z!`5@cF}P`b!WT_&-tPL-1>v~J*4fF^jMx;T)~eM7ZdQZ} z@8ln2l%A_t9ul}&VjZRx^y$%MzQB z_UPK3N8f$(=*O@A_~I_37axB9<-=?DAAfq|&!0Yfczx~h_1nFx_#2v@9x4QHxP?4TsS{owpKhc_T{h%*?nU%mP3X zmwY%zN|3ZoS;G=DmC~Yc<^v`>vUZ-E3moi%m~c_?iUycDp8a131@_zA4Mkd4*I_O6 zEg+%O!YkT^S?=(XK-jP@b?a(#OISy>(v+Iau0Mj|VL_s7uP7Wq%V2uyj_hWCt9~sI zt2?ZrSlwDH&Rl+FnwLYW)Y-Yo=`px53AP>KR!lS>tsYwIse?#)b`UvIo3krUUW^;E zs5=|Bo7dzCz#*#3d(fUDrE|qGJfXYZswwnQ+pLtVb4I}{X5y&-G^4}MuRS4nVa~oX zA&jM>=j)?&WS(CiN69CFnvky-yz`=|kB=K4R2U>!gNt z*cfipmTKp*`sRF=Et9aq6Ug8o+oEB@&|{{BSv9u4CSY_v`rWyFkpPH?W7hEZpmc zZf$Qr9l-iQmk!aJ7#x;^CJb;d<9P&FI^GO#wf`=$AADoOc*<=8Xa-Md76Nn>cRTvE zyx{PxSH4Zj@39%9nsR4DWn63xlv_6{?{27kjE=*Ev^j1;(C%Y<*tHfcX$oPGo{w5aK%VOy2LI+kfGmgg|ki|65X(TLZsP z>ISLtTLV8+YI?ALjW+vJ47SY-;xViY{YouqRS=dzRAjrtVYBLVq3|x!DmmPEl zBgH3Yij=2VP(Ti2AOxQ~Pa#yB$K=8`QmX=08Kr&+Vz4*6e)0}WC`8&OgOmZ?L(XX9 zDT`a%vR=3*6opb~u`RWMqTq#XdZt;L?$+H6Sbu=u z9QmM*`UC6-`G7NAX3+8S1!w#Xer4(p@S}*&+1<1WWEjRwcF#HQd9Tm=zUS;8|K9r< zz%VYS5kou)Edw11f$SCYs%cbAd%-w6cSV+bfy7bEw)|rP@!r1K7NpRUL^^{_$Os&C z+y%p1b}f5hu42whW67DXR-|V*%hEM{%drjlaYXwqlz= zazXl2fwj)wzB=Z}o&q43!E;J)LMo-6lHQTQP9@z&>0-SXF}#q$F6^ckWz#Dw*8*t9 zI|%5W40^CvVB3sNCbJ`EK!@3e%YCyHeFVSPwbd&3e{zsFglGz8dVtMcKot*1zMD&Jz+Jc16s7m z1{+Mf>Vh!#&Eb9nt(E3Vi<9PZ6u3S;Gd?*=!{aPRS9;Y7TTqX5W_lWAQ@#_1BakjS zRktKhS*jeiGdZfo>~_5(qqz` zpK-2@No%3(2lAZ)g=d#%)%w!*8&z~LUnd;L_k7n}4io3KCs0h|9L^^(s~YcuK+nc` zV%b-nMQMZxg}r#nEcuSRBJg#67eTWzb&{d_A$WWWI&`jDQ9~T~ODtrisX+l}fbBu9J^bg!dvbo<|LypLA6;lY<5z6Vj;E<&!`Q|EH zpH*dubEL98P|52o^73zvNm?rp^nV9kyD{(^Qr|+4-x&B6sma0qJIDr0PCBOs`O0fU zzhhHQyN}JQ$PDGQJJ??1=+5h8>CPu|y5dRPN5?8!b9ydOW72NWR=h3+VgANKAJ%aw zqky9fy$eNtg&d@hJvfPDq{UfW$M6Pc8cwtL-sDWjB)V~&vjk31|1N%mr2au$5~+vS znnaBMlz52k;j~2{0;51MH1*98fpLT;RmyaQg7UP!SVB+3jMXYl)!Z=cu4^0);N|^K zk}85fsY2bX`E22+HXMMsBU>mF!c=x(70IDHc>c1Ycjq;=k<+4`lmeDpJDLNwKhzol z7RMos5Fphx2QbQ63~Bb*DY_QN9@g_|&a?oWGteH9pb;D)2na9yM`YSq#}uIpdX1sR zqcxJqMtfuHy`suqHDQ|yQU!DmF9MG@O?|tzMc!)|51>91oD)0g%v;oCjAMd%<)nxy coDC<_c$=&#E@t?=gNt0HIlF}S@gZ{m0V3;Dn*aa+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.class b/target/classes/org/springblade/modules/operation/excel/OperationServiceMeasuresExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..34456f70c3eeb076dc71e9ab8a26850f5854ca66 GIT binary patch literal 3417 zcmb_eU2_vv7=BK&o1`UeLue`Cqf#u|PvRE{NsB;fX|aXcLQz0vn;x5`>2A$#3iT)G z;HBd@jx*lKjKhV@D9+&M=nc;JKfpgB;&XO4%{I++xGV8g^*UW;PmWER)OJ_`R1zH@R zd})1EPA&?hr)qZ0xk`Oro!pv4n>uz!2(IWmlSnIiTR^XBZziuji4N=*NE8ff?Bj~T z(>i)X>U}r!eODEDPZAmIWf+#E8(3O3slB%^Bo!E?qPIVZ1L}a7RN5V-=7l5r5$;YM&_DYtz7mNiXs1;)akiAtl zU72;<^^(kv+NH{hb;VqCi+KTkO`Q_u3GD)d+iUTPY^JPg(p{%)>yxkVJpT0CzwiI@ z_?yp6mRmAR*w{Y#{QD;mIpFdFnLAZl*Wq+{o% z{+HIEwG4NCEp95{AklsEgicGhXfMtfWn)FU%nyCtEX~5J5vqm9{Mnm(E@%pd*>;Pv zOs4XxCupx~OYHKP_0&{7RAA>8Ad4#ut69>q30kAK%(+HkdD>VF!mQ8CPEL=}@=10c z2T7&GQPo;+OEOGge5%`;-h^xW0TgJSvn%C-95+>wAKG?e9Z{X3iZ3H@eEZ@Hm+*u% z7H92S6VhBNx=d~U`9;}WuC&~mv^qUam(JL>>$qiO)z7`t7Q+Y4_z*YZFx13Y5a_85 zQ`1_rmu1#>*&ia~M!~hq>jGbf$43D4l};GeBBy%Klx;6pR`XjYNQkmYP*q9;__Ywe zI)6i?K*gw0D$TL~^9is=XSPj9@21im5rYRqgwVE{_z}^^KA*HKSspDJjw78omIMxO ziBzKi#9<0_Z4YHt`q4r+r+x$+QqZs$N08Y;8XAa8REWY(J=3d4ca-vyV6JiPU0;- zIm+olz3`8S|3GF0HR0ig!h9t*5N@d#KGRT`FU* zXb-Tjis;JegmmR%8C_vwkC48LmW-Z>g+Sf8I6>XHL?*64i2xMOB&s0o9u10y>c%g+ z>%O5I@xOyHj5FjNxQ%lx#0Yv|VuG|N=UV}jTxsNt<2)}N(>R5B{I6l+TS?TC;bD1P)9L~iQG^cYRX`P^Z6*b8?l znU^<)!Z1%%qbjY!rb5K4`yqOP`Uw#pZ0W#p4f9?CuXuy_0Cfd}_+7k5wMXYTk+1rT YYq(Bmf}8hw6(G55=ISF9aTA&U0C6JklmGw# literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/excel/OperationServiceTypeExcel.class b/target/classes/org/springblade/modules/operation/excel/OperationServiceTypeExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..7d66834692c940f4c23b0b1cd5d56fca6e2ab166 GIT binary patch literal 2820 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 Nf%IGYJ^hjNe*+S_O%ebA literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/excel/OperationSiteExcel.class b/target/classes/org/springblade/modules/operation/excel/OperationSiteExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..3e058f8304bac638f486ee6bbbb592acad4596c2 GIT binary patch literal 6731 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/excel/OperationSiteRoleExcel.class b/target/classes/org/springblade/modules/operation/excel/OperationSiteRoleExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..6bc8b01547c99cc9e97d5f1bc21476fd60f66fef GIT binary patch literal 3330 zcmbtWU2has7=F%nW@lQaw5}9bML}D%-|I(I>{0{^*u@sGg`(oubobaDI-RLAvmjpS zjZqR3V`8Gl3ysF!V4_CRaAEXD6aPn1|ASx8nVD^;xM@hF?96-4dEWQDAJ2Ku{QCE` z9{`NQ>p%`|1~dyg@&euG?DKZXwY`PXiTQJ~8VTh0JDw9A5NPWkm}`fLb^{$2w!jiN z;0Ft(a5-?ig?ZPm$p zYJK0?NSQ0Eowi!&QrqN1YE^1#>J|$H+$zxSgomXoBUux;HKSeeBDo-gatEV%^!vf-%KxfmHIooYWoi3|?LZCR)@FHhP&N-n&1BX1%k791n z=ZB}N{!)py=k0kr<%+!qC|wAcno<~DbY*G6cNvq#clT5eq|NQ7Iu71E!qe^!6-K)<{4z!ryol(*we6 z`%zs60$Wu~eVL=z6)$9G+G9v^tUHp`WUwV(NKP_cN|u_#&e_PWE>7FaY4Y@wGnMHh z^r*rE7Ra#SvJ-V=_tE-^D6p54GKO7w*d3Th)j&-hdj`?B z-XIac)@RTkx$9eh2YY?9l-})iN-G$M{s+5`cp^ z#J5n_5T6^Bzk%^37jsxwF1J+X#neK%^G4-EEtPqRwovZAQTd6M%8z4${wcRrHgkOE z2Zz3e(K_hu2_g+zB_t`*Ve0AZ>*%H@M_QZgyjhb;NmG+uvB{%&qLr83H)}E>Kx(oO zo8*^7Vp8nmyPW}C9vb`{x^`vgCzu~XZ@V(|Bh2aH!K>I74=Lj z3~v(BJ(oDTmjBC`M1?8u!K*k%BIeKs2TyXY4TGp+ijv0M9mO;yozH_fPALzUggrsY zKtTGOq-5eL?l}a@F#p6>1Lj}YZXn11ruYjx6R|xjB2DNd6RN2XzqCf`geoTKDw8UZ z>;XsuNr==uJ?b1CqYI*G@mO3UewcBJ+!UiUk*A^4-R1q-cwC5G-Q_yVV0I6!z!%OP}I^DQxzv!>K)VLCDtWYGK+e=w5xTh4(3FNogKZLK3b84aodK1vZXd9(mk!@^+G;j^i#07jdZp3%cR@#Wq;yIdq eWR@NI`9ydDFA{2U@DhJ7qs~zWB?pUGLh)Z_qr+wZ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.class b/target/classes/org/springblade/modules/operation/excel/OperationTechnicalDataExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..745584865185eed1781d7eac9dab0a2102858461 GIT binary patch literal 4246 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.class b/target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..fe42dfa6d4cb3d48703313969b4e34bbd602f0bb GIT binary patch literal 395 zcmb7=OG*Pl5QeMcW0JV>2HwCrz$Ai-u0{gp1T{02p@;6SrXNC1;eA|q01qW;Cp%HZ zMLpn$ul~P2KHuH}U=0@)%oN;97%=*v-Ow898Ljl$a76JOC~0wM$(J2(os;Z3w(Qa~ zQ?K1lo+hb+Qw5hJy$~9518&-pyHvrs0_? SlTv5p;Q%wJrap(oG?xcW2ZF=^ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml b/target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml new file mode 100644 index 0000000..30c9115 --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/AnnouncementReadinfoMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.class b/target/classes/org/springblade/modules/operation/mapper/OperationServiceMeasuresMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a146aa87140328ae1e374e41be994b0a9ef5d0eb GIT binary patch literal 1352 zcmd5+OODe(5Un;7LWbf08#XLJNU)&~U}hu`A0Z{mh)Bb_Y?nM8wcVyanaKsX0JmYm z0a$PYu7W7HA)o;(L1Mw8<LQ$OF7Nvl=~r^6(Dm{$qY@U z3KL|t%$U|SIyeR_C+z5-qN9#Vz+Fe0qx&)*U`YbrJs7VcCXWSrl&{)=bi7_^W9CLK zOs~|#Y5H&+H3qM=94qHjRy`qqWQqf{Sdk~|1Z*|&h`XyIo~oIE(M**!dM==V&;Nyz z$N#24`&^MbbkZ2xdw&9+ty7$vx=?NRIr+xM2KiIvcislF%kLWmeEECUjYU)Km0$LD z#`6fL`@fxXlLT~ + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.class b/target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..620f1afd97bd4d83b67753b3b263a09c2830eecd GIT binary patch literal 1452 zcmc&!&2H2%5FT&4EL#dKrTi5HQYEBv!4D9q#IJ<3)mAK8&XZ)6dga8yc9!my7vOz3 zaOA+9*Fj92vJ@I=7lFjVitU;C#^2;fZbOWr^sonoQgHgh5fiFj1O~w zC4Mi+21`tiNUG4w5`Q|#5XE5KDe8)a-l2B_J~Z8PYBEHN8u<6Aunfu2!^>1qz}m=E zHlY_v^BeEBO`2w|J*eBBhnRpBUR|D=D?I3Wa2`6)=TpA}Yy7#uYn@jIF0%O&Y_M~4 m-sJOT*y8Zoy({3#+;tnS*83X#8n5dPZZJR-b`y32+^z3Iyy*@A literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml b/target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml new file mode 100644 index 0000000..4bb9c55 --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/OperationServiceTypeMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.class b/target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a5adba1104a9f336d8120433945984f9a030d521 GIT binary patch literal 1966 zcmc&#&2G~`5S|T9(?Fo5CHxg=DJ`TI_5lKw8Yn0zB^43riNhuyoQ-U+vDcwF^8!2% z2hNBW;B64&jhlqjC`MG`u#!D9`^`7A-_Cyj`Q)diA@%U5K=F zcteJo_%HZ|OnH1*zc;SflC~#w6cFKW|DW)ab7;aIRlSZUz6#P$hZH@p(5~_<87n*F z$AQrwsmTazy0xVb5eCB~fWeQyN6lO=dRppXx=as@uex`JVit5f>7w%o+}K6147T1x zl*7fg3}wf`@m<*WJf+P9pj)wHj!yWZ+e0qRCFWuhz|AfK%MXMTk=kuKPB8A$|a@E0*bP7**(ua%{WRMku&r_pyG`6er z2HWh&&Z0y!iZc+31$nWhqM(Z}q(eg5Or61_XXkM&2zp}}T%eVwS8a*jp#m(?Uy=Uu zgaz@_bO}n3Gp1q=E|cd9tz}v{SRwaSSS5sH$J*F+4a)Rgit(@0x)H)n3cdxmXW`f3 k&ct-rWV{C(v!+eBKQV2Ys0Xk;G0{fiGh(#^56$1BUsDf#1^@s6 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml b/target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml new file mode 100644 index 0000000..1077139 --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/OperationSiteEmployeeMapper.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.class b/target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7dbb96e401c7305628e3894ca963d0e099aba193 GIT binary patch literal 1967 zcmc&#&2AGh5FUr7A#DOB1zP^0P!uls0aB1!wMdl`r6OuMJ6W@Jw7XtxZ)n5|An`(o z0~c;Q6k_bne?yW|Bo0=xDm;!)wl#gCzoMZPsBlV3AMj%{FhD94r%{Eg8}#lcDfrLc?wo zv2+|H8aEV1Nip}B?m-dQ&^*A?V_}Y%&k1}gSLdK{!#rjfJ+ucZ)%l!a*_N~;$4Q;k zD=(^!O=3hqt3sO!@~d%kD!n77SjY`mn!r-*?o}M*$fkrqz9IaGnMC3LumA7PJD1@9 z8VOG;gv|wkTKN*tQ&RioU*au7o1e9KFkbWnYpPh@TW^!dh>)KMEt&xz6nr;|q;XFH zOTX-<5f4JE`4^WBinx6ZuA{r%&XSR> zHMn8jELaKGx`tJBzBwD~7TiYP6ng{RH{s3@`|cp@y>r<2(fI*9#KXOdJOVpAAH$QO PY0F(X1%C?9+}HMR7&&;X literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.xml b/target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.xml new file mode 100644 index 0000000..9096485 --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/OperationSiteMapper.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.class b/target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..8422851daf2071c5682c7e8dddb4e958f4db40b7 GIT binary patch literal 1473 zcmc&!&2H2%5FV%9Znu=5@>ihcfjBle*-EsA$he=Z3L#c&rs3274b?8C;u)so+YKIUgkxOkE$=81PgVJQ2E(nfAPx zC4^@yeI4BCSjmF52itS!x%CjT-7vcq&ne^c1-aGsDGC2Ogpb ztTz?PQ)fl^p251IfvlU9!Na|#Z^JZ>T|LQX^amt2E`Ko%diil)LB;sAAd=& z5sSEMtbZ4Zf0@q4SbLM=8>y(4yDjBuMD9tg1f*yTR%rD|KUYZg`mhcW4CrqV!3KRU z(b}XH!DTwW0$0hsKJJlnERMF|dcCi~ZqT}E;TAdHhV3~PIp0}0-z8&%cn@~S8o}-l DVjt=w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml b/target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml new file mode 100644 index 0000000..b54027f --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/OperationSiteRoleMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.class b/target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a528bb5c2d3c84a696e73a56a545600736f9ca81 GIT binary patch literal 1459 zcmd5++invv5FKwD(v(8E_5wwsNQm|Yf51W|P>WP4B^5#C+1VX!9C_D^FQIwo2lyQx z_<;TaKZBU{LIN~Vg2V$4qxE`@&v?dj=HlDuF97fy9yB3haHLJfZE0kY^^{1F=Q{NY zE!QO);iN8jE=pSS&d-gvnDh&o2z4l&I0?=sEHk(<5JSP0C^FvZ4KQ&{xWa%ZI_Ev1 zbD3(-^HGmTZK=E^hoNva`AcE3reg5WqN3B&8UUxM~B8TST4f_H^$}rty&CPU6~cac|%!T z{0CV)`xm7-pjzzUd8y5eS7UHEFV{pDsjT|V@^>aQ#k7jAz4vHFKL8BA{ypo$31i`; z8_np4qu`7WF5PhvdOS~1%_6RR#LM8(8&5%UJd;-T6powhMNw!Mlu7OOI6R*yMbbwu zgSNPs0C+e>WR0Ovo?0%#4-D2*5}3nrXEJ!QS2uSMZ`W1RAilh_f6QP>rWAI?TQsk! z=^1?b1y{>Ho~O+}CBI0`f;<;{5(cYX?M;HOq@oM%P9G%ow0T--nx+&bM%JLgxI~kz z2`dmmi~d>>tkUNy*&0~{*T{Vx)(Kv@8#DvPuA6YHT32MZ$?jOVOW+OIoN#RsV4JK0 WZblQ})?~R&=sMIrxKFSMcD@5+e%!MF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml b/target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml new file mode 100644 index 0000000..f970b10 --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/OperationTechnicalDataMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + UPDATE `sf_operation_technical_data` SET status='1',update_name=#{userName},update_time=NOW() WHERE id IN + + #{item} + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.class b/target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a8d68a16f4df35afc8b237262309ad5b1306da6d GIT binary patch literal 1207 zcmc&!OKTKC5U!rhx^9d~G;8#vAPC9D{sChI9}$ENSq$V}Gt-&$(vP7Z3%Tat)&Jwc zqX&PKSUsa=2?Hza!9&gT@YSR1tFPwA&#&JA;0T_KAY<^(x|;jONmCaJE5Ws`q7t6l zMmP-88m_USGoL987uM-F#@J{|p@j)2Ei{4+2D@`yAXjK=ep<{$8Afo20WYoQ1zIgD z8@awJD5Y;y^aMC6)}?-nUUaD#JoQ3RbYHa@)`G$H!E{AZ5wOC5{9_8pr>i?`?A-E& z?QQY=G(ViSy~Q9EpGqHc>h?s0OIyv*p%y_n&tRizuQzFWcw#UizjyFz zeNtW%3zG|Js%1SSb`ldr0fXnCq6t!qbLnNF#9yvbKxm~!ti5P&f(@3Jg3DGO9B&+W z8%3pt3sjM~+rM4%JxyCG2A>bs@9A*;6b!y}YFXNZe3f8tZ^1v0hgMLAt6tq6w@{wO zw0UNuE5!$?h`?uko7FAf%OrDJS_T8MA^jx=wAdrK3mJ^*Yn;I*z3!21k!5h7;BA5j v%ka((47+sR&gjA50og+jI~1}9liwMK43c|t+e&r+I1$`ccm(@|W$^eH`tgQf literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml b/target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml new file mode 100644 index 0000000..1ec292e --- /dev/null +++ b/target/classes/org/springblade/modules/operation/mapper/PlatformAnnouncementMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.class b/target/classes/org/springblade/modules/operation/mapper/PlatformEmployeeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..61e9447a4dcfd8a793fcb68cf3cb92305384a2a4 GIT binary patch literal 2074 zcmc&#TTc`*6h2*dSwIj_0p+HGD8ATNlSK?fFeFPL5;5_uJ5z>|&U9=$EBj)6_aFJd z4>0jB8Be<-yV=3)5^oPD(`iq??_7Jne*ba~0MB8q3MB$Bl#ZxLwMe3dWFe=q3Ny(K zRVmlZ3YE~9rMRXClG$UWS)9->yQLz~m`wGAdaT(f!6L4{Q~N2+%;qw82y? zLY2|D)j&9t%FN(_Mxr+C7Be{%fjPq^-tJ{OU=b(qajo75kXsfq%jmAVP^&v^ z^7Y>f#0Gjk!_QKs3wa^%vY%&xN4lw zzU{Yb8wKkI0p@1`mqkdoi--i4UuOs(^CMwIL-LCP+DsBvlm#c83g0V~ zbrh(-gsta)7BrgN(5LDEVs! ztQY-oiJXYI-4WIW0OR1SlYh*FBI6}dskU>0u`#G%C-)EdJ!mcfgIwyD*o-PnBUF z?<}A!qAa=lC?&XuYWLwmPBUGBW!&yoTe(nu=xLu-I<(83 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.class b/target/classes/org/springblade/modules/operation/pojo/dto/OperationServiceMeasuresDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..b6906a49f82246f73012c0b811c1cf901887c5c9 GIT binary patch literal 2637 zcmb7GYi|@)7=BK7x3k@Dp%f?o2#pEI-DPD{bswCBuu&wG2G_dVzIkALp{ z3}6&*rO<|$fp{7TvI%|-2$ES%5Nno&@(W&R=J0i^rW#B+XQyhrYz*EexEbZ}k8nP;|y=fb$PR-p= zWj{A~P1j&&8c%EGcBM7F6n0~$fjxv2Ac`1h?R{xHgZ*^9AU)<*Q31nwZMBako^mZ& zomH;Kf?dg<7Z4W(x>_J+WwoIa1gn39Ku5`%x24a*5#1VaBjGxV?Nm;nZ@R$}*VL@# zS#wo&*0vo#Xb%!JRInV=dsoiSE7x2)YC6(0<%)t?Qx!{^rSgKRNxJH+D6i~Vb=_Pn z%Y!dJy#K*h4?g2Y!r z4~g4cuxvHisLd&NMiL8iC^%)(CrKjLO<~+$un6wLMo-9pv@KJ4_K^;J4B4Gtv~jmS z+JCbGy{mJ+S#RatT~z*pQ@JEvSyMh+Lg3I^59`Jqq}QbHgbgjQt(9%G71&sg=4)+_ z5?#Xa7nIAc)4cVs9MMgIJR;~S`LeuNl=UXjiA&S@;y69$c^Y_^G^##ZG-8k{ISse0 zCM;d6eUH0>cr_f>Y4JFma~$9EU0DyQ@HV%jn8GBc3|!L3{W9Br1%YKRIg6@!ki#2b zLY95Uy(#cn^!zpzL#G#{UEw|1UvQkoMm-l{q?JwyoT;s`NbN8DOQ4Z~V-zI#LE+707Jdn6aZL(!h0r zgO8BE9;XK05ZLo%Rd!5R0A7zt-jmQbEBbK|JZ{125G8zmI1UEu46>YixIaYMu!qAi z6^`IJ7?kl%s>_D&PgY$d%BK4qdJ`{vO7++-$>& z@sV|m!`zP3$xAqaSm2~UD~+fO>1nJ2C#fB#rzIIma+D-^ z`7*~a*a(HAIK@$Ce2lY3mde~g*F9_j)}|fBoLa`rH;gH04?l9&Z%i?p`5KA%?d-2e zevU-!cJ>z}i$nCgJy>S4chMJqG1TM`hm-N)-_h9@{|#GiAwAp|zk^+YM*KD%Mp0)1 z?v90lmQfdR8fTdPcCvSt#b{$u_u?F7G3xhWj9+n_r>|ZZM)EIgGLY=}8@&d0^EbK7 z&S|m}*N=D;(+N7&B}iy6I+ti2!(74&B$jhYFaw=Slkc z0kl2jR-Ax^AXYyA56Q~Px=rw33FHH87x4<`B;6JGH;oytdg$^BuHv;beYl3#@h1BI E1*i9YBme*a literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.class b/target/classes/org/springblade/modules/operation/pojo/dto/OperationServiceTypeDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..c2f8353e36cb60ef78c5733b1d7d05cd11e917f2 GIT binary patch literal 2331 zcmb_eT~i!I6g|B=`@yonh6EytK@ExQ0$Gjtm4&D*V2BH(T*NB1)Mn{|fnjEy>7|N) z;iKgbFfTmBD#fZir1V9r{7q^+Ju?f-M^bqR1=HPkZl6Bq-rINh`@e^e0L)+|hXj%t zSb3z77AS1XJy~|7yIEdY-&PGRke;?(Ti+H)juqFskVRJpxjed&7nt?@&2rH6ZFh6s zksGSK>ut0g6_mZE@};&tx7_r$z4C_k$}4SCUHN-PO{@m7dasw@0 z9SDrZw2t}5$A&!X+Qg|sm4WhY>8vR~V1zzfoD&dt1$x>@Ytm_{6i+liLZGW|Z@N;q ze3JRjRk=-SRwTKvX1i*+wY#qTRk`l)-2R%^AZ1D7T*pRB zZ`qVR_pBVAQU*Nx>oZAu&f>a*&YHM*Hd$)|gC}*ef?}40^giQ zc&>blWFtHi`O|lju}XP*OZluBlY!CW3)CChI}AN_EgL&avKh-r-TQQLX`aZ7EPG!C zEr-{xt7Ah}dr_eZTxuueWclXmUdwN&1>4lc@Dr}}4MUoxKI?fp(7tR&;S2iGn9ZSz zxeVsbeOlnHIo4;pd)|&JM+BlPwjdkY^Y;aQ=)Ci>V+49fx*KddqczXlX*DYy@rtip zhvmdZ(;&`q|FXkB>VlQddmKYlrQ_6XttwgE5xDwihP>QbU+E?9EIt%1U!u#(zb|P)K&5L=*-ikC=ivA<|T)cSO%vt`qkST2lNJpb!gwlSVdt0vN^* zIGQe79WVWalyxxv2eLmRl{^^#9oeOc(jj`nB_|h_C-}H!P5y=MA?r_ExR3ngkadWG z(8D?)%vq*W5&RL;DsJK}QW&7#DF!fsQHfgc5Pcilagw@i2u=AY9|a1{2jDYGi-g)D6(s~IB?oSsWR*BL-e7N#;HU5d zIOPBrDsez?-UeJ0PLb(Kn8{l(}9I7!vh%(-Dnzm z!LaA^fp8~sF!M#^%Bcvs@?_vn8yh_l&OEjqtTumh}iQXLopJe$NjDdBO3YX;XVU<#IU?4gGli} zb-6zi7Hv@f7=xKKuQt6vJf2N@B0S}$xY3i)l5^5v|Pk6{DLeccJu24iXUlAGY zrO=VHurD5ZdbaYfw|ZAA;Tl~`My~}Iv5s>T&r_Dc1$tqmj4YiSRB$pL#$~5*CInLlF^)11) zbKkIHBcI1DDp-tgMVR{Ork3temtL8ry=bw;c@nYp1aKl|k%SgY8Mla$o&jkm`)Q<% aHZ8Zbv+*}hJLR-UVH*`{WT?g-YCixl5YA)( literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.class b/target/classes/org/springblade/modules/operation/pojo/dto/OperationSiteEmployeeDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..a90bc9b290af6e9e27f9d09291d11a40ac13dff6 GIT binary patch literal 2648 zcmb_dU2_vv7=BK(`E1gb(gNX2kb?bWMNpxk<)ah{rXSE!6m-VZ?P*^Rp!m|lA0 ztyj*dS6;zQXVe*l85|wG!5ROAR}B6L5ucMynv@2I3p3e0=e+0rI?wyOXaD%;(Jufd z@KFLC2t{Ee5k^EH>$oeXS8*+SWw|5^$}BsDYDsyfQ&Fz;Eyp%1&Mn7Owr}}s=3GO% zVEJmgTq!wgN=?`H1R|#`+wvy`LW4s~al{ahB9TNVk^)n&7^mPn?SoucoD+zboE6KS zm1QN+o4X}%OS2^H6?4JY2gvA{T}gE7fU%17ygQCtNKm*fiC%0MNUkV9*L2Z0IJDJ? z*6&YZht}_;{(Rj}FY()zL>jvVc9!L;nsV&C^siffku%Siw(kj?9Ng-0tK=nN_a?Cq z`;By*Up(AcKKbtRr{8`iU<8SG=PX;zR?ExEU6c&3x!~lPzT_det_uyn zXfdDZ-2Xs5CYtm%ac5Iu>iip8B9t@AFFJ*J>5`>B0p$^C*K08Zb_XA@V0{+sd6P@j6jn6dwp2-U3Ct z6Gm}EVE=!svXTKDyb@yUb|8e^7{&ohkNk$% zHwcH;M}9?YW|V&S)Rw~|5Aj+sW4PH-zQ&EQ-_e;i9%I`*B*)Um1H9hQ=o=4HrEffv z4r`srWAxrbDjiNo8cN1GqlQ{aI#jF5r68LPTwP4!4A0q*k8ze9>A+E3z&Xl7%zqN+ zIWusDB%b0djO*CL{WGk`H2oh$A{zS}T~Wm1&#)tkL;T0YGwcecae+FzlSJ3hpVB%m zrx;UnAglq=skX8&NHw59gSwi;XBl|Ic~6?#?ZR|(Fp<3rp;`d_lIL5%mGEKu4a7PQuns@3wL?z5q4Op8ek6eE=f-v*e#;NFZs!$iYO4p&|XD9ZY@4 z8}?j25cWh4X08ZqITb!vj`ZxQ97|hx%299a_MdFWQR2CDMI+2Jr1l)oQ4blC19{r>0K*?oEqRAqITn?*PV@UV8*LXeSE<>^09P>BacDXmS+r6>q zt9s?7o;aVwISoz;jSO_^d=48ZQvHYrqkTCLVef|w`9Sy%ce}z5X#5w42Mp{f!|J~D z0>wSm?r+m3>)Rj!st6XAIZ5^p2Mdub}Y>JGcSv>*! z6hbc3ss9FcafQxY1i)2XqZ`9Ekw?XMDQaA@V11;Jz}cnA(^6UiLTTN16q6Kdwdx0$ z#=Q0&nfEZ0^V&CLT6e0Su@YXZwG*s|U&dT3El8BZ?zSVESb_*~12?IwB8|O69Vc*$ z>Q-P_>7Q7$kjdaSB}_)RJPf_UaZC59N?T^?UbNWaJds!_0-TDOB%#G(#vNj$RUqxi dpL)z_k-3Gvt-o=bsvV)oL zc%#0{hr*u9;oKF0EoZ{#%8{NulM`tRPdVz1-Ts~Jiow`(2Hb6M#Sg+mhSZ+pIqE4x zvRvteg50$)toUpRUAeX}`))>+Q?j5|EbC;o5Zcg}XZoAwY z+3o&B3{<`HLK~3J;gT*+30)cJ)a4vDP^A7b561g)D8ea@81jMe9q#soACMc*j~Wc@ zm|=BadV%7e>T!22Ofpx0jKPSS*PD(fp3SFy;dgo8CAdOUl3zVeXta-$h8jBo!(sD( z_)sVLN_LdKO@@tfWoiB>OBGCNDSsHlU`jO>K26q9eDJcxXR*Y5OQ^9No^YQ}g(4fs zH(vyER}mN)l>b$J;2F~^b~Qj!SW)g)aixGDS ik=_GwNB-1fM2pNV?3Mn8X~mc(G3=sDjSQ7gL-iMq65qi9 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.class b/target/classes/org/springblade/modules/operation/pojo/dto/PlatformEmployeeDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..cb7eaeb8efd6ebdcab90565669d81108f2c74918 GIT binary patch literal 1078 zcmbtST~8B16g|`KcH2^tZQ71>al2D@rzZGQ`~g1k zpf8g6VD#1BWQ=FJ8$yH_6Zw$`;33TKS^nvzOWCC;OZ->&n(s6&iKM3`qQtP9%Kw&wE0<$8J zuhsX8C<;vf30>RWs?|M|1y=r1vupGjL9&!lLZyOnTo5RBWVHTfC_@U?S_ks2^g|i# z`&;b;)iF!;mv-E01s5&2pe!=6sY?}1VVdRtT4oNrJ(jD?hvhkiJ9n%XEfhVp1 zb6|;$8@*%fs|ifi>Zc}8vqT7On>b^MfU8YU#hhu!$j<9cImnu;ZYtB$-EA4mzA`j` zj>Re&hK6Lcro5wvaYsE3?0B>1Jnus*hFg4|oHYkmF@wvDv%KYSg$qY<6nM@t<1-3I zw{Z;dX#}~()BX)C;yTYt3cwBAdB5=)W20-Md5nqCmvdy5PD#{8-OZ;onFI-O8+X{%G{;_G z$2r_(-54CN_!AdAluEeAge!=v!m$gSwe*Np)-u=jV#Q9+lZwrxfD_l@Tp%Mi gf!e7*OBtg_b0?SQ{>JHLoGuj>QDdP%ebhtaH-CiGt^fc4 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.class b/target/classes/org/springblade/modules/operation/pojo/entity/AnnouncementReadinfoEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..7acf62c9a98fb69be067123c2dba389e9e69322d GIT binary patch literal 3975 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 MNw1^aoulM`0RYt(WB>pF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.class b/target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteEmployeeEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..25f87d4c0fdaedb54d311ca71c1a51b62aa54842 GIT binary patch literal 11713 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.class b/target/classes/org/springblade/modules/operation/pojo/entity/OperationSiteRoleEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..bfcddafc09f2a6409f9e344aeaa1ec3f5c367359 GIT binary patch literal 3920 zcmb_e;d2{D6@M$8bSGJk9mjSf2yIGSVq12urBJ98mn4ppsK`!;j7uB9UF$aX*{3`8 z?&Q{`AK*);bfye2FwhRn&}j$HFag>OgivM}_)=#0J8+u*50vuT+mn5^)!+}zNVo6y z{odQR@AvlY{qsNX{gsHO=%qZRD6NxLpbTXh^{?`EZaUmuHZL!&iblvNd)jvG@Ciog z(XoXb8I;p0U!Wc;Fq-lFWix2`w!6IKa7&m?&uTj&Fuj)Wd1!mC+45FBQ@EiWZkU%l zvvoTZS3O6}MDvVNwuQB8JB!ymcex@LJ5-=P>Sv_6yeSwBBrx?*t{b5S3UoxGvH=`d zEonGZpkca?QO*v|3rBeP)Gp7)Z;J0zE{ZV^olqJ5deoa*&K` zv_NAt&Pa#BT(tkeUD!AS()UDxCM7fnsLXEFl0ldSdYB%;##VT+GVNK&AXuypfcr-a z^ac7Nqx+hCO-y@kgNIMqAwX^rayJYZT}!4Q+E-$q@zVF4>1-vLpV&^PFEJX7__jT> zE_|Ci_KSSUL4?JtZIne*EZBjKiL$xVu^cA+w$6Gb7Kj63|dY* z>CT*&DXCgA`gQKKksU4EXknN*ka^Xb2O8G7v-NuQ;@o2OJj(Cx=8x}w|K`>YU;AM5 z9YlEN7q4x-`sUV8UzTAV{ovJGcfR|*;}4&@^V_$!Zr?us$f>PYe)Zw&Z)0UuKz%ja z6?5(8lJKMGR2-JByvac-17SKFqMY!TwSGbRJ zg5to^It#xX3Y11UAk<+&R;2r#LphvWWxJ4J!@S*HDDDl2&kI+Ck7eb?M`SLI zXeJU5smUGxeX(w5CKo|eo69S$dg+N2sB4%p1E?hIy-|ft7tvG z2-*%>cshz9KayyLnGxk&AL)29!noWS_WiIZmtXX87oZjGTWRa}f4=+fn_%~x=Y>J&^OmAH=*yCqrxrb@lP?YTJ^RIyb*f-2BV)RiH(8E=_T%3xVuJbp10O+Rqol^b{R%zY(M;3Vybh4 zB&K2))7)|D$U()RHlx$~QlPHLQQMkg6UQZIa#Wm2X`9k1HiqJ;x~}l29UcTC(CGz6 z5ADlJx6SJGBBT574Mjbv%+Q0lZ&JkQG14&NLjdxZaixq^3OYyAc*BJrTl8Rzf#;#X9ll>N0|jpK{fZ0Ji%ER8;CT_tn;03!%=n*(y$c~l zm++KosjT8DBL#q-q_1McmgxaJcN_nK^mm|48c%gK#?{=#xOcDdxvs{zth*Q=-fMiZ zt1-SJx)=}cHLi6vuF)(uC-+>&n8KJHFa449?im|ah&W?1n~Lu_*ky2eM2uagE8Sf7 z9@M2Oh}fli`C50EhY#vfl~U|dy>QWV9>~c8TIKJ?dOZF1R9^~X^Y5doe z(QcIfPR1LQN#7{_jf~le@mq8>dWCRoZUT?8Hu(?gDQfT2;Y}(`7PVV+yn{GV&H!?v zoGoS~Ci^}OY*KGAQ_LnnC(AlOC(A}rmmnhs=|v*}DwT5pmCE^IPJ;3=C|AsPK-vvN zo!)m+T531jyx*jG`Z|hkh<-^6I6Wzx_8-twm`kIQU!iY6(oj`v^faUlYD~~Gkh0{^ z1-b?aotnOZwOC_Ff|crIITNYCZDeE=GaXf_oQ+i3 zZ50@Y)v@j*T~e{cB&DfI&k{$Z8PKoMw5hPAY@HnotG{~+rQh9INo#v?bWYD{j-|bG z@AuuAy)*aDjPmFIoO+FjHqf8q)Ig0<3Mmw(h@jSe`hGo~*Nc~))5q0Zx&7G z8bOV#dv`ZcjGCepS13V>psiMEGHuV4%;MxkUe6inf|V=h4Lfbk7$w~?tzvq{+GnMW zqGLL<>9LA-r;(j1npr)+Nq6+ku2E2fnZp1^Y9ko2ij(WO$7Y3Es8vv?s22=D?LN%7 z!=1aRc7-|^mB<-(wq(w5_ss56sM}>vm5jZtSf-Fl9}^VMmJHo7cAD(e>$vQg`7}ml zxGq;H^l_%fByw<;>7P*OB34FSrB!0xCl$JwbrIXqowCiUOBDJPtK#LE9QkE?pXMRx#m#q=^}L|2)xH48XRunzjVDj|l?r{1eMSs+XfyL_g)~}+mjaW!7SuV9>&2O&8x*>R zq0NA9s)d?O*D7>f#mg2%n{`79ZKBPBl7J8S0$v?kE#wTpUZE}QB2k48&a!^1LZ4@S zyrQ>CtR7Wp8>^e39(QBU+U*K`fwkP{u4?$%GOp0h%4np8XMioc6}o{rE#QpJn}i0s zNuitR7EHpFZchzaIfMtc~(N>+5;APDS25jG{Pfh~0|BAGw+rCcibiv4(dU`xNWfXM4 zV`pAD{ocVBxHb*A{Z8ms!OU6ZbYXS^Z)MNq%YFyxog9Qrj>o%S&zBL8kTW}j$C|q6 zncPmG!EU;4d^~ggwmq3ms0!y#+c<#N!$B`nkdFIrqGD6LTrlvW2K^8-NLr8TgQ4r7(HdknKCho5#Q_muiFhzk1dO2$D;h~ z-HrWV)NrP(+;*Mgh}fY2CvcOKC#ZEc;L@_?}NbPSF=( zY@ix>V;~uqhyZeOA$fBk8P|#ca@#`k)<7~Y9s%Ueh2*h7GHxgV1X9J#*zWx&w4PM;c65%awUih+dd=0!XjtFiJeVx7$WOIcbx zm$LEAV3%$6x|Bu9b15751iS34*QG3Ho=e%dm%bJB;yv}cl!ef9sk*WJcJL^d*XvSN zPS2%m+!yR}WxXzC&GlT$#{I!ASJms1tF<7{rEGjB*k!6-mt6R(E@k6^;OV)vUYBwY z@kZI}`hPHZlzsKOl$(y{Qa12Yl3YZMH{z*c3pvr>_dJC|NBiHT*pn1)Jlg*T#YWfk z&C!6{gmC$`HTcp(1Mg5m4ZTfmM@Sh^Lv!@m3gRj)49HblL=7`0@;0>}p`;pCBR6 zYgUsCYW6@$wb=*CXe|I`v{to+L9HIBMQ!zgMzl77MznUdjX~`ms7-D6fyT5BfX1{= zwSz&O9;id@^nrG0T>$OSy45ZQb$g&Lwc7{UrS$-`OIxP)FldQR?fK%t|kh>gDe zT^LaQuKXDO>|hSq(hM6G)EuOVMqyjmHtJKLsICk^cQ*pQj-2o z@6wZynsH`1K~F(y5fM5@PeW=Im!SV2Kxz~H^Z-2rsadGy5TAwADJ&YM z=OA^7GF?kQg48Vz;)MBQNIl|7oS}XKX&L<#F}a6Q(b)Uc9HrO?)E%V;{Kdovv`mUk z{|~WJX&yojhxqqkuWDb7ncy8T%$dd$=s%#z36vXP<#fmAyaRZ(YN0vcRt5aH2^IF# z&>^^JMhXwKu3I14;3n#d)^$@z(^zZ&5sD7X(T%sW{wgiR1~ueaVw}9vv|bClCgiP4 zimBm>X`>c#O_8bz*(_OuTGTZmkv&$lVj9+Bt|?YEA-yFlqcyoEWVXj@s+dN!xNC}6 zO~`l28q*T4390U}5*5=9O>s?1)udERyR@WhLhgI4q-$CcoH_?&AidOS6n*qO9YL7G zVm18?QUk@s#q@K`Mk8G;;`9qhA^f!dPx>XKFx`ZueiTxK96CwAf)qufJwq=*iUEBO zmOZD=Te$4J2q{i~qfvSZQiA?XYw6dJ6wysR^czS?Ud#5ZgrXD^0t=Xg_z>OK z+6}DeqHqOJ!Gz|kJXpjBt05O^J#chBxP}ifc$C;8N{tn4^N9FAD*1xI`~Tec4e@_r z1)Dv3{3GnO-j_mnP7)vOq~_-WAkUSuq^p{@3*$V8$qPBG`K$}-x#c41t}D=&`159= zUNoE|ZH`wj4Yy)}^ObcimnSYo_^iigBR+%p4C9l*X9S-ye0Jco>lEEeNRyxvDKEfl wy+jRRUt!do`|AQ<@NskI-x6M_T<}lQDIj9dp2p`*`aN24NPnQW>5ruT7eQkI$p8QV literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.class b/target/classes/org/springblade/modules/operation/pojo/entity/PlatformAnnouncementEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..f0b790823a949524dd6ee1ced5123e89f5a31979 GIT binary patch literal 7011 zcmcIpYj7LY6+YLNv@2=-egr`poK}=1jx7R(HtU2yOiUE)B*jU1wGC@&Z7Y_vM!O0a z`bZ&=5SkLoBM>Oz9omLK3Yf$O3NtO8>2H3uf7%%o<6r&VX(|2g-YaQsFNtTEX1vn5 z=X~efd(S=R+_TDG{yX&{5v`|>BUD4R3I#L@QixIG9%HYO$Qt>P#I~V5X3Aj{T9?UZ zoNF1?u2{J%Oe%#Hif9xijnQVSFp{vx3z_`LP}WGBiJX-#W=%U`jhh9-$yoWsxV6Vh zn0Y7TOeD5v4QJRYtztf9=D^?NiWt>o(wM%#I)A^FAL-%q)oav1jf{e@ku@1L zdq9H@pWB5sYt+JFfl()y<$7%zwR46toXMIy3oh>>jbfaqrV6Ivm>VZJ@Dh!d(l;1I z1an6whgsxOicTh*xB*aij!QM_a80^MtH8CtsnNGwo;9>*$HchFd6#MQZO#kX8OKbf zIctSRD+S9joT428t5c)Z)WsKL!Td&cz zoEHJFPq>n^uhZyy&W?iJE4|72y&By>n;6wq_`;!;1y^0l;Wuiuxoq7vV-+}ii$*t< z+3*8*EN2gBw3V~NFh1z|mUFjj^!*A~y0?Y~HQGTtvF}mC9__W#I8=mivKfJYi$=H7 zZH$)Wj4`v<%BKwHmW%^X-gb<9}r_aI#Fdb}+i_H{T_Cwv_%ZlcQ7c*8-m6uN^^ ztD908D=}ymGDbFYuQ9~4D0XuZnU^znW$X+XJSE{dWGptnwm)U%62pe=n1y?C*~A_r zHD)81(}rUVW%B8SQ9&oRKv1@9_8>lsHZqb?&xLH*W+7oa>BJ68thQpL04uBev0(dd zV`K!Vy;mhH!}d&SCvs*wV2g;wWLUXO z+A1b;6GPaeJ)SLk%_Vklmn74C^?QwM5#9+n2spkB?uZMiC(}GUp&h<{a4>n}*4@b) z7-^*kPnI4#bnb-%voAf(htGa^?x_Q%haN1QI*at2eP;h>)02!EN(Y}UO;3F`HC2Q| zcw%4EUoEP`1tVwPZ5756ylfhd#|Lgv;+fUwN-(=JZa6qFIG|+$|GEYSy3*;6&71XH zPPcKYnwaX`(aG7P?|5e}op`)-q1EP3Yibm{p=I@Wa0ygfZLeSCJ`v6=HM zXFArD4!$t^%q#G#$is&IOy1mD%ng|Z*Y~`rTPY*E%Rq?YEF?4FjApR#Egp}2y=#V_ zur2Cm%Yp=7xeHZ)z;s5f^mcsnTNEo05;4$RfxJzzAt9@dU2#fY1&r#2yvk_s0E7=3y%50?lekJ2 z7B45MjD^?|H$p{R8AshI#I1{n7v{@DDU^OI3+1qG&_R_OFvex<1-IXv9M}Z+CXuZL z(=KMw3)Q;53&o|Uf^p#(HC}N-I9}avRMKK&su=N2sqxB!m3Vn|pyX0iN0vnRf6yux zQYH^6Mwfnd|J2QkJfp;->Xp00tq5?W!$tP+?s3_c?dD~@+?O%B*l)Vhn`b{i{UQ=& zqh&d^Q!vIw#@G!ZdM85f(xgJ~@!Rzbqj+wSP9UhiU6Ys4lP4pVsEKjr^m8KZ&^YemeT32M! z>)GlKHyAjXCq*#0lp74|*-C_QGM_gKy;;MyO2uA49rA8Fr5;zJ0y7GmB3&Q5JO0rhIua z3p}*v3suJb@Iqj>A z7Zo4n_||Voi#QBu$FJK7W%-7Hd+} zGHFr_eopuM`SRk$niN$~nq2B0&jbFeT(($~qHIc&VzA%e!Nj*lv+LN6hkvgz? z)g-NQhakGQuEvKR==w87V}Vbo=>%zAvA`ru~2LZWS55+~={>-0!0%s~+e3dbTI&;~sU&<0(LML9^5AW$CAM!gQ8 zje32oj)UqYs4iCT0rlw(0QKpOu?7xml%R%KqX(4Kn*d7c&9Np9YL=j;ShEMzueSiy zueZipIH*;ET4Jpp&^Emdply14tc`=(C8#adUIqnDqB7MkxMx2XXH~9a>^^!JcW({FS(XlgS4*qdFg*e)KsT}^{Q^{w23Rj01{I<#i_&>Aljr!`YZhkRFvMQPw8<`8vPAD@Drfw=pXbZJqfBF*Z&cE3RD9NVg93_ z8rfwuMo)ukVx45tGoYH;7V4v8pjy~=x{jU&)ygb1X3v3YV@0}zehsRfp2z<0q2-GD zAF5YK{es#Rs==SizMzW)8UDYKB$MR;3QvIlfGKO)TDY2DH9?*w{Di#CjOc{KO;hfK zcu({&_QT2+A9hO_ezOxdUx24y9n!D4v1eUiy_;l98+%5PVrpaO2~xTy>E=5*|7tzJ z1+jpXs66q6XssS}MaVf=qkUIV2d_#dDX zpj7%TjneC&!t^H^px=Os(BJ7w@Oc9K8_D-OP#O=;n%k-MOE3Zosf-~YiLoy+X?0w~ z8Eq6S1In1dT$Y4|Jg_QqK39U3x!@|^M<7+y1u9i7f0XEOIS7$#TLK=yFwUMfw3xK34?YyR{)-H^b2J0?luxfKrP?$wLpRDx8w;~4l%T+fo z4!jWHS&L^Ko(*_5;_1Va#M6&w+Z630n%_iwU(>o}_5|n+w}hQ?-+_50dJ{9@jrXnc b+vaKdJrF9mZ{s;j(-`s9yiXs}M-=-X0Pe2g literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.class b/target/classes/org/springblade/modules/operation/pojo/entity/PlatformEmployeeEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..8bd1e65a5fee1f0438677768a484b5674817e201 GIT binary patch literal 7061 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.class b/target/classes/org/springblade/modules/operation/pojo/vo/AnnouncementReadinfoVO.class new file mode 100644 index 0000000000000000000000000000000000000000..de1edd081a9830ba177b1a154dea0995d3ca91ac GIT binary patch literal 1092 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 b5Avt+8MeayBA+kf%j^{>eT9YVW!V1)<7H!! literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/OperationEmpVo.class b/target/classes/org/springblade/modules/operation/pojo/vo/OperationEmpVo.class new file mode 100644 index 0000000000000000000000000000000000000000..43389e9438d0ba162a067579f79d4f01845c96d0 GIT binary patch literal 848 zcmbV~O;5r=5Qg6^AC+1~5%Al@8))KQjVKqRC;Uh>+_$j7lD6BF!tc^VW8%Rd;EyuS z77#(am?pEG-FIf5nca`iw|4+%*t1|DWg=}OgDk^JR}2LAM9|?kPFJ>KhU}>uxN)5! zRjD>}SU}E%Wn&RG!?B7wycb4p&~ZG`mfTnEz9)NJg)$Pcs{$UXuHpm5Z^kV^Z`k*12lB%(9KVu8||*m2zB*rzEObd3gmbREebjf~a|n7&W4E97xnnch8k z1$#tkV1j1JrrOKMe-O*D3hHIeunu-hXy9W*4*HAY>-L^*Aq4>b#V9sb5dHr zI$)U?^GSws;%7(YHJa{+VUtuDMvi9Mn#;5_%T$=lv^}3`X_l!>OzVFz>DhiWYuW6g>}S7@)L8EcK(+R;|j1I%`99(~qPE!~|vG?g1|_ILyPDHzfK~`~j|5 z=*A{4jBfo+#(3Y%*pMhqS-i`;bMHClp8J0O{`w8T6V&raA#K4Zz(j_jDgB`xOnt{2 z_FO&?_CyXsR|K}43ZE-SdiGR~r7b+=sCRbzZ?+@+nbQ|7!Gq8j!BO;?A+zszj(WJC7U+1*~F?A=~HP(c6%_4CP95%xBzoxi_@i zy|L)4M)kG!pjf~qU7QiRGSI2Z1#F;9{UaWX4&*>YW1KJ)1K~T|?Fv62LtdR6GO%Y1 zs|V5x6!%n@yP+`2U;SeYM%=vKbUg7qob-hMlJ{JKD>Y@Ga5$mSJxLmB~7u@F)p~wdE zjkX@TionRAd`E_UUmQDn$eraIf228ai*}XLPT@K>afRYlx}|W9o+N2NhR!X@*c2H> zvvvyhIV#zvQ-203xIt$jF2GIf(2Zf2z~knJ6m?y?WPPHL!v9;-XRY)as7mv`r=%d1A87xZsS;BnnNIAnp+& hJqY5C{b?kK7MWYx-#QP|N-#}gxKGAwW2=#d+8-Wn<5K_t literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.class b/target/classes/org/springblade/modules/operation/pojo/vo/OperationServiceTypeVO.class new file mode 100644 index 0000000000000000000000000000000000000000..0e22e6bdc5cb4c6afefa833cfd9935642ffc582f GIT binary patch literal 1092 zcmbtSO>fgc5PcilagwHO2u&%3j{*hq0r-qk5TX=Oln|tp9Jp+NP>RgplxI$2s zRJ$2u7`B$dyX{KVMvmd(KT6N#QrT`hhb;1WtYVEJ)93#Fn;G{QN|olA&$;7qf9SM( zW6@WQ>MK2WA&)Z}oE91x>eSghHc+Da5f4Xuav-Ai4;Tue2wd)UMG%q+FAp9wuxAXb zd(saT_f?mBGhvaZ`eO`cT)f_NeerxY>51Tw_dKF2Hf5i9II+<_Nt$Zph76CI|LZ}6 zT3528^aV0(RH~n z;mlJ+M&{%?au)Q(6ITydUVh7WwH~h09i_BGxPVQZqqs%86wcH0BYmW4EmOv!$S7L1 zW3Z1A2hHWB`i|IHPEPppe4yQsbnQUIC%B?pulm#d^K= z9+tVNe?#^iEMrmsifrq4?Gsj_ZLNNc_2|!BXr)sU)u_Aem?n`RLR`aj>Z(Lz?@-4n z+@QJ@n0Dp|)@)?6xJe0%5v~AJzv85&dsL+@vve<7?DRab*k%kk5wl1_izSRZ#7K{U fv}1o738PKs7I({kF1O=V(G&$2OO?Kn%rc5ur z@zyJ6)GM#xh8cARVFpJ>Z*ayx;T3~FLd54}lP0CXVa7~$&pGdTzs~bM@7X{8dGrf_ zDSQ-12SQO834{?5$T;qb=~Z0IURf^5f-=iap;}U&=~R>}eao@UigU{`mF-*py1CGh zE?K^sEmum;x>B>XJ%Pw6%eMS!fza?st`jkIMiEb-3kiX~AtOPWjhqAJTYAucE{?^+d2G#2RT z*FQb^`OClV-+A)I!;R&W?>>L}?Pmf;ka$nlvekUGysX@-lHoNMoIKN)JOtNuq2U)T z<};K1-^62@32zf~HkGB$zL6Y(oKt?$DJ)8t9Q6q&4@k=fhls!L1nNZC*-YYkbp^tX zUsSF@w?4p73*~!i8?BOLO{GC~ngkk6L2}8L`PDgDse=+;ypoxlW$+A{<0`LO@&)3p zE<1;s*6}5$>gLr2OM^Vvw)Jxhhc(}L^mC5md%i0x0R~=A1PgI2;&K#Mbl)rq3^l1~ z*=x?Ks&{VCN*83_cieS>uUbi8R}7q9ly-r4(@@rNR;!it*3N2?Y%;vMUQun-Z?@<+ zx~oN0cQGSNC4JqcW4I=8ptU~hbB!nvF$Dr6Di{X-e_p_Pll<|KN(4d zwNB(Q`tBl`3a26sCF35WhFVHGTC2*%Ae#+bT})6Bn)2zoV{qILS8v7gFQN%i*VMi1P_>YNa*cD7W1?uQd6J0}pM(eno zWK7M0um(h@+RDBl)qnyG>S_|7Vc-pqXKMB0*OMZR^q+L0zlBr1=~L{7gHyV0^Mk$V zB4Ld6j@?Cc;sHiJ(enODLvN&v`c6!P%dNropdAk!*Fg)Bbr7(EwunPpj8N?TegEw!ZzyU?i?ZRtX5OTkii0imvmzIfTa*`2aGcb%EV z^e^zy7-Q1-u6^l4O%#%v7=6*i|Dz`U4{AMkW`ThcW8!A#{+jRm?m6fC?w#NMe)=PT z8LXtyfldpF43g*)nA2X>_M4vLR@dsXqU?sQwCc*YbyImVaI|YT^?hwCH*kUn_R{w1 zsuQRcT~~AAxo<2u20fzHvfQa4iQwvf)C2N{8x|G3A7eldP&Ng$;f%~{=Y1A)H6 zeYqj+x^$~{LA%v_np+*p;4u0Gda5dz+cE7Q9oui*PYL=nIErHeCmM2H&1$zSgZG`F z#*rULH}C~UM)&*01FZ%|t8m|e3{K!A@s*`J_i;$4fWjB^ZKlRmLkR4D9%@j6QvUwMwKmz3u-LGLZx77%v@ zdbdfGWWA-5Bx`;`U~q-vISo~Ed}pn$Zn~}x!rYSWc)`)O|B0+tm1l2Uwzc$axocoI zRK=0@YPqHwGEa>w$}f9P(^Q5)=Go^DpKX2p`Y)2y0}lM9GROsOieG^khQ?6pq>kI!dO% zu|2iYPBBH*2KxT|aL1$$YRaSHhQi2hc^(SaV+*~jfh?~VWwXsWxxBJaoMYq#R)VMe zR-HxN9dk&p>Xuhl^Nx}2t^;R<_zt@m#{3WQ^bf1YQYeuX2UA9Oq-4_ps0M$@v(E#Q`r_wiA41vlr}>*)51~ zL*I*R&1=xtW^1C*0GIF@dtq)hwtJnwgY|?jJFx3~=|Jb#ahX=e`5Jozy(^ph9@fEI z4@4I2tqrV*)Fl0qJYpe|H}GZ~&m?<;HJ#l=?^7HB_JfKuO7Ae@71###1AB8t6?55d zkW4(z{fyLCNOnHX{e)C;oNx!bxJvlP*-lYvqvbGFx=Pxm_SEx$Dd;{8?rWn)+oit<&mUxyTERoLJDK^QT3bC{!PK7%2>SrXAx-S?a z!TwxdewuYNJY)1;9O}#0C_$<(_XyU+CeD8}GjuTZY~xX#!qR`CsvI?ziQ z-U_K3!spTPoUaljECjjo>+zhb?9My*IqAgBklQWHvQIJGZ9aEV;4IBi5leU%gZ}_S CkmRud literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/OperationSiteVO.class b/target/classes/org/springblade/modules/operation/pojo/vo/OperationSiteVO.class new file mode 100644 index 0000000000000000000000000000000000000000..0a8e51b03eedf152169a42d9cc02dcc78c6e7237 GIT binary patch literal 4280 zcmbVPZF3t}6@J#1v@2=-QpZWEG?*If;@2!Rp>3qNkU9=^kY9*X2ig+4mbUWR(yqF@ za+*?J3QXIfGZcpDP~Z!Epy5M+GL(dA2c~=pGr*tdFvjp7DCN1kD`}BvKO2+D=7t>yBwvHmZ8r&}w$MQ8ir6t{aZ- znYN|X?JZj~EYI|=X)8_bn&}w}zD`2wjA@zP!xDNYCfCzYkd~2Ak%cPZ^a1&I>`w0W z74qseyJ2|}28&zzj;>X8tD+Tct5Oh?^s5*UGo+1LJpc;rT`Gofh}x=MF|B32W=I%{ zxUYF)t3JVD6-NYAsq3zL)pp9l|85mI!P>{M;j9_nyjVhpmU~nj$4AIqF}$oW~C2US~uX>+xxSR;$PL03wXec6k z_@s(Y;eLj>q+1KmH1w*3!_oOyHnxnCSD1WUWacRqpBCVhA&_nc58{-Jhq%*r1_TZQ zomWx78B%ZRF85dFSu+I}g;$;~uHl$^b=`1WrtxEo=OjoMc(Tnvtn1Z=kz~NcKS@IF zB2U_^8SAENZd8r4mSuZ>1u$Z#izU0JJ*~T*;XGTbYFm0~+huK(bx+?gt+J-K(AotW z*8Hi>=Zu1cWW#03Nho|62iL2)URk?j2jOdxIAobAnzrU%)hiXEc1~)x?nWkcwVF{j zb#1M*Y1DMWvt`3AIc8l{F!OEq2e0qm`o%wAd-LBfy((dV^4>3B+5N-IO^v$u<9Bxd z_}ahTdSmz1Tf_&$-QT>p_p=wo@SPv-{rX2ua3ToxK+&{}t`om0vK76kSIW zhWR>4qAb0dwdN;LXN57_yzqROPj+W_33HieZhM=CLo%`Xv1T7reQj&l?;Bg~i{}#9 zBbp%}($R|~9137v+JG(6_CmIZrq5?F5XF~tRKM^F$oHTQ9E4X6N zilrDdV=3g0sLx50O!P&|GMxD;FAT$#@eK*%cSI^K05VwXBl|;{2SKzj%6q7Xoil}F zco?67gwJx+gR^{i^>aMW@i0f{C@++79-pJ|sEbAFcy;fCxIhH2@eq;aJ9Pa#4ZO7P zG!$vz#k~*b66a)La=j9kxiXD!iSOjpEl9uhm%hSZVdfo*RsIS(0`LV~aNE2c--$HKZK!DZdm?IebvcAjd<>BR=Kh@f$ySP|Bb>Ldu*^`9v!*&N0hHt{-kdh4AAo2&MElzWd1d-t^QPNG5Jf{~5|pknFuN{VtTH z8S-lWaBBJ%P6iUEUY_AkJ~8_jWOIqzxa&I9*<9i#9%v#)@<~EQ@~K=>U{bd+bRB)U zWG)o}P2^>QCh|&779b@A$vGtg8qKE(8qH^NX#vWFpmZ)10gdOg1dZp_TvmY85Jag7 zO5ETkdn469>sP{eg3Y&b`8_;|FEhl4@poKdJL$m*{0?8Ct{129D?CLhLG<^bQ%d48 zzKab?y!Eh+5+xbW!$6smf}gUP8kExbIlJ!Dlrngi9l1g&i`%#do0L?TT-zf!BrE?x zzYHb)K90zEkpC6wecT<0=?@nXX3dk#nuPe856k5=HzbNWDGpb}A=(9lI0QA_Y@wo= zUg655CgT-95BU*K72AZgM+${R-y1BPVP8Hy$2>W{evy@|P}gnlHS z5QbbLv?wA`0@Fl3>6@4%zLSzmHcg}Xly6G4Ow63XYdkOeCMHejCHto1@ke|ySZR2~ zy?6y%JSu)4;zd*`iTr;7HEy>T_whh1N(o+%ORy;=nGpA*PASE&nxlAzlI$PYKalx= zcWOe0B1t?W{%!IBDca*6p*W0W6VSvYI#nSo6@j&p-P#Z=cY@pa7(?iy+~Lypinq~` d`*HkyapCc;Fl-GzU&Yrr%24_`zKL%k_dlsjkj4N2 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.class b/target/classes/org/springblade/modules/operation/pojo/vo/OperationTechnicalDataVO.class new file mode 100644 index 0000000000000000000000000000000000000000..cc93f5e560c95ad050e389373e78a6d29867e64a GIT binary patch literal 1102 zcmbtSO>fgc5Ph52agwHO2u*>OLV*JL0DML%9B7KvDj`TIK5*M4tHi+NO#`i;(bP$2&Xo-kZ1k{paT|03M;9M+#{RMgb-=42Lop+Tk>C z{bA4J17T0(VCIR?mQxXM9wr$TDo4-QaX8RSS8BC;v!)EYG2KI(g(!C}0^Y4B0;S_g~Mr$55`c#{8Ju9`}cK zr#BXT)u_JI(-#Z4po=p?SB5%uv4Ay{sei=7(ViTLXoLfXVkiQadyWV~vf{--lYt#F zEbmD_RNPk%_h!N*XZ6PzjJSEV<@(~;Y|<0K5$|~fS87Qz%i)AZ`y^?oksC5JTmSDu zgTyP@Rr(?s)+*J7>EkR_FsX(7VGDyP)kp+1S6A`=t2Un|0*h^-Mso0+2YezFnLw@u zBAj`Oz{s9_SI&aIcSLgSEm{k40j}XX?HINRJZ`>EQP-tQ)&~kHoZXr}ZKan$RhsuL#Wclw zz4jiaF|U6^?j6kZy#5ur_PyFCEJfQ|{RFGgpE1`=3l!Bz-F6ISb+C^T7uxI>8a h9Edyir;#99WNvA9^KY0|f@u=NT{2!9Ta7f-egUZQ-Shwe literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.class b/target/classes/org/springblade/modules/operation/pojo/vo/PlatformAnnouncementVO.class new file mode 100644 index 0000000000000000000000000000000000000000..20237c71c40aa4943bb02c814b4d4e11e344419b GIT binary patch literal 2826 zcmbtWU2has7=BJW`_Z!f=A9Cq9>)0=WFdu%i>bIL3@xnf>06F%PB{~fschf! zFPMXQ>7RGp!hYL!igs2NXg?GT3B>nUw&m{?sBUc=sX-Do3Dl;r2q}SmkC2{|pzytK#6Azx2Bqf^zV(11qH!BsNXM_gkWuHPZ5mZ;_w7GnufW6JN* z(U!EfmEodz8o4ZmMkiF(&$OM^+qyo5Cp0*&G}5cZ z2CPqDBgvTOEOgN5))d;%&d}r1<7{&(*tkCJ)k+snxt7e2DA%I~PWBxX5Jv>+O3NCN z`J#$(`T9=?q)!wngMu2dJZm(sv_AYmK3soizvY$k6N%wGK9?v1ytT<4t+-<h14m?tU?I=bevd zFMY|;wSU}vfA-S5ciy;3)1B+z&?K&LLLxC@q1^f5jk8rswC(VJB42To9L08fHKJ?Cz!aZqLjViPN$)LZTb` zEn6Ke7DkmjEJ>HvwUZ^?lBBaA84Z8jB7Z&o|F?QLm$(;cet~`>$+wMg#|M-@?&Jog zD+`L0F>wujO6p%+F1t{&bV~Zsx+xE5VRc5*B$tjqu3YY`UQJ7>KvRKruA2-7gA%U^ zM}l_Ukk4HkkW&#OvB4941BaNbFQ|2|nD+$|b5V?zz^iu1DY{wJYiVXzRXVdqj&0F3 z!BzJ-j_>)doC=rkHN}iUJ$rg&QJsl zgC3T4j%R91zvE06r!r-=AMsyiS>QN)VM*wU7j?<0)Ikv!fa- z(TU9v*uq{FOg_9a*x$;?~#MeReF240J(18r!Iu8NZ!>f_!n7$tPUg-QS5?47`g?Z<#6`grwRB*0)(0NBi z=e>A_DRky8el;`k_Kxq6s66jwAtIW$UQ@`~KKjL2Y5`CC(Nig8-J^yK*^WYnoda|H z>|$umU48pCH1SzFgEa8qTFY6kpJSP~R5Y>s{3aO1?P&iTG2=?dPe^`(SoM{TACVmB zWZcJsZhOadtP5LAb+nVOE@Si0Sd=zyq3JSGo72WMw3HA{T`@wMy5i}W#>8)-`7-L# zv2?ryGOjRdb=j772D@@NoXs4sE)L=l*SQpD(Myd~QKbj*EN#^k|}FzJ`u-+TPS<=z+8mjU+X>99mtOwC!Qwh%`-VKL(gK$qGHnRu$^-B#v=*)!4}2 zRfB990YOJ#+-Ln8BuEHy!e0{i37YR$X~R;)N`Ml^SZE@QZpQaZ|X>gIRF3v literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.class b/target/classes/org/springblade/modules/operation/pojo/vo/PlatformEmployeeVO.class new file mode 100644 index 0000000000000000000000000000000000000000..fd883d51357101b5c4d7f10bbabbcbc1fd7040c3 GIT binary patch literal 1072 zcmbtSO>YuW6g`ibVSv&Wv9xOas9Kc|b=C&#rp2TNqzTHx-2MNWrjS=3ybta3F(`6V3wH zAN4&x6wXu*=bi{1ITHa_uJoOmoJdFb%2g-Mk;m058BCkgnI}(#Xhvm*bi?&swZ~wT zE4>Ud3>&{gd!2H{MvkHJkCMl7Nv_w)A&Yz-t5{>m47lHXGv^*dsoa|IWA1p|A32@= zL=05D@>1_w$m4XbUx#!y_K>sZg{&`4xz8 z?kOT8V{%qc8JRD=kP=qUm;GnnZ#KaSOL;suHceOB1JX zhx%4v+L<3%vysi>E)^_BxB^W5dXteJQJ1#N(z9r>#eHJ2%@}YlW|4#zOBi>FksbnR e$Ntn4Mw`qnHn#u9X(yZ(DcmFDwXv0GhUzcbqSE02 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/IAnnouncementReadinfoService.class b/target/classes/org/springblade/modules/operation/service/IAnnouncementReadinfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..fb7fd0996a937a91d821c3914d04fddb983b9756 GIT binary patch literal 408 zcmbV|O-jT-5QVG9pE%>jD|i8G;W8??a6kwM<^-Ki89H=Vh5i|wb9fsU9>7D1ZFHl^ z2rjB>@!+fX-s{`*3jkcgaRmznYY79!DOeslr+Y##eRdR4CJH)PVT=?u))3xaGfQSe zo;cl;?kzt^`zcniui#|V8;wr$fOp+UCRK2#;M|DEPK&p_Wc1svP~+rsM0!lb@!N|p zoPuR*2i7SEQt;IL1lP?!pcl>GStl6kYS*ovU1*=waFtoO=SUlZT&e@0k V(u9J&G6$u7fCW_ZK7!?ZSMO%bh+6;v literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/IOperationServiceMeasuresService.class b/target/classes/org/springblade/modules/operation/service/IOperationServiceMeasuresService.class new file mode 100644 index 0000000000000000000000000000000000000000..5c910ad073286c2a80cdc50fba8ea424a3d2df51 GIT binary patch literal 1514 zcmc&!%}yIJ5S|Ip5K5tx-%}5jD!~OG=xu=$MFN6?6x2$+IlH69(Pq8a-Y9tzUZ79W zLmz;5=&K-RHv#b@D;o)^2Ww@I=No_D&V09bfBpi%0c_QwhH$D)ENo^}8g~*Ik?83t zPsj?Lk&#a6R9G^76_PkZpehKO>FVsEJ zk-DcMor~VE!^k#Eaw}-yD7DYZjNuTzSV|bdSN1~2gz$U2=>-q9VM63&B%Kr|MMBV= zOgPhBE&5vc3jb&YJJS_qUCzl}>F7cl$qyo95oWWJz}BPEFJwh%v{jr+#~LGkn~vxH z+weU6FM7S%;}Jg7Ak)U%LkLHcbPaVHsbUbU_-SOuGr)hp?DE{HL^PFk0m9;SPG&g1 zfbeg6)XJnOb;=FB-TA!?2Zyg-S)~9CLQ4G5MU;^dR;}#QtA0J(uG)2x^N-ijCC}F{ zgc-hsa5K{SiK7Jm+4H+e74qfWS5+5bp{;Wh(y>a|hQ3a6$K9f3*b12!uQ|5h8Mezh z%tH+tyld28fj{qgE%K_t2M#a6@;E%l7V;Qc;m{{oWt<|DLu+NmC~qA$%H8HY=0pq| literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/IOperationServiceTypeService.class b/target/classes/org/springblade/modules/operation/service/IOperationServiceTypeService.class new file mode 100644 index 0000000000000000000000000000000000000000..c94e73471629091746e2cc30988a8300c57b887c GIT binary patch literal 1658 zcmcgs&2G~`5S}p&X-c3!wEPsP)SG)@4?P-sDn*roQYlrDxNYoF*vRpk-F1{a2QR>L zaNq&B^E!yJ9ZIV>)Dabjl|4J-Z)QHveBXb5{RRN9VXp}u!ihEmVN;`$K|hueiII-7 zn5@t#8R?Wxge5apA&JxO@2g&Ub3RRJ_S%FMgpHvbOA*UtAiDh_g{}#A5e`E=5`C#h zD$$(>Sw&CXNz&EyWBDVb4;`2vsT1k~Ck`~2pU$T3JN`zKV4HD@xLx}!z{k{74 z{*L}TN4HWm!g@~XH6pkCgHADwnNzXoDC+`*i@D2N%D+pKRGZ3KML53cKZZJqRK93d zyf-rC9pg!xE57|HBQu=^ApBS!wRW?VIOV35TkxiE1xIrg)&ZwUNO3i6?qO7fRV&Ao z|1X5Me%+CdT=mW#pYzgwK)AyJ2wSauxe2S_L5r=H2W$Me z$EVH5gZu1$0P7rF+8bPKF(?3_c1!xKN44xO( Fi(eU_Ei3>4 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/IOperationSiteEmployeeService.class b/target/classes/org/springblade/modules/operation/service/IOperationSiteEmployeeService.class new file mode 100644 index 0000000000000000000000000000000000000000..ea98c5393e4210a9f24092e3ca54e9e792774a06 GIT binary patch literal 2150 zcmcgtU2fAr5S|TfLfVEvA^a66l%J+TVjp-kM1UF~Qc$Y~QVEHNjXiQUa=gY~N69_7 z0N3Dw18@OugBUvoCncedhK~7o>HVH6kgBPQB)FurQ zewf5;szngd)l!dUldm4@3`o>%DdddO(%XEHJSkZ;KPLRE%rLP> z54LdVDS!5yVX%K%2b#*YWHcrNe(Vd6CM4xBCS9nd!<#bDl(LPFA^M}_0)y|1Tg}`g z8Aw$7!^JGtacH75hn$hhs8OJ0q--Rld>-m9gJ+p}L36i0{kpA;s6=@|mfFO*PZKpC zFBoI~K%T!`vP2tif=sz&u+~zcZ{kbo&{o>{>zaHNQG<3ObrGFaTEs=#n*}%vIVeVd zIas65I-LzVIVh3(9F*yDq+X?s0@0?u0Gp}kVl27@l~i;&7F~g>Cq>ubdLkkyvISf5 p%^Pqty*Y-s1>1>JgnFB9jvcx~=sR#Xy?u{VxkPy%9>jmUKLO{H!aV>0 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/IOperationSiteRoleService.class b/target/classes/org/springblade/modules/operation/service/IOperationSiteRoleService.class new file mode 100644 index 0000000000000000000000000000000000000000..e76815d24d916cbbe68b07c1b1ed9eed10dca4b6 GIT binary patch literal 1718 zcmcgt&2G~`5S}p&X-fGiPzn^9^rnh2cjqS zKqa~qgK>{3ZIP8$(8y74f8(FhA?#Ypn4#wHSf+&Vx!sw|8f(KTkdujYQXKgMVP|oQ zh3;!H)S~9`O*cGP%^O$ZCAs%HIhICpBxEeYT2V#5H7n{#1rb`2N^|K-Lx}sUW%lrl znH~P$(wse9gdG|c+SEG(;pw8<#X3)vZ)hvt8d-2J^VL>OTRN4AjxEj)OK5U7M} zVCAq9FoYNN*y{?oObnj<(=R?JA{fpWkNE=lFUztK>C(jXTxG1BdvhiHo*x9(YlL&W z8vH;sSks%Z4gs`y*9u^RKNomy@(SQ0!Z+`v${sRDBK_v?r2CtQF^DxlTZ?`<*BJV0U z@-XBoKrM_^J`Yj%q=UTH7(z{Hu$iD)SYfc$5k0{@;kS9C)j`K(VU58HM|F8isIGKX z#JhtQxeEg?3OV)-`r(xC)E$G(HkwBFRI8qJQP*4s+vQ4q9H40|*D8bE5IqVtMe0)3N45Q>X5-o z5VPJGRos@BL9Qv=zA%wS#!8pV=;aa_9sIv?EJt&82h?R~7@U-ss6g6nk&zy^?x@$k z{7Zj}q>X(Cz3FZ{wovte*c3lV-?dG0*j15llBO>V!K4Dk;m}N`(KrV#!ew6XTPh{& z2TD&5A%mlf+SO6ME3LSM{GAp7=?YC!JmZse3!fv@gY*D{pO^Q#aC+z)X$EHs9%EGT zv(y&xnq1(qZ}h<4)cEq&L(#)z!avRLDyoS$7;A8R*)bGf#w@mn)=cpzjUnM!kVkr1 zhyv0)Y#P!OQl0(sc~L!&RNgblND|?-F#T_X^x4umA`O)ugT@R$l_jRnh9dV?`139) zJTazE20OFj5WBAvq?6@Sov+FB7tbPhI=A*|+3i5&n<~-{zL6er-kZ5HpW8;K{m9@7 zJ*%{g^Rz>=unu;Y<{%FlxJqa)0|k0*&~uHR3~Z8l3$CZ;RW@NNlBx9fKeu6r!X=(= z(D7ZkIremG6l9M~x8V*QwH%Tl1l@&uDMYmHljT9o_8~kPpL`rcPvGeovL`cX&}Xn8 Hf0h3L1b@Fc literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/IOperationTechnicalDataService.class b/target/classes/org/springblade/modules/operation/service/IOperationTechnicalDataService.class new file mode 100644 index 0000000000000000000000000000000000000000..b99354d8b23ace988ad9087fac0cd0982e4c9d4c GIT binary patch literal 1598 zcmc&!%We}f6uk}&A)yc`w7j}NVv}y_1Q?gFi|ce`h)4m4Py74|SXhpIc;X ze?5(FZbIYXf0)z_HO^ocXPL1TzF}~5-8`j9l@7*t{IeAqd7l1x;p^P%g!i@c5rfUI zIokQ+1qMIYXRR$5Q?LEJ!jW$aFgm={V;y>&NldDU14g_gRVcMID1$+-uEpv!zW0Se zCtT4|2!n2((H1Wh>?#U^m6PpW`9q4J8Tt@jQ6Rdd72U3H7r-)wqUt+aoj`R4SfoWA znPHBdp~JGH*_Z zJFg2Z?7)hl71NsjIFI+|Ysm9Bqwv$FUFjr~A?Fd6i;DbqF=dnp&7R7P45cH)_I&!j zF0SwBzt5-^(g@oZ%A`*}Wk>md@O!=q)}p@JfHEj8MjT>OS8pC_ds3 z)#};OC3LDZo8ae{Jo(G$`PhIFmN-_}^q1JA8?XiuH2KzypvA{J#~Y3a-ZH!a?4`~#l6Zx?g$I29aD8B`n;J?xgY@4AenDQPkuT*4G*QMkXc!j+CS7Nx?3$dj-*bM4j@4XIj0`s!{mwls%6$uck7lNV zG1E+Tc%I-h@Eg`YRf^1R-!T literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/AnnouncementReadinfoServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..5dfbcba469bf6af211a69c665db5b174592833c6 GIT binary patch literal 917 zcmbtTT}vD>6g}AwSGU{R+A8$1&<8EF`2k~vA_~G*#4Y=tnYpg9lVnIT>i#UB3VrYg z^hcH685I^;mVpwu$-Q^xKyQRT)&!Ew8JQ|)bnYr?=BbK0 zltmRJ-A1xOJ1YbEYn_qQrYz*-!8zfxz}mjHIvxmgclV|PtP7kvKa-*K+RoBKu^_39&Q&4+ZvHa5Jjp(#vJ6 zzBj3)1xV?xoMee~oG(Q>YEsET8?2{xTBQ{iX*h9}&*)g!0)1RYf1yvlT&Zg%@cz7F zB8H|qXcn^mDK<^VI_@q!^TI1bH_rc*A(AH-=OsOLc7hKW@Q|=fJTZb74+`5C?8(Ll s`k#J5+;O0T5!*Tqe8x+*qvqVlD{QjY#cQ@5yuntpzr{P=>+iRLe{uFHmH+?% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/OperationServiceMeasuresServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..94086a3f08f53e2c5cdbb262c1afa349c2787598 GIT binary patch literal 5460 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/OperationSiteEmployeeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..f0ccc3940c7a44cb4e7973a9fea6a52e65773234 GIT binary patch literal 12988 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/OperationSiteRoleServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..fe78a6a1bd7f363d01632d36f7e9fcfcf4d0d83e GIT binary patch literal 6389 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 Sa_5iu6W>C(TCQ+^2L2C_f4mw1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/OperationSiteServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..9e26fc5dcdeccf9e09c75a4713ff0bcff3a24f5a GIT binary patch literal 14707 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 HJyrYFz!E zp7T2&_ndS0A79@56u{$nH--?xQA9NC!+wE8)-LK9!!DXRyQ~-2GKOcmr9#=&u$+0t$e0n z*ciFoRgv1;gL&n)OE)AbTvxC8xB9MbSr92OXDVZJSh1Y)lA<|Qqg za|KQgH8PLyPC;eAJ2l*eqXI|e<&y2}U_XH~t!$UIt(>Xi$<@z0zSFns9>d-ES`>pC z?!mnR!;SX!BgU24G6P3h%+*hoz2$Qp2}JYKJI6C15Fd(f^GyBD2^HsRX(EREaDNoX zG(3PIfhQZ~Z9faXKc(fF-r5d6o%D$nJTpd-VRZ-b_)abuR$gE5)LEnGVT?pEs^J?r zzLTn+Z5IMXE87B9O_w@YD*|@~9`-q(UN)Qs`FvSgS(%70Me(4(BaJHghA7y1CXTEu z`R6-0ypz?54m>Py@L%s={rrP>Zg0H)pI82Rd*kN6Ke~BO3_2cF8R?q>{q>Rqo#JU_ z&~It@wz8&j$dn^5cHjireSYoA?OW>&?8fkT6yqActJdG&6l&n@n$HBf$aluft|;Rw zd8af?C`2msPdn1^Y^MWf1jK`idRD^|irPu)f@gSTH;SY{_vWc%{vw|#gw^tthH1C77!TO`5b|jRtW0=$MJDXP3Z-K24&*f~E9SAXzhPo6nNxYTg2egI3A0xFwD6QDNClg zE#?+S3UPdQzTP8Pd!gL!nu9$8E}*euIcq^rAn)|%8&AU?;Uv@0n72ain8g*p8%Xu?vL^Wu3JNu)nT4 z*SbQk>Zw%xI{Rl!8UTV|bopt+D_PT)qijuswwR%@Prgfc}x;PZ0eZ z4vdW6Ku;Jqa4>|wkPxn8cEV>iSlJLT<5rZh>I>+{3%E@2Yc-LI_9N1M%$d#*U%(~6 zPxyrJQxbSp4UkxzQAm2LKyKhj2-BmRAk;S&;3T?nst!nR4M;D3h8M}Ro9kY}%luV9 z4*9zj?dLVxE1Xl1_6bf`;anm47x-lW=kNSiaMBwXm>yZj*EbNqh6A^tU+8=2Iv)9q zbC1={eaD|0T}NUaCrA2DuVZrL7N#y-$CK-LYJ`N@4J@qV!Z0^}|Ig%HvFtEn96v!f zOc8hzhw&8dMGB*s!K0YP3Cv-Vca}NK*D0N@DV@eu{EEmUr2iVfp<=I+UnfHU#o;K% z4p#NN%GuZWbaU9l}=nd)|@`E8C=se)-TtokyLQl1_3i?F_y%J%46bfFD zB6u1-xWMlpOLY(jY7hr%5RU{91KTT1g13-21NkpgzG6A3W!I9Ul) ZM#Wp44+mlTC%nzK5Z>|ar%v59;D0ftB!d6| literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/PlatformAnnouncementServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..4759d59cc40780922dcf6dadf583188899fc64a0 GIT binary patch literal 3138 zcmdT`TW=Fb6#m9`FmaqXT$*qx_nUJeQ(6i%8v=xa6v>2$puD27Jqbg1cUHTzp?N~$ zp}&Kl01^^PAF4k0MbT4Jb1@5XU;j_d~?p6^WW#c{{e6p3nk=`FQQP! z5Dqao4ejx|(4K1Qn0woGVN?{jam3}HM*5M`K96L$r5cheFL3!6`Wc&z(Bv!d`t6gPS>A0Q?*xOOYqnzm)BHeoDm$y z4@FFrF^Lllvl+zg!^2RDqiImuEbtlhR;Ra zrIn*K-4O1&2$h}hE*8v7MHjN#0}(CvN&0>Rf=y|M;obibvHgT3K`aDGZq4-l8!LB6uk`Noe4r=y#M~TgVr5}ec@j?ILbxh?s*5m0ht|tBF#(PTos}4 zq>&-T=J1-@^o5B-$yl|&pc)9MgY(tj<2De`47n}MSm`_EYk%n(5F-Vfwv0`DJzcVU zm0qA^R{ox=Gqo!%l)mwK`C8Y({b34kCm+!mor}YIeSG6C!fUx z#FOhPQdCuJ88%5%Mv2>AT{mn#zt-U&Jff_Y+R*dW>H!^Gpq4KOhV#^07HFiFlD-#d z#%W|U4o!ao`#^tkxI|wow!+KwEvFlB1y^atsG+)se4_k@#saNPPJcx4UyRPo?x2## z%FOj09LwQ7iSmg#+sp#Lpn{u;$>~&W*CZK06;p|uNlasgc2@}TEUuIO9BED@`gWJa zo63G7*$t8n=V%$E2K-FF9Jyh(aUroi;0qe_G*;R$p3JvlOOHCA;5wgf-NRMc!)1|M zToz4Ah?QA1Z5VEnFvajI38*(B1&d*cMoYk03&Re6OzCN7`(6SeJ?hvVgfZMA$Elkk XMia|v>f|==&@6}FFi)dBhXZ^85I@;? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.class b/target/classes/org/springblade/modules/operation/service/impl/PlatformEmployeeServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..73323ceb461b8cc2c7558359d1663c9e90279a26 GIT binary patch literal 6007 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 K_&ffIrvCyvxb8dv literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/AnnouncementReadinfoWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7d4549253c32ae3c8d546afc0667cb188a2f7dd5 GIT binary patch literal 1319 zcmb`HO>Yx15Qbl;`PvX@C{VtkTu@RF79eqHsZ>z;QXmyYK^&c3lRDbiE3dbRKf!N- z3za}ZaOFoK#@Qf6O`&_>V(*M+o_RgC_vf!K-vHdl)dosfsG;0M1yzRI#twO!Sfz)9 zSVWSC#!5a;c$y`Nv5r3wsoc^|x%aQFND^ros_RNCx52Q`?(}P@Gi)8Cj7^lqGUbL6 zgi}WIcX>A7)Y@b^lw+ygODQ6y-Sl$mSx$m30%z#>CE zkM8#vKD4|4tHN5RC~D6fDzx8QV<==D*QkG@Bimr!CpZnn;yNuA|Vqlu4~qaLT%5?bgv*op%5OyCdT{^% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/OperationServiceMeasuresWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..eab443c2b7e4818ebbed905fb135cd03c5965be7 GIT binary patch literal 1764 zcmb_dTTc@~6#k~PEUgtvy?}T_MJyCqjSoB&NdzS^_Cf;I_&9ARWyp4Co!!OoNBkZ7 zB1RL#tNtkCnRZdq0^LMk&e=IV=ljlO=Je;UuipVY#c~D-j95r!k-{j$W2M`+?`i3_ z8xC&?yQ#FWJD%-_o~LwRuXA6#a03|}ywTkAgk~6Bm97ld7)A;Ubqiw*FZ)qCsueoI zw-p8OKq}XM-;1_u$ChoO_hnO51ouNN{0Kb*%cOUK;rVb(PwgptU!93ruVru%;}#~e z$YGM9(2v=zHc-m3!$3N|y)L->n!Xsuo60-b(x!kw3ZG%6P~PMF+;+Izwrh<&(F{r_ zEE^8@{nEk-OXQQmC0w>}C5x+=VwmiL7`6z6pvSd%7fLOv%B_YDkqZ_&vn%}A#f55YdsM*_D= znxBCJW=Upy4g_(RPHEi399c~8Yy>&>4c6O3q(734oro{ei5@$78Sfp^Bc$`ieC7+X zMq{t@y3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/OperationServiceTypeWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..832d1cee121a039ead38809c6c514a62ce660e3b GIT binary patch literal 1708 zcmb_dTTc@~6#k~PEUgtvMeuIDVWG%seBhx-6oR5Dlmx8taoSGGknPSoyNlsZ_*?Wv zj3x$O{ZYmCazZzXN!J`3w>mvXIOog<*zAO1Es^)6#9# z9o`gnLup~RJ=+gGPwBv3=Dt{U0~zeU(cJTdW*AD%XDBjkc>tmMx+8WJ7H4dm=*4z%r?wV|aQto~L$|y{87^)v6hs$Eby|EOHoU zC?3b_R2eAc*kK?Y-(D8neNA5sqYdTlZ)%fxAcfDcP^|3oJ#IVPZQ0fOu4n}19?Ocu zeZM@@V~Kn+xPS=@7qghe6vKE2#IQvm1U;(7yHIMeq1=toA@b<~TmzsjTxM81UQ>V1 zJ3SJe;SKClcdn-GSF^Z=>kK1Z?^>1NL$UI|7^polp-voVnIXBNnu1}hB3-c&w(CM~ z^SVQpd_^_5Q{!5ib7V{gJCa)bA_jAet4Z{!dMKSH!^>ivYT{u|{MnD5ZD4p6Bk6dv zrMxExahL%w$7MNfD7keJ?5O4@*SswPp{eERE!lE;5NaCDk3Nnw-ICYFjSbWIv8QtIE~WMjmVV& z*AyT^r9J+(6U{3pmK_z!^_K7ILn*t^88|k#a||ng2lVy6<_CH(V6~FLd5k(3%OZzy zhQevUcAcTtE{{Ux27FZt?3*X zz1<|)9^c?bbw+C&e=UpaxWO>eaj#Yw-WAIKje;5!6YI}2Eiok5bVD+Xm6a#AqE=0s zT~Tw%k}vDJaI3;7d+r*O;hv%{KaD{h=YA4@sun4?!SK8gr=FOg6TjA^cPSWN#K=45 zgempOfh=~;YjJtb98GRhhI_iPEsSW%P#S7{dPg-q5k`gv^sSHNuTRZVU&ue-@KRi; zGfG^hCT4bYWa@H5**iCV)?>C{*B#TeSqXZ1fh6emV3_1hI&spBbZYJh>;ruyaEqk< z87N?iWVYi#5Vz@+#vR-xiw&OYLXLca^ZE$s_he%|@kKh(E|Zt_-X%RmI$z9ZJ|TMy zl6jJw^ER%-YyTC1hxAr1wz;P|5nXPI#XZarYL5KwQ+^4|l7EVk8MzfAnR;3s;106G8w literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/OperationSiteRoleWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c641bf3ee942f65f1a16d403b715f8b99f5f4f3e GIT binary patch literal 1666 zcmb_cTTc@~6#k~PEUgtvQSpZ24GTp^;{y)`j3D?@C=smjaoSGGknPSoyNlr;_;d6{ zj3kCJ1l-F*! zq9u7#8_7F943shujOzV!wyFBC}5PKbQ-K% zU#PXqqfog4UzWmqOJ5AbP3`Y*8k=&cWWX?As_u$C!Cm3Cd9AT4n_=aIWyKXiP?0VT^%}#cQuV*UQ)3e1oIS@1LwZHGB*REmd2%D_G^E)U4VNs% zs%{FmE{wA0*q9D?6m|Ah0@{o2B5`LLk#buMYo#Q0Bmf-!^AwIRKEvw-xh9w-r90M# zZfE%-DgL=5D6GqHN4GYG5gi#yLk-SuskSG=$j~4T`v@*v9}9gU|8#pRNny?@ZHbze z+tQI~$~9&0)Wms2QQE2*c_MTb z1#lyk@4oLwyVYaMwlpG!%)qfZU0`@N7${JC%H3C|fojzZ#xda_mqi|v48^lRoqHLj zJU24Z3*9xr{nzxxFws!K!IrkE8Yx1CrDA1|?{nAVe#@=a_e8^#PgvGH9){()6PDN~ zgNwN2;BppMFvT$00kLc`2tiM1@h*~DY$|^<@`!x44_6;(2h$9zXYbTo1)UFG?!|NVd3KiAh zUX5#M&#^ISb|qEw#SoPLnmgi6)g$RO8P-gyo))|DMeATxo@hl-X91ZirXX z&dhYbC9`OsBks@(NYEw(lA!Kml;kZsxuhBC)chgXC;CX>Hc9&%C}M_Ww(CF;cj=VI zJ=`aY4W5Z1$G*dPdx-Q$vau8KB|6cYBQNW{LwbaCp;X9xMfM0J3nVudY+RSuZfW2# z?Xsl~_e?h;=B8LYz$~HW$?qZMm%tqPrx=-$UnR0BGFh^xq%Bl>zI24EUvTX&NAKOz UG5#@D-lj88(Fv5W(9w^61KU#4I{*Lx literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/OperationTechnicalDataWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f9337252c4fb83a4c319356f3781d3306eb6920a GIT binary patch literal 1736 zcmb_dT~8B16g^W~mevZTD&RMwVxh=teBhx-BA`Yslmx8taoSGGknPSoJB#6O_)GLf zj3$N`U;I(VJ8e;)|D1+D{#Xo2$VMNG7rUL-$=9fO7kEPnqhEJ`qC^h3>0Rn4u%+>9!F`ZM&yam zRTRLDRKEMR6YW+GEnA|#?aMm%R=MF_>6+!==D(-8x;qugEf7sP5MgR>ZRFp@4omH;QmYcVi>NgU~fa)}D-7=n<^RV)Es6=&XRIZL2nil8q>EPmQ!Dy#h#FVzv`v9 zSpAAzqDE#mRix|UiL`fbs_)A-Z&x2TXvq@v4g*QhEy5tlYjko+Gt#NqeXtMok-&A5 z_Gh4gNs`%)13^sDDUF-BMHU-8*@YbX0_XKU((lQ}j>H$~L~Bi6)_aTe0O@=&pZSFB z0Z8UauFcuF4zK->0PfMdxzOgG>_l|ADHgXeO{h8YyF>XUFhl++MrPz55!pDIEZGCn i7AiekJix?9T>8z?TU)w|e~6W{>C94e0!7TV_1&MvM*`>o literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/PlatformAnnouncementWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c52deced24bd21d4bf3d4e4d01bf5af1e0597c77 GIT binary patch literal 1708 zcmb_dTTc@~6#k~Pl-3HRB6zpnuux<*KJZW^0zuJ~O9IyTIBmx=WV^G@&SLlz{uX@^ zqlv*+f0Xe|yGB9_Y>Y4G%$z;v`_5%%_UEs!-vK;=ag+Yc#O1GTA*V1d% zUEUN*=DveUE6B_9T&XVBXD_SuOHscqs$ihyCRRNdu!+;O?rayII_qG2jW zEXytrg38npOXQQq1&pO}F^6$XFpPFUEL#LZ(8F513#At8%3BXzBA@KT)dxC_%M7c> zYwGQJr$^LZ8eZQ%b?0i^el>?{xXv)t^{#C&d?;1_7X!5?Ce(=otuQ2)RZ}pGRHY}@ z!**ThZC-cDQmCp1cWYcryN`@Xvm>d+&tovhIGRMCs)y2TGQ23osU{xgnBV6%FuaVB zbiCP8-sAl^?0}czvYa-Q{F*R3s=3KEZwn(dwLG&WTOK!|rqTT9;W+bsnePet*MnV& zi*#~<3)H~umI`%4Jd^gU6;FA;X6+TnExJw#dTW6s=+t14S|o6j zr2Pz(P$Ze_IuOKd+GTJDcgbRdixK3|H>BSjAoG!I>_~i>c65Qs%X)8<9w1#P7qVZF zI|RuB$+a09*X6bU0pKCMk8>UFVmBh^<1z!dqX7@3h@B(e!IS+d8Z jEmUT@e27b*apf;ZZ*7?f{|{E)rZY{^36wF@(GPwDZ*2Q% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.class b/target/classes/org/springblade/modules/operation/wrapper/PlatformEmployeeWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..7c52dc90409f38d2a704095f10c1656177d2c0b4 GIT binary patch literal 1652 zcmb`HTTfF#5Xb*pS`MuhO1y5fx+zUvk9`?& zO%B2;9q{*UZ@%XX`&OIgW;68liIg2`2A)gn62r=1R;Z6OKh{00%5DaiG45d^iyS5y z3f-*M>8#d1kFD|}zAi=ZioO`eYdSpHGcIAPWW=ysC?APq!F>@l_-^$`)@DXj&1y?;>%i=nw7$#c~7p(&!^th4lVrArx4t8Rng3tAd)d%h2Cd13_GxgTG zRUg@ET2GDIy>#Wioy9cnFpRY=E4vII3g!Pnr?L!*>D$B-LvlmcCBsBn1#%~DR;4)* zRi8BZvaSigB8+nTjxuQv6_s^kh^PauA%#v=W98QwHVea?VlXckcHMY}tsxQ}+(XJW z-_3SSTpgBvQSo!z(jMyio-m>*tu$2H^uB5Y!p4SL@U@3OaAvIZxctkdEe%WQf3Q_5 zSY}_xrY5(PyGzp-%%UatWO0w4NP=c2kObWdjM93ScAO+5nOZmn`$QiJ%+Tt70|m^| znr#~p;y&%tcz}nban7?HSFUX#O);z7- zi_Whd*UfX_Db2g(R_xifM<+J<;t}SEnj^c%lwSh#WS?TBMsAIQO_9n4drs1!(hJ2i d-1v-Je`EBXE#2Y&VdY#p3*?LxwYG)0l+SdA&2gfds6L>AI zSc?lDfQMr7@398PwBTgnxM%7O)bzg%_v$vNKevY zC++SR{l-Do94MOEY;$g3K+{uoLy?!g} z7n{BA(ID*(ilwa6KFRt%t5z-^DJsM-13M{K6s@@9a?yb2d!p#vD72n-jx&SKDN^gB ztnFQcmLY6FDA}$Z+a-fmA>2{4uxC1P0@bP8A?DHOcu5rd)~+JMGCd0^NVtTAyIAa= z8QK-U7THN?m+{A-s~EYbXin#vwUQGX^d7YP&@?7x({T;D4()-WS<9~mc^4l;dZ=jH zc6Q>5L7xF1AKiOT(v^mjBQpFy5l$-^_V9{5xQemCPzxe^mcU46smJh z6u85rX;{TVxxxwXQd3D&A*XPc$6(a3#kW7Q0T(68%Cb9tqz9S%#+WAiz( z2|kf(xWy7;y(4!>s0l~NK_l6Z%Q7m<()p05|YgpQ)vjB645$F8E8To_xS z=vuC!H>(!fRolZVT-UeE*zr9@m-6wk24|n!R;=ji+fwx+O;^#XEOvT?{-Z|Dj+Zzn zvYf}BdXKY~OL~jY`-PnInerwKs^bhi#<|ajW1CM;5}9=zy_bq6*7+FcgW6bwzC%hn zt}r^N3FO9D*1;PFK~haIhZ(%G49cLkpz4cHUfLdr(%n0Xo zUh`;CEA|Vs>UijP=#=jviP!2Cv(AgSOoN z^M>J-nu~hJ{bp8fbEPY9ed%uV<3`u1fG3vd0bQn9n#1Lv2Tjldcv0{Y_`Kj1@S0$b zzaW_7-w}Kfd|B`n(7S@Kf!`PW0r*3~AAvs+{3-Yb-8}907Wi|)Ux2?9d>dR8d5n}WB&mf#ZD7F-7J2(Ew~!Oy|F zVt?2lS1|ii70mv4g4rKmF#8h-W`DjB%>IOe*`G)-`x6VUf%gQz0KXFaE%AHat) zP8*CY+_{?90@{hEMA0a3umb6{joHCLgL19EdQ1e zJv#0tp%BWhH&mz3p5+Ytwirlt;tpoEoT{!jke+I~&eRu`(yN_Ttx5Ph4Kyylw1 z?g~!9JQrjB$l?@t+P~JoIa6(S=9%)r3Pu(G-qvZbAC!>fJArRhz!Fj*EHg!rW?os~ zEc5CD=b6_Rc!POsfw$R-g3EK=VMjG&o^$dBdJRVuxdv?@ie0Yh@Eyk<_L&F=Tq8LA E2LFSBQvd(} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/constant/OrderConstants.class b/target/classes/org/springblade/modules/order/constant/OrderConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..e1507b8bb9a01957a7ed5fc23afea7114473381f GIT binary patch literal 2172 zcmbW3TT|0e5Xbj$E%!?iLA>D=PziDsxoAjF+dxP#31#pl6G{fll-6mB-^(XweDDMK zp&WP91~zSd@#VC?{cp~HcYAWCzyJLF1pqtX^g{=9_CnVnbVHAT(M$iEuN3{#g<_pu z2KkzRp6x=ZP}>#IIX9o{g@k~$a^*s)eytQr7iUHPJW#I6=hwxcs+23|K}E@zOVyfR zswozs)}X3@u@lv{RntB7+|wiJS*8>)ZrnOLHQI7Zz)&PO zMQK^UNLqJY-OPAtL(O<53P}`}@R^u!qUtU-*%Uj)kY%T&?K!UM9y?x2cLYqtLXNa^ zx`qXh#lo6u7zwzCUMm8UG0BmxYsdsVKykHMOzWoZWE1ch#kFQH-OQ?D>Jww#QoX;RN&Ud$n7SvFS0 z6K_TnbE$XOlzP({{+ePFMYKIqT`e0mklIhRiJnq)vN<>EqeY0UTLdkuni=emraFcZ zHq~f1oMLMj-(VbJq?yk#VD(_lr5d zQXp;wyJ}wwRRJ5ue_c>`@$@_8>qIb8IwN6cp7RDk-^{g_cde#_IJ?o6Ao(;xS&pXDn z|0ZMF|2<>Uw-}SY&6xam7?b}lWAgvNnEXF7ru|jMwErGs(ly4Urx=sJWK8~P#^j%2 zO#WHMw4ctH_S_St|(Q8=vgdg^iD$j|6E=)JBLRF3mtESW;Tk7XOzk6Bqsff0XeK z!Ptd6H)rm5=FHrAe15%u060ZWM+)gYG6iIjBa{c?MHrs&`$n@nkiD3YJ8^wCJ|m>J zcRG1!gp(lb8_{#<`u(ma9BB*#XXMGq2tr4OMlbNASopEglD@;4rg9q-Ga{r~CZS^g zcDjqzR>y?mPpTulk{RTaC%ldbUBweK6F<3p+%x+> z*X3L3cfly^$qQF?s{Z*Xd+ISzL!N&FtSgv;4#G533I*nw1ecg+6I@}QPq4}_Bv|Da w6Rh$}30~$-r2e0^${md{1KHg-(ChdJtE_4oNMnt)Fs`#$#|9H&lQo5{Z^O!X_y7O^ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/controller/OperationOrderCallbackController.class b/target/classes/org/springblade/modules/order/controller/OperationOrderCallbackController.class new file mode 100644 index 0000000000000000000000000000000000000000..856cd1d1b97953c2a5d8974016a7751a42889f85 GIT binary patch literal 2573 zcmb_e-&0#f6#kX~kq`@_MX4aQEt-I`YC)?3l+e;5K`JoJ6rVP^OIWzM8}HqKJo?}` z&S?AK=!-Lsjxys@M`v_s9jCtgcNpcba6FsDknp3yP9N^wJ-g?e{m$9*oqPZI=hu4x z#xd81CWOLhj-myv3^Ur#@*wXkFPnCSBY93c1y=@K`;PQ^MtjEBu1nMTy!3@p+MBmK zQ^IxABC|17Rbc4TN2)AJe^X^7!*uHYhXrLtK6CU@6+ek~Jc70`B2ly>%5eE%IA!P% zj#G}zb(0hr!)&Yp-n?GdTzW>C?PIcYrL>uduS9SP9bt4v@ff-o`VV5xXkT)pwaZ0b z@dbv~zz9O?b1qDN@s+-EPQ3<%3`xw zQ*;@#ha5jJT@no4NArc@T7zRwTzCwfbJDD7=eqDkP8#V`5IqY8D$AT)R)L}jCp}M7 ztr4+lZ?xv*Rco@P{SCe)(>$#_hl{E%zpeu_C-Qk}9282+rf>_CyiR_IM&qfB&he}= zYlSrbKncB_Qy$;&)T$g=ukjf0$-JsEf3c9yYu{McrA`#0?!_45DW!R^C9+xSNShbA z7D1hhsy!KogF-GR{B4G4ad)Tq*%!sHzTUh2J2AwOLB>~k8#6=ipTB)m{AlO6yXdRW z*3x#qK4WKyIUB+^f>R0<(TSY$WjiGZ=jx5CxA1^DUy$z?WMGoo*(T@biP}d}ZoiL^ zRZ`s~j+>eJwF>1LW=QAl K0JAn{seb{)z7Gcg literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/controller/OperationOrderController.class b/target/classes/org/springblade/modules/order/controller/OperationOrderController.class new file mode 100644 index 0000000000000000000000000000000000000000..a913ebfbc68d66213d75220e8a901170f3f24042 GIT binary patch literal 7853 zcmd5=X?qk^7CtvyXK4~dL{Sk?kr0I%6-5o85Y{0qCJ+>694p;LQlz`9t*Q=WR=^Q( zVHqJPia=BxW^@874q;JdUz~mY14DP<+x&ug<~?<*I#t~j631uenGc;*-MaVO_nh;d z<=#*Kb^a3~nn!=Hq7o{NP+649sY1{K!|YJ3w5g{$+7oJAQ<6qJlh7>1Fyor3#Eg_} z8i@oRSEn^owRI!4n!hyVKM1SebO%Fl`0iitFqly&y;t$RG9nLWT0Gm=WX zY9#fzkx`O8?cjlxPGl_b18OB5h21zRj;!L585>yUtSBk;1wrGrtxVM*Qv^+Qg=cI%p{!KXu%HvP&O5sq zv2Y*VAEDV%dVn4jR391(PUP_#OIZYquEP^T(AJZPgYosQOn)L6hiv&!lpdx>1l^ca zyEM=#rrPUuyAw~aT*`*!?g~*oL|7%w6?9wn?1}82-t4jSgMHgBU+T+kKXs+=WUlvg zZcjfRA~avnoI>zHdTCo@TB49xJXTGQ(Sisqj8YRV8ZIBm)sEp7^CD@43TbyiChO9r znuudg%y6*MY1?UK8UAoe#z2c^rJ=mmSnSNGIRYWiD-r1|@{3VgLCu23*cmgmQq^U}LY)fpmP5i-QCdxF z0KzsFZ&j0e%8NO0``Rw?F!+~o!a=09P-}$NMrj?j37SDvVx`y~&7!>~+mhZdE4Pu9<7q_5?=8H5)NC z(WaU@zq^BFcBc-0H;tfuEDyMVl|z~|3M$d#yiHND74*;u@;&PYvjWPkps_18yVHoT zQB4)~M>B!8s#WhuA*Gqn$_Vpy(QXB1np-qs7{Uem9l)6nKoeUs$nhYdZs{=Of>g>t zenrg%ve`btn;7sG!|YPFXzfZnx)Mdr&sCOcHnLordl5n9-D)BOWg?2_{drE!>_8UE zv@2V6)#w3Pm9CV&Nt?adC&yA2r1iYjT4fu+5}hb3MRF5J6V1AzSX3)W~Bx*vFerKX)WXy<4{+-U*|I}6|D zvVV3c71Bb5#{W=52s|~2CfTL68EAKlBoD*Iuzm-QhN|qX=|y6~0b&K416-Z;+1fHe z6M_k(C+#JX&d(%i)Cz|M-#`B^oH+M?r7-84a)lknp20r?YP!6*MWBJJy0tfwXZm z%7|=IkQ;S$$4IbB8$ZG%qle19U`@`!bve`kCzR<5v&At>j)gp6lI>!_|}r zXUS*TT27fWOU@7!b;tJ}%f5cxIk*gU&D=%%eCA7AmKHtY(4~EluGBE<`&y}zKe&09Zp29iC zR`}MjsF8BiunoG?Aw2Jr$1~6B)wR-`@-`{!w4;0zKgP8yjt}6iFP&Cg$$EPAX27h`}=ao2L>-3 z$Q?a0<=*Vs53>C)<#zA?$F}YFUB0mA>XB`i2VS`P%1MM|5(#jXVIwI;<)ZA{yK*0% zWGjvx8gov#xKtde8uI}YSA@ge{Bbg=ZgrC25}nT|lk%;o(}WG3E@p9D2hS1Lu0c?p zZ-(4s7L4LQf{e7(X&;B$^XsflN-%tI{V;+C$Ny~b;$IMJ_-3t&LN?$h$hgpRkyXqO8SGK zTf@!Z+?U|+5?!83;ToE65;QA9e-<>YNMM*U5&A3cVy-SS%J=1* zZScIFp1|9acx&O?bdG_BGbHXlN0Aa*dCvfiIgPOr+ThGD!QXYb!)~LEc$y;T)0gPW zc*9D1ioODwHITTTp2jK_qvZm_MD6&MP>kaEKMe~tOx(1Qghd_HiD!K|ZKf_vNm!Jm zltl)mG4*Dgx#=0qH!X<4utoL;%*^1Mpl;eiWe$21Q_3(lp3wvL_0V8qDXp66YEbIa z;AyG@GS;9$uE}dKp0-jC!8cm=^K##O^inIO^$pEBdlFj36>Bhdm3&F z(Qvz`;SNv3XIYhRL)vq&qO|{`*p2O5%U=8h?aM=4=t8V@AxO4m~#y$K6*Ku9j~{I@V)etR3=n2WF! zbMX!Qj^QU0z=^!Yh7!O#p2fcFS?r|rI+Jm{w3wjpd0~%1?6s7>4>X*(=HQL7j$sp= zqs0Qw_GK*@I!7EuIeszGRa7E+Hw4jp9-<$3i251PDJ)-sgeg-_VKgicjfNA$M1xF~ zY$rEC7BlIzhvIz?#RrUHn8f&$pD?TGLzf_hC|8D}{BRhQXXqp7?4mpau#8fJ0fsWm z59utXAj_0K7Q*cO*Z@O6=V0V9htKDE?1HD|MNi9*rIsUSrgiiQ1ThEZ<3C4gb;DVD zyy0$uX2#31B?++9r(t!T>D90je|I%3N2r(4C1>f699_A_{TS~*kvgJW{gi$N!HCA6 eGt6JmFY&b!Uw?()@9B?t}4yDuSAK>57F#1n8p1lc|0M}9-A9AyM?m1__?>p!0{r#^; zPXLVJYC9r`#t}=Q1+5HO?G(9Nag<%mmxLvGSzFbTbh&mc>F|QKJx7;Hw7gc4j_{PW zubDSf%B={musj(!FdWmNF7wh^Q3c5`oqP6SZrzb*!;fm@8A+lI?QtYhNFv2B^?xK~ zIA}E(`Sj+MM}W_!b2r3_;3Z)f`MhUD8rf^fEGE!_&N#YKIEZeBz%WyiqnAxMsE_a{siz)Qr5JSq51*uk~kCLG$1fjum7`<^ENudu%8HPgf z z5Rl%vs_m(=Tu`neloPhCsf;uc^lrEbSJ)m(Oa~n-P_YX(oo2 z6;Y}h0eDFNjpYiu%!|rfuIBltO6Xf zevBcLQ<}T0qFAJ1UOC6LaCf8#;*CgdwOkg?Eh^RKgD181dz;_gu6=p8cIOL*q$S;g zqbi0t!_lXYzps6MFMRSDPVJN|P;-ZN`ymUW2wBV~Z5i4KQ|Tie5_1$NUC&QXsgnUolXf_y>GvO1g45_P>WKrqc~}j+gb{R0%FVA01%{4>gyve! zS`^o}MQ*V6-_+LDH@|vJ5p-jxn+S&8+0S{6n#oSg>#9?b)5^@?nV%INQ-Jb%@ciBye)_%ZA`eq(B-Gy%R)udIF)=3;g3@_7ehW4hso&68M1_n0} zkK!Q?+$U26$LZNh?!YWg(DOvym6D#K9R=YPoc7;$;tZ`Kc$KW}5i)}ez*+x4iZnT8 zJ_d8qj{#Z_X7L(^$e+7-9dEdJ6X(b^6Cu-i`VG6dfVUQL5pR<@u)VWwBRMeA;Bc8d zBIMWMbJ)NOkuVA$`4kS-Jp&3I81*R_;4O?cVW7vhK#y;Me%FA$Cg`v7teN=-|^$_7W~^_Qu_tAdfyc zc2uk{zWE^I;PlCl8J$+gvG4vJ4c33c@!Ugutc$!zh7c zD>aWYoS7Jn%qr)Kz)Y+O=%QScv@8z^&r&)OUk<}j=n6qJ0#86Ufs^|I=cLW4lG3EC zDCh!#Hb*g4atNG`EyoX>zfata$FT?;haLhEQ#k5=ZnS=Cjg=WSnU$v*rL&xfSC>jk zm^6jb2@UV*2=u}U0zrc*Mqu2pm(H&7oI<@OxY1A_^oQWt2%Llg0;3J(vr;OWQ?^N` zHQ)UFX`2w1P?H2&V(}%!;;=HZCimYn&=ffyHX{u@tScofeyvoH)>9`qQib( z+`Y5C`_T{0iRNVu!2~U=4g&2}mI;huyNyW^HaGMUguuCnhFi;~YaUG}n>D_N{9o!` z8qUa)o#V4Yx3nRzQV#i*k7^bWIR6O99ktiV5&NU4x)k2)A-&EDJ*@U(Oj_+I9{bHwb<69WS3sIj=6?E$>5sq4LJP4<7_8iWpaX*0Hqr*P~ z8Tl1L0k{oEe#DgkoW^$>N&}=}2;V(bNq8P!z!~a54C1&yjALY53_m0I4B-)HaQVge zfjBS<6vrOnPidSjF3zxv?OnVyz2{;bsLFd-qcDN@Lu`iV_awZ5(ic%T;;l^KO3jZ6 z+|Yh#6VoVA^<(C~AD7S%qW!q+V#aGl0A^A2ii1a>XKzAs8Qy}cXaR3Skiu;p=t=zQ zK!=BK!85}nzX16OXZ|2h`GOqwfQQ|*c|mT4C@Rgls@FW2X`Ih{P~V0HltDZhjc4&+ D1-4|l literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/controller/OperationOrderLetterController.class b/target/classes/org/springblade/modules/order/controller/OperationOrderLetterController.class new file mode 100644 index 0000000000000000000000000000000000000000..a6a92bf57c6cfcd19e1afb54de66313926598cb8 GIT binary patch literal 3279 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/excel/OperationOrderExcel.class b/target/classes/org/springblade/modules/order/excel/OperationOrderExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..aa0dacd2efd047e8b7729305e055609e8e5434ef GIT binary patch literal 25955 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 Wf$Kl`rJdl{3rau3-=p#n{eJ*c8Q;SI literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.class b/target/classes/org/springblade/modules/order/excel/OperationOrderFeedbackExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..8370b2f5594a4ad3621ee604391b4c1cdd4cc417 GIT binary patch literal 12588 zcmeHNdwf*&l|R49yfV3YOw4Acimh|qSo>bmc3ce}f;-L{)a!amBrUuxa&?=f@l47cNef9>b9 ze7MQ^o%224-|znJncq40Oy2&*;CUiiz$ORCMI}CRYvds>qpJJD8^X=eaBOY!ijMot z&J-i>{75X4x`|Oq)9m(A@>8jg0veT(#^|&0#MPhiUa`(hgj11tYz0>?HqEY%aA(hL+{VZ!kgZ*ef=jKr+ftmeh0j)@Q6*I| z((YA`t0TQ87AnzwsYtZ>)^N%c*q}x=d|81EwzZ2>)M-@D)me(=;a-y)#%ZK;gFl1k z$_W}xA0~vPM(5sVrk^?On_DQ#G2#^}dAJ8&32jxh|y946gGgBPmm^ zW0pouT$NqN>douKI_79Jmm30I=7vb8nOWX78ePlPWm3H?-epEP^(QpCj_a$HKHS+I ziJ6OF=GI@)=mud;rc5)6o$TvO^(9QT)K6*jX)#qt0uRAVDfMSGGQ?EjWYX;Ih;CN; z`5Gn*~X-+l;2ngi_z4(IP>zE*y&|!o6YW16a{*8ZD;JVVgU{vD?=7 zg`nru&7Mq114J2<#iqtDY9uor91ln59e8?{ZdZFm(OJam_7w476WP0pL-1S>WA zBCTRn34+BrF%!(NSW&|rR%`SnK4ZDfp|y)!ZrA8nxy4S!9}c(Oq0yb(R%Y|!`d`!N z*SWshrk4@Kt@mgY=GF?ERqaxzMqS**Z+w-EBkpmpMr*mc6zVn+N?aS!=svEsuZ%|% zw?#GTB#|(_)Osr;_IZSI z<~g;8qkX0a&y)XSjPzA~u@n+Qdn6eF!NOQ9o)Wnx$>>u{JLA30;O+=_gjFsIX93L{ z6ZkYWCsUiFX7i$Ww68aId!#GX-NMMTfzMKc8EP5LE6gI&*vdp4IWDyszEvWhjU78a z{MxyT`v)R8ytMS*Jr|$fHFEIu#e=Ufnkk3FgM*PSBYpC0dT{?({}W@6yp(=%Uyfg8 z7MSjTGQAJMyGbz}*qMIuVEW-5>4CHJM$f%6d|@Dc<~eDT!?6oHM~^=y5toK`4_`Po z^5Dtz6FPfFO>z^U}>Po)Q*9ocmz{m_Z@o~N2G4ec5o8XP`%`qI$hxfgfrfi$vr z@7RS?mxl0>Qa3Sr?#Yp(M;I;1(40?yb0=;!{k8L>kL(;fb25E?JBau^FCH4%59{IK z*IvlA?jAn(+{MHD(?eSYvlk2_FCWKAI&x%B`q5+Qryl0J_62o6-#(W<`WTkrnP?BZzusYbrSfk(!^u>;R!cla4%9~X-WO59lg_K|0XFmZbC8B``xIdWuhZ17v7LkC8mc@QV>#V4K>yRlu~9kys> z|H+Y~r?bP+bK9|p*`Xr&%5$TG7r;4k=wy1|^A{f+7}T^E3 z9g)7wOm)Y*R)&%3O%wr`yApo6DYr%)s#eD3uH`lyPw#d=o?j6QHUx61Z6tFka+pnr zoFNyj@+Pt+tTJ2Xvhy4%=eIJWMoKA383M&gr^<}wF(pec#(%JGHo@$%1 zZ_=6>=H8i%jl4UP%1Xh~l`W>S`;?=yfka(}t&{Ufl+xAPVfN^1$N}3e(&e&x9@UJx zpZt0ZK`&;piu~+~b5sIkEBUi4&e2uaRxI|s(!Nru5fJNjAUj=-N`P!H2ifUzbmeU+ zyqYWvuTuw`XXUEaWw+r|(TX}hAzsE%;#tvN9?A{svh0{guVs}%TAH?FE-@o(yHiLT zEycT{o=cgrl;zE54);aC@%6rrW@cu(KDmVzaGjw65G4)8l|44HRXn@UkE z3P+X8IOD=)M&OoxoP2iX<<7zK8&B#&3q-o;hcTeOpBM0Df{a zVM9;iCuanJP7${=-kihFT<2HFcM3)qSU`%Vj?U=g zIXKtmJ1=*1Mx)Qcxgp*$Q8 zql5GGeCMd6GkTK_&NK6!6OPVkUOG6>&UfDA=#2iRgY&$6=LZ~}(E)XEZq9e!?&yr} zsDtzM`Oc3zI-_&y;QYya=Y5XOXs$Xq-FF8ub+nfogFoDZ>jiBN|aKj35%e+7OXbQ?snew9u; zQI;1=DO0|pl!G(QtE?`TQWgk`vPP`(HD}7&Vku=gp(yJG`!D5nU@A!o|QVku=Aq$sBe%GaGKrx!~pizY=mLr|V~ zrkq(Ur7W=&Ws{)1;7mEYSV~!tDayHm@;lCy^NOXE<(s0sR#1M|nX z_naxOFP2i4hKlkALHXOxl%Fh?QWlbm^3#IycbqA2ES6H1or=;Bl;3xzY$=vf7O9GI zfuMZDnewJ$DP>8kC~p>&Z#q*hES6Fhz>0E_pv2e1@>KV1!tdFrQs13B=XvtDPt5%; z`45w)Eu*pf!f3 zmvNA$K#**pyNq&x?lLO$at^9cpmM#!2D;m*1n6#~O0VRgDg~<4t8AbSqZ*(NBdAw% zP*8!Y^`H%88Z`i!My+1MLA450qu1I%-9{Zi-A27$$3gW9RHxV5Ks`nSKt0Ady@7+q zDNutx&IXDZIzTaFysmT5cm>k+@ix$UV*)_yjfwgM4w|Sy6ZDBTP|BDDP|BFBPvW4- z3N%TdYy)jHrU10jXw;{0P@@7((Hm``Eyh%Uwiwg&sT?#-fu`!yY@qv%=>Xktg!Jhg z6jGq+ddLRaYRmv=t1(lb!9g<>Xof!12HIxK0%)7jq|f4@CIy zC5|1DfuE^=T<_9b^t&j&>RfNp+jy~aQOI?ceh<15n&Wzzejk#XKIb|>e*not%Ut{D z4RL~K1j$DUR}cL$BtJdwT1tNcsgw@77So?X3eaiSEcyYYG8%GCr5{4l=pC1f z{tQw%{gk~=e-5bvub=PIk04btFZ&Vw1*9rAgS|$738|XRWiQcRK?>qa;3w%FNHuIF z+e3d1sTSXo#OPf}b*ztd(~lw5v;C}<{svM5JIof*PautBXIY4T3Q1=d*kt+{r19*> z^dbE%qzP=8{+os&O>~uDt~8`cu2QUc1kz+z6TM2Kkfyl!PL4rpbS*PK8u?*we;)uuJe8?Ax(g#3M4<1id%Y63&aga}}YU#!??ys8L zPrhqT)5G_0{R+d)4Z2%d{QPj2rZ&SPOgPttlVA5_OznnOn7mmNPJ8LK#_$Of4tnL~ z%b4ym{KDkVnsEF}ue*&>VZzC;yh<~s4kI8;fvgGnKzf-*nJ^(0D6g`NsoT(mNz0nF zjH$;c7bfHeqs2<$RBTPsq%Bv=0+G^AaQ*G9SBqP1H8Fj*h{Gz<-glVGVQHWzg z1c*8cOK>Fp3;ip?$Ad`xH%KlDu=nWS5oIMbo&Ajd1CpC=VsFxaLh{fWc7py3l9y8K zaU31|DBR07(EmX4(+liQdJj@5eV^S-??VdEPuL9l08$yf#{%>VNE)lhA@Cuja&{g4 z5Dhkd6fUK+j6teoYw0L+L8@X8(Kc2BshT}a-OLRsh{JIi^FXR$KcMTG7g8csJ6_57C@<`^e9rMk||rh}*HoF0QB}PX>^|xN}ts=C#2rWWH8`eYs!@?_f|a z{>xk}FK3%_#9yMy8wB3|U)-;o|Dme0S-A&(iQSsL5JHiZ{c;kE=OaLhN-IcZv3)d7 z5te@xp~YDgRMGMzCE^P11^%n2P%K)JR~AQZt^5ic)D%@kPhrh+Wj<=6>MNPZn(K<) z)O5isoX(o@YCP4XHCH~VHSbkAtEp?RYHDlttM^w6sJq$)SZnxL6lxhL7mN8kVp7Nd z>T~*WS+E!|`Lj*kFXQV?{?*YcUWW0K3s)Pic3f+4-G%FJTphSfT-~^OaK&(~$Cbjh z5!V)6_v6}%Yug|SZlrFfQc-?UwMr#+H!I~RBwYSQ?IdJB`9&=&V;p#}jSjJLA+QQo Y35Xwy$5*zjo{hsO07+*P*d)^b7a@Xr-T(jq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/excel/OperationOrderSettleExcel.class b/target/classes/org/springblade/modules/order/excel/OperationOrderSettleExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..eff677d8fe6792242dfe05e0c53fbd06bbaf4737 GIT binary patch literal 4970 zcmbtY+jARN8UL*;X;<>fx5Q4=Tv6>?GK&9S1vcXj7nTX|XnzwC-w^ z)a71U0);?Ahe?Nl2W|}y87@QX&IE>mmomd6Pt5Sd3~na>LrVFbJ-gD%*%&i;wA$~S z@ArM@eAjd2zyAB?9|4Tx`)S0`rXsE*fuw@2^Tq`uS2n84xw)nDX2DgEJYrQX_X!1U z1A~hxXh^9@>u86rVBB_=bG22+sxB{;jiQ;W*u{F;tmSN{XgWFb#e!MR&8?b_;aYZe zPE0PCu3I*b3yuQS!%Y_z^vpC@UT}rNF|k&Mj!twb&}*L9(TZKKa!-8{T`}BJZo*nV zW)`f9QT8NybnFmYQysHnI4d=wrB_EEb}2|pEvK!DNmHecx@(nl#|+o>q_aBi6VjSQ zPOJ&>y*l=ZNq-X)YbTA0nI_{yI_}2G+e@fYewSwZhW$PnqmvB75r_#qwrIKWLT zo37^xVfM~}!4TdzT*TxfItGO5q$%{)gn}U*!x&M}Nd?l2fjf2wS~fdGh&`+$7pyxk zeIlkms^bxSOhKlhO}eEg(A9K|fPY-aqe4r213s}P<{#7XxR`HlDsWE>V>*stobD+Z zwbG=_*Cv|)RM-}X<7%S$aT`d^yS<5A;T62x6TT}3I*pa?tqN9Gd1LaK9 zfO{dlJoj}+#6iU*Bjn|!W#<-5$1=*+OU6=}hIG}u;iBo(nAvBhk10@|qBjEz7L9V< zOwdyCrzptIGjW-Bi&o8|f}_={?RrH)Qy-lv*p(c0FBwaQUo=Jokh|zuu9>U3Yh^Px zX_xDj>RGGkmc|q$E{IjyxWY~aBU@|nD(;kHvl!hq%4!?${9@zs4=g63e(U$I-}=?H z+n281{^^e!!;PO`dhd6?Yz*JKwtoBCTMAMV{I8og8T1CdasBm;E0-0-Wtcl>tg3mk zURg4o)6!o(Gj_o!FBbZG^^%!fw=5O9=+iU1Z2+O}AthPZn0OeXsDeI@*=1Ll*0uBr#q(E@f@>OFSE&OO*1q7t=4G$jh(mq zEV;#$KN7nMgn~si*OuA9NG{lQr(mA2L@DpT=K=MwsC`jhSp|=6U0&fLoidH$ynS)X zw3bUQvvX|wqHG_oS#_JzV)Y*8?u2c-HP}Ed~9}6V$3+ zuvg5SG*`CQ6Gp+c9lGU>aAWm>Qt6aYE%Na0pRw(g`s&!0U9&~-^xCQ!0Y4Yg5FCY} zDPP5;Q7$jA!;NY9wgT&(!5Hw1U|bowKb#F>>}NxhC9G3t}tu1hBA+(8}R^7$ruz&K;_-y7><)Z!KlXYNj|(raXiiO zE{>ie{q!_uFe`|2P--~IX@Qv~rEv^D5c1n~y6HE5ooeg6%#fNpBx zt&-oTXIp7Sx1zRu|`7M?u0B7-OzM0WD!0%S!x1j!p%ov)&6%Lcsf#;_o@itotuT{B87R&iV)ttS@=w(Ft1_}!h1FgpNkZJ z2G7#1!rOViV|*uvhTn!79jiWx@M9(7C{y_y}P-%ik>yq;|rAl(O%3V{yiGXx#ZcVsgH)Zv3N*^U4dzd`%k zLTyF%q&K8r8hL&P1r%9iy|@LFeJaK-^>=)pb8Q&H->^(7&er}mN~99(0?CuHoxYN7s>mUd#{X<_T%pM8G5~Qit-Y$70g?Qfk0DoYy>-)?hIeDYZ8` zF`kna_=(YmpP>eq_9gHW)Jeq{${*nZ-Oz@I@O4}y6~_}yix){H@C;L9jZ~7@NAMCU z72o6W`~^~)2(I!V^ba@@SD`5i1Ipi#A5d9y91|10NCbcY6K|dJVaX7ziQGKvgVk1W z6Cc6wMYOv_no`j`Uy%P$k_HkV{&@Dr#s8b4*%YV0zt}kQrszv?f!Hq+N+b`TQ9cLx z9O85MCf$$Chhg~YvEPqo9AEO%{L9|WY#*KO-^{*(uX2f}7g%^-lf=smEf_Ebukd*d P-{B}t>N10Q71{p)`(F?a literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.class b/target/classes/org/springblade/modules/order/excel/OperationOrderSiteDispatchExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..1e3d61f61d447058d82c520bb2657af290d0e1b1 GIT binary patch literal 7146 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml b/target/classes/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml new file mode 100644 index 0000000..740d9ce --- /dev/null +++ b/target/classes/org/springblade/modules/order/mapper/OperationOrderCallbackMapper.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderDispatchMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..388d42cebb5866bbb0986a1a597b819c6fdcd48d GIT binary patch literal 986 zcmc&zyH3L}6umBm(DHuHu$2XWKmdsfkSe80rAkaJPGVA5NgUZurEdHHKg7Vm$VVZr z9U&pq(n<^rj$1EGzNZ2R1dWHMli<=k+k2{cRhxMMj}DFUsbNDF2vg$&;QnZd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderFeedbackMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f234505f7ad95d2b127370425c1631dc4af7060e GIT binary patch literal 1302 zcmc&!O>fjN5FLju%a-z0pn${ykdVp+|A0WHBB)eptF5S1&XZ)6dU4|5kEMI#5A+Xl z;J}d^e+V&gs)Asb6mj6-ILY%o`;F(#mv0|G0l;&(H-tpMwy~vjja7A-X)H)qrU;sx zG`1isD{LB`Cj3CJOg(A;?hq9j=5O~RID{1e*QYo`sj)8QB%4z1hj3AV%uOXTG?gk$ zkkve64%g`57_humNB#mGbyNZ#IMN)wc)xutNx+BAaSttdEYPFeZ3EKrpA|M{YUIo; zk$5;spNyln;FXqR<$TI&_sAcaVjnG5?0iy#|*64#}1)u-3f@lAl zk}b}`eL8N8U2;DF)O>!YUQob)o%7Gq8Uk6s7fprS+NRHo^ysJ83c_-HyVugCGqu)+L@q>4V0_+x>L zQA{?Np$=SP3B4C^(pBzHu1x!^^Q$BKBu4j~FM9%34@|H*?I_JBe7M--T_bqfT8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b01ea7418fbe8105090b14335c2f01f5763394b2 GIT binary patch literal 857 zcmb7C+iuh_5FKw>(p{Ezdx1V8A%TF0`U4iIT9ryjsTOq+54=s1A?uYLN48U`-@qUB zp&!6Up-vo$MIwvf!Li~wK6B3T{P=l$2LSKjD1m{16YEOpYp1F*(^!x+wrDhYXXHr`RaO`p$2PwImS*>Mv-CgT?QKkM^9=o?$M>vkys(YS=|X9i_H6Ui9kX%A@1pgq`MgL;{`e886n Ka0pN0{`4M_tN+FT literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml b/target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml new file mode 100644 index 0000000..d1539d1 --- /dev/null +++ b/target/classes/org/springblade/modules/order/mapper/OperationOrderLetterMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d3158798f04c907d5f69692268f29ad5e2ed94b0 GIT binary patch literal 2919 zcmc&$TW{P%6h5=fCQX}L(?S!VK+_fyE*&VBwn{-HO;T3cCQ(-eA@MS654#g=k86*k zti%%%e~AYk_yPPV#5c3f+Htqp4M_CCYp>_bcP`&|&iJpt|M-)LzM_XyRAcl|Cmo)~ ziHbVyK=_h}+Rp-+a-H}x;h~6Q-1hJzjMCAbef!kCoT3Rv3y0!J@IXWzzSlmKo|&Ra zM%>dOZwnnNUuQh*wXrvigDk~D0vCPIO_9nz6r;J0G!A=98leJ4&DCZB-7+@5^|j{N z!N&Sf^CMk}_F!)vaXyu%tNneEh)^1tq>QFqh7F(5%CjsoDwGE*Rqa3yj5eZ38<#fB z?>Ofo7G76!y85xikHtdCo2tB0ma&0`(;$|~eQgC|E_W>moK z8X}vBT@-a!b4JrG)ro}35=8dc|Muc$VoYw|eONriSsH*>K$9?)pRc$s;g$)xvv;yRMiuazy2UTnhBn|{Zm z7FEJWl~o>lGN_1o+rD#kopT~7)%1rUT~i9`wkE`!YAb@n)>X)cp_YWG8}U_C!9$em4%!gNZIx)qi@dHlT`sglxT!=4V)^( zC=H$D;|M}Fwj-|$(y*hk5q7}Y?Q*pSQh8xOJs87mNH&+zSz zOh+D0B24$BXL(ribY^z-j*3*;-BHHi*xQKXpvUO4>x$hhY|Dhvd>73>(5CVjrT^dH zvF)Hdr=W${b5WGK^|w-M<`ZI+5~|+=V{t$9NX(ByOUtE}&Js`Vr~uuzeELl6e|Frp zD!}IoqYJp|_$r#802_3XYBY_1b%5Y@8P|-pn!z=j(j^$p(fnwm1-b%ci!@!MMcl69 zx`wMpuQ}AY8vYD$uLAdVx?bQ~^Qv=ev_#7}E+TwmfcfT7j9ymnFGi9AjD9R%(tUWU(Sv^g D%-c=H literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.xml b/target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.xml new file mode 100644 index 0000000..955faac --- /dev/null +++ b/target/classes/org/springblade/modules/order/mapper/OperationOrderMapper.xml @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and o.site_id=#{order.siteId} + + + and o.number like concat('%',#{order.number},'%') + + + and o.power_station_code like concat('%',#{order.powerStationCode},'%') + + + and o.customer_name like concat('%',#{order.customerName},'%') + + + and o.customer_mobile like concat('%',#{order.customerMobile},'%') + + + and concat_ws('',o.province,o.city,o.area,o.customer_address) like concat('%', #{order.customerAddress}, '%') + + + and o.site_name like concat('%',#{order.siteName},'%') + + + and o.order_type=#{order.orderType} + + + and o.warranty_type=#{order.warrantyType} + + + and o.service_measures=#{order.serviceMeasures} + + + and o.appliance_category=#{order.applianceCategory} + + + and FIND_IN_SET(#{order.employeId},o.employe_id) + + + and FIND_IN_SET(#{order.employeName},o.employe_name) + + + and o.service_type=#{order.serviceType} + + + and o.create_time >= concat(#{order.createTimeSta}, ' 00:00:00') + + + and o.create_time <= concat(#{order.createTimeEnd}, ' 23:59:59') + + + and o.dispatch_time >= concat(#{order.dispatchTimeSta}, ' 00:00:00') + + + and o.dispatch_time <= concat(#{order.dispatchTimeEnd}, ' 23:59:59') + + + and o.end_time >= concat(#{order.endTimeSta}, ' 00:00:00') + + + and o.end_time <= concat(#{order.endTimeEnd}, ' 23:59:59') + + + + and o.site_dispatch_time >= concat(#{order.siteDispatchTimeSta}, ' 00:00:00') + + + and o.site_dispatch_time <= concat(#{order.siteDispatchTimeEnd}, ' 23:59:59') + + + + and o.capital_name in + + #{item} + + + + + and o.status in + + #{item} + + + + and o.site_status in + + #{item} + + + + + and o.province in + + #{item} + + + + + and o.city in + + #{item} + + + + and o.area in + + #{item} + + + + + and o.site_id in + + #{item} + + + + + and o.entry_id in + + #{item} + + + + + and (o.number like concat('%',#{order.smallCondition},'%') + or o.customer_mobile like concat('%',#{order.smallCondition},'%') + or o.customer_name like concat('%',#{order.smallCondition},'%') + ) + + + + + + and DATEDIFF(NOW(), o.warranty_expires_time)<=0 + + + and DATEDIFF(NOW(), o.warranty_expires_time)>0 + + + + + and o.if_settle=#{order.ifSettle} + + + + + + and DATEDIFF(NOW(), o.warning_start_day)<=0 + + + and DATEDIFF(NOW(), o.warning_start_day)>0 + + + + + + + + + + + + + UPDATE `sf_operation_order_dispatch` SET status='5', update_time=#{date},update_by=#{userName},remarks='无效' WHERE order_id=#{orderId} AND status !='5' + + + + UPDATE `sf_operation_order_site_dispatch` SET status='5', update_time=#{date},update_name=#{userName} WHERE order_id=#{orderId} AND status !='5' + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..17323aff625016f4f4415fb3f51d36f39248085f GIT binary patch literal 1058 zcmd5*%}xR_5S}8kf`8!8$+HG7_5oHskVrxTfrP|+mo00_?sn65Nq7KXz{m060~nvl zIPDr@BrY60c<6SgGo6|5>o;#7FRuV_3+EnG2=t_isLqr~qabD>r-=;nm}@Fk$Q4ak zmf<$S4>LlhBYV2C`sqv#U4#c!0?j#FFdDNoqN8BWr^bUC0Xmfl4VX+sD07-D15Bi| zIM?V`}TrAD94(~xugqO2KHg( zcLok+ZbVE6LK`1(54m}i;g~6waKn`*P|aM27xH)F2-GJcN}0(OVtM}$SZ@A=p*y6c zH4|xQ<3&ZWt^S7#n zQ2k9p`YF<_nA*Ba%UEL~b2a5X5u+NeO0-{0$+cA>P8We4T)Q~Y6`Vj1_MifFwCWXT f;I@zJz&ha&-A8bY!C&qs9=DvU2snXLXPtcl&68w` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml b/target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml new file mode 100644 index 0000000..475ac91 --- /dev/null +++ b/target/classes/org/springblade/modules/order/mapper/OperationOrderOperationInfoMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e57babe09b488382f722b939dfc761abdeb74cd6 GIT binary patch literal 1451 zcmd5+&2AGh5FT$EwrN8t|D_<1kdVp+KS1~qrBtevDix{1+1Z_L9eLM_?G4QXaN>

brX_IkV8d+o`B~s+MPAi3$ zYm=hkxhP9I`t%V_>Z0%e4$wJ;M?n?CDub=Dm`Fb>{8XEK zF2OgtNTpBrfOOrby^vnzq~bkkU6&F*LU*RqV_`&&4vl57T80;{*+9-vGiVQFRtQ%a zdib~h;o;Ahp<|-w$f&D5>~~*M;*Z}|g_AiBrIjOv7X-X63hhFN5EV~C98rqo47m(t z=i-k64_*Y;ng~@9IXie>YSUPD2K$ScOMVy2^7kh6R8z$|A1XA{nE`_z|Bkv8dr0iK zX(NMggNj(3@25q;c%GnYhV+_Hmk2*H=w#^jreQ=6QwAryb>oJ)95_GX6nlw@NL_Oe z?4R_hYH`>MKEUTo`1Ra(7merq%rDA4Oz1MCGFTtz$|QIo6}8l(rX5mmtY?0jX+1Gm zA!*SrT%i>f!y4V&bZbYjPR9mGha`fluu11;L>~s%NVY6&kjr(rF>`4#xOriIE0}kD ifSK`aGQI@wUhF4wsC!NnOXg2Ro#T;QlWf5!sIb literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml b/target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml new file mode 100644 index 0000000..2744ce9 --- /dev/null +++ b/target/classes/org/springblade/modules/order/mapper/OperationOrderSettleMapper.xml @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + and o.number like concat('%',#{settleVo.orderNumber},'%') + + + and s.site_id=#{settleVo.siteId} + + + + and o.province in + + #{item} + + + + + and o.city in + + #{item} + + + + and o.area in + + #{item} + + + + + and o.site_id in + + #{item} + + + + + and o.entry_id in + + #{item} + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.class b/target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..453cc4cc769acd2046aa31b7b287a3ca1d104dc0 GIT binary patch literal 1346 zcmd5+&2H2%5FV#pwp$A2r~IA}q7q#20|Y98S|p^cwqm7no+P8JS5BPT&eFZ}0=y0f z9-wc)%b-piR1mO9kvMR0oMdLc@i(4t&c1#A0st@J!4M(=2gc^oRaTXGqA?>`n5@?1 zq_G)USzuN1HsJ?)Wy(qOcd9(?D_5aUXNSRI2`9L8wZZHS6Ysh^D(nNBtJ9R5n3$BlXU{tt8l=FW@Xg`jHW6t(btxloc#w( zUi^#l>~TFF(P?FD$L$H&@8g@AGE+^vIr-j(2KiIvw@zxZ%kK^XzWzPxrASlhm0x!B z#X)e0_kKHLA3U9=q`QC{JL3v?{I2FC1syA=5=|G)_Npw655nZO+YMKU6{a(iD(Fn& z4+j~d7;LaWU31$-^g+O@M63;rGu031i7A literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml b/target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml new file mode 100644 index 0000000..d518719 --- /dev/null +++ b/target/classes/org/springblade/modules/order/mapper/OperationOrderSiteDispatchMapper.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.class b/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderCallbackDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..e8744070d2914ffeaad5cb7ef7353e20f75dce2d GIT binary patch literal 1096 zcmbtST~8B16g|^+yKN~@5%2>=RFr%?`k3_eX(>JstH`#l|j&zy;tkWp+IrP4}J4k zAYX6nl~59xJG)_Rw^MJps0cjy2kySn=MWR8f-yZouX6o$&`9^wy z4EMcG_dxZ`a^s~PyjH~pTU=DOGPbFURZL@s{R0^fR&`$`6Ko39Viox^*i%u=nO|(K z35aI`;)nbM8kG4=)prt6JUv!_{B2yJEjVTypG%|Jz*YRB*{x8yLBSKCr%p!?5dBoCFL z1@tUZ@hC6^qdAowJ&Jm2!?y#@pL@{{EG2I8nsU}8T*WLdF<#~_hbw%7lz<}FIc7XY z!RR!PAwDG~*SOkaUq9 i@;#6{^=COlbZPF?%G}>D-3-$q!xHLj6lf$Gn!f?>x7w-z literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderDTO.class b/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..a60078fabafa5e952e2c270bb37912ff84aec397 GIT binary patch literal 1056 zcmbVKOK;Oa5dJo{<0MVnkT&5_9t8@`1Mn3{>7^}FQPLo#nV!$O*2R|Z2ToCdBx z?0I}3oQWLFJP|rF7>K}`%CU5WuUz%oX-`GKl`H+WK01h!4Cx)$chxR~QK@z_$S|z^ z3fw<#SE@F04EO)RYoO$BM#Rq{i+mo-SYgQYxqt9-#yy5or8(xWxZ`nu=(Kxd(N~S? zbKPJek8>KF78)7q)LI_vC=q|e!_l4`h^XR2hC(O;mwR0igw)%!!+i$!gkgD4`k~^! z>T+);EE=Bv7=sy;SDUUcj%Jgd2#$HrBe`Nz_DP468ts#$sYY(d@UZ#6y*H?2B|A#r z5W{+(5KEU88!pl&*f_g}R5G%2gl5^5v|PkF#6LQ(59t3ZS^Pmvf6 zCD)O&pf4V~y0P+^3%#eUaGkCtrH6t`DC0cE3$#n&B0Vj#Mw-?Q$~Y7mMXPoK_922? zrd1yU+qgn&J_g__uF;NRlf+~4U5XlK6z%sEQus5~IHl6X6H5EOp=eO7*K6-!ne+Nr zWZ%Lv=JhYgw(itEVkz3z>L*x@{>-^{TCk`@)osQyi3JJb25wSSC2D(%Do)`R@s?oP zneSM!kZB`ij`0!;mIlad|~OOMRbwP>@&eqyt73^+Bj$U>VXid&>e?|{7H`7{zm Zn}%E5+4!5LooHI*u#E~48LCkYwV(P3%RvAD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.class b/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderFeedbackDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..3d4f3cd8ca68d900680406c79dd32efa26eec43f GIT binary patch literal 1096 zcmbtSO>fgc5Ph52agwHO2u=A2lmZ3v0r-qk5Tb3QqJ$u&4%E@s?WW-Fv(Q?F$N=UUT?d;cs8F7L~z6h9>JB`a!5Fw&}g3|4K;Q{h9~X+ z^`J@8mFy{fgA5zh+S2TCmMWOkGX5}y!IWw&0-CC)=q@{amdGo1gc?idIS=?$D6)V& z3q&~g6oHXB`JS8yL(y{efLmu?^nFc<>vT;iZ4xeH6Bj66q+JS^=n0YpWN58W#-_+9 zn)PF_Pf^JgTJ)F6i#nVpS03LpeoJ#j$)c( zqf!3=(^xdVBljL=deQiXT<326GghK)y>X27=+9VarX`A6q;5NgNhk;qH*k|wm1*o9 zQk=pq>RW+fWq)GLLN15flrS096=CRyoJe{=UD`5JYtdxO^TcGEalr|hNfeqaLEIrk hdJn`M`_oJiEi$*XTlpKNm0+60aEFZ7#?~SY_1}0@+J^uD literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.class b/target/classes/org/springblade/modules/order/pojo/dto/OperationOrderSettleDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..c050b86078f1945fa0cf9b2edc7a505ec8c8f3d8 GIT binary patch literal 4891 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderCallbackEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..ad08578e2b8b8d189d5ab57fcdd7ba6317d91552 GIT binary patch literal 5427 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..a8b9a06b0e0a7bb61476e5e4ec8320425a4dd432 GIT binary patch literal 67433 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderFeedbackEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..c04b83b8ffa651aab8b7feefcfb7d00627d32406 GIT binary patch literal 7661 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 Gss90jbB0d< literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderLetterEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..18442704f1b6c3d337ef4b7c10621b077df3bed2 GIT binary patch literal 7519 zcmcgxX>c6H6@D%4rQKQGk~JL0ju)^l7ED55WXBlEf+dpWSe7{xGuj=bwO2c04-=CE z2oM7f1P2EL0b-6|k{DwWENpYX7}}b z-}}1fb-&l$t3UqxQ{>ZE0inle_VoaWtcn6b-wyjG`#&zPm@}I6*XSJHWi%&7xfu}N>v@+S*iYl zMymvoR6FPkHM&Tk%d;5|dbLK~0xi`Jx>ut^;aF*<5&H z&#AZO<{x|HqeDl5Id%NuQ*R%17@B1B)X9_chaLxp1KvBbu>XVuXpl_+Q2jo7cy8gI zdyPvMUVU-?`0*8&%|CeX^iwb4ZRL7x8p-CZP34(Ms~{r6%d?#}bK6Wz8zQ8Xfzosq zQ#3sCzt{(O%!{%{EvaT|p>}UW97nCvw4K>(7Lc^qK+ty-E~+%4PN3l}NNp;a+~v(# zT7jynL%M=i<`8$_v~Kx9(OGOeMMq-XQsZs&VjKk&-Pl3pq4ymkVi&vopHj%qO)=_>yFltf>@= zc<@e<*Lv~x?Y46O+%BT9T`mYlE6&{C{A(vZe*JkYfop8LR4f(DS(*RErVyQo(n)$N zOmFiY^&LhDH(j#%UG`2ZDc??RvcqP&WEXHseA2tUDxf62&dg_UbWM!d_RjL`fG7P_ z0rF^;IEsqzF)H{i9+h(-^QaWXpqa~!XK`AM(0h!IoH-V&vzc|QZ-rVxTy$3uZ&j=y zu5y#mZ8MY8C2G^UEMPFs|v9cba+pnx%a zE8tETaCxXU3p%TGwvBa&RvzxJ-*Jk ziugF6Tj|{I>x`RKJbtuYiLHVFRWlyb?a???ieS#7{8_9K9ekdc*@-Z!`e3-iYcA928Zc20iKl4H_|k1`SP* zage4!kUXGaBM#88(Wu8cs8NC9dZP!FGMWHN8O?eV2Q@2DliutBjTkKejTo(Z3kS6- zP>bH`0gV}L0F4>#dK(9|D^Q!>?g4EvIsn>Ybm|=()TuxndZ!08VJrh^!sybMaZr~6 zEz`RkP~b2sVtv)&;1fBaPW@!Z=plL-C9{Jaq`f#W)KP-%qaQ$5Pd#ieJpw5}*Rni4 z3MojVY?^)uDMUGzqQ@YGslWzlAEXHFV+r~Zqy{>`meb>qqBKXJ(SArVdYk@9KZc~y zU+FLO1f)3qo&H1zAT{F5a*UpY)Wkyc8a)N6nO%q;o`%%Idhz)aJgw|{+DXqqYGa#m zPJ9+pJF{t+o`clE%5*jT6jCSKkAvnxNXyvMI72-Tsf%7fOzxvZIPwWKhAHwXb%v=9 ze-ZX6bxE<|{~?k}xQCE%0siZ++6b<~Oz<5r$TN*kp!a|#Pj_+ybWV5toVORR#vI1I zB8BmTB~;i`15bdW5h>i?Jg_#fP9*Ai%>&a&(@1mgAqw};(T%rp{gp<58}xv(M0oN_ z(|{2aCgiPfis(VdwB85_Q)tnIY?fYwMp&4T$jU41n1+prFhv$kNN?$tG8%*lnXSAU z9Mgyq6{hH-3HdI)#*COSA=Q;v%rR{-G-1*fO`2nxFyg|5+*e+4VLH!0bsm+0RH;+X zdgw)Z31JSh)$}t+brfZ*=w-}CJ*{FS5X8_N7JcD?K@ucvK;2FcS1<%Aux|NU!ekD>~ zfY+!*4bZOy>eu2&hIZu08|V$cEgW-xM3|#DfrvnR9M8M-K3Y*oAJA`+jQW27;^hkJ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderOperationInfoEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..1fd659627d225dc41ae29dc1a4c178c7ef09e95e GIT binary patch literal 4536 zcmc&%dvg=l6+c&&v}<_{#$Z5%rY2Q_U&hv+=wonKmj|mww89I$;+Q4*pBm;rqIwkEN=}f;sK0qzu{KXe&n*Q$Y%3j$!)YIuq zXRO_G&-tCR=XKA${`n!Ai9!@+)NovxP~@zlkIDx}j;m>lQFyne zYt~*yH7%{fwIoulKoN=RNMdxrD2&QxzM$!&BUvS*$~hxb%&Mkr6f$Z-&Kt)KS=BAg znv@Ub)q-MahJKKX7FS9An6ckRFbZfHMvZ+-E~G4Oxr={vjYMnt7X{mLGQ)Z6Bx>Zm zu&G(9!`dKG6KB=u3r1Qs&3&q+Xju;4B++Irsj~`7dfeehz~3U#1GJTqm{#=tuN0Lm zqox**4^A4oT3_Vg2POJ8H8Tp0s#X%tZfI%sKwWovN*|KwJKSnm;fhaNP)W z?HnXCoZTW(D`(e&owDQL+;)jNIJW`ZL2oEr_^3oO7p{Tuus50j?T~0EJ%(t;6mzV{ z$f$PNl8q?#E{UF?CmC(ZDdTF7p{Et=1+P`c8I>kCuoO1J({ zI{O}XrmlS9Z0Yrx(t9WQ>g|O)zqxzq%>131^3=73Yaf<>b>iOK8_%1DUjAUNH1}4Y zW?H3F(+e|~N>|R8etGHM-20^~)8(t5lrNlaE>GY5YWhZeXXlP56_8In`1N za3KN}cQRleVByRIU_n<+0W=U;p1seA8P&7Xom+6ku*TE^CMSIhvpA1xoETz@P71M#M{8oszAMG5?2DG+Q~_tYgrISs!&Cn~tQ9?+)OEGclT}PpMe1H-^ze$T`6WZ3pD}vy{!lcjlR4UkQ#wG5 zzKdH`fM1nBCvXNofK?ah-6rl{d$IVQ3F*@+b<;Cg;fCV^>+p7gJrLlUvr@1R0$g@h z3id;QyUt2MFTQ|*Kw&(eg*!6d4DV3eEn**o2+(tQaxoVs@#Izjpy%lT-i%*=@T^w8 zLBdB6dX;zkD&zj+qg=mSx!YG6wE7rd+;sC&IL$Kvy%25*)BsNo`kSm@tx2cNT$5{UlY{;y z8&+%5X;9Z>qiyp0{wCM2)}+(guE{3b^Z8YKm z#S?V^#S>Drj)No@1gZiGUPfp&E4KHqosbv%?Mq70VYFBi{gsBW>og2r4Ykn~ zdI3}r-TXHF08|L|c%6O-Doj}#rx!s9IFnR*36x0hP%pg;sF$LHM;9Ag!WLw2j+A1ko1li55>h%j`fp=)<=kKGVk8@k5O4q`+5 zMH1pSsq-l3#}Yvp6o?r61}2u)0nTWmPz6xI1glvtEbM_TA(wMquuu(N!utqZ z6>){il9s;=ib#{TIQaJ=84Q7M;l<{K#cw-)ZTQ7!>2advr-AqQ+~O7>NXKC#fStlG k0~;0{RFEBs7d-M{hXrz23bff>;M1& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderSettleEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..362473a6a9a866c0ea42f91e8e7bb5d9f90f315f GIT binary patch literal 7552 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.class b/target/classes/org/springblade/modules/order/pojo/entity/OperationOrderSiteDispatchEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..47b31f022f428caa18cd725189c1721d167fd6f2 GIT binary patch literal 9691 zcmd5?d3+ni6@DX2mMpDp*@>NOZiqs2BF<7agd-*arOp9PLIV`DmKIyFtTkFW5PAUx zN`Y`C5D1hON(iMXHz9-&pa-<{ZfR+uP-yLh^y2US3Z>s1yIR{zqLlv8-_PrP^WOKq zIo`~hnYCZ}_pUuew1EB*rx4XdDXdY1Y8fThn(NGT!7O&Cmv^nTvSmiKC*_Oz^2v;9 zX3kn&M=`34Qe2}1X^fWGrS7!TU&MIj(Ec zsF~|(9gs=YSdCh^s?O@`FWBpqcAQ4zxi+D+%gjED6HL%(B28kXn=KCy+fo#G+ zIbTShZk8?4fGHYH<=8}j$VW^jGfD&}0>Cp4PLb@5!u z?#~om^=ysih`wb@mRYt-oOYf@N6NmH&GLZ5RYz%bwD1-%ucBi$I!>qu`g3TkOZrKT zPT&M_spegdgXBbw44Tgxoj9O;;hFk`H{;YF3c!5SI(Vy z%Li4_;S=aIjTUm&T8mRU-1l^i7IEJ=d_}}FIj%lKqcgd>4r)FJq;`o$pXOQ(+C^^U zIDDx_%ebMTVsLx1LZh?jY(|YRxig7(9#hC|W+j50Yo$i3xC7@}Q3)b9oukobd?q)J z+;px+=W!G7$08X@uKuh>7jShwuic9#w_K=^>2|zL29&F_8s)r>i(8uin~2yTz*^t9PIj0M(grWq^U(Wp!VjK=ku zy;hrD%$ntM@@0UEPT4G$9mdA`r-6#?=xBc&O(h(X<>Qt`mO4mF4_1etBVckz=@LwP zk&*Ity2C2v%|iY%v#Wri)z2P4;_9puItW(aVSK4wAJdzSv=C-53 z&Lw7dH&E-2P1~m9tJF#NS-HHK?#T97eJ0?EoaJOo`F`GhOrXJ?&+gy!Fwe*HL@T;X zyDy)!2hx4(yU<6czcApZORwZZlF9MbuQLk+7@cr=eLr4vt8&leRszkNaau=5=8R>X zt5#)B$4VW#`iXb1*fjL?)}alz@x~xXt;o6pT0x_`^y z&WHA2zIo`Tr}tjJd+&`~XEB=YA%?bX9J+Z!FsfNru=mM55cY1~v48WEjLsT*O94&BAIEa~DBU%5b?Sk9peO{=eJ6dGH;%Q4HHs)C!%o8awM!tK4Jf zR+uGhM_3wYK^!h>f55JQg4`9b7eMy*0?dU?Z~Q})=TKpsM5GJCj}mo6rb2J zp%J1clMn7RX~in0QM z75g$Ku<Zk|24?lIITv@~iwHIi$ltQdQqk#x}9k>{n|vvf}K_(nX9|1}CeMG>bW0ol@<#-8;}f|9~g0VUA+&91TCur*e<= zK9!J;oPAvKW}mOX!@!H~aPt+y%f8vC zitg+a&hnrw9KE&7OKSFUQO-V3DP|upRc2qMBwK+4ftD#2tx{XTbR5fx(qAz3MujaX z8d3TiqbUc5Vv)+w(P22HhltTS+*w2Xq73;`9KusnL+c@5mZi_p=OKK-p)b;xfVtcO z>nbui$bJKAtP47lu$HrxOMuDhcR8(_el7vmJ-7hUnj%~rf|mBo8HobZ(bzi&h- zjW@$PGW%&_j|tdK_|45kN72pr&1(UGZlPQ8X8bmb-@~1sr0AnChN$9vN}w~YvjNWa zBb^roI^)tC;G7)kyd=;WcjEx(F(aLq2Rh^a9N^qK(s^Z|Gj7-c&iY8_HG$5!Z3j3{ z9_f5Rpfm2{0nXD#I%fl&abpi~o<7pKC(s%9`T*x6MmqNeI^*ge;5=)jb1Bdn9|!`R z=Z#L=d=~q!U3d+sFl*wu-W#U$p&4Tid zV9GJoQp%LCC|d;Ooxzl?)l$mMLQ#$vlw0Vopz!F`Qp#;cQBD+;cL!5Wu9i}6P>OP@ zp!`}e<+N%k<<_Ps4;Pg81XE70mQrqtigJda{CY6u5!F)4?Nm|D6qMfxj`*xudxI(GR!hmZa7K#qNI`jDaL3ctQu5P)M|rfM{AMuaG1XG?gM~+VoS?ivxZ}rH zOUchD9_0yw5+B9o>IwJYeHcy|nK`o`ph$T8oEIs!g(5ZE=e$6%rE_QRpihY+gp-!d z#V;c~?`2Bp;g_gs8)@_O@D4iFMYI_aK-!F2J;E`yFH!S0s@EfWtq-)=hyt|Oi0M%d ziYZW3kNH3uqYj{q5!dTDD6T+tdfW$UHxdA~8=9WrAWeZF`9RB!dVrQ24SGEXH7HQM z-rxgu7>xjR7)ia6gOUo=s3(1()kYIQtBq#8iG!LIs7Y`3fz}vf09s>=)yHtqSOprR zkM)7hH(CHX-)PlaIH*;DTJ%;QsM8n+P^U3oAICxC6=@k^%#=@>M^G1lR0RL0!`MZ_&~kJRDgPoY5G(Snx;Tg z^=U3Byd67Ujql7V4!o>gPBM3Y3}t95J%Cx+5;~5y;Se06RA>f02we@$4o#(RK?>6u zp%6U;DMCxx`}A!{wNzkl(soEuDzVq-JCI^@3)@K#L#m_A>~VSoQk-_Mjr1s_1np)U z=rKqdy}^p~IHY=dhxO1CkQ(?`40;k$BdcX?^c18do551F15y*4!=}*Fkeb;N`jB=) z8pBr5Kj|4rW0_5_(=JFYY=B;+XCbw+P2kuKX&l>vmOKY(JbMNwj6INa_B>rj&qJEP z-lAT50n$V^NEW>aX;P?$7SnejO%B!3sq{TaQ$jN_a^HtEHFPBIMn8Zwjb6eSKSD=E zWA9T#lwu!HYm`FxiLno8ycFyH-$Xa_ZbbqL^S||}?fXQ`0)D!R@XW&}kN?6WZ%guU z<=&R~y=fbU!Aoh|L`uUSn4rRWt@d?L;7?2J&gA@)!V5&=nv|U1gR~V(&e=xMc{`|h zA=kGVVQ$dF$`a$rOqv!O5n)0e6HYNb;+ir>tuWPkCS*71)ow(E35iX4MP1W!BPL8S z&xCX*y*i9KVM3-;UUjZ%wGkJlxMxEClU{3#gfJoXDX)ZUI^WQQN%KsaYw9%Wg$cP( zdDXk7E~7!18axv+q^!#_8ifhTQF%4GrXC|HOi9m#lqtP>jV572wp3nC!Zax`MPR{+ zps5s5!)~XS>4yku1WW2ikU|t^H_*&Xj!gMk_kA4CvLTlKm^ixQ+RAw{i zXON2d`m3|2+PH$rw{|Zuq{zdoDuOVry6(2fYg;dXurXKnY zqy{9frSw}!jjWrFq1PZK*_AYoeg~KhDB=QK zOnA6T!D@Z53UZ`YfuqC06?}j}xx_}fRJ?+1$`SuzAv*}X|3~yU%>Mx+*sR>+A7QW5 zejtP*NqjU(h36n3MWr2(s={_~oFc407-5C8DyX96NnXq=xF6t0MWI@>B5$mYywdVR za8OkwtFEF_%c1$Gikc3kqDozd?53(~KE&!OHU2lAs1)h&_ufa10=~!c&xi~87RR?U zJd5#U@U-Juj;909YCLQ3oR6myPZu5wPY<5nT~s2RlY+Kg`H^y=O2}cHbvWt`@x^#7 kq(7i`d>?+({Sf>X{Sk;5v~T0tOYfo-hqRymN`EK)Khq%PH2?qr literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/form/ComplaintForm.class b/target/classes/org/springblade/modules/order/pojo/form/ComplaintForm.class new file mode 100644 index 0000000000000000000000000000000000000000..d8844e06810f34e0c91f0db30189e811933eed00 GIT binary patch literal 2972 zcmbW&ZBx@q6bJAVC=_8Ul_y2Lp!h&3N__Sz3MyJfu{g@$j4yQ3Hk4r7bkd;Xx6&E! zIO7XHfFH`a|Fa>1E+=n%lhd5t?EbR5C;k2B=Px3N*%7kCqu0M= z+<^1P6pe6RZMkl(;#5CwU=(f`Q#8&EeW4dNbmq9C6Py{)nX>ztyPZ^Yij&9uaN7+^ z#vuPFn&Q@cJo;*D%a3O`qv$L*CR1}Gk9khfd2SfgV{XLrUsN>9>7kn2sRmv<^!yfg zpHo!ie8y|mJDj+r=rSjA)p&)#6%?K3@xaEb>|@k9z&lrVnvaIxu#;?fbdq$4UwM-+{YC=VS` z2|D87>xh%CBTlxCIM9fbgo31gTo-U>BU*@k#UEsS)7@-bxtXY!uHdSo4s?~S;m)G# zbOYD!hrd(yD;j$+Ui|Qg`0!1-gca^`u;^dWlrv2yMbjPGlrv3JFioeJc&`%Eur}QlO?lHaBbpXvQ{FUPglRU# z#OEe4jcC(7(KKqBilXVhY#KF93ozL!CO*T7XIWz&Rdx&_ni6cg7| zVmhHs4@A?XX}T+#9?GUk)3gNBa*By-J29QorbnXbv}t-InpR}fY134K>1m3IzcYzx zN}C>wrfJjkTr@qAP1B~S4AXjwiNAS?>8v)DMAM9EdM%os%BC69v9RJJaqXe?{{f!hkktSH literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/form/ComplaintReply.class b/target/classes/org/springblade/modules/order/pojo/form/ComplaintReply.class new file mode 100644 index 0000000000000000000000000000000000000000..aeea9358ba541d6f7011876194f7b10fe1ed724d GIT binary patch literal 986 zcmbV~O>fgc5Qg7%K1_nsq-hf<(9)Jm(n{2w^cP|L)Gi&)R4v7xpyGczMU8=J_1 zNwQc)sr#g}_^W`(1lq&Zuye;fPPqL>fF}1Aj@4#>cCID@<$(#cKyw(S`okg_YkQ%_ zF`cxBW}@PevJva+!?L@K<^r#W|HpVj^QPLJ32gWJcS$Ka&!e5*-C%!2n|!a`r3ufJ zRf%@m5(@XbSQfG)HCQTg^>eeZ6a6mY`)u7_*Gt|L4rm)5Jz9w@EuX$TUR3UBMdW=5 zenqldq$GJkzH;;v;#;1!O_sylq(e4XCZLN)qy!#ghwSa*@9?iE=wVe{D=dD3r~G({doy$XAiq zFq_7EWum%wZ(9aUX|)NLxfIA~U!Yv=L|d`WNyYgeE@8wu&jxB+1x~Z4gtF7@_ElVq zbi?^6lYgv)eHa&*sLL(2WWt)XFSOm@EVeSVvB1OGoiYAKGq=-7U~tL!N?@d_L-n{> zUsKU@xfW1Uu9}(*R%N8!x~&|v8=3@HtN)jy3KOud>;vX$Y&I2V@>w&qx~^7rtQq!p z7#iD3F{3WFqHbt1hSDmJ>DRurCh}@7Ig!*%kN4QvJFN8?JkGlQI45wT(`P!|He1R|0wgW7ENe{6Yk_y& zXKNcKPVdXmXIr1B8ne}GRCYE;m!@Z<%VUc9%P#xmo>jU_+;*`fgJ4BlRVm*Swlm)Pzk>fbQl}9Nkv-6)JKD5mCb9BF{#3aX3dwu{1xe_>p z!*t)f`6Kf0`7?vg=5osBBeZd@rzofSk!1|6l_2>s?ssl)QMxna=1+e@z60eRNMM{; z6D{B4i4_ts=h>ZD;5e-Fk@jRd?NC4M6lte_L+k4Di*}?%dy2IE zh53lle%j+Hv;s5fOr!lwGh~|m4U_AUUrg>{7c~9Jbc1zweNmogz4;CC8~uX4KtJF@ i7ht(vpaINrZwB)?P3hWjf!}#tI(Quk7EDO3WaNJya|TIIgBx5=iqH(GBh@m56w zA#vaVcqqiIn-Vn*2ax3*&+g1OKhNyXU*CTKc!}LQJd~;^2k=p0*qDe5!4r{<`1^1o zBg;^Ep)zHU7)ssVa1AxARZ$PnK)`UI&4}kyqq0$$h*l-`iW^-kKc zjz0(^QfZ|jh6dqZcbhyCSa|glJu{K)E7!cu>wPzqeK!m2QvW@=7alz{-{OmgLDmN~ z1{GR2$m3+0+ui#H_PGe#q}3g}&=#%1{QEB2OY>FQ{J9p@&6sV@2{kigD6A zWIOcMz(~`14EOPX@*UGrK~0f+&%UC%fN~ccbftWXa$wtqU%?faQ+9vK@Q}`YY8V-s l%SzhyW!m;X(mq~IyS_}jL$sa0(7Jj2p=}nlPiXb<^fxTPwJrbv literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.class b/target/classes/org/springblade/modules/order/pojo/form/OperationOrderConditionForm.class new file mode 100644 index 0000000000000000000000000000000000000000..ad71521c8a6dbcd9e98fd0ee9a7f67d90be80140 GIT binary patch literal 6854 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.class b/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderCallbackVO.class new file mode 100644 index 0000000000000000000000000000000000000000..490263e534c8a185127eeff96e9f140c5563867f GIT binary patch literal 1090 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 uUID8{q-Aw2dHL|K+=MdgNYQwQ|XWFVCFmC zsPFQju%~i3cST@Je<*x=CMVJso^sSXyE79$SB~^L`qMINdaq?8>|jV8JD#H+G9*jo zUK(kJ{bk?Tsa~g4wvc70|AUAVxlTZ@lSKx(95%7VkREWa@pjH#hGMBT;V0a7xi_*q z{fQW;TKSbWA)muJ-JBA-Gti~;IqaZF^J5;2>vAZmaSpOJ<5e;v*98Wx(Py51u!TT=363uK!w zg1M^*jQq)V<=h{L$By3daP5`f)3mrwx0TRd;WBn{f#OBV61YUKl4Kx7=N?sTij1OJ zIR*P1wp^i8e+EjpN@p%=z%}es#&AI3(ePc0x-VIE@1x1(D7^>j(!B2}CMi~{ zm5(ruMfC?VA7CaI)$ho(?^M2EBTOsRQ*4L-jD==ep(uyy4kDPCf&g)d8>Fg8Yafx~ z1a8vY1`I3x3tJX48Qh|RNj4%6L%-)((tVoJmYG_MCR^PnBHN7`mSiSTXtEgbh!E*b g5O?HHEk?A++`{qRI!r6ZG>PFh8Ly2khZ-t>0ITcc<^TWy literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.class b/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderSettleVO.class new file mode 100644 index 0000000000000000000000000000000000000000..2095d0cb9557dc6657a0f9d9786f4ba24aa2d064 GIT binary patch literal 11938 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.class b/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderSiteDispatchVO.class new file mode 100644 index 0000000000000000000000000000000000000000..402eabb99699796a182061ea62c5bce7b13344d4 GIT binary patch literal 1110 zcmbtS&u-{g{K_##_r67&y^#+j{ekjlxRA^jH|);Faj`S_8rer zj~UXHYA=f{!}i~sdYwwuLZ0EtKUg@GOXPc-C;Whhe{s}g zV8;xr2hs}^_f(I&p)e_3{bLM9+`Qg$Jn<}?_J#kP_g$hZwd8x7WjvjG$*?m9Is@SEwO6jC<6`Qz3^)l^JxIzz-Tp&a17M<8s z8CA1(2KF(6T%%Qg1}eBtYas?;8#idjutVf=^L?rsmo8Z!sHE`c*7SKRy#_*Q-M3WJ zRO|KHdzi+&{tdZzFw^t;SLE9FYM-zYZEN*2tVjQhxmH?`s7CH~VwyyP2yqj)$W@uf z-Xq5;+@`)27*_TN)-2?5xI+gfBU}-Ne$9!cht#DbGqo2jwm45LwiyG?#Y~dWVhQ6O jG18MD?Kq!C!e~*rrTwjCoL0hVlEPgIUI$x^Jk)*xW0B#B literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderVO.class b/target/classes/org/springblade/modules/order/pojo/vo/OperationOrderVO.class new file mode 100644 index 0000000000000000000000000000000000000000..9bbbc818091b540f734ca85c2702f6638c3b70f4 GIT binary patch literal 9286 zcmcgydw3Mp6+f5kW;dJJyc06vukr;v)i1=vhkR6hR&2HS8L{VF7 z)#3}ERPcpG~p=O*uceDE+4&85FbXabdlD4dXZmC2P$rS;U!BzBMr<%0A5I!( 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 M+Q;|vFEi)=0ViNh-~a#s literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/pojo/vo/OrderStaticVo.class b/target/classes/org/springblade/modules/order/pojo/vo/OrderStaticVo.class new file mode 100644 index 0000000000000000000000000000000000000000..95ed3bf9b70aa8b37201290e3900430e69c8fb3e GIT binary patch literal 3775 zcmbVP-*enn75?s8TFGnKUOTbVZPU`gmiT7{4J~9hDYPbTT-Hg5T^Cw@RNj?s*}Kvr z$$>IFGNDg2Jap)E;0?%3$qXStI`n}bFJ*@R!)^H=DCN77)|PffnqkIT-Fwb=&OP^h z=bkJ7^FQzY1;BZ9N+@7RgJM8MQJ}nQU9-%##xQgY zYbY5Qfgy0l^S8~Q>pSlDX4`7nX2)yox9!06{Fd#TU2oSjuX*NWIa>>@&}nXX0%NWh zF4JkSv*hi&T%z1KTDIZ2+jY6jn1OM*#>mzYRLUm|OiKAg;Dnblj->XufhnmSqc*ih ziK-I@9zaDvZ(8n!@9kS{fvK6)%JGKlvoA^TLk3RbVXm@m_pKr@IWwCwivpHu{FH%5 zrT?NWod?p(rwx2YdKsgazGxmZ@L8!kPSslfPNeOOf!SUJ1Z2z$m^ZM1MQ&!tl4)$& z5kD)FWYskAIecE=M912*mpr#=g)cfGL2eLQZWsuxr?(x&-@l(vnx_-67E1o>0+p*| z)9Kh7PT*{|?Ppx_OwPHkz}ZIA>zG?s5Ze9^I&E{;YVHM|YqqS=+H~BOX&s`?=c!n; zeaC7$KeXvr-4D2cK>d?^1gyCrY?ZCR$;?yTI~&sdEz_~ zD&da9Y(LrfKMp20JrN96`>}yyncd)#UA4m;Q&q~+reL77<3+Ls zEg;wyCR0V1oJDf)g*&z{a7=Ej+TS>iN7?~#IRbAT^$ji>BQvt;2p04oKAxNyoTG`u zpd!1`LwrU&%9hvMTeZ3gIqH?GE2|f{*%dYk-wyWM?0w?{(HqrFl#|t*IL4(gvzQ(x zMbErv`qSa@EUkI_e$!rdqUy=?pbhO%bjl;IR_hXNbD!e3s)5O{*KZxAif3P>fAdJzvrO9FAYR$F!ZN6mhK3^ zm+=+8g}iI|n>GF;wA)msjYo5hdBx@!kM#pIlP9iaikElhXzL~R$=qG$a-mG8J9TH;M49hM>>ASW^#q2 zVf-8q;p-fgaFua9g>g;)H^wyRA7NTUfq%OA2oJ==;r}s2LdtU_MUh|IF)299fMtQJ zk`1}f^r4PBLR{ayjv#x(3ZoG{k1G+){N$yGM@C$y3yqGt<@!10d_?BSa(#zX>gD;H z&=&7v?iDFNRa2y*q9ht!5*(|lH8oO^+sH_-s6Ex`S}{@;4^?EGRwwgGl1XJO2}wif zU=8bxR3!~Ba8zJgx3Iwt4e=j>RlLZN!lv*9zQK`-Z{h?WNs>(d+t5FzK+&KJ!GuGI zk7;-`FG#@@)E=ORQL>^0R!qT;kp0pGtYyJR_#6dIxW||9a?A;fO5q5YmUPI}^QrPV p{VpB{`kP|a&QrVw%?jkFM3Va_`+| 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 XsMn+iJ5<`OFTfr}bLzujS=s*toBG!@ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/IOperationOrderDispatchService.class b/target/classes/org/springblade/modules/order/service/IOperationOrderDispatchService.class new file mode 100644 index 0000000000000000000000000000000000000000..b240808fa72aaac98f6f4f1be044ab6086a8f6cd GIT binary patch literal 770 zcmb_a&rZTH82^gk08v537x185?7<`I!Jr8V29w>4mu~wUCEL2R9g)ZIbv*b0K9up> zn1LwaU_2~se_ek6`h9%9y#v4%96L~9Fi<+=Ce<HX0k3cviXc-IuL>8ecocqbz=c(QqL&hr;=o|7HX{MMA4tw-i3bu-Vwb)J5uQ_(=11e z+7M{X`w{2}ZtQ$M0>`~zF;`@(J^B3_DlHc@aM?ZqZ?>*sN?HPVGpQI>7-KZX-v_g>+Kw+Np-XnzN?UX~QYY jgO>9)o!2DLhDvN((1FGr+IEqhDi?O0)vqq>&5->MHxcmg literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/IOperationOrderOperationInfoService.class b/target/classes/org/springblade/modules/order/service/IOperationOrderOperationInfoService.class new file mode 100644 index 0000000000000000000000000000000000000000..8aa6d818e082bf4424e1e596e6918ce66b5bc498 GIT binary patch literal 1171 zcmc&!%}T>S5T1>#vGup=&9hK1F5)rTgP;(oq!94FNv1I+$%f6Q*cb5ydVONM0Prs?!3l?7K5XSmkn)D`%=+Js6`;O;CA_fHC#P%CMS|l zC0~L2vzkb<3?dBbfJ*3tMw+m*~p}W|5(_j zs59t|qckXGdN->CWCsjHf4J1Ct4s0I2W=n=Om(DZtE6#XRagwn%0MOB>o2gmDXe<& z)ElDFN*WU!5XG)53+3ZO6qAek4J>|HZjJoRV2e(hej^5X-h>@6phHo|fG$0D>FkwB Y*r)UX98z(aZj%eD>v^&V$5nLl4J^2lxc~qF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/IOperationOrderService.class b/target/classes/org/springblade/modules/order/service/IOperationOrderService.class new file mode 100644 index 0000000000000000000000000000000000000000..546c186f62f020bf0f84847f2cd58b76ddf557f4 GIT binary patch literal 2196 zcmcgtT~8B16uncx%2z=JMez$oEq*W$#ux+oAYyD%QbH3Re4FlE%8=ci&F*YdUVZZ~ z_)~oF2l%6mccu&5mI5UhA2yr4JNL}Fch0%<`_Io`0Pr4o5ef{}b=>4h6sxe=@P$Mk zXqoz$a2-pGd4h3EdB`iZ2xDQC4r?}E?}Upm%3$_Dv;_A>*yOdw0eYqgR~WqZbif-z z2TJOc2Zs$xP9i@|IJOOj2_fa+861O|Jrzo~!zVOC`3$P%YK~twmgm|^^=#6SKG3|S zc`xVP+8UAFLbI>swunW52IGW5(N$WJ3>FgfiGOd}wrC=QALZ()1$jEAwh><`jNlcU zur@41+svv;%!Ur7vhCf~RNjTQVlWyxj+0&v!eG3vnxQahjEt2o#(sTR_C1=Q{(kt6 zbzg!cH75}*bUI_;m4_)8L!-=LpQJWjaDX12B#hQR7m?ySB)pRDX%>UYG$Oqmk=VFA ziLVUiupQ~RPrwY8G7qIj`Fu-6MA&)CeOvVrzi)kO)=%25E7CDKop(Rdd8dMH5B>fw z+8AL`Pb3-8U{yDj$Kc%n>vwU;hQZ0m3U#8O$j?_2Lk1v=&q$SshL1a#=rs1o&n0L2 zFFL?VD6!4pO?l|4Vm)g!$*K&d$zkD^P@TERV158;OQ>Y@W?KX*JUVfzZn!Ddoo1&4 zfsIfbsj7V<;Y3`gI&H_^UaW{tnk!>A@*GlEN9K=bv6aZj!@4qPr{waW3OlFJEvQjX zOKSAq5UbARY0@)B zSMn5HrbW0)U*q&O#$W>M{W=L#P;jB~0!-7N5? U=kwz|Ur?|^|0TSlXaQFL0?Z4yu>b%7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/IOperationOrderSettleService.class b/target/classes/org/springblade/modules/order/service/IOperationOrderSettleService.class new file mode 100644 index 0000000000000000000000000000000000000000..269a4700397c63f0aa74002cfbbe5ce768dc1cdc GIT binary patch literal 1534 zcmc(f%Wl&^6o$_UDM?CcxwKr0goId-ZkPp20}EOzMGA5yBaqll>{Bz5?J+asD0vDV zg12D710eBAh+{iIDNd7!1&fh2^N+uobD96^_s?Gd;2GTOKnvl8HnFg|QCU1nWJDs> zQIU`p+C*f8B{NYWiGiP!kxuE%FV_QdE}@_nJJ3eBHkK195}C!qAB`z=9k`6}B-E)G zNu8=l7b2aF7-93Iu!5$JGRwT*N6c{u_bnw%Xgcyl#)R;xKU@e7wc#Mh$w)dW2IUXl z@ZunIJ=Wq>n^gRH0?nVgbWkHWA!8BRd3FC?-H=U$UZCPk zy223R!}UUZx=M%>eJ;SdjBkAJ`Tt1KKi?T)pQgDsjh%vUv@C_;&-z;N*2tV|!bPt7 zxNs^FLuH+Zu=SxJGn;Qf__jWEr9dfj%FP-J^s9LA#7I$Qg;}yA#~MgJwtfZuhU%FMc_*F@%~;ZDcy=Pi1_V% zJhP*=7;o{5Tx>7Pa#oqaD#bw940K^aI#vmL(u0dE@^RT!?1u=KcxF&xI1vS Hn(hApM{fji literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.class b/target/classes/org/springblade/modules/order/service/IOperationOrderSiteDispatchService.class new file mode 100644 index 0000000000000000000000000000000000000000..37561f92e60ea0cd70fb98e4c8d535a46c20f510 GIT binary patch literal 788 zcmb_aK~BRk5L}m*v;|5FlrI!6_`tEi0Rf^?Q4zUu!bz6YRT4+GQ_+X;84f&vMuK;ig`wmnXTq_-NlWLiSUL*qKu?n&X4Ocoq%?;|Q^pOun zDQaP*N=7;EN{biLq{8}RcV6N^l|g$Vrh-Qz3HivIpl=;mXK?JRn0rFSGEf$Dm`DL<&^~y@TOG!L_;T{#WGio}ApE9joA0Xc41DZ5Y&xCk+Bx zu49}Qi;mSIF^}^Xl_D)Vyh9)56mx_@cZF)M;gp07Hbb=Mv*P|BVDPZ&!tm#$Q#DZ> z6D#eEe;@W`QP5}5aAlYXn`!d*ycEGa_Wtk>k)Qmh!!z>ObXBH(ypj=_?ET(CNBQ4U zzc5&%QKK%cQcpQhr(J_~jS4hr+8~@FUkz_TtE{du*e)vD(D?*G1$Kz00=uwR%-s(M C@9#PQ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.class b/target/classes/org/springblade/modules/order/service/impl/OperationOrderCallbackServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..71300dd7e571b69bdd0d79d291e36f2c48e417df GIT binary patch literal 6179 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/impl/OperationOrderLetterService.class b/target/classes/org/springblade/modules/order/service/impl/OperationOrderLetterService.class new file mode 100644 index 0000000000000000000000000000000000000000..6fb804236c31e9e7b0a865b49f0775fead5a1e68 GIT binary patch literal 10095 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.class b/target/classes/org/springblade/modules/order/service/impl/OperationOrderServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..b80f9c6aa5b16221336744590b3b2decc457ef35 GIT binary patch literal 32275 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.class b/target/classes/org/springblade/modules/order/service/impl/OperationOrderSiteDispatchServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..65cf5dc8506ba3ba32749d2aaffb589b368fb1e1 GIT binary patch literal 16041 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 A)Bpeg literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/ExcelReader$1.class b/target/classes/org/springblade/modules/order/utils/ExcelReader$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0974f13d49a75b51b7a2ce15d1b4f8b7a6ef32b7 GIT binary patch literal 1286 zcmb7DTTc@~6#k|y^uhuKDqc{mf^w-cAgGB25`!2_3L0tp;M;UNvXd3qdfahK(&aU6DUZ)@nNr=CwCxT~FvK^68Z?#I-e%~^ zt%?o7m9WcvP6^M;CJ;kBiiCkS7!2bF9hi)k!vUnt<#om=~;&G z@JJz!4s=G5G|+`^28!!Q@e-PH%4O*?bmxM*YGrDb=K@dIK_}Wc$pz$*((mi&~Ot6%i5iO~)Y2uOcFW#y)})^a17JGa-poED2m40n~tsJmgYBYp&ojcH&@q*Cx&R{H&SPv$UmIWUgIJ|CinlSRJ6-h z*%rFy5-HaYCH}9XoX+R7vy^;d*{Qjvylwg1CY$XUV`7Opc`kfw%@QSY;4(rA+Qz2?Fu+qwg0Y CpjGMs literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/ExcelReader.class b/target/classes/org/springblade/modules/order/utils/ExcelReader.class new file mode 100644 index 0000000000000000000000000000000000000000..ab9ad83b1798b7dff007c0a07a7eeb096ed54999 GIT binary patch literal 4275 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 DYDn_n literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/Target.class b/target/classes/org/springblade/modules/order/utils/Target.class new file mode 100644 index 0000000000000000000000000000000000000000..4347c456b7e90728a7b600da637731717f15c577 GIT binary patch literal 1857 zcma)++iu%N5Qb-E*@|TO5IJ_5rfr%YQrS+;Hfho}PTbPeI;KrZf=I}4ZV1{U90sx! zP*k5P7cJ1BKri|LeW;@UtP*i8%Rp{+@XgH5{M;SxzyJOH4-q}1W{Gk%Q=ojAW@%2) z@~iN-(CCJ}Gox|xDmqOC%{`5Kak?XDrn=rP(lsg;s8ptTDht}^CuhdsbrSc^PP$LC2T>(Myn=U!HX9Mf)=cPZ;*z)v>kSb(F{I`kWiOLfl6YB5VTmcy{73~`obz^%tJuR*5UsM&kR!SQk6+pgr2MP$DB?z`S|_Lb1am7W(^rsM3I)*(9= z1g%_f2L6$4sTzxdmQ=`-zVAp^)_vZwq|SxE-#HE}r{SsOWq9|bta07UdmUb@;Wi!V z%S>`bP{}o0hnZ(ZP~PfyB6M`(UQ{2RpG1ito^;`QC+`0O^6OubhUapxZcKuyHWbG-)V+Pcpjxug7#d`8f|0)s*Q*Z$XBzE z(c{v9eAVVkC9gkBPNTh;KW~0CyYUx^KUCT?tQ_Xl z9jxV10{ue2f&`hgi}m8>KdJCLf;qf@?>FC@y4j){vUu|jEZ^wd#^zfpWUcx6B%J9i zZK?`uqpWxBxjKKJAc-uz5A!gB_NHoDnAEg2Rnzn7nieKCJ%FZ%S7_q19&1`sn)at^ zTAtMOc&a9Qx~AnxO;4a{`wC5b?_*6BrRjhU;hMa=l{X0LcegWDlS3}DF5cbkx3n^; VX&0KTD>U&8jy0_+O?B10@jn48`u_j` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$1.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b71e9ead0790d8d28ccde55c79ceb7d6105bbc45 GIT binary patch literal 692 zcmbVKO>Yx16db2%w@Fi4`T?Z}L?sRlhgt|B4oM?b6%|NJS}CDDJG&3Z;MkSzMe5Ju zgv5a#&>w|(n{Yx%RP}1#?3=ZBJhQ(2_2VaiW9+xlz*2^02g_IyI4Jx~YVWlrsiSu? z&?ieplH;3e8v8Hg1XlXSnKTesI_zF%SQU8fgO>3+7^f#zl_Y1rtSm+8LrFna$=E2b zXmX)6omK8*-9LXR&^+}e32fxX(Xg6LD2&y_GP9NYLfK0dOx^z>n`vsIz?=MDYCVD0 z$Y`fh6J9i3Xpejq3OX~jvz@z4v>c`SU-i2Ga>zSg z9a2p1d`tqJ_s&r`wJJu6c!rG6OFabNd}0_|{3IFY%!}_3-z_o!5Y|il^wiuh(#xC~e%r>4dws}>?$m2Id_rCD} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$10.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$10.class new file mode 100644 index 0000000000000000000000000000000000000000..2c1fe1cd06b8a83f847c4cff13fe2780c1df827b GIT binary patch literal 724 zcmbVKO=}cE5PiMbWRi6?n#9kOf`=prJ0gg%Yd}_m!We?P#&hpXWztD+*U;S~tpCcB z;K3i@j}mJ(9z+j;^w9OXUeEC6Rn^a5-+usji3dG&u#}pylRpB{@O2;}_Urn7UNzb@!97WBcq@bH*UDTgw zdSog(X#B@EfBbY$p*!M|6xMU=>9CniDNM}N3A2%NVcf9^w$1;L-E?ZB!i)TBas!36 zv8}vGO%REcU+Q(3pPA2Q@&Ec&2xgw!n1+|g*L=qMgu_gacvd@OefmJPn-BKoQRt1i z2?ZV4*5=kfMS0TdNj={9!f}*xzNd7`Wri(LJDSmSa-rzw@5L$e9=^;vq7br*fgc5Pj>Ubz)o^N($vWK%x1frXT@QN+r}%H7K+dE#bgvldN1=Z2#gHji+7@!io3L!0gUwKt%5}nl@&dQx^PX_}vKRXzbfoGD<;0Qa zht4rqt{|W+?K=#`a;5b*%2A}98y3!E(L}+<1uXrOMqqw$e0lm1;36gf5e_ zJ)*}Wsi;!hvL_f8TV5dc<9WW=Ym#;X%eqEQJ>ijb3`ZA<l%j5D6= qLK^1}W`Qti&EX!Q7`TtMku0M^GK(teR0sW~iiadEN~}nde!l@m=~LqX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$12.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$12.class new file mode 100644 index 0000000000000000000000000000000000000000..af0944ddaf8463abe7686f1226351f145bd7a3c4 GIT binary patch literal 744 zcmbVK!A?{$6g?dV9*iR(prR{HSO5zeBq1a-k{Fa|@o)+e@w|lwrZP0!n8u92%fgSO_Fh|(I(jDq zom(oB>|c+m?=Q&-%yf-2X69GP9KXLfKOlOzr<7n`vmGz+Qg8a23DrOrN2fmY8~p`b%kr?&E&5L^u}xksjLJi$|eRW%-yD?im0I1av`7~fJ-#tM91|DP1@G_cBP z*-LeaI~#ve0<%XH(|aG2K>LGp6b`J4ks@9o;~uMr;Kg0WILAB5IAJ!wK-@CXK#OgC r4BX%W+xFcB#)s@pW1ejT3s{`sBP=mCv5d!9oiNLI#@OOl86%IMc=OXa literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$13.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$13.class new file mode 100644 index 0000000000000000000000000000000000000000..6d86eefd11b53d8f2eab144398d2fa10e82102bc GIT binary patch literal 1379 zcmbVM-ER^>5dZB#d*wVVw$$$r)M|m&p0$aZP@9-)BL-_@Ykf0WV5Qd_w`6xQ@!v5% z`r->FJ{X_VqsTzT9sW5I-BVHFlQ`Xy&(1BESp@Nn? zlEFKvn!%QAwjv(J=9Oqg9~hDiVfGoa`9kHd$30_#N*+#Q)Aw&Q~V8Y-v)v zLfOSd%278#HpFfgx#C7D%HWo)3x?TB7>k{Dvntd+uSO)9tH>IU4!8;}-xns$VW=4% zj)`SdB1#O7TpMpcs^DGwdsNF8!W_!_E?uH2j8GKP(qR31Jy#m2XkSt&Q`PsvM$AoH z(IuO*W9_kO%R>2o8rLGJsc(B%bFs{@{{K!n zG0Q&gV3lE>w^|~u?TK-u-eM3$+z-t%XL8 z2FU@#1$r(LwCI%}?h@?+qRdK)U%|f6#=&L!+hgD(uF&7_Dc~xu5y$K-l9n}oZl4{i zvD|^XLaT%HXW|DjK6Np2J-t4L#mwP)7uUxP+BvvMb}5I%AOSLu$<1Ql%>y#FZqmi& zADCI8)xrF6KZCKR`+ojlW(bqk6mAiUgWFi@(mV=8lPF?^@?cMjxJ%Tdz_LW?`wbdq BZpQ!s literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$14.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$14.class new file mode 100644 index 0000000000000000000000000000000000000000..52f8b45afa7af847d6899715cff298c8fc9e86da GIT binary patch literal 763 zcmbVKO>Yx15PeS5rVW8YQ$9~1acFzMsz3-Sp%MyIAT3ozLb)M1yVI>($Fs7%Ncl%x zIU#Z22k@g1vneMyRLWSM=Xtg@p6B`X`^QfJFY%y@7FIfF_ppjJg-1Ehbje&g(q&|? z1D!g`lb*~gn(zgAg|(seHXSIe?ChR&u&(f&L#bmGtS_g|6r^Wd)Q+O&P*BiyvM%aR zG(9#Y9oGJ16F=U6rqCX7K?<9h^>kFvrW7V->V( zpLdq6|CGY|5ykYDV^Zk7^Pa-UnHVYJAv)4_jVYPZc!C?U(t-p2tAzJ8)Z?=K2xF)`Lc|h>GM60+VzJ*QPT;MHi3AWM4ZQNThecTu9%B_x|*dM23 B+SdR8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$2.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$2.class new file mode 100644 index 0000000000000000000000000000000000000000..1f6b3f84dd79574121801394a9e2c58bcc5bcabb GIT binary patch literal 1260 zcmb7D-)|B@5dIcu56-K_O8xzVDq0S(XEmk|)Futuh{2Ww#0Q@i*wAZ^+h*@D@qhBg z7fgIGKKn-*XYbC4@Io)yo!i-&Z)U!o`Sttz4*)N*Ya)fTfsBO}tTN=!_$Tgo+#fk7 z{WCEL8CLgQ-wh8K(q+46B8!{>)50ZK3>B$HPH?VVf7JK*P&i{boOmK|q#6q4OhVTS zoGw=*K|mSWUojNQcI#i1PN<#hCN5*$K;FU?Z2Xr-Y`~Bk$niN>qAM9T%Zmth(?kKA z2CiASjvEXwmdWjd=(qVu98LW9I@i)O1|tc?@Uh%l1|zPoei2){Y2X%75%Hi|avD)} zJd}!vYRI8rSZ}$$IG&9ALUnoHBh5xj4!GCj%GKvYnF&wbfMIW`_zU&c8B%hWp|+HJ zQmXbLrti`xi;_ zfJ!qva-s&}$kpr>=8E6Z>=Vte{edR~>cY4j1679S%RKxXo`omaAv|jH6W#u8B?lrP zQtVk$l7>%aAS&=sDgL?T1|emfJr+UuMg}x5R@3)|YIr;dM1Uf7cM1$QX>QZBXk6)Z zoBkYH7nio<7$A literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$3.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$3.class new file mode 100644 index 0000000000000000000000000000000000000000..8fdcc256cedf21c322ce7248666710db0d2377b7 GIT binary patch literal 706 zcmbVKO>Yx15PeS5ZW{unAAFub;?VSf4^_n>p%RLSKw7GbgmQK^)2)lwv$DNN`B|Kh zIPe4bQHa@;6GEy~Tb}26{usaU{QCXlCxF*@+Cv9x8M=L}V?*J2!IdtVOGmnl>~)|E zM@7=JWlb~wLSA8GWW7x%3Tp?0^9-8`#~ex>>tKC3cVqY7Pqux=GeW{h8)x zrld*ZKehggBZcmm7o@PATTiD=HK#B$b0^Gh&V_O3CfL^hOLo(xjS8>wTSXfxY)x(H zO=^NfNcoLQNBNccYF4k;Z$dE3+{QGzA$rYMtS>lJddyYrjP>aw)owXFk*?62auW)g z*jDBKKPh?H#*=is^@Zao$^1a+k{22F6^?Epx{rr=q_9&`n%I=&!n42yMM>h|;98tB zzSPsy{@ifzKfUti%~Oi$9mk~5fA2kou`@AJ#4}`4J#AAmq<#dqWTpjI%;9&aZ$fm? u6WcBW$G9W5f4xEQu6XOXC$@ua++X1ib_KiG!vj2CF?)C-*ppM4ptL_ZPQJZ;CaWV_SMOilPtzW9QP z55{MIl=04XjTNLMY%+Ui?#?~;+%t3c=dW+y0ldVLiwv?3avnx7%23$npLh`QxE;K0 z?2D#h7+neD(5y0KOa88lF^oHKJ)DEb@Jy<9pt~xJ+l`2~M9`6~ULdc z6fP&|P+`c(C5Gpxgr6vZjekTZ`9_#M+1jESI>HD=jOGSUuYcnz1Lv7~{2HD4cG!-& z=_#tQaePbPb3~?#*?gMk4`zWdX^h}rLhe515?g{#Hit46NC->2jE7`hB32|z F&u<2gSWW-{ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$5.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$5.class new file mode 100644 index 0000000000000000000000000000000000000000..7f3d1ce72eff489c4677e6b8aadb62118be2a862 GIT binary patch literal 717 zcmbVKO>Yx15PeS5ZW{uHwtR{MNE{jt_<$-736)UP2&AQ|NNCT_X1aCpdRDdh8PkQKJEkn1Db!;d+FSybrbLmKzk-ZLd z?x;w5wybH!U&t$LjI6imP+@Ix%G71RC5Y5Gk3!5;=&RCy5QSFw)L+J{=DL0{@ ziEUNx{gaYcZ9GZGkuMxaN#;jN7re-@r||j)qWgG&hYC+iN)wxsTzC?=pcv1r+}orn zhomsrztZW9FZDFFpEw-+Pr5vR^O$0K&ry!`KX^}J>`aUl@eG+1QrnaaDJ8)znQ6fl z^YS~?Hz7LciEWpGBis_(zuF*pTfBAL5!=Bw?ym42b_BcF#eF1S3gcg>Vfo7AF9G30STcZDs2HNDV&|%!Ex)@$o3-fvp6Af z;0N%d5VN7DsuBpVJkRrXz0YqvclS590Jia=g$AZFG~1ZQjKF%~$5MN*ElC}{lY!1G z6-f>*&uQTQkQ12c8E4Xtz|=^OMRe%rqtcxN1)aBRVZlR)XrA^DZ`gqgG=z; z71l>C;7>{;UuIYl`1%5)ZLHy~z$(ih2VYQ(r-px6rM?eIptJF4$||R2Kh-zZ?flOt zpL_O@Vmk1Vx3zybM`6#Z7%Ac-GVYps2%g+GjB~t_j1%VbHN+JY4YWAcuYn`Xb8J6; kz_`HKG+uFRU=gn;_y$XiO)O&-?U3SBrZ%tDHbnF_^L6ke?`Qw4XK_pX_=nM9JjfVT=$#C7 zVW~)Rcy&ob|AU;sT;Dj8_5@}&yQdlE1>XChWxNc=>5)|>$%!v3OHukzQjk?LHp(*^ zohVHQmHSrb?{)>6`@STBrQA3=t|lW2Lp8F@tmM8>_EZH^=l{uO8k;Dvn?FgdC$KOu z+No3pRv70GI_>A*)lW6Oz5E!0y2?#V{YR+}RnU}rd)x(D17C%L4ovNA^-dYKYYi^J zXIEGsxqx3NjeVJ6Rbb}{M%!4!D}fHnf31su5_~~1exg_ibT@A;S>?1Gr24&j-TPef zt>=#^rb8c-K>Nr!3j0>YND=GE_|Mc$@Zev=xWF^XIAykeL;PZ*ffmPl892u?j_unG jjEkJj;yK3#masg<7g%9zqJx)sJ!Lw0!`R|e86&qFDV)H( literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$8.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils$8.class new file mode 100644 index 0000000000000000000000000000000000000000..8c9f3dcacf2fe3e7c7400a6bf1edb74b5525ecfa GIT binary patch literal 1264 zcmb7E-%k@k5dQWkTsf~&q4@hpRg_*^InfwQiX;Ri)>I$?>w}4Ld)<^H*ITlCHSvG) z#TQI`Fh2W78E1QEtmUON*`3|FnQvykneDIN-+usjfmH_KjLxE z-|HNUAYqtU592V|V3?|SZ3lVG+HhQ4fXh&os^{wy6~?_z#Jj@p%kCf&+Lx*;ls`zq zNc)Fe^#lRsXy0ZiRlL@}Cua3H)@$0hPE-teFf937 z!|He<6%n;1yMke^6~ekFdh9Kx4jV#(!VQ zKxn-!bim+^5|a&m_6~+cZYsq;w?dsz*7;qblUGvHn{k_QEYw!SwH6v>ns5sY*XZp| z(V{0yw;OcwNiw6UegpeT2Maf8H=ltIxJA308sIkW(2bc#LRQB4wfPS)7WGruHCm@A ze4+a&#>XK>Ikn3$3}zX3hqx~8(aFMn@|(3t4N{=ENnw_a=Vt$M_pB52EIHxfFKswq^^k^3_E zBvm`ul$R6bv(!Fc#b0c3r3%uScYrt;hzCcDV|zoG8;~FVqZc zC*(4MhZ2J$R~eq3;69Q9>;I5C`Bs=c+1#NT+QJA$87&TXZ*b#EL;XxNg);TL8n$9? zx{7M7A2k_h4$-uJ+JrZ#WUnf_sv)*Q%WCe>J#(!s$sdfU%{!F7830|VT^O_G=$F|xAG zZ|vX1S}gV8F4O8^`U}a!7zcff`GH-6VKL`%tB>pBHk};YA-^ey)F1`2FDT4H5@wB@ zZJ6oe(obZTY4vdaaGc>>r;|8;F|&k8YXWx(#lbx+_V+vrw5L(TGVx%)6!Cy|j}pt# GPR}3fie72} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/utils/WebPageFunUtils.class b/target/classes/org/springblade/modules/order/utils/WebPageFunUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..d8e94413b1d35e664373736e4f344a56afc05bc6 GIT binary patch literal 8120 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.class b/target/classes/org/springblade/modules/order/wrapper/OperationOrderDispatchWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b484b95ef94a1cf1ed4694a3f7342c4bf0fdc2f9 GIT binary patch literal 1692 zcmb_cO;Zy=5PcI8mc$4lD&RMwVj#$BdEgMF6a+m4LKPUx<0P31Lv41}*;y?9g1<&D zVrgk{_D5OvBx{KTla%G9d#AViz5bZ#?>|0&1MnD&86+^|Aelu9!we6VZn|NhrQfW1 zydm7W(!y;8ZWslD(#Boop;-5gG>5M=4+5bXhL@!;%?iU%VXo?6gkkM8N=r2&PlT@0 z4WZq)ok+Jr;oL~&SFHJ&3Y=+TFKx%Mjec0k;6Dc z;WS#iLZg)DMn-y}yDGTnb?h){4?JQiKdkh4MZ>;I7C0rdz4)i@GVDu&jAJ z3`=t-EU`}p7jV(Rr7R{e$uQmqv1~C2L62(jCX!lgDSs>Sh11O_KIE zP{1_FY{!8hX6Tg0ZQLP?4W5o6N4~&$eT4LTvau8KMLN;5B`@o}OL~ZOzL?K^LiQLW z^CUMHY+Q%e?tS0^?Zl-v_jD&B=B8NO#Vn!b$nPHIm%tqPrx=-$drD-JWU^$BNL#4% geDN4lA93Y3M|W-M82=Ym&ZaX@(Fqi>(AM{V0v7D@2mk;8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.class b/target/classes/org/springblade/modules/order/wrapper/OperationOrderFeedbackWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..5a2f11e50508021841b94594d27940271378ca45 GIT binary patch literal 1692 zcmb_cT~8B16g^W~mevZTD&RMwVhhNG_@GIVC@J4C;IGja zF&Yie{wU*}wnn7bHpZ8GckbSM&i$CV-+z4m2H-IkGe}^_K{AUJh8dQ$Y49*G%5T&> z;YwcDM)GFB!#D`EiTJ7r<+>lK=)>$PXi76uGGusIDDR5{!9C$Oc%`;4>rv^1Wz7>| zSSp^dbbK$Y;;sIs@9lWrmH@HT~J| zR)=J3Xn*Nad!n}GSF^Z=>kK1p|7wNdU7`Gc@ToNe0QDGUi6ObBUCA(3R=(Vdn>A^6 zMa?5izO3uQs|us+xnoR5dy1O7-iLRf3rXauTC6;m;aQ78HA8)dmGR7u@>#K#w~h83EHhd5_DrQO!5YuIB7;YHFpH|fj$zrNz(oX zikK#uZ95Re44u-rjXPwq!P6bckuPvw9U=XmZ0tn*0-fmDl9%<~B|StsKcCNhLiQLW z^CUMHY+Rey?tNg1cH*NJ_jEg=!%eZci&;X=k>5QONEXRI#mJ1@QzDxrlO=mV+Cru0 f=8rM;5m$b5bk~;d;QzwP*>vV8I)QmCwDkR-Q`_&e literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.class b/target/classes/org/springblade/modules/order/wrapper/OperationOrderOperationInfoWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..172c622bdd696b6a4289b0ba7b88197e5957f34c GIT binary patch literal 1762 zcmb_dTTc@~6#k~Pl-3HRUQiLm8x)F+#s?mXBtkHXg_3|ZK2F=Q4B76iv%47nhd)GL z#Asr8Gx0|m&$KHdm$pP-&e=IV=lkYd=JdzUFW&$>#%vlf^d%9`Ac1~{huSo_?-}Jb zs*b2jUeiYMrpNuz^Rx;0qVVOi8>nFSl@XpN4MYFDa#gUv(3hX8Br(A7>?lf8*F#78 zT${Qy{9QYemnmEXO1ouiJ~%yh-{=TDjikNZIfkXqke=Swd`EYJtd!F@kHI8{GRR_> zA%7IIm2052!^1#1K3|l=eMw&ogEj5#t{Y7k4wUp6=JKU&u_L%6+y*aKw`DCT9`}P6Sz)*PU0%Vi=#RH zUHMj-WUGChO4V+#E&gZ**D=O0&)B{?#&K4QsOS&!@hDyqnYhkl0 z&8Db2WXY9uO*j={ls!krc(A3Y)+=4ed!JOgL82Ner_NBycgyKau%mYBPI)E_t6efU zQ^zTZu?}pu`^&xX_0X>DstmSteO(yQlz}wVjMRo|xFQG*HSPN`ny!mz{#eLA%zm*K zu&!w?P(jlhIy5!;RM}aaJXmt4uDn^h5^#&&UW_(05C=^b`bplP6DQ3`C#LtnKGH`F zH%Z!`fjq`ZX4(z}ahpyl+`(P4*x>O9a^NeHulJDpKsI(LzCb5>?c`;>H%a%A&J}X$ z&&ce9WRB$OjE!sa+J6t=0qxVd7Wa5NBI2f4+`|N+X31}o?ia%p`6n2ek$pmBBV@8< lk4Rgn)O2AVS3cp|ACBX>r6T;_SXq0WX^M`afSH!Q{|lp24-)_Y literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.class b/target/classes/org/springblade/modules/order/wrapper/OperationOrderSettleWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..15ae3dee0987f56ace6d10fab9b08a560f009253 GIT binary patch literal 1664 zcmb_cTTc@~6#k~PEUgtvMeuIDVWG%seBhx-0tioql7KZnPTNTtvfWu{XEFQ%e~-S1 zm&EYwk20QV*NCOi#`rR4=j=J(cW!fj{QUYIzzZy9kidw8WELrmGCWhd<%WTleyi^B zrf?fd3%4D(VH5;P8+VO|V#7Dm9KF^&2!v)BU6#HyD-0vWxtfD9hSgq_wrWP62wkO{ zLc8y}o^F-gxsl4RTJ^3l#uG7W296Eu62tPvSb;iF?xE_7RjX!j8RHHnvdCeQq1cPn z$<8R{xsj1x=&lLwzoIXO@rDYHcC?}pjT9lnQn7Nt54r1czvWiz2cluhr!?yx55w}@ zDNSsX!4*t7xSGW@W*8h{u>`(_rmaGPPQYh9}{yf0S%2RfBy2$*x5SY}ABtEOO>s7POINA0@Md%W(E zCSOqv?$x-K_8u#fW?xcS*9Wi;F@{8)sz=gmGHetFWicGylpU$wsb|<65bSV$qj`&W1Bj-U*bj(2-Am0Z1k1dH?_b literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.class b/target/classes/org/springblade/modules/order/wrapper/OperationOrderSiteDispatchWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..3a288c939678457ad70978973a719cc2006b6f98 GIT binary patch literal 1748 zcmb_dTTc@~6#k~PEUgtvy`YGSH!KucjSoB&Nd(lWg_3|ZK2F<78M573XJ;||4S$Kg zh|$FG;)_4Zc&1$=0JG?kU}N!$3>F z-SBuzxJ{*n+X>t-3Ie5#yTn8B$T!mLzSKMjgk~6AkiImF3E%%^T8)6&VKHG`C{x92}e6DTbw!5d*cY+#PiSV!f8bX$(6U z$)kW#hSFigZly*k&y9@qLU&1U{{?+93^!G<9Myk>m zYf+~m^d@h3WGPlvlY4cpr9H>SwAqr>=%)$XeP2>aAk&DX*J5~HN~-8@P{-|sJN|tz zR1?zwn^{u@6MyEiV_)fqEqPFdRbjSNYn^M}5k_blLv};9eQqL6;s zxsS;2gJhB9>a30H@!J0j;4baZ`7ZZlFCylqSlq%Cp%%#RHszPXH2G&3nNfI1WMgEq mWcNv1sO(I69~VAg{1?a3+OjeJPppDXXNICvC}Xy(@B9FIbO?0- literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/order/wrapper/OperationOrderWrapper.class b/target/classes/org/springblade/modules/order/wrapper/OperationOrderWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..cd249768ddab49cf18b04fe96b017d498b662773 GIT binary patch literal 1580 zcmbtUT~8B16g^W~meyKI{Xp@neqo`=XiUVUfC|y4LP@|HAE)i44B76iv%47lPbT^z zMiaxcKgxKgT?3ScVtkpqbN8Ne?%aE4e*OOb6TlMYGe}^>K{AUJMj0M!)8>J1l-F*! zq9u7#8_7F94rK4MsD+8`g zOB(*6hvYSai%@B=X5BGg298bW9K+MoS$w^t`L6C`sn;?%kDPfOC5zneCf}k>U#1qG4 zZ~+$`T*~4yCK)EWBvvgZA?low?;~a8y7ty1m&B(BXbqrtaFt=X|4hg0+pUc3HmR>V zz0TPZU(4b;ZZM4X;_5YqkEQDW@lq+yKroZYwI{(h$8<2aQBijYzpIhUcYWnGa*i*`Ya{Wri0+QXAGI$}WGL)3)f@ zSy%@bIKL*tZQa@sMs#E-4V5pwsoI_hBSU5Wbb@*4&0jnL`L{8woCQDVFw0b&%%+Y^ zQ@&PqMy3Y7B=h##;WiC>g5EkH3FeJR+ev8Y0AR#4XqLll(%PphLs@x3Cq(nJIiLX>j32?Rh#bV>2vx!Uw?hh^sj&3 z`U$`xnC*z6C4qPft!QJ&O1s1z%NAxSZ)ioGmu1m2bcb7-?V7sH3(|CLX&BT!9SjXr zM;KOCrj6?Mlql#72XavkonR_IS#eh}%_Ol5?Fl4PSdJ7!PraXlvhdte%IcsZ{rP~a{>D;6?rEx>JC`yl)XY!gW z9Lw+=3X*(Nq=7?+zoDG*T9=vSSc#4VI#XDME{1*e@alPM5+*|%fgLi5s^jT<2UH1+ zVptMZ0;`GkC^(j!lw3Dm;m(Bnc+7uFq8pDSuqK7Ic$8spl%wf@;?PNz@z%U2j3UFq zbWfxN8v7sxbYoo#k7GTOJ^saiui4W(hvR5HD)3#;~WM=pw9rVLg??R-_r08^Uob=YpY&sPwnnbA`ck^vXXZ zy(#oz8$*JGbXqHslFlw=sQ$G0T8=ydW!=?OEb4HUbRXJ|6gZw{Smo#jouUf3VBL?R z6kO-;0rn#5(AKSx#7^u=V0Q|8u$N&+L-O-dy1d}p20yA&UTr>W%L-Gt{R}PXo-sPB zMIuBP3>TL&Tz}y2M}u_=%8-NxWRZ5VBPUG#lvmE{_8Bd2&`4KK7Bpi_vxR!D4949F z;V|?^5=uF(Y4)a76P5JMkco8FJU)ibLEW8@MG}Wb8=~8Ut$kFKOwILdis9pbmA&k} zL0@#l`ziRfBOYbIvOXppLDU{GP3clakS3wuUE_0H1vM@0OMF_-^Sm&NT&vFICvT4y4^yxn^8^73CW#ltyH3FJhh8U%~|B4YOl7|@ycb*o*@z6x&GztcP~?RDe6wa z7FJL+SIqzL`NHLERRzRV?qS&6Ab&5FYpX^1fq3eyPf!fqiv>Glg`z!HH}^sJZ892R z_8(bFiKLY)S`_~=()9e?dka^u{4slj4yx1*gZ*`iC`kEj=?{yyxd_5eLyRJSK;*Y$o2);EX5O{|FF7d$jL zhljU)hsWly;cI#y!$JC=q!t*a8^Z`P)Y}-?B1;!B^|ucFc$WOHqASln>cw!FMq8<{ zQ*(rVF&xDJwOh#WIhuIvJeY&yI6?jAPvRtApeZjp$YIdIDHkg(@z$GdCVS>#tN={PL1|w&v7a)770kW|W+1U`;%OSFJ zc%{OjO$g)UbhSdZZ4NzsH?h41r?xkMH;xXJe0aTqO_jUVL=v%~{7?X|68H`u@!sa4!2d%wpsy?r;pzM-dJ z&)a-V12vQ;tC$sq>iuDwO}pHRPBPMc({Ue*5=e=jCumZz*8-C?=aK_M!6^R)0r=?S literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/partner/excel/PartnerExcel.class b/target/classes/org/springblade/modules/partner/excel/PartnerExcel.class new file mode 100644 index 0000000000000000000000000000000000000000..835b84c94a9ac34c0eaf233b529e0a2c7b01309e GIT binary patch literal 12692 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 W`nv|d&-TEL=V?#WLh+o0Y6 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/partner/mapper/PartnerMapper.xml b/target/classes/org/springblade/modules/partner/mapper/PartnerMapper.xml new file mode 100644 index 0000000..83c3c1e --- /dev/null +++ b/target/classes/org/springblade/modules/partner/mapper/PartnerMapper.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/partner/pojo/dto/PartnerDTO.class b/target/classes/org/springblade/modules/partner/pojo/dto/PartnerDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..440538358caaa26fec8287451e3da32798a039e5 GIT binary patch literal 1027 zcmbVK&2JJx6#otEvOu>5vDA-UeJ06c(GLj+;9EI*iGtI$&S)@!LVAZ zFN~X13Bjax{%sEorc@&l(jXnh`_J2ans!uf3pJ7hx)?qYil(MDg(8~yio|Fi#g3eX zeeuZCGnIbb-(Bs2YjhPEy$D>y8qQHXPgw>R==G2%a&)d!#iht7nvD~%_c7!Wo%(NJ z3zzA%69BH@DrF2CB%YA(P}I0=#d=2}gFjQVr&PLZLTTUE6tff^r|}l1F?YV8@CIgf z?tDg}eY^1iOL5w8PEd-!jJbANu&Bk|Z6q?O1qtFhZctZM8hevE&fq5TmS9-5LI5jiLLYt+Eo1{n&fV`9aG*d;3mRs3b U|C^?jYMSJ*g&GkV>TwT^A5X`>uK)l5 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/partner/pojo/entity/PartnerEntity.class b/target/classes/org/springblade/modules/partner/pojo/entity/PartnerEntity.class new file mode 100644 index 0000000000000000000000000000000000000000..f364ed4b541d3ee577e6e90daf6b413bcdf10178 GIT binary patch literal 12961 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 St(4Owg_~r&HntJ>(EJG=3%%k1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/partner/service/IPartnerService.class b/target/classes/org/springblade/modules/partner/service/IPartnerService.class new file mode 100644 index 0000000000000000000000000000000000000000..3d11237f67710573f543769a4e5e27f5cd06e147 GIT binary patch literal 1294 zcmcIk$xg#C5FM8#lzoR!fD1lw;1J-%BBUaaD#6)JM!}UE8{4VcJ3qkJAaURW_$4I7 zGzp8Ss?tgvENjM-_vTGz=Joyg1ptmccR!o+G`GUzzLbWeVJAZMh0`+#hQULj?Z>=^gS&t5tPbbT$83Na2D5dY*$B_1 zqVZV&wO96f<)MOdQX!d@nO1y;-O TDF$m_q3h%PHyX(}KSX=vHckbW$&SlP=zyEvr7l3cET|)`wDk=_UaE8J4 zbeFer(q0e`-!2{|uoY_=?GFuGg=JMVw z-ok7ZH3xHW7`An^&*Lys!G7Bp9m%`8llU^`p@>W%qe0k*+2jCvtu11?Bf?Nd3|CrX znR+@R^mHHp?&OGD#XQ5cA{P0%Tz)2P4s|pfoWlacxmfzrGx_>Mu`e0oW)T@_L`N9G zAJ_wKtB6FXpJ;xdc`jw|CwIB^L>vg780GVpij6ymcd%H+l7sVjmtn2I8Uq9vYOyqr zBpIp`Gu&!4z5V+lLwY*s zC__OQ^IxLW!=sj|;xfbaA`|z5m^_k(Umj@;mAkq_K0Vt~f&4M)wq^9QX!|s?(9)jp z_e7-ZIG?PT$BImNr_iN6dFiDYlxgpd%kXEB^4$R^P8UU!gb8t~glT}UPZkdh)iARv z!_`8|j0QWy(x9!6!k)doiI{9oA$*I}ZtO_&Sa--xf{ZRB^6>1g+7E zsF$Pfr6boy&;211#dz}2ll}>k9i%`nisEe4BE_=O>o$h_aI!8&8^ipc@kTGMBZ{S- z_DH{BJ{+TY;ce^X@1ggC++Ew%N#x1<%03e3M^pQ{eYqJfJW41;x^hp&ir$YqL7)v4 zSM-!IH2cK=YIDvXI{J;rlzF5!l>B;CmWz+6s49U`3sk73qK*Ea(1=sZsGV7P0rreK zC45SMy9})3Gx|H(27Hb$XhgLPnkc7-C4rS`ZgF+xIjXNvUtK%K*)optb_q{uq1*?y zk%C>y4&-2T6w6pi1uS9}Yb5^56Ondpoz^(b%$8^X+5&tNRr40JjxzVRiJ!g=CZO~yVEpoL20<~&2dRiUhgA#VuUTb8_Utk;axZ9^y<3y_l zuHqVD&eOiH@eTd0R!iwAyJqQTYd2`l>Ni7g9yJ-AngdiT^<6xkWhsW9=Vtgtuo zxQSZ~V{t-ln;|Gw{~MA77^=2=Miqwix@t;>iK^?%t*Bj>dQa3niWIA=A-tNG#pZoe1%PE z_EnRvjc7|FHHnkmbz8nLktPv8odX?seOJzv41KDG6ywYmR!N53u8MR+zH#l`r_MeB zi}upsE}hpDy-z?IG((KidYe2>mXXcOAA^0Nj}-3EYJUSI%+Q*T6A0oSd0E`Y1B%$< znFMm|2b}lE$bP06>#8r4M>mABZ1x`65wgW{G4~Dm6VO_ub#uYi#k}_I1fI}~v)tjH zi7OIrs>MUh5^90+9#MZO%u#-ZQ5c2SL^e$!OSVMTLS^U6C%F0**Z*>y-&;1pKgBB8 OcIK%%g)$a8_VFK4Vy4~z literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/builder/OssBuilder.class b/target/classes/org/springblade/modules/resource/builder/OssBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..254794005440d923ffd325779ec587a7183d98fb GIT binary patch literal 8719 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/builder/SmsBuilder.class b/target/classes/org/springblade/modules/resource/builder/SmsBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..723db874205bdd329cd67650edf01178a024d5d1 GIT binary patch literal 8929 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/controller/AttachController.class b/target/classes/org/springblade/modules/resource/controller/AttachController.class new file mode 100644 index 0000000000000000000000000000000000000000..1d4221d0952029e83c5ba9ee770c3fdebe0177aa GIT binary patch literal 5644 zcmc&&`EwLS6n?!q7M76^OoF$9s7W|l1@TBk35P}(5(owjUbDNyro-;^I!AE555RbX zqE(hvmRjnMh*cg$EcIvq42z`5KVkXx9GlrA?2;<gfU z9^YP?V04A7rS7~%LUBl?cN)w(_94T{LF9^Pm zQFBIjbVhg8^lhEhUU;w5=z6+=Q5-H9*0b=zf$l23RL0qhLfzoy4M$h-_@FZEMe8Pw zR?`~5E_hp=sORnq6N?GX#RXQefl}03jc%b^8LhC595m{m2;Vg)FBNZP1gaG2Nnlb2 z;U67Zj8nTc>Y-jZ)z&8wzs_1(7*onxuh9nD2)Wyi?zlFiwcTSqwSzscF)wbnYjlU& zBHSryVQD2UOmTCe_w{VG0LZHFful!i5=#TjUr$UVU0>2f6H=gH25U z5w|0r+hqpvY)cB$*yH9?hP7W$2dWs5Z;n_!qzE06)?t3cNb!^~Gh8pd%O5hF-Kca*s*GAD^_&Z`aUSaA zelK@rg){D^`13-S#k?^2VN)D3Hcv$C*nC?-4546p2uA$Esw_$?V^~e-7Z?h0Qb=we z(X&}J0F#@z)a^18rS(`Cx7~bRw~C1Dh3~(cee;-iTI{qX3Vx;5&j0r1%&~97us7$t zBlzm#!W40r-?}VRI_k^6#jE&?Zfnpce59%hg0`_vov29qjJnDXRIv~qD&vwYEnb4N z|F5_E{}Y<(thI0@FD2s`1UWNxeD15C7`@ym{b;3ZP!^43+D%oqs*+|^p=Ol6EMALJ zR37{L|Mbn}5k@&hUl!`K~ABC3 z&zzWIw8VmIgk@wHZHXMlhTQ3yg~|Q~PD<@Bz&_Q|B}Tk&>s>;%Se<^`Ki>gvR3CY& zwAA*cVd|z6slj}YGu)IE^}_1M_X{C=0X)YH{`|Iz6c-wmbT3&P^wU8iwy^sLSI z>#BumHqq@sgL9u9J%8?Je742VL8JSimFhclG{AY~5Lk zPtz4K`jf8Qz5Xn9p22@&^f3M=a3|V5U37&Abb5~C6KEEkT6Bh(6hj#oT5_-8>F#;hHd?s3}zI8 zr7@4dGZ^|Lj2a{kg(R{eiSdxcY7zknDnr@5HSz0$Qkya0v;o zMEOFaC|_I<<()NA78j55r4Z%IA<9=8Mfobd7HD>75b^dPIovf(eKmm|jR0*g1-+eK zr#BFsAn30nQq@6!GX#1x1bR#XJ?=%hQ$_hLT$q`nx5tns-tpqSo!-T)N?=<9jEUY~ z=z-pKKN0%@vwqU@6}cq>E>QxPfU4F118^<00*l`BmcH-7Tni_Bfaec!ohWJaBz=VU LKDOzU!gT6if=6O` literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/controller/OssController.class b/target/classes/org/springblade/modules/resource/controller/OssController.class new file mode 100644 index 0000000000000000000000000000000000000000..f5a7702d71c3a5f2d0cb8d9073e8ea69d92a6921 GIT binary patch literal 6684 zcmc&&`+F4C8Ga|XC1Es>K&nEu~t;f{LXVL0Z8?tnJVJ8~XGo7Rf)+r|+4|X7*Bc!}CyonC#5S`M&eM-+909 zd^7+2&lg_-cobhoP$yxnX(bgqW9ddRmQoX%5;raWQR8Fc*03GbaFosBakKx_j0QAD z&?F;*1ri=Eb&xg_*_380mS&q-EAF~+EHjnTEM?HP>BfJO&|=#5ux3r@aZSPl(W;(o zZ?3YHetf&$7PMet1hR~qaI=K&QYS8-bVjkWnT%h=#tx3(E=$d1 zG)uy^uIRWrp(-iWNGgM|aV_rjc1Po8T8XJ(!6$Vl`J6k{$3etaUWAcU=%yQd!8t(<#WlJB7xV-xE~KlxXIR1ED02Y zw-<-!x%7PXHczMv@Q{R?-7@}2P<>nQ2zn#fAhY6cl+aUAbY8j7I(o|XYW+^$N@$Fy zG?i6xX;{9)jyNlNyGKM|zAvK>nVs(KTA0 zekJ+iYVt`LTg4JB*$maHZOUy;h?Sp`5k ziK^7a93n3|Te3!+SR6BI8p)_`bKw=0qT`iZVWWsyE|Z-yMzBl5!UR?1Xi+n%(^tE1 zJ~y{}R1kbd#wea8LCsKODF!!~=$=ht`QC2Ae-67N_>qh~V4Yc05q``x9VPBqDP@y5 z;ll@T(+1tp9qOXKt9yiNC0G;0&hIQQGS!1wrtZ1mx#h5zI@xR{NToHZ8`?lN9n-8G z9=W!t8CO#ys-=r(f3U$B(&Y`ZZ_FObn@( z%A%lI^wT`7Ck-mtB8%5=M36Sr2()k}Z6wEAw`X}sr?nB?))~G&!!Vg<>~V;AeaPWn zL1e#a?Njz^F(sxO2}Lc;Ri4nCe)d5kyP5kFYAQ>T5hc*Xqi%Um>dsg;ro5o5W-hH8 z%05HitF0do`LUJ0j6TSA%0)2jwOzuaX(cqPp1r5UHZ7`~ioIV=CfOBEtW!+YE^<+@ zr(wj-rqimGqdu>m`}oSMlWq#xaZAs5eO&Y9FHhztPrDo4kaCmq;C1XxC{UqRIMg}@ z=W4|)n>+ReSGNZm?G<@892G zoHyJMf}z9`1RE70D4|-uEH&k)4$YprAmKo*vP66*uKyT#u z<-ec3a%@J7d+nDPZ{oS`QMxj9JebgAX=zimhDEPHK@S-UW2oX5RnmGr!K&C6dWH3k z#p0fGv3Nv+Jp1yct6v?>Po127=Odof-l5={S37MAQ6p#h^7N(IV`pdIJ(NE(#aB#= z5z#G;Z>-@D6xZH$KZ>qfx?C6T5WUW=2Ih4-*IX1L?pg}kUPmZs^ZScDJNf3JGafakl891#RP-&s_VsMtoKfCsyV2kSO`- zDAZpJn8stn497iH&i*I$L_#w-@u86CY5}*MIbicNbrnC?`LwxGTpheXDQ;U)UUS{% z*4E-|1;ZqVEUho=j1j_$G1cxfa@)<6*43#d*evlNVN+yUovW661D)Lxx~fFOQIoc^ zLlr$)gTeNVyO2LObM^eG{3mbcUpaH-@agt%K885Q6MWi@ zItans-t!siS5BjO2Ca4Y2bT6v<6EmPV%aqA{FMK%gT}ut`~~{47z5bLyXBrOk{II? zy+Fq}{V&Est})Kp`#8$Npz|lis}5-x{JoooCMRZ|g=FJ-SiHBl!afu_p@(pA&w^w6%X#{i+Oz6iyKS|5V?G-*HMLhbR43s9H&Q0Wi{@nbIA zM$kXOOI+qrr{70+m+-Dz61pCIc#~amc4)`Bat^sLWs; zd91F$AdXgUlnA!RU`c_&62f_%D1jwDgH|+_Fz`mE{uhIvRbcS*fWa@y81zv#jjn8- zV!VVD+S?wS#>1|5X7If_Ok;DYS`3<)E`biuq(GqE--3`v0&ToOUY<7I4B#9N;JoDp z^az)ymOJ=!l-DnLEtI%|c=#1B3CFGt_lb&dbA)@~`r-aMfO|ZE`dPzKEmly7L<=&DU9OxKG=%NeYzsj_lWdF2x)r( zX*P5289|H|t#UKi-hOSX&nT-@8t;~5%# KVdIj3eCfYjqq!si literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/controller/SmsController.class b/target/classes/org/springblade/modules/resource/controller/SmsController.class new file mode 100644 index 0000000000000000000000000000000000000000..2d4493183898678d7de0cc3413ed1dea6c0a0c4c GIT binary patch literal 6705 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 OJVm3=99$NVKmRY9gvKub literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/endpoint/OssEndpoint.class b/target/classes/org/springblade/modules/resource/endpoint/OssEndpoint.class new file mode 100644 index 0000000000000000000000000000000000000000..eb881155aa456ca4221689c29dd00d73b782309c GIT binary patch literal 7399 zcmcgwX?PuF6@DiRx4oS-Ax)Q*DlN7&NfQPLP)JIpEd^7Pv?gt&Wpi>fO{TfIbGb7& zZE*txtyPf4g?&*}6c7*y4G6e`EGnX?fU+nB^@slThx+)QZXoF&N(yB{`=7<0Gy6@W}^({2~_B)#1R@!c5;J;o6Xso!Tz*4U>PIMKt64`M$U4b zd@f}fR%RgU*cs2*?7AC+YYj=qb=T+Z^njJ4lFk{m^!u`+B-qxT#4OBCAgN;xbPcWV zLWhP~o;8w9o1Ueip`mdKj+B$L3_=yVTLa1VIhc#;1Zs2~iCPWICmSxdi5`!b!`AwI zYS{8L%x~!2WsaIg+RO|Zy`F@xy|Hf=>NMyF_uX{xu}9zDclE*jw3>r7YKFP>Y!;?qESddjd-|%qw8qI+SyEoBe4kiTC2@1eWSp zhGR5TrJa#}XV~aeKN{w^8Ot2rtHha$xa~+qdt=P$o_xl$N34x|QdZWpos5d=avduq zq&ny`uqOgY)TXW3~c@U*zqAgD2m)2>M1TWI3# z>#lt3@tX@K3?0Yg1e$O?)ALQNDPp1oYj_x}v~WjulducWs^cV_tf6AS^vp>~+T6d( zN_mXZ3|Us8TCL+$oJMdvsd|g)4QV*GD7Zo{g8)eM+I6gnc6ZvD;W=1~_a|_Mj&)eC z!6-o3nKMVM-A-=U*lqP2Bl)yvXU&{vbcI)bWabT8-sYS=XlKl{tYo-LLmkgl5ddp( zrjCs`OT%1l>&RsD9>H1Wh=zsX4%;ze50uXz(9wZSBst}MtGz{B_6<(jK21>NX!}W8 zFV#zw($ZRV>gYl@EfHR?eK9>LZ)n_<#1?!gfgT;b*h=gL&pMsVAf-pmbl%#$lP9QQ zQ`~WR%=DL`PsfLG4v&kfXX`xAOfhj6OzVZJ4{CRDQWV2q#PANBo4|QG&c_9;bA{ac zB|EBDlOiFf+VXsm9RuQ2ESCyYV_y; z9?#0StN;lx%rjTRg?jtp;-B}j?aY9qu5DT{;ZDu z_#C&GidMZ=Zq!amS)4+hDLvZtWsMF$putw2ge!4X0$yB*@xbvnL?FKMV`n1pJzVHGGG04ZBv(Q&=_p7i^J&?ku-aZ>^}>$nBCPS=d% z1k7hrWP|6h;B?w9d-3u(t%DjFoFUp3jLJ2ydj$y zR?nQ`Vq;i4BiXMe5}~93D4-1jK|1xaNDX(H*#J;Ym*ovP16xe#3!asu`TC%l_t~yZ ztVw27^x-_8seW+ZEDaa@mPvN8*i396Q|D;qL5wfHbK93N8`t6r{^ z%5zeSYs*>d^4<_NEgv%7b(y_APTFc%X%39AK)7Dc^qkzv=B56^%0>;xOmrghZ-O_c z#LSoWrpLM{Z@HdQLlAR05X(ptIkLS7>!yZ(>dG{YEH=UgGl8GdxdQ~@Po4gPE(>yS z{M)1<^Ha-CF7QVo^8d5ku+o+ z3lMj_JCsvsE_jlLM4=_CW~tyN%@&|xYs0iqrIK+vD}x zC*qVYKXn3Qfc3Dz`P`f>KT=}Y0;=MVcz;oxgVWe3^1dJA#Wb6y8Dkpzc({Aj*NC&! zVXI*o3O_|0C$&JsaZ|LbshFdw$xj!tzS8Yv&g`YXr^Yr+JbaV;S`Q2E1}Ed?oOIgC zace^-UryZJ=HQ@}Ge%nt$8=*BT*EU5U1O^$U9iF@MeV`+#{c}l9S85d{@`VIy>s_{ z?_4&{F@%*om9y2`^Wou9ovF}jk5b`miN4rKxemt#zU`NBm;wLS$`>DA)ykO3-?`BE z0c0^M@D1K&DN)Yf1x*h@8$)8%II6g3-T}c!o-hre=lFTO*45Ab>+pM96t51tFn#Y1>lu3e1b z5k5?4ygR^)`}tR?aT~a>q7>x!5%RHz4*5JnKA(`!dDoD~4+U})9u1Qg#m@=KcRwNT^XKaeCGVH zC}9LMPgW_cryLH}%Zc^U!@~NbB3OT10_&PmSlbQ<>ovrB)qjokCnd0U;HiKESC9e1 zfn@~_oUVZtWP^rroL!DC(z`&2_wZ9>j1U)ugz(GAE&Nn^DlE{N4(Lr6Jd?^cj`FRmvexZC}ZT1gn zp+e3sQ-{>|>V+sdPXr~Wjrm|!x&r5#W9jK`lDiLzs?9B9*w$9jQeQEK?aJq{_@9E+ zai4dGJ}*{HgbA*HB{5=&Gr%PBVpzr>3~cWNxF zZBb0xX3XlZN@VqgD60It#*w??kEM(J;zG5xsI)Dq?DjvhY_D8U@ zt+Kw7ncg*q5p|IrgR3q^$FNsjd~6J#tgmby!)5iALWV0CzJ2wTel4@r6eH;m)9$*AXZc#2W6FQlShIsb_o{EHI* zh)~OT6}Hp*DBSf-QSkxn)zYY6QGp&}W_@mT1*of=9>Ld|R&jW1YJM2|BpN<3I3)7= z6zR-<{wgs08Ga_4WHy`S;&N$GYKo)~HVIRUAS8rV11ORNN-*5C?PPaIhHQ4$omp<) z&=yn#K~#{7aw*hSG(w9Z0V=&;Y;F6c{{aE=KiJE2&g{-kZV>e6hwPj=bIyC-_j%s; zIp^fl|6ck8Kpp<2qCmlHE8V8qskE7FYfb2JL+iBSnS^0$X~VWM>6oEq95Z2S&7Jn+ zY=oeoFpMG;E4Zu8a9Z?)8P^?SrJmM1ZT3~nYS^T2*5xd%QBT#DAcztbp)g7jRxtOr z>lw*-$}*FVSaM0WtsrD~+7D;UMBGTzNW*Qdw7O%3k?geE5XNGhit%CGg@}SVU%-Zf zpks8V5{y_u1!Em-BW9%yjjoDyS7%4os+g!?#)w0SxRDSO7VC~4!URkX<7@c3g5rf{ z(sULnh*S&$byiCdcaw=2r-~UYG=*c#%*%9>C-oo1fF4UId zo0z8JzA&bvTtWGWp8JAS5Vpx&E*})cD@F!q;Bszkcj{?9Lnoy(FjGZE7_$%^6~xBGYqv!SW@b{O~LI||B% zMZ&SHgr=uVZ50_|G3W{&@x#BOb(0ZuYDXPr-d=4G4-E3F@AUbb7tRR3=7sSf=5xu7 zx|v{2_?Nsjt3zv$4+W)m z($G7$$>A&||Jt4jCS2a|s!Y-`JB=kNkI+f3m^Sn{1yI2fKRQ`ve8|)%bldi4hubk&M?=)n$HQpB8d5Gw zO@TF>;bDCgiu47GZa}iEqr&Iq{ZZX+XM`cF#Ref+Ptdc9WkQ>NprFVxorDp@kEjg& zJC58qe&+g#m-^jxA_pKXO4)*Q47{nGTREinJQV;{E=i$DqXZv>?;21gJX-1K;jdT#t za_IFpyRTjDzIN$S5YKZDNLyCtvUm_L@YA&`M{ag?^>v*N;>Us$D`m!l*hz!#muo$j z$w?3|c|AEWUcqh^uZFP)dq>&=WNNs_gQb~djLSI|L1-{-QdsV%(1Rw=wiqQvU|$&f z@w$){CbcI3i92LKxS`csi3Fuq$jfLpyH$prvXZvgM&1zH$eSaT_<-`s%@W6ngW@c4 zNI}i8!H!spzI~HxAI1?CM@0c08=ygMO3MwZg?zg^*SH2VX*6XzTaEN;q0>~e1}ml~ zTJ*Fj-m{&>sqBGloU1ev9&sEKQrKy`wnhW7)L8mZZfsRB$tPQRnWt|~yUCP(aLA5N z%^7%@B*jAxcl4$?i;w6=f{9m=lQ_B^{T6kr!t1^NHbh^`KW0g zp=NwL0MEa9x0UtW4Yb^Qb!TqxUN=lJjE0)gEH9E*=q^v+K0Mr;i+A=OxYJP)Wp~9BZ;ggg6`FmWNTzWDu!U(v^0B*-qvQMwas%h zOSgTl+nS@d+1hGdlv-huWtl(d9oyTt`{a$YAKiGdm-NLAJC-)(DHPMV=^y5Gm}ABL zl&uoBr(-?}@ebeq&1WH>^Lr3zj9!4+jWL%oVO`ZlOo~kD#yyq2C<~yex*Oj*jBs_N zvIo`gAsCs{gSqD#tFF=-@Brpw0quOib{PWy5qFAK6*CsAnEgNY6{rZRXn>+}*t_hA z$VHp@yMhx|a{6){mxhYicRxxFU&}5Xcha(vv4?On}xvJD>$Y)~~(X{fzd+%5|5qc3tsB ztZ%G}JQ?|6FZ2M`R7Kh%X0F*0>2#a9)NYDaS9Zhl5_kb>yaXl$+j9`y3zZ9OW5C-n z5l=IWXAs4+n1kmyW3!jDC0@?X;S2#z0JT0c>pXDkBoO(Wb!QHrv!4u`vn~u*ZwW&> z;^boA9NC&{ZjU_kWng%PFzhA_uM&nmgkdjXc#SaZ`if!r%`IT~?eH)Zx!LesWJfOc z7b8E(H9I1^z6=b93BwV>aFj3{BMk2lhIa|W!LJyG-;D@Efw%ofGWoPt&L z;N@Pt=4$u>A!L+rDP&T@ImK14FbX~w{}p>f=$91fkgVLZRHqMQXhN%inO-W-l!-3t ze5Oq50*;)7-{TLoDD<_YfCJpJ6&|k1dU$}Jg*HWnhpfW4s;YA?3Qg+9?VKzh>SPc3 z==JcYZO_T5Cq_}}t`MVWR*WWce-Z8$N_VqLlXF?&edUi?mlyFVCWfLH@piQGW2oo( zRv=NLT(Dgu7oY5o@)i%tJy*%8bScJjz@OyQKT9br=h}ba`(OF@DGj-M)!*=Uj{D5U JKk!ff{2xdARUrTX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/mapper/AttachMapper.class b/target/classes/org/springblade/modules/resource/mapper/AttachMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..135ebdc7fdf9e242ce2baec18a76e58a6c83aa7d GIT binary patch literal 719 zcmcgqOHRWu5FLlo(DG|<0UNww7eImq5>l#Gs>FVhj8aEV9NA8#aw5*af&*|U#5Ad( zyC4=UM)r*5H}B27kI%Pv0Jw!|2!ViWV{_?htExQFn2{_^)@X9lk~57>xqx*|R^EG$ z>1x&{Aq)ge3S6VqSmkn_6qNc9h5}@2N|~T3Rc0DlZW8p$)w*%~V86j0&`}4)IF2;` z?(i3wlK^)S_rQ?H3_Z%H?T0At6;YeQ$hFz2c%Da>aZA7PO3PR|A2E>``IX5QXt5+u z)(IHYEuSH_;suPBDzDHtmPx+;KgpXv2)$!vFP+%ET}6EZ?w0 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/resource/mapper/OssMapper.class b/target/classes/org/springblade/modules/resource/mapper/OssMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..35ee21ee1f5f5bdfb4787de4764869f3c7604079 GIT binary patch literal 695 zcmcgq!A`?440XCe>0o301zdo%M~Ystx__lw?( zVJu)?;TEOFrj*OPqD_e5P=MT+TIOhKRhU-RyBve^R=1u%+*hYN^fa^*F!iLlnwzh% zBmwq3+tY&r78p=IbOmX)7rr%>kz3Q@e_W;)Sr5DoO3O_7kTR78g(p+2&|yu1oEI>* zJ(!X493*R1HW*sR@Lv8I-t}Mk-7=x)f#Z+mr29l2R{Xt~-_E5bsIcp_O}ojHb$>GV xO0!lo&JJt7>@?@|5HMmp;Oi57LNOdc1PMn;1QULa*-qFZn6eGt3{LyZ{1a%G;fnwO literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/mapper/OssMapper.xml b/target/classes/org/springblade/modules/resource/mapper/OssMapper.xml new file mode 100644 index 0000000..d16260b --- /dev/null +++ b/target/classes/org/springblade/modules/resource/mapper/OssMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/resource/mapper/SmsMapper.class b/target/classes/org/springblade/modules/resource/mapper/SmsMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b59a4fc393438c4e0ba255fd5971263cbb136b91 GIT binary patch literal 695 zcmcgq!A`?440XCe*0Z|71SRou1OX6@whsymr` xrCF;fXZtl@wwm*K2pF&(@bw8kp%jiFfe}Ze1jhUvvz@RdFk$PxDV%nh*(Xzz;d=l8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/mapper/SmsMapper.xml b/target/classes/org/springblade/modules/resource/mapper/SmsMapper.xml new file mode 100644 index 0000000..568cb3c --- /dev/null +++ b/target/classes/org/springblade/modules/resource/mapper/SmsMapper.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/resource/pojo/entity/Attach.class b/target/classes/org/springblade/modules/resource/pojo/entity/Attach.class new file mode 100644 index 0000000000000000000000000000000000000000..c7d6d9473d9f7b86b624426c5a36ea0a27a53e25 GIT binary patch literal 4641 zcmcIo-)|gO75>KF-I-m_+Kv+^*)|Dv*%JRs2Aa0eaSTZlhdQ;LG)^371MPTs@J_rt zv)!3>n^M|B3oR{eBM?%7qN)NNV?mgc*cQ(KO*ZaQ#Fpbx8=s~ZFl#Vnq3MRb9is9EAj=Qp4waT_p@*1`g z*skRUMy+m~52YD5aDpoeGDjWP2|ll&cXVti3k_KnIURk_6&%^@spgfNRogcjw(m6? zCEKWbmp#J{T^YxNz$#S~q^gd)s$gjDvbAOzRm)v576TE@lyKj#V?g-Mmc5$gxEC5# zF}p*@keE%mR?QX@yL1eT3EgWrD~@Yb7b3+T9eYE2`w1?|cRW|XZ_#lp_9@6&VGxVX zleU7vSOjw(-=8D$fR0b#HU;X69n6J+?iwA70i#d_^mZMe6i}VeldWil;tn03YWWax ziMdf7V`6TA;4`t9g>FK}WXsV^D{P@Sti!;k7366ow@*es)D=<~`w(+|r;a1IOTnI+ zwQ8U6+>#Ysbb<;cKVWiw1y7G|UCRGqCXDDm?Akp#K8w#O&`Op&^H|fWDj1GOb!Pdp zT?(eg9ul-Qbxa9x#ui9FM>?A-$i~4Ad8C0rAJcIh_tAC5^113Vb4=FG3aeu@@$H6V zRhR6BV8w;mlM0m6+}qanELqj2o#r-*e~N;_xh9EQvzHv-S+3g0UDpe&fTrBX$vMX} z{Ku`86}w@q9Wgx1H>?i8sM%%5G8Rh}yJk%(=quZPso~UxHTm+lA3gu4U*Fhx zMKo%ci}WFigrz}6yfh@VT@Xwa0r4`}8Rw1U9ABvgo(zEb^}72^#4QDBFR0iJzEZ5e z*wqw5P1jU51j(+IlWIBW4;Af3MR!sgn~}DnYq9xAtsLwKZR6dGp-Mpaq&35EoAKf>!XQP)NuczaC^{xOJc%BW ziD2`WEdT3UKPQ9k^SrL_q2Ee#WVD3_3iXR>rugv#x75PE;-5w|x~aE4X9J zJ|!(*1>4YpkB5?2a<4GLbE=0OQ^hSfi5Vz3#ZeEw$ctYI9M5vx$LDEY5BQj)f=B#T z#XJ=}<+mypsNiY8RdI$2p7vW6XQ|+Uzg6)dc5ss4LA;-1Tn3*CpXu@Upu7_XzR0^! zg9r9`-i3PtZ~;qvD&q5i_ip1~LA_384?4#8BpUOBA;CDm*?20^m>(4h#)F%Uk0l!O z>m$K<=Vs%XL}PxQBpC1BYW%`Eat!!R@+~w2xd4g)T28yWF{5m$G0Y zm&2jUuOz$NyMdUg()igjM*u+@V$-DH&K;X6X#$A1JX8_TVu7h%)DTaTopo zn^Fo7;$3`=QW_WWORP}JU=3GMp`_v|yab1mhM!;+mnmiO7A;pPv@1KvUK!|!KtG>Z@w@s zIJ~fLaH>LDX@e8%P!HX}iATl!elsN$g;b=`1lgou`O@+>sc3h9=rXl6oHrmZ6T zq}4%F4OJvwWTm!Lw6=KjP;^N`H?%)#?k%_j&q+^w=iwyaHDRP0t$N$3hro?}> zB&%u89epz7@S5f#k#*4Pa literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/pojo/entity/Oss.class b/target/classes/org/springblade/modules/resource/pojo/entity/Oss.class new file mode 100644 index 0000000000000000000000000000000000000000..98a69b6c1823c3356c4f5c74aa324e10eae89056 GIT binary patch literal 6653 zcmd5>TXYlG6+PG1Vm8G$W|n zw3wE>+NL2XB`Hlp)6zg%8ld4(=wqcn^zq%V{&pGD)sKF6ttNEexiivOnt=P!wF-=U z?%Des>7IMexku*DpIrGJ5%tmKIMq>oltMCvDZ;4RERL&Ip_s{!k7o5TLrt4SL$!^( zp10LpLEYv^8}fF>o?;YPlgVf7M;O&F?c5O~iDFTT%akCQ(f!q)a^_emYglU0u*_01 zZKwrvuc;c2D|NGFF_O}{ZH${mcy1lqtMAj*teziN2lLPx#a{jf4Kg)S6QihUS^egi z!KlT@9I^QacZe-AwQ{0liRZcHX#-ZwxshgHDN{kzJe>n*4OFMm=^TNRS%VkpOe!M;S2%U&T+Z?(Z z3(j6C(*vB%y?Yzx`Uhoti0j*+-&P$FPWY@$4|9SH!a6S~9O#v4jR%Z)apAxtGCj(H zBrMjKL&K4EGOg!`#C`GTaOGn%ZQ#lnlv|wuaqZ`1+E~%@7_}f-AD8I~8e+5{r%xLF zW**71GhpA6wxnknwfi@?d33Ll zwtG8w^Ag@F(+DR=49>LTw4Js_X$PaGN*xIU&fX={=V>=wPv{l`$jb;7Jjktf!Nf9( z89lqhC|bza?SqdoVvplUy-4rSvn3;p6XAatBV}s|MVvEsWUS0+)>xO%o3?Jl6i2db zC}XPDetjGTtnPb2HFZnXD+D!XjAe9nBt2o|^j>7>m|>-hnF6;)+Fg5jdgk0aGcUa` zd+yg*UcYeY+Lgnzzd1Vd>ZS5>=B=|cZ%?BS%$ztn``gz9$5X~;-@o$rH_p!-eg&JI zxpHLo$SJ-Znd8Tg&wemHd-5!THgn>|YagCs6cVv$9LnU4O{LtZQQW3uN4&|HX+%Uv zT(EYPA$uZ&Ev_8;Z#x~|sO2y84*$7&b>7KOZ`iOW%&{$c5e>%1fuQ7JSuXiG3E}1r zx8v@;N=JQTRa4)H0@UTI7Rz!iD zMQ1ea38M)2Jb0-}!*6i(K85TM%56R=@XFeOz2?rywXY~T970W_NB0+0sBq}=@( zH43UvBPivopiJ>=950o70jDV3_*HT7RwAAW_ifyj1BvSbry?+KnQ%c7@G>Zt$q`#m zPY&w^H$lT&whj(&z+ntJ_m5S|+Bh&@jHOgLp0QLVbS3@<7PX}p}bCr0W}+RUk=x|z$2nI$zhHHrpe6|yCNw@{sJ z@v9aE6yC?X5VqrtDbHXZkl}FV%;oFn-bKvUo2G4H9|ciDR%3)t$LSaJL6pw$n*?>A zs`SQ8exEsMs3LvEBTa~aNAVD2%taZ z^We32pUQR7uV=F(8QbWU=$DM9vFW8=9rdwgixCRm#<=JmDVJ-Glq<_e$`|D$<%`OZ zIy|15To6YpBz~lQtP?ppn9m!<{;Y0Uh83j?jP9$6Y*4_Wgf@QX&8f&-5nZ|)lR+JB zoCGbTr|ApC=!;m@(KC23abm4ID5FuxX^X}HU|6gL3;-AoYk@rgFd)_f;{Y%l)&dFu zjEA+rA^?~WYk>&>m=SA%3;>LZwZL8g7#M4TNqi<$0!8qe#okr?WcV5GxCqxem~$dmspTXkm9P@=kydC?kXC4t z66GYxB}Emc|BlT&GAoXcYN+TyVxuiy=$wykNHG{NPYf+jxsl_EVD=j`!zt##;zt*O-a#EX1 zYE{~NqyeoRqyeo%Y3HO4m(;Fwc%;y27O)=$qviqJlmq8A`V={a^My$DI7AJPqa2~v#S zrGL@OkmB?a{gu82DM451FZ69lGR@Eh`VOQd{e#ZXE07vkoDS1>AvLll@Lz@0#8jGu zcAA>mgJjTakXqO_8lcx9wX)r`mc9q6jZI5DE2=^_e7OM))o{RLDp%7iGs0V497 zpf?dti6!X=kPuKN(J@55o|e!*k=DEj)**f0f)vKLip%siqzLV&ckq`N!RsiMm41pE}=n+mO}o jA;(WzbjthU`#${)3<=tw<2gqkV#SAt^K_AZMaq8wACW*+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/pojo/entity/Sms.class b/target/classes/org/springblade/modules/resource/pojo/entity/Sms.class new file mode 100644 index 0000000000000000000000000000000000000000..d96ea55520cd4c023619805b7be4669e6c968dea GIT binary patch literal 5585 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 Wql8UtQ7_g>_Q@UFctrUzeDg0+C7CS% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/pojo/vo/AttachVO.class b/target/classes/org/springblade/modules/resource/pojo/vo/AttachVO.class new file mode 100644 index 0000000000000000000000000000000000000000..59e754758a00717ef59cddfa78c99f6be245c3a2 GIT binary patch literal 1133 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/context/OssContext.class b/target/classes/org/springblade/modules/resource/rule/context/OssContext.class new file mode 100644 index 0000000000000000000000000000000000000000..9b69732f32049cf9034da15ca3ed2c2c6d468572 GIT binary patch literal 5945 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/context/SmsContext.class b/target/classes/org/springblade/modules/resource/rule/context/SmsContext.class new file mode 100644 index 0000000000000000000000000000000000000000..62ca5af8611a142e13b5004841ff044e2bd2bee9 GIT binary patch literal 5990 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 DltMm# literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/AliOssRule.class b/target/classes/org/springblade/modules/resource/rule/oss/AliOssRule.class new file mode 100644 index 0000000000000000000000000000000000000000..2db3da6d398a462ecbe20c4c5f2ac30caefd22c1 GIT binary patch literal 2913 zcma)8TXz#x6#h<|FeMBYN)bXq1%Wmc816z+kTw*dq!*hSML?M*r|pzvCd^Er^{$|J z!3TNr!Q~Ua_~O!sROwpkTE6)^)Fu81m*2^y326}WaB|L^y}$kK%h~7r{_nk?0UXEY zA+(@XLqJCmD+IdJPR^Kja^_57(#TrAoXR@ajkM!RW5mhGxRc8}wzPeL6@8X%`6mQg zdm_x-tkJO+9rTG1#3O~CNaB$!^3JSdFcy|Sube3%b?R7;Cj~-fq%yNe6SPuDl?$bq zRGf%u*eI~O(ejdP-gWYxvNgtubbU*DA#6Zv2wm8$VT+EZ@U+0bMu26BXrL~zihKv{ zOy03nZaYc17P_RbQcCwWV5^R8c$VT`z4-e2Kv$$ADMf0Bj-858C*dbt)AptuH&?Zz z0DE*q6ksO-n+SBFSI2IJpcA1#otB<=PR=XMy*dn~sZ+CVqYL|W9H?p}W!jZ~MdOf; z!&QyCjV?T=g?J2&^T{usKH|o25qymRg|aY$VkR{5GZ}2X&lQl4~fL zbQF~dD<_?TuQt!({MxWIZU zoXuo;zN^d>svoeowX9*SfW9`NycM}ScYCSp1`Fe%#OusnUJ}B*7R9pX-p}K(*kZ! zqk$!NV#}J*5?+&*@ITTIG#iy!4VI2sTw(iU39z$NnF&OC9&WWxkS?=M;=CLL+7p&7 zM+&(~=}wrFswsCQoV1xunXaYQm5%{`#$x3kS%$x?PnGzp(^YHqF#(NEt4_c^lrG;O z<%S=9Ou&j#-3>(0R+VeR+qfm#HRq5gadmpaZEX52t zy_gc%-dHrvs#0Jb`(Wk#Efq8`ibmx}9RY!raRvuEaFn>)9c|C;ot%;N3}(y&xf^eV9x?%w5>Nx#hIGJDZY__LyXd4wBramaSU4! z6*`4#4f7NGtV-oTp-@f~#IExgUJ-zCd;Xh$Qy mhWGG3+VBB+2Z(lqI3IG}f{$>E|7-Z|W3E2&@F_m?aQi<+(N0tV literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/AmazonS3Rule.class b/target/classes/org/springblade/modules/resource/rule/oss/AmazonS3Rule.class new file mode 100644 index 0000000000000000000000000000000000000000..5589659ad58da9d95894df0683c48927d6b7993e GIT binary patch literal 4332 zcmbVQ>w6qk8ULMRlS!88B_$;+p+ccR(v}X8iX~~G$u=#a+oWXEl-4TF?w%ym?#?VT zvq^&}h*iAbP!unC7w-z{q&8ma1$`dmSAyBT zJntJ5o|lf6NhEQd23^MnY!tZv>Tn#-Glom%la8Gom?W^k##!lCAxETX3*6C{Icv_F zM$xoqjdaoUyrKTOFB7@5GVc#1p<%O*E^MJygrH&qd;9t`SJb2IoOKL(!}1rEIU!QF zj;**sAQ>S=n)Nq93!SQr2)#mfMLMM6MuFXN$t$#F*C~5S)^RSR>s!)Gq6e)>^x|d> z+jP7Iw+P%52WSXIOm%_lsPCvL&b@Yuet7u2lXBK_Y(;-i$FQRBBz^Q%Lt5ZYRaa)1t>%Jfm=%A{7%@F7KYTKq zc4a{&ky#95xl6&^o5To?sG@wBMcKr=jnPq6_=v#vwUW|Bi`cA+8EdxUntrI}7+O1U zOrVR>vjfw6v(~IF-KoVgO&-I9j^oONE}9VSOw3EywF=ywL{`I;juV&`U@6xdx&C1UQk~o8RXn3cN$MG(Ko$85EZWfsDi%Iyu!o{w=)@xTlp-&cYUc;h}C-H7(@@gv^VJO41L7O*=6*<9( z+|YNrzS&hNh%t%x=y)%l7Pv{7c--{ovi@RGM$Kl_HgiSEOg>oe*cx|S<7UNCEsIdn z`*b{u_Y3qWNl^x`$ykA@xGS4bU9+P!e4wF@!{($qgU@!6uj@`cbLQCv+$1jGIn|p! z#Ksoas>WT%H>8e&Nqj`dNAWR%O`(aaO;6y=Re;olU$coy^e1$D5}y)i3)@8ec&p9< z8a^X%+uB5H7B&r^6?h=tC>l;!UzW;6)0YN&L_uZ;rmF8rJdYQY_dYN1RNU}p@`f4) zk(F^^&FHW`S(B+DjERO9b$k(DV%K4>=TuSCQJ}wXeYiS8!m#V4IT|vq8OxUAl~RsJ zi7E|&Eg2_o7No3X|c=WW(kc#=fZOLjnDM@(4Lq@{*5aW$bDv$!GN>s1V0yn)Rqf9{xB4wFd3 z&pF)3E3m1nH3SVaQ4{BAxG1oB^_Yl`c~0@8=kv0xrY29rGCjCTva&;}Y|_Co3HAN^;urELOs>Z9A&D5|!t2=*@;Zm$^b?WUBYDbnW&D$mmppVx4*)t+6JfZm-y5p0(=!;d|W@ijGj|VNDU@ZiQNHi3UF(<*b(5aaIrJM-QnV%00ZIT{s0ezi~Ru} zTE@t!R3gA3^%z~k;lZ|Lj1lqZV0)^4OD4ehMLfEUlOa|3IDHXse-ZktFaylKjE#zu z-_8cGm+(XY_cA6E7cn2;DXvoO0iNOSGA^7-wJqU;0Y1#v03W}MPY-I#c>YvMqlQcP z++fG9R7Zd>DF3uV`6q`P`5dHEhp-9z(T#_&4F`F78m3D}cs)sTbqJ4O6j>a>3?7EV zVSOG)@idNcco@gGkiicyfq?V-Yj_lY<;nLtso%gf{*A{%-=B&6TlIYs|G+o!O~zmo z{!adHGY;MO8@_{=sn<3ld>7wCg3_MF_ley`nTz-#e#D5q&U@~U@e^L2-{AkB;uUn@ zRoZX@EpOrlXd055diHAgnT8$>ztE^}Lc?SS7Wq%Z(wj7Q9lEx9I+Eg-gicV=OH}Mv kT({uYP=CYN%x}Nt+hq^GgXQ7(_yfNt`Sm3Jh(96qKbKG>4gdfE literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/FinallyOssRule.class b/target/classes/org/springblade/modules/resource/rule/oss/FinallyOssRule.class new file mode 100644 index 0000000000000000000000000000000000000000..64a6271895afcc31284f4466f03c0e8430ea76b6 GIT binary patch literal 2497 zcmb7FT~iZR7=8{UY#JAXL9uCTTU(WY=&JaEV6hUVr43*SVo}?=35T$-*-f(>D>L=Z z>7{zr8E<-1o!+(MOb4rut=Ih@RR2OR`th7>0s-Qv40E#Qyx-6J_2<72e+TdZ+$fsR ztRbW$j23~;oLev!-GVt+&KkDm%URp~#>lxPX^gouGUXPEt|J{^pyh<+SpJ|ubFynH ziU?lQ5Y@2>x>${Sv>WI6e)ZO%xe;Len7=@}*Ix#dz$8YNy0*Yk{F%Q041%K(W4|<4wgHBkQCr6m8R&ieJ%o=y)6N2y7y4#7mjEIXNS+t)`~}#t?bw z9d+%*dm7%?u?xFtY!#O(hk%|9c&ALeOq7|k3!Bi1q=qgX-PkM8T9K;xM;00u*i#>O z75oN)YuG2SYkk%$WuuZz9BT2Y*bE&9aF8f_6^Lpifv#lwWpoUvf{US7$6*{{B?d?f z940#JuLGpi;*JniO8d&(?X z>Rx>e`E!;h(EsB6K4-EpJzBBk=A=h85x?4PEbt8)8|Ie*vycT2ZD4<4fmO^orsI#W zf#Y>hRB>gGSBFtBYF;+RjT218NH2qt6ALWW8k#h{7InbTu@>jWVh!taYb8%?botdm z7^MA?SJ&Gx7fM%a#y4{d9Hf={(7?7iu)ZH&lo`(GmB#Qi%nG!xPRkX(3NapfleIZc@+IP z#-ZDX6pmwrw=Xb&JYPzb{FW0=1v^3M!wfKkNus1U&tZyRBj~NXwUFmp6^aPTIFHW> zNgNB9#s$K%9kaNIOK7I$%d~KbzI{oVjuqNhE40g`nWXJP^M7@+k literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/HuaweiObsRule.class b/target/classes/org/springblade/modules/resource/rule/oss/HuaweiObsRule.class new file mode 100644 index 0000000000000000000000000000000000000000..780c9948cbe7b039966cfd2878cfc7e196e44e3c GIT binary patch literal 2671 zcma)8OLG%P5dOxJED&oR#>5eZB!mEx4J@zlkbqzt6CT2LEThB;1Xl9cUL)-)yDP9m zo`gd#$t_2?hUwwnX4EJ3G_;b@w;jJ@d!EPk#k) z1`lHBKq!i^h6p+Z_7&`szG#<>xk_Fynx32~+IRJW?MQvpo|eOQscc))@&r0ho0jRF z6$mAgxhU2NoV1-;-7Pz&HJdLQ(^47^2v$VGFt$79r@Fz_CO!^Fl|;_Pni=4%1sy@dQXc8n)pTfmju(>RGZ4 zTEMD`BA|upN;DnCs{;GiTCU5M9lPu*TjQKa$1|lHLoY%x^kGL7J2kw9*98u(1!y^o zHLeS6puZ#5blEo5@%GT+26b6aohrlY#V!qRVmHOzX7O#!MAxK~Ipx$I4SSVGJ%pch z49lIdozjXO1(?u~RDeAMY$MQz0S)^Vf<}bFLP5Ij6}hN14{Ferrbf-CjXoUKaAZXz zD+`YFY8uBhyuG5)w9$tX8cr&WF4`EX6mCmz)F?@1B&8v(RJv%Su@l7^fnBOt?7XYH z(z#>OF`b#n{F^anD~{orwiUx^bu_)$p=N^`h7?qdx^cy{T0gI01Q!Ih(8N_^fe04U zlIl#uaN<%j7Xp4CSCW@BTvn2sDVepEo0Dcq+LZt%qv5LBR75r~Y667#=azyP*YKW_ z+D55M(?yo_iZvyvB(fSNSB%h|5y!Ee3F$eDQRD=+w+*^zvI-UTFOTP zm)oR9YiecM!Zvf6R&C~nK>ym*uGdDr8%)YlxoCKd<~nXFH*N`diS{M}&(kfXUI%Sc zaQ`E{s+3g$M3L7}z%-i^31{7|_$H7{Jl|@QAme5l472+RY|5CH9Ice{(wQ{!s^xWO z?1E9u8IGy`Yl~rT&SdVKYQb;m0)fBw+D@7lh%#NMJdu?KP^oMoQ^eBMtER965-MEEHrpXbe%@6WH2l(DfZkWrNH1f*GVoy(ScS z2bF?Ae4@fDt0Z%#YcgpDEz9|c)_JX?N>UA*o)`1$}xp`INaCI57O1;3I0C5R`%_6$e04IIEM zN3AM=IhgztnCEVXQWg$@)^Y9U{_d!c^}ivS8St^`Du=D3%jlh2LOd0Yhxhx~?&FPM z@|KT%!KB~EfnajT$I)PN+{dY9oTk>2SGXGb z+Xuhhqdvysk##;MmT_%LslBg;58{y}Or<)PaeXS@84n*=!pEuTK%A}`jYxBRH~@!9 z&k=0GQS{(AcH#u@&yytQ6vq?>c^h5k!!3)mxPfzweF#OIhl>lihl{w+-EWb>L*50C zF^(sg2$-9wvQuL&hM#bodORKch!QNa*n>x~QAUV1f50bj5T=!zME1z-L;6<19rFE{ mJ?$D;HM(cFsS1L4ACS)P%D8u z@kHjmN>rR($Dk`Le_z=WAVqZyWlnv=!H> zcuLkPH`4Vj=|wPt-Uvo!E)o!C%H-Ow?nG>Q^_-8F4*%W=y`aui@(M?wKc3D|{T6caio z6@pHL`9eW@-V3>}IHzzF>`$jO2${RYP!9e0m7+8#!6U&pNC=%o?vu0T;AxRx6#nMk9?Jtior{S@V&oNKkEypOUJgjG9x?~0Qq2;SqsVH56t8`~K zn(GU73c5CpMGZ?jp5P0C%l}6#a7H!*HQmkg@0ayV$8)@380np&%3!m^q+jd;)|m#U zFlAXs7ApdMfd>RGonSxH{Y!zdW%q0gc9}dQoAnx7m7IOr8?2vrQAUmr?|# z-w$!D!zg{os+t^UOb2`SII-@?)9Q5sQzvtF3mr`l3iGHWFLqBGl2J}8q+=&bS!vPH zq{z}*lf}mnZ|@}&Sh%VV-*F?28P%D9kSWZn7YB$N-p>JFF*fv_>QgfnQcoqn2eH9 z)f(*x*Eo)Q`0oH*S;Yu*-Q>yOSMb|6egN@n@ca!|^$d3DZ@KDq0=&X^JPCZy*B-?z zMhT?xZhw48tKsY)&@vM>3@mfGkUhl6<^f{KP%JcA!-q9o4K~+nxEXB5YxpeK+^S(F z*xak(!Ebn2r(WP^oIk!kts#@_JH+Z{tdA@QSWAW{V&NKIwiI5#AQibyE2lAl8ANdp zS8$)BYL+%W;F`od8~=0uKgwbbFYy>Zu-6xP>tYdmY}3lvr*(rG#zx?f>PH$qfL)l# z)9@%H3gqi0{wwac5aMYV+t{HyT=H9_4dXS@LgXxw(&oO0SQUN;dG`}ft_KgkhbrFi MHp1I9b$g50zggGIbpQYW literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/OssBuildRule.class b/target/classes/org/springblade/modules/resource/rule/oss/OssBuildRule.class new file mode 100644 index 0000000000000000000000000000000000000000..9fb2333ec564233c1a4822215280837fa2b72f8b GIT binary patch literal 1796 zcmb7EU2hvj6g?9sUdP=wjY%lwqfG-XcG_gyI8DE5)w#76|X!&RV1E}K!FEWYDD3g-$8=-5g_h3TRSw7T5M@{_RQTo=bk%fe*fpe zLjV`?eiR)DY3S6^g)qagDXYestn%f0*|05Nd|=B}!<4Qt@^VQOS1sRMPRnXdI>PZ8 z!c&%G`O^%cc%q~s!Z0D-is98<%c+!Yz9fvQT&ml`GhE@xx@!u;O>XyAUPl*{0RD>U-oDtk%I3CZf@SEJQxl=LHHut>A z#15oTUJ<508HI*}I(iYKswf2|Wf+Sma!=$@lPl67H7tKkQK3wI=-2S9jzf5k;q?Da zz_3r1z@EeZNn6-mvdt`+jdWCST9 z#jE@y=@gTSl!i1za!iMy71 z55P`;*`gCWv8zdY`%m?m6m9utl9Z{r(iEPzZE}Xb|D3yk7#+^Qy4&Wu@Ra-Q_B-tu zA{GpzPfqc;#fWUt=jM$$UJJ^P7MqvLB})m^yR)(p#HAdjIOv2x_3b%IRIfAv-D=rlhLzl=sws_&E>afRLejDZ_}u62Ox(zdSl3=KqGz3 z4k1K;;LcD?YoPl#Xt|RO^vs=V;F$&v|BRyz9KVNf?A7%aln9_xZD=Hb&a|Oq0FAey zi2#~xLl*<+_4N(RT#dbPAD4b5Iw7bMrqM&=Fx5RmGXqD-*n>EOQTm@n5*dtPmS*o_ z9M^FUH!uMQ=kW;{_ft$YOCQ)SFDN}q_&c~v#rNQ2%%ezJF3=ta5&j#48Z-@kG4&&S Xk?;7W>J-qiX;~nqH literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/OssCacheRule.class b/target/classes/org/springblade/modules/resource/rule/oss/OssCacheRule.class new file mode 100644 index 0000000000000000000000000000000000000000..35be2b434eda0e80663cf9df51e753c431cf956b GIT binary patch literal 1035 zcmbW0%Wl&^6o&sv(>l2BE%ZXm{nC=Aw6j1$hyoIggoI>TsXa%<#r8xVhr%1M zM?$b?Td8b{gb-rQdlX&*AZpr$#N`p>KM_nDuIAs{RtzwnlWf-U|HXM`~ZtA4X zO*c_-yBUg>LH$F!AS#Jc7Y%X0Z(s_9!uG(c=>42v13GO3||UmT-o_ zrHysDo#kJwQKK2gd=<;}UeuJyBhj>lm38)el_wShPjrCLnPaleIUV~fj3*)}BRZdt%{GR5D?JC3U zW-m@vBpb>oD*av@>r|vl$5i=s|47M-gBb4TGCq(krBF~bSdZF%a1}!_7LjfIM!o+1 z)2scRH~TN&eS5uwizLhfy%vyV_L-19OCG0{(K=ZD0QSCre2%O=1{QFhtd|Ag0zp9E zmvEV^{kcOh3!ST$ojsiR0>@w4!`L29zQs^^cDH8?5{SMT!q#M*$0^DygDav*9a}&q#54G?rAhAwjC@p4)x<+;g9QJ$?8GfE)NSg#-o+ zBuxxrNMNF-8rFeo*mql1%XLEem8-t9YRZ?^hN{b=YBZH6y-;B2y5l+FO@V=Iu43Q? zfosa&vx27YczadXu1l+->Md6WmM;U<@@vxaDH6;J<-O3_41!|kGldjR8!$}_w&mL1o>g@1ASmSePByFivKAInFfd|b z6k~LX5X2Oi&*n{|2WiV!P3eb@BzZ=U+xy&~GurO=jvWY906Bz9giZy7a+R?4pZi_f9++70;0{MS+ zJSx~_UChj{uCi0Ka@E8&yeE*{*}lCZaJDa|Ju>qs=$5)JaK7LDLxo&Lm)%Vh@8bi3 zR1lS2r;PL2W0luUM8qeiQpi;_n`IM4&1P_QsZ=JNWHAa-y5x9rqt&QNf5)!s_82Rv zn(bC>-_de>m<;baOwrY2CQt5NU8yvG*mDH|gN3UT$6AXUyVHA%&xv?^8W41Vb_A|G z8{%jOvRL@E*Fpj_$3VKlJgMafP!8?d*XwpOj!N}mU`wHx4ze*je|1{(kX literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/OssReadRule.class b/target/classes/org/springblade/modules/resource/rule/oss/OssReadRule.class new file mode 100644 index 0000000000000000000000000000000000000000..a39d313c2a3f432628ede2221a7d0b2acdc66d38 GIT binary patch literal 2019 zcmb7F-&0#f6#h0O+z^t6riB`7Td9-+r7VSFF+sFV!BPWM0?eRK%VmX&H+N(1rk4M~ z86TW+^i5~<#Tlp58HcL%2haW=X#FSDv)m+wBu;TAIrr|Kv*�oNv$l{qLWC1@Jmn zVhEwlLO6~H+8Hj}s>pX#QEXM#x$9{8zN-K8iD3{!7OuoGjI00UNmHua zq~-J3if1!Kw}d}aEa@GFo`Lrc6}*<-yB0XZcuQQa+T`+qElb)_9xur9eaDtFwT&pQ zk<-OO;m@Bx-T&_Mrw^a(fAZP>*N>il|4nZUBN#X2zs}HoxT*oGvV*G(;T%z)I+b@k zxlk#t%kr{VH+)Uyl`Y&=QFhF_x*676j?Zu---z^BmmtevmCDMNKKY1h=?PEIZJ1Dv zgeS|+Dv<-4W{w%Lnf)dxwKkw@GKf^89O>fv5I-3@$TTPHElIG(o*%P;UF46_3iwV$ zZaUwJXLP3LXsLHfwQ{ceQsm zmS;HithaRy4UxjZtekZW)w<|n)&}K>F=t3GRp`zZ<*MU5M8BJ!r?fB^fS5C$Z#l?C z-G=9@!@WMz31`TmmUdEmYmtcio+wiI?uOg*$CqFI_3g*#rLh^J4+%&z^93O}K`TyA zM$gF5W3WdD>Q_k`HE1f_AQ=w~Fp1Y_#gHLw$Q)*85r##3D?_`m_K?UArINcixrgNZ z@GiO+NTf62t5<%+OCjvxVkVLf*A{)5_Q)^jUu#RZ7uLe*NZ|(ze1XIhjI5Tc+A^SPfod^4e!de!h77`Yc p7S0{~E?Vd#{ayNpDe~LoW1ikaSimAZyJ+tot={pmgo2Ode*v~!JBI)O literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/OssTemplateRule.class b/target/classes/org/springblade/modules/resource/rule/oss/OssTemplateRule.class new file mode 100644 index 0000000000000000000000000000000000000000..2de2dae74661a60808a774aec737221b92f4a2e5 GIT binary patch literal 1327 zcma)6TTc@~6#k|yE|zk!TokXM2rVFk;svdmD1oO!6H1!s+jbet;_gnfGevmw2N-!X z@lB(=_+m&57)jJ;{|5wrgvPUNxun#DY%)7%&dhhteBU|q>+iSk03KjGiV(sEA~7`J z1jB$OUA`h+bD@;yj;+NrN50^e^aY=h^I}4}Md=AoGn}|@d$xYa5Kbg>1{xX0rC;Ex z=-XZ)@0jy~yK=td2*rJ&WXZP#_sJwMPm5*EGfGWVrcp%EWFQtpGg=t#9uG$<6=2K> zx9FH!%n~+3OF`%=>SJMg3|ABBMRUpIj_DQngkvg|N*-Ft>_sd#u z6y3NOXnv_CY*q*QrII;@$OI|Q(3-YAF;jB$!k;tq0m<>Sv`i;w`gUMf7bAMXRt%{l zRMoG78twx1Qp82kmzGe3(^M^!ii-D+iF&lQ2(*b}?Ntdw{}HIVS~4_ewP`({HjCv8 z8W{ecqBU1xi0(_E3~+|_g9_aD(5`H`DW>dz(vHkQjsX`V!4Zb;*^;MiSLAGE6V;DA zPiiv|n;05P*X>nve-BSr`**)f5YG=*m~LBOJm>$lDJG`tg-=D&_@>aBY8vR!!Hr059l3?8yh(J z6GnPy1Fh4;U(x;+&0FYx5(t@d{{#D9sORPb0;EHm$=to?-gD16zjJ=)-oO8S^cR3B zSV8#Epun%95dnri-Og(}cAjq)vzlpmV#Bn*&~)1o+LE0U2|Hh~En#^Kfl0$MylIAp zXn!V%CNwJus%U}AFm5}WnpxcY2WeB~lByw6T^0F)$vq+U<=#0Jui#ZmaoG&zlT4fntzd848kNTIb|kWR z3(n(p1wAS*;37k7DPz?bsBC1Mp|=)WCBb#TDd=Ok^t>S`=x4Za{8WidHkF=&tRh!1 zc%-J~NP-x~hyqQ;C0u@*C6AJ(Nm#BnU$k_FrY-KyP!82^jRX}9w zIAr$04s~0)^jgdtl5e5Ir(#5EGelBFy6*BKW4H!UaK^H1kC$vRj3w*7Wc)x!OIBXD zgEx)B^ch6AV4>zs@>@Jl&d)BV)BpTLr=EEL(V}XdjDnw&S<6{i0H$;^5x<3*~Kg7@j zj71uEF&YWb@DLL}phwCvDaT53hm@zJJVo*Yv=04-w{|iAGlDdGmu3=)9}-CnZ8VNh zoEpM(J$K_W&S4Zi7^9VOy6Ywg(G_Ir+H`OYU($*DwE7*UOXyQ&gcbBnw3o&zWg$$O zYsgS0x^Wlp;{!C1-6Ga$<|pemZsHatT7!-cX%--x8GM9~q2LpWsO#Y5rw1oFoy^i+ z4;ua>^G%BUw<-uJIA8krDxiN9XbzBB36UX3hBj#K!zQ-q+fHi+N!u=N!*r4VA9MbX Ap#T5? literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/QiniuOssRule.class b/target/classes/org/springblade/modules/resource/rule/oss/QiniuOssRule.class new file mode 100644 index 0000000000000000000000000000000000000000..8c9dafa067f4fa502330192a44283f4741faba42 GIT binary patch literal 2869 zcma)8TUQfT6#fnb2I5$}U^PW+Z50V#2Jf0E3K3g1fC6IaeKI+O!DJ@ROjK&`wh!%E zeQMvjR{ug*UxG{4>gscUM=$@PtKXS~Tu7)s?`v#%=0QBG3$h1zyU@pb9xIO-JC+PbST$r-7<>HEoe!^X!a7ag7 z0rnHH4Z#48=s2nnbRvvdmh}Cbaz$|-*I_75otzC91301M-r>64=v9J|lCaW3HH`z+FG=rRz5%We6@}Le=Uufqg@p(<$e_h3gt_ z=(vfrz|J~kDX{a#SSeUyy3;vkz|u*!31DjiG%8j@VaiUmb;g}y-Zit6rbEwoQB2~N zQv9~S!FGx_xh|<%%4}QIN)T$OGq|Hr=LIe_qSm!*bw{XOx5kX5FJkwef<3KBT^e25LLQt3n1N@G9V!d?qilk?d? z$Ww3H0>?M!Y!_teYc1vk4zx+0=6q&&*iKm7yBbLA^*~KZjfL4BvN>VNlL@)W{t*3SD!wq^#>0X>#(yNHeti3#+CR-9L@<= z!k8K=U{*)lGy;o`zmjIQEpqKj<9{Ea-tn~Cl)-baW z>sE)kM9&)Ts)H8miA9dBVj-d2KOZj23Vr$h8QGCZQIr^gy-(U$gebSFFu#9`? zB>qF>Q9y)|tp==L6z4sU~1Sp}0k~BOZS1%q>R)n}KM10JB2R^~4 S{NKiJpYim$PcdKm`077nvP$p( literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/oss/TencentCosRule.class b/target/classes/org/springblade/modules/resource/rule/oss/TencentCosRule.class new file mode 100644 index 0000000000000000000000000000000000000000..90e91502ac1a75bce5ff1668570828de4e8afdb0 GIT binary patch literal 3025 zcma)8>vI!T6#v~O?Y3c|P|70&P~??RV0nWH&xRs}^g$D=MSN^Gx9OH-H|%bpRq+Xm zZ}5em7(e;N868JwGm;rb#}7LG9qRB`IG($CHYviFyLa#Xo!>o=d(OFk{(JWxfFt-S zfHwFf_+_-CgJG*?=9D=zr%o3pm8|aYsjPWL(M*dg!)BVt&0O9zxZyB#9M%opIm+M* zN5&;|G8{6kjAG|4-N;O4)ihUfX1b8&wqkMHELa*>Eczuf!{M`zGGg2D@-%<|7DPru0kzDLf;f&oXQXCz_D+sAJ-4q;OuwbGX2;k{mFk&Qj(Yl#b*b zstg5j3H{;0$hZ&qZB)Qtl<|^)FC}==6fsKaIc^plu{kM26Pw}|)rlGaT*j0DgysRp z_@x53t3(o}8CExGF1+rU89)Xz!oZ6RCtD2k!ZbfZv1TVUx{G`uA;-|yoT;@`uUEGe z&*ihKL-#QYQ)rN9uv#>zDH>}jTs6)G%E$kp=M^RqGYOUq8x)!)s|UlT=G(c@4W@=z&RmA|&G`8#O=VbXs0Iw{n(^~)Kb1WyZsjG0H7(d` z(vhzgk=^xsw&lTAkJND_78sb-c-|`~5Fh)2%#V7^b6oybOCi#amuXY7L_#DzB(`_3cEewdrZfAgAf|;y0+}P!8O` ze((Nw-~V;@)<`n>&z)<3m+oQ%J(1ez#ReJ~<$ni_1^QFy%jny_tqAsmw|$vLu?_6P z6&mF-0JE5*KZciSw@nDMuZbu?YkzF(kz92B0x8kwqI-yj<-;YcnkXU|^#}diU955O zxHsA4VyidV=3<98+2vxdH#y+qNpEu4#W8Qv?_!{Y(-T3zi!)+4TSOw-Uc!jCbgqc8 zXh#XDiC{+&<54LnE%U?0L{RE^-o*>$k4me)`!3QYWF~^`L8%Bm+F3$&BG?)9?zi(Yr(L_`I@}2u`WJ*Ff<=bjSbST-8HT&A zSJeHIC!Av5G74O`-9p*ozV30~Eqf-{JsJ|26Y!^jp0oXQwW~tKfC5d!ISew)oesyh zeLZCfg2@sr!(fpIHNYiqI1Cf9%)arRp<9Mi)YF#X`^k9A%%l81H-n@K1?M%qhGFuF zAPA2r#NwG(vM9Oxu1>KK!J%{}L>kd>5wA0xBcvr6ge)%z0@S+zhEet8x^5cg9@m=& zNd<2(Ot(`AEu`Ni&n@}#(8tu_ULd%yVidh9#_*PcaSdr(Y zbVPH04DV^UTi>4(MQ78nx!j-7kgV@-oxdp;CuB3F;(eqPENMt%nc=Fe9K#ZaWycIJ zXjf3OFY{faYz1^pa>$?(ug2g>mr!*EyK^R9=|p>GHBz%$lJ$&Gv5pOS!Y0E(tfQtHR;A8_PM+km)?l6N z4)cOalDVhgv4)S3C6S=}r?RQjV~D?mRLe&4n<0`W31k?`2#0T$?L7CkjJ&+n;f!k< z*0$jZIj&7cf<0OJ^BrtEiZGN#S=LQCOEM@F6Impbv^B}B%39)-fSo!^puKbq!>w0C zvEDRaMq}&IYacM zO-n9GNodW7YcD32YwnZbSb1vlQa}phD-aA9nkv~?pz`w zfBHGMk^A@8AOAUihRgKo_RvoNsAcl?r#43;oxY5|eUnFEzlF|anaQxyztP;+7P7^6E!h$bS@$aDp7R&Xioyj#Kb zurpb~OxU?m!R@d!U%|a-q=E(6+?UPb?|6{tJI2aRwC@NXB>IoBz7vf^`)7`jNhniM zI`&bMbpnILW{zCFgCWdggyeo4_vj%?kS|FZEg(hzLF-t=mv{g{qJDs7e2>-8(`?n7 znx`rP?BFx=y$+Gf#P#OD#Wo%ZIKv7 b2xE_|_o?55Z(z~)Jk8lOa(n_W`S|vK%8|wm literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/sms/CacheSmsRule.class b/target/classes/org/springblade/modules/resource/rule/sms/CacheSmsRule.class new file mode 100644 index 0000000000000000000000000000000000000000..e583765daafb11d48f89ab2aa60c9784e362c1fe GIT binary patch literal 2017 zcmb7F-%}e^6#j15upulBq%9R|Td9-+rQ8-;iUiR%1xpRI5?}^>x>>HUxIbd{rj~c# zeQ?In7oYUeaXRBrE&kxy{{!t`p`M#f(m>)AXOg>n?>YCJ@0|0Uvw!^k>^A^!VKs>u z+DsT0;%H~MYzH3S2|Te?E^yaT@*_9+l-of`@}*!yW&^Jn_|jJl?K6(=s9A=#q2aY8 z66i3Iw9pBQVKOLf@~~KP{LO+ZHYE3gjj}64UXo!@F4>ZoXv;${$8&z-8#E1yNRx z%NIp4qg7wEa8|3PNOeVeMOP@P^*eD6=S^I&@H+Y#x+-zjZc@5Qonf#MQ8g_sAenfB z;o3`cQVg~OPE~c(j!ub*OAG@?Z&gSTQprf8hS$X9LzRe-Br%K;6IU#Z;_81{QWPrJ zVTF9Y?Ar{9EfLOnMYY4wJM>{g!fWAuV1hGDw8Z5Gn_ND&Wl=eS&-1eM$g$;I?I3~c zWHi5+|Ld184!-~D`44*spMQDq?UUy}e%GJG7$!9PZ!ny0%xc7{%=bk*6BxNM@-9f--cFYNc@r*7(bP9-$Z6qp%{v6O)_n zw;~$d={=n5onkHDtB2vvH0PN0N1JQn%$8 zPQIvZT|!eNUzwKkj^sr(?V@KNsm0MqcKZ{}YD3M%Nz3*3;LXV*Gav#()Mh zhz?q>Qv~Bk;|5Lbn>2SPX>#47bqeLIkfl-FA&ofMyMVixqY&rGXK!8q-Maog(qACid9Z)Tt!W}*qRT|e#JS4v kqKN^L->1Jpp5G%Ii}W7D5+2aAo6a86?)?zU$cI?@7g$v|lK=n! literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/sms/FinallySmsRule.class b/target/classes/org/springblade/modules/resource/rule/sms/FinallySmsRule.class new file mode 100644 index 0000000000000000000000000000000000000000..d951af935213cbe1186606836cbb012fead769df GIT binary patch literal 2497 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 a!q7?Epm_vk2>MRY-af4=9;z@s9Q+4r_mzwQ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/sms/SmsBuildRule.class b/target/classes/org/springblade/modules/resource/rule/sms/SmsBuildRule.class new file mode 100644 index 0000000000000000000000000000000000000000..e160a4b4a68abd9c44c7b9a58f6ce9c8d0989d25 GIT binary patch literal 1812 zcmb7EU2hvj6g^`nS=ZgxjcI^DpefK|ha{UOX-Mmq61yoF9Jh@VL&}%N>%rcz-ZA^p zHt!&n2VRjX0V)ztNT9%jD>b6<%PX?|j441a#((%Pj-zYV_T<0~8 zI1XyibsWNBhM7n6<25|xBO6$Db&(u19IgpJbeR?0VK|X0tn%yJu(?w+ayIw8OnL`$ zxw0xuKNE+BBRcw#q^QURIc1nmr3(+`(Uhywpln$FnxeAh>8OqYJkD^CJmtL{H|wIx zFhK6QRI*aqM3C&C#Gr3AM5FiiYk;vKd*?u(jq*LJhbQ@v`!CAKH=qK1@?G)5j^8(J{LEXVIM%^$!h#x#uU zFfhSzayPH7?((RP!U;OnoTnECZDqN5B|leWNbM=Y{@)O}QB11%M`DVnWt!#u;(zMF0m^{6icUkyk2xLse!+8!&O!*HnSN>g}VXDl!reW1TXV$@cl*gJAO`-u1Loe*?m zlvprKKHSA_Q4-mb&&`h(cry$?UfLQ*mn@Z_ek$Ac3>jAnWEflwNYo8cwmgfnHs?6f z=c;DJV5+e1pyb;&Mj;%Y+ryIBM=TlwI)$)(71hk)4I(f=g>HZS$>zqr_E+EhzR}ve z^=f^rGAouc5TaRH~1C96e} z>oR5`a0YdfrHX90!#<2GPWU296k7r&mdHASGFc_i`!|L(Xc~r-^dtB!f+KhvEA%`< QA6%o|J09M}dmi5Z7pC0$C;$Ke literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/sms/TencentSmsRule.class b/target/classes/org/springblade/modules/resource/rule/sms/TencentSmsRule.class new file mode 100644 index 0000000000000000000000000000000000000000..b17c53ba4c0cf90822dce317f1c7e3a6d1197fa3 GIT binary patch literal 2281 zcma)7YgZdZ7=8wltX;NHxfCN-tu1ZBZ7N_(6SM*riw$Wd7{&W$GYyM-iMtampVhzN zPq4=?!BfuZ@w5L!Pyd7--`NC`CMo61+}?Sgd9Tm>_21(s0N%x}jz08jh#80@!En{` zUB2(T=5DRT9b1YAj{hUK{6O%$Ulwb=TlGERNruF-?b-4@hW=E#sNp4sB|oU}uo~E2 zrR11p!Ck*xb417k5&E^j5dohHneE>X=e&lo>|J z@KzKHQe~Jt9mhojZ{ZRtghI9}jI~F-c|ToLhD{o{qO39~HY=7T!tk!xS5PSfX$55v zRGVM|(*|aaGz!8BgluZe8Q@16ZGs8BZD3w$45&=n6)$hPLOro);2otfKu;Wzh+9)^D_Z?o7wiEL8 znrAV@rN5y%=9#E8D=)pF<2v3~-M7MUKDE&uXw_Y74AVUyQ--#h;3x+=R&iTlt~30U z>Z;$35CH z+$U*Yr2H=dX>|78)UZ~^nLnZBrt28mq+uj~i1D2RBr~yOY^IJ^>v%I-T(0A4w3w=6 zHdmj1v^x=qI1%ES+`N{7k#>;XQ=B&L&zIzDWfI8TOwI9A63hOmfH zqOc3NLCn5HUfrZIgB4^^#4^gbg+1CSckVPyZn~qx#K+how}$W~3fLysM)4^=A-#UW x%hUQZ#Ar8$9ehp>mr4H%x|_gPgcc*suSw@yTK5rFiRN>3X3?%3Lf}D&%Kz2blBECu literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/rule/sms/YunpianSmsRule.class b/target/classes/org/springblade/modules/resource/rule/sms/YunpianSmsRule.class new file mode 100644 index 0000000000000000000000000000000000000000..0b1561d95a629017fb10d05be8f4085303f764dc GIT binary patch literal 2137 zcma)7+j84P82;9FB2d(%Tv#Zj;%k5-1} zf;(myE_ngofg5KgnPIr*IXK+#3=IFuj%{o=>1bxPhyVNbKkx7V9{md7HonvmK~zJ` zzyJmru2`PK4?M@*s}*_04#Za#?^|wpzTi2pBr={;^<3cw41>39*ADJ5L=(w^hF2I? zJ-^Il)wkVpv0|14cf3-qA|&^P^lH8(xKB$Wa|7`_;CV-88dDuQhBO!k&SChad88xx zZq2RQrb|>?M9nZ<7D1DALzphZOd`8)eq-{A>6Uq>VoI4#cI-SZ?h7kO>(FrCz-t&K zyNH7L7_KFf*)uJwdix$Hf7ro+GALvkH!y+M8O{;YhH}J~DA`2F`w)hn_0>7IOlwc@ zHXyCx4Tkw{6+(ovz3O{asV;p&6X6H8kUAz2)o}rDX_zwbHZC$ObrbYNrOSqf;@iTh zR?I*=EHR9e;%zVH0~KMibQ04B-o+&XND*`bCOW;|lus6vVlxIVE3FLj&AMd?DIbXg zMU^m+R8$60bsSv4oPl|T7*cVu%WlqegaRxY;0iEAfRlXyk|a~H zDNqVJqhkrzRK{OYvl|9(VwEAL5}IL}tUZ;20+V8x>-K9aFzuu~@rjN#+*0@5X811A zlT|HbpOB`{(4{}w3o=T@K*L=F?_-^cMS0GVCrUCTPf@KyFr6%rvoh2U7)G+TD{?ib zDEw`+s7i1&>se-{VEVRNH#cL!o~nRUkG4I@7`6zN-fb_c(oQpIG%z2}yw2Dax)4HWUQb_-~okW@Zw?e}dJ`?3EAZBZc@;#)Opkd7$W z(x#MHcU>uN`P)>Y1Z)gI1jWjQ#_&hhV>i#~B*cF{tN!K%>zRz&+fj6~l*g z8VSMw5RpcE&t^xpI$r$^T6V6Ekxd%La>tn5Jw!Yei^t~cc(aao!pVDeTnQ($bu1iX zX*V9LWBCv(bzDyk9Ak|(;sXnZNT℘)8YEX=}BJA-e4dGR ztMskmAyU|(NBt@8hT1=9XxP+V$2K0240#BT@ev-8CFAtZViQr~T1SrdVS5T1>-G4-$FOVo>d^bjrRK`2C8D0rVFL%Jo&hTTn}kKyZh@Bw@!p*T%? zu|=>253{?o?0oZmJKyK({R03V;K~P2z@0Xkw3Sh17U!6fEOc7uWThdiYm<<)WEP6| z(W7&i%%*MXLq|Y=jti7ImYE#Kb4r{KT>*n_$V3~)tz?Xr;6N-m0LS3~ zh;f3{sufa;#A4!1-uU^A^XB90?HvH_;L-($z_nBf)rAsy5~eKXG?Q_ea!nQ2vQ!bL znyZDtbv)5}R=>N@B+#F;1*0j;6FLd!JTfk{33!`)kyJ=p(2!|P@A2`&L7=C3irbKO z$`VfC)e9n-VWG@KEK8a#LuQ07(o)l!g&P(#!|2#<@Po~xwxkzwF6ly2JmP8M5BHC8luGgB%Q|GA&|+kM54{<+;h2qMtdWta&=;Ktjr zAD$awmiCAE!)GMmISW&~zJV94>=ej6sbELM1d27JHrn=8{ARLUyIPYq@(FZjmGvKl zmDXP~{*@JpE+^2yXyF_+a1vZN00%mlbsXs8a)@z+;Xn`JV>rQL3%7`c?Cikl>eE?O MS=SHXyvi=V0p~m@tpET3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/service/ISmsService.class b/target/classes/org/springblade/modules/resource/service/ISmsService.class new file mode 100644 index 0000000000000000000000000000000000000000..412126b573bfeaca43693a7949315188275f2008 GIT binary patch literal 941 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/service/impl/SmsServiceImpl.class b/target/classes/org/springblade/modules/resource/service/impl/SmsServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..663609879cd52e6197c742656635ac676a2b2622 GIT binary patch literal 6824 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 H`)2# z9t|ZAg&(Ly_)2SE#MxB)Z!pGxIExVWbiz=*iU)zj`W#hr=P338<~vSIZ3xndn(724Qjc>Lc#ie~5uoxW0<#&O$mERr3`wHCU%M$52DtH`Q#vku0i$PL^i zdyCKn1@eH#SFqFX&S%)4%(M6fm#n=HuwLhIg+r~0*r5Af9@#*Htdnyir&|6E`MuRE literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/template/BladeS3Template.class b/target/classes/org/springblade/modules/resource/template/BladeS3Template.class new file mode 100644 index 0000000000000000000000000000000000000000..44e49a764ce64abd8d13bdb96cd743b318ecf1d2 GIT binary patch literal 15714 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/utils/SmsUtil.class b/target/classes/org/springblade/modules/resource/utils/SmsUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..b4c7e0810a50b539883a7b30eff82fa976a17bcd GIT binary patch literal 3682 zcmbVPYjYD-7=BKYHci-48U=--fEMgMC?H6%7`GX7r1rGlEVpGNXQT#@`_*f5P!OyPGs^$~2`j$?iFQFVFkDmvi#hf4}|);6;29 zh7bNA0t%{7EwJv4dQOcRYGyKebo`7qVGC3r&@;N-Dd2Bv9u1)ep&-Hv)<6;HFmsbp zE1T0ZljDY((xPcIl{Yjin$s*ZpPSI4d0RKEXfkab=ZiqtN?V8Wx{=ay0(%lGs*k&} z(txKH3u3Lnu7}VJV;$;)h$wgjj|#LbH8El4w5V;GMgg=Fmy0_%so94#H6yUSDY3v& zm!Vo#thr>zWsM*=2-G`*l7Z-9)tVYmvtg{q9NFJ>Vsuw&Ugvkqmk zYKAPWZq-)9=)kiwHO~n|Jcmx|2qe}#8fM||R5ZwxT(EA`aORx#7v9wHTK(j1$l2IB>Wt^3k9kJecU!n#)))vX!{r1+s zzkJ8DbTppm>yD4~ESNKkqW8YJdH?(C1#`7UQP(67N6(}yS1=infsvJjp3w&L>2WPL zqK+Hfi6qPk)fiQCx?Fpk0eebkeeW!5ma_RI`>S|L$H+?3RwvG~6+BDTS+7^>mUN21 zhQ*$F9(g)@7KlfFYqeKMok`5eQN!*x+>R%}IGrdt=A@lfI>%BKXGEUGBD3K3M zWd?iO+vX6PN8FDEr}AeDcshkJ<~VF|Rnb76y)rhMODB8uR4t4TP0`*g;4%hG*1Cp@n TB}z~n6a+;;F0b?3htK~9$D{?) literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/resource/wrapper/OssWrapper.class b/target/classes/org/springblade/modules/resource/wrapper/OssWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..2432cc258593a5b0148dd01ca194a707da9e4222 GIT binary patch literal 1968 zcma)7TTdHD6#fQm7H<}CNNJkTmfSJdB>_SkQ%PF>}xTCYcD(R#<7olV6r ziIiW_=7B`5ROPups_L2b5>~b)`(@_L+4;`-&TaPJ|Ni<1zz?XH7{j=MjD;*F814$$ zvcrz_f>y(Kn%s7UwiB7?`v0B`z~ujE!h-i4ihAE%|SeCwWB#mB=UOcLw+xU^<5@xN2bD!q@nQ z;dXy??Y0PP9z^ZXe&V_6fFvqKwN_(TERS@(Xkr1^3|zNx12-8qdQpAliwnTxHqb?2 zxX|LN@vNQ;v#46DICjxQ9)K zneaT+iqj@mbLmnhrkCm(vu)wN#!L~WYe^$?tAA(Vdpw}vx>>AO8JhjU4NE*VV{aA* zL(Yb!$dDgdjYRR?FN^xoQ6-D*|KmQzwSs+pA%(99eGsW?csj2H`!n3JqiXNsa415PXS~=3B?4hMLOBEGupGuAHe=3VGO&p>d(M3{a662djWfRNT(bg;W246 z_*!Ce@^2WgKOpx9=~xQCMkg8$x}|TwqdiOe*2=8;5!NTrI!o)}dwjKWif=#SR^>gG zNn9iGL1uOB6dS8oGN;&D)t0-=t`axU0OzrZd2C@3+cfw0NwX8P-Rk;C*pfHwqeMLN zxP>P;AS?6qSUkluj1zVW&q>PQ1=-9px{CZ`qI@}_yh*#xT5fse6BbUfbIzkbL%GD~ RnXSC0{9{b~CzRv;@P8H@A_SkQ_|p&t1*$By2?|uUXRS8^^Q9`n~Gmj zslTGl1Bn_b%5#2H)idj*tZYm6%gmXx^PTgZ+w9kW|M?8yCsa&~VAMdyLKb5TcZF=) zVOx4Zv+g?$Zo5KqyVbVCsNEJ)*}G22_X6dq<6ouIZga^nw(SL;+F=+iEYu8)Gpu)8 zX^BSU^U#(&6p?hf{d)&&S6g9X$AqDYoMTuWh;EA`VZRd^T{|!_fk^{X7V+PmBdej$lr(iQFFS5i9~^4}s)@`?y5kx$O=^zqflbPkts#lWnE?{Jmj zc5ig8mI!PfM6J+%?73=>Bq~L9zsfLQ9_o70#2l^}xNhMFZZfQOqk7607l6lYpo_q8 zuE|x&QM@VSF~dwD9m(^6^jwmc+qh$3-a-Kjlz?t8u82c%9ruvOp_H`5Fiy5>jvtX& zDGV7=sz#^o)0C=8cX&}Jcge!C&g|Hmz3STvb<-SHE!a8_IdWW8j*3DPChl6ehjoUj z@GR7d(;`+g=~5=97it=_Y2m)cOc17HNh5Tt|6t)qJfPq@S*#r}G z$r^%bUkjt5?yq};{de`Gc1}>8*tH?SsU%r$(#)L-PpA4RDKLW>#=X(Gk>BU)P&8gS zk_xQ2B+j|2*9@q8B<1#x9tr~=*6kih|I(g~VR1;r|8ee6lFVxSB0uqT3rx{4C-3p9 ze#CH{T6Ki}6hH=)P>j)9q?1iMqdmL$0qk!QMzBq*{tPVAj|H$g7qEkebjsmpJR*$- zUrS7me}eJm19E?nj-~J`bfV#)Tl)5&v}bAGSeiCJ!ukSQr)k}Pk8hVw@cl>Js=UV{ zi7O;N$Skj%U~Tzw<^&td+H!~472*aO;5^nbiw(?Ulji;q8#u0{{g2PA+G=c literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/ApiScopeController.class b/target/classes/org/springblade/modules/system/controller/ApiScopeController.class new file mode 100644 index 0000000000000000000000000000000000000000..7c06f4b90d92c65ca985bba6ffc77312d392c8b5 GIT binary patch literal 5313 zcmc&%{dXKy8Ga^T(`-gdQyUCg`LI9|Xh&=*(4@hp5QuJ*wwrEC(c*)zL$?%wyk&-=d5 z`@Z-7=fD5>1i)TgSJ9&25#bbdx8hiKF;_AQrk)oLzl{8p9NMmD*q**$zV46SI?;x9 z6&)H>Y)~*%ub?ane#vxox9WOkSt{`yQ7V~^zOQ0s@}eR&MNvswPW7l` zR4S&U;80(B+L$r)l3^G1iQKfA_XhjZc~RDLhA3MF;p^pU&hRX^Qu5u%ZLvaEe^Dya zlPU+ha0fQ2=+>|qUsCW`J-j-{eU_ODItX^crmIH#)($8#j5e$?OGS@@olW3W#I(>& z+q1lCEs!aE8NDj*((o00Rl(i$DguXlLX>nySwF0xtzdYDf=3(rwuy8Q-mhu68}}$s z>4Jkskv=%uw~8V;f;tf~_tzb9bGJ^#teE1gqO1 zg$MAUiarhf7*Mdg-h*|Fnhm*K3tx@v?K$5n6%_30>tE%}wdr7R9>BvIwqpnRDczNw zP;lZl9o8(r>dfDOZz$*t%GMrMn@)TaJ5}t`@F;dG*tE>^5mL}JnC9)H`_h@G6>Lr< zLG&jrcpOit*rQ<(Lkb4!otY?%zGs!(uqqzmkb3jf&!W+nBzDG=RdukzR{dF73x+j3 ziEoizt}#O*Z%N9=1?RX-u@MdX@f7{aYV7&0f^B`rR|l#t*#ZKOYIsI&k@72~wmDKA zE6AP4G<;i5YjWoa=Sc8p3TYfrF|J_(2f0T>`-5Z-%^&scJT-eFE$m|2ay^MFVQgf6 zRBxn=E>{J(4r|C@QbAY2ESa8}7DbD?Hb>&iYx`+`7DrVa)9@UQE7;KxRZa*`&wEZu zACWyQ*xnX!sCS?3V{`OnE`L+gS&Orv`b`|L<%Gi$jPUAoV<1yh6_oyd13 zw4Rg(%?js~K5ORmoMjhuqqbIm#`F%b>&s+iD$f`tpT??sOqIPs9WPqml%LaIvJ6oz zTeg16woaP6rW1NxSy(4{cnA<=!b67CD4c@nwDQoU@KBPrgznB7#Uc+xGdp!*xGPlD z%-JAe+`MB|qEpMwe_mZUdp!~Pwo;IYudFXp36CWXgNYMU z+)0}!L3?ljQt;p!b<$0;YcOs*nzYTjCZM2aWm;7$acY^jrD^>vy!rq2_R!~G=8UMF z60#G6!~8Hnx+It6G4Bl>3v=g|-u-B0t+{oY9TaXd&ve;*q_$RSTfF??!h7#1*t#;I zCmGBYNqrX^%qhd+DUE4rk@(DYJu8O3#zsD#y>`yPW?X-;SXL zk}5p|e?{v<^XR;RjV<^$wj6kP9(R7oe_C*Y-zokA&tenC@B&Bogi`oE48BnwIpnE% z6WXag&(#Iawkw)v;9O=7zCKcJlyMgRZ+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/AuthClientController.class b/target/classes/org/springblade/modules/system/controller/AuthClientController.class new file mode 100644 index 0000000000000000000000000000000000000000..3ef9ad1b697fe7fbc7ebbc727ed0a233b38dc2a3 GIT binary patch literal 4874 zcmc&%{c}{+8Gg^^W6g2}0uscks1-?qaIm6i1Cay;(=H?=5ZchMvwIJl6Yk!#-jBrf zt6Bx)*9=Y>XF8qfXs7M;C)61o`EY1|_U|BI`bTv7oO^dSH=7L`(oui7*>g|M`@YZn zykF;j^WQ7ih-g23&_O9`NmHvuZPd=FUwZ}amptVba*nViFKRnZ&>hr~ri?{v$YRt} zuPLuR04#AoES0nuaNw|2ptQ?qT|oxNLg|%HdZJX49;0L3*(otCxFg&GAI?q5e9+gE z&Fdo130+jS4tcSh6M^zePUyo?=!UnkLZ822l<}m>zBRO#)}?8^MV+*P(bM(t>Zn`Z zQAX{6JM4n4L)|NfRB;VnEO9JNcQJaR380dm(j4JaK{*l340X}wG~I2{7P^Pg)_Nro zF@e?&7bV3<8MWFX5U|#e-zL&gi0`%NKDwV#8YGN}0$4cNy(DYuV;x1JX#k5d5C$F} zGK!;!Jz&v;^blZ|B2(v^5niWaHQ~8+lGPb7S@p0*+vpKs^u;vj*wl#H2@|Mpi+ZRR z`Qry72z^EmcTe;*=58Tm5e<)8w9}Z#ge4Fp2g^gYvCJ*nZMH3AdDuG<{WC*9p~us- z$D$|bN!VCEs9~TSpC1a{JTwP7tKC9Y`GLWeNYb&u^p|Sh8X0a*MYx`_=xO>Xqcyg4 zWFWJ;prC7GMSS6G5B%Rp`_t5K(KB>_(XNK5a#{yGA9xNQH0>uDNMe=!Y z;*Z}Mb^BHcxgWl784c0oigH}}3fvC3u12+BOaT3!gx=G}sTu8^;WIMFbIP^3sGa49 zWpD(e#3U}GwrSyna5&AYS+hTC3sT{Vd?la#$)BiIPU(|{Oec0z4qbU?8oze`WqU1 z+&3ceW(}!EADp+YU%EPf;o|(C&&{2mWpsxJYLq8!Mo+Fd{1rMQwNTmLv~-rgT=$vb zo*C1jmzRf>8MRv$zBCr@1G~%}+BBBNj7nFyL81rqquPCT4A7oR2;4fQN0A>3_HI)& z%C3d^voUJDJF6dM(I*$9?j~a+5Cxwf7iNI9x|nr{)!dZ}H!uA2=EYBLoHySED)6Awj?$)>&SJ-B73a6`j9qYdWU600=U12jmj zbP#X9Fkhbd?dtu4*p5q-zD#$f=-;&Q$fK8N(`Wckik`*a41S3Y;UnuXJ%`l;u@rU= z;|=okJPko}C#(!$m78{jTBTA#ET-~w6-A+nVlqadps|Bk7k;MjoWZk( z!Gd{l@GvSai*iRpl&4pZ(ygM@Rg|TbqI_Xll)DPq_<=fw%B}7SFj_j=oK^IQNcE?;1?+(tGAVKE3}x13r4c literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/DataScopeController.class b/target/classes/org/springblade/modules/system/controller/DataScopeController.class new file mode 100644 index 0000000000000000000000000000000000000000..b5fc9b0d93f056dbbe58e14904778526ce2ed2fc GIT binary patch literal 5332 zcmc&%`*&1V75+|MLnc=#LDHs*eMs9REnI79iwp@8XxiwI0278nm3n99GPz;q-sycL z9qWUNU~H{|QWR?|t<)b8T~>p2Re$#HAX&{n;qp88F>^DSG9j)m*Q`5p?wPaq`S#x5 z-us+?|L5-?0T{;n3A713ZrMfEsn~{D%$2l)uI4S9Us`@z4o%0^Ojq46U-yS^-RMAP z0$mCc*dQ?6sGw{WypryyPStVsvQ*;QR;i@h>H*EwGI^^aRfTf`cNL=9jBd{wd0k+4 zx`j?BSgDTJG={RNB$DV!KvD1+d{$tvQIT(5xuQB=rDEB%%rXmxYgneh#-i>X_H?^? z%+@Lu-4-}Jke<fIL7et^HI;6B_h zkf09^X+=8W*uW~vG)CHwL(A}$byt({)N!fUkJp0=zJzUrUGcZN(8}KpD%KO7+f%Gz zgCritBMA&B7{rjk(~TZ%;M82e?t1)cbnnc0MyVi>8W>#V%{3}vcpk=M3btbhDJmV7 zofJ5Ehc0WCV+{`2fG-Pl`_*eVi%vJbf+rH#so+UGC9tVZ^-+>g*O=;^WBbyXX9PCK z@*w<^7VN@T6WFaFg*^g8jqZ%qN6$4%PEZ_=a!9>->Sy5?h*LY`%Ho=8vejT#)`JlR zd+{~$%h6^@>E=^-Ou@5qi=`qsmo2t|JOEm=fqI=q26N(^k=-uFau%eeEFa&*E4D&nq~N69PM$qRLs8tL9z1 zq>jo~7Vk1$dkoWXM+Djj2D5Zwfq5(gY*@k=%Cp+9}gE8H^N^t|8+xJs$+b!#t-)04#YNf5Yb?nLq zb$8k-9MWu!*{0h>)}1kmCW&X$f{UM)+xDyv@CfbhKjN`7mG!LQ7GG-=MVPpfl!PR$u+LDgz&)n|40AltvpSmyJrR`O_WLXG$`?3eSR;ZA!w^<_h| zs%67ePn*UmedkO}kE8CZ7?V6j_y{t=X+vtX?1FB$^8hAzI!POr>da}yA`eHiPpFpW ztWZ&tr(nYI%4N;2lDi-O@efO9&-q#7aHs{50uNzyV&ZN&wTjtM;908uP$G?#+n`!4PU%fHLAIf#w)iLK3u+Z zefh2Pix=hvHrRBHVe33R#yigK!ymfSS4)+{Ez{-`Z$l~B(vum>v-A3xAv^3n2cjNW zKLqTM2SHg;n)_2X@>CGEUZ(Lt``|R?S3wVI{_bk~!!pIvuM+uH!z&APn zExtXEHb}Pg4gCe}k1nA5CN{R=U)XZ+u?5_Hga5SQB)^mV1)jqujN?U)?hmB!ZD@R> zJaWiW^Comsd!DNcob42x26R4cIE5mAAEMwi7aA`>IGDj{j!WYx!{idnK?N^4usP|# z4Kcn#kq(M(l^6+YYk>2Cc1$ebq3wSK-+idEhk+@tG%@A7ktyGcO!s9}Z z#~1Ll@AjJ*Zo>lhHM;vG1NNeCLth|OvmtVK%*l~+e^7JonF!IV5uzUkh|WrzAo}?8 zBR=Q&^a$=CU(WLp_;E|b&oo7B5b@0V5zj}6e-a^nZLNr3Z;AN1rifi4_STR1rxD^e zBE&yiE8?HyLP+q#AuIY* xcE`XaYv7W8395lh@K)M}-}<6&`!KiBA@A`0cYLnac>FHjb=1_tlVuU~lB?uk_&=3MfasYua;K5Y7i=;?*SJPD;40EZ7 zqK=~@j4pF1e<5pn$) zx~ls7-uK@Bz4!m#_o{#J{>kqV(JJwXLIFWbtYoidCz58ow95BO%pyh2PB-!prt(E0?(;9;mq;U$VDvhTJf)?bRzj78wcFB+xMMnl(s4n$lx8SYqtZ;eOwiI2)AzcV%BdNAD|%99G$QEQ zx&@`2U1UCdeJRaW>2jJQsLEBXyHik4T`6Jtwg8k8>dP4emQ=sH6D!Z9D;26$=_;Bh z=<@v8GRhpwifVeo)HVw$kLZq$m@XPnC1%T*uH%4SAZVv2A?27+tzAzv`rO$Z)ouGD z256A#X^}z=DlH~W&{aisvyE^Htgwa&Vk=@4sf&=@V#GlXt?=hm_%j=2T@JHJqe4pr zU0qb3L<+>V(M)OERocO7O-QTNh9$Z?gLE6+uFxGS z?W9i%sy%-uv3OhKNPrN>f-2igr>`ZJa1c`^{O9RiB!AiJ9+kp`1TS}z2KJxYA{G~z z#PfEk)JuIHT3h7YWku%Zqg7PaZk75eiu|)vJuwrwLsC8#dE00q-|wg*?D*BP#94vL zBuEL`qfk;Mn;>#wzCd3U74*rCUaYWgKQqR^LB`U-uu=mr^!S#eZKshF*;HN#E|t^}!_ zo7eAbZrakazH{?-LGuej7Q|RM5AL5vPpb439d+wdSu%UtaK!oZv^5SbjU?tgP2W)H z8I_);Zvx*!`{hb*P0t$2ScdiRTsM0~P)A`(71z&)cY1lhN}gA$=y@P8a_HgHr@ngT znU~JK@+=onzpT=?=>?FzP71|BZQYK-0x%o!vV;Swx6zPFuX5!PH0=({k%Stg6LeCc*Hrp0 zohk)3*GeAP3cz+tr<`p==1HM4qwpCEfpV|Y8w&lJO5f+I?Zedat`gNyhjD8~F8>Do zrb54^(r-TZ)jac($u5oJ|p55a-el)y;vgJ zZa95bgn5F=?k`pPEBb3>R-bP7HKV|g@>{FuU==OqRsLS3f8YVR(>IuLxZzDYqtXZ~ zFcZSlb)6pNJWKA&E7!G~H#2#32167u5fhQ%k#u^7{Xx(!cWhbBeE@ zwY7@Y@c92w=|6e=RilmXGJE4lyQEP?KP^rE8TY>A<6r~RR7MO(GT4?v)*K~qIo*mJJo9-6{OCr`#5OZ-bfjWEMskbZ z6GbeA+N`i1?be|e?!AZQPM?W1Tv5QBd8**JRlE<=h!rD}LYI`1QBYSQkX-0D>Ph4P z0u`!MXZ#@Oz{dd5$}y>#J-n}mg)=s%(8`Dz-KK2URdArz*y;ibc z+iUb_JxEMV&y3a98xD@(2|nGT@R1b_DjO{w53A&{uoty=szl(lo3^&_38Kt4HV1&1l&fwjjfo~Kgb0A zIM14~=1I0lxu`Z@oV*F*eaODS22LIhk}{l3NA7>@%!5bIo;sC|mfJkTb7=D7c`j5) z!h)Xq7}vZw$W>_EH)GJs`8<5|i)T(f{q}2zMxMM^P_&r#A5$D4&tCk0T<+q4=Y?Gw z!3rGlGhvqtWuPD3ta&~L@@+QxeIK->ix2d6C116-F=;fVoIZe8i}PGld~h@RcXjji z2&y{d0;)GFIe*a{_rZMZn*KMKqm$r9%l1{03flSH+T=i~DP~q z96ljvRxTHB0i);8a1GL{@x$yvB+QVqT@&UBMC7jG#(Z zH20pBROCK!^xTnWP~W+wr5vN49)9iI;bZ5%a^IOp4`QoHg6qws0luxY4L;5D%M)KJ zyJVLQ`Z0Hbu&t$VKI0uVpJeimJ^mw$Y@I+Cp30j54szT95%l22Q0l^>KDVUfG6m5f zv0|XB5Dlk?9~yb+fsrpAA9?uL$jL|1;!h)<#u+XC5-7l6e#xHu>U=>rTF|xGgRbE= zH)_#e@Z)iw9te&DS;u+Dc0pJA9-eO^jw4-GDj7D`nS839vKC&*_GT8dRCII-Omb^N z*|7B;gtQJTzP1anUGJMPdh%^X`H@}kLr#^&3u!2 zqfX9)`-=F|UE^jw9>EVaYTGQUKb7-hx$vChE$B{U{%O3`=V{OV{)q4R^x-MtcbcTj*>smm6=LS^;CRDFUb2Ivi% z);>&^EE=L&!*s=Qd>;^soEyNut7$U2t}JVgJ6BYTAnqVVj1wx>noQ%chKgC^@w7sS zanN7_E(2nsn1s)(P?1fBBB5JJ*kX#9itA~uV!F5lLoT(&3{hi?nUK^WF2j7*^k@7N z9(*>{ho%kF{0>$a3N8#S9inAlrWp-GwBjV)M8pq=Xzd$x%X3uTaDv(bw4xl=%qSnC zjh;E>(wqrW{dNG;fktSjG-;W;NXDclm^2HDU|}&^Tn@MtS|R3$D=>FCsZek(pu7^_ zyI}D6T8wu`!A@_~JdB!;QA;TB0X0y$g8xOGLiGyX_d}aWAK=T}rvW@w=oX1#bwFY` zJA>mwiDME{vpCj^MJ}d+n*^2+i*2DXkXO?W4Y5Ql71!J(mSMzlTU?tNaUGAizQ~BQ zQ*KB*WrcK#XoRAn0Q}SdQ7d=AX{+!Aicz;%?K$fa&snqBOYqFXMfE3WOL^82pYR+} z=8LP_5jS`EoG>fngjpFU%n~<>o8SbZS<)S4nB#ZCbniRY3GR1IfP&+2e3``XMyQ&_ zaZM2%n?DvD*QRl7$>KP*tPn>=GA!0XX%71oBB&gnm&gR=*dC@^PmmsQ=#W?s(GcYYatNUwM);P=@a4R9pEThK<5eA?LpfO8TqJi}(_wN;+Pn>H z-UdkP6>Xjo_rM6w-5O~G#{-O5bb@fqSW!L$$tgL;9}6~3McbM=#!bkYj2$%@J8Ckq zP~*kIRH~E~xe3V@xlghYAT7#`fc7F*b)>E8Ok1@vZB;+G(`BS%K$y9+U0QX5%m5vs zRiW50S)tg=lp3Z_4bx{s_tp>5eZ%zN5Pc!^7_JZV#g|^DCvg3>Vfs35+ZQneq34F_ zTTHet5VOG{gcr)==`J|tZmOaE_)XEh`1Q>JT2J>&aF}z}K%Gruvkd(93{34V6-&;k zAn_ipmp=8lm^pYcoYTd8VT&zdt4kap4D*+m&m$JKxOT&*LLJq;$!_qJ}k7s7gnJI4P=uO*j zJC+;8hC9+W>`dG6Nwz_kN>5{@8}NrGJtCYYFd-ts@YH`1p5>%liXHJgM`%1ghC2|p z-;=H$re8lvzk`itn0|MNejgi+++;HO=x#34WyC)TCq4y+Itre8ni}XEnV44Lwq2rE zM$poXol8X@_>Hr4sW4%20COtjCX>xl_sKkj32!K6BqmE(utoF%788H&R=c}MVE3ny ziKdZ>F%EGo`4eFQ6y}`Op7(+aU!^}9;5seo3S6fpO~duO zp`S}h)v_2l{u;f%eTtx0Mc{R)=w`Ny;bMs)lN2DK)glQi*r6e+{5jPsv|Nl2*1Sip z?@}wm(#AId;YgR(;y#7Z1NhquaNR2EPBDlP*z@U_k83eqjhbnEY0)9kOj@>< zwAB@&yTa|&QYBRdsal~R)i8Aw5=fY_OkB5AYs9kkgdk$4&3If-t1FGD-EG_kLhcAt zT?}KrdV04J)tRpBDMQS1W~vdFl)JJcL?NmRlA_QQn#$B#NJcW1NU2sPl`_*{$V|oz z+c1+%^@F;-F{7tPwx+dIN>4LwZ0Xsl?bg(|mK;>q_wUrBc1LSZ)J&-Tnwc9W~IjAcYm0PG>P)UI?#1WD{`7R1K`_lMvMEmdWFB z`2q_?Tm`9-X>l1eDRZZ(>Pg$MN4ygZ(K&Q(kj_)+e45F$qzr{Uj%2;nSwUCzXN-7^ zX=zJqxq~lF0_T1X%~EJKH8IsV82i>U4Yib`SAr=Bs0<%+(Qeb@qi;R-pGy}8sac_U zbP?0+LIP6nY}1UZTFOv2F;&JiTZ6<(s#uxTQp;O}inlWDa4BSLBd)I1QXRh2T@lwT z>wT(hi00FRAhj#BkW^Ut`%r)AZCp$A$H4b0ob-F7)FYSXnNt}4Ymq{W=~AXD7;St6 z0LxMq$1rTzSs&25I+KhF9{{;7q057Gg+f=-Ql_r=jgTp1rek`#d!);XGF?>iv`biH z2h$~!-rO}K;afTtT25C(yW)mrGp#&*?;zEw2UMhKbt%+ME5MDQyUvX1!no%8HBU}; zJxgw_z_d!C)pRY^rnEFHQ%qzU@UN9xTT` zqc6kiRU*!XsE@V==>~iSJ1YcxVr^S=y^1*YY0v={JPX@i@4p<+9w45 zA%$+Dn_+BLraxgo*jJpM7u+tK+ARuc)GvtHnw_zjnp?IP`^N(JCgmPeNT&htoz@fP zZe0ZG2~ckrsD~6XXeUz;q0Kp@=29FMN<2hyN(3pXkVz?~g{QU}&-7iB0XtPPN;6$u z)@>kvaZ-hnkv&XEp=!w@J4hLYcGDh!DL&Uk!c6+oDO2>3gUIZPY0BpH8+L5y+O%rj z<{gohObtF?F4a;vs1b#3quZGR`Yt3&ei^wbif>UiY00U#I~1k>-Ko%B^kJN>7LDpD zoX+e#jUI5_qDYdgOhQlNSU*A^4bnXdeT?=pP0iPSoZWz#UWF8qsmX6(#e`b>!c;+v zf^;7oU9psqc*o{e7S4N9N z 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/LogErrorController.class b/target/classes/org/springblade/modules/system/controller/LogErrorController.class new file mode 100644 index 0000000000000000000000000000000000000000..95a68606d6d6861732fd95b180525a9e160e1237 GIT binary patch literal 3421 zcmcImTX$1M7~PXz(uQbjMG#a#1bPDoxnn}Lwp^;AEiD!Sl{HDm^x(;vc+R9<{R2Mx zQ*$Fbyb#3U_;~kI+O)dxecb$_8}`U-fpL4Lc*)bs9vj?&`RPcd)6}nVN|reTi4;n z{ZQ3vIuy7&R(PV;l=M|lkqgBqx@2?Xg_5btqB2#lZ0fSQQB>B8YJNQ;P1+{chQUaF z?~KW$$=p7?j-fP$vv>m|0$1AMwF$QuO@V%bT?i=E&9UwQHHneK4q9pK7Z`1a6EpHn z#W_^_E$3x$00+}}JBvd&EO2z!ZPplHs+uR41bWNLDuGM8>e*p;ZUFBJ>??&@S^e00 zRh_{R98Kd`7VqP@z{y<=BzzouKwu!!c2-BFNFbL4vTR-8Qk1Uj#1VEPi<3Adkfs+F zRfTT2Ki1{;PVrOKRynogoHHDsHs*qPT;OpNb=`WtyrXKlgd1mk6-BQgI483>jWhIE zEvEHjr|4>f`(I-5#rf2BKn4=$()cio^SB@|+#blxjJy|kc1oaUYf*oxqfr7*RFbuyQv*P(w6Wq ztdu-;fN10T$wvGD@H@G#i?ZkiWvN0)1=Buai_- zZhHP)!cgOWij|6ViR_bh7DGKpPfl+2; zug_tD2Rjn8yHc`;3%AADP$S7(IZuM|y~1j}JFWJ@=Ol5-OhwOjNYA!h6F9IvmN#mf z@qB4Js(hjnHOpyYqzZQsIkh?SeEaN`!eNTf1nuf7L6Ob*~A<;9V2T>OciHK~c_|V0M|XPIXY? zc1)fNuO=*aA|BZ-U@y5f)@-X*4aMc?jJty3H!vSGDPC}N1xDP{nyntTFX9qSNVUSu^!j(5qsQ;9P*sM&UPPP zLi|kem%_*Rgx`Z~O>_FwM-UNaFzeb8ZSkdvTg2p0{6I9l{2p;APLI6v8{T_{4<<*5 zV)QvCdN6;ciKi#VlZi3R^R>7TW148}Zecn?7`J%>En*IzarGgd^f?M-e}|(D4sO*v zS2gAqIOjMFreY3rY&Li-?!x2l7LO$^9C0Ep)6~6(_yQ{&af+YEeGWT*Q~WxWGZRm7 zc4G2Zh@aU@YI`lAZKlN|6Z@>CZ6AiY>C1TQgBaCe5`W14BmTbP?`t00Q2LvH0kC`( AQ2+n{ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/LogUsualController.class b/target/classes/org/springblade/modules/system/controller/LogUsualController.class new file mode 100644 index 0000000000000000000000000000000000000000..e4b2f33b3c35a0f4a8721e6808f63974e5554589 GIT binary patch literal 3263 zcmcIm*>W326um9k7FGl{#@IM4SqRbMr2~nR7zu-M;@BXsO6&?eP%WvECyb_tS?uy7 zf54|e6%-B+RG#?+K8E7-j4Y2wQe;!`AkB17-`nS$yLA8g_wRoY(I>PwObJS+Xdpv_ zG{mT+oCbGo$FLezQ`9AIs=9AVm%B%w_p zFhXE-ET!3wTbd?lGDUA?Xo@Z~y3*CmQ_AGRHuw&sfx7Snqxr6S_OT8^`c8)4rS}-6 zKzmCxzU1)63w8qXZ0V#%-!Z;??lm*2&( z4nYl*QMpHiI`auK_Dcc?w2T}?m6i=lZurfrbRLVUiJ7sostI#fIEEg#CI`HI!)3JC z;W$=d2vF~?R0JoWMH}gG)1xwAF}g0jeO2EQj)0WX0gB;@(XfQ)J3xE*AF5J1H>^bf zo7(X$&uGeB!!;n(l4U6my-Qg@cqiiNTMhhBIp6U^S>;v3s&mm^%O6P(m0+XG!{y+C zFny3p@spt6iZ}|7fj}u&*1$gMXUmaGzPAr2H}-|QWF74&Q|7Xw-b6OJo+CWvWM{61 z6WKiCZ(^F!(~g?#nmUmdf6@lJt~>2gKr#~6ce~s{FzDgvjNNH<>;em2$53>xPi4l+ zjM2o|G(NIVQhEL?s#2s0RXly%M%z;Bl+y8jdLaZC%cZ|!Q8*{4bE?>*+)iUv`roK& z;Rbn_YS+&eOuM4bR8GEZDDEDLMgtd{gWFsQH zZbu>wT^xLj^wvbp?>veA^>IR*zDBr2c6+<`A$&(8dE<&wFIHy~@PT=kZBQ0Th z5sG|6Sr00Jb+eBWs{wf|ydUx0kGSid0=uATpxJ4!8VTCbtUi5wefgwoxW8s~C}>RI zVDXm3`wY#}0L@{vithzIHM){9IMB%$ud0v z@rRfV;pfZGg|Bd&?N$D zi+E~*(}myYW?}kQVn1UPm31K^Yr4%N9fYeb>mZH7Xe%(?4p3bN@g0mS_&vt&3APPI G-u(ygOW&aY literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/MenuController.class b/target/classes/org/springblade/modules/system/controller/MenuController.class new file mode 100644 index 0000000000000000000000000000000000000000..d7bd93b5aa6b8bb407acc88ccd8eabcc8e4c37b7 GIT binary patch literal 15799 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 Q8Bq8zeOSCAUZe5<2W+lu6951J literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/RoleController.class b/target/classes/org/springblade/modules/system/controller/RoleController.class new file mode 100644 index 0000000000000000000000000000000000000000..a776c527f4209786c156fc97a2ac4445ab3e2d36 GIT binary patch literal 11122 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/SearchController.class b/target/classes/org/springblade/modules/system/controller/SearchController.class new file mode 100644 index 0000000000000000000000000000000000000000..0fcfeb4054231b870eeb3c6e97bb40f301d7346f GIT binary patch literal 8008 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/TenantController.class b/target/classes/org/springblade/modules/system/controller/TenantController.class new file mode 100644 index 0000000000000000000000000000000000000000..13aed89612a35f2b8a59e7ac02ab923b414bceaa GIT binary patch literal 14374 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 Yt5-9wUbC+Dff`QAV!t>b4pP-00qz63g8%>k literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/TenantPackageController.class b/target/classes/org/springblade/modules/system/controller/TenantPackageController.class new file mode 100644 index 0000000000000000000000000000000000000000..953da0d729d3cff4177ea2c766ec057c87f4b683 GIT binary patch literal 5629 zcmd5=>vtSw9eyUaZMH*8QkohrQm~jy+YCrSY|>~F8i;P1G)YqpRGr}?m zUbqOYfr1t()rvyFA|E`bR*xLg;z2+AcO;Q~^DprDymQ%|-E6a=J$n2wJMX;vzQ6bR zJ-_SBKmL9FQviqXK@4>g9x|S|WuxTWUvnkC_AXJSrWP?fA|WR$VwoR)HWyAmlgrzBM~r>9L<$rX~SqucqcYX>Zb z0&V3PAxw#i?A?mn(Go+ej2*Z`LSH4k3LZDqRYDUHj~OIwxO4NU0_~{CI^AMulkiv# zOnGz8R5ZiUokF>BK)U}Dr#O=CL}bZRY#TZNL7|=?Dh=( zMH%;Ew}cpZ7^izlINrI=eJU;P*`uZzbDEuV}wt#NoDF?m?Rj))Tm zf6}sF!@(GOW%S{Ygzl=I;3q5B(X+Onsg7|-xhcwL#cHB*R&w*>oUF} zG?E2rW7aWGuQ&!V6vN{(4r7?~R7K%YjTA|7%!FxV61wdON+U-GAcCk9dla$C zqx4A`BlxC-t!XW*Iaa7za%-1 zaU6|dLdGPfB=l6(HffrUl5(u9GAOD>G?_Q`>4xs~OQ`ScnxF3)Mx}hC$b4ksbQj=NEv?k1ynw?fHT|5Vq4bH4iS07p@xB?Ry zt5LpsCEQk4za$*2CH2OdO1OPgb7sx-xN514YRw|b=1DzcFg7h}bMe1PW8cjK?J1`fKV=DuBeT>E1Lon$Vc_GoX(wbGz z9!O$SkkC!VKBZ`xXRR!r3{6H(mHjWOHJhAkO1#5-(1XbWfC@zcS566 z+s>ewE>L)r--U==;g1CL2F@@4?aJ!;YaG~aGN-c|$Jq0Wkyy~klHu#Nx_F_u($aFK z=$gtJ(qi4N9c}e`nvv7GzUYg?ec|HpCUzQYFMRUZr*Et*URt|&nW^5-A>Q^{$*D*m zm6w;7K3O||W$o=VE9Vv^Y_UjV0i!U%4z{yHO|$+m>{w?^t7G48f1;y{uf{cb+wi5XSF}&@Nz=7b+ORG< znY+v0b4yKEk7%p;x)#x7<3OKa)ReYUqtCO|i@8#TzRM$RfAG5R7r*^^|0SQ@cZ~w; zs2N+CQbnn6FxVB)VE_E^-POg9m#=@g^5%;xubswy{NON7V=|t^CkKwUaC{8YoIlQ| zZ=(*v*lpc^LH*t(G+)E^I{Y0wNB1pZ*H!*g$2H*BfI9v@i57O)-{EMtzY8;Xicj2+ zr*VRkThK`9C%F2%oMnD^nz!%qs>Ao8^8NrfCb=;66eJsIXdIs$K?bv2qT86myp1d; zN0AFKy4=#ht-Az9!n()Dd0#z_><>WJM?g+e)hQ2Tx4*3ja#sM7qF}(}fvtp_$1^;@ z;sG*`^=E9(2nCw!JOvC6eI=YKO1PmC3!xIHLM1v#bfZV~AWst%Zu5w~h6n1fgsu|7 zO*|VsQ;^%{uPox;7T}Ih8dCWzxA{~SLKHs;QT)(H@gquXhSbK}k9j@EYpcW)#KZHv zB)o7#l>4iqoV|IJFNP?85~6%*vnXFKqC66C+1C2tpYfF?JQi@;UxC(lT8l1kM-aCa zc@3R*LtamZh|h$Gf4W)3i+Ck);iCcK_A}+gVeq}_`N8>OS~wiwZ7HRNZwZ`{jNm)$ z*$Bp#BF2{W4(o@{TOQUPvQo+c7ecJR46*)7AiIcP3*WZ!HgA*o4H1ci)gK^>cYlnr z?!6zO{!g6slavqXU<6XU2r2HRzanihegLS$Z@sPWc%Vc^dza6b#Hn6#dJpe&&F^en I7I-fI2Rb=!LI3~& literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/controller/TopMenuController.class b/target/classes/org/springblade/modules/system/controller/TopMenuController.class new file mode 100644 index 0000000000000000000000000000000000000000..2480ed85322ae07e1c9dcb98277948d86cb82e21 GIT binary patch literal 7633 zcmc&&33wFM9sj*tlPn`i7Kl|*L4zb94Bkh;HXvx~a!4>JwziYqVKZcRXPuc1##(Dd zC{&$!wm`Eyb5s}5DD zR#2ltL9IYrDS@<=$fXQNbNU_ENJ}EFZKYC%t*x@MON~s9gn}7?iLO7_Y1n;c+z>cB zHU>S%U#WEj)PkLD5kxRSfvVyNOcZD>CF9AJ&T39Bo3(7pWMvYjYg!qB`lR7roHOkH z)wZ6^8n(d2EwOcapRT3!Oj29kz0QccZLP7mmDaj-D{UsMoR;qI)?L%drgBc8vphjZ zyHXONiZXUvRJ3B2KsCKJ)lYz9QkI73HQiz7?_840#HI67){`+u!CVy@ z<_WYPqO2nk3PdbBVb}}%+nu<;NoDO_#tlyum^W_bfkVrnI$gyXIFtUB^?YLMSYc6O z>%$46gTpLgATge;;vAeyjE>$%znxM}Cu?Lx%~!Di=h11Hcio&L(A=`7wY-xTV#~`d zZ&1-LSwwPKda|*wzat?zFH&*7oK_|0<@P1s#|W0-0tFYU=)fDvWAy0Dxn|1Iq_dE+ zYsIWgGG;oi#1%>JXc#)#>D7$KLDW&llrCE>a zum+bac$11Z;|hVsf^#lp*cdu1MD>#PSm$Em4oMw+WCX3mTO~@ycuN_zl-bhS6+s*c z1%`^XND9m?m9C^5cnP@A(k`%Bj=Po%9Kj?Q6u^!I{Upj1;NdQ4RI)HttdsO3TrNv5 z*GjKQsYpYLm6Y@ZP8?y5Qev%i&n&J~V5@MzEh7+nnYY`rTrKX}DQ%%_Cc>4zX1lIw3q90caOfRV1%=B5khQ_LH>M8STBjINlnuQ{Cq_e4|hTCH$mg#8* z(&W6G!$t23j}I=bf;&Ll^_Lz>8Qo^epTsYUm$nipkkv8 zni}KEoSvd5_TgPBHcM*7C@wNH3HkL#6*oyajv>Z;X4O+28P~Aa>TzRHN_U)EY!Nu? z;HhKOG#$aMxIw|zB60k_MDl-+iuX$X)5`NNsH_&Pa{Zku-Y3`3IN175Gnru$vW;5I zlbb%E;x4&K4Ga-T)g-^&qvAvITT}4O=NO`}Lk45G{gBE@8g`q44-1@7uu%s)#iX8U zx05->rn~s6xRI5GsuuSP9M_TQqgN!R`89P~!eF1|`3YMwD-*%J_=xmR=8KvHYr4z@ zWtxO?!ByPdFqf4^WJyEQ#%%7pP<_nI7|U|$Zo^)scc)9uN1Ygd`N)t@#qT5rZ&Yn;9=M90zEv*vQ15Ih8({z*bo z^g5nOwq}ASkCNXci9@1v*dDm=|ElZx{|g~ypjB(qwWJU8R-k5Z^QNI4kMg({vhTq|Y=z~7 zV@#6`r=(UzYWwfpHF)nm0>>5y^D5f1D4>sK+tI7rJcxN|-itD=OJ;lmJfV2=Z~`l$ zFn+u%S=F3&NLqW4Vvx7Wf_FRxgkX^?kDE5Oae2N0v@$FP_cDsLQUN zbhK5v>=3Fl-tnS7>=*}jJSYP$%t5XwSJlB;CxjM|-A!B@dP@ zGxY@f3}#*S6P7*m_dB>@*5mgaUEou~@sG?TX6?M&lrG5Y5 z4xPsil4M^oQBU#Y7n;~q#X+V2U_G#r4?HAnFA!95a^6cb^450c#oBpuIXW8N>EY zDu$zoNj<mKMoSEW9G7@U(I8rA#BfrZAm1;#rShRNjemR7c(q;-j4Z7=K-g3P?ar zvmQa^?A@r_gZc_QgDFc--i;%7@k<3h&i@ghjYs&N!Hth{;lSk(4j#j9j`wunaqQ)iCmcM9ryM-Z$!GAH z0OJO}tK?RRk+6=HI0rEOam)k;F#8#tvInPCV%eMka%Bi|7oo29AkXrN3`3p~K$e)E z#b?QW8o_@KpC`gEkex~p{>&FSBgLt!@WgqRLtmsXl@aO7d6AyWi}aPeNas-P)t=fH zlABcML{IH|a8?C(wH4G|L*9Vy;coI*4&$B};0`G`uh_40o3GffCf*8-qYwyayMR1$tcwXydTa8}TB3O5+4Zf033NY4o4vf&M%X z^cNE7FFh+WYgAw#AI=P7{~CteOP;;cI1pf5Pd}H*pf$RDH!hB@_WnJL%XZ@}9_j&f z&mKU}9`sgX!PFv$ZK7iXH}d~Y%oR5yiY;iyEuJiXu4o;Wr4>W?6=iAW>R;nGgcL|M zR933r=B4^wUaH?q8UEl&#ZFTMe(T_mBqfvDd3?+0ip+Wp)~wl&qEa&O6PX`b^FvCG z3P#@W$#4q(GJ zR97yTDnIh?3O+KN<=kg$d-Q9^KNJ+%Qk#r;xXR7XU(&uEH z(DBGa*j zyOoxu6NzZZ?v8}om;zxtZ9}I^D%2pmaoQwmFln+yjWmU6V#)O>r!xafohL>s2EjB8 zY9gOn!QonPI4AdIiFlV%#i13K= z(oBm^p;NK*P-tb+k!UK^l1Xn^jZZi*l4=RZBCxu$Ne%1D;eg~{AV{;Q*`(PP&7m`y zM&zT6ZJX?9##y-b$z%l}CPiTHG7XS->={B-ToF z@KoB}DW1Yns8J;?f(1@f|AMrbT1{GF(NbE*RFgwjAAyC=B^f)KVj5ja^6N}mF%aVv z3Yu*i*ea+~C9Ps2aUyLNwbQv^QOb$JEs30$MN(-d=kT?^P&0gEmsKvS1)Y!_qfBp& zMQiCi&=|#x7~b(Njk#qd_62F3MHkS!w9>7zyWq#x7UNv#r}o8s#IWB21*vB4HPlyVv9Bs?6|bi>vTaYugVoxE2A&(j5;=;gOsAQNf~hro0vxCEUh)3cDlsfjhWQy_XzGh zG<7sxYS9*YkA~Ntw$m9HE<;{K2 zqALY-73RbU&)w4Ph<#pV(baSfn4!V=6yekQB z%5;*Sajx`AsJ7bs5sU7YqlPCP@Mo2sN^MRg!vgiA7Trtt!7Mdy-Xo?~KllOcruewx znFfWx0~T!)7P!Z#a2Q{okkIupi#{%KtJ)1kaAHY2oq&cvL=T&^-J(b6lT6KrHc zLhZJwm-Zmjl4!)VU@*7n6Pydh%W-ny%cQ4ER73@4>s;FDL{(zg8k3Sjd}NBAwdgr| z9(idbo?atKi^_CbgY;SYoJlW=ANzcsADaguIW}D27%}f0W88U&YA=1!qA$^xp;faZ z@kkm8($Ybl3S3fgkyHYF!y1#m$~3hw9U73>g+g|aUZSs?^s+_Ypl=RTZD|H6uBuHs z7z9%GCNO2QpMv#Ccv^UfjiJp>M<|wwrX$@pinQh4r$rH@qD6sN`96J$SJtV6JbCyd z@%$*9P;&#K&9|AX{@ZTc_w2p>TW{{W?g8<&-?iv_^nLO0na)lpg)otqv3s$qGzPhR zAHoXK52XbC5!1U}TTl#GZg-c!=5Rejflpw1R4m{p7QHGK5OgjTJrrLTq@U5xP5OmJ zzm$MBsZhGPs3F*;LJK5Js8}6HM`BJb8MM!$KI&&08?!e`&EILK*GAGCymS~WI?-?J zSr+9q*qy4R18}zcZ-1nJ>+b$LcJ|-+*ntNh5e53SMZclnLaR02Oi2N_5rVfvqP|fl z9ompicZU|^SG%5Qb5h+%$e|2H=L|HX_^*;z-wID1O!_@)3I$88Ye^>UEwVUBzoXa0 z?Ea_>7<%((R8xK``X70)|Gwu%0DraUb^4o%c3s%&B+t$`t}iNNe1TaNg?=B3DhBFk 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

S}z3e$<9F8V602(1h) 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 UaQy+97r#cs`ZN8N{!aRT0Hz}oHUIzs literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/excel/UserImporter.class b/target/classes/org/springblade/modules/system/excel/UserImporter.class new file mode 100644 index 0000000000000000000000000000000000000000..167ae9f3f053b779f2a9054e1886d392c8a85983 GIT binary patch literal 1274 zcmbW1+iuf95QhJ?)0(8FNfR2*P)=@*fCw%8)B-HU>7^+w(28(7R*%J&eTMLelcRI)VhIV$$)gfH5 zkw<|cFQdb7B$V(NDy=g<;*QUQzH<WmGI&v$2UPL+LWKcil75iy2n;WFX^x2D4W0Sh&HkI~`pwRAMY) zlnk|g&XE@MQp;S#MJrN1F{d=AwPC3K%Q_$a?*FkDY9H8}NrSvMM4gZwvf3np&U>=RjoY_ahbtVtj1JJw8mA(x3e^ev>z z4%V@YyELz6+i?%~X+{UJML33sG`7iRo<}r#Oyd$g8Q&0Zx$7F;3(oCE2tz*=+K>N`Xj`pIdB0kN^GMDIuQp| zMNx3Lr(WNlUjSU;w8BPVFJYwUgPF(9@}SAdkgbjsmzcC8$KLBeH{P_pczwUF6%G~7 zCVphHJdgCyO}bANjuogEM;(hZgJg0`$H_!*b1a8Y=%2V-j$bH+ZEMDvQx00;sre19 zn|}f?n?H=aOhS52CN1Au^>wYVYbA$X-x*tyoc}bw_{dfC6b?!ql?MVFRBJ!McAdL- D&xdZp literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/ApiScopeMapper.xml b/target/classes/org/springblade/modules/system/mapper/ApiScopeMapper.xml new file mode 100644 index 0000000..033cd5b --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/ApiScopeMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/AuthClientMapper.class b/target/classes/org/springblade/modules/system/mapper/AuthClientMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b45b73b7ff41d881d8c1c98b6a366d401a1d6ffc GIT binary patch literal 353 zcmb7=OG?B*5QhIAA92Qw8?RyQW)l@ua20VeC#WPv?9iQV`XK~7nF|l#p~N<`k=clg zs)8!`_`mx6dj9}$gYyb2g{=z%MIZDuw1#^j>-uaYQk-KFOP0NtKzBL4JQyugdRi70 zjukFOeq}N|4fNcO(xnQg3e-7EEjz1wm&wj8Cmp@Xu^d9-?}7ImWsg!=@ANQn%0U#~ znnP&a{1bTH{Nd!?=%}dZH2)H-Z)=6k&gIa_qc$bW<)QV}Pqw0{a8&A~yb)NTTKXB* H%iMee`kQfI literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/AuthClientMapper.xml b/target/classes/org/springblade/modules/system/mapper/AuthClientMapper.xml new file mode 100644 index 0000000..b003891 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/AuthClientMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/DataScopeMapper.class b/target/classes/org/springblade/modules/system/mapper/DataScopeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..4925ffea2a85109070b3147296a61025a87319d2 GIT binary patch literal 350 zcmb7=OG?B*5QhIAA92Qw3(sM#W)*cI;ws`IC#WPv=+K>R`XK~w=E4JbD6x%#FdK1E zRTKpu|5xuHuWtZua9&}fuyMM7cb0zWPd51Qm`-os=H}8&qpQ!*-p! EPfLk! + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/DeptMapper.class b/target/classes/org/springblade/modules/system/mapper/DeptMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a90c979427ff39f2f14851ae27abbcce34e278bb GIT binary patch literal 1163 zcmbVL%}(Pm5FYnuOMzY3w{73~ZoZMyT$m7n>KpI5s8tt?4?}Qc+ zTGWPWSd2w%uY58Sp)ohBWQvGEy(NQK*i<8f|KFz29Ah}iId4tlbb@Hp`=aZK>MGt- zuI-PvgutL;H4?|Y0*(cJc$gw>78Y(`_m0WGf)Zoxa04q~hBG{yh3R5|HdE~l34v6w zyZW$SHOyB$FQcU-+q+)6NP9IJk^DUL?4qnQTG_o|>*28S4 zXf+v>=~QX)E402fn1d43$@^J`dHO8SS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/DictBizMapper.class b/target/classes/org/springblade/modules/system/mapper/DictBizMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..b2f1a0ffacbc22958aa9976757f36e632eb8cada GIT binary patch literal 788 zcmb7C%TB{E5L}0pwB=o1Kfs|}@PP|bfJ23PA*e`2J#cdpE4WJH$d5|l(>U+}d=z4n zP*K!MltbjqtaoO;yC0u#?*MQErye*2E~QGSE|kcVFl8~PnT&19HPxjyJfj&a3a;p# zh|EB|KGetqm%#p%%@|Etp3qS^<&p7VlK_omMnfhu5lc(6GGs>RBDER=3dI|>0n@yZ zBG68_nXuGy0$2UuM|5nen*3$ve3`;(9=Lgt@gq|#Q>#qF#)p-}4gx&?ykw z5I9?5^et)vO2fBD{Ax~f%cEG9W7OCl73^}k@EhijcMuU5Z4;L}sX(C5(TxXno E0iROoFaQ7m literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/DictBizMapper.xml b/target/classes/org/springblade/modules/system/mapper/DictBizMapper.xml new file mode 100644 index 0000000..5468b96 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/DictBizMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/DictMapper.class b/target/classes/org/springblade/modules/system/mapper/DictMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..794928efe8e9118344faf80e4bafa58a90b399cf GIT binary patch literal 1112 zcmcgr%}yIJ5FUqwCE=g8{2w`l3+}PfmLA%wQbi(=g5W&a9W9P_z2m=>H>BKI6|4?Fp<~&0Yxr=RRJ>6ne3y^RICe`jr-`7&C|lN!!U9M z^&Kr$Py)6rr5x?iZ!jSNy4_g-LJnheD1ZBau(N=Et_NC!1T=dp8KNr;(|dehdSBlt?;Gn`OUT_}S}@x$?MiO> zPd(@VIDCCGsmbgkEN_a5e{ZPF?Spc($BA8an015|1;@;uwUGRgv2OlO;4IYL6 b5g*z03HCXnLO5XiaMtFa%5wzAWsZ|)5&lzK literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/DictMapper.xml b/target/classes/org/springblade/modules/system/mapper/DictMapper.xml new file mode 100644 index 0000000..9858a77 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/DictMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/LogApiMapper.class b/target/classes/org/springblade/modules/system/mapper/LogApiMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..430fad0fc48bf51f787f7788b95a17f7040b3091 GIT binary patch literal 329 zcmb7=u}%Xq42J)-z|pe6i(skiQ6w0cuIkVy@ZDKas^k(S7o@%#0}sGMA<}DysvCoC zS(ZNg^Uv?sH-I%BD$EpCK59xKnnAagdm-ohY$Z`Tq){9>4nZO{UcUvinVJeW3XgmK zWU@SH+O~V?#tL@|)OklOduMu|$sJlAO$s)rGKhtJg1vK+6G~yRGkV}LM^UiNHMDO2 z34Cd;eWu0M>!X<1vq=3~D=c?D$4)+sExVsC4WEy96di?miQDonV1{bS_gGAI`3K#> BX955K literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/LogApiMapper.xml b/target/classes/org/springblade/modules/system/mapper/LogApiMapper.xml new file mode 100644 index 0000000..39b6194 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/LogApiMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/LogErrorMapper.class b/target/classes/org/springblade/modules/system/mapper/LogErrorMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c8843772b5d9cef1c7ab1d80c9069da7827d2fe3 GIT binary patch literal 335 zcmb7=!Ab)`42J({)wT5^_#Woc+gcBTo>n~c39`GxFlA=5WOjtUng<`ihZ3h-5bVuE z5<=ihzI=Uud;-|wrozHtBkCxP>Ic^b?kz>>bFhihAx$v1Usbz`2mrU`{^5oMPaw-EY^b_uhlRcpfRy*$op0Zklp*e@v z%|C$;&AHLMIEXu{+3>4UKh_58on-Coiw|Y{-CxW5<1IzWU|Hg_JPlZ&n)5YQb6x)c D_Qz@1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/LogErrorMapper.xml b/target/classes/org/springblade/modules/system/mapper/LogErrorMapper.xml new file mode 100644 index 0000000..d14b253 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/LogErrorMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/LogUsualMapper.class b/target/classes/org/springblade/modules/system/mapper/LogUsualMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..fbd45c4ba1f79b53838490387e4daf4b143ecbd6 GIT binary patch literal 335 zcmb7=v2Fq}42J(e+bghC>U-1++Z6@|rmH$29>8~JMM25slw6Q_wGMrNK2$|Gq)M=L zur15dXMg_r{rU#5!lJ-LVd;aW*ay?;+Hx!8e4DI9il;b;BgcI&fhw=}F|qv^+X4>? zF9$v{S?)A_)(2^Z0#6Fmct}`s95HkIW+i;XCN@2D$y5k`QQRu3B zXj%Oe_+H%`jf<_<7d5eeD&@LVnD2ZFjckq0+h1=j-!8XgC535@$NV&4f?~|in2mLQ E2KRVr*Z=?k literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/LogUsualMapper.xml b/target/classes/org/springblade/modules/system/mapper/LogUsualMapper.xml new file mode 100644 index 0000000..410cad1 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/LogUsualMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/MenuMapper.class b/target/classes/org/springblade/modules/system/mapper/MenuMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c3093efa649fc9aaa28eb318ac11c49e9ce45c93 GIT binary patch literal 2221 zcmcIlTW`}a6h1ENdf8w%#>O4SZR0X;Gf6h9Ly3DufaqFD7WeKJU(6;bsiwV!ML`=PIi%BO6 z+&IEOh|Gqn&LVE82$Ws+t=n)SNnm@uF(7RS->#W?EFG63zP6E?t1UH@am3}Bus*Pm zd0g@^LdJlF+?R(Ifg%o>N1)PlY@f+E{N>L{lnPdNNYE*4_+h*=<~6V<652 z?FjATr(ie}U%-T8WeA=`O3ZatWe6OM;e6(c(WS;K=*X@vx2`~0*=HzsvIeGa zm^LuS{)!ZV+O8__B}Kq@TI}wrvo#R%d5Z7 z+*I*X``8mX8Z?=tYVV#Le8mPfljzek{9au8Aj`q7XBb+~9I|oo gA0Zay0Z+I<(o(f}%)Msx8>Y)dKAN0Wh~yg#Z8m literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/MenuMapper.xml b/target/classes/org/springblade/modules/system/mapper/MenuMapper.xml new file mode 100644 index 0000000..7f14b42 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/MenuMapper.xml @@ -0,0 +1,496 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/ParamMapper.class b/target/classes/org/springblade/modules/system/mapper/ParamMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..6861670b6b7c9a378fa0b6d11aa798a76057be36 GIT binary patch literal 338 zcmb7=J5Izf5Qcv*kFZO#Ct*Y#pxA;c2&6s1BpF4H?AY>SQLaY80XP)GBn_fL6!VZq z`t*PE@%i=+;2zf%HVU^c3>1CP)6g33g{ + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/PostMapper.class b/target/classes/org/springblade/modules/system/mapper/PostMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..abe08de0035ecca2336ed9093da728a15ba99ca6 GIT binary patch literal 837 zcmcgqyH3L}6unMcLQ83RegR8aFdIV(0|OFLN-I@jVRD+Q;3|nD+o{yQ;X4@k06q$F z;~=OIQea`Q{5aRg=lGu2x91lCxP)ULJO<}VC)^ZT=1G)_7J0bi($M?z&XRwd8Yk+9MfX=w=1#9UKd3xhQk zgMq=6ZddFxkst##3L8k!ida~|Z>tMI*dV`9OT|~p>A#-_r=b>AA`t8XJ(63ED>$ z&x95kTGWO?yKq|C1<7L2oy#N_w$vo=>3`*o|7h=u{PYua|9MAt$jiy-q4w;W6{ z=@VKqrrL|<+VKY2+*YXxsz+BF$8{irrapcT!|%LeZlztjcDjdqb5-gE-pG`?GyF>F zS=DEXB!d=>4h7z$*!r*y9&~Bf^`J-74vl^V!Y;uB7=FMV%Ec$NPlt8U0UWyGqj%)S B2k`&^ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/PostMapper.xml b/target/classes/org/springblade/modules/system/mapper/PostMapper.xml new file mode 100644 index 0000000..a5f2694 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/PostMapper.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/RegionMapper.class b/target/classes/org/springblade/modules/system/mapper/RegionMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..f73159582e511dca9298207756c1af215667355d GIT binary patch literal 1074 zcmbVLOKub~5G{8YCKCn-|IZQ$DQvJ5mK~7zt|kh~ps=p)E_FPz+a23IOy>-_3Kw9( z0XP(*`lDo|5gEv$WS8xF_3F9m*Y6)c0pK+}9YQ2v*ScK#(y1a(G-f1?%_>b^`q~FF z(qLJVlZTWmTkN;a5UvT>p5Yv&#v+#o$&Au4gzExiYK=_L8kN~fnmWOte5otX7ml$z zuy^RGgA%Z*@wA>O9|XMGnOuNQLqjRu4rnDOa=ZLFTc80-4#xpV0==MtNRB6zW+b!zZJ%!t5EmFT}2*R zq@?@!kIlZ-=hLSBa+cuYOw;HgJb=^#Y!^(qoC~F-g@np2Uj>vW;Rb26NOE zD;?1{0gI(??%FtBBlt=SUriZq(y6UnN}rTwGIy5e>t!)Wu+XifBhvz(^b literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/RegionMapper.xml b/target/classes/org/springblade/modules/system/mapper/RegionMapper.xml new file mode 100644 index 0000000..e9733fa --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/RegionMapper.xml @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/RoleMapper.class b/target/classes/org/springblade/modules/system/mapper/RoleMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..67256a0862d59fe5a607235c5cbd4c1cc2b30d8d GIT binary patch literal 1158 zcmcgr$!^;)5FN@&ZD(<|HeGMMIF~TD9+VbH4@CkfO;7{9^fa~xDh)~$NXn@HCf|`m zKA;~JbhIEff)q}QqKAPf&dlR`v;4fdx(0yv@TLoafJ0+b=?bgzbgVHUnVF>2_RADYl<_J8uL`1kEb;8U3eluPE01pXflcemTFl6kbppbo<`P<_C7?f2X^y_Me7^j@^o|}W?*r=zy(MOPGHj&QJsSC{ zztKZ(?x|4EQ;xYmO$4mbkBKf5sv0JsSD>ZFG5<%;{f*-Flg6 zevhb*N;vl2^4OyVu(pm>nFsBo$6E0`Gt_J$uGxub*(l%Lhlh#hiYq^_CpxN_td2}+ zC-g~GE!q6Ns0Y=k^HvJzu&waUhrGF6=s^H|{_6*@%AYm1b+!OD*gb&F*1gezExz7n k+qn(d<&dZFtPNQauy^Zv&aM}KaB+O|#7lU^2?4zR1(O$IDF6Tf literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/RoleMapper.xml b/target/classes/org/springblade/modules/system/mapper/RoleMapper.xml new file mode 100644 index 0000000..5f82ae1 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/RoleMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.class b/target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a2ccffeb41807b67dcd0a21ebc0cec6ad76f0469 GIT binary patch literal 725 zcmcgqOHRWu5FLj?+VU%K3E1Eby8sIoNR?8xq7wT_GYYPpIP#}bIT2@I!2viFVw%tj zu_jLc^Jd=6d;fTS1ArSii6IhjWo#i`ZB@R)KUpJ zb)-3aU15R+32^7>79#SPqenShB_!z<8MT=kxiA|YkK^PbZ3G0bv`m%r2}>H0e=_+5 zEtcfTIsu)!>8ESI1|Xm}RYiq9SZ?#>|J%I&gVbBr_T0+-wy$K{h=1`Dovl~hI^c4(26m2s9mXzuQ?R>Y=t2ZNj(QRF`PgS1Fd{f)w6`NT HZe9kTk3;Qh literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.xml b/target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.xml new file mode 100644 index 0000000..f53eb0a --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/RoleMenuMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/RoleScopeMapper.class b/target/classes/org/springblade/modules/system/mapper/RoleScopeMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..c9b0bb97ff149afe25586b9f9bc814a26061eceb GIT binary patch literal 350 zcmb7=OG?B*5QhIAA92Qw3(sM#W)*ee!c{~tC+H+a=+K>N`XK~w=E4JbD6x%#FdK1E zRTKpu|5xuHuWtZua9&}fu$M4W^uf$yXZ673WXP5y#U&fZ1Dx4}%FOE7b&J2>tEuBs#dYfZ8go6L(-Rby)QrNa;oOQ~96<(S{ zXx;o1c-{P= + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/TenantMapper.class b/target/classes/org/springblade/modules/system/mapper/TenantMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..843757433270aec74127f275dfec0db82d72cf4e GIT binary patch literal 715 zcmcgqOHRWu5FLlo(DG|<0UIo_4X|K=gp`U(71Q9hsbV*fbRMGu2r0 ztSeF&D44A96}82>(oe;TmYl*+fnIv23-r#EzSVABAe-3OHp)d1?w;%(BlT3m6UoZ! zo_~%NDTo*O4jN)Ckx@Tx9%T6r3yoiSO*I={|N6)-^G<%t#_HTe&P2$J_{EoV4Csg{ zL&D%;iIzjNC6>+!<3VM!0hO3S9( rA-dWOKoX + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.class b/target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..5bc0380a08f4b9f4f815355b746b039cf0905950 GIT binary patch literal 362 zcmb7=J5Izv3_v{#OW16)C8xkO3Q$l`Wd%~WfRk9G3G>r@kWz6k3J$=b5JR8=A+0EE zOSbgv=ePHlR{*$zZ3Qa<7cNMQJ}4`DO(UamW7Zro&M~n;L*8@12exF>Jq?c}dB5~3 zI2N#*=!sC1m3Y@rJfsRv1mNHd_T-EjT}CtalvMOO$1(_I#TWC2;x|gbrc=^V%7Fzu zx4)rH`%mCydqB&($syaM()`n{xo!m1oy%e1Tcyi6XMeb#e_mKb1ss)Fmwy7Rpjz@N IY?fMo0GaP}*8l(j literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.xml b/target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.xml new file mode 100644 index 0000000..2849186 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/TenantPackageMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/TopMenuMapper.class b/target/classes/org/springblade/modules/system/mapper/TopMenuMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..22e9d33357a8bf2ec63b23ef8496a0819ddec778 GIT binary patch literal 344 zcmb7=zfQwI42OL!khUy{2f;(fvV#wjMYXvupH_$vOuE+6Ktf-41g zBfSwCas$4!BX_BS8wJ>j#g@eCUNYLLrKF=bIhI2x@DuHcBA-wS)<-=!N;$BCsre7B zn+t)v=8TY+QIK8IY5KLQA8Q4hqvX)>vo + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.class b/target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..abd3fd1f12b34bb55a17f838a6d73df8d8748b6a GIT binary patch literal 365 zcmb7=zfQwI490z>5Ly;iUIOm~7#KRGVhAtbBvy3M-T8EXkh1l;I`9BI6yiv?3JEdT zmTc?u_w(o1@dE&!;HH9=f(HpBMjx~rJ3|Abl_49B80VPSq9yM+;G6h8yWDb0WplqY zD_ASIo#>s=kQ?!}o48LETq(d_EOsPT50cT&9VH#T$*~MVxp5MGp~xpG1)Elnj#3V+ z;Lx0l*3CZ!ADch8yi9`Zl1}p(T>V@t*tU{G&pU03pS$1a?|(cNR0S6$F3U>+R!}YZ J8a7Maegk+7c8UN1 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml b/target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml new file mode 100644 index 0000000..f1901dd --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/UserAppMapper.class b/target/classes/org/springblade/modules/system/mapper/UserAppMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..91917d6b3b278c194c378cf86fc5a8d358ff4054 GIT binary patch literal 344 zcmb7=Jx;_x3`W1%1;Q>3;vl%#GAt4lR6!Ig4&WqKG|^0EG(SkW8U+X7P>3Nb3TP08 zZCRF{zUTLk*EaxrTvS*o>|7Wq`k<$wHQWnX*JmS<;vAD$vh2MCdX5tAynkG_3MUGe zBfl^io(6hqN9j_9GX?6LrIwx5y~||hmXnU&l^)wi|6_TX~p + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/UserDeptMapper.class b/target/classes/org/springblade/modules/system/mapper/UserDeptMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..d32447afe3a34207e9ff58b7479f56d0fda38ff0 GIT binary patch literal 347 zcmb7=OG?B*5QhIAA92Qw;61F3yEwBDaTRefcz{Y$gbv;5rXNB)nhOu$p~N-=f^Nh` zRZ$dt{9nC)yuJb0;=IC2;o60Pq7Ql+TEo4Nb$vDxDb6v8CClDRpr-sD&gq0kSwTaI!-DXjN;m^kGi3NOuX zXx;o1c+>o0 + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/UserMapper.class b/target/classes/org/springblade/modules/system/mapper/UserMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..4a8d325ad7b96a51a3c2fb6edbe97d9764f76199 GIT binary patch literal 1391 zcmbtU+invv5FMvU)1;v-_xnYakkS{-18*snr~nDH6%`Tm+1VYoj&|+E_J-z@;1hV@ z1NbP!*t<%r1`$#oto3-u$7g2F%+Fune*nO9c+`dlgQwc0+!jWvbd-q%d9IT(L(A>d zI?Q=4iUJM)V9^|eZ5x^lw#H&2cqUZJ-;Kr?yEd#c;IYp6Na$Q9y5#wEB%HKGR$BUD z2)TmV7Zxih1{)SLy6w>qMT!itA1xqM=&|OgoOIK`Y7hl3rIQ(tq;<6&xDB0;Yp`?P zg#tK0cdU~`VMLA&jb+d*i3Njhf`xmNcqj&I4wX=3GUyCts)Q>IvHbSmEO#qPfn}tL z%YB7j#s_t z{r$7+=ebWVPu7s)oZ8-_|r#7_880(a37j;Az7e z*&VVjtw5JP>$G~_q}6~8*re~azp+K@vL&C{cKvkQBd9BIl@2^qrx75o(Gv`=!;Sid j7K58Ji*K+8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/UserMapper.xml b/target/classes/org/springblade/modules/system/mapper/UserMapper.xml new file mode 100644 index 0000000..c4bc4ee --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/UserMapper.xml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/UserOauthMapper.class b/target/classes/org/springblade/modules/system/mapper/UserOauthMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..70bcbb05eb3063d34639e5e0790dfef02c393984 GIT binary patch literal 350 zcmb7=J5Izv42J(%9$}Y;f^*=CDnLO&6|}{Q12~D5ooFUAng>$E%_ukkhe8b50%;pW zVOy4^Pygr7ulElC_qeREQn+TqcQ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/UserOauthMapper.xml b/target/classes/org/springblade/modules/system/mapper/UserOauthMapper.xml new file mode 100644 index 0000000..a7ac442 --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/UserOauthMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/UserOtherMapper.class b/target/classes/org/springblade/modules/system/mapper/UserOtherMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..78744b13b6c3cefcd85507bdf5f25b7003e16319 GIT binary patch literal 350 zcmb7=J5Izv42J(%9$}Y;f^*=CDnLO&6|}{Q12~D5ooFUAng>$E%_ukkhe8b50%;pW zVOy4^Pygr7ulElC_qeREQn+ + + + + diff --git a/target/classes/org/springblade/modules/system/mapper/UserWebMapper.class b/target/classes/org/springblade/modules/system/mapper/UserWebMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e312c498dfef531ff0ae0d3eaa8d003aaac31f84 GIT binary patch literal 344 zcmb7=zfQw25Ql$mfwW~oJP0>*Ov}K~DTtv$%yx2$9NDquKb7)o3_Ji2g)pfYU_lIb zr_)KFe&4-+yuJb0OaCY`2ltNOkc*c@FBEg!TgL2iHe-hHJiastazm*soF0@d7CSkH6w E31+u#x&QzG literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/mapper/UserWebMapper.xml b/target/classes/org/springblade/modules/system/mapper/UserWebMapper.xml new file mode 100644 index 0000000..9a6d01b --- /dev/null +++ b/target/classes/org/springblade/modules/system/mapper/UserWebMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/target/classes/org/springblade/modules/system/pojo/dto/DeptDTO.class b/target/classes/org/springblade/modules/system/pojo/dto/DeptDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..f9b874db8bcf71dbb234db165d85c7f3f8a3db1d GIT binary patch literal 1003 zcma)4O>fgc5Pcilah$qs2u=AY9|a1{2VikTDO?(miV|8WB?oSsWR*BL-e7N#%1_}3 zaLNHLRN{c(%5Or5S=*{2flz(e@s4NSd-KLWe}DZ3;0YQ<#*v@fD#-VX?_+?E5v;ee+dyHPv;h8Jc^8>RX+v$oRnOnQ-20_ah*;# zEx--jq#MIFfv3$6DC#<+Y=5GV!@paNvsT(NRcYS$6b*`vM*Sl!bJ6$#=L0Nb(fAIh zbHDxtE6KIqIK_JMW-c_-5=Avpx1GXd6afgc5Pcilah$qs2u=AY9|a1{2VikTDO?(miV|8WB?oSsWR*BL-e7N#%1_}3 zaLNHLRN{c(%5Or5S=*{2flz(e@s4NSd-KLWe}DZ3;0YQ<tYVF!FyP^{w{spaRI2R>f5*Lmha>N>KM@1fti9IqOD-73Qd+F?hqnvpSV+hni--^=9c%i{)cI2 Qm=-bYqDqYnwM0Yx4=u*ET>t<8 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/dto/MenuDTO.class b/target/classes/org/springblade/modules/system/pojo/dto/MenuDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..ba99362a1cb8a367a282235ad58b3bbbfb2115f1 GIT binary patch literal 2290 zcmb7FT~ixX7=BK&n@z$3DHciuYip?jfv(lsQUcYMj{=ew8;Ub}<00&jg|Hj5o6g`b zar^;t!-dW$&h*03n>yof@Mm~wt&-?Mb&-{@=k;kdio zHMwJ32i{JzX8V?Z=m++JRrmHhYbWrmlI=DZHy;Y20lX%Vu1I(3%ciUe432l$MktFDpDE=*6GON_T(*>Y`cLdId3^|@vwi^y<`$}%t7(VBR+bz4{JD&S^ zbx}a93G}w&Zpm8H)`?I32~ruM?q7FY`$6+y+iq+|jt17fimYu(I;Z1Us0CGr$gi*e z&&n1_k>6(hOo`&eC$@;aWCvAmXG1pRfgLadl1(c`HnZ@~wnbc8_KX))?S?>BVH=AZ zs3#P*cA4-U>&{k*6(grB(%s>e8e8|g{bs%RYX5Xd&KPbU*6l9ppLgiDZcm3OcCjF9 zwXze~#WWrW499tohvd(TsY{Bdc`-psR$bR_EYzg$+rEKM1g^f4akoSalm#ySyDBRa zWsS?co(TxNjU=z_I3~EBWPc}6;E!)nxaQNrIm0tPW*n!vvp5UR`s7a#--l|~II3gN zoyF0N6!0#tb0^dr!tt!}4=}#tVFIVdlUzE=^6IAQx`AIR9XZ!>l&_8+!8EGn_kuIi1%|Fx=7@nboN>GMmclN+-khmNjqk&WJd|2`mID5+B{To6SoL@5M|7;rU~A}Mck$=$)>qOZf`-ueKu8* zD;*__V2-O4KZxLSpE1&Zq0d12Ife`*_@5TfF&r&3Z8C0>3{8EVVlr+sq$-)NSWrki znAbFeZS;#F Z)k|3BoTiui{FU&KyDV25c!W*l{{c`AxtRa} literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/dto/ParamDTO.class b/target/classes/org/springblade/modules/system/pojo/dto/ParamDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..683ccb4c967a4df3210c442bf27ad40c1bc989d5 GIT binary patch literal 1008 zcma)4O>fgc5Pcilagru&2u=AY9|a0cV!((SO5xIiRFt+zDLHW4B&)>1@dkU1RDKFS zfKv`|p%MoKSAG*h%-W`k1VZ&;$2)%W-pm{S`1R#0fX8r3$ic8-mSG{!@IZzmH=2cB zFzWk!DBP(W#=eN$=r~eh>dxdux*|}XI(A?1kWU%%+g{+QCk#fT*(;#HP)fe+9vwEC zHcDqC9V(eJQe6o}l*_1KnV~S?!P7S}_ZjMq&V;|^uFr#!d)S|dfoeBj=?SW3oYUaE z(8x%q&X=)@I@OPPG~SUzkun?Bala?R$dkd#yx< zV=&X=m5vvPgLv8(;SulqL|5y`0r7BRqkEP#)!2&|9(K-RsP4cbCZdw|PW!v%^L>6XJK`c+5~c{6!!c{uU zDFD}Soo);pM4lGkqo{F4&HhLshkutEr=_%KLTTN16b*`w)A|6*oIBr9d=JZ*JKs>; zzuWqZrR3UjPOy@^nRBhQAkj#=+em3L2_nQz+@h}PH1;NSoWpIZTY_m9eqz~1v4}gA zuo&U0F!g_$we*Opv}Km=MT;%YlZvgSfKxGxB(zw@xJit(e$r0;X=jW!nOoal{~xEF RaayFXg$5NeG?N}$zX9l>w}Sux literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/dto/PostDTO.class b/target/classes/org/springblade/modules/system/pojo/dto/PostDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..9b6e45cbaeee99aa8b73380410844656ffccd3e4 GIT binary patch literal 1003 zcma)4O>fgc5Ph52ah$qs2u=AY9|a0cV!+~vQn<7r6{WONN)FsM$trPhyun^0m7l^7 z;FJSgsKf!mmEVLAv$j=50-^e_;~meu_vVd%{{H$6z!SI?6i~EaI51IS@MJXd;#uT} zqkh1L!kfxr5{TG~Phuse-b_xUCqm_`6YogIilMaQhrW8sP;4}NWt16g{bBF;u+g+o zIVa>$$rO*;DzM==SjGxNdBDSGZxbFc)Ek`%f5*Lmha>N>KM@1fZoby?s}3&c;*!vn zu})odu!cJIk9j=al|zxr+h?f8BJz3A6H)BT@YVhv1AD=+yeq?4@lf@6kO-5k(GO!V zvgXx}ABvaBv@fD#-VX?_){z6k;e**XRLoR(apQ-21wah*;l zE5Hrhq#MH~foIJRDC)Xm&H6;4fPc3Z&su5ARHb>}Q!G++-PT8##@zh@`vc74-2D#w z;C|~1meOm>J;iGJX3RCy0!1TLx0%7@6akpk{(l+w#?L8G}+=j8QFSPa7Jblg(k}pw+NB8Pu!V5?Hth}b89;r|HHI$ QOp_S4(V#|#W~!m}2O}=F2LJ#7 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/dto/RoleDTO.class b/target/classes/org/springblade/modules/system/pojo/dto/RoleDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..8e67fe8aa7f6073a8e261734085e45af4df6f66b GIT binary patch literal 1003 zcma)4%Wl&^6g`vJagw@iC~bL^M}b1~04$cMg-r`mQA!ahU9g)ZqsGPY6nlbHK7|ip z)dg&*!~(&VZ$gMOu~kI^p?WdbbLZZ3&OI|fe}DZ3;1OC?6j1cw_;67Y2z0U^q=!iu z?{_2FSHV#CN0CZ{^e8oI7#!*Y9jMrZ<|ufnBPCE;598207AV#mdu5abD)wM=cc(O+p4I*_c4tbfpSmAPu`AXB(P9#AINtyh-ADU>~s%Q�GTlqB~=WKCF z*~-+W&ik0h0{aIt9c<`6byD7zKrK~CD5E`7|t$e}Wvm=+}}9Yuy<^rG6)qok*v zhISr5zqI?705^CC1?vDVV-Xh^FLGDFCB708qQrHHnSfC+y3G@a&*PFST(qYR$1Qnj77#)tN9VGbKLrY$_Kc`Sb=6qYPUTp=QFpWK;0YdNAvbLZBV{)g%1 Qm@XMsQD>t-W2~Y12mI%?qW}N^ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/dto/RoleMenuDTO.class b/target/classes/org/springblade/modules/system/pojo/dto/RoleMenuDTO.class new file mode 100644 index 0000000000000000000000000000000000000000..5396c990ecbb1caf7d3fb32c19a1434df83da88e GIT binary patch literal 1023 zcma)4O>fgc5Ph52agw@i2u=AY9|a0^62J$<0i|$hK`KgGL`n|aHpwb+aJ<1@BbA@R z58#voT&TnW!Ij^H5VNs~B0#7$8b-E12>w4 zUNGqTyf56b?8m-{+~_z`V(d=jNV+0Wo;r4)OJB4^5HsX0#c&roriBmRcFJ`V=&VRs~Ys!@HZTPfK% zqro|$k&#ZFwXuc@)em_z+?9PXv$@YuibUvfzazrPlfjGqJqGratnbPoQan%{?#IHU zG3k#n7)kMJ(+k8wJno9{hr42csQ}qK1~{G=tT_oo2QxRA8j|tt&(k}uYqCB zsV=meWC_8fR{m=a45m~=5mF;<#e1(>e3CjUwS*eV{xcr(u~5`CjVTmS>?r+X?bT;N?Tf@^da89fPH#5&GVJWsm}F3`&%QRHadpo~kAQ8a5OU>|3YOSI}^ zU>lcdwG#lY;41AHHig>;$YNZ7UXXb7*p-Cl(5Z7^oTve#;EpnW}O{!ahVdZ~d z#X_NgTa+*v;Yu*{YfUXZpej8wQ+v^3i~S^G>j_{kW|D*!OBuI_kzN34C-Z5fj1~>I XytDB?PAla!Nnslf6*5$39%{b;TA{t5 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/ApiScope.class b/target/classes/org/springblade/modules/system/pojo/entity/ApiScope.class new file mode 100644 index 0000000000000000000000000000000000000000..7423e157015dc700b19f546f72d85c9fc0f00a3f GIT binary patch literal 4763 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 T!*iBCLMsaC_w+~XChC6xsu8eq literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/DataScope.class b/target/classes/org/springblade/modules/system/pojo/entity/DataScope.class new file mode 100644 index 0000000000000000000000000000000000000000..9efb24f6eb1c5c15b8cd96cbdbb5fe1ecad639dd GIT binary patch literal 6355 zcmcIoYjjjs72Y?Q_uM3t7ci8TqN$JsdX)mwJ0K7qZ7>Osq+qEQZf35@keRvZ+&e*P zq10BZRs^;5T@bBJRm#H(SlZ>Pf6(P`e(6t5pv&bS|G0En@jH(@b7yj)SuTa#nSJ*D z_BZG3v-dfB=J)@;@@pbmOYg*}j_Sh{P$@_ug%(@I5zQViW(y<3IU{3gX{%^z`EhO7 zuuZK8FPjTa);Xw9Xic_|bv~z1{gTdIQHoGBOfi+>q$;$cmL+dxN;%Wk?1Q#r=CyHa zzonU+NZVvM#$ehSH$j;<3#HzSLW#cp#)P5ejKYZ4XB9?LjK5K(CQ2xz7ERkK71QQM zD+8w%4|dRD6X)m_m0B4(YBTNuBX2T}c9rHZZH#NTWX)WLspqMbtf)8U4BKYvJ5*Z0 z)Nzj9Xyr=z0@L56(n7l1|AWR|)NH7|yXx7bttx$<`V@+!jl$-~N=8nhcJE@g4evM8PO5VctJ(pT zwlQ$XWJo(kJ7^$GJ5fEA;t>uEJ*3h@vfNM}vK2YuMwRbL5YcD<6oryIOQ_zwxhrdDhjZqJLcwwj2d)VJ(!Q*v*$0dflz=vI zpJo}hW>f%L-pphTZ7@BGElr`gGNzp_X2+Q~(&omo*QSo1`17yc`|$a*Ya(IMwPY4DXBEiu z5rHIdhx}mhjQMeZL%_9*L%`!NN`H=bhHjCt&nXl0>=Mfob&fQ3EHNV_qQ$~ko6`tG z&~ir2A~J}Dv%|eRRIV)#8@Z7m;9@#W!tT*Db4bmtB2d*z4;MQ<5mOJB)KorBhAZL0 zNL5n>BxC3WxhfBc-#iL6d#K!Cd$?p6y{ksj+e#$|Q}x9{xj z-;B8T^6SYijCjhHhitOt0pDdd z61%)s=|oQU77AvObC`CR&M9=yjL7;0EKC;^y6g5(q_K!DEkajOhZ`(L^XUupFe$VL zqdIy74;ojDzl3od?~mfyYtud$&~(l;7%-r}oM{+_0WIcCLmCD&nKKO;7|>?UG?*}; z&zx!aG7M-cXBtLeKwCM}FiLZwM2C;pES9L@UBP>>>oO@9cntRAm6-`$=onsEGytF+ zx>TB$9aCO^EO{+^w2)ech))&`8uPY_HkZR>-?~i6R__Ul8{?&*aCb=ttQwTS`&Bl2Qz8f6C_B zQi{Ttlw#ocQ?|{PQXCnQQVdG|lyhfGDGnP+DFze%l=EjxDUK;gDFz4VD}LK^=WHp( z0VgRJ@*O|uKg&h4r4&b_q!fe4{V6+UODPUjNhtmoxJu2Fq%KPaF41-ukJr1VfS$S|R+ z)G|p8$zU?%0d?zPfV%ZaGR!~`2?{489+0L-0n+qXGRi+s9P1N03#&0T_8c0>}(Ib1ta!A+#ha>!kU%CScT#;9_FVBe)WI~ zS5p0}pin{d&qQhs`kukHsGG$D3lgbOlt?7eJxSqZmuUAsrcdbsW=IC4CBh0vn7Z{K zH=$;@QzRL5O`0C!rcl|0N)len^)NS~h@@B8HLcVm+!QIBP+G!kwI1arRF(9Kx~6q{ zjGJO*6KYL(_2_YKLYYagI5#cuPvyr&RAegG)8Fa)^aI2!LVu&@A=M$h{z@kh+In=C z*XRXE0sLt9F1-jTNMEFr^b({H9Y7+#3@HqTQF;YZgx;opq%%w9-_de<4N{E$gm(0G zNO6{Mb@kM86AgJFOc6yvj^PKUoA{{8xQ;2>Dd+-ROrTmNVIdE!f~?g_aJU*=!TT7b zOJs&i#mnC&9q|LXSRnA;Kfc}o`~BSCEZt+buvb3)b_hulzcopP=VL&UO1&*rh3(^U yAVfl)85Ap+q+T literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Dept.class b/target/classes/org/springblade/modules/system/pojo/entity/Dept.class new file mode 100644 index 0000000000000000000000000000000000000000..bbb92c7658b855c873d61b2cdadd317d5122f319 GIT binary patch literal 6944 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Dict.class b/target/classes/org/springblade/modules/system/pojo/entity/Dict.class new file mode 100644 index 0000000000000000000000000000000000000000..b2d85463d5f22befaae6c51391de0f21835fba7e GIT binary patch literal 6371 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Menu.class b/target/classes/org/springblade/modules/system/pojo/entity/Menu.class new file mode 100644 index 0000000000000000000000000000000000000000..8b7af4d29501f97be4a98e5a25942aec02c5dee8 GIT binary patch literal 5922 zcmcIojdv8)6~B{Yck?kZfsj;arD#*h7Y<6Tg%C6Z!KLA&EXIPibh0~UC)u4@cV?r| zFKVemHG-fNTA*Sn+Dai&A(()*pPtjdgAL@L=;`l$>@wMXr|#)F%{gyp-o5wtd-vTp z@4ox;uYb>cN<@A1d4#GoGTiKl;bpS6Gcueq6PA&76S=hXw-anY++glADeYr zM2j`5vf*HJ0L$HD7E5$$Wfrv=Gm8mE6HNFeo$jTjm}1;bSeRJ=81q?>FtabyS0Z$u zPRr@58ZF|3vq>0YaCl#nG`*xoZ5_`B;Bpq7(Rym6`*nJNzJ>{}w;kKxpiy;4=MWqJ z>pDHi$9K%M#RMHXbuvN7OxdQ#B;7joaFdMbCz;?OoeU-jdu}cp=ctEudW4DU;%++Q zI+z|a{Dw}C(l_Cs=VpD4S_0lh9p4(Uvc1ggTRN>}X0>q>LN~jg343)~&xBz!?%S@z zL>qK^oQrI4N5x%#JauO*%cvtmwKM%#7TQ83+(XfgPAblSyawSf1tfHC22ot`cj?nKO( z>=~WD%Vc#hjPbBB>0X_lWm27wE+fYj-_z;)v`@GdqEoUUjq*4$>8MU)1^0IGP%>#+Cx_WG_o9VpF2-ig==1_*@%5(7 zF>AneuyD`VeiCnC%oSUiaj z4dx9A%Zq324D%oR{nqu_`L`}>w2J#MY`SSX;pU9={$b3}%cOEaGGjLjU^KyeA7?>A zvhnw4@aU-s9!>0qHPChau~>A=_I)h$O?Qr-$xpm}`|!1bFS?Z6IGH~>jr}0H`C}8e z-*krc*N@B}zg!Tu&YilFKX!5M$cg-ogL5Y*=g(iAKl?6XmcQ`o+(++g zw7Q~6^Oy~~BX%4UZxWpO=@0XV-48DXj66HonG(2TM=lFF5bvQnfogy6`BJUSN@3KWQQHG{$^<*4xaC9Ibhq z)Gg8_LLJ%L>i4Y`$>J+ok^ z00zPv&;3HkGCsa12t}U9(sDAH-G!0J>1{zzim5|7Q%L24OC)gdF4DGm7s*20J+IjIrNMy?qsm|TwA9I z%!q~Xn!+?wPqTC*LO0oA@hNJuyJeH@jJso&A;KxnkIgvearA3+Di{=LC`g|&odhby z_CePj%VmP~nOv7ZPG11zdpw|&=BjEbU?nLA%v367`&Mr)eWuX_n{|hs=+k;u6zVwk z9!KrKo~(>wPhLF>c; zqfnrdEms_a0`+XU;!P+})k;MZddCrN8I}{Y0*VHD3*xsSK7eO6p3A$sFH)%HQupT+ zs=n0y8EMJ<5Gmur$Sx9TBDiWe|cnfJTK%GLrrFZblT-pM)hUb0Zo7A|cy6aq!NW>0E=CIQ>QZo03C86~0bWxIc9dY;rWD}EO2NJoj4PJ{ysi{{Kncdp zOabmI1s_y`ae-5SpC|>tq6FifrvML>f+v*V^YpGvJ?rqS!e$D0bzh|>^`2}K7R7WD zmIsJT9gCCD2Z^ z7}^lp9<=Aset;H7dmhb3OU;l=RGR;SRmBFG!D{FuUOs%xOJG*eUd6~Lc&`--v}w8y Yi&{uOLHjfP1wHovwZGEe>7TUpKRw_7od5s; literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Param.class b/target/classes/org/springblade/modules/system/pojo/entity/Param.class new file mode 100644 index 0000000000000000000000000000000000000000..f924051eabf52b1ba90272ea0c8b18d1ed8e7c66 GIT binary patch literal 3585 zcmbVOTW=dh6#gdhde_dTF`-FudLck4xwQ)g3OG&ag_Z`AG&CiJmfOZ2l5K3S@veg+ z@ql6;K4K5WIlI{|JKr!0nsab?hVt6{76!nRC8#=G^9tfBy5^ z?*NQrIgK{7n@HF&kQBJfuP!)2rRtRz=8JAYI(fe;ol?b_cLV7h;pej zg$D)N2Z!cTu#hs5w$TAw;O>o9N`9eMlz|hh1feWB75}{NNNvcOajR}gAXQP{X}2T= zx+l-O%dS&&%L~qIsC*ey8*H)BrL0>T`nX(C%$sa$9UR)cox*Rou|wfI>Ui#`_`7V}s`#CCzTQ+xZnJT_lB6g( zrT6V-k_T+uiQNL*O74<8>X-9wc*YACNd=)>4g-N_1~+@~|2Y2;%Ak!Q3^Q|iw|wlS znp+g;Y2NeX{CSxV$A-?TZWy((M}d=4A%ip=jGDMxAk(Nyq@d9IY}||cXnN5N7*m1e zV?#_Rt$kDpWYu$vbFvzEe)-9XM+C%UOkF*AojQX_Qh!1qd#c8+D9Jf5@aBv1aJlS< zZb(&TX>`)_o#176VL?`%<$E394IH-ta7wb^xz22Uk(nQ3*$OhqSG|hTW=U4xe(jg{ zuB^WE<{JImyPvJmtFK;Xz^fl!_~naF1QJmkU6Wo}PS;BFvU=L3H>xrHJfm?L6W1{_ z5iWXkZ{Os9ZF)Ls2kUxqT~XrBADUwtr)0S37j)OkkjZ3tbxn396Ix&Cgfc9yqYh+c zLO(La-23YfS6p`i!w(l_RbY#XWk4UL=yY^xK{Kbb0nuA;X+mg5R|61xlWBs)tPTx| z4kyzP0qV=n+0e}|O}Ujg!^X_1iK%0Be?lMVpjHfd;G3OFMGL)uM?}XPnFDpJ=~=&4 z&CBDSs$^Q{a(z@a+7aImgRtsWqUr@*NqA|T$C8PnnhBhG1C1l)m6!b`8PB_DOdNOf zpZpufiFio)j zyZ#-@PKk1Y+c=rqI9?3&VLu*#z=K@1;UPY}t+*cJx`W>Xe8vMDq<|OAX2HW0@Uqz~ zI79)jo6Um5=p>UjE8j=Bi^H!_z6^g2aaFrr&QPy^KR zd4<9@G?e$ZROSWNLb-FJ@`0AhyyaRbXErJyX{pSMu!Zu?8QVFBrcEq0P6!7?UzTshcz`yyLaj3@W|H~i70M6J<3-uvF9grWD`H)rc1E* zWE0o0w~pw`8HDuZl37Dxl0TyR5<0U+HrWK)nKKF6nX|H{0$DN0%vw#L{#=Tn{#-hn zQlNAUN@de^P~tNEZ*Mw8Bf1+aQCw^NbRE+;$;|cO5@vWR+prgJ;R*8EaUWjCDN+fp zmoQ7pz!^xKCY8i8(NB^x@d^%Mj+BKDIgrkfO5q~5<0(>UJWW3yK*qFw#}*S->JRjq zaQJVDKX6M#rv8CMT=4BZiRi!-`^ z`0I`=o<;EnO_($kWX29~e%&+98uw1`$c!zroK|M!63jiUD5$mg!tgKNN_2-gWlw1?B>eSlNx=<$~cj7{|qk^+IM`taT;u%tHoW3vOS;o|k z-I&62q!KuceR!UfLCiM1Kq{#V@F}dncts>kSVA!8{5|>?6&vd|#pr=i2h=f%^{g0{ zY=SkA8@VyqTn}#GTL`GaC|q69d3|?nWu$q=T?p8D@g?>m7KpIOUF1_{ZoozpcnJY& G$o>sQ8Q4Yu literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Post.class b/target/classes/org/springblade/modules/system/pojo/entity/Post.class new file mode 100644 index 0000000000000000000000000000000000000000..32686f6330a29bf9272bffaa907a917ed9074a05 GIT binary patch literal 4099 zcmb7GZFAgK6@IS0T4~pE;=I`DroptqF1FW+Xd7C(8<)0@Lmg~4*r`Jkpp|!pt$0`3 zN?I2~dGGLnPMZ!NfPooi`i1Zz%(T2DGvTd#2{XW-=zvLo1f@JzSL>B+O$nK-b?!OO zIXd^8=bo#-{^!;o0ZieQB6`rPBWFTGUZCs;t5(k2<_C@yIiBrBRlBz}g+D>DSv0C$z%NFmjq!%fI4VP8`TO z?}w3qQL`gw)eji>(A*V!!?qf>w`$FL)H*>`#@}aRKL!YG(PP@LI|2t&(4|Nw9wQH$ zIJAviu$zu_A2cx}bIXN(5J|;7CQ1^O51ghQtQV=e*TgY=M4)fgiKe#`8XOx>y{D6s z#DCPpeYjuY$7N}c{6FkVK zO`14?lLAMY_PR6ed#u_;H(H|G9gHKj_@`A|(~i+e%oLZmkK2@?{)byvZ*DKQ-gxcKwYRpH|9brgTeq%umshX8_a|C&YJdCZ zT+dl(H&>kCg3T-?&;1&AX>+e!C(2y3<}&RE=l;*bCUXzd{2ofTs?+=NWmb3IiPrr3 zc{?CcBi2}XcA37T$q65%ql_<6lHjB@SCZBwGbKf4HZ<~;2V3UvJjw}O1T;Tda{~5L zZgr$PBKF1ll%fy=O`fYg!((G`&u-S4l;FnYQ&VWg&k`U8&qp{>hPSwEI1uC+RV;v$*iOKsq zZRp6dWKx!Gl26r+DKXC8&w8E{OgHQ>bV4295*Xc6ldP@k_>REvheJshRTtdP;ork) zmB&#$j!#4239fqZB!9eIxt`{_kIysw&4f5h124wChR@KzdvLGeX&QJJ?lsKPz&mlT z;T+#U9x*9_&+_#apMp0=fk_5XEL36gJ(D&+3kET)A>9;$I8fp zRrri4F;V_4^z3pEDMV6k*$PFLMcD*Su6LNI>gz&3Kbw~V-&wfUHw>*4P@z;zfyOF*1dUb9QlA8w35Ze$l)KJN_NGpMIX(%m zsLgM4`CUARODypq{*KEWCp|ccU*ikZ_2LwMi7!&hku-1MOO!NR#P{($r93vUju$BD zco`0CN(O$)iMc|lfHyf>Ym|z3hs~^0>cef^OXMYvuP-yVr*KF&{*8S)jKcdE((x$& z8{&Q3qr}4h7Ll;#ITA4^Ka-Oa_!u`N549$nE9;P+f~pScOm{}89Hy6-Q>hf|4{*IsDaSi-9t}zwoBt4+l=z*3Bk(Bcal`(B;s?Aqb23U_`=*U9&F<)Bor@&zr>qV9> d2oZL^2_m$KFsR+&?`3?0t0JXuvZ&uh>A&q1Me_gv literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Region.class b/target/classes/org/springblade/modules/system/pojo/entity/Region.class new file mode 100644 index 0000000000000000000000000000000000000000..1cec360186eee8a75ea4f917ef004dcd99686f69 GIT binary patch literal 10636 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 NDF!RV!YoSqe*tA>QWyXL literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Role.class b/target/classes/org/springblade/modules/system/pojo/entity/Role.class new file mode 100644 index 0000000000000000000000000000000000000000..d285c09bb888166f96a5bfe3a5772846a7535e1d GIT binary patch literal 5958 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 VSfPbUZHFHh8(a-j^5CO~+IPe|xQGA% literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/RoleScope.class b/target/classes/org/springblade/modules/system/pojo/entity/RoleScope.class new file mode 100644 index 0000000000000000000000000000000000000000..c750645e6e36ae85a67aa9f53112056d30a65b05 GIT binary patch literal 3905 zcmbVOZEqY`6@Kn|c4v0IjvXgfFZ~h6uX?(qa3`TTlMP!i^nAnut(rim--F$9s(`p6+xl^`d2Tu!(%$8U4 zFp$?#C}I>vfls;Ky6Ja4+gV?0%a&z!+*Yq``KG_)2Uf@Ix|^|lmgcraxE{!PZn`VIiiR7T1(lO zDq>pkavpcAwF+cCP(%q23K&i4oO`(^+X7RwDU(sG)$$7pe6)y<;9-I6x)s#u=;UlU z1r1$QS$m|2k13luOBwW)=A%W-;4y|q%`nt{08@L6Bq1oJj~6kkwksq`k;`*M%qw=D zY?V62&0w*J$6+#%4e4(zxh*D>WvNZFn4c`-2|Ouqq$9ViCD&=n;F=u}o{&81FF*hll7+CF>gw?miKC>ZEniu zmhU=dO9pbyc3P&~MVpr>NIbEsEN0KAs{+;kWrO~je$X0nyMm$AqTI(v&)Xtx6G-?-CZm853|MA8*-u=n< z{(0xEcYgLAc2Trcr_s27>j(G0eOHlM)K}wm+p$)9oi)n~UEx8fyG_|%m8>saii^FuP{H}pDLeFm<}9zWeU`0Y!);xbp6pmGJ9lD74IZxPv~JSKO1+R^)j7^{ z5uGIVpsT{^51@De&>c6}usjYF71m6cnUE8blOc0(G)3|OZm|zldyl0+YCRf?qXEUT zMABqA)(F_y%d#7%ID7d@ZTTFXuBoAB`MoyB@<`~>fti7QjfkQ4&}R~ZMi4hMkLjK{ z6dzzFs^Rv$rgh#{XZC=~QaHaJR~Zs8_tkNsw=1j@t2z;02RD=hH$o2u#&@m0^Xos} zzw>i~o^jp44?Nk8s_c*F;1%E_(9u)VY+GQaUnASucDF1u@;MrC=Vdbp?}s0!J0J!| zMlVXI#T#j+?z&sOZZ%c&IQSH2k79UyQo;vf-7Nw4_3OxMbP_|N(65e74 zZx&wW`~-LqC-7;~pW!sl;3R*%=ee$OJ%bUPB7M4vr}0@5XMCK+GsG7ps9=G@!tLrL=9t<@;imkOLWNOTkxHo`#r>+(BseXsl>nn z>U=751Yj8}d<%84^SM{~x6pq>VFrEW%1~wA?L(Bu29?hYRpuQ(MET&L@`a(w{1OG%oV;feCOuoe+PYd#-<}goH3Qnr~^Jvy(|Y;SllaU3^O^lUz1Ub z#3rM~)!|+q+^@-~xnh%tLNA{mZu0PcO-9`qo16|!@{2DDT)fWrD06ame(o2@YPaYA z0^_I1j@+LAGmPbhxqCPgE=fGJvcN}0Tl_0VOWNBwcnihFl6DUtO%TT_SwfCga;2=o zIycuxjwEs)mX)eW;^2qyA1Nf|?E2>5WJ%UJuL6Z|vy2iEq+`PD9;^>M8AX zSj?jn)eV-?n3%r>eeoU^UQ+yH6-^0BS}ZYCfg{oJN;VX+wxN0;zdT%-|nu!bf*&9V$FQW>W8CJUj8^e9m`NokzcPhg!?mgPHw4N|!<`M-qm zJ{g)0LkK3E-{0?3vA@nJ#uTy%Ai-#RSure^g7uMu+!(Cy1^4ko1XN*+Ha4T0u&Fds zz_codN-ZW<{{dXUJm~-c literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/Tenant.class b/target/classes/org/springblade/modules/system/pojo/entity/Tenant.class new file mode 100644 index 0000000000000000000000000000000000000000..824cf41d84b10fbd1dc1acb8f1f1582007dcd141 GIT binary patch literal 8313 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/TopMenu.class b/target/classes/org/springblade/modules/system/pojo/entity/TopMenu.class new file mode 100644 index 0000000000000000000000000000000000000000..f13c5fe82c91082d7aebd898253167d730a13874 GIT binary patch literal 3607 zcmb7G-)|h%75=WhvopIM$Hs|m7N-VULv62H>u-Wqb&5gQSlTI~gNhgxN>qkzb>8!=0 zML+VQU4iT~p6^A^3iMCUtmj}MXCiN70JgxXZl*?1Yu9Dygu7uR8%{I095^y2a@K<8 ziuBt8nQBmz0wc?p-5uAdyZ)wAiPUDwiv5U-G)?x`)rITK{gE9t!gYfW@8j% z#DqaB5;&S-TJj^gDO=?{E$_Eczykv2ri>QiHIGftq_D}V3VPhecRJ8jF05n^+IUFG zax|~RYb)t@ZF~$F#tB!`+q(fnRl_SG{P9qcCEuLxH!Z z5AWw&N;(UEgJ-igikK6ys;JW1*;H>6W4sjQJDWp$b+p=^0>eOZdqWUCc|pWYbt9N+Lu>veEG9a?_T-CosWL~@7uq*bLFPMP+EBBlaIP!cR&02 z7q>p?5`OXVukPHs!m`u84lR4WTx~ZtWNXdkj#WtqReJ2wZ_X28Cff4o!s+F2e^%&< z8Fp&-K-QAdompp`S7fvm)GoL!)@{USYa>;~tX-Px+SO8Bv1921*sC9MSy7;wnX5qg z)17wi$Oxh>*&?;_Yf7KMd@M^QTA>elqRZi=l^Fa`W zQOjlfQ;720YAu-N)`?-~s#) zPeY)@Ss%)LczUL#2G4h`y5uBrGmH6Va4-Q@Gd&6Sim5Kyl?sY0#|YP z7HTiEHzEEKZ)1_aN)6259DfzP+U$>To^N(UZoAv~uQ2~iWgqs9pX_PO>#T?IV7GC( zr!nun9>&An#%FpO^Lp%Ie6-tmv8VA8UZis>U?sj)^0KqV&tUeB*qBBn5mV9BY5g(n z4Bi76=1!J-Qx4uMr7nnsaww);=}kF&uavr!63UU7auqN2a{TDMQtBd1C`V(;3wv2S zgA4-!jLqJ_IG+hVlYAb&g-3wy%%rPvY_A&mVW2lCe!=$u*=`qS{|F;e9ITxxZWKc&oxe`27J`5gCMgMFfqxq-(zi1Cs^$apDRFcc>H zIYzEwuwWFjDbPg8Bxs^!6-))P5|CN2QlQCFj-bg>zK~O(d;-c9@*Pm-I``k7Iz+{| z8k^d$y?VNhmvNDi8^twLcq;jYgpaXCSwBwWmw1Jv3^ChS=g7dTkbEw(4tL1+8b>C6 z%C7P{M;3n1hV%wUIb6jA-sC8cpKu>fVc4|(gCi!a+*cSg@i_l2@fGgZ!`wFvk!1U2 zW;>(4@{$5ljV^9`Dly8@bhprs>Vwm1HLB@UxE;}9ti<)hk2{KZ7R868Fi8{+m!Dz( zdSYJH&g${u@)px+4HvJ$JaGe0y`$vgrHoP(GKt1gN!F@~k`b$z-`L117#-DQDI2S@ zdn#s~R>ylM>b%}glBj+(@fP0ZW-X@T5=VXPzVG54`qYm{u>zN)49?;dHaIdE_Hk4> z%Ek%!6RfX!Rx&0mAsBOhj($zU{du1fjKb&uI+)BsQ3A`RVEf2!X#zG6g7@(~6f~h1 pwK$_PzPpam(|76jW{9oMCFbEW5f-J}eBMLIS)QYaMfm{={{!#S?8yKC literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/TopMenuSetting.class b/target/classes/org/springblade/modules/system/pojo/entity/TopMenuSetting.class new file mode 100644 index 0000000000000000000000000000000000000000..5e493aa269182f1c4933d4de48004e8f20a9feb9 GIT binary patch literal 3122 zcmbVOU31h_7=F%fvPs*NmO={)Sg9`BPonq*yKS))3X9u<-BJ|LlJ3Sf?QT*xS)~34 z?;U@D+;E{YiZfg|dV@3mCJ~>LWZSgtXvdk|oO9mq^SmF)pMO976~Gj#ok$_AK{22r zBhb5HJ+RE0<*u1GRyXWQAds1KTql?oNDq%JcR)vnhE4-rFa$1mjWyHXYB=uNYR#(J zX5FhcYqoFt+kRlz%`I=kGi^6;f^Boj+nTrCX4wt`iVLKiD*csq9hN+Itsos7GSDNf zcLb42u_~#D4fIKBrcNtG2Cn0%fqo1K=oQPo@@3Pi3G@#qEJjx-jNFmJ#|>n0LO@-! zgCbq`4UZ&5L+28VQwCm@CM#w zRO^<%KI>KO5V~R?0Ut3iiZOv>b!*d}_1uaT+;##Axqe`|fiG}58Gjhm{vh|CleZ`b zG8F}Z>|&Fs*X?D;cUEimjO%)V6*%<6q?IaO-TcC0h8hp+HFLwNZ2F#SR;|EVb=<0H z?MR!~$tc?m$ErDB+qA1T{V;ij|FYrR4bu;*%z6~lj*$kfOoZC2mREPGUel~^uQE1& ztJd_BzLzXUUaU&553E{~Fe<_J7MJk@sTZqDl%{saOu1aVy0B8bObbyydPlp<0uyiX@U~CxIUDcbU7q+thy}a2?g*yjJE0vzO7V@x=X*46aur!OWv_kQKUw#s~^v{CNeubgYE zoJWE2$*}WWCCr)8v7e!}zw|&P5noyY5+!7kdaB@|myt}hH`#qqlTqqolRcry>Gmdj z4{9<>dTg>UG|88Cba8Q>YX>jz&DiMoP?g7HzeE2HYWnfmZ_ww*N1xzGc;x2T!Z;s! zW#SKXWtC?*{0PQGR(XPxEs4RrN|C{QCaX%B%ro>oLU&fpW)ea}d5uCtc|EI1Aw3q- zvU*EMdCY*)FBRRrD9|1JzrjU(NXYx~5Hl>q6moEIiL^9_QU$ZzDY%L`T;@*2JfBzi z&!EP(n&VDGgROLxI~~{Pa}0*2|Aj*u^ye7Rkm64l&v883b|klm0li2-75QZq0m?Y| zwI(YR6&($o;luaJ2`fXWcZi1;6RieX^?gh&pyzWCw_J`NMO7!F-ICCmJC Z)-K@|89EQk{NKapJauxn0*i&0{Rczwfk^-W literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/User.class b/target/classes/org/springblade/modules/system/pojo/entity/User.class new file mode 100644 index 0000000000000000000000000000000000000000..9042dedd461c981f5af6785d2ded0655ab376d7c GIT binary patch literal 8107 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 LCHgJ>j?Di655*Vc literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/UserApp.class b/target/classes/org/springblade/modules/system/pojo/entity/UserApp.class new file mode 100644 index 0000000000000000000000000000000000000000..7cffe1c693e48d7b8e8499ba7b45a88eb1b29e90 GIT binary patch literal 3533 zcmbVO+jARN8UGzit6kZ0;;Kn%;ZREJg0EeA11i}8*Ns~R+qo!lOIt{fwWsph(yqF@ za$|-Ucw&Y}%9P=)FNB8-ZD!g8$_$s6GQ;1|2KXN+<#%>h_S&c+;IVeU^PS&!Ip6K< zU;p*t9{?<(H;f_VOyo;2P!M>!>38f+>33Ym@7bNbO&Pgix7`bEbuCg}==z>5n~}S# z0@d^b$6oUt)fOl$xSkuG5y(wVZxmsnXkxg85tIa;@Pn2eb_3UIZMLPO?2hmB+A6fe zy)aT8yX$ZJw(=r3+Ow~ODp=}v1%_NlU~F|;?n=8Yy_UV|d##$*e5{1yT5X|6Y~9hU z`${O|egRXn&R&ZI${EQ1sO`I~ zQ_Wd-Gv}Ht;Zb}=z-mhG>>EAFjGWABKfk%Hno(`~5k5Z?sCuqrJd zYT$eckHMzaEg8~rN5$!_Q;acjWqU&fx*)F9pA!)01V;OZ+mP*^G8hE?Cj=^&dQ5Le zZMdPk*;Y%Q=SM6ohC<+(Rb6tgOO`@#t<$!*WpgKFl{qq!o37{BavyD<<3=Mk?fyX3 zn8sen%nH>0n-2PGhmm7n_LHFPD+#D&Zq@be@J-oj5w-iI?aMG@G_*U)ai!g8ZmEtW ze8f>ts%FS@QgKNBh33gCvlT_PTt{-II9TxlA;r zi%X40{rUB)I`r1x-um^OpWN1DIU(=-^k<*k{Q1X!eCN)O-lc^kb;nm-Pp$Vln<|LC z&`shunMKK5(yNr2kG5Q<<*C*Gy=(QU!lbe8&sJaDSJNA;n>7_}`OXCy$c|#ZX{Shm zq{Y}+DIGV~q5ADtKXq79nnTu{f4I@pDyJ8Iw50;h1AUfBJxQ#X6O$t`GZ`KNrDS7& zxxX1ZF?z6@tQ!%_b4_;BU>O%K)z{9_6E;O5P+_ml*^`USn3H{-R!qh6#fIDRWYi0o z@y_RGT-{~XF8n`>jCbAhRIuEZVW>hAZwNg4A7>wQBopkB z2k#DL=_Ti9P%U2PK%Upv*YG%a_i{CaC;8)5%=Ob;Pa=n}lm12%-^4Q{sv&AvAZ9Tn z?2N*<@NKSm%cc@1xH>AaL>@2Q6fwegs_I$lU<;za=Q7RNd<(vfncEOIV}G9GQ*Q(F zILoKDLjYFrJl{g!(R>~jejnz0+#JGz@WMc0-rNI(M~@0G4;1DFKR|fwsBnFt@C&HZ zKkasvZ=Hz3%>M-x;iO^j=jaIZRa^k5#T>ZIG8^ z_o^~UdaAMRkH7mQT$AK||1D9u;$w+;~F zRfCZ6YN29iOyMJxuVb`gR0@S+V+{{0+L6%haMBSH!D{%lkQf z8|QI>0Xc~u<06ZDh#yogE|HhRQ)r?=D$ku2Tqb4UMK<0QQU&a?nKww8_#r09zrfah zi8kjjYFhuqF%wqtQ=Bp}#eYkDit&UjW=W)3I?pWS^%r8Ac-^VGJPjRGeUfZfB_~O$ zv)_`sIWN)&(bsq}&O5&j$zs8a$El(~MK6uj7TD)=i#q@7r^jkrOocTzdmZNdEzG^9 z`Qz2R-l*i$9ZM%D*_x;t@fLFv3t1H--a0)v+-DM-X}EI?-FNXaJ+kQPE2M@n$_{#! zs~pe%1inWqk0lO>?~^j(fWC>sXB?M#22=>fkl(AH5q_{9(u|WZ`hY$rf0&iR3K`e| w@+g;Jn!g%H{x!(>y%`T@J!+dg0!OjapQsA26Je3t;;#drt6@@I1c*@iH=|$`WB>pF literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/UserDept.class b/target/classes/org/springblade/modules/system/pojo/entity/UserDept.class new file mode 100644 index 0000000000000000000000000000000000000000..28009d18983a8381dd1803ee1be40bb4217fe3a7 GIT binary patch literal 3307 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/entity/UserOther.class b/target/classes/org/springblade/modules/system/pojo/entity/UserOther.class new file mode 100644 index 0000000000000000000000000000000000000000..d1071892eb653a280187cbed6e03f0f9e1123c78 GIT binary patch literal 3547 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 YcW{>k25r{pSHQcpi_@xzE$krm4@tJy82|tP literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/DeptVO.class b/target/classes/org/springblade/modules/system/pojo/vo/DeptVO.class new file mode 100644 index 0000000000000000000000000000000000000000..4900203b7e147ad6018293a07100f4b7e29669b2 GIT binary patch literal 5536 zcmbtY>vI#=75`mZ((192g$*VOgam3RwlQ0hkQNCDj)7pX4aHzW9!=KL#$J$ijdtb4 zN#AYK^qszGnm*Fbgy{@3X=VaU)0s~Ch0OG0KlLBTOlSJ3-<#6k-Cap5d6U{x#;ZN| zp5Hn5-1EA3`Rjk){WE|=_+1J;=v5F?5l2E`%&sqJ&Qjg97UrvZ#n5VYrBO8;%~^3= zqoys{muzj>){YuW?%ZjCWO>o7R_cZ&ke|AwFY8*vHLKc`>9{2YNr8d()`B)= zTMH$L*rZ}mB9cowO?D?Ma`G+}1>7x=S=610)@}y;-FWhk*ml*>El(}vH1$UHKDu4f?Z#c5@{~`2^B-wDG*;UXb5%e9u8^oOqQ@u zs@N@I8N$v4R?GPj6{FbW&$q2^DQQPRg7>P>@F{^Dm7ECga#P2m&3#Id`&B%E2L-aN zb^Wbw?2rgHD+L}>@o6bAKmnN@;r;eA*AA#Cq9m}nre8KDY^$uh7fg4Nl;i4_>j=EK zyW0WL&nWp0^ z9+BXLA(2iRM=`G87=!I4yq7n=fJ8s4;shqCnmNWTSC})*_em-BsDdehq3(Py+jT>8 znRuE-xHdWC3FRH5ZtB%Jqwbitb$;@wfH=t@HN7~eR~ts0-j@G_K;dkIHBvL?OvjwB z8snB_yShtJy8FOX*{*5N>a6Sf^R=pWNiSb^Y)h-?u0C&C6-{rUwUcDbdP|!x7z|>( z;V{VsO8-j-?bRH&qMfsSN4J#JsU}rNh*>_am(7 z+Q_6;t~M&(HkPHo1Rh$K;80sZYUcFJ)5oUIoVzFx^W)k#Wm?8eqc(5U&*}8J><)IB zG1D12j)TdVyJ#{9>`m)wxZGrR)@7ik^`$`3M6)3OFW1E#zY7h76W(h=!*k5(X~SK# zE9^gPUQ8Dno}oaqANiwp7iubLSyYlr20Pubveb0N(O}IMeEqSP`g63Xqqz-+_tNYS z5}9q;?)S8gDi0ch#0?PF-O5XR`v(;;|{)fxeRB7|?A zj-jbQ#e`n1&YG@KO5$e%=ly-}HYczoU|;X zK2g;j$8Z$9Ch%bN`4)W|G@H7D*BRLLNV3X<13|&B1$M3qQk3r%Fy`An9?J6a1BLCp zU*#ZhiWld*F^w70r+LEn;0zyLdO1GJafa_%KIh6fPX_P0(F|Vo$)58xT<|2b1U|;+ zqJhWp1ev@N2ePYJy#IQVyxa1G^d@53yx9|wzE#1P8 zMGEsq9wB^hxA0Su!evx~s22I|p`Q{Xqc@O`cK4u<2;5C|21R_@j@a58Y?OUjTMsxMS_w6NGT*kpy6VQpy6V=kdmNu07@0oA<({JhM;{# zwUCh@H2{$cf%X@(1nn>83Rwxt1)yvp*966`cjd0;)#p{;L(K{k30y&)f!c(B!C}kf zcRv0Omvg<0*5A+|6~kw71IwgjR=sa5q0+6+c<(RkW%phPopoA%Hp5cf-jNEd98XHgG%z>$SLSaeMlNd`Ii(Q;x3;| zt&41y-xX$GOn#OJHFALam7ORq6GXZx+`4@?`6b@$`-IXt(oI3tIbJ^VYn)RofUET-!0THD6j}S|#(N*Px8u#K~vm{H|h5G77PPla$Hkv&M>XkHtLm zgp!4LlQmpSc&tQ=#q9H?_7xS6#l#DwlqPF`G3l|AEf&*}Qd^^w<4J!LL2~rsO?(+& z;TDq&=T}MfFkr9aYxG1fcJcjnQZbCPdA>v{PFGChWl{;I$o=>RDTSBM&3J`WQU+M; zfO?0Qf*1oV1Y^qoU${eM?J=kCFd5@bKob+|oC;ux5Uh>to(;fCC%BD|U<4w`RU&Pv zXkH+giV|$gek7aX^rL@Pe3NA*bMxD+YuR@gi|;!49==aTl7mL>8$tiN9# NDd1Q54StKle*rV-*=zs+ literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/DictBizVO.class b/target/classes/org/springblade/modules/system/pojo/vo/DictBizVO.class new file mode 100644 index 0000000000000000000000000000000000000000..73251c6541f4fecec15961b062938f145fd121f8 GIT binary patch literal 4491 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/GrantTreeVO.class b/target/classes/org/springblade/modules/system/pojo/vo/GrantTreeVO.class new file mode 100644 index 0000000000000000000000000000000000000000..f3383293246c18fbdea9c2e13d63fb91c2d4b36f GIT binary patch literal 3766 zcmb7G+i%-c82_Erj-Aw9vu^Dc7?(kyw{?bb6UjO*-K`_-2JJf7xXevW>ov85?Mxct z8S#X~69|b{CZRn5f+6vM-~}Z9CIKed8+MfL#W5DiH1HIj7C5kD zZQBc;+pxk*PDqd&gv@Fnu$qL|O=W)s|F=#;j`Fh-%5v5;JR`6_Dv{%vE4J@gP3J>v zy-C+fL9|@6{lM|ui;E`(#5sYH)TcG8*|t^sF8>6px#DcPR@n9_TkG@Xc)h=e8lG>P zq31PCmx(ZC+bol)ou~;^c1d>|HgR0SlsJW>b;q@r+dJ#FzZ!c!R`(iKbIoEjj3i+y z;g-WRKD*14|L!m()dbCcDUtjT(Ep= z#|~LEffM~2?#E|o%%C%!re~{jnYKC`oU2TO3ry}dHy}i*S9k(ragnp9RY3K^E!$@= z$zoOF5mJnJ$zo5m(HR8-qw#KrGZI14AwoZ6M3+&D0GWXzus6o^@J3cbtFgUgwUP!> zFTAn1bc)U|azOZY&~9>Ws;QHej0c5E*O*c1QL2Yt+`&9{X-i}eq(E`SYx@oRv=g1d z%uGEhlgVTGs^^74=v%G0;K67fb`kGmQ^S^=A`TBwH}8&n-P^X!*l0XhPFs!8^KS@z zkrXU)AOXfo&sy#VCw!&udE4z)a+JV*L@j>8;Y;KSRK>ldSSm1|ylJ!@WfJ!{@{oplW(q<9S7%nTnWA9BEb7kc=9!?R5 zt12OftNF4jG5Oyyb`v9IwVcm@Dpif3N>wjw5~L>}t*mE2lhp!2lhtCmAVI|hR45ly zkaBBaf3@OhI{o!M>R4jL{G}(bG zq%`=HTP3CAGmfW=qzd>P4`Pi}5tr!4^BC3izpzJxeg_j8a{SlD9UP3w!heuykJnio zMSgw9MPa`SQfz-&4H;*4xMa^!I+^5*TBbLhQ?pEsLVg`d8KU`JhMp;RAbXnkdt5Q{?E!H*?(#vYPHCfF^TlvlwD^96H zgNt-F_9ZFO5O(k;-lC@}%W#=gj%j@#R~XO`r{xmf=A&>39m6}MR3Z-GT~hfd`QJeQ zhYUr7E(8UsbG literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/GrantVO.class b/target/classes/org/springblade/modules/system/pojo/vo/GrantVO.class new file mode 100644 index 0000000000000000000000000000000000000000..ac4b9749373f632b96c03074427ae1f4cd6d090f GIT binary patch literal 4360 zcmb7HU2_{(8Geqe)vl#=EGxAWg;3g}5?i*j{en^{2~C}kI+c@PrEW?2=vrE=jip_6 zcjc1u*%_wOftzv#1NY=6%)kKYOow3#7iES&&>uj1!GEBX=j^VmT}3ge$1A<(eV_Aw zzvry}`QP{c3g9%}%p-#-6KKwqplp1f~|3wx*$B zT18$*0lL6R*V{4tzGpi-+g-D589lc>=vuzv-}D2kXY}10uCeDD7d_Jnwyp@Mp4+w7 z+deHdLQ{jl?ivl-59(6&Asw?)uiCSm0b!Cir=ui!`M~XOjMxw8n3rt5Z3bqu<@Tjo zi9e#_s1y{;zCGmU$v>v!b2u)bwM^&yYXh?@Fuxc%k%+gxbX|fU)bRy8M58-ausL+O zw74|xv`pV4I=(0s=Paq!m)jrJ@ulJR*k{RJ)UhPlGt_!*KN=}n*0CZbvy_}m1SDlA zbr@21h_bWEm@;@=#}jyxF?CG8v*xy~uuAJC*7nOfzJjL(j`Yl3Yt409X7G|75ajp) zi@^%C1+nFE9xqq5qKahwe1>B%d^d{{f4>SrK?3hTy9yOZ@bQm z>*oZ-C1z*nRfb%FBczzOW0wPpJ@ zEuM88H!uU*V)QEw`s2TD?(A5evG=6mn!aI<07lPh+osWMb*!FARfV?Yw>-NqchkkV zjsN|dw?2O7ZLZ^f9j=R`ULCSZ$vz!2=Mp_S9jOMY%XPZPuRJp60C+0BkCnn(VT`jY;C9sfo>}G%HTyet+I&S-_>6tw% zV3`FT9oI0ysMIOV#*@SJaxt10P6^k^DdB98lb8)Qk}FV3^h9);F>J*RI+n+CLnf}W ze;mz(?9n_jFdiaI&I!Fm4@r?4*K;(q2qHW!AWhr#_pT|eU#q&P{b?y-hhh~@#?-e;CXt$38wP`>vYfHx8S!@eHY>n zq2HJIDaF7dUf`!50noq(S3=(E)Suq`C#b)tFoV(NlM^;aiMdQAyxS)znHg8|_<>6J zCNM!saa_q$2P)x9!vrOV$CW&Npc1}aOi;2guB3LLk}J51sW7n(D$6jRx$5$tp~|vM zB{Cb8Wg$YuWsxP5%_s16qN9>Y&a>oflB4kcMKSKoCYjeJ8=JXbW3rLc#%7boW>dyq zoNTOkzsBTHq>Yu5#!4w;Ta%3)zF%W0}RBE}hA~CrSP`ZVgvQo|^KqqP{K__ZjS(P9y2B~E&0jk!f398oe zE(h1=`o1Z5R|<=vEzRlg}mSKAL3q{l?NR{ zi&O!B;V+*yDV=!mU@xiKe{e{J_6ZhLWcaU%PjECMr~f}W9Lkqj;H>;r6%`iGFrJK@ zS6NY+hUAf&9DHRz4GM#oX^6-CIyDOUn}(k}q{T;6p;6J#i}h34(_up#FV;J32d%h# z3+n0}Joc*OS87=)C}(4dCYvM@ov10Hi2V_6(#pzERITMgQEp$vu8DT7*3?kMhKYBn zq3HPJ@@__M#&J#IZG0Cy3_`(M=#a{=AaBBEtW*58*uf1_S)5^6cS$LHo?u~Rc>^3l zkCYk~>tD!!N=8J#b}+8jCm+Szz~y7vtn2-0UII5xiMHxgGcxYf_RH| z*Ot+)$ue$anjE-M#rdA0kOGd$V#~tvIl-sOXZ1Zi1&rTI$&3EjegXPn`@O~)0ZSv` S^SO!dbCoCc1N;a-LHU1}4^vA3 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/MenuVO.class b/target/classes/org/springblade/modules/system/pojo/vo/MenuVO.class new file mode 100644 index 0000000000000000000000000000000000000000..86fb66c47cc3f03c06392958bc8bc7ddeb5d17ef GIT binary patch literal 6470 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 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/RoleMenuVO.class b/target/classes/org/springblade/modules/system/pojo/vo/RoleMenuVO.class new file mode 100644 index 0000000000000000000000000000000000000000..0982d48fd0cf9ed962c761a129f0ddc413173399 GIT binary patch literal 1142 zcmb7DO-~a+7=EVhcH2^*BA|#LsHpt_CWey%O$=&+X|18!gSTlrX&1LUb!QfXKgF9D zPbA7kq6ec_|A&b`!WiG_Rv^(BZPI-^v+w(S&GgHU4<7;C1kWLXq>EG@4$=&(D(rGS z2)&@&@jp$8h~$kayG}YO|h07Wq8JF~N{&i{S3FNcaph#p<@$5!@F+m)Bd{vTfE%PppqZ z9w%&bTG~!+w@&6UjTxHn3EkUJ9XZsv$xzTT^n~A(q4repc=HYeyU#Gbp#p70V4A{@ zq(d3m4`WEh!;@7nkPo7MONNg`%O|+0s%jICAT(N!HdChOX-c#D-=^0{t5FSOPk>>% zSUP4l-lYzvEbnhAFgVKeWJop|Mzo*S#9*YSP?M&oIuAuC`qGeR3MrI2@(qDe8o7pw z!nVBUSx1vcXSZTG80NMjI`Y13dfFqCw}U_#VJJ7kS*m)9>*u1|l_B3*MD_K}`)~WNaFGr@VI#*G%;FT))3i!pj_xPhC8ylCR1)~}X!3BBt`&7z z-WODpR4bM8YdERB%4cL>!b$E`J|SCMD!;?na9OS#U~>2?wP%@*QIv-27GjtY1p(p` zE|aPmvb{)(6SzWiV@SD~@0f6r&EhI;IE?xVNZG%|NYV|OvXMDfizPemCnlSX8xF}F zqOfEm#6?1+%SPOBK5HXHm%^P|pZ^=CJHm8`;Ti>RrIdym%4EqJpesV(WsQ}eq_^bx literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/RoleVO.class b/target/classes/org/springblade/modules/system/pojo/vo/RoleVO.class new file mode 100644 index 0000000000000000000000000000000000000000..a06c602513876f0bf76c83f17a1debb8de5c62ac GIT binary patch literal 4458 zcmbtXZF3t}6@IR))k?DLs7_*6O=wDRjo%lNl42=olR61ekey(=E@=zRTH4raOS|gs z%B@SGyf+1g&kTI(7c#?S20GIwL+LQ^rJdn_FvE|agy-&ENo!jz@!;`l?>+Z9=bn3> zbI-l|kNDkWuTHUN!M#HVO>XvW#JAPm_jHbKk z8r!b1Wz^%HhIno7#Ql*1^VRPy;w;5tUSp_AY*=P-^5fq{+@<=T;5b4Jb$kuhcfadMY&@DNzTjA7j2ym#ugZilolCE_ z%(}qQ_-xnKHmzz2ozT z(!*paORYH_Or6oa$x?Ma%LrVzZa9P+<;74b?^~X2)>kdhw_WG?@mU^$%He#7EAw3g3&5-9yI8}!%kgPO78sz7&)c(jsPw$~jqXn73B1w~Vb zwzHMJ5&7J0TzZD~WxLS!R{-EWcF`ST#ZqGNaweGNWC){gGT5 zxcyMM6+3}S`xJUrp@Xx-gK61qc~$GOE%!seI(cVhp%j>|*skHfX0ETZRBWF%T+@$L z9^YtKHQO|ns~c9sWcv5lEWhg6O~>{|M=&Bz4tEj^f}iJ{J=AtDq;OYDZG)z z_wc5U@5`g*2duQ+`fNMf?v`b!+)$^@WwRQ%-j2X;;u|3XDx+6Sr^f5VXvKB6TFuh_ z<0U59rMSYB?*V@)hHoD+F;Qe<-mKS`?Z7If@k4=AYTe^@?VOl?qMZz~-A;zCTqeUg z!BaR_b{xx_ubaMa`8s|g@Ko;;pm)7&mpvUnBWnlIm7I;@l@R$|64r+J|&*D7W7kCCH@EjlBso1~Bem~!r_*|~y8yw(Os`mhIk{rGg zS}2E_0|Z{>^GypCEO3xFE)GjEFGTDwvbTgj_JNVf_aQ#P;N)MR-?)#=2M|*7Cl2-D z8h;1*2FkoeUZr;xTxTz*RPimE0hamD*ihue3I}=HrUm5VP^_#J$glgP<-g=FMm{g;W`Fos1tOum@eoNl#W1pAsqva6*B~l6|;qm1Z5*orjTuel6UEUoI@kb)23Qi zC(}N{O_+?_QQW~AH*f;8_%*7O_3=aDHfn4oiQa<6mPTeR++r(*ZCu7WTRPrk+1g+$ zjo-1L*=%L-E{ z=IF89Q<@}3E;L>W)IwFVw(AI?T%KHLl$vW{{_x|5BBrExhbD9y^7Ey$EKXlPM~;sz z9?zFHNM|}fbqD&)J)FHMO+$h)ah)R?*>~5mhf9}xTZdgv9P;rC3$w7B2p6dGDh$!Td9zMKOp^p z+b2l^gka41k@bLz-9E(+m;_oI(8eTpiy~Mm2J0gCN+Yno8{EbB7@!J$S2e?fA2J(s oPQVt|zwP5Syv~6%J3D;d!jIS+VnBY3pW^4|3wRsv;Fl=;7YEY#hyVZp literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/pojo/vo/UserVO.class b/target/classes/org/springblade/modules/system/pojo/vo/UserVO.class new file mode 100644 index 0000000000000000000000000000000000000000..8274abd09a8039b258845e976c1b34713a85f40c GIT binary patch literal 5974 zcmc&&S#TUz6+KUyneLhC(QZ5AIF3UUV{2=iI2gCA;N4M>SIIKOENabkq_IZRlj$CB zECB)uVGVnTArO|B4^tskiBri36@CoGcfR10N)=TUKm1To1an?*(;ByJeNcr;J@3AI z&%N)x`|iDcXa4Y?H-7_Q0>8|m1Dy&|8q&xJ=yqd4cj}EwZDGD@mMwkRE;p-|qdONI z*IL%=_8D8ZYHr27pr3TChCpUlrB-nt66oBrbv6qXSp_)_d1wNotFd<0_AJdF73ipx z1$w5=m}gDBYStF?DZ92XE{%3+=thr#S~nf%oZTRH1$SsDdX^h@HDcbWVS~pkTlL7qMh$m+%)0GF%zHGvM=}-1 zIv<)G)Nr52lWQF~@8-Dvdo^sqR)O?_8jmnD&n^*?TnX4cT&OdZ3TNwqL^m928i$Y%W>*>{`imPgUGSQjW`u zas*!8((aPjJUI3LmlMCU*fl(?VG@rpI!k8lz~fD`DzGMgmZS4$tdcvv^--B^QyLCS zaK@5ICx@e$QgDoc-->%*L84D+n8plEFPaX0RkplDo0M87s6zKv%<8Pwa4L4~od0RzQ{;}Rz`24 z-L~-LLd|Z-Ra3q{x~D2N>qv8Xo>6Y{RI)VKC3?lAZ#WN_DR;5LW3r~KqQpf-NgmGe zQ?@^TrC!Evo#hoAw%kR#e9UaH($IBWB2R@@@~()4AZVmwfv8r_GE+H^XR2=}%ujz7 zW@WHOkc-Sf>INC;PlCK-+_-_K85#D*LxZvgs~*QA3m&socDsC0 zi_z@?TGf^=@gZ?muLo-K`oluRz4)+|On6XUR155g*a?8M~Z1N81BQ@UX}%_@~TJ=bLiTVBc! z#@$gETzTs3VC#U{!PZ%5A=V+KuvNb*wX^n;rTfwD*ZPBI$+a671fGkhQ2_Lf zK5W*?>@^0bYtDgk~vW+5!WF;-w=pINO=S6pjc1rJ*H&%LEmo)9CO z!uykS>;B{{et&Wv-k+qy`;&Bdf07RFPm)rd_ctNf5@?gPn$_4>H?AV9yl@ zG8{kQDX_cpMz&Ml$nMD-*)Vw{dn9jUTjY&wg*dLGK08c)&T*!56dcn-uS2{-q5~#B zr5G5-JU``*2tWyCjzV@%{G21*QhpW6ugQoj??_Z;PnDotXjh&{RAz^jpxoQ8yf;yq zO<02RK)dpxL}hkq3Cio*m8TMw*~%p-uWwgAo~X=zFG2aPcIDYbWj2Kg%A4AiPbVs~ zbxcscw_SNIQQ5*{j0PDb21gn0nW5p=pd^RbS|1UFm<&HZ5f-SIWsD)0)`-ZY zKUq#Txqh`KWx0t=`jc9+$-7o-QdX|Wq(8BfO>SDPNm&FVlm4WhZ1UdKnw0f4GU-nq zk8)-PSqg!np{v-;M~-8Bw(;4{X9pjH&jg>{Z(<+No>=kfI}}x4eq-^&wBt`4*RUWr zhlgH5I(23Ew@{x)y7S8LTTl;=(C#5`IyC$`KIBu}%8?O%7^%_UAzw^gL+@p1qs7!! z90?IaMw*ZzBU4OEOy(N;E~8LP7c()?n4u6fW~fC)g46({6xA4Ln~^1Gn~^JKB`6nw zvc+5swB5)PwB68(c?r@25UChwhfyGChtX9mNKjV*Diph7Aj9Y;$S`_}-4fIjfVzu4 zG0=q3OVEVTSL~Ibz5vu)?2CbR8~p_BHU^6Q5;PEi`ilc0D0PKb+ZlURj(An@ZT~{T zIwqQEz+o7y5p!_)`s~1%ID{s7o!Bn+;4G;Wj*CH@BbCM}u@UD zVBzzmdW4RHc#>4Fco4hs1yX%thV980N%f0IaVMT4HGrpi)*9|s)PJK(ftr06YZV;j zzbf9v9X^@;-;!Y+Z7{`B@+*B%ns?Hf@@0~i!7lG0-f{SM;J-`4c11QWE>98Vsp};z zzsZv|$2+`46B-Tut7m){d!XYoA2%P_&@;Zs6j6JIFGCrF*l!9;Z9sVpS6~E#yFW)4U#qV)H`7)IM z%+~bVr1CQ0Iy%vJoegqIfhq)Jj6a%O=TfbChh(flIs}B6)Jj$W%fw(UWIHziD=Wb* ze1afQQEyObX(h`7MgBSy=`E~EHg8hM`z literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/rule/TenantContext.class b/target/classes/org/springblade/modules/system/rule/TenantContext.class new file mode 100644 index 0000000000000000000000000000000000000000..f37d0ddba83f9f55ad20c61e7381db853496a4e2 GIT binary patch literal 8868 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 CD{Srn literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/rule/TenantPostRule.class b/target/classes/org/springblade/modules/system/rule/TenantPostRule.class new file mode 100644 index 0000000000000000000000000000000000000000..bc2822cc45dff695c9444c4ccd487aa81ff982b2 GIT binary patch literal 1635 zcmb7EOK%fN5dPXR8RJYyNC?aOu?xg@VwyZy9tHyOCXmHA*(9>G$MK{w6WP<&OdH63 z4~t)hvbb9?y2gk`o5~Js=xkw_YuH(%*GKx zn}Mi_Eof)xw`GMd$%=KOR^(+ziR)!~i`&u@JTDhSR#vLg6|Q1vKj*lPy1>wuNEYIV zVXJ|-i4K?y!_q5pzv?+|saUoa1h2@2T3PtqU-FfxaE}B&FI>x2GtyVHBr^1tgqn0b zUuC7M#BDV$ESF(NBAHvXZd$x-xg|bbToks-7}&-z^#4J^h;ekH+r)PCFl;5X1_OqZ zgwY~cRW3?Sc{^$;Bu*rDFz`+I=~UzBMOz#{V3&d2CiY-&>qNfAX6RU_Keh06k>->x zd`3go+`%9}WCu;s}m1Y~QH*6un1Dcnro(t6US)*BN#u zrkdX+v)&S& zR^Gl`z5D#1r}tJ~J<`U*CPtc#^HxP@{Yeu)Yj}fFo|7I`yc4HQoWa?KP6uWfO>E}H zwNEBlV2El;#3$#tB44W%g*R^%b@TS*q-~W8mgi_WR7TYe$0w{-P~RDc43VvR(iT1i z=&+k7Vq_EH!p5g)?J5{IhL-N%wi~%et3la@T46Uk2UTN;Pu#XeRXNi24NTFTZ#35W z4Oz{}nrDkiCs+kv?uO&qgJJhYe44HxK{*aDVmjA1m+Q(S*ckU+P~3Om9s3&yd9F zWOQyxErY!duFuiGz6Sbf&jMz{02eSu62nEhjRejw=!}wXELDf`CpvQjb#z^OkKW&x z(U(sT*0HmWed*|19IE43x`)gL(>=V7p-?wEkgns@25bs(3O7Jp2dViv`fvjKF@&QS zChZ7)jnX`vA}VJBYN-Z%NG(P;moQEgJIOwaUx;2GQkcLb+Hjd7N9pbgX@8~f2(BVW RXE*7tk(Bo_jTs-meFjz_%s2o5 literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/rule/TenantRoleMenuRule.class b/target/classes/org/springblade/modules/system/rule/TenantRoleMenuRule.class new file mode 100644 index 0000000000000000000000000000000000000000..4719e8c30038347b8255f566b491a3d39f86223e GIT binary patch literal 7961 zcmcIp33wFM9sj+}Zf3I?NLWlDiX0jt7c7Ve5Ktfq5=}q}CKdaslieX%*xgxnW`WpN zYrWfAtF3LlmDWQ?eERZ?oKYkVZV>fyyO4=_w^o6 z|99YV087Li1wMf}My4lXrZe$WPj^C#>5-_BOd2VEQl_P)tjJnD#ZQwv4Z)9qf?^d4 zf&#M$9qBWYT5q;Hl89US`h>BCXES{T-q#Vt#~5R7Ef)|V{LKM3ZVjlAgTl=S+?Hi#Ps!AHet<4l5i7M z8o~*fqToaoQ!$MO7)n29J}ug-N6yzWTCzzF1%l+hQ%htyoLS@1PlqLK-{@7DyA;9< zoTT7n71cOJpn5ndn%OdpL_|tqMpk4~QGpW6;CU$wkBm;p72LEMOEC*I3TjoO~?^;$}-SZS~o%v#taJvsKJNL?G1Ovg*Q1n^rfsbO@9?G8OPjC!43@RLpmTmliMu zk~K$Vv!U1r&2#3C+GhGY}W3ScpXo5G@+j)08*jDy@LT zwT->7o=Udj3{V-7*`%Ja^|x5X5-_-w^+u+J_7<4##WMVmjKMN2Rj~}q10)XOp&hFftX6S8E)Zxu23+)#gqG}%X#y=r&Q+UzbP#W0_|TzZEiR5!2x<)^G&c!z?ERIJ0r0?Uq2*5Moq`1DNz3%rTM&FG#S=B{{in7b54 z5jqrHA~1LK^hNtQwQjkrfHJUTntL#1(8%u@MP@`9nD$QXWUDF#`UCor0Td4&Qlm9_!6FcI?Zt zlu}_JE%Q_?wk$!ms=O(p$w(wvW~C3*t_!nCXb!=Ir68+fGqwoKD5x)<+H7ppBP^qF zEfK$*mCyC*2`o{q$#kM!w|b4(DlN%cHMp4PD^njXSMV+s@5XzW`U|)n04Dri&Fq!+ z(ykh`qO_B6XSuMekuNcA2YS#sEElthC5?>J43zTxg z+RDbJm55B-sN(&Sk--9-7f;!{A5?LZRKW>6m5UTDAzdW1UW@8Y3C%QvxS9RLp&ez^ zunXZ9T&3XFL7H#^Kyvp{6}L(H(?_OX&~^}OCHyB;+%DlyITURx2I6M@uZr^swrttd^~^TGQWy_?*Dh))Z4g zJT~1)&(mW%gVOeHRv9A|!bA9iY?*fq@iEt*Wi{T3FDkfC#iNp+fE0($6GFd=UDz!! zE~7`Y8I#DQ=mM9FS%61M3yq$nX-hdu8`CLM(141)_!7f|%&bl^l2#mjF7dYFGMhZE z;t3ggMa(7&o*X;Ld5xcIRYKT@fc*0{6<^0w>^<4XNcFTbU*|d)o3bryEv1@;$C(

*Uh>WW-dj_d^llBA@v2o#WGe$|Y71#=q3 z%E2n@OXt+qIwI1=W3lVCvt+OFEQ(w`2$yLscILKe-4K#sO~b&BFr(PS&N&t=IoGr? zjq9+q=*D&}?RruupEOJbzslVUY$@_PRCLr)c)639?K>PRmTXB&@`+90@jfePh5Uzy3V3`kiVhV9ZJU6$MoUp<#sWN%+=x6el` zs?<|3muCgW%<*1D=Q9xBM>>pbCaSN9%i1={dC1Fc%LlYMQXn?+YqD&rl6q&{jI-=5 zOQj6UZd;gf=G(W2VK01I9)^!s&Z}Qj?yZlB*cWF34m&ScUV_wR%I@kXzr6k4mu}c~ zaQm$XZ`^tC=DQBublXe!TytRW05!VYFf7yJHQdR6W?8WiA>k86itwuTWC-e0v@7veHRyh1fTWQWby4Kgz{8fz!qe5wHK)MYp!IEFj7x zo^lm`#$U>@gNP?eGaRRi3c>fw@mhjW=+W?X|0fM!?9u-SSBqh~!JXv2iVd|mUd8oz zuv|=$&m~75gv03;@x3k}|9~W>OA<3wT!{xbJ6S5LTE#2)17|bk-YgZ@+BconR7%g- z_Z;0+L>+Hdg-kNYX$HHZA{uzJI5a4`bH{HngO>%rWDP;S)A4nlf4|9DgkQmLpl%n6 z9^t@;Z}D%jy*M9FbF4Z5_%@#5OyF4__Q}KIe4YS!l6@#^tMA8z_PwaMXcs1} z3QyjR<9B2FB7a>&m46Rr3fzHUm47>mccNi-Kjtn9?8Rw>J!4UERiLVP0A~Vw(C9;b zRdGMgmhAX#c4nf4<1VEV=9ku^QjO zcgglRKJR2XxL1Lna8!(+l4c$E9QdE*;rHj^ zpUcBPPxzk`ehGYUVXpj7kdT5h1-%L?6y7U*_CoJlBtLAg$k~%%zpzCX_$A@^G)o#b*iF14rn9`yLI$UnQv-;ZQhmEV?VlPi(5xFe8!Bm!R^YjGjf*-0CB*@E#| zT++!4wlpu;QoM)*G;oGs0 z%Oe zhv`9%bC~WPgz0AP$aSqcKj&qnca-73-DaZGRKW+2WF@WuqkSj+o-Dh&r(c5YaX_sK-< z7#2^s{RL2CR#=S literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/rule/TenantRoleRule.class b/target/classes/org/springblade/modules/system/rule/TenantRoleRule.class new file mode 100644 index 0000000000000000000000000000000000000000..3e96032cd48719e970303ad535cf9fd87121f026 GIT binary patch literal 1789 zcmb7F-%}e^6#i}!*btVMl7d#P^>-6sS)gEB)1p8@qiMhpqg7`*o8&fKW_NF9_okM2 z$I&)aLpazS~oj&)3GJL;fQa{hVZ#r7EQh?+_vzzCm9AW*`6(z7?Qbs zErT?MG-PxPLuZ&5e#;EnzU{T@j@9I*E1DgL2WGGnNbZ_GZOkh7EKgR1!z;99$hNp# zxBWn_3QzLea)nzS!^vE}v~At8OvmzC=0<&+H)KJ>F^0MSA0+me!3aimoWK~v5Jl@U zU|6IWeVnz$wlFDgTkgcfiNr|;^9Xh-)eN#oX7B=D)No42OL)0|BG1NV7(Sq1Y(8D2 zEvX7$P@zuicok;|9_(kU;N!WTlE&zKZ3wU94GnMVcnfbc%s!o2)C5uphuXmlB)y%v zq8^uu8|@fIsvDcvHF|vk3=_FxZ_mYusGbEKmvEWDk~h%DaM z@qq#>CdJ?icevzD)q^WKRzdYqUKB-!h1^jZP}vmnHHOqGX_Dc1$@X}; zSV=T2r)K%K+Q)|}dD9LkR=-fsQD=e3wtdmy0XZ0^_dgWqxg)rXbx7U@Wu$(FzUI$% zKbfcesBClnV)q(HRb$Ak-EQ!yKR@~5-s4}tef01F2{ujRTm2J{@2sLet znIYzkf%{kp@t%>4)}<*U#PVVE8TxGirirpa8Za@AS)9fkO`Ca4l4fVIKq7jYG3VmeM9Hn52#J|*udx~tG>mHtoQGt_7urL)gz_eFqf J_%gs({{nc-_9XxS literal 0 HcmV?d00001 diff --git a/target/classes/org/springblade/modules/system/rule/TenantRule.class b/target/classes/org/springblade/modules/system/rule/TenantRule.class new file mode 100644 index 0000000000000000000000000000000000000000..b2186867284e2c7bd6328053fbc851c014582a48 GIT binary patch literal 5923 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